비잔틴 장애 허용에 대해 알아볼 것입니다. 이는 블록체인뿐만 아니라 모든 형태의 탈중앙화 시스템에서도 아주 중요한 특징입니다.
비잔틴 장애 허용을 알기 위해서는 두 장군의 문제와 여기서 파생된 비잔티움 장군의 문제를 먼저 알아야 합니다.
비잔티움 제국이 공격하여 점령하고자 했던 성이 있었다고 가정합니다.
네 명의 장군이 있고 과반수의 동의가 있어야 행동을 개시하고 전투에서 이길 수 있습니다. 하지만, 합의점을 찾지 못해 혼란을 겪게 되면 적에게 당할 것 입니다. 전달된 정보에 대한 다수결의 알고리즘으로 장군들은 전달된 정보에 기반해 의사결정을 내립니다. 이 알고리즘을 비잔틴 장애 허용이라고 합니다. 모든 장군이 합의에 도달한다면 아무런 문제가 없습니다.
여기서 적과 내통하는 부대가 존재해 잘못된 정보와 원래 정보가 같이 퍼진다면, 이 성을 점령할 수 있을 것인지에 대한 것이 비잔티움 장군 문제입니다.
이러한 비잔틴 장군의 문제를 블록체인에 적용해 본다면, 각 장군은 하나의 노드가 되며, 노드들은 현 시스템 상태에 합의를 달성할 수 있는 방법을 찾아야 합니다. 분산화된 네트워크의 대다수의 참가자들은 완전한 실패를 막기 위해 동일한 행동을 하기로 결정하고 이를 실천해야 하는 것 입니다.
그러므로, 분산화된 시스템에서 이러한 합의를 달성할 수 있는 유일한 방법은 최소 3분의 2 혹은 그 이상의 신뢰할 수 있는 정직한 네트워크 노드를 확보하는 것입니다.
이는 네트워크 참여자 대다수가 악의적으로 행동하기로 결정할 경우, 시스템이 실패하거나 공격당할 수 있음을 의미합니다. 간단히 말해, 비잔티움 장애 허용은 비잔티움 장군 문제의 딜레마에서 파생되는 실패들을 막기 위한 시스템입니다.
그리고 이 개념은 블록체인뿐만 아니라 다양한 분야에서 사용됩니다. 예를 들어서 모든 시스템이 서로 활발히 대화하는 비행기, 핵발전소, 로켓 등에 적용됩니다.
비록 비잔틴 제국의 장군에 대한 간단하고 비현실적인 이야기처럼 보일 수 있지만 아주 거대한 개념인 것입니다. 특히, 구성 요소가 많은 탈중앙화된 시스템에서는 더욱 중대한 개념이며 블록체인은 그들 중 하나에 속합니다.