brunch

You can make anything
by writing

C.S.Lewis

by 백종찬 Apr 04. 2017

R3의 분산원장 코다(Corda) 이해하기 pt.1

Understanding Corda pt.1

*이번 포스팅은 비개발자를 대상으로 작성되었음을 알림


코다(Corda)는 핀테크 스타트업이자 80여 개 이상의 금융사가 참여하는 글로벌 분산원장 컨소시엄의 운영주체인 R3의 분산원장(distributed ledger) 기술이다. 여기서 블록체인이 아닌 분산원장으로 소개하는 이유는, R3가 블록체인으로부터 많은 영향을 받았음에도 코다 자체는 블록체인 개념과 상당한 차이가 있기 때문이다. R3에 대한 설명은 이전 포스팅에서 했으므로 생략한다.


코다의 시작

코다의 개발은 기존의 블록체인이 금융권의 니즈를 충족시킬 수 없다는 판단에서 시작되었다. 애초부터 금융기관을 탈피하기 위해 탄생된 기존의 블록체인을 변경하는 수준이 아니라, 금융사들의 요구사항에 맞게 개발해야 했다. 그래서 R3는 재작년 IBM에서 블록체인을 담당하던 Richard Gendal Brown과 비트코인 코어 개발자 출신의 Mike Hearn을 영입하여 코다 개발을 착수하게 된다. 즉 코다는 기본적으로 금융산업에 최적화된 기술이다.


*다만 비트코인과 이더리움은 코다와 경쟁하거나 상충되는 개념이 아니다. 비트코인, 이더리움, 코다 모두 서로 다른 문제를 해결하기 위해 탄생된 기술이다. 비트코인은 신뢰할 수 없는 익명 간 가치이전의 역할을, 이더리움은 분산 프로그램이란 개념을 훌륭히 해내고 있다. 


분산원장이란?

코다의 아키텍처 구성을 알아보기 전에 코다 개발사인 R3가 생각하는 분산원장의 개념을 먼저 이해하는 것이 중요하다. 분산원장을 처음 접하는 독자들의 이해를 돕기 위해 Richard Gendal Brown가 "The Corda Way of Thinking"에서 사용한 비유를 통해 설명한다.




자, 그럼 쉬운 이해를 위해 "종이, 복사기, 우체국"만 존재하는 세상을 상상해보자. 먼저 종이를 보관할 캐비닛이 필요할 것이다. 캐비닛에 보관되는 종이들은 특정 정보들이 적혀있는 "기록"이다. 또 그 기록을 쉽게 찾기 위해 각 종이에는 번호가 적혀있다.


위 그림처럼 철수, 영희, 길동은 각자 캐비닛을 가지고 있고, 그 안에는 번호가 적힌 종이가 있다. 이 종이를 계약서라고 가정해보자.


철수와 영희, 길동 세명 모두 참여한 계약은 #20번 종이에 적혀있고, 철수와 영희 간의 계약은 #54번 종이에 적혀있다. 영희와 길동 간의 계약은 #110번 종이에 적혀있다. 그림에서 보이는 것처럼, 자신과 상관없는 계약의 종이는 보관하지 않는다. (철수와 영희 간의 계약서 #54번을 길동이 보관하지 않음)


이제 캐비닛에 보관된 종이를 좀 더 자세히 들여다보자. #54번 종이 (철수와 영희 간의 계약서)를 보면 다음과 같이 적혀있다.


위 종이는 철수영희 간의 계약이고 철수와 영희만 캐비닛에 보관하고 있다. 적혀있는 대로 수요일비가 내리는 여부에 따라 철수와 영희는 1만 원을 주고받아야 한다. 비가 내리는 사실은 철수와 영희 모두 신뢰할 수 있는 기상청에서 내보낸 보도자료를 통해 확인한다.


철수와 영희가 이 계약서에 서명을 하고 각자 캐비닛에 보관하면 계약이 성사된다. 즉 합의(consensus)를 이룬 것이다. 다만 아직 비가 오지 않은 상태이기 때문에 계약의 상태 (state of the deal)는 비 내림의 여부에 따라 업데이트(evolution)되어야 한다. 


이제 수요일이 지나 목요일, 철수와 영희는 기상청에서 보도한 신문기사를 보게 된다. 


이번 주 수요일 강수량 1.0mm의 비가 내렸습니다.

기상청을 통해 비가 내렸다는 사실을 확인한 후, 계약서에 적힌 대로 철수는 영희에게 1만 원을 주어야 한다. 즉 계약의 상태가 비 내림을 기다리는 상태에서, 철수가 영희에게 지급해야 하는 상태로 바뀐 것이다.   

