Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

아우토반(Autobahn)

BFT의 장단점: 지연 시간 대 견고성

현대 비잔틴 장애 허용(BFT) 합의 프로토콜은 일반적으로 부분 동기 모델에서 작동합니다. 이 모델은 네트워크가 결국 안정화되고 메시지 지연이 제한된 상태를 유지한다고 가정합니다. 프로토콜 설계에는 실용적이지만 실제 배포에서는 오랜 기간 동안 중단 없는 안정성을 누리는 경우는 드뭅니다. 대신 시스템은 대기 시간 급증, 노드 중단 또는 악의적인 조건과 같은 짧은 중단에 이어 동기 기간을 자주 경험합니다. 이러한 일시적인 중단을 **"블립(blips)"**이라고 합니다.

이러한 조건에서 기존 합의 프로토콜은 안정적인 네트워크 조건에서 낮은 대기 시간과 오류 발생 시 견고성 간에 선택해야 합니다.

  • PBFT 및 HotStuff와 같은 전통적인 뷰 기반 BFT 프로토콜은 네트워크가 안정적일 때 좋은 간격 동안 응답성을 위해 최적화되어 있습니다. 그러나 블립이 발생하면 성능이 저하됩니다. 숙취(hangover)라고 알려진 이러한 저하는 네트워크가 복구된 후에도 지속될 수 있으며, 백로그된 요청이 누적되어 후속 트랜잭션을 지연시킵니다.
  • Narwhal & Tusk/Bullshark와 같은 DAG 기반 BFT 프로토콜은 데이터 전파(DAG)를 합의(BFT)와 분리하고 복제본 간에 트랜잭션을 비동기적으로 전파합니다. 이 설계는 높은 처리량을 가능하게 하고 네트워크 중단 중에도 시스템이 계속 진행되도록 합니다. 그러나 이러한 프로토콜은 비동기 정렬 메커니즘의 복잡성으로 인해 좋은 간격 동안에도 높은 대기 시간을 초래하는 경향이 있습니다.

Autobahn은 이 두 가지 설계 철학을 연결하는 새로운 접근 방식을 소개합니다. DAG 기반 프로토콜의 높은 처리량과 블립 허용성을 전통적인 뷰 기반 합의의 낮은 대기 시간 성능과 결합합니다. Autobahn의 핵심은 합의 진행 상황에 관계없이 네트워크 속도로 제안을 지속적으로 전파하는 고도로 병렬적인 데이터 전파 계층입니다. 이 계층 위에 Autobahn은 데이터 계층의 경량 스냅샷을 참조하여 제안을 커밋하는 낮은 대기 시간, 부분 동기화 합의 프로토콜을 실행합니다.

Autobahn의 특징적인 기능은 성능 저하 없이 블립에서 복구하는 능력입니다. **원활함(seamlessness)**이라고 불리는 이 속성은 네트워크가 안정화된 직후 시스템이 전체 처리량과 낮은 대기 시간으로 재개되도록 보장합니다. 백로그된 트랜잭션의 비용이 많이 드는 재처리가 필요하지 않습니다. 데이터 가용성을 정렬과 명확하게 분리하고 프로토콜 유도 동기화 지연을 피함으로써 Autobahn은 실제 조건에서 블록체인 합의를 위한 견고하면서도 반응적인 기반을 제공합니다.

Autobahn 아키텍처 개요

Autobahn은 핵심 두 계층인 데이터 전파 계층합의 계층 간의 책임 분리 중심으로 설계되었습니다. 이러한 분리는 Narwhal과 같은 DAG 기반 시스템의 설계에서 영감을 받았지만, Autobahn은 원활함과 낮은 대기 시간을 지원하기 위해 이 구조를 강화합니다.

데이터 전파 계층은 확장 가능하고 비동기적인 방식으로 클라이언트 트랜잭션을 브로드캐스트하는 역할을 합니다. 각 복제본이 자체 트랜잭션 배치 레인(lane)을 유지하도록 허용하며, 이는 합의 상태와 독립적으로 전파 및 인증될 수 있습니다. 이러한 레인은 합의 프로세스가 중단될 때도 지속적으로 성장하여 시스템이 항상 클라이언트에 응답할 수 있도록 합니다.

