Hyperledger Besu IBFT 2.0과 Clique 합의 알고리즘 차이점 분석

Hyperledger Besu는 엔터프라이즈 블록체인 환경에서 IBFT 2.0과 Clique라는 두 가지 주요 권위 증명(PoA) 합의 알고리즘을 지원하며, 각각 고유한 특징과 장단점을 가지고 있습니다[1]. 이 두 알고리즘은 서로 다른 설계 철학과 기술적 특성을 바탕으로 하여 다양한 사용 사례에 적합하도록 개발되었습니다[2].

핵심 기술적 차이점

즉시 최종성 (Immediate Finality)

IBFT 2.0과 Clique의 가장 중요한 차이점 중 하나는 즉시 최종성 보장 여부입니다[1]. IBFT 2.0은 즉시 최종성을 제공하여 블록이 한 번 체인에 추가되면 포크나 체인 재구성이 발생하지 않습니다[3]. 반면 Clique는 즉시 최종성을 보장하지 않으며, 포크와 체인 재구성이 발생할 수 있습니다[4].

검증자 요구사항

두 알고리즘 간의 또 다른 핵심 차이점은 최소 검증자 수입니다[1]. IBFT 2.0은 비잔틴 장애 허용을 위해 최소 4개의 검증자가 필요한 반면, Clique는 단일 검증자로도 운영이 가능합니다[4]. 이러한 차이는 네트워크 구성의 유연성과 보안 수준에 직접적인 영향을 미칩니다[5].

내결함성 (Fault Tolerance)

내결함성 측면에서 두 알고리즘은 상반된 특성을 보입니다[1]. IBFT 2.0은 전체 검증자의 1/3까지 실패를 허용하는 비잔틴 장애 허용성을 제공하며, 정상 운영을 위해서는 2/3 이상의 검증자가 활성화되어야 합니다[4]. 반면 Clique는 최대 절반의 검증자 실패를 허용하는 더 높은 내결함성을 제공합니다[1].

합의 메커니즘의 구조적 차이

IBFT 2.0의 3단계 합의 프로세스

IBFT 2.0은 PBFT(Practical Byzantine Fault Tolerance)에서 영감을 받은 3단계 합의 메커니즘을 사용합니다[3]. 이 프로세스는 PRE-PREPARE, PREPARE, COMMIT 단계로 구성되며, 각 단계에서 검증자들이 메시지를 교환하여 합의에 도달합니다[6]. 제안자가 블록을 생성하여 PRE-PREPARE 메시지와 함께 브로드캐스트하면, 다른 검증자들이 이를 검증하고 PREPARE 메시지를 전송합니다[6].

Clique의 단순화된 블록 생성

Clique는 IBFT 2.0에 비해 훨씬 단순한 블록 생성 메커니즘을 사용합니다[7]. 이 알고리즘은 3라운드인 PBFT 계열에 비해 1라운드 방식으로 작동하여 더 빠른 처리 속도를 제공합니다[7]. 블록 리더와 추가 검증자들이 블록을 제안할 수 있으며, 블록 리더의 제안이 우선권을 가집니다[8].

성능 및 효율성 비교

처리량과 블록 시간

성능 측면에서 두 알고리즘은 서로 다른 특성을 보입니다[1]. IBFT 2.0은 약 100 TPS의 처리량을 제공하며, 블록 생성 주기는 1-15초로 설정 가능합니다(기본값 5초)[9]. Clique는 약 98 TPS의 처리량을 보이며, 블록 생성 주기는 15초로 설정됩니다[10].

검증자 수 증가에 따른 영향

검증자 수가 증가할 때 두 알고리즘은 서로 다른 영향을 받습니다[1]. IBFT 2.0과 QBFT의 경우 검증자 수가 증가하면 새로운 블록을 추가하는 시간이 늘어나는 반면, Clique에서는 검증자 수가 증가할수록 포크 발생 확률이 높아집니다[1].

보안 및 안정성 측면

비잔틴 장애 허용성

IBFT 2.0은 비잔틴 장애 허용 알고리즘으로서 악의적인 노드의 존재에도 불구하고 안전하게 작동할 수 있습니다[3]. 이는 엔터프라이즈 환경에서 중요한 보안 요구사항을 충족합니다[11]. 반면 Clique는 비잔틴 장애 허용성을 제공하지 않으며, 검증자들이 정직하게 행동한다고 가정합니다[12].

네트워크 분할 대응

네트워크 분할이 발생할 때 두 알고리즘의 대응 방식이 다릅니다[1]. IBFT 2.0은 2/3 이상의 검증자가 연결되어야 블록을 생성할 수 있어 네트워크 분할에 대한 강한 저항성을 제공합니다[4]. Clique는 절반 이상의 검증자가 연결되면 계속 작동할 수 있어 더 높은 가용성을 제공합니다[1].

검증자 관리 및 거버넌스

동적 검증자 세트 관리

두 알고리즘 모두 동적 검증자 세트 관리를 지원하지만 방식에 차이가 있습니다[3]. IBFT 2.0은 검증자 투표 메커니즘을 통해 검증자를 추가하거나 제거할 수 있으며, 이는 Clique와 유사한 방식입니다[3]. 그러나 IBFT 2.0은 더 엄격한 합의 요구사항으로 인해 검증자 변경이 더 안전하게 처리됩니다[6].

검증자 선택 및 순환

Clique는 라운드 로빈 방식으로 검증자를 순환시키며, 각 검증자가 차례대로 블록 리더 역할을 담당합니다[8]. IBFT 2.0도 라운드 로빈 방식을 사용하지만, 3단계 합의 과정을 거쳐야 하므로 더 복잡한 검증자 상호작용이 필요합니다[6].

