반응형

  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

반응형
반응형

이번 챕터에서는 앞에서 나온 기술들이 블록체인에서 어떻게 유기적으로 결합돼 운영되는지 살펴보겠습니다. 위 그림은 블록체인 데이터를 전통적 거래 원장에 비유하고 있는데, 거래 원장의 특정 페이지는 블록에 비유되고, 거래원장 페이지가 모여 전체 거래 원장책이되고, 이렇게 모인 전체 거래원장책은 블록체인 데이터로 비유할 수 있습니다.

블록체인이 하는 일은 아주 단순한데, 이체 내역을 기록하는 것이 하는 일의 전부입니다. 결국 블록체인의 작동 원리를 이해한다는 것은 익명의 노드로만 구성된 네트워크에서 누가 기록할 것인 것, 어떻게 저장할 것인지의 규칙에 관한 이해라고 할 수 있습니다.

 

4.1 누가 기록할 것인가?

익명의 참여자로 구성된 블록체인의 경우 신뢰할 수 있는 서버란 존재하지 않습니다. 따라서 새로운 방법이 필요합니다.

 

4.1.1 브로드캐스팅을 통한 전달

블록체인에서는 중앙 서버가 없으므로 전체 데이터를 모든 노드에게 전달하는 브로드캐스팅 방식을 사용합니다.

비트코인 블록체인에서 생성되는 데이터는 모두 거래내역(트랜잭션)입니다. 이 거래 내역은 지갑을 통해 네트워크에 제출된 데이터인데, 지갑을 사용하면 누구든 비트코인 거래 내역서를 작성한 후 네트워크에 제출할 수 있습니다. 이렇게 제출된 거래 내역은 피어를 통해 모든 노드에게 전달됩니다. 전달된 트랜잭션은 각 노드의 대기실에 쌓인 채 처리되기만을 기다리는데 각 노드를 자세히 살펴보면, 대기실에 쌓인 트랜잭션의 구성이나 순서가 조금씩 다른 것을 알 수 있습니다. 이는 서로 다른 네트워크 전송 속도와 컴퓨터 사양을 가진 각 노드가 어떤 트랜잭션을 먼저 전달받게 될 것인지 알 수 없기 때문입니다. 따라서 절대 시각 기준으로 네트워크에 트랜잭션을 먼저 제출했다고 해서 모든 노드에 반드시 먼저 도달한다는 보장이 없음을 의미합니다. 통상 각 노드는 수수료율이 더 높은 트랜잭션을 먼저 처리하므로 모든 트랜잭션은 도착 순서와 무관하게 대개 수수료율이 높은 순서대로 임의로 뒤바뀌어 처리되며, 제출된 순서대로 처리되지 않습니다.

대기실에 쌓여 순서가 정해진 트랜잭션은 ‘블록’이라는 논리적 단위로 묶인 후 동시에 처리됩니다. 다음은 누가 기록할것인지 결정하는 절차를 알아보겠습니다.

 

 

4.1.2 리더 선출 – 누가 기록할 것인가?

블록체인에서 모든 노드가 동일한 기록을 저장할 수 있는 비결은 간단한데, 수많은 노드 가운데 어느 순간 실제로 기록할 수 있는 권리는 오직 단 하나의 노드에게만 주어지기 때문입니다. 단 하나의 노드만 기록할 수 있으므로 단 하나의 기록만이 존재하게됩니다.

이 책에서는 누가 기록을 담당할 것인지 정하는 과정을 리더 선출에 비유하고 있습니다.

비트코인에서 리더를 선출하는 방법은 바로 해시 퍼즐인데 특정 순간에 해시 퍼즐을 가장 먼저 해결한 단 하나의 노드에게만 기록할 수 있는 권리가 주어집니다. 선출된 리더는 자신의 대기역에 쌓여 있던 거래 내역을 블록에 기록하는 역할을 합니다. 블록에 거래 내역이 기록되는 순간, 거래는 완료된 준비를 마칩니다. 이 해시 퍼즐을 푸는 과정을 흔히 채굴에 비유하는데, 그만큼 해시 퍼즐을 푸는 것이 힘들다는 것을 상징적으로 비유한 것이기도 합니다.

 

