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

포크능력증명

해시넷
이동: 둘러보기, 검색

포크능력증명(PoF, Proof of Forkability)이란 정해진 수의 선출된 검증자들이 투표를 통해 3분의 2 이상 찬성으로 의사결정을 하는 합의 알고리즘이다. 기존의 비잔틴 장애 허용(BFT)과 위임지분증명(DPoS) 합의 알고리즘의 장점을 결합하여, 애스톤(Aston)을 만든 ㈜엑스블록시스템즈가 개발했다.

개요[편집]

포크능력증명은 참여한 노드가 블록을 생성할 때 메인블록과 서브블록을 검증하는 방식이다. 단지 메인블록과 서브블록만 검증하면 되기 때문에 속도는 빠르고 효율성은 높아진다. 무엇보다도 하드웨어 성능이 낮은 모바일 기기도 하나의 노드 역할을 할 수 있다.[1] 발생되는 모든 기록을 하나의 선형적인 구조로 구성하는 것을 강제하지 않는다. 오히려 트랜잭션에 따라 의도적으로 분기(fork)를 허용함으로써, 유의미한 관계에 있는 트랜잭션들로 이루어진 개별적인 블록체인 구성이 가능하게 된다. [2]

등장배경[편집]

전자문서는 한 번 생성하면 추가, 삭제, 이동 등 많은 수정이 발생하기 마련이다. 초창기에는이더리움 기반의 프라이빗 네트워크로 구축하였으나 수정할 때마나 트랜잭션의 발생으로 이를 저장한 블록의 용량도 증가하게 되었다. 이것은 높은 컴퓨팅 파워가 필요하고 속도 또한 느려지는 결과를 초래했다. 블록 데이터의 비대화와 비효율 탓에 글로벌 문서 네트워크의 실현은 주춤하는 것 같았다. 그러한 상황속에서 엑스블록시스템즈는 전자문서에 특화된 플랫폼을 만들기 시작했다. 선형 구조의 기존 플랫폼과는 다른 다차원 구조를 선택했다. 또한 처음 문서은 메인블록에 생성되지만 이후 수정 과정은 서브블록에 기록된다. 이러한 구조는 전자문서의 모든 히스토리의 파악를 쉽게 만들었다. 또한 대용량 콘텐츠를 저장하고 유통하기 훨씬 수월해졌다.[1]

사용[편집]

애스톤(Aston)은 ㈜'엑스블록시스템즈(XBlock Systems)가 만든 블록체인 기반의 전자문서 인증 플랫폼을 위한 암호화폐이다. 이더리움 기반의 ERC-20 토큰으로써 애스톤은 다차원 블록체인 개념을 도입하였다. 문서의 생성은 메인 블록체인(main blocchain)에 기록하고, 해당 문서의 변경 이력은 각 문서별로 별도의 서브 블록체인(sub blockchain)에 기록하는 방식을 택하였다. 가기.png 애스톤에 대해 자세히 보기

특징[편집]

엑스.블록체인(X.Blockchain)은 기본적으로 PBFT+디포스(DPoS) 메커니즘을 이용하여 합의에 도달한다. 하지만 특수한 블록 연결 구조로 인하여, 분기 허용을 고려한 추가적인 합의 과정이 필요하다.

분기 허용[편집]

포크능력증명은 분기 허용을 고려한 증명 방식이다. 엑스.블록(X.Block) 생성과 신규 블록이 특정 서브체인으로 연결이 적법한지 여부가 고려 대상이다. 포크능력증명은 복수의 블록에 대한 합의 절차가 병렬적으로 진행되어질 수 있다. 서로 다른 서브체인에 속하는 블록들은 타 블록에 대한 합의 절차 결과와 동기화 될 필요 없이 동시적으로 제안이 가능하다. 물론 하나의 서브체인 내에서는 여전히 블록 생성을 위한 합의 절차 사이에 동기화가 이루어져야 하지만, 전체 블록체인의 범주에서 보자면 동일한 시간 내에 더 많은 블록이, 보안에 대한 손상 없이, 생성될 수 있으며 이는 더 빠르고 효율적인 트랜잭션 처리가 가능함을 의미한다. 기존의 BFT(Byzantine Fault Tolerance) 기반의 합의 메커니즘과 비교해 본다면, 제안된 블록에 대한 합의를 이루는 과정이 다수의 라운드(round)와 복수의 과정을 처리해야 필요가 없다. 또한 특정 블록에 대한 합의 절차가 완료되어 블록체인에 해당 블록이 연결되기 전까지 다음 블록에 대한 처리의 지연도 발생하지 않는 차이점이 있다.[2]

X.Tx 확인[편집]

X.Tx이 네트워크에 제출 되면, 트랜잭션을 구성하는 각 필드 값의 유효성과 현재 X.Tx 제출자의 전자서명을 확인하고, 해당 제출자의 계정에 엑스.블록(X.Block) 생성 비용을 지불할 충분한 자산이 있는지 확인한다. X.Tx에 대한 유효성 검사가 완료되면 엑스.블록이 생성된다. 그리고 그것이 검증자(Validators)에게 전달된다. 이 때 엑스.블록은 서브체인의 체인아이디(ChainID) 값이 되는 고유의 블록번호를 부여 받는다.[2]

엑스.블록 확인[편집]

엑스.블록이 제출되면 포함된 X.Tx에 대한 확인 작업을 각각의 검증자가 다시 진행한다. 이후 엑스. 블록에 할당된 블록번호와 이전 블록들과의 해시 연결을 점검한다. 엑스.블록은 더블 해시 링크(Double Hash Link)구조를 가지므로 연결된 두가지 해시 전부를 확인해야 한다. 이 과정이 성공적으로 진행되면 엑스.블록에 대하여 검증자들의 서명이 이루어지고 서명된 엑스.블록은 다시 다른 검증자에게 제출되어 PBFT(Practical Byzantine Fault Tolerance) 합의 알고리즘의 절차가 진행된다.[2]

분기[편집]

엑스.블록에서 분기(Forking)가 발생한다. 첫 번째가 메인 체인 내에서 엑스.블록 다음에 연결되는 블록이다. 이 블록은 {X.Block Block Number} + 1 의 블록번호를 갖는다. 두 번째는 엑스.블록을 시작으로 생성되는 서브체인 상에서 엑스.블록 다음에 연결되는 블록이다. 이 블록의 블록번호는 {ChainID}.{N} 의 형식을 갖는다. 따라서 엑스.블록에는 최대 2개의 블록이 연결될 수 있다.[2]

각주[편집]

  1. 1.0 1.1 한만혁 기자, 〈애스톤, 위조 불가능한 전자문서를 꿈꾸다〉, 《블록체인뉴스》,2018-08-30
  2. 2.0 2.1 2.2 2.3 2.4 Yongseok Kwon, 〈애스톤기술백서〉, 《애스톤》, 2018-08-14

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 포크능력증명 문서는 합의 알고리즘에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.