The trend and current issues of smart contracts


▪ 블록체인 기술을 기반으로 다양한 형태의 계약을 자동으로 실행할 수 있는 스마트 계약이 등장하였으며, 활용을 위한 관련 연구개발이 진행되고 있음
▪ 스마트 계약은 개발자의 실수로 인해 해킹이 일어나는 경우, 큰 피해가 발생할 가능성이 높으므로 철저한 코드 검증 및 대안 마련이 요구됨
▪ Smart contracts based on the blockchain technology that can automatically execute various types of contracts have emerged and research & development for the use of smart contracts is underway.
▪ Smart contracts are more likely to cause major damage if hacking occurs due to a developer's mistake, so thorough code review and alternative action are strongly required.


■ 블록체인 기술의 등장으로 인해 스마트 계약의 구현이 가능해짐

  • 스마트 계약은 다양한 형태의 계약을 체결하고 자동으로 실행할 수 있는 기능을 제공함

- 스마트 계약(Smart Contract)이란 블록체인 기술을 기반으로 금융거래나 부동산 계약 등 다양한 형태의 계약을 체결하고 자동으로 실행할 수 있는 기능을 제공하는 프로그램으로 1994년 미국의 전산학자인 닉 스자보(Nick Szabo)가 처음으로 사용한 것으로 알려져 있음
· 닉 스자보는 프로그래밍 언어로 계약서를 작성하면 조건에 따라 계약 내용이 자동으로 실행될 수 있다고 주장함, 스마트 계약은 그동안 기술적 제약으로 인해 주목받지 못하였으나 튜링-완전한(Turing-complete)1 가상 기계인 이더리움이 등장하여 구현이 가능하게 됨
· 이더리움은 2014년에 비탈릭 부테린(Vitalik Buterin)이 개발한 블록체인 플랫폼으로 이더(Ether, ETH)라는 암호화폐의 송금을 기록하고 스마트 계약과 분산 응용 (Decentralized applications, 이하 Dapp)의 구현이 가능함
· 이더리움 플랫폼에서 개발자는 직접 계약 조건과 내용을 코딩하여 원칙적으로는 상상하는 모든 종류의 계약을 스마트 계약으로 표현할 수 있음
- 2015년 1월, 미국 연방 차원의 2014 온라인 시장 보호법(Online Market Protection Actof 2014)2에서 스마트 계약을 암호화된 계약으로 여러 가지 다중 서명 기술(Multisignature) 3을 활용하며, 미리 결정된 변수의 조건이 충족되는 경우, 공공 기록이나 자산 이동과 같은 거래를 자동으로 양자 혹은 복수 당사자 간에 실행이 가능하다고 정의하고 있음
- 2017년 3월에 개정된 미국 애리조나주법4에 의하면 스마트 계약은 분산된 공유 원장에서 자산의 이전을 위해 수행되는 사건 기반(Event-driven) 프로그램이라고 정의하고 있음
- 런던대학의 클락(Clack) 박사는 스마트 계약을 자동화된, 집행 가능한 계약이며, 법적 권리 및 의무의 이행을 통해 시행 가능한 계약으로 정의하였음 이는 일정한 조건을 만족하는 경우 거래가 자동으로 실행될 수 있도록 프로그램된 자동 계약 시스템을 의미함
- <그림 1>은 이더리움의 스마트 계약의 예시로서 3월까지 웹사이트를 5,000이더에 판매하는 계역임

<그림 1> 스마트 계약의 예시

■ 스마트 계약 관련 연구와 입법화 노력이 진행되고 있음

  • 민간과 공공 분야에서 스마트 계약을 활용하기 위한 연구를 진행하고 있음

