공시 한 판

정보보호론 개념서 · PKI와 블록체인

비트코인 블록 헤더 구조

설명 영상 비트코인 블록 헤더 구조 · 2:34

핵심 정리

블록체인은 거래 내역을 블록 단위로 묶어 앞 블록과 이어 붙여 기록하는 분산원장이다. 블록 헤더와 트랜잭션의 집합이 블록을 이룬다. 블록체인의 한 블록에는 앞 블록에 대한 정보가 포함되어 있다. 그래서 기록은 시간 순서대로 쌓이고, 장부 사본은 한 곳이 아니라 여러 노드에 나뉘어 보관된다.

가상화폐인 비트코인은 분산원장기술로 알려진 블록체인을 이용한다. 비트코인은 중앙 발행 기관 없이 P2P 분산 네트워크에서 거래를 처리한다. 블록체인은 금융 분야에 국한되지 않고 분산원장으로 여러 분야에 응용할 수 있다. 따라서 블록 헤더의 필드 구조를 아는 것이 이 기술이 실제로 어떻게 구현되는지 이해하는 출발점이 된다.

블록을 새로 추가하는 방식은 작업증명이다. 블록체인에서는 암호학적 해시 문제의 해를 계산해 새 블록을 추가하고 암호화폐로 보상받을 수 있다. 블록 헤더에는 작업증명 조건을 맞추기 위한 논스 값이 포함된다. 채굴자는 이 값을 바꿔 가며 조건을 만족하는 해시를 찾는다. 작업증명 보상 구조

한계와 효과도 함께 알아야 한다. 블록체인에서 과거 블록을 바꾸려면 이후 블록 전체의 작업증명을 다시 계산해야 하므로 조작이 매우 어렵다. 비트코인은 블록체인 원장에 거래를 기록하여 이중 지불 문제를 방지한다. 블록 헤더의 필드 크기와 역할을 정확히 구분하는 것이 선지 판별의 핵심이다. 과거 블록 조작 어려움

자세히

머클 루트와 머클 트리

비트코인 블록 헤더의 머클 루트 필드 크기는 32바이트다. 머클 루트 필드는 블록에 담긴 거래들을 하나의 해시값으로 요약하는 자리이므로, 거래가 몇 개든 필드 자체의 크기는 고정된다. 머클 루트 32바이트

머클 루트는 머클 트리 루트의 해시값이다. 머클 트리는 이진 트리 형태이다. 거래 해시가 두 개씩 짝을 이뤄 상위 해시로 올라가고, 최종적으로 남는 한 값이 루트가 된다. 이 구조는 저장소 크기를 줄이기 위해 쓰이는 방식이다. 머클 트리를 쓰면 블록 안 거래 전부를 나열하지 않고도 한 값으로 포함 여부를 확인할 수 있다.

머클 루트 해시값은 SHA-256으로 계산한다. 크기 32바이트와 계산 방식 SHA-256을 한 묶음으로 외우면 두 정보를 섞어 묻는 선지에서 혼동을 줄일 수 있다. 블록 헤더의 두 필드를 비교하면 다음과 같다.

필드크기역할
머클 루트32바이트거래 집합을 요약한 해시값
논스4바이트작업증명 조건을 맞추기 위한 값

논스와 작업증명

비트코인 블록헤더의 논스는 4바이트 필드다. 논스는 블록 헤더 안에서 값을 바꿔 가며 해시 조건을 시험하는 데 쓰인다. 논스 4바이트

작업증명은 해시를 계산하는 데 값비싼 에너지가 필요하지만, 네트워크 노드는 매우 적은 에너지로 해시가 유효한지 확인할 수 있다. 채굴자가 블록을 제안하고 해시가 유효하면 블록과 원장 변경 사항이 블록체인에 추가된다. 블록체인은 작업증명과 같은 기법을 이용하여 합의에 이른다. 이 합의 덕분에 각 노드는 같은 장부를 공유한다.

이어지는 내용

로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.

앱에서 이 절 읽기