Proof of Formulation

합의 알고리즘이란?

MEVerse는 PoW(Proof-of-Work; 계산 작업 증명) 혹은 PoS(Proof-of-Stake; 지분 증명)와 같은 기존의 합의 방식을 대신하여 불필요한 Fork를 방지하기 위한 새로운 합의 방식을 개발하였습니다. 이 새로운 합의 방식인 PoF(Proof-of-Formulation)는 블록 채굴 순서를 합의하여 지정된 순서에 의해서 블록을 생성하며, 이를 통해 블록의 전파 범위를 줄임으로써 블록 생성 및 전파를 신속하게 처리할 수 있습니다. 또한 옵저버 노드를 통한 즉시 컨펌이 가능합니다.

MEVerse가 개발한 PoF의 합의 과정은 생성된 블록의 유효성을 검증하고, 네트워크에서 기록을 변조 불가능하게 하는 알고리즘을 통해 이루어집니다.

PoW 알고리즘은 채굴 경쟁을 통해 난이도를 높이는 구조로 시빌 공격 또는 이중 암호 공격과 같은 문제를 해결합니다. PoS 알고리즘은 소유자가 소유한 코인의 양에 비례하여 채굴 보상을 할당함으로써, PoW의 높은 전력 소비 문제를 해결합니다.

DPoS(Delegated-Proof-of-Stake; 위임지분증명) 알고리즘은 토큰 보유자가 블록 생성자, 혹은 증인 시스템을 사용하여 채굴과 검증을 하는 합의 구조를 통해 트랜잭션 속도 문제를 개선합니다. 즉, 일반적인 블록체인 네트워크에서는 블록이 전 세계 네트워크에서 동시다발적으로 생성될 수 있기 때문에 Fork를 방지하기 위해 난이도를 통해 블록 생성 시간을 조절하는 방식을 사용하며, 이로 인하여 블록체인의 속도가 심각하게 제한됩니다.

MEVerse는 Formulator 그룹에 의해 블록 채굴에 관한 순서를 합의하는 혁신적인 설계로 이 문제를 해결합니다. 블록 생성은 블록 생성자, 동기화 그룹을 통해 진행됩니다. Formulator 그룹은 네트워크에서 블록 생성 순서를 공유하고 확인하며, 공유되고 동기화된 순서를 통해 블록 생성을 진행합니다. 가장 높은 순위의 Formulator가 블록을 생성하고, 다음 블록은 다음 순위가 생성하는 순환 방식을 이용하여 고속 거래 메커니즘을 제공하고 안정적인 블록 생성을 수행합니다.

MEVerse는 PoF 합의 구조를 통해 탈 중앙화에 한층 다가갔으며, 초고속 거래 속도를 실현해 내는 등 기존 알고리즘의 단점을 보완하였습니다.

1) Formulator 그룹 검증을 통한 블록 생성

PoF (Proof-of-Formulation)의 블록 생성 순위는 Formulator 그룹의 점수 목록 순서를 따릅니다. 이 그룹에서 최상위 순위 노드는 블록 생성자의 작업에 할당되고, 2번째에서 10번째 순위들은 블록 생성 순서에 동의하는 동기화 그룹이 됩니다.

블록 생성자는 블록을 생성하고, 서명한 다음 옵저버 노드로 보냅니다. 그 후 옵저버 노드는 우선순위가 가장 높은 블록 생성자의 공개키를 사용하여 블록과 서명을 확인합니다. 옵저버 노드는 그 후 5개 노드 중 최소 3개 이상의 서명을 통해 블록을 컨펌합니다. 그다음 동기화 그룹은 블록을 받아 전체 거래 내역과 옵저버 노드의 서명을 확인한 후 블록체인에 블록을 추가하고 연결된 모든 노드에 동기화 결과를 전달합니다.

이후 블록을 생성한 1위 노드가 그룹에서 나가게 되면, 11번째 노드가 그룹에 진입하고 다시 진행됩니다. 우선순위는 모두 블록 높이에 의해 결정되는 값이므로 임의로 순서를 바꿀 수 없고, 모든 노드가 동일 내역을 받아 검증하므로 변조할 수 없습니다.

