암호화폐에 대한 흥미로운 이야기 (4) — 리카르디안 컨트랙트

FIRMACHAIN
FIRMACHAIN
Published in
6 min readOct 22, 2018

오늘은 법적 효력을 지닌 리카르디안 컨트랙트(Ricardian Contracts)를 설명 드리겠습니다

· 리카르디안 컨트랙트란?

리카르디안 컨트랙트는 현재 금융 암호학자이자 프로그래머인 Ian Grigg가 1995년 MBA 학위를 취득을 위해 공부하던 중 개발한 기술입니다. 당시 자산의 디지털화는 현금에만 집중되어있을 뿐 금융 상품에는 고려되지 않았습니다.

Ian Grigg는 모든 금융 분야에서도 사용가능한 디지털 자산을 개발하고자 했습니다. 다양한 종류의 자산을 리서치하던 중 법적 효력이 있으며 지불 계약의 일종인 채권[1]을 선택했고 채권의 디지털화를 시작했습니다. 법적 문서인 채권은 많은 조건과 데이터들로 이루어진 일종의 계약이었습니다. 채권의 모든 것들(조건, 데이터 etc.)을 컴퓨터가 인식할 수 있도록 디지털 문서화시키면 금융 상품에도 적용할 수 있을 거라고 생각했습니다.

이 때, 법적 효력을 갖추기 위해 법적으로 정의된 표준 형식을 만족하는 문서로 개발했고 프로그래밍 언어를 모르는 사람들(ex.변호사)도 읽고 파악 가능한 형태로 만들었습니다.

1988년 ‘7 레이어 구조의 금융 암호화(Financial Cryptography in 7 Layers)’라는 논문에서 Ian Grigg는 처음으로 리카르디안 컨트랙트를 언급했습니다. 하지만 당시의 기술로는 구현하기 어려워 이론으로만 존재하다가 블록체인 기술이 등장하면서 리카르디안 컨트랙트는 구현되었습니다. 또한, 다양한 플랫폼에서 실제 사용해본 결과 법적 구속력이 있음을 확인함으로써 그 효용성을 증명했습니다.

· 스마트 컨트랙트와 리카르디안 컨트랙트의 차이점

먼저 스마트 컨트랙트는 계약 진행부터 완료까지 컴퓨터가 자동으로 진행시켜줍니다. 아래 계약을 스마트 컨트랙트로 구현했다고 가정합시다.

B는 A에게 100만원을 빌렸습니다. 다음 주가 B의 월급날이기 때문에 B는 일주일안에 A에게 100만원을 갚기로 했습니다. 일주일 뒤에도 못 갚을 경우 B는 A에게 110만원을 주기로 합니다.

흠. 겉으로 봤을 땐 아무 이상 없는 계약 같습니다. A와 B는 위와 같이 합의하고 이를 스마트 컨트랙트로 구현했습니다. 하지만 만약 B가 갑자기 불의의 사고가 나서 일주일이란 기간을 넘겨버렸으면 어떻게 될까요?

현실이었다면 A는 B의 안타까운 사정을 이해해주고 기간을 연장했을 것입니다. 하지만 스마트 컨트랙트는 그저 주어진 명령만 실행하기 때문에 자비없이 바로 B에게 페널티(110만원)를 줍니다.

이처럼, 스마트 컨트랙트는 자동화에는 편리하지만 예상치 못한 상황에 대응할 수 없으며 법적 구속력을 가진 근거가 따로 없기 때문에 모든 계약에서 사용하기에는 적절하지 않습니다.

반면, 리카르디안 컨트랙트는 계약 당사자들의 조건과 내용을 법적 가이드라인으로 제시해준 디지털 계약이며 다른 금융 시스템들과도 안전하게 연결해줍니다.

간단하게 정리하면

스마트 컨트랙트 : 계약의 자동 진행

리카르디안 컨트랙트 : 계약 과정에 사용된 모든 데이터를 파싱[2]

이처럼 스마트 컨트랙트와 리카르디안 컨트랙트를 합친다면 법적 효력을 가진 자동화 계약 서비스를 비즈니스에서 이용할 수 있습니다. 단지 이론뿐이던 2개의 기술이 블록체인으로 완성되면서 세상을 바꿀 수 있게 되었습니다.

· 리카르디안 컨트랙트 구조