4.2 어떻게 저장할 것인가?

이렇게 해서 선출된 리더는 신뢰를 알 수 없는 노드이기 때문에 리더가 작성한 기록의 무결성을 검증할 수 있는 방법이 필요합니다.

 

4.2.1 신뢰의 부재 – 모든 노드의 검증

하나의 블록만 따로 놓고 보면 리더로 선정된 노드는 중앙 서버의 역할을 수행하는 중앙화 시스템과 매우 유사하지만, 신뢰의 부재라는 큰 차이점이 존재합니다.

따라서 검증이라는 절차가 필요한데 이는 선출된 리더가 정직하게 기록했는지 확인하는 과정입니다. 그렇다면 누가 검증할 것인가하는 의문이 생기는데 비트코인과 이더리움에서 사용한 해법은 희망하는 모두가 검증에 참여하도록 했습니다.

위 그림은 각 노드가 브로드캐스팅된 블록을 전달받은 상황인데, 각 노드는 블록이 도달하는 즉시 블록의 무결성을 검증합니다. 무결성 검증은 크게 두가지인데 하나는 해시 퍼즐의 정답을 찾은 것이 맞는지 확인하는 것이고, 다른 하나는 블록에 기록된 트랜잭션이 조작되지 않고 원래 네트워크에 제출됐던 그대로인지 확인하는 것입니다. 이 두 검증 과정은 해시함수와 전자서명, 비대칭 암호화 기버을 활용해 순식간에 이뤄집니다. 검증을 통해 블록에 이상이 없다는 것이 확인되면 이 블록은 정당한 블록으로 인정받고, 각 노드는 자신의 로컬에 저장돼 있던 기존의 블록체인 데이터에 이 블록을 추가하면서 전체 블록체인 데이터의 길이는 하나 더 자라게 됩니다.

 

 

4.3 비동기화 시스템에서의 탈중앙화 합의

블록체인은 완전한 비동기화 시스템인데 신호를 줄 수 있는 중앙 서버가 없기 때문입니다. 각 노드는 전체 네트워크에 현재 몇 개의 노드가 있는지, 어디에 있는지, 어떤 성질을 갖고 있는지 전혀 알 수 없습니다.

위 그림의 사이클을 보면 마치 전체 노드들이 공통된 시게에 동기화돼 10분을 주기로 리더 선출을 질서 정연하게 수행하고 있는 것처럼 보이지만 이는 설명의 편의를 위한 것일 뿐 실제와는 많이 다른데 블록체인 세상에서는 그림과 같은 과정이 절대 동기화돼 일어날 수 없습니다. 시계 역할을 해줄 수 있는 노드나 서버가 있을리 없기 때문입니다.

4.3.1 서로 다른 진실의 충돌

블록체인의 비동기적 특성으로 인해 항상 다음과 같은 상황이 발생할 수 있습니다.

 

위 그림은 노드 A와 F가 동시에 해시 퍼즐 해결에 성공한 후 브로드캐스팅 하고 있는 모습을 보여줍니다. 노드 A와 F는 서로의 존재를 모르므로 서로가 동시에 블록 생성에 성공했다는 사실을 알 방법이 없습니다. 이러한 사정은 다른 노드도 마찬가지여서 B와 C는 A가 블록 만들기에 성공했다는 사실만 인지할 뿐 노드 F에 대해서는 그 존재 사실도 모릅니다. 이는 노드 D와 E도 마찬가지입니다. 이런 경우 블록체인 네트워크에는 순간적으로 하나 이상의 서로 다른 진실이 존재합니다.

 

결국 위 그림과 같은 상황이 벌어지는데 동일한 네트워크 안에서 서로 다른 블록체인이 자라고 있는 모습을 보여줍니다. ABC그룹은 A가 생성한 블록인 a1을 자신의 로컬 컴퓨터에 추가한 상태이고, DEF그룹은 F가 생성한 블록인 f1을 자신의 블록체인에 추가한 상태입니다. 즉 특성 순간에 동일한 시스템에서 서로 다른 블록체인 데이터가 자라고 있는 셈입니다.

 