이 위에 Autobahn은 PBFT 스타일 프로토콜을 기반으로 하는 부분 동기화 합의 계층을 실행합니다. 그러나 개별 트랜잭션 배치에 대한 합의에 도달하는 대신, 모든 데이터 레인의 최신 상태를 간결하게 요약한 "팁 컷(tip cuts)"에 대해 합의에 도달합니다. 이 설계는 Autobahn이 단일 단계에서 임의로 많은 양의 데이터를 커밋할 수 있도록 하여 블립의 영향을 최소화합니다.

HotStuff는 데이터와 합의를 단단히 연결하여 리더가 실패할 때 중단을 야기합니다. Bullshark는 DAG 순회 및 데이터 동기화로 인해 높은 커밋 지연 시간을 발생시킵니다. Autobahn은 DAG의 병렬성을 상속하면서 대기 시간 문제를 방지하여 더 원활하고 빠른 합의 경험을 제공합니다.

데이터 전파 계층: 레인(lanes) 및 카(cars)

Autobahn: Seamless high speed BFT

Autobahn: 원활한 고속 BFT

Autobahn에서 각 복제본은 레인이라고 불리는 독립적으로 진행되는 자체 체인에서 트랜잭션을 제안합니다. 레인의 각 데이터 제안은 다른 복제본의 승인 세트와 함께 묶여 저자들이 "카(car)"(인증된 요청 인증의 약자)라고 부르는 것을 형성합니다. 이 카는 가용성 증명(PoA) 역할을 하여 적어도 하나의 올바른 복제본이 데이터를 보유하고 필요할 경우 재전송할 수 있도록 보장합니다.

카는 각 새 제안에 이전 카에 대한 참조를 포함하여 함께 연결됩니다. 이 구조는 레인의 팁을 검증하는 것이 전체 레인 기록의 가용성을 의미한다는 것을 보장합니다. 이 추이적인 가용성 증명은 Autobahn의 즉각적인 참조에 핵심입니다. 합의 계층은 팁 컷(현재 레인 헤드의 벡터)을 참조할 수 있으며 DAG 순회 또는 추가 동기화 없이 모든 이전 데이터를 검색할 수 있다는 것을 알 수 있습니다.

일반적인 DAG 프로토콜과 달리 Autobahn은 전역 가용성 및 비동등성을 강제하는 비용이 많이 드는 안정적인 브로드캐스트 단계를 피합니다. 대신, 최소한의 조정을 사용하고 각 PoA에 대해 최소한 하나의 정직한 복제본이 데이터를 보유하고 있다고 신뢰합니다. 이는 다양한 부하 또는 부분적 실패 하에서도 높은 처리량과 낮은 꼬리 지연 시간을 가능하게 합니다. 데이터 계층은 합의와 독립적으로 계속 진행되어 블립 동안 응답성을 보장합니다.

합의 계층: 낮은 지연 시간 합의

Autobahn: Seamless high speed BFT

Autobahn: 원활한 고속 BFT

Autobahn의 합의 계층은 고전적인 PBFT 원칙을 기반으로 하지만, 지연 시간을 줄이고 원활한 복구를 지원하기 위한 주요 최적화를 도입합니다. 각 합의 슬롯은 모든 복제본의 레인에서 최신 인증된 제안을 캡처하는 "팁 컷"을 커밋하는 것을 목표로 합니다. 합의 리더는 준비(Prepare) 및 확인(Confirm)이라는 두 단계 커밋 프로세스를 사용하여 이 컷을 제안합니다.

준비 단계 동안 복제본은 제안된 팁 컷에 대해 투표합니다. 리더가 빠르게 충분한 투표(완벽한 쿼럼)를 받으면 빠른 경로(Fast Path)에 진입하여 단 3번의 메시지 지연으로 즉시 커밋할 수 있습니다. 그렇지 않으면 6번의 메시지 지연으로 커밋을 완료하기 전에 또 다른 쿼럼의 승인을 수집하는 확인 단계를 진행합니다.

