Smart Contract 란?

Blockchain May 6, 2023

Smart Contract

“똑똑한 계약서”라고 직역할 수 있는데 무슨 말일까 알아보도록 합시다.

Smart Contracts - Nick Szabo

  • 1994년 닉 사보(Nick Szabo)의 논문에서 처음 제시된 개념.
  • 당시 기술적 한계로 구현하지 못함.
  • 기본 성질
    1. 관측 가능성(observability)
      서로의 계약 이행 가능성을 관찰하거나 그 성과를 입증할 수 있어야 한다.

    2. 검증 가능성(verifiability)
      계약을 이행하거나 위반했을 때 계약 당사자들이 이를 알 수 있어야 한다.

    3. 당사자 원칙(privity)
      계약의 내용은 계약이 필요한 당사자들만이 알 수 있어야 한다.

    4. 강제 가능성(enforceability)
      계약이 이루어질 수 있도록 구속력이 있어야 한다.

Smart Contracts

Smart Contract 의 등장 배경

기존 계약 방식

신뢰할 수 있는 제3자(Trusted third party)를 통한 거래

자산의 복제, 이중 지불등의 금융 시스템을 붕괴시킬 수 있는 행위를 막기 위해서는 아무나 자산을 함부로 다룰 수 없도록 은행과 정부에서 신뢰할 수 있는 금융 기관을 설립해서 거래 행위를 검증 해야 합니다.

이때 신뢰할 수 있는 금융기관을 신뢰할 수 있는 제3자(Trusted third party)라고 합니다.

flowchart TD trusted(((Trusted third party))) seller(판매자) buyer(구매자) seller-->|재화|trusted-->|대금|seller buyer-->|대금|trusted-->|재화|buyer

기존 계약 방식의 문제점

  • 주식 거래

    • 주식 거래는 아래와 같이 매도자와 매수자 간의 거래

      flowchart LR seller((매도자)) buyer((매수자)) buyer -->|"현금"|seller seller -->|"주식"|buyer
    • 하지만 실제 거래는?
      → 증권 회사를 통한 제 3자 거래

      flowchart LR seller(매도자) buyer(매수자) fund((증권 회사)) ex(((한국예탁결제원))) seller-->|"주식-매도 주문"|fund buyer-->|"현금-매수 주문"|fund fund-->|"주식소유이전 요청"|ex

      증권 회사는 거래 수수료를 요구한다!

  • 해외 송금

    flowchart LR people(고객) bank((국내 은행)) ex(((외환 중개 은행))) foreign((해외 은행)) people2(수취인) people-->|현금|bank bank-->|지급요청|ex ex-->|입금|foreign foreign-->|송금|people2

    은행은 송금 수수료환전 수수료를 요구한다!

Blockchain 의 등장과 Smart contract 의 구현

사전에 정해진 계약자 간의 규칙에 따라 디지털 자산을 자동으로 이동하는 시스템

-비탈릭 부테린 (Vitalik Buterin)

닉 사보가 제안한 Smart Contract는 앞서 살펴본 것처럼 다음과 같은 특징을 가지고 있습니다.

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

Smart Contract 구현의 걸림돌

Smart Contract의 구현에 있어서 가장 큰 문제점은 데이터의 무결성을 보장하는 방법 이었습니다.
→ Ethereum 창시자 비탈릭 부테린은 이 Blockchain을 활용하여 데이터의 무결성을 보장하고, 이를 통해 Smart Contract의 구현에 성공하였습니다.

graph LR blockchain(((Blockchain))) smartcontract((Smart Contract)) user1(유저) user2(유저) user1-->|Transaction|smartcontract user2-->|Transaction|smartcontract smartcontract-->|Data 무결성|blockchain

Smart Contract의 장점

보안

Contract의 내용과 그 이행 내역을 블록체인 네트워크에 참여하는 모든 노드가 공유
→ 조작 가능성이 낮아짐

신뢰성 & 투명성

블록체인 네트워크의 모든 노드가 검증
→ 계약 내용 및 이행 결과를 위변조하기 어려움
→ 신뢰성과 투명성이 높아짐

효율성

계약 상대의 계약 의무 이행 여부 검증, 제 3자를 통한 계약 이행 등의 불필요한 절차를 줄일 수 있습니다.

Tags