사용 사례별 적합성

엔터프라이즈 프로덕션 환경

엔터프라이즈 프로덕션 환경에서는 IBFT 2.0이 명확한 우위를 가집니다[5]. 즉시 최종성과 비잔틴 장애 허용성은 금융 서비스나 공급망 관리와 같은 중요한 비즈니스 프로세스에서 필수적인 요구사항입니다[13]. Besu 공식 문서에서도 프라이빗 네트워크에서는 IBFT 2.0 사용을 권장하고 있습니다[5].

개발 및 테스트 환경

개발 및 테스트 환경에서는 Clique가 더 적합한 선택입니다[5]. 단일 검증자로도 운영이 가능하며, 설정이 간단하고 빠른 개발 사이클을 지원합니다[4]. 또한 Geth와의 호환성으로 인해 다양한 이더리움 개발 도구와 원활하게 통합됩니다[14].

교육 및 학습 목적

교육 목적에서는 Clique가 더 적합합니다[10]. 단순한 구조와 쉬운 설정으로 인해 블록체인 기술을 학습하는 데 유용하며, 포크와 체인 재구성 같은 블록체인의 기본 개념을 이해하는 데 도움이 됩니다[8].

결론

IBFT 2.0과 Clique는 각각 고유한 장점과 특성을 가진 합의 알고리즘입니다[1]. IBFT 2.0은 즉시 최종성, 비잔틴 장애 허용성, 강력한 보안을 제공하여 엔터프라이즈 프로덕션 환경에 적합한 반면, Clique는 단순성, 유연성, 높은 내결함성을 제공하여 개발 및 테스트 환경에 적합합니다[4].

프로젝트의 요구사항, 보안 수준, 성능 요구사항을 종합적으로 고려하여 적절한 합의 알고리즘을 선택하는 것이 중요하며, 일반적으로 프로덕션 환경에서는 IBFT 2.0을, 개발 환경에서는 Clique를 사용하는 것이 권장됩니다[5][10].

출처
[1] Proof of authority consensus | Besu documentation https://besu.hyperledger.org/24.5.2/private-networks/concepts/poa
[2] Hyperledger Besu: Understanding Proof of Authority via Clique and … https://consensys.io/blog/hyperledger-besu-understanding-proof-of-authority-via-clique-and-ibft-2-0-private-networks-part-1
[3] PBFT, IBFT and QBFT Consensus Algorithms Explained https://blog.web3labs.com/web3development/comparing-byzantine-fault-tolerance-consensus-algorithms
[4] Choose a Consensus Protocol – Catalyst Blockchain Manager https://docs.catalyst.intellecteu.com/besu/Consensus%20Protocols/choose-a-cp.html
[5] Consensus protocols | Besu documentation https://besu.hyperledger.org/private-networks/how-to/configure/consensus
[6] IBFT Consensus Overview – Quorum https://goquorum.readthedocs.io/Consensus/ibft/ibft/
[7] PBFT와 자손들 Tendermint, NCCU BFT, SEIVE, IBFT, MinBFT, RBFT … https://hamait.tistory.com/1035
[8] [PDF] Go-Ethereum for electronic voting system using clique as proof-of … https://pdfs.semanticscholar.org/8777/1ce7e27f3f1e11fa52284aa3537a10845345.pdf
[9] 합의 알고리즘 – IBFT 2.0 : 네이버 블로그 https://blog.naver.com/pcmola/222090486807
[10] [블록체인] Hyperledger Projects – SongLee, 개발, IT, 맛집, 여행, Etc.. https://joycecoder.tistory.com/entry/%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-Hyperledger
[11] [1909.10194] IBFT 2.0: A Safe and Live Variation of the IBFT … – arXiv https://arxiv.org/abs/1909.10194
[12] What Is Proof of Authority (PoA)? – Gate.com https://www.gate.com/learn/articles/what-is-proof-of-authority/373
[13] Consensus Algorithms Compared: PoA vs IBFT vs Raft – Kaleido https://www.kaleido.io/blockchain-blog/consensus-algorithms-poa-ibft-or-raft
[14] ConsenSys-Academy/geth-poa-tutorial: Clique Proof-of-Authority … https://github.com/ConsenSys-Academy/geth-poa-tutorial
[15] [오디오래빗] 비트코인 추락 혹은 진화 ‘하드포크’ 🙂 미니경제용어 https://www.hankyung.com/article/201811224329G
[16] Git, 암호화폐, 애플리케이션 등에 대한 포크의 간단한 설명은 무엇 … https://blog.mexc.com/ko/what-is-fork-git-ru/
[17] celocli election | Celo Documentation https://docs.celo.org/cli/election
[18] How do you hard-fork a Clique PoA chain to use new validators? https://ethereum.stackexchange.com/questions/95143/how-do-you-hard-fork-a-clique-poa-chain-to-use-new-validators
[19] Clique Applied to the Ethereum E-Voting System – 1Cademy https://1cademy.com/node/clique-applied-to-the-ethereum-e-voting-system/KhhhwPy5lWDsXNIiuMqg
[20] Consensus Protocols of Hyperledger Besu: IBFT2.0 & Clique | PPT https://www.slideshare.net/slideshow/consensus-protocols-of-hyperledger-besu-ibft20-clique/232349206
[21] [ 하이퍼레저 BESU ] 개념 및 탄생배경, 합의알고리즘, 기능, 특징 등 https://blog.naver.com/mage7th/222449548571
[22] Comparing proof of authority consensus protocols https://docs.goquorum.consensys.io/concepts/consensus/comparing-poa
[23] [PDF] Blockchain open-source software comparison – IS MUNI https://is.muni.cz/th/qr98z/thesis.pdf

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다