주요 혁신은 데이터 동기화를 합의 투표에서 분리하는 것입니다. 복제본은 전체 제안 데이터를 아직 받지 못했더라도 인증된 팁만을 기반으로 투표할 수 있습니다. PoA가 검색 가능성을 보장하기 때문에 이는 안전합니다. 동기화는 병렬로 발생하며 실행 단계 전에 완료되어 프로토콜 중단을 방지합니다. 리더 실패 또는 시간 초과 시에는 시간 초과 인증서를 사용하여 뷰 변경이 트리거되고, 새 리더는 효율적으로 진행을 재개할 수 있습니다.

Autobahn의 핵심 속성

Autobahn은 BFT 프로토콜에서 기대되는 표준 안전성활성성 보장을 충족합니다. 안전성은 두 개의 올바른 복제본이 동일한 슬롯에 대해 다른 블록을 커밋하지 않도록 보장합니다. 활성성은 올바른 리더가 결국 선택되는 한 전역 안정화 시간(GST) 이후에 진행을 보장합니다.

더 중요한 것은 Autobahn이 원활함을 달성한다는 것입니다. 합의 계층이 일정한 시간 내에 임의로 많은 데이터 백로그를 커밋하도록 하여 프로토콜 유도 숙취(hangover)를 피합니다. 블립 이후에도 동기화가 돌아오는 즉시 성공적으로 전파된 모든 데이터 제안이 즉시 커밋될 수 있습니다. 이를 통해 Autobahn은 간헐적인 오류가 있는 환경에서도 원활하게 작동할 수 있으며, 복구 시간과 시스템 응답성 모두에서 전통적인 BFT 프로토콜을 능가합니다.

또한, 이 프로토콜은 수평적으로 확장됩니다. 각 복제본은 자체 레인을 통해 시스템의 처리량에 기여하며, 합의 컷은 참여자 수에 따라 자연스럽게 증가합니다. 이는 Autobahn을 고성능과 견고성 모두를 요구하는 대규모 배포에 적합하게 만듭니다.

낮은 대기 시간과 높은 복원력의 만남

Autobahn은 이상적인 조건과 오류 주입 조건 모두에서 선도적인 BFT 프로토콜, 특히 Bullshark 및 HotStuff와 비교 평가되었습니다. 그 결과 Autobahn이 두 가지 장점을 모두 달성했음을 보여줍니다. Bullshark의 처리량과 일치하여 초당 230,000개 이상의 트랜잭션을 처리하는 동시에 대기 시간을 50% 이상 줄였습니다.

좋은 네트워크 조건에서 Autobahn은 Bullshark의 12 메시지 지연과 비교하여 단 3~6 메시지 지연으로 트랜잭션을 커밋합니다. 이는 실제 커밋 지연 시간이 Bullshark의 590ms 이상에 비해 280ms로 낮다는 것을 의미합니다. 백로그 처리 지연으로 인해 블립 후 긴 숙취를 겪는 HotStuff와 달리, Autobahn은 네트워크가 안정화되는 즉시 전체 백로그를 단일 단계로 커밋합니다.

리더 장애 또는 부분적 네트워크 분할이 발생하는 시나리오에서 Autobahn은 원활한 복구를 보여줍니다. 장애 중에도 데이터를 계속 전파하고 합의가 재개되는 즉시 축적된 제안을 빠르게 커밋합니다. 이러한 성능상의 이점은 낮은 대기 시간 응답성과 높은 처리량 및 내결함성을 결합하려는 블록체인 플랫폼에게 Autobahn을 매력적인 선택으로 만듭니다.

추가 자료

더 자세한 기술 정보는 다음을 참조하십시오:

다음으로 추천하는 자료

  • 합의(Consensus): Autobahn이 발전한 합의 구현인 StableBFT로 돌아갑니다.
  • 완결성(Finality): RPC를 기반으로 빌드할 때 Stable의 단일 슬롯 완결성을 사용합니다.