리카르디안 컨트랙트 (Ricardian Contract) 를 소개합니다.
EOS Canada에서 최근 리카르디안 컨트랙트를 소개하는 글을 게시했습니다. 본 글은 리카르디안 컨트랙트의 역사와 이것이 어떻게 스마트 컨트랙트와 시너지를 낼 수 있을지를 설명합니다. 그리고 어떤 사용 예시가 있는지를 자세한 역자의 설명과 함께 보시죠!
Block.one이 EOS 블록체인 인프라에서 리카르디안 컨트랙트를 지원할 것이라 발표했습니다. 이에 우리 EOS Canada는 리카르디안 컨트랙트가 무엇인지 설명하고, 또 커뮤니티가 이 중요한 추가 기능에 대해서 왜 관심을 가져야 하는지 함께 시간을 들여서 이해할 가치가 있다고 생각합니다.
‘Ricardian Contract’란 무엇인가
간단히 말해서 리카르디안 컨트랙트는 둘 이상의 당사자들이 서로 행동하기 위한 조건과 내용을 정의한 디지털 문서이고, 사람이 읽을 수 있는 형태로 쓰이며, 그 다음에 암호로 서명하고 승인한 것을 말합니다. 인간과 프로그램 모두가 쉽게 읽을 수 있어야 하고, 여러 가지 발생할 수 있는 상황에 대해서 당사자들이 명확하게 받아들일 수 있도록 도움이되어야 합니다.
간단히 말해서 리카르디안 컨트랙트는 둘 이상의 당사자들이 서로 행동하기 위한 조건과 내용을 정의한 디지털 문서이고, 사람이 읽을 수 있는 형태로 쓰이며, 그다음에 암호로 서명하고 승인한 것을 말합니다. 인간과 프로그램 모두가 쉽게 읽을 수 있어야 하고, 여러 가지 발생할 수 있는 상황에 대해서 당사자들이 명확하게 받아들일 수 있도록 도움이 되어야 합니다.
역사
최근 주류 미디어에서 가상화폐와 블록체인 정보가 쏟아져 나오다 보니 우린 이 모든 기술적 진보가 최근 몇 년간 이루어졌다고 믿게 되었습니다. 사실 우리가 현재 경험하고 있는 가상화폐의 폭풍은 무대 뒤에서 이루어진 오랜 기간의 노력의 결과입니다. 작업 증명(PoW)과 스마트 컨트랙트와 같은 오늘날 가장 유명하고 잘 알려진 블록체인 개념들 중 일부는 1990 년대 초반 디지털 기술로 공상을 하던 사람들이 제안했습니다.
리카르디안 컨트랙트도 그런 경우인데요, 금융 암호화 분야의 선구자 중 한 명인 Ian Grigg가 1995 년 리카르도(Ricardo) 지불 시스템의 일부분으로 만든 것입니다. 직업이 프로그래머였던 Grigg는 대학에서 MBA 학위를 위해 공부하던 중 리카르디안 컨트랙트를 개발했습니다.
Grigg는 먼저 DigiCash라는 회사에서 일하는 친구 중 한 명에게서 자산의 디지털화에 대해 배웠습니다. DigiCash는 전자 지불 시스템을 개발하고 있었지만 1998 년 디지털 현금이라는 개념이 부흥하지 못하면서 파산 신청을 했습니다. Grigg에 따르면 DigiCash의 비전은 현금에만 집중하고 다른 금융 상품에는 집중하지 않았기 때문에 너무 범위가 좁았다고 합니다.
Grigg는 금융분야가 전체적으로 봤을 때 그런 종류의 기술로부터 얻을 것이 많다는 사실을 깨닫고 그의 친구 Gary Howland와 일하기 시작했습니다. 그는 1998 년 ‘7 레이어 구조의 금융 암호화’ (Financial Cryptography in 7 Layers)라는 제목의 논문을 처음 발표하면서 리카르디안 컨트랙트를 얘기했습니다.
자산 발행을 디지털 기술로 하는 것에 대한 해답을 찾기 위해 Grigg은 인터넷에서 채권을 발행하려고 했습니다. 그는 채권이라는 것이 어떻게 정의되는지 면밀하게 조사했고, 그 결과 다른 모든 금융 상품처럼 채권 또한 일종의 계약이라는 사실을 알게 되었습니다. 그가 계약서를 디지털화할 방법을 찾으면 금융 자산이나 금융 상품도 완전히 디지털화할 수 있게 될 것입니다.
Grigg의 아이디어는 선구적이었고 매우 앞서 있었지만, 이 프로젝트를 실현하기 위해 필요한 기술적인 해결책을 가지고 있지 않았습니다. 하지만 현재 기술의 역량과 풍부한 자원 덕분에 이 개념은 더 이상 이론적인 것이 아니며 EOS와 같은 블록체인을 사용하여 구현할 수 있습니다.
Ricardian Contract + Smart Contract
우선 스마트 컨트랙트와 리카르디안 컨트랙트를 구분해 보겠습니다. 스마트 컨트랙트는 어떤 이벤트를 받고 그에 따라 작업을 시작하도록 해주는 명령어들이며, 그 명령어들은 기계가 읽을 수 있습니다. 리카르디안 컨트랙트는 그것을 위한 의도와 구체적인 행동들을 요약한 문서입니다. 리카르디안 컨트랙트는 해당 계약을 기록하기 위해 최선의 노력을 기울이고, 스마트 컨트랙트는 그 계약을 실행합니다.
스마트 컨트랙트는 작업을 자동화하는 데 사용되지만, 우리가 앞으로 나타날 모든 경우의 수와 미래를 예측할 수 없기 때문에 한계가 있을 수밖에 없습니다. 우리는 발생할 거라고 아직 인지하지 못하는 것에 대해 자동화할 수 없습니다. 그리고 예상치 못한 사건이 발생하면 큰 문제가 됩니다. 그럴 때 우리가 의지 할 수 있는 근거 있는 법적 기반이 없기 때문에 스마트 컨트랙트는 그런 상황을 다루기에 적절하지 않습니다.
현재 스마트 컨트랙트를 사용하는 방식을 고려했을 때 리카르디안 컨트랙트를 융합하는 것은 계약들의 근본적인 의도에 필요한 많은 세부 정보를 얻게 하기 때문에 아주 중요합니다. 스마트 컨트랙트는 당사자 간의 합의과정에서 나타나는 가장 중요한 다음과 같은 질문들에 답해주지 못합니다. (예시: 그 계약의 원래 의도는 무엇입니까? 어떤 결과가 적용될 수 있습니까? 정의가 되어 있는 계약의 범위가 어떻게 됩니까? 관련 당사자가 어느 조직/회사며 각 당사자에서 승인한 대표가 누구입니까? 분쟁이 있을 때 어떤 규정으로 해결합니까?) 이런 문서화와 연구가 부족하기 때문에 가상화폐 세계에서 많은 사기와 (컨트랙트의) 악용이 일어납니다. 그리고 문제가 일어났을 때 필요한 경우 현지 법정에서 해결하기를 원할 텐데, 이 때 당사자 간 합의 사항을 이미 서로 인정한 규칙에 구속하고 그 계약에 대한 신뢰를 주는 문서가 필요합니다.
리카르디안 컨트랙트는 정확히 구매/교환하고 있는 것이 무엇인지에 대한 가이드라인을 제시해 인터넷을 상에서 발행한 자산에 가치를 부여합니다. 리카르디안 컨트랙트와 스마트 컨트랙트가 융합되면서, 우리는 따로 신뢰를 구축할 필요 없이 인터넷 상의 거래를 안전하게 수행할 수 있게 될 것입니다.
참고 : 동영상에서 콕스는 동영상이 ‘내부자료’였다고 명시했으며, 우리(EOS Canada)가 연락해서 링크를 공유할 수 있도록 승인받았습니다.
https://vimeo.com/264667031
리카르디안 컨트랙트는 어떻게 동작할까요?
인터넷에서 채권을 발행하는 방법을 찾아가던 중에 Grigg은 다른 그 어떤 금융 상품들과 마찬가지로 이러한 실제 채권이 매개 변수들(이름, 쿠폰, 날짜 등)과 법적 산문을 혼합한 것임을 깨달았습니다. 리카르디안 컨트랙트는 법원에서 요구하는 표준 법적 산문으로 작성된 문서이지만 소프트웨어로 사용이 가능하도록 해싱(컴퓨터로 분석)될 수 있습니다.
리카르디안 컨트랙트의 주요 목표는 사람이 읽을 수 있게 한다는 것입니다. 그것이 대부분의 상황에서 분쟁의 해결을 어렵게 만드는 점이기 때문입니다. 계약이 유효하려면 모든 당사자가 계약에서 의도한 내용을 이해해야 합니다. 계약에 참여한 사람은 그 합의에 대한 의중을 파악하고, 자기가 무엇에 서명하고 있는지를 이해해야 합니다. 인간이 이해할 수 있게 되면 컴퓨터 소프트웨어로도 읽을 수 있도록 필요한 마크업(컴퓨터가 이해하는 상징)을 삽입하면 됩니다. 발행자가 프레임워크 텍스트(일종의 양식 문서)를 먼저 쓴 후, 그 발행자 또는 당사자가 내용을 채워 넣고, 그 내용을 알 수 있도록 필요할 때 프롬프트를 추가하게 되는 것입니다.
리카르디안 컨트랙트의 안전성
리카르디안 계약은 암호화 서명 덕분에 아주 안전합니다. 각 문서는 해시에 의해 고유하게 식별됩니다. 이는 모든 당사자가 합의한 후에 누군가가 임의로 문서를 변경할 수 없다는 뜻입니다. 그 계약의 발급자가 마음을 바꾸지 못하도록 해서 문서의 소유자를 보호합니다.
발급자들은 ‘끓는 물 속의 개구리(frog boiling)’ 전략을 사용하기도 하는데, 이는 계약 체결 과정에서 조건을 점점 유리하게 바꾸기 위해 그들이 우위에 있다는 점을 이용하는 것을 뜻합니다. 이 때 컨트랙트 상에서 모든 관련자 및 독립적인 검토자/중재자들이 계약당시 동의했던 내용을 공유하도록 보장해 줍니다.
리카르디 안 컨트랙트의 서명은 개인 키(private key)로 이루어집니다. 계약 공급자의 서명을 문서에 추가함으로써 문서에 설명된 정보와 관련하여 구속력 있고 읽기도 쉬운 제안을 만듭니다. 개인 키의 도움으로 관련된 당사자를 추적하고 책임을 지울 수 있습니다.
리카르디안 컨트랙트를 시각적으로 표현하면
https://cdn-images-1.medium.com/max/800/0*slUqVhJo2xoYcaSC.
누가 리카르디안 컨트랙트를 시행하도록 만들 것인가?
EOS 생태계에서 ‘중재(Arbitration)’는 하나의 신뢰 장치(recourse mechanism)가 될 것입니다. 중재 메커니즘을 EOS 생태계에 완전히 적용할 방법이나 사용자가 클레임을 제기 할 수 있는 방법이 아직 명확하지 않기 때문에 현재로써는 확고한 답이 없습니다.
한 가지 분명한 것은 리카르디안 컨트랙트를 받아들이면 사용자는 중재자에게 제공하는 사전 합의나 사전 정의된 계약을 체결하게 된다는 것입니다. 이것은 공정한 중재인이 계약의 원래 의도와 의무를 쉽게 판단할 수 있게 합니다. 그들은 리카르디안 컨트랙트와 스마트 컨트랙트를 정리해 분쟁이 어디에 나타날 가능성이 있는지 파악할 능력을 갖출 수 있습니다.
현재 사용되는 예시
OpenBazaar — 일반 상품에서 투기 계약까지 무엇이든 교환할 수 있는 p2p 전자 상거래 플랫폼입니다. 리카르디안 컨트랙트는 상품을 서로 교환할 때 당사자의 책임을 추적하는 도구로 사용됩니다.
OpenBazaar에서 거래가 있을 때마다 양 당사자가 서명한 계약의 적법성을 추적하기 위해 리카르디안 컨트랙트를 만듭니다. 이는 어느 당사자도 사기를 쳤지 않으며, 사기 케이스의 경우에 피해자가 법정에서 그의 사건을 판결할 법적 기록을 보유하게 된다는 보증이 됩니다.
OpenBazaar가 리카르디안 컨트랙트를 자신의 플랫폼에 적용한 방법에 대해 자세히 알고 싶다면, 블로그를 방문하길 추천드립니다.
EOS에서 리카르디안 컨트랙트의 미래
앞으로 리카르디안 컨트랙트는 EOS 블록체인으로 만든 계약의 중요한 부분을 담당할 것입니다. EOS가 리카르디안 컨트랙트를 지원하면 그 위에 만들어진 거래들에 대해 필요한 법적인 정의를 하도록 도울 수 있습니다.
리카르디안 컨트랙트에 대한 코드가 소스 코드에 점점 추가됨에 따라 우리가 이 기능을 어떻게 구현하고 최선의 방법으로 사용할지 잘 이해하게 될 것입니다. EOS Canada는 리카르디안 컨트랙트가 EOS 생태계에 추가된 것을 보게 되어 기쁘게 생각하며, 우리 모두가 이 기능들과 어떻게 상호작용을 하게 될지 그 길을 밝히게 되기를 바랍니다.
(역주) OpenBazaar에서 리카르디안 예시
(역주) OpenBazaar의 탈중앙 평판(decentralized reputation)을 소개하는 포스팅에서 리카르디안 컨트랙트를 이용해서 거래를 다루는 예시가 있어 소개합니다.
https://www.openbazaar.org/blog/decentralized-reputation-in-openbazaar/
리카르디안 컨트랙트는 인간과 기계가 둘 다 읽을 수 있는 XML/JSON 방식의 변조-방지 계약입니다. 다음과 같은 요소들을 갖고 있습니다.
- 신원 확인을 위한 암호(cryptographic) 키
- 거래 등등의 상호작용의 조건을 설정하는 데 필요한 의미론적인 데이터 (예 : 상품/서비스와 교환된 통화)
- 키를 가진 당사자가 이 문구와 조건에 동의했다는 것을 증명하기 위한 디지털 서명
- 계약의 변조-방지를 위한 기록을 작성하기 위한 암호화 해시(hash)
OpenBazaar는 원래 Ian Grigg가 설계한 리카르디안 컨트랙트의 사용성을 더 확장시켜서 계약 당사자 간의 거래와 거래 흐름의 원장(ledger) 역할을 합니다. 해당 리카르디안 컨트랙트가 완전히 실행되었고 디지털 서명이 끝났다면 이를 거래 영수증이라고 부릅니다. 계약 내에 있는 데이터는 당사자들의 GUID 키로 서명이 됩니다.
OpenBazaar의 리카르디안 컨트랙트의 데이터 구조
이 계약은 4 단계의 거래 흐름으로 나뉩니다.
1 단계 : 거래소/판매자의 판매 대상 게시
- 공급 업체의 판매 대상 품목 (실제 품목, 디지털 컨텐츠, 서비스 등등)
(거래의 중재자를 선택하는 것과 관련된 몇 가지 사전 단계가 있는데, 기사에서는 자세히 다루지 않았습니다.)
2 단계 : 구매자의 주문
- 구매자가 주문을 공급 업체에 보냅니다.
- 공급 업체는 주문을 승인하고 인증 역할을 할 수 있는 디지털 서명을 보냅니다. (공격자가 공급 업체의 가짜 (평판) 등급을 작성하지 못하도록 함)
- 구매자가 지불을 위한 다중 서명거래(multisignature escrow) 주소를 만듭니다.
- 주문 프로세스가 시작됩니다 : 발송까지 1~3일 소요
3 단계 : 판매자의 주문 확인
- 공급 업체는 주문이 처리되고 해당 품목이 발송되었음을 구매자에게 확인시켜줍니다.
- 물리적인 상품의 경우 구매자에게 모든 운송 관련 데이터를 제공합니다.
- 디지털 상품의 경우 구매자에게 다운로드 주소 및 비밀번호를 제공합니다.
- 서비스의 경우 구매자에게 관련 데이터를 제공합니다.
- 부분 서명된 트랜잭션을 이용해 다중 서명거래 주소에서 공급 업체로 대금을 보냅니다. (구매자가 항목을 받은 후에도 서명해야 함)
4 단계 : 구매자의 영수증
- 구매자가 상품/콘텐츠/서비스가 배달/수행되었다는 것을 인정합니다.
- 다중 서명거래로부터 대금이 나갈 수 있도록 서명합니다.
- 공급자에 대한 평가와 리뷰를 만들고 트랜잭션 요약을 공급자와 중재자에게 보내 저장할 수 있도록 합니다.
(역주) 주의 깊은 독자분들은 이 포스팅에서 설명하던 내용과 OpenBazaar의 경우가 조금 다르다는 것을 알 수 있을 것입니다. 동영상 링크에서 나오는 리카르디안의 형태는 산문에 markup을 추가한 형태인데, OpenBazaar는 JSON 형식을 사용하고 있습니다. 만약 리카르디안이 재판장에서 읽을 수 있는 법적 산문 역할을 하기를 바란다면 JSON을 사용하는 것에 의문이 생깁니다. 하지만 JSON으로 구성된 데이터는 인터넷 환경의 UI로 보여주기에 적합하기 때문에 장점이 있습니다.
(역주) 현재는 리카르디안 컨트랙트의 기능과 구현 방식에 대해서 아직 엄밀한 정의가 안되어 있을 수도 있겠습니다. 중요한 점은 스마트 컨트랙트가 컴퓨터만 이해할 수 있는 형태로 되어 있고, 리카르디안 컨트랙트는 일반적인 사람들에게 읽히는 형태를 지향한다는 것입니다. 이런 특징은 “이 비즈니스 프로세스를 자동화하면 문제가 생기지 않을까?”라는 의구심을 가진 사람들을 설득하는 데 쓰일 것이고, 블록체인 기술을 실제 비즈니스 환경에 도입시키는 데 큰 기여를 할 것이라고 기대합니다.
Resources
Ian Grigg는 리카르디안 컨트랙트가 어떻게 인간과 기계가 함께 읽을 수 있도록 하려면 어떻게 해야 하는지에 대한 글을 썼습니다. 리카르디안 컨트랙트의 기원, 개발 및 사용 예시에 대해 더 자세히 읽고 싶다면 아래의 목록을 참고해주세요.
https://www.openbazaar.org/blog/decentralized-reputation-in-openbazaar/
http://webfunds.org/guide/ricardian_implementations.html
https://www.r3.com/blog/what-is-a-ricardian-contract/
http://iang.org/papers/intersection_ricardian_smart.html
https://steemit.com/eos/@iang/towards-a-ricardian-constitution
https://www.georgetownlawtechreview.org/the-law-and-legality-of-smart-contracts/GLTR-04-2017/
http://www.iang.org/papers/EOS_An_Introduction.pdf
http://iang.org/papers/ricardian_contract.html
http://iang.org/ricardian/
http://www.iang.org/papers/intersection_ricardian_smart.html
http://webfunds.org/guide/ricardian.html
https://www.youtube.com/watch?v=wokvO1ptE1k
https://en.wikipedia.org/wiki/Ricardian_contract
https://medium.com/legalthingsone/ricardian-contracts-legally-binding-agreements-on-the-blockchain-4c103f120707
Translator/Writer: Sum Park
Editor: Orchid Kim
We Vitalize EOS Ecosystem.
Write with us: eeg@eosys.io