블록을 구성하는 블록헤더(Block Header)란 무엇인가요?

아하의 전문가님들로부터 큰 도움을 받아 블록체인에 대한 이해가 조금씩 넓어져가고 있어 매우 감사드립니다. 이 더운 여름을 건강하고 행복하게 지내시기를 바랍니다.

블록체인은 수 많은 블록들로 연결되어 있다고 알고있습니다. 이들 각 블록을 구성하는 요소들 가운데 어떤 위, 변조도 허용하지 않는 것이 블록헤더라고 하는데요.

블록헤더는 무엇으로 구성되며 어떤 기능을 하는지 알고싶습니다.

    1개의 답변이 있어요!

    • 블록은 블록 헤더와 블록 바디로 이루어져 있습니다. 그 중에서 질문해주신 블록 헤더에 저장되는 정보를 살펴보도록 하겠습니다.

      1. 버전 : 클라이언트 소프트웨어의 버전

      2. 이전 블록의 해시 값 : 이전 블록헤더를 해싱한 값

      3. 머클 루트 : 블록의 거래 정보를 이진 트리로 해싱 했을 때 모든 거래 내역이 포함된 하나의 해시 값

      4. 비츠 : 블록의 작업 증명 연산을 위한 난이도 타겟 값

      5. 타임 스탬프 : 블록의 생성 시간

      6. 논스 : 블록이 설정해 놓은 값보다 더 낮은 값을 찾기 위해 무작위로 대입하는 임시 값

      이러한 정보를 활용하여 마이닝 노드가 블록 해시 값을 구하는 연산을 실행하고 그 값을 구해야만 블록을 생성할 수 있습니다.

      1. POW 합의 알고리즘에서 새로운 블록을 생성하기 위해 블록 해시 값을 연산한다고 할 때 소프트웨어 버전, 이전 블록의 해시 값, 머클루트의 해시 값인 머클 해시, 블록이 생성된 시간, 난이도는 결정이 되고 변하지 않습니다.

      2. 다만 논스의 경우에는 변할 수 있는 무작위 값이기 때문에 논스가 달라짐으로써 새로운 블록의 해시 값이 다르게 연산되어 나오게 됩니다.

      3. 따라서 무작위 논스 값을 해시 함수에 대입하면서 난이도 값과 같거나 낮은 값을 찾는 연산을 진행하게 되는데 이 값을 찾게 되면 블록을 생성할 수 있게 되고 이때 논스를 비롯한 나머지 모든 값을 더한 후 이것을 해싱하게 되면 이 새로운 블록의 해시 값을 구할 수 있게 됩니다.

      4. 그리고 그 값이 다시 다음 블록의 해더에 '이전 블록의 해시 값'으로 기록되며 블록체인이 연결된다고 할 수 있겠습니다.

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