머클트리를 알아보자 01

거래의 검증


거래는 각각의 노드 지갑들이 독립적으로 검증합니다.

내가 만약 어떤 거래를 만들어서 하늘에 날리면
채굴노드들이 그걸 붙잡습니다.

그리고 블록에 넣을것인가 검증하는데
대략 열몇가지의 검증을 거칩니다.

그 중 핵심은 역시

  • 이전 블록체인 어딘가에 해당 계정의 잔금이 남아 있는가

겠죠. 이것이 바로 UTXO(돈 남아있는 계정)이며
다른 조건들 만족하고 UTXO가 발견되었다면

<--UTXO
이제 거래가 유효한 것이 되어
블록상자내로 포장되어 들어가게 되는 것입니다.

SPV 노드의 거래검증


풀노드의 경우는 블록체인을 풀버전으로 갖고 있으며
처음에 블록체인을 다운 받는 과정에서
찾아놓은 UTXO를 전부 데이터베이스에
모아서 저장해둡니다.

그래서 또 찾느라 개고생할 필요없이
자체적으로 금방 검증할 수 있죠.

하지만 SPV(가벼운 지갑)는 블록체인이 없습니다.
그래서 풀노드분들에게 굽신거리며
자료를 받아와서 검증을 해야됩니다.

한데 이때 풀노드분이 구라를 칠 가능성이 있죠

그럼 그 무거운 블록체인 전체를 사용하지 않으면서
검증을 할 수 있는 방법은 없을까..

해서 나온 것이
블록체인 요약본 입니다.

해시함수와 블록요약


블록체인은 블록 대가리에다가 블록안의
모든 거래를 요약한 요약본을 적어놓습니다.

이때 이 요약본의 개념 역시 해쉬함수를 통해 가능합니다

삼국지를 '참 재밌었다'

써놓으면 그게 삼국지인지 김국진인지 알수가 없죠
하지만 앞서 우린

🔗해시와 해시함수 개념
이라는 유익한 포스팅을 통해 이미 해시함수를 알고 있습니다

해시함수는 그 어떤 자료도
64자짜리 똥으로 만들어버리지만 대신 똥에서
원래의 물건으로 복원이 불가능하며

빨간 케잌을 넣으면 빨간똥이..
파란 케익을 넣으면 파란똥이..

즉, 입력이 같으면
반드시 똑같은 결과를 내놓는다는 특징이 있습니다.

수만자를 자랑하는 삼국지를 해시함수에게 먹인다면
64자짜리 삼국똥이 나오게 되는데
만약 수만자 중에 한자라도 틀리면
알수 없는 똥이 나오게 됩니다.

그러므로 일단 넣어보고 정확히 삼국똥이 나오면
그건 확실히 삼국지를 넣었다는 소리가 되죠

블록체인의 내용 역시 마찬가지입니다.
1번 블록을 넣어서 퍼스트똥이 나왔다면
1번 블록에서 한자라도 조작하는 순간 다른 똥이 나옵니다

그러므로 각 블록들을 통채로 가지고 있진 않아도
각 블록들의 똥들만 가지고 있으면
일단 검증은 가능하게 되는 것입니다.

다음편을 기약하며..


이번편에 머클트리를 끝내려했는데
생각보다 만만치 않네요.
무엇보다 그림을 바리바리 넣지 않으면
이해시키기 너무 어려운 내용입니다.

다음편엔

철수, 영희, 순이, 민수를 예시로 들어서
영희의 똥을 찾는 과정을 보여드리겠...

출소후에 뵙겠습니다

H2
H3
H4
3 columns
2 columns
1 column
28 Comments