- ( IBM) 글로벌 컨테이너 업체인 머스크(Maersk)와 IBM은 스마트 계약을 활용하여 무역의 효율성과 안전성을 제고하기 위해 합작 법인회사의 설립 계획5을 밝힘
· 운송 건에 대한 정보를 실시간으로 안전하고 원활하게 교환할 수 있는 공급망 가시성을 제고하고, 필요한 모든 승인 절차가 블록체인 기반의 스마트 계약으로 이루어져 거래의 속도가 빨라지고 오류 발생 가능성을 낮추는 것이 목표임
- ( EEA) 이더리움 기업 연합(Enterprise Ethereum Alliance, EEA) 내 법률서비스 산업작업반(Legal Industry Working Group)은 글로벌 법률 회사, 로스쿨 그리고 법률 교육 기관 등과 협력하여 블록체인 기술과 스마트 계약 관련 법제화 연구를 진행하고 있음6
- (하이퍼레저) 리눅스 재단의 오픈소스 과제인 하이퍼레저(Hyperledger)에서는 2017년 7월에 블록체인을 기반으로 프라이빗 분산 원장 네트워크를 만들 수 있는‘하이퍼레저 패브릭(Fabric) 1.0’을 공개함
· 체인코드(Chaincode)가 스마트 계약 부분에 해당하며, IBM과 AIG7, 스탠다드차타드 은행은 가장 복잡한 보험 증권 중 하나인 다국적 보험 증권에 패브릭을 적용함8
· 미국과 싱가포르, 케냐의 지역 보험 증권이 통합된‘ 마스터’보 험 증권은 런던에서 작성되었으며 보험 증권 관련 데이터는 스마트 계약으로 구현되어 실시간으로 기록 추적이 가능함
- (미국 CDC) 2016년 미국의 디지털 상공회의소(Chamber of Digital Commerce, CDC)9는 스마트 계약이 활용될 수 있는 분야를 12가지로 분류하여 설명하는 분석 보고서를 발표하였음
- (호주 CSIRO) 호주의 연방과학산업연구기구(CSIRO, Commonwealth Scientific and Industrial Research Organisation)는 2017년 5월 블록체인과 스마트 계약에 관련된 연구보고서를 발행하여 호주 정부가 2030년까지 블록체인과 스마트 계약을 필수 서비스로 지정하게 되면 발생 가능한 여러 가지 시나리오에 대해 설명함

  • 미국은 연방과 자치 주 차원에서 블록체인 관련 법률을 제정하거나 개정하는 등 입법적 노력을 기울이고 있음

- 연방 정부 차원에서 2014 온라인 시장 보호 법안10에서 스마트 계약의 개념을 다루고 있으며 블 록체인 기술 발전을 위해 스 마트 계약과 관련된 규 제를 일정 기간 동 안 유예해야 한다는 내용을 포함하고 있으나 아직 의회를 통과하지 못하고 있음
· 내용적인 측면에서 스마트 계약만을 다루고 있지 않으며 블록체인 관련 산업 활성화라는 큰 틀에서 스마트 계약의 개념을 논의하고 있음
- 자치 주 차원에서는 애리조나(Arizona)주에서 스마트 계약의 개념을 최초로 법률에 주법(Arizona Code) Title 44, chapter 26 이하‘ 블록체인의 기술’을 소제목으로 하는 article. 5를 추가하였고, 버몬트(Vermont)주에서도 블록체인 관련 입법화가 시도됨
- 유럽, 한국 등에서는 암호화폐를 중심으로 블록체인 기술의 활성화와 사용자의 보호에 관련된 논 의가 주 를 이루고 있으며, 스 마트 계약에 대한 법제화 논 의가 활발하게 진행되고 있지는 않음

<표 1> 미국 주정부의 블록체인 도입 내용

■ 스마트 계약과 관련된 해킹 사례가 발생하여 이에 대한 대비가 필요함

  • 스마트 계약과 관련된 해킹은 코드의 취약성에 의해 발생하며 피해 규모가 큰 특징이 있음

       1) 더 다오(The DAO) 프로젝트의 이더(ETH) 해킹 사건이 발생함

- 2016년 6월, 이더리움의 스마트 계약 기능으로 개발된 크라우드 펀딩을 위한 더 다오 프로젝트에서 이더 탈취 사건이 발생하였음
· 크라우드 세일로 판매한 다오 토큰을 이더로 환급하는 프로그램에 재귀 호출11 버그 (Recursive calling vulnerability)가 포함됨
· 해커는 이러한 오류를 이용하여 다오 토큰을 이더로 무한 환급하는 방법으로 당시 가치로 약 500억 원에 해당하는 360만 이더를 탈취함. 해킹 직후 이더의 가치가 절반으로 하락하고 해당 프로젝트는 사실상 종료되었음
- 더 다오는 이더리움 기반의 탈중앙화된 자율조직(Decetralized Autonomous Organization) 형태의 프로젝트로써, 조직 운영을 위한 특정 주체는 없고 대신 가상화폐인 이더로 구매 가능한 다오 토큰(DAO Token)을 소유한 개개인의 투표로 운영됨
· 계약자(Contractor)의 제안서가 토큰 소유자들에게 일정 비율 이상의 투표를 받으면 해당 프로젝트는 승인되어 제품을 만들 수 있게 되며 DAO는 접근 권한을 얻음

<그림 2> The DAO의 운영 구조

       2) 패리티 지갑(Parity Wallet)의 이더 탈취 사건이 발생함

- 2017년 7월에 이더리움 플랫폼에서 동작하는 클라이언트인 패리티 지갑(Parity Wallet)12에서 153,037이더(약 3,200만 달러 규모)를 절도 당한 사건이 발생함
· 여러 명의 지갑 소유자의 동의를 얻어 암호화 자산을 관리하도록 설계된 스마트 계약인 다중서명(Multi-Signature)13 지갑의 취약점으로 인해 3개의 ICO 프로젝트(Edgeless 카지노, Aeternity, Swarm City)에서 대량의 이더를 도난당함
· 원래 지갑의 소유자를 지정하는 코드는 거래 생성자에 의해 제일 처음에만 실행되어야 하지만 패리티 지갑의 경우, 라이브러리로 작성한 해당 함수를 언제든지 모든 사람이 호출 가능하다는 문제점을 가지고 있었음
· 이러한 취약점을 이용하여 해커는 해당 계약의 소유자를 해커의 주소로 변경하는 공격으로 토큰 세일 때 펀드 금액을 저장하는 다중 서명 계약에서 대량의 이더를 탈취함
- 이더리움은 더 다오 사례에는 2016년 7월 20일 하드 포크(hard fork)14를 통해 피해를 되돌리고자 하였으나 패리티 사건으로 하드 포크를 하지 않는다고 공식적으로 밝힘

      3) 패리티의 이더 동결(Freeze) 사건15이 발생함

- 2017년 7월에 문제가 된 취약점을 고치기 위해 패리티 개발자는 다중 서명 지갑에 대한 라이브러리를 수정하였으나 초기화를 하지 않아 7월 20일 이후 배포된 관련 계약들이 모두 무효화가 되는 사건이 발생함
· ‘ d evops199’라는 개발자가 해당 라이브러리의 초기화(InitWallet) 함수를 실행하여 라이브러리의 소유자(Owner)가 되었으며 이후 Kill 함수를 호출하여 관련 스마트 계약이 무효화되어 573개의 지갑이 동결되었으나 패리티 측은 총 피해액은 알 수 없다고 발표하였음
- 패리티는 이더리움 커뮤니티에 하드 포크를 요청(2017년 12월)16하였으나 이더리움의 하드 포크는 결정되지 않음

■ 시사점

  • 스마트 계약은 다양한 거래를 자동으로 실행하여 거래의 효율성을 제고하나 보안에 대한 취약점이 존재하여 이에 대한 대안 마련이 필요