4.3.2 서로 다른 진실의 통일 – 탈중앙화 합의

다른 블록체인 데이터가 형성되는 근본적인 원인은 블록체인이 비동기화 네트워크이기 때문입니다. 동일한 네트워크 속에서 서로 다른 두 개의 진실이 존재하도록 내버려둘 수는 없기 때문에 단 하나의 진실로 통일될 수 있는 규칙이 필요합니다.

비트코인에서 서로 다른 두 블록체인 데이터를 하나로 통일하는 규칙은 둘 중 더 긴 블록체인은 선택하는 것입니다. 이 말은 길이가 같다면 서로 통일되지 않는다는 의미이기도 합니다. 두 노드가 서로의 블록체인 데이터가 다르다는 것을 발견하면 우선 상대방이 규칙을 지켰는지 검사한 후 이상이 없다면 서로의 길이를 비교합니다. 이때 길이가 같다면 어느 하나로 합쳐지지 않고, 각자 자신의 블록체인 데이터를 그대로 유지한 채 서로 더 긴 블록체인 데이터를 만들기 위한 경쟁을 계속합니다.

 

위 그림은 어느 순간 한쪽의 길이가 더 길어진 모습을 보여주는데 f1f2f3로 구성된 블록체인이 다른 블록체인보다 길어졌기 때문에 승패가 갈립니다. 패자가 되면 그 즉시 승자와 다른 블록체인 구성요소는 모두 폐기해야 하며, 승자가 갖고 있는 블록을 동일하게 복사 함으로, 시스템 내 모든 노드는 동일한 블록체인 데이터로 통일해 나갑니다. 이 과정을 탈중앙화 합의 규칙이라고 합니다.

 

 

 

4.3.3 거래의 안전성 – 확인

블록을 탑을 쌓듯이 논리적으로 배열하면 높이의 개념이 생깁니다. 제네시스 블록 바로 다음에 생긴 블록의 높이는 1, 그다음은 2, 이런식으로 높이는 계속 증가합니다. 한편 깊이는 블록의 높이와 반대개념인데, 블록의 높이는 절대적인 개념이므로 바뀌지 않지만, 블록의 깊이는 계속 변동되는 상대적인 개념으로, 가장 최근에 만들어진 블록의 깊이가 1이 됩니다.

 

4.4 이중사용

이중사용이란 하나의 비트코인을 여러 번 사용하려는 악의적인 시도입니다. 이중사용이 발생 가능한 이유는 중앙 서버가 없는 비동기식 네트워크이기 때문에 발생하는 문제입니다.

예를 들어 A라는 사람과 D라는 사람이 직거래를 위해 직접 만난 상황을 고려해보면 D는 자신이 갖고 있던 노트북을 판매할 생각이고, A는 40만원에 노트북을 구매하기 위해 서로 만난 상황입니다. 물건을 확인한 후 A는 D에게 물건 값 40만원을 비트코인으로 지급하기로 하고, 시세를 환산해 0.01 BTC를 송금하는 모습을 보여줍니다. A가 송금 신청을 완료하자 D는 안심하고 A와 헤어져 돌아갔습니다. 이 과정에서 A는 송금 신청을 완료했을 뿐, 송금이 완료된 것은 아닙니다. 10분이 경과하지 않았다면 아직 블록이 만들어지지도 않았을 것이기 때문입니다.

 

위 사진은 A가 이중사용을 시도하는 모습을 보여주는데 D와 헤어진 A는 곧 바로 또 하나의 트랜잭션을 작성해 시스템에 제출합니다. 바로 자신이 조금 전 D에게 지급했던 것과 동일한 비트코인을 스스로에게 지급한다는 요청서입니다. 이 경우 정상적인 요청인 1이 먼저 처리될지 2가 먼저 처리될지는 알 수 없습니다. 발생 가능한 상황을 알아보면,

