이더 리움 과 스마트 계약 - ideo lium gwa seumateu gyeyag

최근 이슈가 되고 있는 블록체인에 관한 기술은 암호화화폐에 한정되는 것이 아니다. 그 중에서도 블록체인 기술에 기초한 계약법적인 혁신방안으로 제시되고 있는 스마트계약에 관하여는 그에 관한 기초적인 개념조차 제대로 연구되지 않고 있다. 본 논문에서는 스마트계약(Smart Contract)에 관하여, 그 개념과 기초 용어, 현황 등을 설명하고, 주요 법적 쟁점, 특히 계약법적인 쟁점을 중심으로 살펴보고, 이에 대한 규범적 대응방안을 제시하는 것을 목적으로 하였다. 블록체인 기술에 기반한 스마트계약에서 사업자는 서비스를 제공하는 자이자 동시에 플랫폼 사업자로서의 역할을 담당하게 되므로 당사자 간의 계약거래를 형성하는 과정에서 중개자의 지위에 서게 된다. 그래서 스마트계약에서는 계약체결에 따른 여러 가지 문제 즉, 당사자 간의 결제 완결성 문제, 시스템 적합성 문제, 스마트계약 이용자에 대한 왜곡된 정보 제공, 그리고 정보 비대칭성에서 오는 불평등한 계약체결 가능성 문제 등이 발생할 소지가 있다. 따라서 본 연구에서는 스마트계약의 개념과 활용 사례 및 외국에서의 입법화 동향을 소개한 후에 몇 가지 법적 쟁점들, 예컨대 계약의 법적 근거 문제, 계약실행의 위험 배분 등 계약법적 관련 문제에 대해 검토하였다.


Recently, various commercialization services based on block chains are emerging along with the fourth industrial revolution era. Users with insufficient knowledge and understanding of new technologies have a high dependency on the platform they choose, so they have to use the service based on the information provided by the service provider unilaterally, so proper regulation for user protection will be inevitable. In a Smart Contracts based on a blockchain, a service provider plays a role as both a service provider and a platform operator, and thus becomes a mediator in the process of forming a contract transaction between the parties. So, Smart Contracts have various problems due to the contract. In other words, there is a possibility that the settlement between the parties, system suitability problems, distorted information about smart contract users, and possibility of unequal contracting from information asymmetry. In this paper, we introduce the concept and use cases of Smart Contracts and the legislative trends in foreign countries, and then discuss some legal issues such as legal basis of contract, risk allocation of contract execution, All of these are issues that must be solved in order to commercialize Smart Contracts.


키워드열기/닫기 버튼

스마트계약

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

블록체인

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

비트코인

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

이더리움

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

암호화화폐

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

전자화폐

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

가상화폐

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

스마트자산

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

스마트계약

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

블록체인

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

비트코인

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

이더리움

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

암호화화폐

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

전자 중개인

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

데이터마이닝

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

전자화폐

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

가상화폐

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

스마트자산

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

전자거래

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

계약

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

채무

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

암호통화

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

전자금융거래

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

전자자산

이 키워드로 연구동향 분석 이 키워드로 논문 검색

,

전자지급수단

이 키워드로 연구동향 분석 이 키워드로 논문 검색

Smart contract, Blockchain, Bitcoin, cryptocurrency, Etherium, algorithmic contract, electronic agency, electronic transaction, data mining, hard fork, contract, obligation, Digital Asset, Digital Cur

여기서는 이더리움 스마트 계약을 구축하는 방법으로 웹3과 블록체인에 대해 간단히 알아본다. 스마트 계약은 분산된 블록체인 네트워크에서 실행되는 코드 덩어리다. 이더리움 가상 머신(EVM)에서 가장 인기 있는 고수준 언어인 쏠리디티를 사용한다.

객체 지향 프로그래밍에 대한 배경지식이 있다면 솔리디티에도 금방 익숙해질 것이다. 솔리디티는 나름의 컨텍스트에 존재하긴 하지만 어쨌든 객체 지향 언어다. 글 뒷부분에서 블록체인 코딩과 관련된 부분도 다루겠지만, 일단은 여기서 만드는 프로그램이 암호로 보호되는 분산 트랜잭션 데이터 스토어에 배포되는 프로그램이란 것만 기억하면 된다.
 

이더리움 블록체인

