스마트 컨트랙트는 무엇이며 왜 더 진보된 형태의 디지털 계약인가

블록체인에 대한 지난 교육 포스팅에서 저희는 블록체인을 가치 교환 및 거래 활동 기록을 변경 불가능한 원장에 저장하는 매우 안전하고 신뢰할 수 있는 분산된 네트워크라 정의했습니다. 블록체인 덕분에 비트코인과 같은 새로운 통화 수단이 생겨났고 이로 인해 스마트 컨트랙트라 알려진 조건부 디지털 계약 또한 가능해졌습니다. 이번 포스팅에서는 다음에 해당하는 내용에 대해 알아보겠습니다.

  • 스마트 컨트랙트는 무엇인지
  • 왜 가치를 제공하는지
  • 스마트 컨트랙트는 어떻게 진화했는지
  • 실제 세상에서 스마트 컨트랙트는 어떻게 사용되고 있는지

스마트 컨트랙트란?

디지털 계약은 인터넷에서 실행되는 전자 서명 계약입니다. 예를 들어 우버(Uber)의 이용 약관에 “동의”를 누르는 순간 차를 타는 승객은 운전사가 목적지까지 데려주면 돈을 지급하겠다고 동의하게 됩니다.

대부분의 디지털 계약은 서로 모르는 두 당사자가 참여하기 때문에 상대방이 각자 한 약속을 지키지 않는 것에 대한 위험이 양쪽에 존재합니다. 이런 상대방 리스크를 해결하기 위해 디지털 계약은 보통 계약 조건을 이행하도록 하는 영리적 목적의 대기업이 중간에서 계약을 진행 및 실행합니다. 이런 디지털 계약은 유저와 대기업 간 직접 맺는 계약이 될 수도 있고 양 당사자 중간에서 신뢰할 수 있는 제3자 기관이 있는 형태의 계약이 될 수도 있습니다. 이런 경우 리스크를 감수하면서까지 계약을 맺지 않아도 되는 당사자들이 계약을 체결할 수도 있겠지만 이런 경우 중간에 중개자 역할을 하는 영리 기업이 계약에 대해 주도권을 가지게 되거나 통제력을 발휘할 수 있습니다.

스마트 컨트랙트는 블록체인 상 불변의 소프트웨어 프로그램에 존재하는 디지털 계약으로 실행에 필요한 조건이 설정되어 있습니다. 이 조건부 로직을 이해하는 가장 직관적인 예시는 “만약 x가 발생하면 y가 실행된다.”입니다. 만약 A 팀이 어떤 스포츠 경기에서 이기면 Bob에게 보상을 지급하고 만약 B 팀이 이기면 Steve에게 보상을 지급한다고 가정합시다. 스마트 컨트랙트는 스포츠 경기에 대한 결과를 직접 수동으로 입력하지 않고도 결과를 알려주는 데이터 하나로도 직접적으로 트리거가 될 수 있습니다. 데이터를 받는 순간 스마트 컨트랙트는 자동으로 액션을 실행하고 지급하는 것이 일반적인 형태입니다..

A diagram showing how smart contracts can connect to real-world data and payments using Chainlink.

스마트 컨트랙트는 계약 조건에 따라 아마도 실행이 될 수 있는 확률적인 상태에서 계약 조건에 따라 확실히 실행되는 확실한 상태로 비즈니스 로직(계약)을 바꿔 나가는 것에 집중하고 있습니다. 스마트 컨트랙트는 분산되고 비허가형(permissionless), 조작 불가능한 늘 온라인인 블록체인 환경에서 실행되기 때문에 늘 확실한 결과를 보장할 수 있습니다. 이 덕분에 중립적, 분산된 네트워크에서 계약상 동의한 것이 진행될 수 있으며 이벤트 발생 여부에 따라 기술적으로 계약이 시행됩니다.

스마트 컨트랙트의 가치

