의견.png

"북키퍼"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
19번째 줄: 19번째 줄:
 
=== 테스트 및 품질 보증 ===
 
=== 테스트 및 품질 보증 ===
 
DBFT 2.0 구현의 품질을 보장하기 위해 코드 변경은 여러 단계의 테스트를 거쳤다. 네오 핵심 개발자는 사설망에서 네오의 P2P 플러그인을 사용하여 네트워크 장애를 시뮬레이트하는 광범위한 테스트를 수행했다. NGD가 관리하는 사설망에서도 유사한 자동화 및 수동 테스트가 수행되었다. 마지막으로 코드는 네오 퍼블릭 테스트넷(Neo public TestNet)에서 테스트되었다.
 
DBFT 2.0 구현의 품질을 보장하기 위해 코드 변경은 여러 단계의 테스트를 거쳤다. 네오 핵심 개발자는 사설망에서 네오의 P2P 플러그인을 사용하여 네트워크 장애를 시뮬레이트하는 광범위한 테스트를 수행했다. NGD가 관리하는 사설망에서도 유사한 자동화 및 수동 테스트가 수행되었다. 마지막으로 코드는 네오 퍼블릭 테스트넷(Neo public TestNet)에서 테스트되었다.
 +
 +
== DBFT 외 합의 알고리즘 ==
 +
===Pow(Proof of Work)===
 +
*블록생성 시간동안 가장 많은 해시파워를 제공한 노드가 블록을 생성할 수 있도록 설계되었다.
 +
*과반수 이상이 원본이라고 믿고 거래를 한다면 원본이 되고, 그렇지 않다면 원본으로 채택되지 않는다.
 +
*토큰을 사용하거나 유지할 인센티브를 제공하지 않는다.
 +
*브렌치가 생긴 경우 가장 긴 블록체인이 남을 때까지 서로 경쟁하여 이긴 브랜치가 최종적인 브랜치로 채택이되며, 다른 브랜치는 버려지도록 설계되었다.
 +
*거래들이 처리될 때는 거래들이 '동시에' 처리된다.
 +
===Pos(Proof of Stake)===
 +
*코인을 보유한 지분율에 따라 새롭게 생성하는 코인을 분배받는 방식의 합의 알고리즘이다.
 +
*이자와 같은 방식으로 코인이 지급되며, 일정 수 이상의 코인을 보관하고 있는 지갑을 블록체인 네트워크에 연결시켜놓기만 하면 보상을 받을 수 있다.
 +
*지분을 많이 가지고 있는 노드에게 블록을 생성할 권한을 부여한다.
 +
*블록 생성자와 지분 생성자의 이해관계를 일치시킴으로써 블록을 나쁜 의도로 생성할 동기부여를 없애며, 잘못 생성할 경우 패널티를 부여한다.
 +
*Pos는 지분 증명으로 암호화폐를 많이 홀딩하고 있을수록 많은 수익을 얻게 되므로 기본적으로 많은 암호화폐를 보유한 자는 그 가치를 지키기 위해 네트워크를 배반하지 않을 것이라는 것을 전제로둔다.
 +
  
 
{{각주}}
 
{{각주}}
26번째 줄: 41번째 줄:
 