첫번째로 가장 가능성이 높은경우인 1,2가 모두 폐기돼 처리되지 않는 경우입니다. 두번째 경우는 1이나 2 둘중 하나가 정상적인 트랜잭션으로 선택돼 기록되는 경우입니다. 이 경우에는 1이 먼저 등록되면 2는 폐기되고, 2가 먼저 등록되면 1은 폐기됩니다. 만일 트랜잭션이 둘다 폐기되거나 2가 먼저 처리되는 경우가 발생한다면, D에게 물건값을 지불하지 않게됩니다.

 

4.5 채굴의 독점

최초의 비트코인은 가정용 컴퓨터의 CPU를 이용해서도 채굴할 수 있었으나 채굴 난이도가 점차 높아지면서 CPU를 통한 채굴은 사용 전력에 비해 아주 비효율적인 방법이 됐고 좀 더 강력한 하드웨어를 통한 전문 채굴업자들이 등장하면서 CPU보다 훨씬 효율적인 GPU를 사용하기 시작했습니다. 현재는 CPU를 통한 채굴이 아예 불가능합니다. 현재의 비트코인 해시 퍼즐은 채굴에 투입한 에너지에 정비례해 성공 확률이 올라가도록 설계돼 있으며, 이기면 모든 것을 얻지만 지면 모든 것을 잃는 승자 독식 형태의 작업증면 방식을 사용하고 있습니다. 따라서 비트코인의 이러한 설계 방식은 업체끼리의 끝없는 설비 투자 경쟁에 따른 치킨 게임 과정을 통해 형성하도록 부추기고 있습니다.

 

위 그림을 보시면 2017년 12월에 상위 10개 업체의 블록 채굴 점유율이 90.5%까지 독점율이 치솟은걸 볼 수 있습니다. 한편 빨간색 막대로 표시한 상위 3대 업체의 점유율을 보면 2017년 마지막달에는 무려 52%대로 올라와 절반을 넘어선걸 알 수 있습니다. 전체 블록의 과반을 단 세개 업체가 독점하고 있는 것입니다. 상위 3대 업체는 모두 중국 업체이며 10대 채굴업체에 속한 나머지 기업들도 대부분 중국 업체가 직접 운영하거나 간접적으로 참여하고 있습니다. 사실상 중국이 전 세계 비트코인 채굴을 완전히 장학하고 있다고 볼 수 있습니다.

 

 

 

 

 

 

 

4.6 51% 공격

비트코인 시스템은 리더로 선출된 노드에 의해 지배되므로 리더는 편중됨 없이 최대한 랜덤하고 다양하게 선출돼야 생태계의 안정성을 극대화할 수 있습니다. 그러나 만약 어느 한 집단에서 지속적으로 리더가 선출되는 상황이 발생하면, 시스템의 무결성과 안전성은 심각한 타격을 입을 수 있습니다. 한 집단이 월등한 하드웨어를 모두 합쳐 세력화한 후 블록 만들기 시합에서 높은 확률로 항상 이길 수 있는 해시 파워를 가진 상황을 가정해보면 리더는 이 집단에서 지속적으로 선출될 것이고, 이를 통해 시스템의 대다수 블록은 이 세력이 생산합니다. 이들은 블록 생산력을 악용해 자신들이 원하는 대로 트랜잭션을 임의로 구성함으로써 시스템을 공격할 수 있는데, 이러한 극단적인 상황을 상징적으로 51%공격 이라고 합니다.

하지만 이 51%공격이 일어날 가능성을 그리 높지 않은데 그 이유로

51%의 장악력을 유지하려면 현존하는 가장 성능이 뛰어난 채굴기 안트마이어를 90만개 사서 돌려야하는데 현재 한 개의 가격이 500만원이 넘으니 90만개를 사려면 4조 5천억이 필요합니다. 만일 4조 5천억을 투자해 51%장악했다 하더라도 그 장악력을 유지하려 계속 채굴기를 추가로 구매하여 돌려야하기 때문에 투자금을 회수할때까지 돌리기란 쉽지 않습니다. 또한 나머지 49%가 눈치를 채고 문제가 있는걸 알게되면 하드포크를 진행해 막아버리기 때문에, 51%공격은 사실상 경제적이지 못하므로 발생되지 않을것이라는걸 알수있습니다.

반응형
반응형

안녕하세요.

3장에서는 블록체인을 이루는 기술 4가지를 소개하는데요. 

1. 해시함수 

2. 비대칭 암호화 기법

3. 전자서명

4. 해시퍼즐

 

 

1. 해시함수

 해시함수부터 설명하자면 해시함수란 입력의 길이와 상관없이 항상 고정된 길이의 출력을 생성하는 함수입니다.

비트코인의 블록체인에서 사용되는 해시함수는 SHA-256(secure Hash Algorithm 256)입니다. 

글자 하나차이로 결과값이 완전히 달라졌습니다.

해시 함수의 가장 큰 특징은 입력값이 조금만 바뀌어도 결과값이 완전히 달라진다는 것 입니다. 위의 사진을 보시면 

'.' , ','의 차이인데도 결과값이 아예 다르죠?? 

 

 

자! 그렇다면 비트코인에서 해시함수는 어떻게 쓰일까요? 바로 머클 트리에서 사용됩니다.

비트코인은 모든 트랜잭션, 즉 거래에 관한 하나의 해시값을 저장하기 위해 머클 트리를 사용하는데요.

여기서 Tx7이 두 개인 이유는 트랜잭션을 짝수의 개수로 맞추기 위함입니다

두개의 트랜잭션끼리 짝을 짓고 해쉬함수를 통해 도출된 해시 값들을 또 두개씩 짝지어서 최종적으로 모든 트랜잭션을 대표하는 해쉬값이 도출되게 됩니다.

이런 방식을 통해서 블록 내에 있는 2천 ~ 3천개의 모든 트랜잭션은 최종 32바이트 길이의 머클트리 루트의 해시 값으로 요약되어 블록헤더에 저장되는 것입니다!

 

2.암호화 기법

비트코인은 비대칭형 암호화 기법을 사용하는데요. 비대칭형 암호화 기법이란 쉽게 말해서 암호화를 하는 키와 복호화(암호화된 문장을 복원하는 것)를 하는 키가 다른 암호화 기법을 말합니다. 

이 서로 다른 암호화 키와 복호화 키는 쌍을 이루는 특징이 있습니다.

 

3.전자서명 

전자 서명이란 송신자의 메시지 전체를 해시 값으로 만든다음 이를 개인키로 서명한 것을 전자 서명이라고 합니다

 

수신자는 전달받은 전자서명을 송신자의 공개키로 복원한 값과 전달받은 메시지를 해시한 값을 대조해 진위를 파악합니다. 아까 설명했듯 메시지의 값이 조금만 달라져도 해시 값은 다르기 때문에 누군가 중간에 메시지를 조작했다면 전자서명을 통해 얻은 해시값과 메시지를 해쉬한 값이 달라져 조작유무를 파악할 수 있게 됩니다.

 

4. 해시 퍼즐

해시 퍼즐을 이해하려면 우선 작업 증명에 대해서 알아야하는데 작업 증명이란 서비스를 신청하는 자에게 결코 작지않으면서도 처리 가능한 수준의 과제를 요구하는 것으로 보통 컴퓨터 계산 자원을 소모하는 것을 말합니다.

비트코인에 구현된 해시퍼즐을 쉽게 예를 들면 4자리 비밀번호 잠금장치로 비유를 할 수 있습니다 잠금장치를 열려면 0~9999를 다 대입해봐야하는데 무식하게 모든 경우의 수를 대입한 후에 비밀번호를 알게되어 장부에 거래내역을 기록하게되면 또 비밀번호가 리셋되고 시간이 지남에 따라 비밀번호는 4자리에서 6자리~~무한대로 늘게됩니다 그리하여 비트코인의 채굴속도는 반감기에 따라 느려지게 되는 것입니다.

 

 

반응형
반응형

DeFi : 탈중앙화 금융 서비스

 

CAP : 시가총액

 

ATVL : 디앱에 잠긴 토큰의 총 볼륨을 계산하지만 이전 90일 동안 USD를 기준으로 한 토큰 가격을 모두 잠구고 계산한다.

 

