(2022년 1월에 작성한 글)
비잔틴 장애 허용 개념을 살펴보았다.
이는 PBFT를 비롯하여 여러 합의 알고리즘의 베이스가 되는 개념이기 때문이다.
블록체인에서의 비잔틴 장군 문제와 그것이 합의 알고리즘으로 이어지는 과정을 이해했다.
비잔틴 장애 허용은 오류, 허위 정보가 일부 발생하더라도 그에 영향받지 않고 시스템을 유지시킬 수 있는 특성이다. 이를 블록체인 관점에서 설명하면 다음과 같다.
비잔틴 장애 허용 (Byzantine Fault Tolerance; BFT)은 전체 시스템에서 일부 장애나 악의적인 공격이 발생하더라도 이를 색출하고 올바르게 운용할 수 있는 탈중앙화 시스템의 특성이다.
비잔틴 장애 허용은, 후술할 비잔틴 장군 문제를 해결할 수 있는 경우를 이른다.
가령, 비트코인은 비잔틴 장애 허용적이다. 모두가 자유롭게 노드로서 네트워크에 참여할 수 있지만, 잘못된 블록이나 트랜잭션이 전파될 경우, 이를 노드 차원에서 탐지하고 블록체인에 연결되는 것을 거부할 수 있기 때문이다.
사진 출처: https://medium.com/@2infiniti/a-primer-to-lft-loop-fault-tolerance-consensus-algorithm-d692bdece85a
비잔틴 장군 문제란, 허위 정보가 있다는 사실과 정보가 제대로 전달되지 않을 수 있다는 사실을 알 때, 어떠한 방식으로 올바른 정보를 공유하고 협력할 수 있을지에 대한 딜레마이다.
구체적인 시나리오는 다음과 같다.
비잔틴 제국의 장군들이 일시에 적진을 공격하고자 한다. 공격 시간을 각자 이웃한 장군들에게 전령을 통해 전달해야 한다.
그러나 장군들은 그들 중 배신자가 있다는 사실과, 전령이 적군에 당할 수 있다는 사실을 인지하고 있다. 배신자 장군은 의도적으로 잘못된 공격 시간을 전달하여 병력이 분산되도록 할 것이고, 사망한 전령은 공격 시간 정보를 아예 전달할 수 없다.
이러한 경우, 장군들은 어떠한 방식으로 정보를 교환해야 모두가(배신자를 제외한) 올바른 정보를 확실히 공유하고, 궁극적으로 적진을 함락시킬 수 있을지 고민하게 된다.
비잔틴 장군 문제는 노드간 올바른 정보를 교환하고 유지해야 하는 블록체인, 나아가 분산 시스템 전반에서 고려해야 할 문제로 볼 수 있다.
비잔틴 장군 문제는 컴퓨터공학의 고전 난제 중 하나이다. 최근 블록체인의 발전과 함께 재조명되었다.
비잔틴 제국에서의 장군들은 블록체인의 노드로 치환하여 볼 수 있고, 전령은 노드 간 전파 과정으로 볼 수 있다. (다만 초점은 전자에 맞추어져 있는데, 비잔틴 장애 허용 달성에 따로 노드 간 통신 장애를 고려하지는 않는 것으로 보인다.)
사기꾼 노드가 전파하는 잘못된 트랜잭션 / 블록을 어떻게 걸러내고 정확한 체인을 유지할 지가 블록체인의 핵심 과제 중 하나인데, 이것이 곧 비잔틴 장군 문제인 셈이다!
블록체인에서는 합의 알고리즘을 통해 비잔틴 장군 문제를 해결한다.
합의는 “분산 컴퓨팅과 다중 에이전트 시스템에서 프로세스들이 사용할 값을 하나로 결정”하는 것을 의미한다.
블록체인에는 진위 여부를 가려줄 중앙화된 주체가 없기 때문에, 참여중인 노드들의 합의를 통해 블록체인을 최신화, 공유한다. 이러한 알고리즘을 합의 알고리즘이라 한다.
합의 알고리즘은 필연적으로 비잔틴 장군 문제를 고려할 수 밖에 없다. 이를 고려하지 않는다면, 허위 정보 (의도적이든, 아니든)가 블록체인에 연결되고 공유되는 것을 막지 못할 것이다.
비잔틴 장군 문제를 해결한 대표적인 합의 알고리즘들에는, PBFT(Practical Byzantine Fault Tolerance), PoW(Proof of Work; 작업증명), PoS(Proof of Stake; 지분증명)가 있다. 다시말해, 위 알고리즘들을 사용한 블록체인은 비잔틴 장애 허용인 것이다.
https://river.com/learn/terms/b/byzantine-fault-tolerance-bft/
https://namu.wiki/w/비잔티움 장군 문제
http://wiki.hash.kr/index.php/비잔틴장애허용#.EA.B0.9C.EC.9A.94
https://www.hcltech.com/blogs/byzantine-fault-tolerance-bft-and-its-significance-blockchain-world