이제 중요한 단계는 철수와 영희의 계약서를 업데이트하는 것이다. 위의 그림처럼 기존의 #54번 계약서를 없애고, 새로운 계약서 (철수의 1만원 지급의무가 적힌 계약서)로 변경되어야 한다. 가정한 대로 이 세상에는 종이, 복사기, 우체국 밖에 없기 때문에, 계약을 업데이트하기 위해 영희는 철수에게 아래 세 가지 내용이 담긴 편지를 보내야 한다. 


1. 기존의 계약서를 파기해야 한다는 내용

2. 업데이트된 새로운 계약서의 복사본

3. 비가 내렸다는 사실을 증명하는 기상청의 보도자료 (증빙서류)

 

우체국을 통해 편지를 받은 철수는 자신의 캐비닛에 보관되어있던 #54번 종이를 파기하고, 영희가 보낸 복사본인 #60번 종이로 대체한다. 이로서 철수와 영희는 동일한 기록(shared facts)을 각자 보관하게 된다. 계약이 업데이트될 수 있는 이유는 이전 #54번에서 미리 설정해놓은 계약의 내용(rulebook)을 기반으로 미리 합의했기 때문이다. 철수와 영희는 그 룰에 맞게 계약을 실행해야 한다. 




길게 설명했지만 이 비유는 아주 단순하다. 철수와 영희가 서로 합의한 동일한 계약을 각자 보관하면서, 계약이 바뀌어야 하는 상황이 오면, 기존의 계약을 파기하고, 새로운 동일한 계약을 다시 각자 보관하는 과정을 보여준다. 이 비유는 복잡한 금융계약을 좀 더 쉽게 이해하기 위한 가상의 시나리오인 것뿐이지만, 이게 바로 코다의 궁극적인 역할이다. 코다는 계약 상태(state of the deal)의 변화(evolution)를 거래당사자간 합의(consensus)를 통해 동일하게 기록/보관하는 분산 데이터베이스 기술이다. 이제 위의 비유를 R3의 코다에 대입해보자.

다시 정리하자면, 코다는 

- 거래당사자(=철수와 영희) 간에

- P2P 방식(=우체국 서비스)으로

- 상태객체(=계약서)를 

- 계약코드(=합의한 계약서의 내용)에 따라 자동으로

- 거래(=편지의 송수신)하는 기술이다. 


앞으로 코다에 대한 글을 읽으면서 볼트, 상태객체와 같은 생소한 단어들을 볼 때, 위의 비유를 보면 이해하기 쉬울 것이다. 


끝으로, 코다는 블록체인으로 통용되는 기술이 해결하고자 하는 문제와는 다른 문제를 해결한다. 기존의 블록체인들이 개인 또는 기관의 탈중개화(disintermediation) 또는 탈중앙화(decentralization)를 통한 거래를 구현하고자 한다면, 코다는 데이터의 보관 위치와는 상관없이 다수가 금융계약의 변화를 상호 간 컨트롤하는 플랫폼을 구현하고자 한다. 수십 년간 유지돼 온 중개기관을 일방적으로 파괴하는 것보다, 역할의 변화를 통해 산업의 전반적인 효율성을 높이는 것이 더 현실적이라는 것이다. 


비트코인이나 이더리움과 같은 블록체인 기술이 파괴적 혁신(disruptive innovation)으로 금융의 혁명(revolution)을 꿈꾼다면, R3의 코다는 금융산업의 변화(evolution)에 더욱 초점을 맞춘다고 볼 수 있다. 급진적 혁명이냐 효율적 변화냐는 꼭 어느 것이 무조건 옳다고 볼 수 없다. 


수많은 사람들이 범용적으로 사용함에도 불구하고 지적재산(IP)과 같은 "제도"의 한계에 의해 제도권 안으로 들어오지 못한 암흑의 경로, 냅스터(Napster)나 토렌트(Torrent)처럼, 비트코인/이더리움도 암흑의 금융으로 남을 가능성을 배재할 순 없다. 금융 역시 규제산업이기 때문이다. 반대로 블록체인 기술의 발전하면서, 프라이버시/확장성/분산처리 등이 지금보다 훨씬 더 나아진다면, 제도권 내에서도 받아들일 여지는 존재한다. 


기술의 발전에는 항상 희망적으로, 다만 현실과 제도의 필요성은 인지한 채로 시장을 바라보는 것이 현명할 것이다. 


다음 글에선 코다의 아키텍처를 기존의 블록체인과 비교하여 설명해보도록 하겠다.

Stay in tune!




작가의 이전글 분산원장의 가치
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari