본문 바로가기
블록체인/블록체인

스마트 컨트랙트란?

by 제이제이_은재 2022. 7. 7.
반응형

 

 

💡 스마트 컨트랙트

 

스마트 컨트랙트는 블록체인 네트워크에 호스팅되고 실행되는 프로그램이다. 조건을 지정해두고, 해당 조건이 충족되면 미리 정해둔 계약을 이행하는 방식으로 코드를 작성한다. 어떠한 계약을 수립, 검증하고 특정 조건이 충족되었을 경우 이행하기 위한 컴퓨터 프로토콜로, 작성된 로직대로 스스로 작동한다. 서면으로, 이루어져 사람이 하나씩 검증하여 시간이 많이 걸렸던 계약의 과정을 디지털을 도입해 자동화를 통해 간단하고, 빠르고 정확하게 이행할 수 있다. 스마트 컨트랙트는 일반적인 중앙 집중식 서버가 아니라 탈중앙화된 블록체인에서 실행하기 때문에 계약 조건이나 이행 내용을 변조하기 어려우며 계약을 신뢰하기 위해 제삼자가 필요하지 않다.

 

 

✓ 스마트 컨트랙트 역사

 

스마트 컨트랙트의 개념은 1994년 닉 사보에 의해 만들어졌다. 닉 사보는 스마트 컨트랙트를 다음과 같이 정의했다. 스마트 컨트랙트는 계약 조건을 실행하는 전산화된 트랜잭션 프로토콜은 일반적인 계약 조건을 만족하고, 악의적이거나 우발적인 예외를 최소화하며 신뢰할만한 중개자의 필요성을 최소화하는 것을 목표로 한다. 닉 사보는 스마트 컨트랙트가 마치 자판기와 같다고 말했다. 커피 자판기에 일정 금액을 넣으면 자판기는 우리에게 커피를 내려준다. 이 과정에서 자판기와 나 사이에는 커피 제공이라는 계약이 있다. 이 계약 사이에는 제삼자가 없다, 일정 금액을 넣으면 커피를 내려준다 라는 계약이 있는 것이다. 이 자판기에 일정 금액을 넣으면 커피를 내려준다는 계약 대신 더 어려운 프로그래밍을 할 수 있을 것이다.

 

닉 사보는 스마트 컨트랙트를 위한 비트 골드를 제안했으나, 기술적 한계로 실제로 구현되지는 못했다. 스마트 컨트랙트를 실제로 지원하기 시작한 첫 화폐는 2009년 출시된 비트코인이다. 비트코인이 스마트 컨트랙트를 지원할 수 있는 핵심적인 이유는 비트코인의 핵심 기술인 블록체인이 디지털이며, 위조를 방지할 수 있고, 제 삼자가 필요하지 않기 때문이었다. 다만, 비트코인의 경우 오피코드를 사용해 화폐 거래를 위한 제한적인 스크립트만을 작성할 수 있었기 때문에 프로그램 구현 시 제약이 많았다. 2015년에는 프로그래밍 가능한 스마트 컨트랙트를 위한 블록체인인 이더리움이 등장했다. 이더리움에서는 솔리디티라는 언어를 통해 스마트 컨트랙트를 위한 코드를 작성하고, EVM(Ethereum Virutual Machine) 을 통해 이더리움 블록체인 위에서 코드를 실행시킬 수있다. 이를 통해 이더리움은 여러개의 독립적인 스마트 컨트랙트를 동시에 실행할 수 있어서 월드 컴퓨터(World Computer) 라고 불린다.

 

 

✓ 특성 / 특징

 

스마트 컨트랙트는 중개인의 존재 여부와 상관없이, 조건이 충족된다면 계약이 이행되고, 조건이 충족되지 않는다면 이행되지 않는다는 특징을 가지고 있다. 이러한 스마트 컨트랙트의 특성은 블록체인이 가지고 있는 탈중앙성 특성과 아주 잘 맞는다. 또한 스마트 컨트랙트의 배포는 투구든지 할 수 있고, 자동화할 수 있다. 검증도 제약 없이 자유로우며 변경이 불가하다. 전통적인 계약 방식과 비교했을 때, 스마트 컨트랙트는 거래수수료를 절감할 수 있다. 전통적인 계약 방식에서는 이 거래 계약을 보장하는 신뢰할 수 있는 제삼자가 필요하기 때문이다. 제삼자는 은행이나 정부 등이 될 수도 있다. 이 제 삼자를 통해 계약을 하기 위해서는 제삼자에게 많은 수수료를 지불해야 한다.

 

그러나, 스마트 컨트랙트에서는 컨트랙트에 작성된 코드에 의해 실행되며, 그 내용을 변경할 수 없고, 모두에게 공개되어 있기 때문에 계약의 조건과 이행을 보증할 제삼자가 필요하지 않다. 따라서 거래 수수료도 거의 들지 않게 된다. 또한 스마트 컨트랙트라는 그 내용이 블록체인 상에 올라가게 된다. 블록체인에 올라간 컨트랙트는 네트워크에 참여한 누구라도 확인할 수 있기 때문에 그 거래 내역이 투명하게 공개될 수 밖에 없다.

 

 

✓ 스마트 컨트랙트의 동장방식

if of when (이벤트 x가 실행되면) { //조건
	액션 y를 실행하라 // 계약 이행
}

코드가 블록체인 네트워크에 올라가면, 네트워크는 미리 결정된 조건이 충족되고, 검증된 경우 조건에 따른 액션을 실행한다. 이러한 액션은 트랜잭션에 기록되며, 완료된 트랜잭션은 브록체인에 올라간다. 다시 말해, 스마트 컨트랙트는 한번 액션이 수행되면 되돌리거나 수정할 수 없다는 것을 의미한다. 따라서 스마트 컨트랙트는 당사자가 스마트 컨트랙트와 상호작용하는 방법을 정의하고, 누가, 언제, 어떤 입력이 어떤 결과를 초래하는지 담고 있다. 결과 값이 담겨있다는 것은 어떤 확률적인 상태(Probabilistic State)가 아니라, 조건에 따른 결과가 미리 결정되어 있다는 것을 의미한다. 코드에 따라 계약이 실행됨을 보장하는 결정론적인 상태(Deteerministic State)인 다자간 디지털 계약이 바로 스마트 컨트랙트이다.

 

개발자라면 누구나 스마트 컨트랙트를 만들고 퍼블릭 블록체인에 배포할 수 있다. 가령 여러 펀드 중 가장 높은 수익률을 내는 펀드로 옮기는 작업을 자동화하는 수익률 집계 어플리케이션을 만들 수도 있을 것이다. 이런 경우 일정 시각마다 여러 펀드들 중 현재 가지고 있는 펀드보다 높은 수익률을 내고 있는 펀드가 있는 경우라는 조건에 부합하는지 확인하고, 그러한 펀드가 있는 경우 새로운 펀드로 이동하는 액션을 취하도록 스마트 컨트랙트 코드를 작성할 수 있다.

 

 

✓ 스마트 컨트랙트의 장점

 

대부분의 전통적인 디지털 계약의 경우, 계약 당사자들이 서로를 모르는 경우가 있다. 서로가 누구인지 모른다는 것은 곧 계약 당사자가 악의적인 사용자일수도 있다는 것이다. 계약 상대에 대한 신뢰를 알 수 없기 때문에, 일반적으로 은행과 같이 계약 조건을 이행하도록 강제할 수 있는 중앙화된 기관이 디지털 계약의 제삼자 역할을 한다. 이러한 디지털 계약은 중개자인 은행 또는 기업이 계약 당사자나 계약 자체에 영향을 미칠 수 있다. 2008년 금융 위기를 보면, 파생 상품의 중개자 역할을 했던 금융 기업들이 자신들의 이익을 위해 파생상품을 마구 만들어낸 점을 확인할 수 있다.

 

스마트 컨트랙트는 일반적인 중앙집권화된 디지털 계약과는 다른 몇가지 장점이 있다.

 

- 보안

스마트 컨트랙트는 분산형 블록체인 인프라 위에서 실행되기 때문에, 한 번 스마트 컨트랙트 코드가 블록체인 네트워크에 올라가면 모든 노드가 스마트 컨트랙트 내용과 이행 결과를 가지게 된다. 따라서 계약에 대한 중앙화된 공격 지접이 없고, 누군가에게 뇌물을 주고 계약 내용이나 결과를 변조할 위험이 없다.

 

- 신뢰성

스마트 컨트랙트 로직이 조건에 부합해 계약이 이행되면 블록체인 네트워크에 있는 오드들에 의해 여러번 수행되고 검증되기 때문에, 위변조가 매우 어렵고 정확도가 높다.

 

- 공평함

계약 조건을 공유하고 강제하기 위해 분산화된 블록체인 네트워크를 사용하기 때문에, 수수료를 가져가는 등 영리적 목적의 중개자가 필요하지 않다.

 

- 효율성

계약 이행을 자동화하기 때문에 계약 당사자들은 수동으로 데이터를 입력하거나, 상대방의 계약 의무 이행 여부를 검증하거나 중개자가 계약을 집행하는지 확인할 필요가 없다.

 

 

✓ 한계점

 

그러나, 스마트 컨트랙트에도 한계점이 있고 함계점을 넘어서기 위해 많은 사람들이 노력 중이다. 

 

1. 컨트랙트 배포 이후엔 작동 수정이 불가능하다.

내용을 수정할 수 없다는 것은 장점이 될 수 있지만, 한계저이 될 수도 있다. 만약, 배포한 컨트랙트에 보안적으로 허점이 발견된 경우 햌이에 취약하다.

 

2. 블록체인 외의 정보를 스스로 취득하지 못한다.

블록체인 내부에 있는 정보 외의 정보는 스스로 취득할 수 없기에, 외부 데이터의 조건 충족을 확인할 때 문제가 발생한다. 이러한 경우, 제 3자에 의해 직접 데이터를 입력하여야 한다. 외부 데이터를 가지고 온다고 하더라도, 전달 과정에서 오류가 나거나 악성 코드를 의도해서 입력하는 경우에도 문제가 발생할 수 있다.

반응형

댓글