본문 바로가기

Bitcoin17

비트코인의 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.
비트코인의 네트워크(새로운 노드가 추가되는 원리) 비트코인은 각각의 노드가 중앙서버 없이 연결되어 탈중앙화된 네트워크라고 불립니다. (노드는 각 컴퓨터를 뜻한다고 보시면 됩니다.) 이번 포스팅에서는 어떻게 새로운 노드가 비트코인 네트워크 안에 포함되는지 알아보겠습니다. 약간의 네트워크에 대한 이해가 조금 있으시면 좋습니다. 새로운 노드가 비트코인 네트워크 안에 추가되고싶다면 기존의 비트코인 네트워크를 이루고 있는 노드들중 하나를 찾아서 그 노드와 연결하면 될 것입니다. 이 과정에 있어서 물리적인 거리는 영향을 끼치지 않습니다. 즉, 새로 추가되고싶어하는 노드 주변에 가까운 노드(비트코인 네트워크를 이루고 있는)와 먼저 연결을 시도하는 것은 아닙니다. 그럼 어떻게 기존 노드를 찾을까요? 첫번째 방법으로는 DNS seeds를 이용하는 방식입니다. Maste.. 2021. 3. 15.
비트코인의 UTXO란? 비트코인에 대해 공부하다보면 UTXO란 단어를 자주 보게됩니다. 오늘은 정확히 UTXO가 뭔지 알아보겠습니다. UTXO란 Unspent Transaction Output의 약자입니다. 이해를 돕기 위해 예시를 들어 설명해보겠습니다. 현실세계에서 지갑에 현금 10만원을 가지고 있다고 가정해봅시다. 10만원짜리 수표 1장을 가지고 있을 수도 있지만 대부분 천원, 오천원, 만원, 오만원 등의 여러 조합으로 10만원이란 금액을 가지고 있을것입니다. UTXO는 이렇게 낱개의 금액을 나타낸다고 보면 됩니다. 즉, 비트코인 지갑에서 1BTC를 가지고 있단 것은 1BTC짜리 1개의 UTXO를 가지고 있는 것일 수도 있지만 아마 대부분은 0.1BTC짜리 UTXO, 0.2짜리, 0.5짜리, 0.4552짜리 .... 이런식.. 2021. 3. 14.