개요
LPBFT(Lightweight Practical Byzantine Fault Tolerance)는 기존 PBFT의 무거운 통신 오버헤드를 개선한 합의 알고리즘입니다. 평상시에는 경량 검증만 수행하고, 이상 상황 발생 시에만 전체 합의 프로토콜을 발동합니다.
핵심 원리: "문제가 없으면 빠르게, 문제가 있으면 철저하게"
평상시 운영 (Normal Mode)
99% 이상의 거래는 평상시 경량 검증으로 처리됩니다.
- Representative 노드의 서명만 확인
- 머클 루트 비교를 통한 빠른 검증
- 처리 시간: ~4ms
비상시 합의 (Emergency Mode)
이상 상황 감지 시 전체 PBFT 프로토콜이 발동됩니다.
PRE-PREPARE
→
PREPARE
→
COMMIT
→
REPLY
| 단계 | 설명 | 조건 |
|---|---|---|
| PRE-PREPARE | 리더가 블록 제안 | 리더 노드만 |
| PREPARE | 노드들이 검증 투표 | 2f+1 투표 필요 |
| COMMIT | 최종 합의 확정 | 2f+1 투표 필요 |
| REPLY | 결과 반환 | 클라이언트 응답 |
트리거 조건
다음 조건에서 비상 모드가 발동됩니다:
- Representative 노드 응답 없음 (타임아웃)
- 서명 불일치 또는 변조 감지
- 하위 계층의 이상 보고
- AI 이상 탐지 점수 임계값 초과
파라미터 설정
n (총 노드)
계층별 4~15개
f (장애 허용)
⌊(n-1)/3⌋
quorum (정족수)
2f+1
타임아웃
500ms