비잔틴 문제 해결은 어떻게 이루어지고 있나요?
비잔틴 장군의 문제는 블록체인 네트워크에 연결된 어떤 사용자가 악의적으로 데이터를 변경했을 경우 시스템에 치명적인 오류가 발생할 수 있다는 문제를 제기한 내용으로 알고 있습니다. 비트코인을 비롯한 블록체인은 어떻게 이 문제를 해결하고 있는지 궁금합니다.
질문자께서 질문해 주신 내용에 대해 답변을 드리도록 하겠습니다.
비잔틴 장군 문제에 대한 해법으로 보통은 '비잔틴 장애 허용(BTF)'이라는 합의 알고리즘을 이용해서 극복하려고 합니다. 이 방법은 다수결의 원리와 비슷하다고 할 수 있습니다. 즉 3분의 2가 합의할 경우 3분의 1에 문제가 있더라도 나머지 3분의 2에 의해 결과적으로 문제가 없게 된다는 것입니다.
이것이 블록체인에 도입되게 되면 노드들이 블록을 검증할 때 정보의 위, 변조를 시도하는 노드가 있거나, 정상적으로 작동하지 않을 경우에도 또 완전한 합의에 도달하지 못하더라도 3분의 2이상의 정상적인 노드들이 합의를 도출할 수 있다는 전제가 있다면 그 합의 영향을 받지 않고 결과는 무결하다고 본다는 것입니다.
또한 블록체인에 따라서는 이러한 작업을 빠르게 두 번 진행하는 경우도 있는데 첫 번째 합의에서 3분의 2 이상의 합의가 도출되지 못하면 해당 블록은 확정 상태에 이르지 못하게 되며 첫 번째 합의에서 3분의 2 이상의 합의가 도출되면 다시 두 번째 합의를 다시 시작하여 빠르게 합의 한 뒤 불변하는 블록을 생성하고 확정지을 수 있습니다. 이렇게 선합의, 후 블록 생성 방식을 택하게 되면 새로운 블록 생성의 이전 블록이 확정성을 부여 받은 상태이기 때문에 블록체인의 분기(folk)를 방지할 수 있게 되어 안정성과 보안성이 높아지게 됩니다.
결론적으로 비잔틴 장군 문제에 대해 100% 합의를 이끌어 내는 방법에는 아직 도달하지 못했지만 비잔틴 장애 허용을 통해 도출된 결과의 확정성을 확보함으로써 블록체인은 '결과적으로' 비잔틴 장군 문제에 대한 해법을 찾았다고 할 수 있습니다.
답변이 도움이 되길 바랍니다.