본문 바로가기

Bitcoin17

비트코인의 채굴심화 (Extra Nonce) 이 글은 선수지식으로는 비트코인의 기본채굴원리와 머클트리입니다. 아직 모르신다면 아래 링크를 참고해주세요. 비트코인의 채굴원리: up-to-date-items.tistory.com/103 비트코인의 머클트리: up-to-date-items.tistory.com/96 이전 글에서 이런 의문이 있었습니다. Nonce의 최대값이 약 42억정도면 그냥 block header의 Nonce를 빠르게 1부터 42억까지 돌리면 비트코인 채굴을 할 수 있는 것이 아닌가? 요즘 비트코인전용 채굴기의 경우 Nonce값의 범위(1~약 42억)를 전부 체크하는데 1초보다 훨씬 빠르게 계산해냅니다. 그러나 Nonce값을 전부 체크해보더라도 Target 값보다 같거나 작지않을 수가 있습니다. 대부분의 경우 Target보다 큽니다... 2021. 3. 22.
비트코인에서의 분기 비트코인은 하나의 서버가 정보를 모두 가지고 있고 사용자들은 같은 서버에서 정보를 받는 형태가 아닌 각각의 노드가 정보를 주고 받는 탈중앙화 형태이기 때문에 분기가 일어날 수가 있습니다. 분기가 일어난 경우에는 결국 더 길어진 분기가 승리를 하게됩니다. 예를들어 Alice와 Jace가 있는데 둘이 거의 동시에 Nonce값을 찾는데 성공하여 블록생성을 한 후에 각자 자기 주변의 노드들에게 알렸다고 가정해봅시다. 그럼 어떤 노드들은 Alice가 생성한 블록을 Jace가 생성한 블록보다 먼저 전파받을 것입니다. (그 반대의 경우도 있겠지요.) 그럼 Alice의 블록을 전파받은 블록들은 Alice의 블록을 메인이라고 생각하고 현재 블록체인에 이어가고 Jace의 블록은 secondary block으로 취급합니다... 2021. 3. 21.
비트코인의 orphan block 이번 글의 선수지식으로는 비트코인에서 어떻게 두개의 포크가 일어나는지에 대해 알고있어야합니다. 모르신다면 아래 링크를 참고해주세요. 비트코인에서의 분기: up-to-date-items.tistory.com/106 비트코인의 orphan block은 두개의 포크가 일어나는 과정에서 탄생하게 됩니다. 두개의 포크가 일어난 후에 결국 한쪽 포크가 승리를 하게되고 메인체인에 등록되어 이어나가게 되는데 그럼 패배한 포크에 있는 블록은 block header에서 가리키는 부모 노드가 없어져버립니다. 이렇게 된 블록을 orphan block이라고 합니다. orphan block내에 있던 transaction들은 다시 memory pool에 들어가게 되고 다음 블록에 추가되기를 기다립니다. 2021. 3. 21.
비트코인의 지갑 이번 글에서는 비트코인의 지갑이 어떤 표준들에 의해 만들어지고 관련 기술들에 대해 알아보겠습니다. 보통 비트코인의 지갑들은 BIP-32, BIP-39, BIP-44를 참고하여 만듭니다. (이더리움도 조금씩 다른부분이 있지만 비슷합니다.) 대부분 HD지갑으로 만들게 되는데 HD는 Hierarchical Deterministic의 약자입니다. HD지갑의 특징은 트리 구조로 파생된 키들을 가지고 있습니다. 트리 구조이기 때문에 부모로부터 자식을 만들고 그 자식은 다시 부모가 되어 자식을 만들 수 있습니다. 아래와 같은 형태입니다. HD지갑의 장점은 책에서 2가지를 소개하고 있습니다. 첫번째는 하위키의 특정분기의 역할을 나누어서 각각 다른용도로 사용할 수 있다는점입니다. 두번째는 개인키에 접속하지 않고 사용자가.. 2021. 3. 19.