TVL : 예치된 자산 -> 디파이 산업의 규모를 측정하는데 사용되는 측정 단위. 즉 금융 플랫폼인 디파이에 예치된 자산 규모의 총합계 금액을 의미.

 

CAP/TVL : 공급, 최대 공급 및 현재 가격 계산

 

초과 담보 : 신용조회를 하지 않았을 때, 초과 담보 대출은 대출을 해주는 사람이 디앱에서 실행해주지 않을 경우를 대비

한 보험의 한 형태다

 

샤딩 : 이더리움의 확장성 문제를 해결하려는 솔류선. 전체 블록체인 네트워크를 일정 부분씩 분할하여 트랜잭션을 각각 검증하고 저장한다. 거래 처리 속도가 굉장히 빨라진다.

 

ERC-20 : Ethereum Request for Comment 20 의 약자이다. 20은 리퀘스트 숫자다. 이더리움 네트워크의 개선안을 제안하는 EIPs에서 관리하는 공식 프로토콜이다. ERC-20은 이더리움 블록체인 네트워크에서 정한 표준 토큰 스펙이다. 필요한 이더리움과 호환성이 있는 모든 요구 사항을 충족시키는 표준은 ERC-20으로 간주된다. ERC-20 토큰은 이더리움과 교환 가능하며 이더리움 지갑으로 전송이 가능하다.

 

AMM : Automatically Market Makers의 약자로 DEX프로토콜의 일종으로 자산 가격을 산출하기  위해 수학적 공식을 사용한다. 기존 거래소처럼 오더북을 사용하는 대신, 자산 가격은 가격 계산 알고리즘을 따른다.

스마트 콘트랙트 : 서면으로 이루어지던 계약을 코드로 구현하고 특정 조건이 충족되었을 때, 해당 계약이 이행되게 하는 스크립트

반응형

'블록체인' 카테고리의 다른 글

블록체인 MultiCall  (0) 2023.11.21
블록체인 블록의 구조  (0) 2021.09.27
P2P 네트워크 와 블록체인 네트워크 설계  (0) 2021.07.19
데이터베이스와 분산원장?  (0) 2021.07.08
비트코인과 블록체인  (0) 2021.07.08
반응형

출처 : https://steemit.com/coinkorea/@piljae/dex-1

탈중앙화 거래소는 DEX(Decentralized Exchange)의 약자로 서버-클라이언트 방식의 중앙화된 거래소와 달리, P2P 방식으로 운영되면서 토큰의 교환 및 거래 기능을 제공한다. 거래소가 개인의 자산을 관리하는 것이 아니라 개개인이 직접 관리하기 때문에 해킹으로부터 안전하다. 마운트곡스 해킹사건을 필두로 중앙화 거래소가 갖고 있는 투명성 및 보안 문제를 해결하기 위해 탈중앙화 거래소에 대한 수요가 증가했고, 디파이 시장의 주목과 함께 탈중앙화 거래소가 성장 중에 있다. DEX는 고객의 자금을 보유하기 위해 제3의 서비스에 의존하지 않고 자동화된 프로세스를 통해 사용자끼리 직접 거래가 이뤄진다. 어느 한 서버나 특정 장소에 재산을 보관하는 것이 아니기 때문에 해킹 위험도 적어 사용자들은 안심하고 거래를 이용할 수 있다. 또한 중앙화 거래소에서 거래할 수 없는 가상자산에 대한 거래도 가능하고, 스마트 계약을 활용해 개인 간 대출 등의 금융서비스를 만들어 거래도 가능하다. 이런 장점들이 부각되면서 현재 디파이 시장에서 대출서비스와 함께 가장 수요가 많은 서비스다.

 

이에 반해, 거래가 적으면 거래성사가 어렵게 되어 유동성 공급에 대한 문제가 생기는 단점이 있으며, 거래 과정에서 스마트 계약을 이용하기 때문에 기존 거래에 비해 시간이 더 걸리는 구조적 한계를 갖고 있다. 또한 별도의 신원인증 없이 지갑만 있으면 거래가 가능한데, 향후 국제자금세탁방지기구의 제재를 받을 수 있다는 우려도 있다.

 