스마트 컨트랙트는 현재 디지털 계약보다 더 많은 장점을 제공하고 있습니다.

  • 보안– 분산된 인프라에서 계약을 실행하기 때문에 공격당할 수 있는 단일장애지점, 뇌물을 받을 수 있는 중앙 기관 및 당사자 또는 중앙 관리자가 결과를 조작할 수 있는 메커니즘이 없습니다.
  • 신뢰성- 다수의 개별 노드가 컨트랙트 로직에 대한 중복 처리 및 검증을 하기 때문에 유저들은 조작 저항 및 네트워크 가동시간을 보장받을 수 있어 컨트랙트가 늘 계약 조건에 따라 시간에 맞춰 실행된다는 것 또한 보장받을 수 있습니다.
  • 공평함– P2P 기반 분산 네트워크를 사용해 계약 진행 및 계약 조건을 실행하면 이윤을 추구하는 중앙 중개인에 의해 손실되는 가치가 줄어듭니다.
  • 효율성– 계약의 백엔드 프로세스(에스크로, 유지 보수, 실행 및 지불)가 자동화되면서 계약의 당사자들은 수동 데이터 입력, 계약 당사자의 의무 이행 여부 및 중개인의 거래 처리 등을 기다리지 않아도 됩니다.

스마트 컨트랙트의 역사

스마트 컨트랙트의 가장 기본적인 형태는 다중 서명(multisig, 멀티시그) 스마트 컨트랙트입니다. 멀티시그 트랙잭션이 유효하려면 정해진 수의 사람(공개 키)이 그들의 개인 키로 거래에 대해 서명을 해야 합니다. 비트코인은 2012년에 최초로 멀티시그 트랜잭션을 도입했습니다.

비트코인 블록체인 상 멀티시그 트랜잭션의 간단한 프레임워크
비트코인 블록체인 상 멀티시그 트랜잭션의 간단한 프레임워크

The 다음 단계에서는 프로토콜 스마트 컨트랙트가 생성되었습니다. 즉 몇 가지 프로그램상 주요 지시사항(연산 부호, opcode)이 내재된 블록체인이 탄생했습니다. 프로토콜 스마트 컨트랙트는 몇 가지 연산 부호를 실행할 수 있는 한 가지 애플리케이션으로 작동되는 블록체인을 의미합니다. 하지만 프로토콜 스마트 컨트랙트는 스마트 컨트랙트 (프로토콜)에 변경을 하기 위해서는 새로운 블록체인을 생성하고 각 노드가 소프트웨어를 업그레이드하는 급격한 변경을 요구하는 하드 포크를 해야 해서 확장성이 떨어집니다.

2015년, 이더리움은 스크립터블 스마트 컨트랙트를 런칭해 블록체인을 동시에 수많은 다른 애플리케이션을 실행하는 “실제 전 세계에 있는 컴퓨터”로 대체하면서 스마트 컨트랙트에 혁신을 불러일으켰습니다. 개발자들은 하드포크 없이도 언제든지 스마트 컨트랙트를 변경할 수 있도록 자체 컨트랙트 개발이 가능 해졌습니다. 스크립팅 언어를 통해 낮은 차원의 개발 복잡성을 제거해 수개월, 수년에 걸쳐 개발했던 스마트 컨트랙트를 고작 몇 주 또는 며칠만에 개발자들이 개발할 수 있게 해주었습니다.

현재 진화 단계는 스크립터블 스마트 컨트랙트로 블록체인 밖(오프체인)에 존재하는 데이터와 시스템을 컨트랙트에 연결하는 수준이 되었습니다. 커넥티드 스마트 컨트랙트는 보안성이 높은 미들웨어인 오라클을 사용해 오프체인 데이터로 스마트 컨트랙트를 트리거 해 실행합니다. 또한 오라클은 스마트 컨트랙트가 데이터를 다른 시스템에 보낼 수 있도록 하는데 예를 들어 스마트 컨트랙트 실행을 통해 기존 은행 지급 시스템에 지불 명령을 내려 오프체인에서 지급이 가능하게 합니다.

체인링크 오라클은 블록체인 기반 스마트 컨트랙트에 데이터 피드를 제공하면서 오프체인 결제 네트워크에 지급 명령까지 내릴 수 있습니다.
체인링크 오라클은 블록체인 기반 스마트 컨트랙트에 데이터 피드를 제공하면서 오프체인 결제 네트워크에 지급 명령까지 내릴 수 있습니다.

오늘날 스마트 컨트랙트가 사용되는 방식

스마트 컨트랙트는 아직 개발 초기 단계에 머무르고 있지만 현재 독특한 보안성과 신뢰성을 보장하는 스마트 컨트랙트의 특성상 잘 활용되고 있는 4개의 시장이 있습니다.

권한 관리 (토큰)

토큰을 생성, 추적 및 소유권 부여를 위해 토큰 컨트랙트가 사용됩니다. 토큰 컨트랙트는 발행하는 토큰에 특정 기능을 넣도록 설계가 되어 각기 다른 종류의 토큰이 됩니다. 토큰 보유자에게 디앱 내 유틸리티/밴드위스(bandwidth)를 부여하는 유틸리티 토큰, 프로토콜에서 투표 가중치를 부여하는 거버넌스 토큰, 기업의 자산을 부여하는 증권형 토큰, 실제 세계 또는 디지털 자산에 대한 소유권을 부여하는 대체 불가능한 토큰(non-fungible token) 등이 있습니다. 예를 들어 SIA 토큰은 Siacoin의 분산 클라우드 저장 서비스를 위한 결제 수단이고 COMP 토큰은 유저들이 컴파운드 프로토콜(Compound protocol)의 거버넌스에 참여할 수 있도록 하는 토큰입니다.

금융상품 (DeFi)

DeFi는 스마트 컨트랙트를 사용해 단기금융시장, 파생상품, 스테이블코인, 거래소, 자산관리 등과 같은  수많은 전통적 금융 상품 및 서비스를 재편성해

스마트 컨트랙트를 사용하는 애플리케이션들로 구성되어 있습니다. 스마트 컨트랙트는 에스크로에 보유한 유저의 자금을 시장 이벤트의 결과에 따라 유저들에게 배분할 수 있습니다. 예를 들어 Set Protocol은 시장 데이터를 사용해 자동으로 포트폴리오 관리를 하고 Opium 거래소는 실행 당시 자산 가격을 바탕으로 옵션 계약을 실행합니다.

게임

블록체인 게임은 게임 내 액션에 대한 조작 또는 사기 방지를 위해 스마트 컨트랙트를 사용합니다. 한 예시는 풀투게더(PoolTogether)입니다. 풀투게더는 유저들이 맡긴 예금 풀을 바탕으로 하는 손실 없는 복권형 게임 상품입니다. 풀에는 유저들의 예금에 대한 이자가 쌓이고 랜덤넘버생성(RNG, random number generation)을 통해 당첨자에게 쌓인 이자를 당첨금으로 지급합니다. 당첨자가 선정되면 모든 사람들은 처음 예치한 예금을 돌려받을 수 있습니다. 비슷한 방식으로 스마트 컨트랙트는 RNG를 통해 1회성 마법 검과 같은 게임 내 레어한 아이템을 생성하는데 사용될 수 있습니다. 체인링크의 VRF(Verifiable Random Function)을 RNG의 인풋으로 사용하면 유저들은 결과물이 진정한 랜덤 결과물이며 게임의 개발자 또는 데이터 소스 제공자에 의해 조작되지 않았다는 것을 신뢰할 수 있으며 각자 검증할 수 있습니다.

보험

파라메트릭 보험은 사전 정의된 특정 이벤트와 보상이 직접적으로 연결된 보험 유형입니다. 스마트 컨트랙트는 데이터 입력 값에 따라 트리거되는 파라메트릭 보험을 위해 조작 불가능한 인프라를 제공할 수 있습니다. 한 예시로 이더리스크(Etherisc)는 항공 상태 데이터를 받으면 자동으로 보상을 지급하는 항공 보험 스마트 컨트랙트를 개발하고 있습니다. 엔드 유저들이 컨트랙트에 대해 더 신뢰성을 보장받을 수 이을 뿐 아니라 리테일 투자자들도 유저들의 예금을 보험풀로 활용하는 스마트 컨트랙트의 공급 측면에서 참여할 수 있습니다. 스마트 컨트랙트는 참여자들의 풀에 대한 기여도에 따라 수익을 분배합니다.

더 알고 싶다면

관련 내용이 더 궁금하신 분들은 교육 시리즈 다음 편인 데이터 및 API에 대한 내용을 참고해 주세요. 새로운 포스팅 알림을 받고 싶은 분들은 체인링크 트위터 계정 팔로우 하거나 체인링크 텔레그램방에서 체인링크 최신 근황을 확인해주세요.

Kakaotalk: https://open.kakao.com/o/gWXAAf0b
Telegram: https://t.me/chainlink_korea
Facebook Group: https://web.facebook.com/groups/459042728150845
문의사항: [email protected]

GitHub: https://github.com/smartcontractkit/chainlink
Twitter: https://twitter.com/chainlinkofficial
Telegram: https://t.me/chainlinkofficial

Need Integration Support?
Talk to an expert
Faucets
Get testnet tokens
Read the Docs
Technical documentation