검수요청.png검수요청.png

북키퍼

위키원
Asadal (토론 | 기여)님의 2019년 8월 5일 (월) 22:01 판 (참고자료)
이동: 둘러보기, 검색
네오(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)에서 테스트 되었다.

생성 시간 및 처리량

매 블록 생성 시간은 15~20초가 소요되며 평균처리 속도는 1,000TPS이다. 다른 암호화폐 처리량을 보면 비트코인은 7TPS, 이더리움은 15~20TPS 수준이고, 이오스는 3,000~4,000TPS이다.[3]

문제점

현재 네오 투표 시스템에는 1개의 네오 토큰이 1표이고 자체 투표에 최소 1000개의 네오 토큰이 필요한 결함이 있지만 각 북키퍼는 선택 후 한 표의 투표권을 갖는다. 카르텔은 각각에 동의하고 서로 투표 할 수 있다. [4]

각주

  1. kimjaeh9, 〈네오(NEO)는 무엇인가?〉, Steemit, 2018-04-30
  2. 유병철 기자, 〈네오, 중국판 이더리움…가지고 있으면 이자도 주네〉, 《글로벌이코노믹》, 2018-02-14
  3. 부자아빠, 〈(펌)개발자의 시선) 좋은 블록체인의 기준은 무엇일까〉, 《코박》, 2019-07-09
  4. thellimist, 〈네오〉, 《GitHub》, 2018-07-14

참고자료

같이 보기


  검수요청.png검수요청.png 이 북키퍼 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.