블록체인, 비잔틴 장군 문제를 해결하다.

블록체인, 비잔틴 장군 문제를 해결하다.

우리가 사용하고 있는 인터넷 속 환경은 중앙 집중형이라고 할 수 있다. 어디선가 오류가 발생하거나 보안이 취약한 부분을 발견하게 되면 소프트웨어 업데이트를 통해 해결할 수 있다. 그리고 업데이트 한 사항을 모두에게 배포해서 다 같이 최신 버전의 소프트웨어를 사용할 수 있다. 하지만 이렇게 사용하는 환경 속에서 불만사항, 문제점이 발견되고 이를 해소하기 위해서 탈 중앙화를 시도하려 했지만 해결하지 못한 문제가 하나 있었다. 바로 신뢰의 문제, 비잔틴 장군 문제라고 할 수 있다.

오랜 기간 비잔틴 장군 문제에 대해서 해결하지 못하다가 어느 순간 해결책을 가진 존재, 사토시 나카모토가 나타나게 된다.

비잔틴 장군 문제(Byzantine Generals Problem)를 설명하기 위해서는 이를 설명하기 위한 유명한 예시를 참고하겠다.

A라는 성을 함락하기 위해 동등한 지위의 장군 10명과 병사 1,000명이 있다. 각 장군의 위치는 성을 중심으로 동그랗게 빙 둘러있고, 성을 함락하기 위한 조건은 동시에 공격하는 방법밖에 없다. 이들은 전화도 시계도 갖고 있지 않다. 연락병을 통해서만 서로 간 소통할 수 있다. 그리고 이들 중엔 배신자가 섞여있다고 가정한다.

모두가 동시에 공격하지 않으면 함락할 수 없기 때문에 서로 간 믿음을 바탕으로 공격을 진행해야 한다. 만약 이들 중 한 부대라도 도망치거나 배신하게 된다면 성을 함락할 수 없을뿐더러 모두의 목숨이 위험해진다. 이 상황 속에서 장군과 병사들은 서로를 믿고 공격에 성공할 수 있을까?

이 문제가 거론되는 이유는 바로 신뢰에 있다. 인터넷의 00게임회사 홈페이지에서 00게임을 다운로드하면 당연히 00게임이 실행이 된다. 하지만 사람과 사람 간의 직접적인 Peer to peer에서는 제대로 된 파일인지 확신할 수 없다.

예를 들어서 내가 블록체인에 대한 강의를 다운로드하기 위해서 p2p로 다운을 받았는데 실행하고 보니 단순한 레고 블록에 대한 강의가 있다고 한다면 탈 중앙화라는 생태계가 건강하게 운영이 될 수 있을까?

이런 문제점을 해결한 존재가 바로 사토시 나카모토이며 비트코인 채굴에 사용되는 작업 증명 방식인 PoW이다. PoW를 진행하기 위해 사용하는 해시가 바로 이것을 해결하는 중요한 핵심이다. 블록체인은 채굴하는데 평균적으로 10분이 되도록 설계가 돼있으며 컴퓨터 성능이 높아질수록 해시 파워도 같이 올라가기 때문에 난이도가 점점 상승한다. 물론, 비잔틴 장군 문제를 100% 해결할 수 있는 것은 아니지만 거의 불가능하다고 볼 수 있다.

악의를 가진 노드가 절반 이상이 되는 51% 어택에서는 PoW도 어쩔 수 없다. 하지만 이렇게 악의적인 공격을 하기 위해 수반되는 비용이 얻는 이득보다 크기 때문에 굳이 할 필요가 없을뿐더러 블록체인 네트워크가 확장될수록 공격 비용이 기하급수적으로 증가하게 된다.

탈 중앙화를 해결하기 위해서 PoW 방식을 사용했지만 일부 세력이 거의 독점적으로 채굴을 해서 점점 중앙화되고, 환경오염과 에너지 낭비 등의 이유로 현재는 PoW에서 PoS로 변해가고 있는 추세이다.

from http://j-tone.tistory.com/23 by ccl(A) rewrite - 2021-09-30 16:00:29