brunch

You can make anything
by writing

C.S.Lewis

by SKKRYPTO Nov 24. 2018

Hyperledger#1

Blockchain in Business

분산원장(Distributed Ledger) in 블록체인

좌측: 분산 데이터베이스,  우측: 분산 원장


분산원장기술(DLT: Distributed Ledger Technology)은 중앙서버나 중앙관리자의 제어 없이 분산화 된 네트워크의 각 노드(개인)들이 데이터베이스를 공유하고 계속 동기화하는 기술이다. 하지만 이렇게 공유된 사실들의 존재, 상태, 변화에 대한 합의를 형성하고 유지할 때 '서로를 완전하게는 신뢰하지 않는 당사자들 사이에서도 가능케하는 시스템이다.


분산 데이터베이스

여러 곳으로 분산되어 있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스이다. 논리적으로는 동일한 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터들을 모은다. 분산 데이터베이스에서 노드들은 외부 세계에 제시하는 일관된 시각을 유지하기 위해 협력한다. 그들은 엄격한 출입통제를 유지하기 위해 협력하고 외부세계로부터 받은 정보를 확인한다. 이러한 협력하는 노드들은 전체 데이터 세트의 파티션을 유지하기 위해 협력할 수도 있고, 또 복제본을 일관되게 유지하기 위해 협력할 수도 있지만 원칙은 동일하다. '단일' 조직의 통제 하에 자신들의 상태를 유지하기 위해 협력한다. 이 노드들은 서로를 신뢰한다. 신뢰의 범위는 데이터베이스 시스템 전체와 그 사용자 사이이고 시스템의 각 노드는 동료(다른 노드)로부터 수신된 정보를 신뢰하며, 전체 노드들은 동료로부터 받은 데이터를 감시하면서 신뢰받게 된다. 


분산원장 vs 분산 데이터베이스

만약 사용자의 기록을 유지하는데 있어 중앙 운영자에 의존하는 것이 더 좋다고 생각하는 경우라면 분산 데이터베이스도 좋다. 하지만 자신의 기록과 상대방의 기록을 동시에 유지해야 하는 경우라면 분산 데이터베이스 기술로는 어렵다. 실제로 오늘날의 금융시장에서는 공유기록을 정확하게 유지하는 일에 대해서 엄청난 비효율성을 보였었다.

분산 원장은 당사자들이 서로를 충분히 신뢰하지 않고도 공유데이터를 유지하는데 도움을 준다.


어떻게 이것을 가능하게 할까?


데이터의 공유 vs 데이터 컨트롤의 공유

 좌측: 데이터의 공유,   우측: 데이터 컨트롤의 공유

분산원장이 가져온 새로운 개념은 데이터 '컨트롤의 공유(Shared control over evolution of data)이다. 데이터의 공유(Shared data)는 데이터 컨트롤의 공유와 오해할 수 있는 부분인데 데이터 공유는 분산원장 업이 기존 API를 통해 충분히 구현할 수 있다.

"데이터 컨트롤의 공유"는 데이터를 읽고(read), 입력하고(write), 처리하는(process) 과정을 다수의 독립된 기관들이 상호간 공동을 진행한다는 것을 의미한다.

즉 완전히 신뢰하지 못하는 기관들이 단일의 공유된 데이터에 대한 합의를 이루고 유지하는 것이다. 또 분산원장에서 데이터의 컨트롤은 권력(power)이 아닌 법칙(rule) 기반이다. 분산원장 이전에는 모든 데이터가 한 관리자에 의해 컨트롤 되었다. (분산 데이터베이스의 경우에도)

이 관리자가 데이터를 입력/변조/삭제가 기능했었고 가치를 지니는 금융자산의 경우 독립된 기관끼리 자산을 주고받을 경우 이를 임의로 변조하거나 삭제하면 안 되기 때문에 그 권력(power)을 제 3의 기관이 대신 가져갔다. 분산 원장은 지정된 법칙에 따라 거래의 유효성, 단일성과 거래상대방과의 관계 및 거래 대응 등이 정해지게 된다. 유효성이란 거래당사자 간의 거래내용을 만족하고 각각 서명하여 거래가 유효(valid)함을 확인하는 것이고, 유일성이란 그 거래가 두 번 쓰이지 않았는지(double spend)에 대한 검증을 의미한다.


블록체인이 필요한 이유 


1) 단일 정보의 공동 처리 & 관리

A가 B에게 100만원을 보내겠다'거래가 생성되면 A의 입장에서는 B에게 100만원을 보냈다는 정보가, B의 입장에서는 A에게 100만원을 받았다는 정보가 생긴다. 사실 이러한 두개의 정보는 같은 정보로 즉 단일 정보로 블록체인에서는 인식이 되고 블록체인 네트워크로 전송된다.


 2) 정보의 속도와 자금의 속도

블록체인 기반, 블록체인 기술이라는 것에 대해서 화폐로 활용되는 수단에 대해서 이야기 해보겠다. 은행에서 다른 은행으로 돈을 이체하거나 돈을 지불하고 물건을 구매하는 경우를 생각해 볼 수 있는데. 만약 현찰로 직접 '나'가 상대방에게 돈 5만원을 전달한다면 정보의 속도 = 자금의 속도 라고 말할 수 있다. 이유인 즉 내가 5만원을 내 손을 통해 직접 건넸다는 사실은 이제 이 5만원은 당신 것입니다. 라는 사실과 함께 자금도 동시에 이동되었기 때문이다.

하지만 은행의 경우는 좀 다르다. 5만원을 이체한다면 5만원이 내 통장에서 사라지고 상대방의 통장에 입금된다. 하지만 실제로 자금이 이동되는 건 그 후에 이동된다. 즉 자금의 속도가 뒤쳐질 수밖에 없는 구조이다.

이렇게 정보의 속도와 자금의 속도가 차이가 난다면 문제가 발생할 수 있다. 거래가 발생하고 바로 송금한 정보에 대해서 신뢰하는 기관끼리 이 정보가 맞는지 틀린 지 확인하는 것에 대한 위험성이다. 즉 정보를 받았고 확인하는 중인데 자금도 이동을 해버린 경우에 대해서 이때 만약 정보가 잘못된 것이었다면 문제가 발생한다.


-       <그림> 정보의 확인 과정 좌측: 지금까지의 금융사업, 우측: 블록체인을 이용한 정보처리 확인


이해하기 쉽게 하나의 슬라이드를 더 보자면 좌측이 지금까지의 금융사업, 즉 은행이 자금을 송금할 때의 방법을 말한다. 무언가의 거래를 발생시켰지만, 이게 맞다 틀리 다의 검증은 모른 상태로 일단 정보가 전달된다. 그리고 시간 차를 두고 자금도 전달이 될 것이다. 이때 정보를 받았고 확인 중인상황에서 자금도 뒤따라 이동을 해버린다면 문제가 발생한다. 방금 일어난 거래는 잘못된 것인데 그 거래를 발생시킨 당사자나 신뢰하는 기관이던 당장 손쓸 방법은 없다.

우측의 모습은 블록체인(Block Chain)에 관한 내용이다. 정보를 보내고 나서 자금이 이동하는 현재의 금융산업의 처리방식과 차이가 있다. 즉 정보의 속도와 자금의 속도가 같아 질 수 있다는 것이다. 예를 들면 내가 누군가에게 자금을 보내는데 보낸 다음에 이게 맞는지 틀린 지 확인해야하는 작업이 필요한 게 아닌 보낼 때 "이 송금은 맞는 송금입니다"가 같이 오는 작업이다. 


산업 원장의 전제조건

사업 원장의 전제조건은 다음과 같다.

-기밀성(privacy)

-원장의 권위성(authoritative ledger)

-기존 시스템과의 호환성(interoperability)

-확장성(scalability)

-자산 모델링(asset modeling)

-법적 적합성(legal enforceability)


1.    기밀성(Privacy)

블록체인/분산원장에서 기밀성은 세 가지 영역으로 나눌 수 있다.

 1) 계좌(고객정보) 프라이버시
 2) 거래기록(역사) 프라이버시
 3) 자산(잔고) 프라이버시

계좌, 거래기록, 잔고, 거래내역 등의 정보는 특정 거래와 상관없는 기관에게 공개되어선 안된다. 기존의 전통적 블록체인은 모든 정보를 네트워크에 참여하는 모든 노드에게 전달하는데 이는 기관에 적합하지 않다. 제도권 블록체인을 개 발하는 몇 기업들은 정보를 암호화하고 거래상대방에게 복호화 키를 주는 방식을 택하기도 한다. 궁극적으로 관련 없는 노드까지 거래정보를 열람하고 검증하면 확장성, 관련없는 데이터의 기록/관리, 복호화의 가능성, 키 관리의 복잡성, 정보의 기성 등 다양한 문제가 발생한다.


2.    원장의 권위성(authoritative ledger)

분산원장의 기록은 그 자체로서 권위성(authoritative)을 지녀야 하며, 원장에 기록된 정보가 다른 곳에 구비되어있는 기록의 복사본(shadow)일 수 없다. 즉 기록의 처리 (예. 금융거래의 결제)가 분산원장 위에서 직접 일어나야 한다.


3.    기존 시스템과의 호환성(interoperability)

블록체인과 기관의 내부시스템 간의 호환과 어플리케이션 연동을 위해 산업 내에서 범용적으로 사용되는 기술을 바탕으로 적용해야 한다.


4.    확장성(Scalability)

새로운 거래상대방의 네트워크 참여가 수월한, 고립되 지 않는 네트워크 확장성을 보장해야 한다. 또한 기업환경에 적합한 대용량의 거래를 처리할 수 있는 시스템 확장성 및 속도가 가능 해야 하고. 이는 모든 데이터를 네트워크의 참여하는 모든 노드에 게 전파하는 방식의 전통적 블록체인에서는 구현하기 어렵다 거래에 참여하지 않는 노드가 거래검증에 포함되는 순간 거래속도는 가장 느린 노드에 맞추는 하향평준식일 수밖에 없다. 
 비트 : < 10 TPS 이더 : < 20 TPS 하이퍼렛져 : > 2000 TPS 이오스 : > 2000 TPS


5.    자산 모델링(Asset Modeling)

블록체인의 자체의 표준보다 블록체인 기반으로 거래되는 자산의 표준 모델링이 산업 적용을 위해 필요하다. 블록체인 기술의 표준을 선정한 후, 각 거래상대방이 기준으로 사용할 자산의 모델이 범용화 되어야 거래가 가능하다.


6.    법적 적합성(Legal enforceability)

법적 적합성이란 거래 과정에서 문제가 발생했을 경우 법적으로 해소할 수 있고, 체결된 거래가 법적으로 용인될 수 있음을 뜻한다. 즉 블록체인에서 법적 구속력은 법률 계약(legal contract) 기반의 금융거래에 대한 이해, 체결, 실행을 컴퓨터가 대신할 경우(= 스마트 계약) 법적으로 인정해주느냐의 문제이다. 자연어 (human language)로 작성되는 계약서를 컴퓨터 언어로 바꾸는 것은 현재 기술로는 현실적이지 못하고, 설령 가능하다고 하더라도 법정에서 이를 인정하기 어렵다. 법은 계약의 참여자와 판단자가 공통의 언어를 사용해야 하기 때문이다.


blockchain(분산원장기술)은 운영방식에 따라 구별한다.


Public (Permissionless) vs Private (Permissioned)


- 개방형 (Public, Permissionless): 비트코인, 이더리움과 같이 네트워크상 누구나 참여할 수 있는 블록체인

Public(Permissionless) 블록체인은 모든 사용자들이 참여(읽기, 생성)할 수 있다. 또한 어떤 사람이라도 트랜잭션을 생성할 수 있고 네트워크에 참여한 모든 노드가 트랜잭션을 검증하고 승인하기 때문에 Private 블록체인보다 블록을 공유해야 하는 시간이 더 걸린다. 모든 사용자에게 거래내역을 보내고 거래할 때마다 대조하여 확인하게 된다. 그래서 거래가 쌓일수록 기록이 공고해지고 해킹, 위조 가능성이 낮아지고 비트코인이나 이더리움같은걸 보유한 누구나 거래장부를 보유하는 방식이다.


- 폐쇄형, 허가형 (Private, Permissioned): 

Private(Permissioned) 블록체인은 모든 사용자가 참여하는 Public(Permissionless) 블록체인과 달리 여러 기관들의 합의를 이뤄 구성하는 블록체인으로 허가된 사람만 네트워크에 참여 가능하다. 즉 모든 노드가 트랜잭션을 검증할 수 없고, 노드 별로 권한을 다르게 설정이 가능하다.

퍼블릭/프라이빗 블록체인 비교



참고자료

Antony Lewis/ bitsonblocks.net

이교영/dlrydud99@skkrypto.io
여정민/yjh930919@skkrypto.io

김성환/ zxvqwr7@gmail.com  

김정민/julietmikey@gmail.com 

고진호/jinho.ko.1988@gmail.com


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari