블록체인 블록생성간 몇번의 재계산(이상유무)을 통해 블록을 생성하는지 궁금합니다.

어마어마한 양의 데이터가 오고가는 상황에서 한번의 계산으로 블록을 생성하지는 않을거 같은데요. 혹시 하나의 블록을 생성하기 위해 이상유무를 확인을 위해 몇번의 계산을 하는지 알고 싶습니다.

아니면 반복계산 대신 수 많은 노드들의 병렬계산을 통해 한번의 계산으로 이상유무를 확인하고 바로 블록을 생성하게 되는건가요?

    1개의 답변이 있어요!

    • 질문자께서 질문해주신 내용을 중심으로 답변을 드리도록 하겠습니다.

      • 블록체인 블록생성간 몇번의 재계산(이상유무)을 통해 블록을 생성하는지 궁금합니다.

        1. 결론적으로 말씀드리자면 POW 채굴에서 해시 함수의 해시 값을 찾는다는 것은 값을 찾기는 어렵지만 찾은 값을 검증하는 것은 매우 쉬운, 연산을 하는 것이라고 생각하시면 되겠습니다. 따라서 마이닝 노드들이 각자 난이도 타겟 값과 같거나 낮은 해시 값을 찾기 위해 무작위 논스 값을 대입하여 연산하고 한 노드가 해당 해시 값을 찾게 되면 그 해시 값을 빠르게 검증한 후 블록을 생성하게 됩니다.

        2. 좀 더 자세하게 이것을 A가 B에게 1 BTC를 전송하는 상황을 가정하고 트랜젝션이 처리되는 과정에 적용해 설명해 드리도록 하겠습니다.

        3. A가 B에게 1BTC를 보내는 트랜젝션을 발생시킵니다. 이 트랜젝션이 마이닝 노드들에게 전파되면 해당 마이닝 노드들은 해당 트랜젝션이 유효한지 검증하게 됩니다.

        4. 그리고 마이닝 노드는 A가 발생시킨 트랜젝션을 자신의 Mempool에 저장합니다. 즉, Mempool에는 거래의 유효성은 검증되었지만 아직 거래가 완전히 컨펌되지 않은(0 컨펌) 트랜젝션들이 저장된다고 할 수 있습니다.

        5. 마이닝 노드들은 각자 난이도 타겟 값과 같거나 낮은 값을 찾기 위해 해시 함수에 논스를 대입하며 연산을 실행하고, 한 노드가 해시 값을 찾게 되면 다른 노드들이 해시 값이 맞는지 검증한 후 그것이 맞다면 해시 값을 찾은 노드가 새로운 블록을 생성하고 Mempool에 저장된 트랜젝션들을 수수료가 많은 순서로 기록하게 됩니다.

        6. 블록 크기가 한정되어 있기 때문에 우선 순위에 따라 블록에 거래내역을 기록하는 것이 완료되면 블록을 생성하고 그것을 다른 노드들에게 전파하여 블록이 검증받게 되면서 트랜젝션이 1 컨펌을 받게 됩니다. 이런 과정을 통해 트랜젝션이 처리되고 블록이 생성된다고 할 수 있습니다.

      답변이 도움이 되길 바랍니다.