블록체인 2.0인 이더리움이 주목받는 이유는 스마트 컨트랙트(Smart Contract) 덕분입니다. 스마트 컨트랙트는 블록체인 네트워크에 호스팅되어 실행되는 프로그램입니다. 미리 지정된 조건이 충족되면 계약을 자동으로 이행하게 됩니다. 기존 계약 처럼 서면으로 당사자와 중개인이 모여 계약을 체결하는 방식이 아닌 디지털화를 통해 빠르고, 안전하게 계약 이행을 보장할 수 있습니다. 스마트 컨트랙트가 호스팅되는 블록체인 네트워크가 중앙 집중식 서버가 아닌 탈중앙화된 블록체인에서 실행되기 때문에 계약 내용을 위변조하거나 뇌물에 의해 계약 조건이 변경되는 일을 방어합니다.
스마트 컨트랙트 역사
스마트 컨트랙트 개념이 최초로 나온건 1994년 입니다. 닉 사보(Nick Szabo)는 스마트 컨트랙트의 정의를 다음과 같이 내리고, 계약에 사용되기 위한 비트 골드를 제안했지만 기술적인 문제로 사용화되지는 못했습니다.
스마트 컨트랙트는 계약 조건을 실행하는 전산화된 트랜잭션 프로토콜이다. 일반적인 계약조건을 만족하면서 악의적이거나 우발적인 예외를 최소화 하며, 신뢰할만한 중개자의 필요성을 최소화하는 것을 목표로 한다.
스마트 컨트랙트가 실제로 도입된건 2009년 비트코인입니다. 비트코인에서 스마트 컨트랙트를 구현할 수 있었던 이유는 1) 디지털로 된 블록체인 기반이며, 2) 위변조를 방지할 수 있었고, 3) TTP(Trusted Thirth Party)가 필요 없었기 때문입니다. 하지만 비트코인의 스마트 컨트랙트의 경우 Opcode를 사용한 화폐 거래에 사용되는 제한적인 기능만 담고 있었습니다.
이 후 2015년 이더리움에서 프로그래밍 가능한 스마트 컨트랙트를 출시합니다. 메인 언어인 솔리디티(Solidity)를 이용해 코드를 작성하고 EVM(Ethereum Virtual Machine)을 통해 이더리움 블록체인 네트워크 위에서 코드가 작동되게 됩니다. 독립적인 스마트 컨트랙트들이 동시에 실행되면서 이더리움은 월드 컴퓨터가 됩니다.
스마트 컨트랙트 특징
기존 계약 방식과는 다르게 중개인이 존재하지 않는 상황에서도 조건만 충족되면 계약이 자동으로 이행된다는 점입니다. 개발자라면 누구나 스마트 컨트랙트를 작성해 블록체인 네트워크 위에 호스팅할 수 있고, 검증과 제약 없이 자동화된 계약을 배포할 수 있습니다.
또한 신뢰를 제공하는 기존 중앙집중식 계약과 다르게 코드에 따라 계약이 실행되므로 수수료 절감이 가능합니다. 예를 들어 5억 짜리 아파트를 매매한다고 하면 매수자+매도자 각각 중개인에게 500만원씩 수수료를 냅니다. 양쪽 다하면 1000만원의 수수료가 듭니다. 하지만 스마트 컨트랙트가 도입되면 가스 수수료만 지불하고 신뢰를 보장하는 시스템을 사용할 수 있게 됩니다. 가스비가 아무리 비싸도 부동산 중개인에게 내는 수수료 보단 저렴합니다.
스마트 컨트랙트는 블록체인 네트워크 위에 올라가므로 퍼블릭 블록체인인 이더리움 상의 스마트 컨트랙트들의 거래 내역이 투명하게 공개됩니다. 거래 내역을 private 하게 보관해야 하는 경우에는 private 블록체인 네트워크를 사용합니다.
스마트 컨트랙트 작동 방식
일단 코드가 블록체인에 호스팅되면 미리 결정된 조건에 따라 실행되고, 이런 실행들은 트랜잭션에 기록됩니다. 완료된 트랜잭션들은 모여 블록에 담겨 블록체인에 올라가게 됩니다. 즉, 스마트 컨트랙트로 한번 실행된 거래는 블록체인에 기록되므로 되돌릴 수가 없습니다.
조금 유식한 말로 스마트 컨트랙트는 확률적인 상태(Probabilistic State)가 아닌 조건에 따라 결과가 정해져 있으므로 결정론적 상태(Deterministic State)를 가진다고 할 수 있습니다.
스마트 컨트랙트 장점
① 보안
스마트 컨트랙트가 조건값에 따라서 실행되면 결과값들은 트랜잭션에 기록되고 블록에 담기는 과정을 통해 블록체인에 올라갑니다. 즉, 결정론적인 결과값을 가지게 되면서 계약과정에서 뇌물을 통해 계약 내용이 변경되거나 계약과는 다른 결과를 낼 위험이 줄어듭니다. 또한 한번 완성된 결과값을 위변조하기도 어렵습니다.
② 신뢰
한번 실행된 계약은 블록체인에 올라가면서 여러 노드들에 의해 검증을 받습니다. 정상적인 결과라면 블록체인에 기록되고 위변조가 힘들어집니다. 또한 계약 당사자간 마주할 필요없이 계약 조건이 이행되었는지만 확인하므로, 제 3의 신뢰 제공자(TTP)가 필요없습니다.
③ 공평
블록체인 네트워크에서 작동되는 만큼 계약 조건이 공개되고, 결과에 대한 책임과 의무를 강제하게 됩니다. 모두가 결과를 알고 있으니까요. 수수료를 받는 제 3의 신뢰 제공자 없이도 합리적인 계약이 가능합니다.
④ 효율
코드에 의해 계약이 실행되므로 계약 당사자들은 수동으로 추가적인 데이터를 입력하거나 제3의 신뢰 제공자가 정상적으로 계약을 진행하는지 감시할 필요도가 줄어들어 효율성을 올릴 수 있습니다.
스마트 컨트랙트 단점
① 계약 내용 변경 불가
장점이자 단점인 부분입니다. 한번 배포한 스마트 컨트랙트는 코드 수정이 불가능합니다. 만약 보안상 허점이 발견되는 경우 새로운 계약을 배포해야 합니다.
② 외부 정보 취득 불가
스마트 컨트랙트는 블록체인 내부의 정보만을 가지고 작동됩니다. 즉 외부로 부터 들어오는 데이터를 스스로 취득할 수 없습니다. 따라서 외부로 부터 데이터를 가져오는 과정에서 위변조된 데이터가 입력되거나, 악성 코드가 입력되는 경우 오라클 문제가 발생할 수 있습니다.
'Blockchain' 카테고리의 다른 글
[Blockchain] 이더리움이란? (1) | 2022.07.07 |
---|---|
[Blockchain] 비트코인 UTXO 뜻 원리 (0) | 2022.07.07 |
[Blockchain] 이더리움 머클 패트리시아 트리(MPT)란? (0) | 2022.07.06 |
[Blockchain] 이더리움 Geth 사용 방법 2 (이더 송금하기) (0) | 2022.07.05 |
[Blockchain] 이더리움 Geth 사용 방법 (0) | 2022.07.05 |
댓글