본문 바로가기

비트코인15

비트코인의 머클트리(Merkle Tree) 이번 글의 선수지식으로는 해쉬함수, 이진트리(Binary Tree), 그리고 비트코인의 UTXO, SPV Nodes, transaction에 대한 이해가 필요합니다. 비트코인의 UTXO란: up-to-date-items.tistory.com/91 비트코인의 SPV Nodes: up-to-date-items.tistory.com/93 비트코인은 각 블록들이 연결되어있는 형태이고 각 블록들은 Block Header에 여러정보를 가지고 있습니다. 그 정보들 중 하나는 Merkle Root로 현재 블록이 가지고 있는 transaction의 요약본이라고 보시면 됩니다. 머클루트를 만들기 위해서는 머클트리를 차근차근 만들어나가면 됩니다. 그럼 바로 머클트리가 어떻게 이루어지는지 알아보겠습니다. 4개의 transac.. 2021. 3. 17.
비트코인의 블록구조와 체이닝 이번 포스팅의 선수지식으로는 해쉬함수와 비트코인의 utxo, transaction에 관한 지식이 있어야합니다. 만약 잘 모르신다면 아래 링크를 참고하세요. 비트코인의 UTXO란? up-to-date-items.tistory.com/91 비트코인은 각 블록들이 연결되어있는 형태입니다. 그럼 각 블록은 어떻게 이루어져 있을까요? Mastering Bitcoin에 보면 다음과 같이 나와있습니다. - Block Size (블락의 크기를 나타내는 것으로 4bytes로 나타냅니다.) - Block Header (아래에서 조금 더 자세히 알아보겠습니다.) - Transaction Counter (transactions들이 얼마나 있는지 나타내는 것으로 1~9bytes로 나타내어집니다.) - Transactions (.. 2021. 3. 17.
비트코인의 Bloom Filters Bloom Filters는 SPV 노드들이 transactions의 집합을 받을 때 그들이 어느 주소에 관심이 있는지 노출되지 않게 하는 기법입니다. 위 말이 조금 이해가 안될 수 있으므로 예를 들어서 설명해보겠습니다. 만약 어떤 사람이 서울의 모든 지리를 안다고 가정해봅시다. 이 사람은 누구의 도움없이도 서울안에서 자기가 가고싶은 장소를 알아서 잘 찾아갈 것입니다. 이 사람은 Full node에 해당합니다. 그러나 많은 사람들은 서울지리를 다 알지 못하기 때문에 누군가에게 물어보면서 자기가 가고싶은 곳을 가야합니다. 이는 SPV node에 해당합니다. 여기서 약간의 문제가 발생합니다. 예를 들어 롯데월드를 가고싶어서 어떤 사람에게 롯데월드를 어떻게 가는지 물어보면 그 사람의 목적지가 롯데월드라는 것을 .. 2021. 3. 16.
비트코인의 SPV Nodes SPV를 알아보기전에 비트코인의 Full Nodes부터 알아보겠습니다. Full nodes는 완전하고 최신의 모든 transactions들을 포함하는 노드들을 뜻합니다. 즉, genesis block이라고 불리는 0번 block부터 현재까지 만들어진 제일 최신의 block까지 가지고 있는 노드들입니다. Full node를 운영하게 되면 어떤 transaction이든 다른 노드들의 도움없이 찾아낼 수 있습니다. 당연한 이야기입니다 자신이 이미 모든 block들의 정보를 알고 있으니까요. 하지만 Full node를 운영하기 위해서는 몇백기가바이트 또는 그 이상의 용량이 필요하고 이 용량도 새로운 block이 추가될때마다 늘어나게 됩니다. 또한, 초기에 full node를 운영하기 위해서 2~3일간의 네트워크.. 2021. 3. 16.