2.1 스마트 컨트랙트(Smart Contracts)

스마트 컨트랙트(Smart Contracts, 스마트 계약)

앞 절에서는 솔리디티 프로그래밍 언어로 응용 프로그램을 작성하고 이를 이더리움 블록체인에 배포하는 방법에 대해 설명했습니다. 이더리움에서는 이러한 응용 프로그램을 '스마트 계약' 또는 '스마트 컨트랙트' 라고 합니다.

왜 이러한 응용 프로그램을 스마트 계약이라고 부르는지 궁금하겠죠? 일반적으로 계약은 법으로 집행되는 두 당사자, 또는 여러 당사자 간의 서면 합의입니다. 계약서를 작성하여 코드로 변환하고 블록체인에 배포하면 디지털 계약이 체결됩니다. 블록체인에 있는 이 코드의 장점은 당사자 간의 합의를 강화할 수 있다는 점입니다. 이것이 바로 스마트 계약이라고 불리는 이유입니다.

이 코드가 어떻게 계약을 시행할 수 있을까요? 일단 계약이 블록체인에 배포되면 이를 중지하거나 수정할 수 없습니다. 이것이 계약이 시행되는 방식입니다. 이해를 위해 간단한 예를 살펴 보겠습니다.


예시

Crowdsale 응용 프로그램을 작성하려고 한다고 가정해 봅시다. 제품을 만들기 위해 10,000달러를 모으고자 하는 제작자가 있으며, 이 제품에 관심이 있고 선불로 기꺼이 지불할 잠재 고객이 있습니다. 계약상 각 고객이 보내는 액수가 $10 - $10,000 사이에 해당하면 수령할 것이고, 목표가 달성된다면 그 돈은 제작자에게 송금됩니다. 그렇지 않은 경우, 기부자에게 돈이 돌려 보내집니다. 이는 스마트 계약을 사용하여 제작자와 지지자 간의 계약을 시행하는 이상적인 사용 사례입니다. 중앙화된 응용 프로그램에서도 이 논리를 구현하는 것은 간단합니다. 스마트 계약에서 이를 구현할 때의 장점은 아래와 같습니다.

  1. 모든 참여자가 보낸 돈이 스마트 계약에 담겨 있습니다. 참여자도 제작자도 그 돈을 사용할 수 없습니다.
  2. 목표에 도달하자마자 돈이 제작자에게 보내지도록 코드를 구현할 수 있습니다.
  3. 특정 시간 내에 목표에 도달하지 못하면 모든 참가자에게 환불을 시행할 수 있도록 코드를 구현할 수 있습니다.
  4. 이 코드는 한번 블록체인에 배포된 후에는 조작할 수 없습니다.

강의에 등록된 질문이 없습니다. 궁금한 부분이 있으면 주저하지 말고 무엇이든 물어보세요.