리카르디안 계약
리카르디안 계약(ricardian contract)은 둘 이상의 당사자들이 서로 행동하기 위한 조건과 내용을 정의한 디지털 문서이고, 사람이 읽을 수 있는 형태로 쓰이며, 그 다음에 암호로 서명하고 승인한 것을 말한다. 인간과 프로그램 모두가 쉽게 읽을 수 있어야 하고, 여러 가지 발생할 수 있는 상황에 대해서 당사자들이 명확하게 받아들일 수 있도록 도움이되어야 한다.[1] 리카르디안 컨트랙트 라고도 불린다.
개요
계약서를 기계어 계약을 등록하는 방법으로 이를 통해 개인이 읽을 수 있는 법적 계약서를 컴퓨터로 검증 가능하게 할 수 있고, 간단한 개인 간 계약서부터 복잡한 법적 문서까지 모든 형태의 계약서에 사용될 수 있으며, 스마트 계약과 달리 리카르디안 계약은 단순히 실제 세계의 계약서를 암호화를 통해 기계어로 바꾼 계약일뿐이다. 스마트 계약과 달리 리카르디안 계약은 실제 법적인 공방에 사용될 수 있는 이안 그리그라는 프로그래머가 제시한 개념이다. 법적 공방에 있어 객관적인 자료로 사용 가능하며, 현실 세계와 크립토 세계를 잇는 다리 역할을 할 수 있는 장점이 있다.[2]
역사
작업 증명(PoW)과 스마트 계약과 같은 오늘날 가장 유명하고 잘 알려진 블록체인 개념들 중 일부는 1990년대 초반 디지털 기술로 공상을 하던 사람들이 제안했는데, 리카르디안 계약도 그런 경우로, 금융 암호화 분야의 선구자 중 한 명인 이언 그리그(Ian Grigg)가 1995년 리카르도(Ricardo) 지불 시스템의 일부분으로 만든 것이다. 직업이 프로그래머였던 그리그는 대학에서 MBA 학위를 위해 공부하던 중 리카르디안 계약을 개발했다. 그리그는 먼저 디지캐시(DigiCash)라는 회사에서 일하는 친구 중 한 명에게서 자산의 디지털화에 대해 배웠고, 디지캐시는 전자 지불 시스템을 개발하고 있었지만 1998년 디지털 현금이라는 개념이 부흥하지 못하면서 파산 신청을 했다. 그리그에 따르면 디지캐시의 비전은 현금에만 집중하고 다른 금융 상품에는 집중하지 않았기 때문에 너무 범위가 좁았으며, 그리그는 금융분야가 전체적으로 봤을 때 그런 종류의 기술로부터 얻을 것이 많다는 사실을 깨닫고 그의 친구 게리 하우랜드(Gary Howland)와 일하기 시작했다. 그는 1998년 7 레이어 구조의 금융 암호화(Financial Cryptography in 7 Layers) 라는 제목의 논문을 처음 발표하면서 리카르디안 계약을 얘기했다. 자산 발행을 디지털 기술로 하는 것에 대한 해답을 찾기 위해 그리그는 인터넷에서 채권을 발행하려고, 채권이라는 것이 어떻게 정의되는지 면밀하게 조사하여, 그 결과 다른 모든 금융 상품처럼 채권 또한 일종의 계약이라는 사실을 알게 되었다. 계약서를 디지털화할 방법을 찾으면 금융 자산이나 금융 상품도 완전히 디지털화할 수 있게 될 것이며, 그리그의 아이디어는 선구적이었고 매우 앞서 있었지만, 이 프로젝트를 실현하기 위해 필요한 기술적인 해결책을 가지고 있지 않았지만 현재 기술의 역량과 풍부한 자원 덕분에 이 개념은 더 이상 이론적인 것이 아니며 이오스(EOS)와 같은 블록체인을 사용하여 구현할 수 있다.[1]
특징
- 스마트 계약과 비교
- 우선 스마트 계약과 리카르디안 계약을 구분해 보자면, 스마트 계약은 어떤 이벤트를 받고 그에 따라 작업을 시작하도록 해주는 명령어들이며, 그 명령어들은 기계가 읽을 수 있고, 리카르디안 계약은 그것을 위한 의도와 구체적인 행동들을 요약한 문서이다. 리카르디안 계약은 해당 계약을 기록하기 위해 최선의 노력을 기울이고, 스마트 계약은 그 계약을 실행한다. 스마트 계약은 작업을 자동화하는 데 사용되지만, 앞으로 나타날 모든 경우의 수와 미래를 예측할 수 없기 때문에 한계가 있을 수밖에 없고, 발생할 거라고 아직 인지하지 못하는 것에 대해 자동화할 수 없다. 현재 스마트 계약을 사용하는 방식을 고려했을 때 리카르디안 계약을 융합하는 것은 계약들의 근본적인 의도에 필요한 많은 세부 정보를 얻게 하기 때문에 아주 중요하며, 스마트 계약은 당사자 간의 합의과정에서 나타나는 가장 중요한 다음과 같은 질문들에 답해주지 못한다.
- 문서화와 연구가 부족하기 때문에 가상화폐 세계에서 많은 사기와 계약의 악용이 일어나며, 문제가 일어났을 때 필요한 경우 현지 법정에서 해결하기를 원할것이고, 이 때 당사자 간 합의 사항을 이미 서로 인정한 규칙에 구속하고 그 계약에 대한 신뢰를 주는 문서가 필요하다. 리카르디안 계약은 정확히 구매/교환하고 있는 것이 무엇인지에 대한 가이드라인을 제시해 인터넷을 상에서 발행한 자산에 가치를 부여한다. 리카르디안 계약과 스마트 계약이 융합되면서, 따로 신뢰를 구축할 필요 없이 인터넷 상의 거래를 안전하게 수행할 수 있게 될 것이다.[1]
- 동작방법
- 리카르디안 계약은 법원에서 요구하는 표준 법적 산문으로 작성된 문서이지만 소프트웨어로 사용이 가능하도록 해싱(컴퓨터로 분석)될 수 있다. 리카르디안 계약의 주요 목표는 사람이 읽을 수 있게 만드는 점으로 계약이 유효하려면 모든 당사자가 계약에서 의도한 내용을 이해해야 한다. 계약에 참여한 사람은 그합의에 대한 의중을 파악하고, 자기가 무엇에 서명하고 있는지를 애해해야 한다. 인간이 이해할 수 있게 된면 컴퓨터 소프트웨어로도 읽을 수 있도록 컴퓨터가 이해하는 상징인 필요한 마크업을 삽입하면 된다. 발행자가 일종의 양식문서 프레임워크 텍스트를 먼저 쓴후, 그 발행자 또는 당사자가 내용을 채워 넣고, 그 내용을 알 수 있도록 필요한 때 프롬프트를 추가 하게 된는 것이다.[1]
- 안정성
- 리카르디안 계약은 암호화 서명 덕분에 아주 안전하다. 각 문서는 해시에 의해 고유하게 식별되고, 이는 모든 당사자가 함의한 후에 누군가가 임의로 문서를 변경할 수 없다. 그 계약의 발급자가 마음을 바꾸지 못하도록 해서 문서의 소유자를 보호한다. 발급자들은 끓는 물 속의 개구리(frog boiling) 전략을 사용하기도 하는데, 이는 계약 체결 과정에서 조건을 점점 유리하게 바꾸기 위해 그들이 우위에 있다는 점을 이용하는 것을 뜻한다. 이때 계약 상에서 모든 관련자 및 독립적인 컴토자, 중재자들이 계약당시 동의했던 내용을 공유하도록 보장해 준다. 리카르디안 계약의 서명은 개인키(private key)로 이루어 진다. 계약 공급자의 서명을 문서에 추가함으로써 문서에 설명된 정보와 관련하여 구속력 있고 읽기도 쉬운 제안을 만든다. 개인키의 도움으로 관련된 당사자를 추적하고 책임을 지울 수 있다.[1]
- 헬로우 월드
- 모든 스마트 계약에는 일치하는 리카르디안 계약이 있어야하며, 리카르디안 계약은 스마트 계약의 각 행동과 관련된 법적 구속력이있는 행동을 명시한다. 헬로우 월드 계약에 대한 리카르디안 계약의 명명규칙은 다음과 같다.[3]
명명규칙 // Ricardian contract of the overall contract <contract_name>_rc.md // Ricardian contract of each action <contract_name>.<action_name>_rc.md
- 헬로 월드 계약
## CONTRACT FOR HELLO WORLD ### Parameters Input parameters: NONE Implied parameters: * _**account_name**_ (name of the party invoking and signing the contract) ### Intent INTENT. The intention of the author and the invoker of this contract is to print output. It shall have no other effect. ### Term TERM. This Contract expires at the conclusion of code execution. ### Default DEFAULT. The occurrence of any of the following shall constitute a material default under this Contract: ### Remedies REMEDIES. In addition to any and all other rights a party may have available according to law, if a party defaults by failing to substantially perform any provision, term or condition of this Contract, the other party may terminate the Contract by providing written notice to the defaulting party. This notice shall describe with sufficient detail the nature of the default. The party receiving such notice shall promptly be removed from being a Block Producer and this Contract shall be automatically terminated. ### Force Majeure FORCE MAJEURE. If performance of this Contract or any obligation under this Contract is prevented, restricted, or interfered with by causes beyond either party's reasonable control ("Force Majeure"), and if the party unable to carry out its obligations gives the other party prompt written notice of such event, then the obligations of the party invoking this provision shall be suspended to the extent necessary by such event. The term Force Majeure shall include, without limitation, acts of God, fire, explosion, vandalism, storm or other similar occurrence, orders or acts of military or civil authority, or by national emergencies, insurrections, riots, or wars, or strikes, lock-outs, work stoppages, or supplier failures. The excused party shall use reasonable efforts under the circumstances to avoid or remove such causes of non-performance and shall proceed to perform with reasonable dispatch whenever such causes are removed or ceased. An act or omission shall be deemed within the reasonable control of a party if committed, omitted, or caused by such party, or its employees, officers, agents, or affiliates. ### Dispute Resolution DISPUTE RESOLUTION. Any controversies or disputes arising out of or relating to this Contract will be resolved by binding arbitration under the default rules set forth by the EOSIO Blockchain. The arbitrator's award will be final, and judgment may be entered upon it by any court having proper jurisdiction. ### Entire Agreement ENTIRE AGREEMENT. This Contract contains the entire agreement of the parties, and there are no other promises or conditions in any other agreement whether oral or written concerning the subject matter of this Contract. This Contract supersedes any prior written or oral agreements between the parties. ### Severability SEVERABILITY. If any provision of this Contract will be held to be invalid or unenforceable for any reason, the remaining provisions will continue to be valid and enforceable. If a court finds that any provision of this Contract is invalid or unenforceable, but that by limiting such provision it would become valid and enforceable, then such provision will be deemed to be written, construed, and enforced as so limited. ### Amendment AMENDMENT. This Contract may be modified or amended in writing by mutual agreement between the parties, if the writing is signed by the party obligated under the amendment. ### Governing Law GOVERNING LAW. This Contract shall be construed in accordance with the Maxims of Equity. ### Notice NOTICE. Any notice or communication required or permitted under this Contract shall be sufficiently given if delivered to a verifiable email address or to such other email address as one party may have publicly furnished in writing, or published on a broadcast contract provided by this blockchain for purposes of providing notices of this type. ### Waiver of Contractual Right WAIVER OF CONTRACTUAL RIGHT. The failure of either party to enforce any provision of this Contract shall not be construed as a waiver or limitation of that party's right to s ubsequently enforce and compel strict compliance with every provision of this Contract. ### Arbitrator's Fees to Prevailing Party ARBITRATOR’S FEES TO PREVAILING PARTY. In any action arising hereunder or any separate action pertaining to the validity of this Agreement, both sides shall pay half the initial cost of arbitration, and the prevailing party shall be awarded reasonable arbitrator's fees and costs. ### Construction and Interpretation CONSTRUCTION AND INTERPRETATION. The rule requiring construction or interpretation against the drafter is waived. The document shall be deemed as if it were drafted by both parties in a mutual effort. ### In Witness Whereof IN WITNESS WHEREOF, the parties hereto have caused this Agreement to be executed by them
활용
이오스
이오스(EOS) 생태계에서 중재(Arbitration)는 하나의 신뢰 장치(recourse mechanism)가 될 것이다. 중재 메커니즘을 이오스 생태계에 완전히 적용할 방법이나 사용자가 클레임을 제기 할 수 있는 방법이 아직 명확하지 않기 때문에 현재로써는 확고한 답이 없고, 한 가지 분명한 것은 리카르디안 계약를 받아들이면 사용자는 중재자에게 제공하는 사전 합의나 사전 정의된 계약을 체결하게 된다는 것이다. 이것은 공정한 중재인이 계약의 원래 의도와 의무를 쉽게 판단할 수 있게 하며, 그들은 리카르디안 계약과 스마트 계약을 정리해 분쟁이 어디에 나타날 가능성이 있는지 파악할 능력을 갖출 수 있다. 오픈바자(OpenBazaar)는 일반 상품에서 투기 계약까지 무엇이든 교환할 수 있는 피투피(p2p) 전자 상거래 플랫폼으로, 리카르디안 계약은 상품을 서로 교환할 때 당사자의 책임을 추적하는 도구로 사용되고, 오픈바자에서 거래가 있을 때마다 양 당사자가 서명한 계약의 적법성을 추적하기 위해 리카르디안 계약을 만들며, 이는 어느 당사자도 사기를 치지 않아, 사기 케이스의 경우에 피해자가 법정에서 그의 사건을 판결할 법적 기록을 보유하게 된다는 보증이 된다. 앞으로 리카르디안 계약은 이오스 블록체인으로 만든 계약의 중요한 부분을 담당할 것이다. 이오스가 리카르디안 계약을 지원하면 그 위에 만들어진 거래들에 대해 필요한 법적인 정의를 하도록 도울 수 있고, 리카르디안 계약에 대한 코드가 소스 코드에 점점 추가됨에 따라 우리가 이 기능을 어떻게 구현하고 최선의 방법으로 사용할지 잘 이해하게 될 것이다.[1]
이오스 토큰을 가진 홀더라면 누구나 헌법에 대해 알아야 한다. 투표를 하러 보팅포탈에 들어가면 헌법을 읽어보라는 메시지가 있는데, 이 헌법은 현재 체인의 코드에 리카르디안 계약으로 묶여 있다. 체인 위에서 일어나는 일들은 헌법의 영향을 받게 되는 것이며, 헌법 원문의 내용은 다음과 같다.
제7조 오픈소스 이 험법에서 개발자라 함은 해당 블록체인에 스마트 계약을 사용할 수 있게 하는 구성원을 일컫는다. 각 개발자는 그들의 스마트 계약을 무료의 오픈 소스 라이선스로 제공하고, 모든 스마트 계약은 모든 당사자의 의도를 명시하여 해당 계약에서 부터 발생한느 분쟁을 해결할 중재단체를 명시하는 리카르디안 계약으로 문서화 된다. 제13조 사전동의 특정 구성원을 대리하여 거래 생성및 서명을 용이하게 하는 도구를 생산하는 모든 서비스 제공자는 자신이 대리한 구성원에게 이 헌법의 전체 리카르디안 계약 조건과 다른 참조 계약들을 제출해야 한다. 서비스 제공자는 전체 리카르디안 계약 조건을 사용자에게 공개하지 않아 발생하는 손실에 대한 책임을 진다.[4]
- 오픈바자(OpenBazaar)
- 리카르디안 계약을 이용해서 거래를 다루는 예시로, 리카르디안 계약은 인간과 기계가 둘 다 읽을 수 있는 XML/JSON 방식의 변조 방지 계약은 다음과 같다.
- 신원확인을 위한 암호키
- 거래 등등의 상호 작용의 조건을 설정하는데 필요한 의미론적인 데이터(예를들어, 상품, 서비스와 교환된 통화)
- 키를 가진 당사자가 이 문구와 조건에 동의했다는 것을 증명하기 위한 디지털 서명
- 계약의 변조 방지를 위한 기록을 작성하기 위한 암호화 해시(hash)
- 오픈바자는 이언그리그가 설계한 리카르디안 계약의 사용성을 더 확장시켜서 계약 당사자 간의 거래와 거래 흐름의 원장(ledger) 역할을 한다. 해당 리카르디안 계약이 완전히 실행되었고, 디지털 서명이 끝났다면 이를 거래 영수증이라고 부르며, 계약 내에 있는 데이터는 당사자들의 GUID키로 서명이 된다. 리카르디안 계약의 데이터구조는 다음과 같다.
- 거래소, 판매자의 판매 대상 게시: 공급 업체의 판매 대상 품목 (실제 품목, 디지털 컨텐츠, 서비스 등등)
- 구매자의 주문 : 구매자가 주문을 공급 업체에 보내고, 공급 업체는 주문을 승인하고 인증 역할을 할 수 있는 디지털 서명을 보내어 공격자가 공급 업체의 가짜 평판 등급을 작성하지 못하도록 하여, 구매자가 지불을 위한 다중 서명거래(multisignature escrow) 주소를 만든다. 주문 프로세스가 시작되면, 발송까지 1~3일 소요된다.
- 판매자의 주문 확인 : 공급 업체는 주문이 처리되고 해당 품목이 발송되었음을 구매자에게 확인시켜주어 물리적인 상품의 경우 구매자에게 모든 운송 관련 데이터를 제공하고, 디지털 상품의 경우 구매자에게 다운로드 주소 및 비밀번호를 제공하며, 서비스의 경우 구매자에게 관련 데이터를 제공한다. 부분 서명된 트랜잭션을 이용해 다중 서명거래 주소에서 공급 업체로 대금을 보내면, 구매자가 항목을 받은 후에도 서명해야 한다.
- 구매자의 영수증 : 구매자가 상품, 콘텐츠, 서비스가 배달, 수행되었다는 것을 인정하면, 다중 서명거래로부터 대금이 나갈 수 있도록 서명하여, 공급자에 대한 평가와 리뷰를 만들고 트랜잭션 요약을 공급자와 중재자에게 보내 저장할 수 있도록 한다.
- 리카르디안이 재판장에서 읽을 수 있는 법적 산문 역할을 하기를 바란다면 제이슨(JSON)을 사용하는 것에 의문이 생기지만 제이슨으로 구성된 데이터는 인터넷 환경의 UI로 보여주기에 적합하기 때문에 장점이 있다. 스마트 계약이 컴퓨터만 이해할 수 있는 형태로 되어 있고, 리카르디안 계약은 일반적인 사람들에게 읽히는 형태를 지향한다는 것이다.[1]
각주
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 1.6 SUM PARK, 〈리카르디안 컨트랙트 (Ricardian Contract) 를 소개합니다.〉, 《미디엄》, 2018-05-27
- ↑ 꼼마, 〈리카르디안 컨트랙트〉, 《브런치》, 2018-07-01
- ↑ 이오스개발자 공식 사이트 - https://developers.eos.io/eosio-cpp/docs/hello-world#section-hello-world-ricardian-contract
- ↑ eosys, 〈EOS Constitution — 이오스 헌법 원문〉, 《스팀잇》, 2018-06-21
참고자료
- 이오스개발자 공식 사이트 - https://developers.eos.io/eosio-cpp/docs/hello-world#section-hello-world-ricardian-contract
- SUM PARK, 〈리카르디안 컨트랙트 (Ricardian Contract) 를 소개합니다.〉, 《미디엄》, 2018-05-27
- 꼼마, 〈리카르디안 컨트랙트〉, 《브런치》, 2018-07-01
- eosys, 〈EOS Constitution — 이오스 헌법 원문〉, 《스팀잇》, 2018-06-21
같이 보기