최근 급성장한 커브 파이낸스와 유니스왑이 대표적인 탈중앙화 거래소다. 특히, 유니스왑은 디파이 생태계 내에서 한 때 가장 높은 점유율을 기록했다. 유니스왑은 이더리움과 ERC-20 기반의 토큰 간 자동 교환 거래를 가능하게 설계된 탈중앙화 거래소다. 탈중앙화 거래소가 갖고 있는 유동성 부족의 문제를 해결하기 위해 유니스왑은 유동성 풀을 이용한다.

 

즉, 이용자가 매수/매도를 하고 싶을 때 바로 스왑하면 거래가 발생한다. 그 가격에 거래하려는 거래 상대방을 찾는 과정이 필요 없고, 거래량이 적어 주문하기 어려운 토큰도 바꿀 수 있다. 이 토큰은 바로 유동성 풀에서 나오는데, 유동성 풀이란 유동성 공급자들이 자신의 토큰과 이더리움을 고급하면서 형성된다. 이를 통해 유동성 공급자들은 거래 수수료를 보상으로 받게되고, 다른 사람들은 유니스왑을 이용해 손쉽게 거래가 가능해진다. 토큰의 가격을 유동성 풀에 들어있는 이더리움의 수량과 토큰의 수량에 비례해 시장에서 결정된다.

 

유니스왑은 대표적인 AMM으로 큰 인기를 끌고 있다. 유니스왑의 등장과 성공은 탈중앙화 거래소 시장에 지각변동을 불러왔다. 유니스왑을 모방한 각종 스왑이 들어간 거래소들이 등장한 것이다. 대부분 유니스왑의 작동 원리와 비슷하다.

후발주자 중 가장 눈에 띄는 서비스는 1인치가 런칭한 무니스왑이다. 무니스왑 역시 대부분의 기능은 유니스왑과 유사하다. 그리고 유니스왑에는 없던 거래지연시간을 추가했다. 이는 유동성 제공자가 AMM에 예치된 토큰 가치가 지갑에 보유하고 있는 토큰 가치와 달라져 발생하는 손실을 줄이려는 시도다. 이 외에도 커브 파이낸스, 밸런서 등이 대표적인 탈중앙화 거래소인데 이들 역시 모두 AMM 기반이다.

 

탈중앙화 거래소가 급성장하면서 기존의 중앙화 거래소는 비상이 걸렸다. 중앙화거래소와 탈중앙화 거래소 모두 초창기부터 존재했었다. 하지만 지금까지 투자자들은 거래를 대부분 중앙화거래소에서 했고, 탈중앙화거래소의 거래량은 중앙화거래소에 비해 미미한 수준이었다. 하지만 최근 디파이 붐이 불면서 탈중앙거래소가 빠르게 성장하고 있다. 2020년 9월 초에는 유니스왑의 일일 거래량이 코인베이스를 뛰어넘는 사건이 발생하기도 했다.

 

다급하게 움직인 것은 중국이었다. 후오비는 디파이 연합을 출범시켜 컴파운드, 커브, 밸런서, 아베 등을 가입시켰다. 이미 탈중앙화 거래소를 런칭한 적이 있던 세계 최대 거래소 중 하나인 바이낸스는 중앙화거래소인 바이낸스닷컴과 BSC을 서비스 적으로 연결했다.

 

 

참고 : 블록체인 기반 혁신금융 생태계 연구보고서.pdf

반응형
반응형

2장에서는 블록체인에 개념에 대한 간단한 용어 정리가 나옵니다. 블록체인 개념에 앞서 간단히 알아두면 이해하기 편한 개념들입니다. 간단한 단어들을 이해하고 책에 대한 내용을 이해하면 쉽게 블록체인을 접할 수 있습니다. 

 

2.1.1 노드와 피어 

 

1. 노드: 네트워크 상에서 컴퓨터를 꼭짓점으로 표현한 것

2. 피어: 각 노드 입장에서 특별히 자신과 직접적으로 연결돼 있는 노드를 피어라고 부름

 

