본문 바로가기

Bitcoin3

[비트코인]SegWit vs SegWit2x - 세그윗과 세그윗2x SegWit (Segregated Witness) - 분리된 증인 BlockStream의 Peter Wiulle가 구상한 SegWit은 하나의 Side Chain 개념이다. 분리된 증인(Segregated Witness)는 각각의 트랜잭션, 전체 트랜잭션의 서명 정보와 같다. 기존의 서명정보는 Merkle Tree에 같이 존재해왔지만, SegWit을 통해 Side Chain으로 분리해 Main Chain과 병렬적으로 동작한다. BIP 141 (Bitcoin Improvement Proposal)에서 제한된 기존 트랜잭션의 포멧을 바꾸는 Soft Fork이다. BIP는 Bitcoin 개선안을 제안한 것들을 의미한다. BIP 뒤에 존재하는 숫자는 몇 번째로 제안된 개선안인지를 의미하는데 BIP 414에서는 .. 2019. 4. 4.
비트코인이 Merkle Tree를 사용하는 이유 왜 Bitcoin은 Merkle Tree 구조를 사용할까?Bitcoin은 Transaction을 Merkle Tree 구조로 구성한 다음 Root Node의 해시 값(Merkle Root)를 블록헤더에 넣어서 블록을 만드는 과정을 거친다.그런데 "왜 비트코인에서 블록헤더에 Transaction 정보들을 Merkle Tree구조로 저장을 할까?"라는 의문이 들었다. Why Tree?Merkle Tree를 알아보기 전 왜 Tree구조를 사용할 까라는 생각이 들었다. 컴퓨터 자료구조의 큰 관점으로 보면 선형구조(List, Stack, Queue 등), 비 선형구조(Graph, Tree)로 나눌 수 있다.선형구조와 비 선형구조에서 차이점은 노드 검색속도로 들 수 있다. 예시를 통해 보면 더 쉽게 이해할 수 있다.. 2019. 2. 24.
[비트코인]Bitcoin Transaction Bitcoin Transaction인터넷으로 블록체인을 공부하다보면 햇갈리는 내용들이 자주 나온다. 그 중에서 Bitcoin의 Transaction에 대한 내용인데, 사실 이 부분을 누군가에게 설명하기 전에 혼자 공부를 할때는 이해가 가는 것 같았지만 막상 설명하려고 하니 의문점이 많았다. 그 내용을 바탕으로 정리를 해보았다. 예를 들어보자, A에서 B로 송금한다고 가정한다. 1. 먼저 Transaction정보 (A->B 거래정보)와 B의 공개키를 가져와서 해싱을 한다.2. A의 개인키로 전자서명을 한다.3. 모든 노드들에게 Broad Casting한다.4. 마이너는 A의 공개키를 이용해서 전자서명을 검증 후 트랜잭션 풀에 등록을 한다. (비트코인에서는 해시함수로 SHA-256를 사용한다.)이 부분이 끝.. 2018. 11. 26.