이번에는 리카르디안 컨트랙트의 구조에 대해서 알아보겠습니다. 이 부분은 개발의 영역이니 비개발자분들은 패스하시어도 괜찮습니다.

먼저 리카르디안 컨트랙트는 컴퓨터뿐만 아니라 인간도 논리적으로 구문 분석이 가능한 가독성을 갖춰야합니다. 때문에, 최소한의 마크업 언어[3]를 삽입한 텍스트 형식으로 개발해야 합니다.

또한, 직렬화[4] 및 아티팩트[5] 전송으로 인해 변조되지 않았다 라는 내용의 해시 전달과 법과 회계의 연결은 해시를 통해 이루어지기 때문에 암호 해시 함수도 지원해야 합니다. 각 거래는 해당 거래와 관련된 모든 거래 계약의 해시를 포함하기 때문에 양쪽 파티 간의 정확한 거래의 내용과 조건을 보장합니다. 또한, 거래의 수행과 계약의 발행은 명확히 분리됨으로 계약내용 혹은 거래내용의 왜곡을 발생시키지 않습니다.

리카르디안 컨트랙트는 객체 지향 프로그래밍의 튜플[6]과 같습니다. 참조(Reference)는 암호화 해시 함수이며, 객체는 계약에서 필요한 타입들을 다루는 클래스가 작성될 때 형성됩니다. 객체 지향에서의 팩토리(Factory)는 문서의 텍스트를 읽고 어떤 유형의 클래스에 포함되는지 파악한 후 텍스트 위에 특정 클래스의 객체를 구성합니다. 객체가 구성되면 해시, 발행자명, 문제의 본질, 키와 서명 상태의 정보를 얻을 수 있습니다.

하단은 리카르디안 컨트랙트를 BowTie 모델로 표현한 이미지입니다.

출처 : https://cdn-images-1.medium.com/max/800/0*slUqVhJo2xoYcaSC.

상단 그림은 기계가 읽을 수 있는 법적 산문과 PGPSig[7]가 포함된 계약서를 해시화 이것을 블록체인에 업로드하는 과정을 담고 있습니다.

리카르디안 컨트랙트에 대한 포스팅 재미있게 읽으셨나요? 다음에도 더욱더 흥미로운 주제로 찾아 뵙겠습니다.

감사합니다.

[1] 채권 : 정부, 공공기관, 특수법인과 주식회사 형태를 갖춘 사적기업이 일반 대중 투자자들로부터 비교적 장기의 자금을 조달하기 위해 발행하는 일종의 차용증서이다.

출처 : 네이버 지식백과

[2] 파싱 : 일련의 문자열을 분석하여 의미 있는 토큰(token)으로 분해하고 이들로 이루어진 파스 트리(parse tree)를 만드는 과정을 말한다.

출처 : 위키백과

[3] 마크업 언어

· 사람과 컴퓨터가 모두 논리적으로 이해 가능한 개발 언어 (xml / json)

· 법적 관점으로 볼 때, 법적 산문 문서에 포함된 마크업 언어를 사용하면 거래 비용 절감, 분쟁 해결 속도 및 집행 가능성, 투명성 향상

[4] 직렬화 : 객체를 다른 저장 환경 등에서도 사용할 수 있는 형태로 바꾸는 작업

[5] 아티팩트 : 손실 압축 적용 시 미디어에서 보이는 왜곡

[6] 튜플 : 순서대로 정렬된 값들의 세트, 한번 만들면 수정 불가능

[7] PGP : PGP로 전자서명을 할 수도 있다. 원본 파일을 작성하고, 그 파일에 대해 sig 파일을 생성하여 상대방에게 원본 파일과 sig 파일을 함께 배포하며, 상대방은 PGP를 이용해 sig 파일을 검증한다. sig 파일이 생성된 후에 원본 파일이 변경되었으면, sig 파일 검증 시 Bad signature라고 출력된다.

출처 : 위키피디아

🔴 공식채널

홈페이지 : http://firmachain.org/

트위터 : https://twitter.com/firmachain

미디엄 : https://medium.com/firmachain

텔레그램(알림채널) : https://t.me/firmachain

텔레그램 커뮤니티 : https://t.me/firmachain_global

카카오 플러스 : http://pf.kakao.com/_FAKgxb

--

--