Smart Contract
스마트 컨트랙트는 계약 또는 합의에 필요한 작업을 자동화하는 자체 실행 프로그램입니다. 완료되면 트랜잭션은 추적 가능하고 되돌릴 수 없습니다. [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]
스마트 계약 구현의 주목할 만한 예는 다음과 같습니다.
- 탈중앙화 암호화폐 프로토콜은 탈중앙화 보안, 암호화 및 제한된 신뢰 당사자를 갖춘 스마트 계약으로, 관찰 가능성, 검증 가능성, 비밀성 및 집행 가능성을 갖춘 디지털 계약에 대한 Szabo의 정의에 부합합니다.
- 비트코인은 또한 다중 서명 계정, 지불 채널, 에스크로, 시간 잠금, 원자적 교차 체인 거래, 오라클 또는 운영자 없는 다자간 복권과 같은 비트코인 위에 사용자 정의 스마트 계약을 생성할 수 있는 튜링 불완전 스크립트 언어를 제공합니다.
- 이더리움은 블록체인에서 거의 튜링 완전한 언어를 구현하며, 이는 주요 스마트 계약 프레임워크입니다.
- 루트스탁(RSK)은 사이드체인 기술을 통해 비트코인 블록체인에 연결된 스마트 계약 플랫폼입니다. RSK는 이더리움을 위해 생성된 스마트 계약과 호환됩니다.
- 네임코인은 복제된 도메인 이름 레지스트리입니다.
- 자동화된 트랜잭션은 Burstcoin 및 Qora와 같은 암호화폐에서 사용되는 또 다른 튜링 완전 스마트 계약 언어입니다. 사용 예로는 원자적 교차 체인 거래가 있습니다.
보안 문제
스마트 컨트랙트는 "계약 조건을 실행하는 컴퓨터화된 거래 프로토콜"입니다. 블록체인 기반 스마트 컨트랙트는 해당 블록체인의 모든 사용자에게 공개됩니다. 그러나 이로 인해 보안 허점을 포함한 버그가 모든 사람에게 보이지만 신속하게 수정되지 않을 수 있는 상황이 발생합니다. [3]
신속하게 수정하기 어려운 이러한 공격은 2016년 6월 The DAO에서 성공적으로 실행되어 개발자들이 합의를 얻을 수 있는 해결책을 모색하는 동안 5천만 달러 상당의 이더를 빼돌렸습니다. The DAO 프로그램에는 해커가 자금을 인출하기 전에 시간 지연이 있었습니다. 이더리움 소프트웨어의 하드 포크가 수행되어 시간 제한이 만료되기 전에 공격자로부터 자금을 회수했습니다. [4]
특히 이더리움 스마트 컨트랙트의 문제점으로는 계약 언어 Solidity의 모호성 및 쉽지만 안전하지 않은 구조, 컴파일러 버그, 이더리움 가상 머신 버그, 블록체인 네트워크 공격, 버그의 불변성, 알려진 취약점, 공격 및 문제가 있는 구조를 문서화하는 중앙 소스가 없다는 점이 있습니다. [3][4]
응용 분야
Szabo의 개념은 암호화 해시 체인과 비잔틴 장애 허용 복제를 통해 복제된 자산 레지스트리와 계약 실행을 제공하는 스마트 계약 인프라를 구상했습니다. Askemos는 2002년에 Scheme을 사용하여 이 접근 방식을 구현했으며, 나중에 SQLite를 계약 스크립트 언어로 추가했습니다. [5]
대안적인 제안인 "컬러 코인"은 복제된 자산 등록 및 계약 실행을 위해 비트코인을 사용하는 것을 제안합니다. 다양한 프로젝트에서 다양한 형태의 재산에 대한 복제된 타이틀과 복제된 계약 실행을 구현했습니다. [6]
스마트 계약의 이론적 이점으로는 상대방 위험 최소화, 결제 시간 단축, 기존 금융 상품에 비해 투명성 향상 등이 있습니다. 2015년 UBS는 비트코인 블록체인을 활용한 "스마트 채권"을 실험하여 완전 자동화된 지급 스트림을 구상했습니다. [5][6]
스마트 컨트랙트 유틸리티
금융 상품 (DeFi)
탈중앙화 금융 (DeFi)은 스마트 계약을 활용하여 머니 마켓, 옵션, 스테이블코인, 거래소 및 자산 관리와 같은 전통적인 금융 상품을 복제하는 애플리케이션을 포괄합니다. 이러한 애플리케이션은 허가 없는 구성 가능성을 활용하여 서비스를 결합하고 새로운 금융 기본 요소를 생성합니다. DeFi 내의 스마트 계약은 사용자 자금을 안전하게 관리하고 에스크로에 보관하며 미리 결정된 조건에 따라 사용자 간에 분배할 수 있습니다. 예를 들어, BarnBridge는 고정 자산 노출을 원하는 사용자를 위해 거래를 자동화하고, Aave는 스마트 계약을 통해 허가 없이 탈중앙화된 대출 및 차입을 용이하게 합니다. [1][3]
권리 관리 (토큰)
토큰 스마트 계약은 블록체인 네트워크에 존재하는 특정 디지털 토큰에 대한 소유권을 생성, 추적 및 할당하는 데 사용됩니다. 토큰 계약은 발행하는 토큰에 기능을 프로그래밍하여 보유자에게 dApp에서의 유틸리티/보험(유틸리티 토큰), 프로토콜에서의 투표 가중치(거버넌스 토큰), 회사에서의 지분(증권 토큰), 고유한 실제 또는 디지털 자산에 대한 소유권 주장(대체 불가능한 토큰 NFT) 등과 같은 기능을 제공합니다. 예를 들어, FIL 토큰은 Filecoin의 분산 스토리지 서비스 비용을 지불하는 데 사용되며 COMP 토큰은 사용자가 Compound 프로토콜의 거버넌스에 참여할 수 있도록 합니다. [1]
게임 및 NFT
블록체인 기반 게임은 게임 내 액션의 변조 방지 실행을 위해 스마트 계약을 사용합니다. 한 예로 PoolTogether는 사용자가 자금을 공유 풀에 스테이킹하여 이자를 얻는 머니 마켓으로 라우팅되는 무손실 저축 게임입니다. 미리 정의된 기간 후 게임이 종료되고 당첨자는 무작위로 발생한 모든 이자를 받게 되며 다른 모든 사람은 원래 예금을 인출할 수 있습니다. [1]
마찬가지로, 한정판 NFT는 공정한 분배 모델을 가질 수 있으며 RPG는 무작위성을 사용하여 예측 불가능한 전리품 드롭을 지원하여 모든 사용자가 희귀 디지털 자산을 얻을 수 있도록 합니다. 많은 프로젝트가 Chainlink VRF(검증 가능한 랜덤 함수)를 사용하여 무작위성에 액세스합니다. 이는 암호화를 사용하여 변조 방지 기능을 입증하는 랜덤 넘버 생성기(RNG)로, RNG 프로세스를 공개적으로 감사할 수 있음을 의미합니다. [1]
보험
파라메트릭 보험은 사전에 정의된 이벤트에 직접적으로 지급액을 연결하며, 데이터 입력을 기반으로 변조 방지 스마트 계약을 활용하여 생성 및 실행합니다. 예를 들어, 농작물 보험은 스마트 계약을 통해 구현될 수 있으며, 정책은 계절 강우량과 같은 특정 기상 조건에 연결됩니다. 정책 완료 시, 실제 강우량이 미리 정의된 양을 초과하면 스마트 계약은 자동으로 지급액을 발행합니다. 이 모델은 오버헤드를 줄여 최종 사용자에게 시기적절한 지급을 보장하며, 스마트 계약을 통해 보험의 공급 측면을 대중에게 개방합니다. 사용자는 풀에 자금을 예치할 수 있으며, 스마트 계약은 기여도에 비례하여 참가자에게 보험료를 분배합니다. [1][2]
투표 및 거버넌스
스마트 컨트랙트는 DAO (탈중앙화 자율 조직) 내에서 의사 결정 규칙과 절차를 컨트랙트 코드에 직접 인코딩하여 투표 및 거버넌스에 활용될 수 있습니다. DAO 참가자들은 스마트 컨트랙트와 상호 작용하여 투표하고, 변경 사항을 제안하거나, 거버넌스 결정에 참여할 수 있습니다. 이는 투표 과정의 투명성, 불변성 및 위변조 방지 실행을 보장하여 DAO 거버넌스의 민주적 및 탈중앙화된 특성을 강화합니다. 스마트 컨트랙트는 투표 집계 자동화, 투표 규칙 시행, 사전 정의된 조건에 따른 결정 실행을 통해 DAO 운영 관리를 위한 효율적이고 신뢰할 수 있는 메커니즘을 제공합니다. [8]
블록체인 크라우드 펀딩
스마트 계약은 블록체인 크라우드 펀딩에서 모금 프로세스를 자동화하고 기부금의 투명하고 안전한 처리를 보장하는 데 사용될 수 있습니다. 스마트 계약에 인코딩된 미리 정의된 규칙 집합을 통해 참가자는 크라우드 펀딩 캠페인에 기부금을 보낼 수 있습니다. 그런 다음 스마트 계약은 자금 목표 달성 또는 미리 결정된 타임라인과 같은 특정 조건에 따라 자금 릴리스를 자동으로 관리합니다. 이는 중개인의 필요성을 없애고 계약 실행이 블록체인에서 검증 가능하므로 참가자 간의 신뢰를 향상시킵니다. 또한 스마트 계약은 계약 내에 설정된 조건에 따라 기여자에게 토큰 또는 보상 배포를 용이하게 할 수 있습니다. [8]