비잔틴 장애 허용

iwin1203·2022년 10월 13일
0

블록체인

목록 보기
8/11

(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.fool.com/investing/stock-market/market-sectors/financials/cryptocurrency-stocks/byzantine-fault-tolerance/

https://www.hcltech.com/blogs/byzantine-fault-tolerance-bft-and-its-significance-blockchain-world

0개의 댓글