2.1.2 일의 분산대 일의 중복

1. 분산 시스템: 일반적인 분산 시스템으로서 여러 서버가 일을 나눠 처리함으로써 작업의 효율성이나 서비스의 가용성을 높이는 것을 목적

 장점: 분산된 일을 처리하기 때문에 속도 상승, 중앙 서버가 고장 나도 모든 서비스가 중단되는 것을 방지해 가용성 높임

 

2. 블록체인(중복 시스템): 동일한 일을 중복하여 처리, 자원과 시간 투입되지만, 일을 중복하기 때문에 효율성이 극도로 저하, 모든 노드가 일을 반복 후 일치시키므로 결과의 신뢰도가 향상 , 작업의 효율성 희생하고 신뢰도를 높인 시스템

 

2.1.3 브로드 캐스팅

1. 브로드 캐스팅: 상대방을 특정하지 않고, 모든 접속자에게 데이터를 전송하는 방식

> 이를 통해 모든 노드는 동등한 데이터를 갖게 된다, 블록체인에서는 어떤 노드라도 더 많은 데이터를 가질 수 없으며, 모두가 동일한 데이터를 갖게 됨

 

2.1.4 트랜잭션

 

1. 트랜잭션: 금융 분야에서 모든 금융 거래를 폭넓게 의미하고 IT 분야에서는 보통 업무 처리 단위를 이야기한다.

 

2. 블록체인 트랜잭션: ‘거래 내역을 기록’하는 것

 

3. 블록체인: 즉 약 10여분 동안 네트워크에 제출된 트랜잭션(거래내역)을 모아 블록 단위로 처리하고 그 블록 단위로 순서대로 기록하고 있는 것 

 

2.1.5 채굴 & 지갑 소프트웨어

 

1. 블록체인 에서 채굴 = 기록

 

2. 지갑 소프트웨어: 지갑은 주소라는 계정 생성하고 나만의 암호키를 생성해 늘 안전한 거래를 가능하게 해 준다.

 

3. 비트코인 지갑 역할 

 1) 비트코인 주소 생성

 2) 계정 관리를 위한 개인키/ 공개키의 생성과 관리

 3) 비트코인 거래(=트랜잭션)를 시스템에 제출

 4) 비트코인 잔액 관리 등 기타 기능 

 

2.2.1 블록체인의 정의 

 

블록체인: ‘자발적으로 구성된 익명의 네트워크’ 의미하고 네 가지 성질을 만족하도록 설계된 것을 정의

 

1. 각 노드는 자의로 네트워크 구성원으로 참여하거나 탈퇴할 수 있어야 하고 이를 통제하는 어떠한 서버도 없어야 한다. 따라서 구성은 동적이며 어떠한 제약도 없어야 한다.

2. 모든 노드는 동일한 권리와 의무, 정보를 가져야 하며, 어느 한 노드도 더 많은 권한이나 의무, 정보를 가져서는 안 된다.

3. 각 노드는 원할 경우, 향상 기록 및 검증에 참여할 수 있는 권리가 보장되어야 한다.

4. 기록의 불변성은 첫째, 기록자 선정의 무작위성과 둘째, 기록 변경 자체의 어려움이라는 속성을 모두 갖춘 방식으로 구현되어야 한다.

 

> 쉽게 요약하자면 

1번 속성은 자율적인 형성 강조

2번은 내부자에 의한 시스템 남용 방지

3번은 기록 자체에 관한 신뢰를 위한 요소

4번 3에 더해 기록의 비가역성(본디의 모습으로 더하지 않음)을 추구

 

2.2.2 블록체인의 기능적 관점의 정의

 

전산학 관점: “ 익명의 비동기화 네트워크에서 발생하는 사건들을 중앙 서버의 관여 없이도 일관성 있게 순서를 정할 수 있는 장치”

 

 

이번 시간에 는 간단한 블록체인 용어들에 대하여 알아봤습니다. 다음 글에서는 블록체인 이루는 기반 기술에 대하여 알아보겠습니다. 

 

 

반응형

+ Recent posts