블록체인 개념을 잡기 좋은 2가지 글.
1. Proof of Work개념도 : REF
- 비트코인에서 처음으로 쓰인 용어로서, 거래의 시작(비트코인에서는 mine 채굴완성)을
검증하기 위해 여러개의 core 클라이언트 노드에서 인증을 하는 프로세스를 의미.
2. Java소스로 설명: REF
비트코인 Node: P2P 네트워크를 이용하는데, 노드들은 2가지 종류가 있다.
1. Full Node : Wallet, network라우팅 외에, mining기능, full blockChain저장 기능.
2. SPV node: Wallet기능과 network라우팅 기능만 수행.
코어node 스타트시:
( 비트코인 core 클라이언트에 하드코딩되고, 비트코인 community멤버에 의해유지되는 DNS seeds를)
DNS 쿼리를 통해, 모든 core peer들을 찾는다.
3. Conflict 해결 방법:
80번 block이 최신버전인 상태에서, 동시에 약 3개의 81번 block이 peer들에서 생성이 된 경우, 어떤 로직으로 진짜 81을 선택하는가?
비트코인에서는 Longest Chain Rule을 적용한다.
- 81a, 81b, 81c 3개가 비슷한 시점에 들어왔다면
- 그 다음 82가 먼저 들어오는 block 즉 내가 81a+82a를 만들기전에 81b+82b를 본다면 82b를 채택해서
83b를 만들면 된다.
- 즉, 81a가 없어지고 83b가 되는 것이다. 이렇게 해서 Logest Chain을 구현한다.
4. Double Spend로직: (해킹이 어렵도록 하는 로직 중 하나)
- payment 기록을 2개를 만든다. (하나는 online판매자용, 하나는 나를 위한 전용)
- 판매자용 기록만 전송한다.
- 기록이 honest block에 기록되면 일단 판매자는 상품을 전송하고, 나는 상품을 받는다.
- 조용히(비밀리에) Longer Chain of block을 만드는데 이때는 판매자용 기록은 제외하고,
나를 위한 기록을 추가한다.
- Longer Chain을 publish한다. Longest chain rule에 의해 기존 판매자용 기록은 없어지고,
새로만들어진 chain으로 대체된다.