공대생 정리노트

6강 : 스마트 컨트랙트 본문

블록체인/MIT ocw : blockchain and money

6강 : 스마트 컨트랙트

woojinger 2021. 12. 11. 00:55

스마트 컨트랙트에 대해서는 초빙 강사님이 강의를 하셨다.


비트코인과 이더리움

비트코인과 이더리움은 해시 함수 및 디지털 서명, 머클 트리, 타임스탬프 등을 사용한다.

암호학과 타임스탬프 로그에 바탕을 두고 있는 것이다.

또한 Proof of Work 및 자체 통화를 사용해 탈중앙화된 네트워크 컨센서스를 사용하는 면에서도 같다.

 

하지만 차이점이 있는데 Ledger의 타입이 다르고, 스크립트 언어의 특성 또한 다르다.

이더리움은 balance ledger를 사용하고 비트코인은 transaction ledger를 사용한다.

앞선 글에서 보았듯이 이로 인해 비트코인은 UTXO를 사용하지만 이더리움은 그렇지 않다.

 

스크립트 언어를 보면 비트코인은 Non Turing한 언어를 사용하지만 이더리움은 튜링완전한 언어인 솔리디티, Serpent 등을 사용한다. 이더리움은 이로 인해 loop를 허용해 비트코인에 비해 취약한 점이 있다.

 

이더리움은 튜링완전한 언어들을 지원함으로써 거의 모든 형태의 거래를 프로그래밍 할 수 있고, 스마트 컨트랙트를 실행할 수 있는 플랫폼이 되었다.

 

스마트 컨트랙트

contract

약속(미래)이나 이행(현재)의 대가로 주어진 약속이나 이행을 말한다.

여기서 약속 <-> 약속, 이행 <-> 약속, 약속 <-> 이행, 이행 <-> 이행 4가지 케이스를 생각해 볼 수 있다.

 

contract의 쉬운 예로는 음료수 자판기를 들 수 있다.

동전을 넣으면 음료수를 내준다. 음료수 자판기를 둠으로써 사람을 고용할 필요가 없어 비용을 줄일 수 있다.

 

contract에 대해 4가지 주제로 강연을 하였다.

(1) implied

계약에는 암묵적인 용어가 많다. 그리고 암묵적인 용어가 묵시적 조항에 의해 암시가 된다면 법률 시스템이 개입 되는 걸 전제로 한다.

음료수 자판기 예를 다시 보자. 우리는 자판기에 동전을 넣으면 나오는 음료수가 당연히 마실 수 있고 우리가 원하던 것이라는 거라고 생각한다. 만약 음료수 대신에 가솔린이 나온다면? 법률 시스템이 이를 제지할 것이다. 

contract에서는 그래서 state가 항상 존재한다. 계약의 종류, 효과, 세금 등에 관여할 수 있는 것이다.

 

(2) term

"HR102 통과를 위한 의회 로비 비용으로 50k 달러를 주겠다"

이 contract는 현재는 문제 없는 계약으로 보이지만 19세기에는 위법인 계약이었다.

 

저작권법의 경우 창작자에게 독점적인 권리를 70년 보장해주고, fair use할 수 있게 한다

그런데 저작권으로 보호된 자료를 네트워크나 그 밖에서 사람들이 이용할 수 있도록 wrap한 코드인 DRM이 나오면서 70년 보장 및 fair use를 적용하기 애매해졌다.

법의 정책과 기술의 정책 방향은 일관되지 않는다.

 

(3) aim

계약의 목적은 리스크를 제거하는 것이 아닌 리스크를 재배치 하는 것이다.

선물 계약의 경우 사는 사람과 파는 사람이 물건의 가격의 등락에 따른 위험을 재배치시킨다.

 

이렇게 위험을 재배치 시켰지만, 계약에서는 계약을 이행하지 않을 위험 또한 존재한다.

시스템이 이를 강제로 이행시키는 역할을 하는데, 법 시스템이 이 역할을 하는 것이다.

그러나 이러한 인프라가 잘 갖추어지지 않은 개발 도상국의 사람들은 이런 시스템의 수혜를 잘 못 받을 수 있다.

 

스마트 컨트랙트는 이를 해결해준다. 블록체인을 이용하면 법원 등의 인프라가 필요 없다. 트랜잭션에 대한 비용이 있지만, 인프라를 구축하는 비용 및 해당 인프라를 신뢰하는 비용을 줄여주는 것이다.

 

(4) clarity

스마트 컨트랙트는 코드로서 너무나 명확하게 요구사항이 나와있다. 그러나 계약서는 모호한게 너무 많다.

우리는 계약을 할 때 아주 희박한 확률로 일어나는 경우까지 생각하지 않는다.

 

예를 들어서 집 계약을 맺을 때 유성에 맞는 것은 생각하지 않는다. 원칙적으로는 이것도 협상해야 하지만, 발생할 확률이 거의 0이고 따라서 여기에 투자해야할 시간도 0이다. 더군다나 이런 조항 때문에 계약이 깨지는 것은 말이 안된다. 그래서 대부분의 경우 이런 상황이 없을 거라 생각하고 도박을 한다. 만약 이런 상황이 생기면 법원에 가고, 판결을 받는다.

그렇다고 해서 이러한 조건까지 사전에 협상을 해야 하는 것은 아니다. 이런 것까지 챙기면 비용이 어마어마하게 증가될 것이다.

 

그러나 스마트 컨트랙트는 이런 것 까지 명확하게 작성해야 한다. 이러한 측면에 있어서 스마트 컨트랙트는 "스마트"하지 않다.

Comments