# 합의

### **위임 지분 증명 (Delegated Proof of Stake, DPoS)**

바이프로스트 네트워크는 **DPoS** 합의 방식을 채택한 블록체인입니다. 이 프로토콜에서는 노미네이터 (Nominator)가 자신의 BFC를 스테이킹 (Staking)하여 검증자 (Validator)의 지명에 참여합니다. BFC를 스테이킹한 사용자라면 누구나 검증자 또는 노미네이터로서 바이프로스트 합의에 기여할 수 있습니다.

활성 검증자 세트는 매 라운드마다 갱신됩니다. 검증자는 자체 스테이킹 지분과 노미네이터로부터 위임받은 지분(Delegated Stake)을 합산한 총 투표권 기준으로 순위가 매겨지며, 상위 N명의 검증자만이 다음 라운드의 합의 참여 권한을 갖습니다. 각 라운드 종료 시, 검증자는 네트워크 보안 및 안정성 기여에 대한 라운드 보상을 받으며, 이 중 일부는 위임한 노미네이터에게 비례 배분됩니다.

부정 행위를 저지른 검증자는 슬래싱 (Slashing) 대상이 되어 스테이킹된 BFC 중 일정 비율이 차감됩니다. 검증자는 지속적으로 높은 투표권을 유지하여 활성 세트에서 보상을 받으며 재선정 기회를 높입니다. 노미네이터는 지분 보호 및 보상 획득을 위해 신뢰할 수 있는 검증자를 선택하도록 유도됩니다. 이처럼 바이프로스트의 DPoS 메커니즘은 상호 신뢰와 공생 관계를 통해 네트워크의 안정성과 신뢰성을 강화합니다.

### **블록 생성**

바이프로스트 네트워크의 블록 생성 엔진은 **AuRA** (Authority Round)입니다. AuRA는 라운드-로빈(Round-Robin) 방식으로 현재 슬롯의 블록 생성자를 순차적으로 선정하여 작동합니다. 네트워크가 안정적인 경우, 모든 활성 검증자는 각 라운드에서 동일한 수의 블록을 생성합니다.

### 블록 최종화

바이프로스트 네트워크의 블록 확정 엔진은 **GRANDPA** (GHOST-based Recursive Ancestor Deriving Prefix Agreement)입니다. GRANDPA는 결정론적 완결성(Deterministic Finality)에 기반한 합의 방식입니다. 각 라운드에서 선택된 모든 활성 검증자는 블록의 최종성을 결정하기 위해 투표 과정에 참여합니다.

투표 과정은 **프라이머리 노드 (Primary Node)를 선택하는 것**으로 시작됩니다. 프라이머리 노드는 자신의 관점에서 체인에서 가장 높은 블록을 선택하고 해당 블록 데이터를 네트워크에 전파합니다. 나머지 노드들이 블록 데이터를 수신한 후 해당 블록에 투표하여 최종 확정을 진행합니다. 모든 활성 검증자의 3분의 2 이상이 블록을 승인하면 해당 블록 번호 아래의 모든 블록이 최종 확정됩니다.
