다수의 참여자들이 통일된 의사결정을 하기 위해 사용하는 알고리즘을 말한다. 합의 모델, 합의 방식, 합의 메커니즘 또는 합의 프로토콜이라고도 한다.
블록체인 시스템의 경우 네트워크에 참여하는 모든 참여자들이 동일한 데이터를 복사하여 분산 저장하기 때문에 원본과 사본의 구별이 없으며, 통일된 의사결정을 내릴 수 있는 권위 있는 중앙(center)이 존재하지 않는다
컴퓨터 영역에서 신뢰할 수 없는 링크를 통해 의사 소통함으로써 행동을 조정하려는 설계 과제와 함정을 설명하기 위한 사고 실험.
두 장군 문제를 일반화한 대표적인 문제. 비잔티움 제국을 여러 부대가 지리적으로 떨어진 상태에서 각 부대의 장군들이 전령을 통해 교신하면서 공격 계획을 함꼐 세우는 상황을 가정.
충직한 장군들은 합의된 규칙을 충실히 따르기만 함. 그러나 배신자가 있을 수 있으며 배신자는 마음대로 행동. 배신자 존재에도, 충직한 장군들이 동일한 공격 계획을 세우기 위해서는 그 수가 얼마나 있어야하며, 어떤 규칙을 따라 교신해야 하는지에 대한 문제가 비잔티움 장군 문제.
사실 계획이 합리적인지도 판단하면 더 좋으나, 이는 판단할 수 없으므로 포기하고, 오지 다수의 합의를 이끌어내는 것에만 초점을 맞춘다.
보장해야 하는 것은 다음 두가지이다.
첫째. 모든 충직한 장군들은, 같은 정보를 획득해야한다. (누가 배신자인지 모르기 때문에, x번째 장군이 직접 보낸 메세지를 받았다 하더라도 바로 사용할 수 없다.)
둘쨰. 만약 n 번쨰 장군이 충직하다면, n번쨰 장군이 보낸 값은 충직한 장군들한테 동일한 값이 보내져야 한다.
장애가 있더라도 3분의 1을 넘지 않는다면, 시스템이 정상 작동하도록 허용하는 합의 알고리즘. 블록체인의 분산원장 체계는 제대로 돌아가기 위해서 1) 원장을 공유하는 참여자들이 정직하게 행동해야 하며 이를 보장할 방법이 있어야 한다. 2) 만약 악의적인 노드가 존재하여 누군가 속이려 들더라도 모두가 지닌 원장은 같은 내용을 유지해야 하는 방법 또한 존재해야 한다. 이런 골칫거리가 비잔틴 장군의 문제이다. 대표적인 활용 사례로 비트코인이 있다. 비트코인 네트워크는 병렬적으로 작동하여 작업 증명(일명 채굴) 형태의 해시캐시 체인을 형성한다.
-BFT(비엡티)에서는 합의에 참여하는 전체 노드의 2/3이 내린 결과에 따라 합의가 이뤄진다. 비엡티에서 악의적 노드가 전체 노드의 1/3 이상의 계정 생성 시 네트워크는 보안에 취약해지는 한계
개요(해시넷) - 스텔라가 선택한 합의 프로토콜로서, 합의 과정에서 각 노드들에게 부여하는 투표의 수가 리소스 오너십에 의해서 결정되는 것이 아니라 연방 혹은 연합을 이루는 독립적 노드 당 정확하게 1표씩 부여하겠다는 의미가 내포.