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

포뮬레이션증명

위키원
125.130.74.159 (토론)님의 2020년 2월 4일 (화) 12:35 판 (개요)
이동: 둘러보기, 검색

포뮬레이션증명(PoF, Proof of Formulation)이란 포뮬레이션 보상 순서를 바탕으로 채굴자를 선택하는 합의 알고리즘이다. 플레타(Fleta)가 기존의 위임지분증명(DPoS)을 일부분 변형하여 만든 알고리즘이다. 포뮬레이션증명을 사용하면, 블록의 전파 범위를 줄여줌으로써 블록 생성과 배포를 더 빠르게 처리할 수 있다.

개요

포뮬레이션증명(PoF, Proof of Formulation)은 기존 알고리즘의 단점을 보완할 뿐만 아니라 초고속 거래속도를 실현해 냈다. 플레타는 포뮬레이션 증명은 한층 더 탈중앙화를 실현했다. 위임지분증명과 비슷해 보이지만 투표가 아닌 스코어를 기반으로 작동한다. 그로 인해 EOS와 비교하여 훨씬 더 많은 노드의 네트워크 참여 기회를 제공한다. 신규 포뮬레이터에게도 보상기회를 제공하기 위해 임의의 값과 네트워크 검증 기여도를 합산하여 순번을 정한다. 그뿐만 아니라 옵저버 노드의 실시간 컴펌을 통해 포크를 방지하고 있다. 포뮬레이터 그룹은 네트워크에서 블록 생성 순서를 고유하고 확인하며, 공유되고 동기화된 순서를 통해 블록 생성을 진행한다. 가장 높은 순위의 포뮬레이터가 블록을 생성하고 다음 블록은 다음 순위가 생성하는 순화 방식을 이용하여 고속 거래 메커니즘을 제공하고 안정적인 블록 생성을 수행한다. [1]

등장 배경

플레타는 작업증명(PoW) 혹은 지분증명(PoS)와 같은 기존의 합의 방식을 대신하여 불필요한 포크(Fork)를 방지하기 위한 새로운 합의 방식을 개발하였다. 이 새로운 합의 방식인 PoF(Proof of Formulation)는 블록 채굴 순서를 합의하여 지정된 순서에 의해서 블록을 생성하며 이를 통해 블록의 전파 범위를 줄임으로써 블록 생성 및 전파를 신속하게 처리할 수 있다. 또한 옵저버 노드를 통한 즉시 확인이 가능하다. 작업증명 알고리즘은 채굴 경쟁을 통해 난이도를 높이는 구조를 택하여 이중암호 공격과 같은 문제를 해결했다. 하지만 높은 저력 소비가 문제로 나타남에 따라 지분증명 방식이 탄생했다. 이후 증인 시스템을 사용하여 채굴과 검증을 하는 합의 구조를 통해 트랜잭션 속도문제를 개선한 디포스(DPoS)가 등장하였다. 일반적인 블록체인 네트워크에서는 블록이 전 세계 네트워크에서 동시 다발적으로 생성된다. 그렇기 때문에 포를 방지하기 위해서 난이도를 통해 블록 생성의 시간을 조절하는 방식을 선택한다. 그러나 이 방식은 블록체인의 속도를 심각하게 제한하게 되는 결과를 초래했다. 플레타는 이러한 문제를 해결하기위하여 포뮬레이터 그룹에 의해 블록 채굴에 관한 순서를 합의하는 새로운 증명방식을 공개했다. [1]

사용

플레타(Fleta)는 기존 이더리움이오스의 한계를 넘어서 빠른 속도와 안정성을 제공하는 플랫폼을 지향하는 암호화폐이다. 포뮬레인션증명(PoF) 합의 알고리즘을 사용하여 많은 노드가 네트워크 운영에 참여할 수 있는 기회를 제공한다. 플레타는 분산 응용 프로그램의 독립성 및 확장성을 향상시키고, 디앱이 기존 모델을 뛰어 넘는 서비스 및 운영 자율성을 가질 수 있게 해주는 새로운 블록체인 구조를 제공한다.[2] 가기.png 플레타에 대해 자세히 보기

특징

블록 생성 과정

1. 블록 생성자는 블록 생성과 서명 후 옵저버 노드에게 전송 2. 옵저버 노드는 블록 생성자의 공개키를 사용하여 블록과 서명 확인 3. 옵저버 노드는 그 후 5개 노드 중 최소 3개 이상의 서명을 통해 블록을 컨펌 4. 동기화 그룹은 블록을 받아 전체 거래 내역과 옵저버 노드의 서명을 확인 5. 블록체인에 블록을 추가하고 연결된 모든 노드에 동기화 결과를 전달[1]

포뮬레이터 그룹 검증

포뮬레이션증명은 포뮬레이터 그룹의 검증을 통해 블록을 생성한다. 블록 생성 순위는 포뮬레이터 그룹의 점수 목록 순서를 따른다. 최상위 순위 노드가 블록 생성자의 작업에 할당되고, 그 외 순위들은 블록 생성 순서에 동의하는 동기화 그룹으로 분류된다. 블록 생성자는 블록을 생성과 서명을 완료한 후 옵저버 노드에게 전송한다. 옵저버 노드는 서명을 통해 블록을 컨펌한다. 그 다음 동기화 그룹은 블록을 받아 전체 거래 내역과 옵저버 노드의 서명을 확인한 후 블록체인에 블록을 추가하고 연결된 모든 노드에 동기화 결과를 전달한다. 동기화 그룹이 블록을 전파함으로써 옵저버 노드와 블록 생성자에 대한 트래픽 부담을 줄이고 생성된 블록을 빠르게 전파시킨다.[1]

블록을 수신하는 모든 노드는 블록 내용과 서명 자체를 확인하므로 잘못된 트랜잭션을 포함하는 블록이 생기더라도 해당 블록을 체인에 추가하지 않는다. 이렇게 포뮬레이션증명의 블록 생성 프로세스는 블록 생성 및 검증 시간을 단축시키고, 동기화된 순서를 이용하여 블록 생성을 진행하며, 옵저버 노드에 의해 실시간으로 검증되어 포크를 방지한다. 또한 블록생성 작업과 동기화 작업이 분담되어 각 그룹이 특정 작업에 집중할 수 있게 하는 동시에 네트워크 부담을 줄여준다. 동기화 그룹 및 옵저버 노드는 모두 지정된 작업에만 집중하기 때문에 전체 네트워크가 최소한의 부하로 작동한다.[1]

포크 방지

포뮬레이션증명은 옵저버 노드와 같은 혁신적인 시스템을 통해 포크(Fork)을 방지한다. 만약 동일한 높이의 블록이 옵저버 노드에 2개가 들어가면, 옵저버 노드는 서명 충돌로써 비정상적인 작동으로 감지하게 된다. 위협과 같은 이상 행동이 감지되면 파닉스(Panic) 프로토콜을 통해 옵저버 노드는 체인을 정지하여 자산을 보호한다. 그뿐만 아니라 포뮬레이터 그룹이 이상 행동을 할 경우, 포뮬레이터 밴 프로토콜(Formulator Ban Protocol)을 이용하여 해당 포뮬레이터를 중지시킨다.[1]

참고자료

같이 보기


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

  1. 1.0 1.1 1.2 1.3 1.4 1.5 FLETA.io, 〈플레타백서〉, 《플레타》
  2. 플레타〉, 《해시넷》