간단한 비잔틴 장애 허용
간단한 비잔틴 장애 허용(SBFT; Simplified Byzantine Fault Tolerance)이란 더 나은 확장성과 최상의 대기 시간을 위해 PBFT를 기반으로 하는 BFT 시스템으로 확장성과 분산성의 과제를 해결하는 새로운 비잔틴 내결함성 알고리즘을 구현한다. 20개 미만의 복제본을 중심으로 중앙집중화된 경우에만 잘 수행되었던 많은 이전 BFT 시스템과 달리, SBFT는 분산에 최적화되어 있으며, 100개 이상의 활성 복제본을 쉽게 처리할 수 있다. SBFT는 이더리움(ethereum)의 EVM 바이트 코드를 기반으로 한 스마트 계약 실행 환결을 제공한다.
개요
간단한 비잔틴 장애 허용은 이전의 많은 실용적인 알고리즘의 기술을 활용한다. 이것은 공통 모드에서의 선형 복잡성을 가지고 있으며 클라이언트 확인을 위해 단 하나의 메시지만 필요로 하는 실용적인 알고리즘이다. SBFT 합의에서 결함 있는 노드 수에 다라 특정 수의 노드가 블록을 수용해야 한다. 이러한 시스템은 최소한 (2f+1) 노드는 비즈니스 네트워크의 새 블록을 수용해야 한다. 여기서 f는 결함 있는 노드의 수이다. 이러한 의미에서 결함이 있는 것은 악성 노드일 수 있고, 작동하지 않는 노드일 수도 있다. 장점으로는 작업 증명보다 더 빠르며, 더 나은 확장성을 가지고 있다는 것이고, 단점으로는 중앙집권화의 경향이 강하다는 것이다.
특징
N > 3f+2c 복제본의 경우 SBFT는 다음과 같은 속성을 얻는다.
- 비동기 모드에서의 안전 : 주어진 시퀀스 번호에 대해 의사결정 블록을 실행하는 2개의 복제본이 동일한 의사결정 블록을 실행한다.
- 동기식 모드의 내성 : 클라이언트 요청이 응답을 반환한다는 것을 의미한다.
- 공통 모드의 선형성 : 우리가 블록의 운영 횟수를 n으로 가정하고 또한 클라이언트 수를 n으로 가정하는 추상적 모델에서 연산을 커밋하기 위한 상각 비용은 일정한 크기의 메시지의 수라는 것을 의미한다.
확장성 평가
SBFT는 초당 70개 이상의 트랜잭션 속도로 실제 EVM 계약의 작업 부하를 200개 이상의 복제본으로 복제하고 최대 f = 64개의 악성 복제본을 견딜 수 있다. 실험에서 SBFT는 초당 50개 이상의 트랜잭션에서 실제 EVM 트랜잭션을 실행하면서 100개가 넘는 복제본에 의해 복제되고 최대 f = 32 악성 복제본을 견딜 수 있었다. 단일 지역에서 실행 중일 때 f = 64 오류를 견딜 수 있고 약 200개의 복제본을 사용하는 SBFT 배포는 20분 내에 이러한 100만 트랜잭션을 완료하거나 초당 약833개의 트랜잭션을 완료한다
각주
참고자료
- 〈SBFT: a Scalable Decentralized Trust Infrastructure for Blockchains〉, 《VMware Research》, 2018-04
- Ittai Abraham, 〈What is the difference between PBFT, Tendermint, SBFT and HotStuff ?〉, 《깃허브》, 2019-06-23
- Yevhen Leonchyk, 〈SBFT〉, 《깃허브》, 2018-05-31