이렇게 동기화 그룹이 블록을 전파함으로써 옵저버 노드와 블록 생성자에 대한 트래픽 부담을 줄이고 생성된 블록을 빠르게 전파시킵니다. 생성된 블록이 체인에 추가되면 이전의 첫 번째 순위 노드는 자동으로 밑의 순위로 이동하고 두 번째 순위 노드는 최고 순위가 되어 다음 블록을 생성하기 시작합니다.

블록을 수신하는 모든 노드는 블록 내용과 서명 자체를 확인하므로 잘못된 트랜잭션을 포함하는 블록이 생기더라도 해당 블록을 체인에 추가하지 않습니다. 이렇게 PoF (Proof-of Formulation)의 블록 생성 프로세스는 블록 생성 및 검증 시간을 단축시키고, 동기화된 순서를 이용하여 블록 생성을 진행하며, 옵저버 노드에 의해 실시간으로 검증되어 Fork를 방지합니다. 또한 블록 생성 작업과 동기화 작업이 분담되어 각 그룹이 특정 작업에 집중할 수 있게 하는 동시에 네트워크 부담을 줄여줍니다.

동기화 그룹 및 옵저버 노드는 모두 지정된 작업에만 집중을 하기에 전체 네트워크가 최소한의 부하로 작동합니다. 가장 효율적인 블록 생성 프로세스를 위해 최고 순위 노드가 여러 블록을 연달아 생성할 수 있습니다. 이러한 블록 생성 한계 값은 초기에 기본 값으로 설정되지만, 나중에 거버넌스 등을 통해 수정할 수 있습니다.

포뮬레이터 그룹에 참여하기 위해서는 MEVerse 코인을 보유하고 있어야 합니다. 일단 MEVerse에 의해 옵저버 노드가 작동하게 되고, 후에는 MApp과 같은 위임자들이 운영하게 됩니다. MEVerse 체인에 참여하는 포뮬레이터에게는 MEVerse 코인이, 특정 MApp의 토큰을 보유한 포뮬레이터에게는 해당 MApp 코인이 보상으로 제공될 것입니다. 이러한 방식이 기본적으로 적용되지만 MApp 개발자들은 그들의 포뮬레이터에게 제공할 보상 플랜을 직접 맞춤 설정할 수도 있습니다.

블록을 생성하는 모든 포뮬레이터들은 Formulator Account를 가지고 있습니다. 이러한 모든 Formulator Account들의 가장 최근 생성한 블록 정보 및 Block Generation Round에 참여한 정보가 이용됩니다. 이 order sheet는 블록 내의 정보를 이용하고 블록에 의해 생성되기 때문에 모든 노드는 같은 order sheet를 가지고 있습니다. 포뮬레이터들이 온라인이라는 보장이 없기 때문에, 옵저버 노드는 Block Generation Round 초기에 탑 포뮬레이터 리스트에 동의하고 제출함으로써 포뮬레이터들이 온라인으로 연결될 수 있게 합니다.

합의된 탑 포뮬레이터는 Round State에 의해 리뷰된 블록 생성 메시지를 받을 것이고, 그 후 블록이 확인되면 옵저버 서명(Observer Signature)을 수집합니다. 이 과정에서 다수가 모이면, 그들은 블록을 확인하고 전파합니다. 이 과정에서 포뮬레이터들은 각 그룹의 순서에 따라 로테이트 되기 때문에 동기화 그룹과 시드 노드 그룹은 포뮬레이터와 관련된 보상은 추가로 받지 않습니다. 옵저버 노드는 감시 노드로, 따로 참가 보상이 없이 블록 생성과 알림의 역할 만을 수행합니다.

2) Fork 방지

이와 같이 효율적이고 혁신적인 시스템을 통해 Fork가 일어나지 않습니다.

동일한 높이를 갖는 2개의 블록이 옵저버 노드에 들어가면, 5개 노드 중 3개 이상의 서명을 요구하는 것으로 Fork 감지가 가능합니다. 이렇게 옵저버 노드가 서명 충돌을 감지하므로 Fork가 일어날 수 없습니다.

만약 옵저버 노드가 보안 위협 등으로 인해 이상 행동을 하면 Panic Protocol을 통해 체인을 정지하여 자산을 보호하며, Formulator 그룹이 이상 행동을 하면 Formulator Ban Protocol을 이용하여 해당 Formulator를 중지시킵니다.

Last updated