머클트리 편집하기
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
− | '''[[머클트리]]'''( | + | '''[[머클트리]]'''(Markle Tree)<!--머클 트리-->는 [[블록]]에 포함된 거래 내역을 나무 형태로 요약한 것이다. 1979년 머클트리를 개발한 [[랄프 머클]](Ralph Merkle)의 이름을 따서 머클트리라고 부르며 '''해시트리'''(Hash Tree), 혹은 '''이진트리'''(Binary Tree)라고도 한다. |
== 개요 == | == 개요 == | ||
− | + | 머클트리의 형태는 블록이 보유하고 있는 거래 내역들의 [[해시값]]을 가장 가까운 거래내역끼리 쌍을 지어 해시화하고, 쌍을 지을 수 없을 때까지 해당 과정을 반복하여 완성된다. 이 과정을 통해 다수의 [[데이터]]를 하나로 묶어 용량을 절약할 수 있다. | |
머클트리에서는 모든 거래내역들을 해시화한 [[머클루트]]를 통해 거래내역의 변동여부를 쉽게 확인할 수 있고 이 머클루트를 헤더에 담아 [[트랜잭션]]의 유효성을 보장한다. 또한 머클 경로(Merkle path)를 제공받아 특정한 트랜잭션이 블록에 유효하게 있는 효율적인 검사가 가능하다. 즉, 머클트리는 모든 정보를 압축하여 간단하게 표현한 데이터로서 머클트리를 통해 데이터의 간편하고 확실한 인증이 가능하다.<ref>yahweh87, 〈[https://steemit.com/kr/@yahweh87/4-merkle-tree-merkle-root # 4 - 머클트리(Merkle Tree) 및 머클루트(Merkle Root)에 관한 정의]〉, 《네이버 블로그》, 2018</ref> | 머클트리에서는 모든 거래내역들을 해시화한 [[머클루트]]를 통해 거래내역의 변동여부를 쉽게 확인할 수 있고 이 머클루트를 헤더에 담아 [[트랜잭션]]의 유효성을 보장한다. 또한 머클 경로(Merkle path)를 제공받아 특정한 트랜잭션이 블록에 유효하게 있는 효율적인 검사가 가능하다. 즉, 머클트리는 모든 정보를 압축하여 간단하게 표현한 데이터로서 머클트리를 통해 데이터의 간편하고 확실한 인증이 가능하다.<ref>yahweh87, 〈[https://steemit.com/kr/@yahweh87/4-merkle-tree-merkle-root # 4 - 머클트리(Merkle Tree) 및 머클루트(Merkle Root)에 관한 정의]〉, 《네이버 블로그》, 2018</ref> | ||
11번째 줄: | 11번째 줄: | ||
=== 생성 과정 === | === 생성 과정 === | ||
− | 머클트리는 머클루트를 구하기 까지 반복하게 되는 과정이 토너먼트 대진표의 모양으로 만들어진다. ‘log₂[전체거래내역의수]’값을 구하면 해시화한 과정의 횟수도 알 수 있기 때문에 머클트리만 따라가면 특정 거래내역을 쉽게 찾을 수 있다. 머클트리는 트리구조를 형성하고 있는 암호화 과정이다. 우측 그림을 보면, 맨 밑에 위치한 최종 값을 머클루트, 상부의 값들을 | + | 머클트리는 머클루트를 구하기 까지 반복하게 되는 과정이 토너먼트 대진표의 모양으로 만들어진다. ‘log₂[전체거래내역의수]’값을 구하면 해시화한 과정의 횟수도 알 수 있기 때문에 머클트리만 따라가면 특정 거래내역을 쉽게 찾을 수 있다. 머클트리는 트리구조를 형성하고 있는 암호화 과정이다. 우측 그림을 보면, 맨 밑에 위치한 최종 값을 머클루트, 상부의 값들을 리프라고 칭한다. 8개 거래에 대한 머클트리를 예시로 들어보면 그림과 같이 거래에 대한 해시값이 TX1부터 TX8과 같이 리프가 이어져 있고, 이를 두 개씩 묶어 더한 후 같은 방식으로 진행하여 최종 값인 머클루트를 얻는다. 거래가 홀수인 경우, 맨 마지막 거래를 복사하여 거래를 짝수개로 만들어 사용하는 원칙으로 이용되고 있다. 이러한 경우를 [[균형트리]](balanced tree)라고 한다.<ref>easyblockchain, 〈[https://banksalad.com/contents/%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85%ED%95%98%EB%8A%94-%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-%EB%A8%B8%ED%81%B4%ED%8A%B8%EB%A6%AC-Merkle-Trees-%EB%9E%80-ilULl 쉽게 설명하는 블록체인 : 머클트리(Merkle Trees)란]〉, 《뱅크샐러드》, 2018-07-30</ref> 머클트리의 생성 과정은 다음과 같다. |
# 최초 데이터를 SHA256형태의 해시값으로 변환한다. | # 최초 데이터를 SHA256형태의 해시값으로 변환한다. | ||
53번째 줄: | 53번째 줄: | ||
* [[머클경로]] | * [[머클경로]] | ||
− | {{블록체인 기술| | + | {{블록체인 기술|토막글}} |