* 유병철 기자, 〈[http://news.g-enews.com/view.php?ud=201802121809505698581e5800d6_1&md=20180213175246_K 네오, 중국판 이더리움…가지고 있으면 이자도 주네]〉, 《글로벌이코노믹》, 2018-02-14
 
* 유병철 기자, 〈[http://news.g-enews.com/view.php?ud=201802121809505698581e5800d6_1&md=20180213175246_K 네오, 중국판 이더리움…가지고 있으면 이자도 주네]〉, 《글로벌이코노믹》, 2018-02-14
 
* Jeff s, 〈[https://medium.com/neo-smart-economy/neos-dbft-2-0-single-block-finality-with-improved-availability-6a4aca7bd1c4 NEO's dBFT 2.0-Single Block Finality with Improved Availability]〉, 《미디엄》, 2019-06-05
 
* Jeff s, 〈[https://medium.com/neo-smart-economy/neos-dbft-2-0-single-block-finality-with-improved-availability-6a4aca7bd1c4 NEO's dBFT 2.0-Single Block Finality with Improved Availability]〉, 《미디엄》, 2019-06-05
 +
* 동승, 〈[https://m.blog.naver.com/ehdtmdcouple/221182264880 합의 알고리즘 비교분석:Pow,PoS,Casper,DPoS]〉, 《네이버블로그》, 2018-01-10
  
 
== 같이 보기 ==
 
== 같이 보기 ==

2019년 8월 5일 (월) 16:03 판

네오(NEO)

북키퍼(BookKeeper)는 네오(NEO) 블록체인 네트워크를 구성하는 블록 생성자(BP)를 말한다. 블록 생성자는 블록체인에서 체인의 맨 끝에 새로운 블록을 생성하여 추가할 수 있는 사람을 말하며, 간략히 BP(비피)라고도 한다. 채굴자, 암호화폐 보유자, 대표자(증인) 등이 블록 생성자가 될 수 있는데, 네오(NEO)의 경우 이 블록 생성자를 북키퍼라고 부른다.

북키퍼 선출

네오 코인을 가진 사람들은 직접적으로 검증에 참여하지 않으며 대신 대표자를 뽑을 수 있는 투표권을 받는데 대표자로 뽑힌 사람들이 블록을 검증하고 생성하는 검증 노드의 역할을 하게 되는데 일명 북키퍼이다.

중국 최초의 암호화폐 네오는 '작업증명(PoW·Proof of Work)' 방식이 아닌 위임 비잔틴 장애 허용(DBFT·Delegated Byzantine Fault Tolerant) 방식을 적용하고 있다. 네오를 보유한 모든 사람들이 투표를 통해 협의체인 북키퍼(노드)를 뽑는다. 비유를 들자면 국민들이 국회의원을 뽑고, 국회의원들이 나라의 일을 결정하는 대의 민주주의와 비슷하다고 보면 된다.

네오 플랫폼에서 대표자로 뽑힌 사람들의 3분의 2가 찬성하면 거래내역을 의미하는 그 블록이 생성되고 블록체인에 연결되는 방식이다.이러한 이유로 네오 블록체인에서는 한번에 두개의 블록이 생성되어 포크가 일어날 수 없게 된다. 정확한 데이터를 기록해야 하는 기업들에게는 네오가 매력적인 플랫폼으로 다가올 수 밖에 없다. 만약 노드가 맘에 들지 않을 경우 네오의 보유자들은 투표를 통해 노드를 바꿀 수 있다.[1]

DBFT는 디지털 인증 기술과 결합될 수 있으며 북키퍼가 일반 개인이 될 수도 있지만 기관이 될 수도 있기에 합의를 통해 북키퍼를 동결하거나 취소, 회수, 사법적 조치도 가능하다고 한다.[2]

DBFT 2.0

배경

네오(NEO)의 DBFT 1.0 알고리즘은 드물게 네트워크 지연 시간에서 단일 블록 포크에 취약했다. 이 문제는 꽤 오랫동안 알려져 왔고 문서화 되었다. 노드가 PrepareResponse 메시지를 보낸 후 시간 초과되도록 허용 되었기 때문에 분기 된 블록이 발생할 수 있다. 이 문제는 블록 스포크(Block spork)라고 불린다. 이 문제는 합의를 지연시키지 않고 발생할 수 있지만, 많은 네오 전체 네트워크 노드는 잠재적으로 포킹된 블록을 수용하고 정지할 수 있으며, 결국 최종 사용자가 의존하는 네트워크 노드와의 운영 문제로 이어질 수 있었다.

문제 해결

DBFT 2.0 에서는 PBFT(Practical Byzantine Fault Tolerance) 문서에 기술된것과 유사한 커밋 단계를 추가하여 이 문제를 해결했다. 네트워크 스톨을 방지하기 위해 DBFT 2.0은 합의 프로토콜에 복구 메시지 구현도 추가한다. 복구 메커니즘은 합의된 노드와 함께 다양한 작동 문제가 발생할 경우 블록 시간을 개선하는 추가적인 이점을 갖는다. DBFT 2.0 구현은 합의 노드의 잘못된 동작을 감사할 수 있는 가시성을 제공한다. CN(Consensus 노드)은 발생한 모든 커밋을 추적하고 다른 CN이 중어진 높이에서 하나 이상의 잠재적 블록에 서명하도록 커밋 할 수 없도록 한다. CN 합의 로그는 CN이 정보를 CN 노드 운영자는 물론 컨센서스 감시 전용 모드를 활성화하는 모든 노드에서 이 정보를 즉시 사용할 수 있도록 한다.

테스트 및 품질 보증

DBFT 2.0 구현의 품질을 보장하기 위해 코드 변경은 여러 단계의 테스트를 거쳤다. 네오 핵심 개발자는 사설망에서 네오의 P2P 플러그인을 사용하여 네트워크 장애를 시뮬레이트하는 광범위한 테스트를 수행했다. NGD가 관리하는 사설망에서도 유사한 자동화 및 수동 테스트가 수행되었다. 마지막으로 코드는 네오 퍼블릭 테스트넷(Neo public TestNet)에서 테스트되었다.

DBFT 외 합의 알고리즘

Pow(Proof of Work)

  • 블록생성 시간동안 가장 많은 해시파워를 제공한 노드가 블록을 생성할 수 있도록 설계되었다.
  • 과반수 이상이 원본이라고 믿고 거래를 한다면 원본이 되고, 그렇지 않다면 원본으로 채택되지 않는다.
  • 토큰을 사용하거나 유지할 인센티브를 제공하지 않는다.
  • 브렌치가 생긴 경우 가장 긴 블록체인이 남을 때까지 서로 경쟁하여 이긴 브랜치가 최종적인 브랜치로 채택이되며, 다른 브랜치는 버려지도록 설계되었다.
  • 거래들이 처리될 때는 거래들이 '동시에' 처리된다.

Pos(Proof of Stake)

  • 코인을 보유한 지분율에 따라 새롭게 생성하는 코인을 분배받는 방식의 합의 알고리즘이다.
  • 이자와 같은 방식으로 코인이 지급되며, 일정 수 이상의 코인을 보관하고 있는 지갑을 블록체인 네트워크에 연결시켜놓기만 하면 보상을 받을 수 있다.
  • 지분을 많이 가지고 있는 노드에게 블록을 생성할 권한을 부여한다.
  • 블록 생성자와 지분 생성자의 이해관계를 일치시킴으로써 블록을 나쁜 의도로 생성할 동기부여를 없애며, 잘못 생성할 경우 패널티를 부여한다.
  • Pos는 지분 증명으로 암호화폐를 많이 홀딩하고 있을수록 많은 수익을 얻게 되므로 기본적으로 많은 암호화폐를 보유한 자는 그 가치를 지키기 위해 네트워크를 배반하지 않을 것이라는 것을 전제로둔다.


각주

  1. kimjaeh9, 〈네오(NEO)는 무엇인가?〉, Steemit, 2018-04-30
  2. 유병철 기자, 〈네오, 중국판 이더리움…가지고 있으면 이자도 주네〉, 《글로벌이코노믹》, 2018-02-14

참고자료

같이 보기


  의견.png 이 북키퍼 문서는 블록체인 기술에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.