[논문 리뷰] YAC: BFT Consensus Algorithm for Blockchain
YAC는 블록체인 시스템을 위한 새로운 비잔티노스 결합성 알고리즘으로, 블록 제안에 대한 모듈형 투표 기반 접근 방식을 사용함으로써 기존 PBFT와 같은 전통적 BFT 프로토콜에 비해 확장성과 효율성을 향상시킨다. 3f+1 개의 피어 네트워크에서 최대 f개의 고장 난 피어를 수용하면서 안전성과 활성화를 보장하며, 네트워크 크기에 따라 투표 단계 지연 시간을 조정함으로써 64개의 피어까지 확장 가능한 실험에서 높은 처리량과 낮은 지연 시간을 달성한다.
Consensus in decentralized systems that asynchronously receive events and which are subject to Byzantine faults is a common problem with many real-life applications. Advances in decentralized systems, such as distributed ledger (i.e., blockchain) technology, has only increased the importance of finding performant and secure solutions to consensus of state machine replication in decentralized systems. YAC is a practical decentralized consensus algorithm, that solves the problems of inefficient message passing and strong leaders that occur in classical Byzantine fault tolerant consensus algorithms. The algorithm is open source and currently is used to provide Byzantine fault tolerant consensus for the Hyperledger Iroha blockchain project. We provide proofs of safety and liveness, as well as empirical results showing that our algorithm can scale to dozens of validating peers.
연구 동기 및 목표
- 기존의 PBFT와 같은 전통적 BFT 결합성 알고리즘에서 관찰되는 메시지 전송 비효율성과 강력한 리더 의존성 문제를 해결하기 위해.
- 검열 및 정치적 저항에 강한 실용적이고 모듈러한 BFT 결합성 알고리즘을 설계하기 위해.
- 비잔티노스 결함 가정 하에 안전성과 활성화에 대한 형식적 증명을 제공하기 위해.
- 하이퍼레지스트리 아이로하를 사용한 실제 환경 배포를 통해 확장성과 성능을 경험적으로 평가하기 위해.
- 다양한 네트워크 크기에서 처리량과 결합성 안정성 간의 균형을 이루는 최적의 투표 단계 지연 시간 설정을 규명하기 위해.
제안 방법
- YAC는 블록 제안에 대한 투표 메커니즘을 사용하며, 피어들이 일정 수의 일치하는 투표를 수신한 후 제안을 확정하기 위해 투표한다.
- 알고리즘은 제안, 투표, 확정 단계로 나뉘는 모듈러 아키텍처를 채택하여 결정론적 최종성 보장한다.
- 피어들이 제안을 수신하고 검증할 시간을 확보하기 위해 구성 가능한 투표 단계 지연 시간을 사용하여 네트워크의 일관성 문제를 감소시킨다.
- 적어도 f개 이하의 피어가 고장 났을 경우 안전성을 보장하며, 네트워크가 연결되어 있고 피어들이 프로토콜을 따를 경우 활성화를 보장한다.
- 피어가 제안에 대해 2f+1개의 일치하는 투표를 수신하면 결합성이 달성되어 신뢰할 수 있는 피어들 간의 합의를 확보한다.
- 구현은 오픈소스이며 하이퍼레지스트리 아이로하에 통합되어 있으며, 상태 영속성을 위해 도커와 포스트그레스를 사용한다.
실험 결과
연구 질문
- RQ1블록체인 시스템에서 메시지 오버헤드를 줄이고 강력한 리더 의존성을 제거할 수 있는 BFT 결합성 알고리즘을 설계할 수 있는가?
- RQ2지리적으로 분산된 피어 네트워크에서 투표 단계 지연 시간은 결합성 안정성과 시스템 처리량에 어떤 영향을 미치는가?
- RQ3다양한 네트워크 크기에서 처리량을 극대화하면서도 결합성을 유지하기 위한 최적의 투표 단계 지연 시간 설정은 무엇인가?
- RQ4YAC는 안전성과 활성화를 유지하면서 수십 개의 검증 피어로 확장 가능한가?
- RQ5실제 환경 배포에서 PBFT와 Zyzzyva에 비해 YAC는 지연 시간, 처리량, 결함 내성 측면에서 어떻게 비교되는가?
주요 결과
- 4개의 피어 네트워크에서는 1ms의 투표 단계 지연 시간이 가장 높은 중앙 처리량을 달성했지만, 시간 제약으로 인해 최소한의 결함 내성 보장을 보였다.
- 16개의 피어 네트워크에서는 여전히 1ms의 지연 시간이 최적의 처리량을 제공했지만, 피어 수가 증가함에 따라 결합성 안정성이 약간 감소했다.
- 28개와 64개의 피어에서는 20ms의 투표 단계 지연 시간이 최적으로 밝혀졌으며, 1ms 대비 각각 고장 난 피어 수를 15명에서 3명, 10명에서 3명으로 줄였다.
- 500ms의 지연 시간은 모든 네트워크 크기에서 모든 피어 고장을 제거했지만, 처리량이 크게 악화되었다.
- 투표 단계 지연 시간을 20ms로 조정했을 때, 64개의 피어에서 안정적인 결합성과 높은 처리량을 달성하여 확장성을 입증했다.
- 경험적 결과는 지연 시간 설정을 적절히 조정할 경우 YAC가 낮은 지연 시간과 높은 처리량으로 수십 개의 검증 피어까지 확장 가능하다는 것을 보여준다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.