- 스마트 계약은 특정 조건이 부합되는 경우 자동으로 계약을 성사시키는 장점을 가지나, 코드에 취약점이 존재할 가능성이 있으며 해당 취약점이 해커에 의해 악용 된다면 막대한 금전적 손실이 발생하는 사고로 이어질 가능성이 매우 높음
- 스마트 계약에 대한 보안 수준은 개발자 역량에 좌우되며 별도의 검증 기능은 존재하지 않으므로, 앞으로 스마트 거래에 대한 활용이 증가하게 되는 경우를 대비하여 이에 대한 충분한 검토가 필요한 상황임
- 뿐만 아니라 개인 간 스마트 계약이 이루어지는 경우, 계약이나 결제 불이행 등의 문제가 발생해도 아직까지 법적인 보호 조치나 발생 가능한 문제에 대한 대안이 없는 상태라고 볼 수 있음
- 스마트 계약의 취약점을 보완하기 위해서 기술과 제도적 관점의 검토가 모두 필요함
· (기술적) 스마트 계약 코드를 배포하기 전에 코드 검증을 통해 보안 취약점 존재 여부와 악성 코드 감염 여부를 사전에 확인하는 과정이 필수적임
· (제도적) 개인 간 스마트 계약에서 당사자 간 이슈가 존재하는 경우, 피해에 대한 법적인 보호 조치를 마련하고 문제를 예방하기 위한 기존 법제도 개정을 위한 검토가 필요함

 


1 튜링 완전이란 어떤 프로그래밍 언어나 추상 기계가 튜링 기계와 동일한 계산 능력을 가진다는 의미로 계산적인 문제를 프로그래밍 언어나 추상 기계로 풀 수 있다는 의미
2 https://www.congress.gov/bill/113th-congress/house-bill/5892/text?q=%7B%22search%22%25.
3 다중서명(Multi-signature, Multi-Sig) 지갑이란 여러 명의 지갑 소유자의 동의를 얻어 암호화 자산을 관리하도록 설계된 스마트 계약
4 https://legiscan.com/AZ/text/HB2417/id/1497439, Title 44, Chaper 26, Article 5에 블록체인 기술과 관련되어 스마트 계약의 개념과 법적 효력을 언급함, 2017.03.29.
5 http://www-03.ibm.com/press/kr/ko/pressrelease/53616.wss
6 https://entethalliance.org/ethereum-enterprise-alliance-legal-industry-working-group-press-release/
7 AIG‘ Smart’P olicy Uses Blockchain to Manage International Coverage for Bank, insurancejournal, 2017.06.
8 오픈소스 블록체인‘ 패브릭’공개… 보험·공급망 등 활용성‘ 무궁무진’, CIO Korea, 2017.07.
9 Chamber of Digital Commerce“, Smart Contracts: 12 Use Cases for Business & Beyond”, white paper at Smart Contracts Symposium, 2016.12.
10 디지털사회 법제연구(Ⅱ)-블록체인 기반의 스마트 계약 관련 법제 연구-, 한국법제연구원, 2017.08.
11 재귀 호출은 함수 안에서 함수 자기 자신을 호출하는 방식
12 http://hackingdistributed.com/2017/07/22/deep-dive-parity-bug/ 참고
13 https://cointelegraph.com/news/parity-multisig-wallet-hacked-or-how-come 참고
14 하드 포크(hard fork) : 기존 블록체인에 문제가 생겼을 때, 기존 체인은 유지하면서 개선된 새로운 블록체인을 만드는 것
15 CNBC‘, Accidental’ bug may have frozen $280 million worth of digital coin ether in a cryptocurrency wallet, 2017.11.08.
16 Bitcoin.com, Parity Calls for Ethereum Hard Fork to Reverse $230 Million Bug, 2017.12.11.


 

스마트 계약 Smart Contract 블록체인 월간SW중심사회2018년2월