[블록체인 기초] 컨센서스(Consensus) — 2

Jenny Han
5 min readNov 11, 2018

--

비잔틴 장군의 문제는 무엇?!

Proof-of-work 등장
앞서 말했던 완전히 탈중앙화된 시스템에서 어떻게 신뢰성을 확신할 수 있는지에 대한 문제에 대한 해답으로 첫번째로 언급된 것은 1982년 레슬리 램포트(Leslie Lamport)의 논문 “비잔틴 장군의 딜레마 (the Byzantine Generals’ Problem)” 였다.

이 문제는 비잔틴 군인들이 한 도시를 완벽히 포위한 후 공격하려 할 때에 대해 설명한다. 각 장군들은 도시 주변에 각각 위치하고 있어서 언제 함께 도시를 한번에 공격할지의 계획에 대해 정확한 의견 조율을 해야하는데 그것은 쉬운 문제가 아니다. 그 이유는 각 장군들이 서로 너무 멀리 떨어져 있어서, 통신병들이 그 커뮤니케이션을 직접 움직여 담당해야하기 때문인데, 개중에는 이미 포섭된 장군들이 있을 가능성도 있어, 그 통신병의 메세지를 어떻게 믿을 수 있을까 하는 문제가 있다.

그래서 제시된 해답은 대다수(예를 들면 51% 이상)의 득표를 받은 안건에 신뢰를 주는 것이다. 이 비잔틴 장군 문제에 대한 해답이 블록체인의 의사 결정 문제를 해결하는 데에 그대로 사용된다. 즉, 모든 노드들이 어떠한 법칙에 따라 동의를 하여야만 그 트랜젝션이 체인에 새로 추가될 수 있다. 수천명의 사람들이 네트워크 상에 있을 때, 불량한 노드는 걸러내고 모든 노드들이 새로 추가될 정보의 타당성에 동의를 하도록 하는 일은 쉽지는 않다.

사실 많은 연구자들은 이 비잔틴 장군의 문제를 해결하기 위해 노력했지만, 오랜 시간 그 답을 찾을 수 없었다. 그 첫번째 해답이 바로 1999년 카스트로(Castro)와 리즈코브(Liskov)가 내놓은 실용적인 비잔틴 Fault Tolerance (BFT)였으며, 이것이 바로 비트코인이 Proof-of-Work의 기초로 사용하는 근본이 되었다. 이 서로를 믿을 수 없는 노드들로 구성된 분산화된 시스템에서, 이 컨센서스 알고리즘은 Byzantine Fault Tolerance 를 만족해야 한다.

BFT는 비잔틴 장군의 문제의 해결방법으로서, 불량한 노드를 선별해 내는데에 이용된다. 만일 네트워크 상의 어떤 사람이 트랜젝션에 대해 일정하지 않은 정보를 보낸다면, 그 블록체인의 신뢰성이 깨지게 되고 이를 해결할 어떤 중앙 기관도 존재하지 않는다. 이러한 문제를 해결하기 위해, PoW는 BFT 방식을 도입한다. 반면 PoS는 더 확실한 해결책을 필요로 한다. 노드들은 정기적으로 투표를 하여 진실된 트랜젝션을 구별해 내기 때문이다. 결국, PFT를 도입한 PoS가 있다면 가장 확실한 방법이 될 수도 있겠다.

PoW방법은 네트워크가 스팸이나 서비스 실패 등의 요소로부터 공격받는 것을 막기 위해 유효한 유져들이 특정 계산 문제를 푼 것을 증명하게 된다. PoW는 풀기는 어렵지만 그 정답을 확인하기는 쉬운 특정 문제들을 생성하기 위해서 데이터 블록마다 트랜젝션을 암호화 한다(Hash). 각각의 노드는 자신들의 자원을 소비해 가면서, 복잡한 암호화된 문제를 해결하게 된다. 그리고 그 정답을 찾으면 트랜젝션은 유효성을 확보하게 되고, 마침내 체인에 그 블록이 기록되는 것이다. 즉, 채굴자라 불리는 이 노드들이 서로 경쟁을 해서 블록체인의 다음 트랜젝션 블록을 만들게 된다. 이 결과, 승리한 채굴자가 암호화폐 토큰을 그 보상으로 받게 된다. 이는 노드가 해답을 찾기 위해 투자한 엄청난 양의 시간과 에너지에 대한 보상이다. 예를 들어, 비트코인 채굴자들은 비트코인을 그 보상으로 받게 되는 것이다. 이런 보상 시스템을 통해, 채굴자들이 올바른 답을 찾아내도록 보상을 하게 되며 네트워크는 보안이 더 강해지게 된다. 물론, 새로 채굴된 암호화폐는 네트워크의 총 코인 공급양에 추가된다.

이렇게 함으로써 네트워크 상의 하나의 노드만이 제시된 수학 문제에 대한 결론을 제출하게 되고, 네트워크 상의 다른 노드들은 그 결론의 정답 여부를 확인하기만 하면 된다. 이러한 암호화 과정(hash)은 잘못된 정보를 피하기 위해 프로그램된다. 그런데 이 POW 에는 문제점이 있다.

PoW 의 문제점과 PoS의 대두
채굴 과정에서 사용되는 그 엄청난 양의 자원을 따져보면, PoW 방식은 굉장히 비싸고, 낭비가 많고 비효율적이다. 수천명의 마이너가 한 해답을 찾기 위해 문제에 달려드는 것은 엄청난 자원을 필요로 한다. 즉, 새로운 블록이 채굴될 때마다, 엄청나게 많은 자원이 낭비되는 것이다. 그 많은 자원을 소비해도 결국에 가치를 갖는 블록은 문제를 푼 바로 그 한명이기 때문이다.

게다가 채굴 그 자체도 굉장히 비싸다. 전체 비트코인 채굴 과정에서 사용되는 전기세가 매년 5억 달러 이상일 거라 한다. 게다가 채굴 과정에 이용되는 하드웨어 역시 고도로 기술적이고 비싸다. 그래서 채굴자들은 새로운 하드웨어를 사는 데 심여를 기울였고, 결과 더욱더 진보된 채굴 하드웨어를 제조업 역시 엄청나게 발전하게 되었다. 비트코인 등 암호화폐 채굴을 위해 전문적으로 제조되는 ASICs (Application Specific Integrated Circuits)을 예로 들면, ASICs이 암호화폐 채굴 과정의 효율성을 획기적으로 개선시켰음에도, 이러한 장비 그 자체가 굉장히 고가이다. 대부분의 ASICs 연구개발이 전기세가 상대적으로 저렴한 중국에서 행해진 이유이기도 하다. 중국의 ASICs 제조업자들이 그들 스스로 비트코인 채굴을 하여 엄청난 양의 돈을 벌어들였고, 이 결과 비트코인의 총 채굴력의 60–70%가 중국이라는 한 나라에 집중되게 되었다. 결국 채굴력의 과도한 집중화가 문제로 떠올랐다. 이는 블록체인의 최초 생성 목적에 위배되는 것이다. 이렇게 블록체인의 채굴력의 상당한 양이 가까이 위치한 채굴자들에게 집중된다는 것은, 사실과는 다른 정보가 렛져에 기록되게 될 수도 있는 가능성이 생긴다. 비잔틴 장군의 예로 비교하면, 이는 결국 장군 중 한명이 포섭된 결과와 같다.

다음 글에서는 그 해결방안으로 제시된 POS를 다루어 보겠다.

--

--

Jenny Han

Blockchain Enthusiast and Data Analyst. Studied and worked in Australia and Silicon Valley. Now in Seoul:)