"머클경로"의 두 판 사이의 차이
(→예제) |
|||
5번째 줄: | 5번째 줄: | ||
==예제== | ==예제== | ||
− | [[파일:머클트리 예시.png|썸네일| | + | [[파일:머클트리 예시.png|썸네일|500픽셀|머클트리 예시]] |
A는 본인의 거래 Tx1이 [[블록]]에 담겨있는지 확인하고자 한다면, 풀노드(full-node)로부터 블록헤더와, 머클경로를 전달받는다. 이때, 블록헤더 중 머클루트와 머클경로를 통해 Tx1의 포함 여부를 확인한다. 이어서 Tx1이 들어있다는 것을 확인해야 한다. | A는 본인의 거래 Tx1이 [[블록]]에 담겨있는지 확인하고자 한다면, 풀노드(full-node)로부터 블록헤더와, 머클경로를 전달받는다. 이때, 블록헤더 중 머클루트와 머클경로를 통해 Tx1의 포함 여부를 확인한다. 이어서 Tx1이 들어있다는 것을 확인해야 한다. | ||
2020년 2월 25일 (화) 14:19 판
머클경로(Merkle path)는 어떤 거래의 진위를 따질 때 이를 검증하는 과정을 말한다. 머클루트가 주어진다면, 더 쉽게 검증할 수 있다.
개요
머클경로는 풀노드로부터 정보를 받아 해시함수에 대입시켜 사용자가 해시 값의 상대값을 알아가면서 계속 해시를 진행해 나갈 수 있게 하는 것이다.
예제
A는 본인의 거래 Tx1이 블록에 담겨있는지 확인하고자 한다면, 풀노드(full-node)로부터 블록헤더와, 머클경로를 전달받는다. 이때, 블록헤더 중 머클루트와 머클경로를 통해 Tx1의 포함 여부를 확인한다. 이어서 Tx1이 들어있다는 것을 확인해야 한다.
Hash2, Hash10, Hash14 만 있으면 머클루트를 직접 계산하여 도출할 수 있다. 즉, A는 Tx1을 이용하여 Hash1을 만들면, 머클경로에 포함된 Hash2를 더하며 Hash9를 얻을 수 있다. 이후 Hash9과 머클경로에 포함되어 있던 Hash10을 통해 Hash13을 얻을 수 있고 같은 방식으로 Hash14를 통해 머클루트를 직접 구할 수 있다. 이 결괏값을 '전달받은 머클루트'와 비교하여 일치한다면 본인 거래 Tx1이 블록에 담겨있다는 것을 확인할 수 있을 것이다. 이는 log2(8)=3개의 머클경로가 포함되어있음을 확인할 수 있다. 이는 SPV(Simplified Payment Verification) 노드가 쉽고 빠르게 특정 거래를 찾을 수 있게 도와준다.
각주
참고자료
- 에코버스, 〈블록체인상식(17) “머클 트리(Merkle Tree)” - 진위(眞僞)를 판단하는, 작지만 알찬 나무〉, 《네이버 블로그》, 2018-12-24
같이 보기