스마트 컨트랙트는 계약 또는 합의에 필요한 조치를 자동화하는 자체 실행 프로그램입니다. 완료되면 트랜잭션은 추적 가능하고 되돌릴 수 없습니다. [1][2][3]
스마트 컨트랙트는 신뢰할 수 있는 중개인에 대한 의존도를 줄이고, 중재 비용 및 사기 손실을 낮추며, 악의적이거나 우발적인 예외를 최소화하려고 합니다. 암호화폐와 밀접하게 연결된 스마트 컨트랙트는 탈중앙화 금융 (DeFi) 및 대체 불가능한 토큰 (NFT) 애플리케이션의 기초입니다. [1][2]
스마트 컨트랙트는 1990년대 초에 미국의 컴퓨터 과학자인 닉 사보에 의해 처음 제안되었습니다. 그는 비트코인이 소개되기 10년 전인 1998년에 "비트 골드"라는 가상 화폐를 발명했습니다. 사보는 종종 익명의 비트코인 발명가인 사토시 나카모토라는 소문이 있었지만 부인했습니다. [1][7]
사보의 첫 번째 출판물인 "스마트 컨트랙트: 디지털 자유 시장을 위한 빌딩 블록"은 Extropy #16에 게시되었고, 나중에 "공개 네트워크에서 관계 공식화 및 보안"으로 재작업되었습니다. 이 문서는 인터넷상의 낯선 사람들 간에 전자 상거래 프로토콜 설계를 통해 계약법 및 관련 비즈니스 관행을 확립하는 방법을 설명했습니다. [3][7]
1996년에 사보는 스마트 컨트랙트를 다음과 같이 설명했습니다.
"새로운 기관과 이러한 기관을 구성하는 관계를 공식화하는 새로운 방법은 이제 디지털 혁명으로 가능해졌습니다. 저는 이러한 새로운 계약을 "스마트"라고 부릅니다. 왜냐하면 그것들은 무생물인 종이 기반 조상보다 훨씬 더 기능적이기 때문입니다. 인공 지능의 사용은 암시되지 않습니다. 스마트 컨트랙트는 당사자들이 이러한 약속을 이행하는 프로토콜을 포함하여 디지털 형태로 지정된 일련의 약속입니다."[7]
데이비드 차움과 같은 연구자들에게 영감을 받은 사보는 또한 명확한 논리를 통한 사양과 암호화 프로토콜 및 기타 디지털 보안 메커니즘을 통한 검증 또는 시행이 컴퓨터 프로토콜의 지배하에 놓일 수 있는 일부 전통적인 종류의 계약 조항(예: 재점유를 제공하는 자동차 보안 이익)에 대해서도 전통적인 계약법보다 훨씬 개선될 수 있다는 더 넓은 기대를 가졌습니다. [7]
"스마트 컨트랙트"라는 용어는 블록체인 또는 분산 원장에서 발생하는 일종의 범용 계산을 의미합니다. 이 의미는 이더리움 재단 또는 IBM과 같은 조직에서 사용됩니다. 이 맥락에서 스마트 컨트랙트는 반드시 전통적인 계약 개념과 일치하지 않지만 모든 컴퓨터 프로그램이 될 수 있습니다. [1][3]
스마트 컨트랙트는 블록체인 상에서 불변하는 프로그램으로 작동하며, "만약/언제 x 이벤트가 발생하면, y 액션을 실행한다"라는 논리를 따릅니다. 단일 스마트 컨트랙트는 다양한 조건을 포함할 수 있으며, 애플리케이션은 상호 연결된 일련의 프로세스를 용이하게 하기 위해 여러 스마트 컨트랙트를 사용할 수 있습니다. Solidity는 이더리움에서 가장 인기 있는 언어이며, 여러 프로그래밍 언어를 사용하여 스마트 컨트랙트를 만들 수 있습니다. [1][3]
개발자는 맞춤형 수익률 통합기와 같은 개인적인 용도로 스마트 컨트랙트를 생성하고 배포할 수 있습니다. 그러나 많은 스마트 컨트랙트는 다양한 수준의 신뢰를 가진 여러 독립적인 당사자를 포함합니다. 이러한 컨트랙트는 사용자 상호 작용을 정확하게 지시하여 누가 참여할 수 있는지, 언제 참여할 수 있는지, 특정 결과로 이어지는 입력을 지정합니다. 이로 인해 다자간 디지털 계약은 실행 가능성이 높은 확률적 상태에서 지정된 코드에 따라 실행을 보장하는 결정적 상태로 전환됩니다. [1][3]
스마트 컨트랙트는 블록체인 상에서 작동하기 때문에 프로그래밍된 대로 정확하게 자동적이고 결정적으로 실행됩니다. 시행의 맥락에서 이는 스마트 컨트랙트 트랜잭션에 관련된 어떠한 당사자도 스마트 컨트랙트에 명시된 결과를 변경하거나 조건을 어길 수 없다는 것을 가설적으로 의미합니다. [3][8]
비잔틴 장애 허용 알고리즘을 통한 탈중앙화는 디지털 보안 및 스마트 계약 형성을 가능하게 했습니다. 일부 블록체인은 다양한 정도의 튜링 완전성을 가진 프로그래밍 언어를 가지고 있어 고도로 사용자 정의된 로직 생성을 용이하게 합니다. [7]
스마트 계약 구현의 주목할 만한 예는 다음과 같습니다.
스마트 컨트랙트는 "계약 조건을 실행하는 컴퓨터화된 거래 프로토콜"입니다. 블록체인 기반 스마트 컨트랙트는 해당 블록체인의 모든 사용자에게 공개됩니다. 그러나 이로 인해 보안 허점을 포함한 버그가 모든 사람에게 보이지만 신속하게 수정되지 않을 수 있는 상황이 발생합니다. [3]
신속하게 수정하기 어려운 이러한 공격은 2016년 6월 The DAO에서 성공적으로 실행되어 개발자들이 합의를 얻을 수 있는 해결책을 모색하는 동안 5천만 달러 상당의 이더를 유출했습니다. DAO 프로그램에는 해커가 자금을 인출하기 전에 시간 지연이 있었습니다. 이더리움 소프트웨어의 하드 포크가 수행되어 시간 제한이 만료되기 전에 공격자로부터 자금을 회수했습니다. [4]
특히 이더리움 스마트 컨트랙트의 문제점으로는 계약 언어 Solidity의 모호성 및 쉽지만 안전하지 않은 구조, 컴파일러 버그, 이더리움 가상 머신 버그, 블록체인 네트워크 공격, 버그의 불변성, 알려진 취약점, 공격 및 문제가 있는 구조를 문서화하는 중앙 소스가 없다는 점이 있습니다. [3][4]
Szabo의 개념은 암호화 해시 체인과 비잔틴 장애 허용 복제를 통해 복제된 자산 레지스트리와 계약 실행을 통한 스마트 계약 인프라를 구상했습니다. Askemos는 2002년에 Scheme을 사용하여 이 접근 방식을 구현했으며, 나중에 SQLite를 계약 스크립트 언어로 추가했습니다. [5]
대안적인 제안인 "컬러 코인"은 복제된 자산 등록 및 계약 실행을 위해 Bitcoin을 사용하는 것을 제안합니다. 다양한 프로젝트에서 다양한 형태의 재산에 대한 복제된 타이틀과 복제된 계약 실행을 구현했습니다. [6]
스마트 계약의 이론적 장점으로는 카운터파티 위험 최소화, 결제 시간 단축, 기존 금융 상품에 비해 투명성 향상 등이 있습니다. 2015년 UBS는 Bitcoin 블록체인을 활용한 "스마트 채권"을 실험하여 자체 지불 상품에 대한 완전 자동화된 결제 스트림을 구상했습니다. [5][6]
탈중앙화 금융 (DeFi)는 스마트 계약을 활용하여 머니 마켓, 옵션, 스테이블코인, 거래소 및 자산 관리와 같은 전통적인 금융 상품을 복제하는 애플리케이션을 포괄합니다. 이러한 애플리케이션은 허가 없는 구성 가능성을 활용하여 서비스를 결합하고 새로운 금융 기본 요소를 만듭니다. DeFi 내의 스마트 계약은 사용자 자금을 안전하게 관리하고 에스크로에 보관하며 미리 결정된 조건에 따라 사용자 간에 분배할 수 있습니다. 예를 들어 BarnBridge는 고정 자산 노출을 원하는 사용자를 위해 거래를 자동화하고 Aave는 스마트 계약을 통해 허가 없는 탈중앙화된 대출 및 차입을 용이하게 합니다. [1][3]
토큰 스마트 계약은 블록체인 네트워크에 존재하는 특정 디지털 토큰에 대한 소유권을 생성, 추적 및 할당하는 데 사용됩니다. 토큰 계약은 발행하는 토큰에 기능을 프로그래밍하여 보유자에게 dApp에서의 유틸리티/보험(유틸리티 토큰), 프로토콜에서의 투표 가중치(거버넌스 토큰), 회사 지분(증권 토큰), 고유한 실제 또는 디지털 자산에 대한 소유권 주장(대체 불가능한 토큰 NFT) 등과 같은 기능을 제공합니다. 예를 들어 FIL 토큰은 Filecoin의 분산 스토리지 서비스 비용을 지불하는 데 사용되며 COMP 토큰은 사용자가 Compound 프로토콜의 거버넌스에 참여할 수 있도록 합니다. [1]
블록체인 기반 게임은 게임 내 액션의 변조 방지 실행을 위해 스마트 계약을 사용합니다. 한 예로 PoolTogether는 사용자가 자금을 공유 풀에 스테이킹하여 이자를 얻는 무손실 저축 게임입니다. 미리 정의된 기간 후 게임이 종료되고 당첨자는 무작위로 발생한 모든 이자를 받게 되며 다른 모든 사람은 원래 예금을 인출할 수 있습니다. [1]
마찬가지로 제한판 NFT는 공정한 분배 모델을 가질 수 있으며 RPG는 무작위성을 사용하여 예측 불가능한 전리품 드롭을 지원하여 모든 사용자가 희귀 디지털 자산을 얻을 수 있는 공정한 기회를 가질 수 있도록 돕습니다. 많은 프로젝트가 Chainlink Verifiable Random Function (VRF)을 사용하여 무작위성에 액세스합니다. 이는 암호화를 사용하여 변조 방지 기능을 증명하는 무작위 숫자 생성기(RNG)로, RNG 프로세스를 공개적으로 감사할 수 있음을 의미합니다. [1]
파라메트릭 보험은 사전에 정의된 이벤트에 직접적으로 지급액을 연결하며, 데이터 입력을 기반으로 변조 방지 생성 및 실행을 위해 스마트 계약을 활용합니다. 예를 들어, 농작물 보험은 스마트 계약을 통해 구현될 수 있으며, 정책은 계절 강우량과 같은 특정 기상 조건에 연결됩니다. 정책 완료 시, 실제 강우량이 미리 정의된 양을 초과하면 스마트 계약은 자동으로 지급액을 발행합니다. 이 모델은 오버헤드를 줄여 최종 사용자에게 시기적절한 지급을 보장하고, 스마트 계약을 통해 보험의 공급 측면을 대중에게 개방합니다. 사용자는 풀에 자금을 예치할 수 있으며, 스마트 계약은 기여도에 비례하여 참가자에게 보험료를 분배합니다. [1][2]
스마트 컨트랙트는 의사 결정 규칙과 절차를 컨트랙트 코드에 직접 인코딩하여 DAO (탈중앙화 자율 조직) 내 투표 및 거버넌스에 활용될 수 있습니다. DAO 참가자들은 스마트 컨트랙트와 상호 작용하여 투표하고, 변경 사항을 제안하거나, 거버넌스 결정에 참여할 수 있습니다. 이는 투표 과정의 투명성, 불변성 및 위변조 방지 실행을 보장하여 DAO 거버넌스의 민주적이고 분산된 특성을 강화합니다. 스마트 컨트랙트는 투표 집계 자동화, 투표 규칙 시행, 사전 정의된 조건에 따른 결정 실행을 통해 DAO 운영 관리를 위한 효율적이고 신뢰할 수 있는 메커니즘을 제공합니다. [8]
스마트 컨트랙트는 블록체인 크라우드 펀딩에서 모금 프로세스를 자동화하고 기부금의 투명하고 안전한 처리를 보장하는 데 사용될 수 있습니다. 스마트 컨트랙트에 인코딩된 미리 정의된 규칙 세트를 통해 참가자는 크라우드 펀딩 캠페인에 기부금을 보낼 수 있습니다. 그런 다음 스마트 컨트랙트는 자금 목표 달성 또는 미리 결정된 타임라인과 같은 특정 조건에 따라 자금 릴리스를 자동으로 관리합니다. 이는 중개인의 필요성을 없애고 계약 실행이 블록체인에서 검증 가능하므로 참가자 간의 신뢰를 향상시킵니다. 또한 스마트 컨트랙트는 계약 내에 설정된 조건에 따라 기여자에게 토큰 또는 보상 배포를 용이하게 할 수 있습니다. [8]