본문 바로가기

백앤드/BlockChain

[BLOCKCHAIN] 비잔틴 장군 문제란?

반응형

안녕하세요. 이번 포스팅에서는 블록체인의 결함인 비잔틴 장군 문제를 설명해겠습니다.

실제 우리나라의 도시를 예를 들어 쉽게 설명해보겠습니다.

1. 비잔틴 장군 문제란?

실제로 비잔틴 제국은 12세기에 동로마에 존재하고 있었습니다.

서로의 세력을 넓히고 패권을 장악하기 위해 전쟁을 치루고 있던 시기였는데, 성 하나를 함락시키기 위해

혼자 힘으로 전쟁을 일으키는 것보다 확실하게 하기 위해 동맹국과 함께 전쟁을 일으켜 침략하게 됩니다.

그런데 이때 배신자가 나오게 된다면 어떻게 될까요?

아래 그림을 통해서 쉽게 이해해보겠습니다.

비잔틴장군 배신자의 탄생

 

동맹국의 군병력은 모두 동일하게 100만명의 병사가 있다고 가정해봅니다.

성남에 있는 한 장군은 서울을 함락시키기 위해 주변 동맹국에게 서신을 전달하게 됩니다.

"오전 5시 일제히 서울을 공격해주십시요. 서울 함락 작전입니다."

 

안산에서 먼저 서신을 전달받았습니다. 마찬가지로 안산에서도 동일한 내용으로 인천에게 전달을 하게됩니다.

그런데 여기서 인천에서 배신을 하게 됩니다. 인천은 김포에 내용을 바꿔서 전달하게 됩니다.

"오전 5시 일제히 성남을 공격해주십시요. 성남 함락 작전입니다."

 

서신을 전달받은 김포와 일산까지도 모두 성남을 공격한다는 내용으로 받게되는데

 

그렇게되면 성남 지역에는 서울로 공격을 위해 이동중인 경우 적은 수의 병사만 위치할 것이고, 아직 이동중이지 않은 경우더라도 3개의 성에서 공격이 온다면 병사수 밀려 서울이 아닌 성남이 함락될 것입니다.

 

2. 블록체인 문제에 대입해본다면

데이터 위변조가 발생해서 거짓된 데이터가 진실된 데이터로 인정되는 경우가 발생할 수 있게 된다라고 볼 수 있습니다.

즉, 과반수인 51% 이상이 같은 내용을 알고 있는 데이터가 진실이고 나머지는 거짓으로 판단하여 데이터를 버려진다. 라고 이해하면 됩니다.

 

이것이 비잔틴장군 문제이고 이 문제를 해결하기 위한 방법으로 POW, DPOW, POS, DPOS 등... 여러 작업증명을 통해서 해결하게 됩니다. 작업 증명에 대한 세세한 내용은 다른 포스팅을 통해서 설명드리도록 하겠습니다.

반응형