반응형

  5장에서는 블록체인의 기본 형태와 이 블록체인들이 변형되어 나온 형태들의 상태에 대해서 알아보겠습니다.

 

5.1 이더리움과 스마트 컨트랙트

 

  비트코인은 비효율적인 단점이 강해 비탈릭 부테린이라는 개발자가 비트코인의 여러 단점을 보강한 새로운 암호화폐인 이더리움을 만들었습니다.

  이 표는 이더리움과 비트코인을 간단히 비교하고 있는데, 기본적으로 이더리움은 비트코인의 작동 방식을 그대로 베낀 복제품이지만 몇 가지 기능적 개선이나 변화를 시켰습니다. 채굴 시간은 비트코인 평균 10분에서 약 15초로 획기적으로 줄였습니다. 이 평균 채굴 시간은 그 냥 정한 값으로, 기술 발전에 의한 것은 아닙니다. 그래서 비트코인보다 6년 정도나 늦게 나온 이더리움의 블록은 오래전에 1000만 개를 훌쩍 넘어섰습니다. 그리고 중요한 것이 이더리 움이 가장 주목받았던 이유인 스마트 컨트랙트입니다.

 

  스마트 컨트랙트는 원래 닉 사보가 1990년대에 제안한 프로토콜 이름으로 법률행위를 담은 계약이 자동으로 집행될 수 있을 것이라고 생각하고 지은 이름으로, 스마트 컨트랙트의 구현으로 법률가나 법무사 등에 지불해야 하는 불필요한 수수료가 절감될 수 있을 것이라고 믿었습니다.

  앞서 설명했듯이 비트코인의 블록에는 비트코인을 주고받은 거래 내역, 즉 트랜잭션이 적혀 있으며 블록체인의 역할은 네트워크에서 발생한 트랜잭션을 채굴업자가 정한 순서대로 기록하는 것입니다. 이더리움은 이렇듯 정적인 기록만 가능했던 비트코인 블록체인을 변형해서 프로그램 코드도 저장할 수 있도록 변형한 다음 스마트 컨트랙트라고 부른 것입니다. 또, 스마트 컨트랙트는 탈중앙화 응용프로그램인 디앱이라고도 부릅니다.

  이 그림은 이더리움의 스마트 컨트랙트를 개념적으로 비유한 것으로, 왼쪽의 비트코인의 경 우 비트코인을 주고받은 정적인 내용이 기록되는 반면에, 오른쪽의 이더리움 블록에는 비트코 인식의 정적인 기록에 더불어 프로그램 코드도 저장되는 모습입니다. 그래서 이더리움의 블록에 저장되는 프로그램을 다양하게 바꾸면 블록체인의 용도도 다양해질 수 있게 된 것입니다.

 

  하지만, 이더리움에 구현된 스마트 컨트랙트는 명칭만 같을 뿐, 닉 사보가 구상한 프로토콜 과는 거리가 먼데, 닉 사보의 구상의 핵심은 법률행위를 담은 계약을 과연 컴퓨터 프로토콜로 표현할 수 있는가에 있는데, 이더리움의 디앱은 단순히 프로그램을 구동하는 플랫폼에 불과합니다. 이렇게 되면 단순히 가상 프로토콜을 구동할 수 있는 플랫폼은 중앙 서버가 더 효율적일 수 있고 이더리움을 사용한다면 앞서 설명한 것처럼 엄청난 비효율과 자원 낭비를 감수해야 합니다. 그래서 이더리움이 나온 지 꽤 시간이 지났지만 디앱은 법률의 집행은 고사하고 단순한 게임 정도가 전부입니다.

  그 이유는 다음과 같은 4가지 이유에서 기인하게 됩니다.

 

  먼저, 블록체인의 모든 정보는 노출돼 전혀 보호되지 않습니다. 의미 있는 계약은 통상 개 인정보를 포함한 민감한 데이터를 다룰 필요가 있는데, 데이터 노출로 인해 원천적인 제약이 생기게 됩니다.

 

  두 번째로, 닉 사보 구상의 핵심은 플랫폼이 아니라 법률행위를 프로그램으로 표현 가능한가 인데, 이더리움의 디앱방식으로 스마트 컨트랙트를 구현하려면 먼저 복잡한 법률행위를 스크립트 코드로 표현해야 하는데 이것 또한 새로운 과제이고, 그 코드를 보고 법조문을 이해하는 건 사실상 불가능하기 때문입니다.

  다음으로 블록체인 디앱으로 프로그램을 구현하고 실행하는 것은 통상적인 방식에 비해 훨씬 더 많은 비용이 소모되게 됩니다. 스마트 컨트랙트의 목적은 비용절감인데, 더 많은 비용이 들고 더 복잡하고 더 느리고 더 관리가 힘든 방식이면 굳이 사용할 필요가 없습니다.

  마지막으로 블록체인으로는 제삼자가 배제된 거래를 구현할 수 없습니다. 블록체인은 제삼 자의 중계가 반드시 필요한 시스템입니다. 이것에 대해서는 다음 2부 내용 때 더 자세히 다룰 예정입니다

 

5.2 하이퍼레저와 프라이빗 블록체인

 

  이러한 블록체인의 태생적 한계를 극복하기 위해 기존의 블록체인과는 완전히 다른 새로운 형태의 변형이 등장하기 시작했습니다. 리눅스 재단이 주도가 된 이 프로젝트의 이름은 하이퍼레저로 이들이 던진 근복적 질문은 “블록체인은 왜 익명이어야 하는가?”입니다.

  이 표는 비트코인과 하이퍼레저 패브릭을 비교한 것으로 살펴보면 비트코인과 하이퍼레저 패브릭은 다르다는 것보다 정반대라는 느낌이 듭니다. 먼저 패브릭은 익명이 아닌 실명으로 구성되며 중앙 서버에 의해 통제됩니다. 그래서 사실 따지고 보면 블록체인이라고 할 수 없습니다.

 

  일반적으로 중앙 관리자 없이 누구나 해당 블록체인 플랫폼에 노드로 참여할 수 있는 게 퍼 블릭 블록체인인데, 이는 불특정 다수의 노드가 처리하는 거래 정보 검증은 익명성과 보안성 이 우수하지만, 그만큼 거래 소요 시간이 오래 걸린다는 한계점이 존재합니다. 그래서 그 대 안으로 프라이빗 블록체인, 컨소시엄 블록체인이 나오게 됩니다.

퍼블릭 블록체인의 형태

  퍼블릭의 경우를 보면, 불특정 다수의 참가자가 노드로 참여합니다. 이는 상당한 거래 시간과 많은 채굴을 수반하게 되지만 거래의 투명성이나 기록 수정의 불가역성이 보장되게 됩니다. 하지만 A아파트 대표 선거와 같은 작은 규모는 그만큼의 신뢰성과 보안성을 요구하지 않을 수 있습니다.

프라이빗 블록체인의 형태

  그래서 프라이빗의 경우처럼 별도의 내부망 또는 인증방식으로 참여자를 제한하여, 퍼블릭에 비해 수배 빠른 속도의 블록체인 기술을 투표에 적용할 수 있습니다.

  하지만 이 중앙 관리자가 존재는 블록체인의 중요 가치인 탈중앙화 정신에 위배됩니다. 그래서 등장하게 된 것이 컨소시엄입니다.

 

컨소시엄 블록체인의 형태

  컨소시엄은 특정 노드만 참여할 수 있는 프라이빗과 유사하지만, 프라이빗은 한 집단에서 독자적으로 블록체인 망을 만든다면, 컨소시엄은 여러 집단이 협의체로 노드에 참가해 신뢰성과 익명성을 높임으로 퍼블릭과 프라이빗의 단점을 극복하였습니다.

 

5.3 비잔틴 장군 문제

 

  다음으로는 신뢰할 수 없는 p2p환경에서 어떤 방식으로 시스템을 공격할 수 있는지, 그리고 그 난제를 작업 증명으로 어떻게 해결하는지 간단히 설명하겠습니다.

비잔틴 장군 문제

  중앙에 적의 본진이 있으며, 장군 A, B, C, D, E 중 3명 이상이 공격해야만 성을 함락시킬 수 있습니다. 그러기 위해, 서로 공격시간을 맞추기 위한 메시지 전달을 합니다. 한 장군은 다음 장군에게만 메시지를 전달할 수 있고, 메시지는 반드시 20분 안에 전달해줘야 합니다.

  그림처럼 장군 A는 장군 B에게 새벽 4시에 공격을 개시하자는 메시지를 전달합니다.

  장군 B는 메시지를 확인하고, 장국 C에게 메시지를 그대로 전달합니다.

  장군 C는 배신자이므로 기존에 왔던 메시지를 찢어버리고, 공격시간을 새벽 5시로 위조하여 장군 D에게 전달합니다.

  장군 D는 메시지를 확인하고 장군 E에게 그대로 전달합니다. 이러면 성을 함락하기 위해 최소 3명의 장군이 필요한데 새벽 4시에는 장군 A와 장군 B만 공 격에 가담하게 되므로 성을 함락시키지 못합니다.

작업증명 방식으로 해결한 비잔틴 장군 문제

  위의 문제에서 장군 C가 배신자의 경우 적 본진 함락에 실패하지만, 작업 증명 방식을 이용하여 해결해보겠습니다. 장군들이 메시지를 작성해서 보낼 때 각자 10분간 작업을 해야만 만 들 수 있는 서명을 첨부합니다. 이렇게 되면 배신자인 장군 C가 위조하기 위해서는 장군 A와 B의 서명을 모두 위조해서 변경해야 하는데 그러기 위해서는 20분 안에 메시지를 보낼 수 없기 때문에 시간상 불가능합니다. 즉 이런 식으로 해결하게 됩니다.

 

5.4지분 증명 등 그 밖의 변형

 

pow 방식

  앞서 설명한 작업 증명의 방식을 비트코인에 대입하면 10명의 사람들이 블록 채굴에 참여를 한다고 가정했을 때, 문제가 주어지고 정답 시 블록을 생성합니다. 그렇게 작업을 하여 가장 빠른 단 1명만이 블록을 생성하고 다음 채굴을 준비합니다. 이것의 장점은 모든 앞서 비잔틴 장군의 경우에서 살펴봤듯이 모든 노드의 승인을 거쳐야 하기에 거래 내역을 속이기 힘들지만 모든 노드의 승인을 거쳐야 하기 때문에 거래 처리 속도가 느리고 채굴에 따른 부수적인 비용과 에너지의 과잉소비가 발생합니다.

 

pos 방식

  그리하여 그다음 방식인 지분 증명 방식은 노드가 될 자격을 갖추고 네트워크에 참여합니다. 이 노드들 중에 가장 많은 지분을 가진 노드를 리더로 선출하는 것입니다. 그리고 누구나 코인 지분을 통해 블록 생성 권한 확률을 배정받고 그에 알맞은 보상도 받기 때문에 작업 증명처럼 무의미한 계산을 지속적으로 하지 않아 더 경제적이고 분산화된 네트워크를 가지게 됩니다. 하지만 지분량에 따라 보상이 배정되기 대문에 빈익빈 부익부가 나타날 수 있는 문제가 있습니다.

  작업 증명은 신뢰가 없는 네트워크에서 합의를 이루기 위해 치러야 하는 대가로 생각할 수 있지만, 지분 증명이 이러한 비용이 들지 않는 이유가 지분 증명에 의해 선출된 노드를 신뢰해야만 작동하게 됩니다. 그런데 이러한 신뢰를 바탕으로 한 네트워크를 구성하기 위해서는 굳이 중앙화 시스템을 버리고 블록체인을 사용할 이유가 없을 수도 있습니다. 결국 에너지 절감과 속도 향상을 하기 위해서 지분 증명을 쓴다고 하지만 이는 중앙화 서버에서 신뢰를 바탕으로 사용하게 되면 극대화되게 됩니다. 그래서 탈중앙화에 가장 근접한 방식은 작업 증명이라고 볼 수 있습니다.

 

참고

https://steemit.com/dclick/@eaglekeeneye/-4-bitcoin-1-1543794926642

https://brunch.co.kr/@mobiinside/1207

https://m.blog.naver.com/bodoblock00/221657805838

반응형

+ Recent posts