블록체인

블록체인 2017. 12. 13. 21:27

블록체인 개념을 잡기 좋은 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으로 대체된다.

   

Posted by yongary
,