프랙티컬 비잔틴 장애 허용 편집하기
최신판 | 당신의 편집 | ||
2번째 줄: | 2번째 줄: | ||
==비잔틴 장군문제== | ==비잔틴 장군문제== | ||
− | [[PBFT]]를 이해하기 위해서는 [[비잔틴 장군 문제]]를 먼저 알아야 한다. 비잔틴 군대는 장군이라는 대표자들간 합의를 통해 전술을 최종 결정한다. 만약 같은 곳을 동시에 공격한다면 충분히 이길 수 있는 상황이지만, 일부가 공격을 하지 않으면 지는 상황에 있다. 따라서 장군들이 모두 동일한 시간에 공격한다고 합의를 해야 하는 | + | [[PBFT]]를 이해하기 위해서는 [[비잔틴 장군 문제]]를 먼저 알아야 한다. 비잔틴 군대는 장군이라는 대표자들간 합의를 통해 전술을 최종 결정한다. 만약 같은 곳을 동시에 공격한다면 충분히 이길 수 있는 상황이지만, 일부가 공격을 하지 않으면 지는 상황에 있다. 따라서 장군들이 모두 동일한 시간에 공격한다고 합의를 해야 하는 상광인데 이들이 한곳에 모이기는 어렵다. 따라서 장군들간 전령을 통해 합의를 해야지만 이 과정에서 적국의 첩자가 메시지가 변경할 수도 있다. 따라서 이들 첩자들의 악의적 방해에도 합의가 제대로 될 방법이 필요하다. 블록체인과 비잔틴 장군 문제는 아주 밀접한 관련을 갖는다. [[블록체인]] [[네트워크]] 상에 새로운 블록들이 생성되는 과정에서 기존의 악의적인 공격으로 잘못된 [[블록]]이 생성될 수 있다. 이는 블록 안의 트랜잭션이 변경되어 재산적 피해로도 이어질 수 있다. 따라서 이를 막기 위한 합의 알고리즘이 필요하다. 간단하게 생각하면 모든 노드가 YES! 하면 되는거 아니야? 싶지만 그렇게 되면 악의적 공격이 하나라도 들어왔을 때 블록체인 네트워크는 마비된다. 따라서 어느 정도의 노드간 상태 비일치는 허용해주는 방법으로 [[합의 알고리즘]]이 만들어져야 한다.<ref name="PBFT 블로그">tyami 〈[http://tyami.net/221268715771 PBFT(Practical Byzantine Fault Tolerance) 공부해보자]〉, 《네이버 블로그》, 2018-05-05</ref> |
==비잔틴 장애 허용== | ==비잔틴 장애 허용== |