Merkle Root란 무엇인가요?
Merkle Root는 블록 안의 모든 거래를 요약하는 단일 해시입니다. 트랜잭션 내부의 한 비트라도 바뀌면 플래그가 바뀌는 블록 헤더의 압축 지문과 같습니다. 재생목록의 모든 트랙이 정확히 맞다는 것을 증명하는 앨범 코드와 같이 생각하면 됩니다.
사람들은 Merkle Root가 거래 목록이라고 생각합니다. 그렇지 않습니다. 그것은 모든 거래에 대한 단일 약속으로, 세부 사항을 보여주지 않고도 집합을 증명합니다.
Merkle Root 작동 방식
블록을 거래 지문으로 구성된 나무로 상상해 보세요. 다음은 빠른 실행, 커피 친화적 안내입니다:
- Step 1: 블록의 원시 거래 데이터로 시작합니다.
- Step 2: 각 거래를 암호학적 해시로 해시합니다. 각 결과는 리프가 됩니다.
- Step 3: 리프를 짝지어 짝을 해시하고 Merkle Tree로 올라갑니다. 홀수인 경우 스스로와 짝지어 연산합니다. 드라마는 필요 없습니다.
- Step 4: 하나의 해시만 남을 때까지 쌍을 계속 해시합니다. 그 최종 해시가 Merkle Root입니다.
- Step 5: 단일 거래가 블록 안에 있는 것을 증명하려면 전체 블록이 아니라 해당 거래의 Merkle Path만 필요합니다.
아래 어딘가에 작은 변화가 생기면 맨 위가 크게 바뀝니다. 예, 그것이 요점입니다.
Merkle Root의 중요성
빠르기와 신뢰가 모두 중요한 이유는 전체 노드를 실행하지 않고도 실 거래 내역을 받고 싶기 때문입니다.
- 이점: 빠른 검증. 경량 클라이언트는 큰 블록을 내려받지 않고도 아주 작은 증명으로 한 결제를 확인할 수 있습니다.
- 관점: 애플리케이션이 구성원 자격을 깔끔하게 증명하게 해 주며, 개방형 금융 분위기와 잘 맞고 수수료 및 다운로드를 줄여 줍니다.
- 관련성: 블록 헤더, 지갑 검증 단계에서 보게 되며, 누군가가 암호학적 증명으로 거래가 실제로 컷되었음을 보여줄 때마다 등장합니다.
거래의 단일 바이트가 뒤집히면 Merkle Root가 예측할 수 없게 바뀝니다. 디버깅이나 도구를 만들 때는 먼저 루트를 비교해 조용한 데이터 수정이 빠르게 있는지 확인하세요.
Merkle Root의 주요 특징
한눈에 보이는 특별함:
- Compact: 하나의 짧은 해시가 수천 건의 거래를 요약합니다.
- Detective: 아래의 모든 편집은 루트가 바뀌므로 즉시 보입니다.
- Scalable: 증명 크기는 트랜잭션 수의 로그에 비례해 커지며, 전체 개수에 비례하지 않습니다.
- Agnostic: 블록 전체에서 일관되게 사용되는 한 보안 해시 함수와 함께 작동합니다.
Variations
같은 아이디어, 마주치게 되는 다른 버전들:
- Binary: 비트코인 블록에 사용되는 전통적인 두 자식 트리.
- K ary: 노드당 두 개 이상 자식을 가지는 트리로, 실험적 설계에서 사용될 때가 있습니다.
- Patricia: Ethereum은 계정과 저장소를 위한 Merkle Patricia Trie를 사용하며, 경로를 압축하고 키-값 조회에 친화적입니다.
블록 해시를 Merkle Root와 혼동하지 마세요. 블록 해시는 전체 헤더를 커밋하고, Merkle Root는 트랜잭션에만 커밋합니다.
예시
explorer에서 비트코인 블록을 열고 Merkle Root로 표시된 16진 문자열을 보면 경량 지갑이 전체 블록을 내려받지 않고도 결제를 확인할 수 있습니다.
재미있는 사실
Merkle은 실제 사람입니다. Ralph Merkle은 1970년대에 이 나무를 제안했으며 이후 공개키 아이디어의 초창기도 스케치했고 현대 암호 문화에 영향을 주었습니다. 뇌가 크다의 시대.
Wrap-Up
한 문장으로: Merkle Root는 블록의 전체 트랜잭션 세트가 합법임을 증명하는 작고 큰 지문으로, Rolex가 Reddit 스레드 스타일을 만난 듯합니다.