Smart Contract

내승현·2022년 8월 30일
0

블록체인

목록 보기
2/7
post-thumbnail

스마트 컨트랙트란?

스마트 컨트랙트는 계약 당사자 간 거래 내용을 코드로 기록해 블록체인에 올리면, 계약 조건이 충족됐을 때 자동으로 이행해 주는 시스템이다. 이를 통해 은행처럼 계약 이행을 검증, 보증하는 중앙화된 제3자 없이도 계약을 자동으로 이행할 수 있다는 점에서 매우 편리하고 경제적이라는 장점이 있다.

그렇다면, 기존의 계약 방식에는 어떤 문제가 있길래 스마트 컨트랙트라는 개념이 등장한 걸까?


스마트 컨트랙트 등장 배경

기존 계약 방식의 문제점

1) 주식 거래

주식 거래를 한다는 건 주식을 팔려고 하는 매도자와 주식을 구매하려고 하는 매수자 간에 자산을 거래하는 것이다. 즉, 거래 자체는 매도자와 매수자 간에 직접적으로 발생한다.

그러나, 실제로 주식 거래를 할 때는 매수자가 매매 대금을 은행에 지불하면, 은행은 한국예탁결재원에 장부상 소유권 이전을 요청한다. 매매 대금은 다시 시중은행 간 계정을 통해 결제된다.

2) 해외 송금

해외 송금을 할 때도 비슷하다. 외국으로 송금을 할 때는 다음과 같은 과정을 거친다.

  1. 은행에 해외 송금을 요청한다.
  2. 은행은 외환중개은행에 지급을 요청한다.
  3. 외환중개은행은 송금받을 해외 은행에 입금한다.
  4. 해외 은행은 수취인에게 전달한다.

이러한 과정에서 은행이 외환중개은행에 요청할 때 송금 수수료와 전신료가 발생하며, 외환중개은행이 해외은행에 입금할 때도 중개 수수료가 발생한다. 또한 해외 은행이 입금받는 과정에서도 수취료가 발생한다.
.
.
.

주식 거래와 해외 송금 사례에서 알 수 있듯이, 개인 간 거래를 할 때도 수많은 중개자를 거쳐야한다. 그렇다면 왜 이런 복잡한 절차를 거쳐 거래를 해야할까? : 디지털 데이터의 특징(복제가 쉬움) 때문이다
.
.
.

따라서 디지털 자산 역시 복제될 위험이 있다. 내 계좌에 있는 1만 원을 복제할 수 있다면, 이는 금융 시스템 붕괴로 이어질 수 있다. 따라서 아무나 디지털 자산을 함부로 다룰 수 없도록 은행과 정부는 신뢰할 수 있는 금융 기관을 설립해 거래를 검증한다. 이렇게 디지털 상에서 거래할 때 거래를 검증하는 기관을 신뢰할 수 있는 제3자(trusted third party) 라고 한다. 오늘날의 디지털 자산 거래는 신뢰할 수 있는 제3자라는 중앙 주체에게 무결성과 보안을 의존해야 하는 시스템이다.

신뢰할 수 있는 제3자를 통한 디지털 자산 거래는 매우 불편하다. 거래 중간 과정에서 제3자가 많아질수록 거래가 처리되는 데 시간이 오래 걸릴 수밖에 없다. 또한, 신뢰할 수 있는 제3자를 유지하는 비용은 국가의 세금 또는 개개인의 수수료로 충당되는 경우가 많다. 즉, 신뢰할 수 있는 제3자를 통한 금융 거래를 위한 비용은 사용자가 부담해야 하는 것이다.


스마트 컨트랙트 Trustless system

당사자 간에 계약을 작성하고, 계약 조건을 만족하면 컴퓨터를 통해 자동으로 계약을 이행한다.

암호학자 닉 사보는 스마트 컨트랙트를 설명하기 위해 자판기를 예로 들었다.

커피 자판기에 300원을 넣으면 자판기는 우리에게 커피를 제공한다. 다시 말해, 자판기와 나 사이에는 ‘300원을 넣으면(조건), 커피를 내려준다(이행)’이라는 계약이 존재하는 것이다.

중요한 것은, 자판기의 계약 실행 과정에서 신뢰할 수 있는 제3자가 필요하지 않다는 점이다. 자판기에는 이 계약이 프로그래밍 되어 있으며, 자판기의 하드웨어가 300원이 들어왔다고 인식하는 순간 자동으로 계약을 이행하기 때문이다.

닉 사보가 제안한 스마트 컨트랙트는 다음의 특징을 가지고 있다.

  1. 지불 조건, 유치권, 기밀 보장 등 일반적인 계약의 조건을 만족해야 한다.
  2. 계약 지불 조건이 만족되면, 자동으로 계약이 이행되어야 한다. 이를 위해 컴퓨터 코드로 스마트 컨트랙트를 작성하고, 조건에 따라 자동으로 계약이 수행되도록 해야 한다.

오늘날에는 데이터의 무결성을 보장할 수 있는 다양한 방법이 있지만, 스마트 컨트랙트의 개념이 처음 등장했을 때에는 이 개념을 구현할 기술이 충분하지 않았기 때문에 한계가 있었다.

.
.
.
.
그리고 우리는 이러한 기술적 한계를 극복할 수 있는 방향을 블록체인에서 찾았다.

2009년 비트코인이 등장하면서, Peer-to-Peer 네트워크 기반 분산 데이터베이스를 통해 데이터의 무결성을 보장할 수 있는 방법이 생긴 것이다. 블록체인에서는 네트워크에 참여하는 노드가 동일한 데이터를 공유하고, 암호화 기술을 사용해 데이터의 무결성을 검증할 수 있다.

마찬가지로 스마트 컨트랙트를 블록체인 네트워크에 공유하면 스마트 컨트랙트 코드가 변경되었는지의 여부를 검증할 수 있으며, 조건을 이행하면 실행할 수 있다.


스마트 컨트랙트의 장점

스마트 컨트랙트는 중앙집중형 디지털 계약과 비교했을 때 다음과 같은 장점이 있다.

1. 보안

스마트 컨트랙트는 블록체인 네트워크 위에서 생성되고 실행됩니다. 따라서 컨트랙트 코드와 컨트랙트 수행 내역 역시 블록체인 네트워크에 참여하는 모든 노드가 공유하게 되죠. 따라서 누군가가 계약 기록을 조작하기 위해서는 이 기록을 가지고 있는 모든 노드의 데이터를 변조해야 합니다. 노드의 수가 많을 수록 조작은 점점 더 어려워집니다.

2. 신뢰성&투명성

스마트 컨트랙트 코드에 작성된 조건이 만족되면, 계약이 이행됩니다. 이 계약 이행은 계약 당사자의 컴퓨터에서 기록되는 것이 아니라, 많은 노드들에 의해 검증됩니다. 만약 계약 이행 검증 시 문제점이 발견되면 계약 이행 자체가 취소됩니다. 즉, 계약 내용 및 계약 이행 결과를 위변조 하는 것이 어렵고, 여러 노드에 의해 계약 결과가 검증되기 때문에 신뢰성과 투명성이 높습니다.

3. 효율성

한번 스마트 컨트랙트 코드를 작성해 배포하고 나면 계약 당사자들이 수동으로 데이터를 입력하거나, 상대방의 계약 의무 이행 여부를 검증하거나, 제3자를 통해 계약 이행 여부를 확인하지 않아도 되기 때문에 효율성이 높습니다.

profile
아토언니의 프론트엔드 개발자로서의 기록

0개의 댓글