크게 보면 블록체인 애플리케이션을 이루는 주 구성요소 유형은 스마트 계약과 탈중앙화된 애플리케이션(dApp), 두 가지다. 스마트 계약은 체인 상에 있는 코드 덩어리이고, dApp은 체인 밖에 있으면서 스마트 계약과 상호작용하는 프로그램이다. 어떤 면에서 dApp은 웹3 스마트 계약 백엔드가 있는 웹2 클라이언트다.

이더리움 블록체인에서 빌드하려면 코드를 네트워크에 배포해야 한다. 이를 위해 코드가 포함된 트랜잭션을 발행한다. 코드를 포함한 트랜잭션은 실행이 가능하다는 점에서 네트워크에 존재하는 특별한 종류의 메시지다. 그 외에는 계정 간에 이더(Ether) 금액을 옮기는 트랜잭션과 똑같이 작동한다(이더는 이더리움의 네이티브 코인).

계약을 블록체인에 배포하려면 풀 노드에서 네트워크에 참여해야 한다. 실제 풀 노드를 준비하는 대신 알케미(Alchemy)와 같이 가상화된 인프라에 액세스할 수 있게 해주는 서비스를 사용해도 된다. 웹3을 위한 IaaS로 볼 수 있다. 참고로 무료 알케미 계정에 가입해야 한다.
 

이더 리움 과 스마트 계약 - ideo lium gwa seumateu gyeyag
<화면 1> 고얼리 초기화면 ⓒ IDG 

고얼리 테스트넷 설정하기

계정이 있으니 이제 가지고 놀 얼마간의 무료 이더 암호화폐(ETH)를 받는다. 무료 테스트 이더다. 이더리움이 호스팅하는 테스트 네트워크(테스트넷)의 용도는 스마트 계약을 개발하고 테스트하는 것으로, 이 글의 목적과 딱 맞는다. 현재 주 테스트넷은 고얼리(Goerli)다. goerlifaucet.com을 방문하면 <화면 1>과 같은 화면을 볼 수 있다.

퍼싯(faucet)은 주소를 위한 필드와 클릭할 버튼을 제공한다. 여기에 지갑 주소를 넣는다. 나중에 계약을 개발해서 무료 ETH를 사용해 이 계약에 요청을 보낼 것이다. 계약에는 실행을 위한 거래 수수료인 가스(gas)가 필요하다. 또한 계약은 가스 수수료 외에 거래의 가치(value)라고 하는, 전송된 가치와도 상호작용할 수 있다. 가스와 가치는 항상 별개다.

퍼싯을 사용하려면 이더리움 호환 지갑이 필요하다. 가장 일반적인 지갑은 브라우저 확장으로 실행되는 메타마스크(MetaMask)다. 브라우저에서 새 탭을 열고 무료 메타마스크 확장을 설치한다.
 

암호화폐 지갑 설정하기

암호화폐 지갑을 사용해본 적이 없는 사람이라면 다른 애플리케이션과 다소 차이가 있음을 알아둬야 한다. 가장 유의해야 할 점은 지갑의 시드 문구를 설정하는 것이다. 시드 문구는 암호를 잊거나 기기를 분실하는 등의 사고 발생 시 지갑을 복구할 수 있게 해주는 암호화 키다. 시드 문구를 가진 사람은 누구나 그 지갑의 자금에 액세스할 수 있으므로 시드 문구를 반드시 안전하게 보관해야 한다.
 
이더 리움 과 스마트 계약 - ideo lium gwa seumateu gyeyag
<화면 2> 메타마스크에서 테스트 네트워크 활성화하기 ⓒ IDG
메타마스크 지갑을 설정했으면 <화면 2>와 같이 스위치를 설정해 테스트 네트워크를 활성화한다. 이제 테스트넷을 활성화했으므로 웹 브라우저(필자는 크롬을 사용한다)의 오른쪽 상단에서 확장을 열고 드롭다운 목록에서 고얼리 네트워크를 선택할 수 있다. 네트워크 선택기 바로 아래에 “Account1 0x744…”와 같은 메시지가 표시되는 버튼이 있을 것이다. 이것이 지갑의 주소다. 이 버튼을 클릭하고 주소를 클립보드에 복사한다.

이제 고얼리 퍼싯 페이지로 돌아와서 필드에 지갑 주소를 넣은 다음 나에게 ETH 보내기(Send me ETH) 버튼을 누른다. 검증자가 거래를 수락할 때까지 잠깐 기다리면 메타마스크를 열고 지갑에서 1 ETH를 볼 수 있다.