스마트 컨트랙트
용어심층smart contract
스마트 컨트랙트는 계약의 조건과 실행 결과를 코드로 작성해 블록체인에 배포한 프로그램으로, 조건이 충족되면 중개자 없이 계약이 자동으로 이행된다. 오늘날 탈중앙화 금융을 비롯한 대부분의 블록체인 서비스를 떠받치는 기반 기술이다.
1.개요
스마트 컨트랙트(smart contract)는 계약의 조건과 실행 결과를 코드로 작성해 블록체인에 배포한 프로그램이다. "만약 A가 일어나면 B를 실행한다"와 같은 규칙을 미리 정의해 두면, 조건이 충족되는 순간 중개자 없이 계약이 자동으로 이행된다. 코드와 그 실행 기록이 블록체인의 분산원장에 저장되므로 한번 배포된 계약은 임의로 변경하거나 되돌리기 어렵고, 누구나 그 내용과 실행 결과를 검증할 수 있다.
종이 계약서가 사람의 판단과 법적 강제에 기대어 이행되는 것과 달리, 스마트 컨트랙트는 조건 충족 여부를 코드가 스스로 판정하고 결과를 자동으로 집행한다는 점이 핵심이다. 이 때문에 스마트 컨트랙트는 단순한 자산 이전뿐 아니라 디앱, 즉 블록체인 위에서 돌아가는 애플리케이션의 실행 논리를 담는 그릇으로 쓰인다.
이 문서에서 다루는 '스마트 컨트랙트'는 이더리움으로 대표되는 범용 계약 실행 환경을 중심으로 한 개념이며, 이 백과 안에서 탈중앙화 금융·탈중앙화 거래소·토큰 표준 등 여러 문서가 공통으로 참조하는 기반 개념이기도 하다.
2.개념의 기원과 역사
개념 자체는 1990년대 암호학자 닉 사보(Nick Szabo)가 제안했다. 그는 자동판매기처럼 조건이 충족되면 사람의 개입 없이 약속이 이행되는 장치를 계약의 원형으로 보고, 이를 코드로 일반화한 아이디어를 '스마트 컨트랙트'라 불렀다. 다만 당시에는 계약을 실제로 실행하고 그 상태를 위·변조 없이 공유할 수 있는 기반이 없었다.
실제로 널리 쓰이게 된 것은 튜링 완전성을 갖춘 프로그래밍 환경을 제공한 이더리움이 등장한 이후이다. 비트코인이 제한된 형태의 조건부 거래만 지원한 데 비해, 이더리움은 임의의 논리를 담은 프로그램을 메인넷에 배포하고 실행할 수 있게 했다. 이로써 스마트 컨트랙트는 특정 용도에 갇힌 기능이 아니라 다양한 서비스를 얹을 수 있는 범용 실행 계층이 되었다.
초기 역사에서 특히 중요한 사건은 2016년 더 다오(The DAO) 사태다. 대규모 자금을 모은 탈중앙화 자율 조직의 계약 코드에서 취약점이 악용돼 자금이 빠져나갔고, 그 대응을 둘러싼 이견 끝에 하드 포크가 이루어지면서 이더리움과 이더리움클래식으로 체인이 갈라졌다. 이 사건은 "코드는 곧 법"이라는 이상과 현실의 긴장을 드러낸 사례로 자주 인용된다.
3.작동 방식
스마트 컨트랙트는 블록체인 네트워크의 여러 노드에서 동일하게 실행되어 같은 결과를 내며, 그 결과가 합의 알고리즘을 거쳐 장부에 기록된다. 특정 서버 한 곳이 아니라 네트워크 전체가 같은 코드를 돌려 결과를 대조하므로, 한 노드가 조작하거나 멈추더라도 계약의 실행 결과는 유지된다.
계약을 실행하려면 연산량에 비례한 수수료(이더리움의 경우 가스)가 필요하며, 사용자는 자신의 지갑을 통해 계약을 호출하고 전자서명으로 요청을 승인한다. 수수료는 무한 반복 같은 악의적·비효율적 코드가 네트워크 자원을 고갈시키는 것을 막는 장치이기도 하다.
대체로 다음 흐름을 따른다.
- 작성: 솔리디티 같은 언어로 계약 코드를 작성한다.
- 검증: 테스트넷에서 실제와 유사한 환경으로 동작을 확인한다.
- 배포: 컴파일한 코드를 메인넷에 올리면 고유한 주소를 가진 계약이 생성된다.
- 호출·실행: 사용자나 다른 계약이 그 주소를 호출하면 정해진 논리가 실행되고, 상태 변화가 장부에 기록된다.
배포·실행 내역과 계약 코드는 블록 익스플로러에서 조회할 수 있어, 제3자도 계약이 무엇을 어떻게 실행했는지 확인할 수 있다.
4.기술 구조
이더리움 계열에서 스마트 컨트랙트는 이더리움 가상머신(EVM) 위에서 실행된다. 개발자가 솔리디티 등으로 작성한 코드는 EVM이 이해하는 바이트코드로 컴파일되어 배포되고, 네트워크의 모든 노드는 같은 EVM 규칙으로 이 바이트코드를 실행해 동일한 상태에 도달한다. EVM이 사실상의 표준 실행 환경이 되면서, 여러 다른 체인도 EVM 호환을 내세워 같은 계약을 그대로 옮겨 쓸 수 있게 하는 경우가 많다.
연산마다 정해진 양의 가스가 소모되며, 사용자는 가스 가격(단위는 그웨이)을 지정해 수수료를 낸다. 복잡한 계약일수록 더 많은 가스를 소비하므로, 코드의 효율은 곧 사용자의 비용과 직결된다.
계약끼리 서로를 호출해 조립할 수 있다는 점도 중요한 특징이다. 하나의 계약이 다른 계약의 기능을 불러다 쓰는 이런 조합성(composability) 덕분에, 예치·교환·대출 같은 개별 계약을 레고 블록처럼 이어 붙여 복잡한 금융 서비스를 구성할 수 있다. 다만 조합이 깊어질수록 한 계약의 결함이 이를 참조하는 다른 서비스로 번질 위험도 함께 커진다.
5.토큰 표준
스마트 컨트랙트가 널리 쓰이면서, 서로 다른 계약이 같은 방식으로 상호작용할 수 있도록 공통 인터페이스를 정한 표준이 자리 잡았다. 대표적인 것이 이더리움의 토큰 표준이다.
- ERC-20: 대체 가능한 토큰(fungible token)의 표준으로, 전송·잔액 조회·승인 같은 기본 기능을 정의한다. 대부분의 알트코인성 토큰과 스테이블코인이 이 표준을 따른다.
- ERC-721: 각 토큰이 고유한 대체 불가능 토큰(NFT) 표준으로, 하나하나 구별되는 자산을 표현한다.
표준화 덕분에 지갑·거래소·디앱은 개별 토큰의 내부 구현을 몰라도 동일한 방식으로 이를 다룰 수 있다. 이는 스마트 컨트랙트 생태계가 빠르게 확장될 수 있었던 밑바탕이 되었다.
6.보안과 검증
한번 배포된 코드는 원칙적으로 수정할 수 없기 때문에, 배포 전에 테스트넷에서 충분히 검증하는 과정이 중요하다. 코드에 결함이 있으면 이를 악용한 자금 탈취가 발생할 수 있고, 이미 실행된 거래는 되돌리기 어렵기 때문이다. 앞서 언급한 더 다오 사건이 이 위험을 극명하게 보여준 사례다.
이런 특성 때문에 스마트 컨트랙트는 코드 감사(audit)와 보안 검토의 핵심 대상이 된다. 전문 인력이 코드를 검토해 재진입(reentrancy), 권한 관리 오류, 정수 오버플로 같은 전형적 취약점을 찾아내며, 수학적으로 코드가 명세대로 동작함을 증명하는 정형 검증을 적용하기도 한다.
다만 감사를 받았다고 해서 안전이 보장되는 것은 아니다. 여러 계약이 조합된 구조에서는 개별 계약이 모두 정상이어도 그 상호작용에서 예기치 않은 결함이 나타날 수 있고, 계약이 외부 데이터에 의존할 때는 그 데이터원의 신뢰성 문제가 새로운 공격 표면이 된다.
7.오라클과 외부 데이터
스마트 컨트랙트는 블록체인 내부의 상태만 직접 읽을 수 있고, 가격·날씨·경기 결과처럼 체인 밖에서 벌어지는 사실은 스스로 알지 못한다. 이 간극을 메우기 위해 외부 데이터를 계약에 전달하는 장치를 오라클(oracle)이라 부른다.
예를 들어 담보 가치가 일정 밑으로 떨어지면 청산하도록 짠 대출 계약은, 자산의 시세를 알려주는 오라클이 있어야 조건을 판정할 수 있다. 체인링크처럼 여러 출처의 데이터를 모아 계약에 공급하는 서비스가 이 역할을 맡는다.
오라클은 스마트 컨트랙트의 활용 범위를 크게 넓히지만, 동시에 약점이기도 하다. 오라클이 잘못된 값을 전달하면 계약은 그 값을 사실로 받아들여 그대로 실행하므로, 시세 조작을 노린 공격이 오라클을 겨냥하는 경우가 적지 않다.
8.활용 사례
스마트 컨트랙트는 오늘날 다양한 블록체인 서비스의 토대가 된다.
- 탈중앙화 거래소: 이용자가 중개 기관 없이 자산을 교환한다. 별도의 호가창 대신 수식으로 가격을 정하는 자동화 시장조성자(AMM) 방식이 대표적이며, 이 교환 논리 전체가 스마트 컨트랙트로 구현된다.
- 스테이블코인: 가치를 일정하게 유지하도록 설계된 토큰의 발행과 상환을 계약이 규칙에 따라 처리한다.
- 실물자산 토큰화: 부동산이나 채권 같은 실물 자산의 권리를 토큰으로 표현하고 그 이전·분배를 계약으로 관리한다.
- 탈중앙화 금융: 대출, 예치, 자동화된 자산 운용 등을 코드로 구현한 대표적 응용 영역이다. 이용자는 자산을 맡기고 이자를 받거나, 담보를 걸고 대출을 받는 과정을 사람의 승인 없이 계약을 통해 처리한다.
또한 거래를 빠르고 저렴하게 처리하기 위한 레이어 2 솔루션 역시 스마트 컨트랙트를 활용해 메인 체인과 상호작용한다. 레이어 2는 다수의 거래를 밖에서 처리한 뒤 그 결과를 메인 체인의 계약에 정산하는 방식으로, 스마트 컨트랙트가 두 계층을 잇는 신뢰의 기준점 역할을 한다.
이 밖에도 조건부로 자금을 묶어 두었다가 이행 시 풀어 주는 에스크로, 서로 다른 체인의 자산을 조건부로 교환하는 해시 타임락 계약 등도 스마트 컨트랙트의 응용에 속한다.
9.한계와 과제
강력한 기반 기술이지만 스마트 컨트랙트에는 여러 근본적 제약이 있다.
- 불변성의 양면성: 변경할 수 없다는 성질은 신뢰의 원천이지만, 배포 후 발견된 결함을 바로잡기 어렵게 만든다. 이 때문에 업그레이드 가능한 구조를 별도로 설계하기도 하는데, 이는 다시 관리 권한이 집중되는 문제를 낳는다.
- 외부 세계와의 단절: 오라클 없이는 체인 밖 사실을 알 수 없고, 오라클을 쓰면 그만큼 신뢰해야 할 대상이 늘어난다.
- 비용과 확장성: 연산마다 수수료가 들고 네트워크가 혼잡하면 비용이 크게 오른다. 레이어 2 등은 이를 완화하려는 시도다.
- 법적 지위: 코드로 자동 집행되는 계약이 기존 법 체계에서 어떤 효력을 갖는지, 분쟁이 생겼을 때 어떻게 다룰지는 나라마다 정리가 진행 중인 과제다.
결국 스마트 컨트랙트의 안전성과 유용성은 코드 자체의 품질뿐 아니라, 그것이 의존하는 데이터·거버넌스·법제도 전반의 성숙에 함께 달려 있다.
10.연표9건
- 1994이정표암호학자 닉 사보가 '스마트 컨트랙트' 개념과 용어를 제안
- 2013이정표비탈릭 부테린이 스마트 컨트랙트 실행 환경을 갖춘 이더리움 구상을 백서로 발표
- 2015설립이더리움 메인넷 가동으로 범용 스마트 컨트랙트 실행이 현실화
- 2016사건더 다오(The DAO) 사건 — 스마트 컨트랙트 코드 취약점을 악용한 대규모 자금 탈취
- 2016이정표사건 대응을 위한 하드 포크로 이더리움과 이더리움클래식이 분리
- 2017이정표토큰 발행 표준 ERC-20이 정식 표준으로 확정
- 2018이정표대체 불가능 토큰(NFT) 표준 ERC-721 확립
- 2020이정표탈중앙화 금융(DeFi) 서비스가 스마트 컨트랙트 기반으로 급속히 확산
- 2022이정표이더리움이 지분증명으로 전환(머지)
스마트 컨트랙트, 어렵지 않아요 코드로 알아서 굴러가는 계약 이야기
1. 스마트 컨트랙트가 뭔가요?
스마트 컨트랙트는 계약의 조건과 그 결과를 코드(컴퓨터가 실행하는 명령)로 적어서 블록체인 위에 올려 둔 프로그램이에요. "만약 A가 일어나면 B를 실행한다" 같은 규칙을 미리 정해 두면, 조건이 딱 맞아떨어지는 순간에 중간에 사람이나 중개자가 끼지 않아도 계약이 저절로 이행돼요.
이 코드와 실행한 기록은 블록체인의 분산원장(여러 컴퓨터가 똑같이 나눠 갖고 있는 장부)에 저장돼요. 그래서 한번 올린 계약은 마음대로 바꾸거나 되돌리기 어렵고, 누구나 그 내용과 실행 결과를 직접 확인해 볼 수 있어요.
종이 계약서는 사람이 판단하고 법이 강제해야 지켜지지만, 스마트 컨트랙트는 조건이 맞는지 코드가 스스로 판정하고 결과까지 자동으로 집행한다는 게 핵심이에요. 그래서 단순히 자산을 넘기는 것뿐 아니라, 디앱(블록체인 위에서 돌아가는 앱)이 어떻게 동작할지를 담는 그릇으로도 쓰여요.
이 문서에서 말하는 스마트 컨트랙트는 이더리움으로 대표되는, 다양한 계약을 두루 실행할 수 있는 환경을 중심으로 한 개념이에요. 이 백과 안에서 탈중앙화 금융·탈중앙화 거래소·토큰 표준 같은 여러 문서가 공통으로 참고하는 바탕 개념이기도 해요.
이렇게 보면 쉬워요 · 조건이 맞으면 사람 없이도 알아서 돈이 나오는 자동판매기처럼요.
2. 이 개념은 어디서 왔나요?
개념 자체는 1990년대에 암호학자 닉 사보(Nick Szabo)가 처음 제안했어요. 그는 자동판매기처럼 조건이 맞으면 사람 손 없이 약속이 지켜지는 장치를 계약의 원형으로 보고, 이걸 코드로 일반화한 아이디어를 '스마트 컨트랙트'라고 불렀어요. 다만 그때는 계약을 실제로 실행하고, 그 상태를 위조나 변조 없이 함께 나눠 볼 수 있는 기반이 아직 없었어요.
실제로 널리 쓰이게 된 건 튜링 완전성(사실상 어떤 계산이든 표현할 수 있는 성질)을 갖춘 프로그래밍 환경을 내놓은 이더리움이 나온 뒤부터예요. 비트코인은 정해진 조건의 거래만 제한적으로 지원했지만, 이더리움은 어떤 논리든 담은 프로그램을 메인넷(실제로 운영되는 블록체인 본체)에 올려서 실행할 수 있게 했어요. 그러면서 스마트 컨트랙트는 한 가지 용도에 갇힌 기능이 아니라, 여러 서비스를 얹을 수 있는 범용 실행 계층이 됐어요.
초기 역사에서 특히 중요한 사건은 2016년의 더 다오(The DAO) 사태예요. 큰돈을 모은 탈중앙화 자율 조직의 계약 코드에 있던 허점이 악용되면서 자금이 빠져나갔고, 이걸 어떻게 대응할지를 두고 의견이 갈렸어요. 결국 하드 포크(블록체인을 갈라서 새 규칙으로 나누는 것)가 이뤄지면서 체인이 이더리움과 이더리움클래식으로 나뉘었어요. 이 사건은 "코드가 곧 법"이라는 이상과 현실 사이의 긴장을 보여준 사례로 자주 언급돼요.
3. 실제로 어떻게 돌아가나요?
스마트 컨트랙트는 블록체인 네트워크에 있는 여러 노드(참여 컴퓨터)에서 똑같이 실행돼 같은 결과를 내요. 그 결과는 합의 알고리즘(여러 컴퓨터가 무엇이 맞는지 서로 맞춰 보는 방법)을 거쳐 장부에 기록돼요. 서버 한 곳이 아니라 네트워크 전체가 같은 코드를 돌려 결과를 대조하기 때문에, 한 노드가 조작하거나 멈춰도 계약의 실행 결과는 그대로 유지돼요.
계약을 실행하려면 계산한 양에 비례하는 수수료가 필요해요. 이더리움에서는 이걸 가스라고 불러요. 사용자는 자기 지갑으로 계약을 불러서 실행하고, 전자서명(본인이 승인했다는 걸 증명하는 디지털 서명)으로 그 요청을 승인해요. 이 수수료는 무한 반복 같은 나쁘거나 비효율적인 코드가 네트워크 자원을 다 써 버리는 걸 막는 장치이기도 해요.
대체로 이런 순서를 따라요.
- 작성: 솔리디티 같은 언어로 계약 코드를 짜요.
- 검증: 테스트넷(실제와 비슷하게 꾸민 연습용 네트워크)에서 잘 도는지 확인해요.
- 배포: 컴파일한(기계가 실행할 수 있게 변환한) 코드를 메인넷에 올리면, 고유한 주소를 가진 계약이 만들어져요.
- 호출·실행: 사용자나 다른 계약이 그 주소를 부르면 정해진 논리가 실행되고, 바뀐 상태가 장부에 기록돼요.
배포하고 실행한 내역, 그리고 계약 코드는 블록 익스플로러(블록체인 내용을 검색해 보는 사이트)에서 조회할 수 있어요. 그래서 제3자도 그 계약이 무엇을 어떻게 실행했는지 확인할 수 있어요.
4. 안은 어떤 구조로 돼 있나요?
이더리움 계열에서 스마트 컨트랙트는 이더리움 가상머신(EVM) 위에서 실행돼요. 개발자가 솔리디티 같은 언어로 짠 코드는 EVM이 알아듣는 바이트코드(기계가 실행하는 형태)로 변환돼 배포되고, 네트워크의 모든 노드가 똑같은 EVM 규칙으로 이 바이트코드를 실행해서 같은 상태에 도달해요. EVM이 사실상 표준 실행 환경이 되면서, 다른 여러 체인도 'EVM 호환'을 내세워 같은 계약을 그대로 옮겨 쓸 수 있게 하는 경우가 많아요.
연산 하나하나마다 정해진 만큼 가스가 소모되고, 사용자는 가스 가격(단위는 그웨이)을 정해서 수수료를 내요. 계약이 복잡할수록 가스를 더 많이 쓰기 때문에, 코드를 얼마나 효율적으로 짰느냐가 곧 사용자의 비용으로 이어져요.
계약끼리 서로를 불러서 조립할 수 있다는 점도 중요한 특징이에요. 한 계약이 다른 계약의 기능을 가져다 쓰는 이런 성질을 조합성(composability)이라고 해요. 이 덕분에 예치·교환·대출 같은 개별 계약을 레고 블록처럼 이어 붙여서 복잡한 금융 서비스를 만들 수 있어요. 다만 조합이 깊어질수록, 한 계약의 결함이 그걸 가져다 쓰는 다른 서비스로 번질 위험도 함께 커져요.
이렇게 보면 쉬워요 · 계약들을 레고 블록처럼 이어 붙여 더 큰 서비스를 조립하는 셈이에요.
5. 토큰 표준은 왜 필요한가요?
스마트 컨트랙트가 널리 쓰이면서, 서로 다른 계약들이 같은 방식으로 주고받을 수 있도록 공통 규격을 정한 표준이 자리를 잡았어요. 대표적인 게 이더리움의 토큰 표준이에요.
- ERC-20: 서로 바꿔 써도 값이 똑같은 토큰(대체 가능한 토큰, fungible token)의 표준이에요. 전송, 잔액 조회, 승인 같은 기본 기능을 정해 둬요. 대부분의 알트코인성 토큰과 스테이블코인이 이 표준을 따라요.
- ERC-721: 토큰 하나하나가 저마다 다른, 서로 바꿀 수 없는 토큰(NFT) 표준이에요. 낱개로 구별되는 자산을 표현할 때 써요.
이렇게 표준이 정해져 있으면, 지갑·거래소·디앱은 각 토큰의 속사정을 몰라도 똑같은 방식으로 다룰 수 있어요. 이 점이 스마트 컨트랙트 생태계가 빠르게 커질 수 있었던 밑바탕이 됐어요.
6. 안전하게 만들려면 뭘 해야 하나요?
한번 배포한 코드는 원칙적으로 고칠 수 없어요. 그래서 올리기 전에 테스트넷에서 충분히 검증하는 과정이 중요해요. 코드에 결함이 있으면 그걸 노린 자금 탈취가 일어날 수 있고, 이미 실행된 거래는 되돌리기 어렵기 때문이에요. 앞에서 말한 더 다오 사건이 이 위험을 아주 뚜렷하게 보여준 사례예요.
이런 특성 때문에 스마트 컨트랙트는 코드 감사(audit, 전문가가 코드를 꼼꼼히 살펴보는 검토)와 보안 검토의 핵심 대상이 돼요. 전문가들이 코드를 검토해서 재진입(reentrancy, 실행 도중에 계약을 다시 불러들여 악용하는 것), 권한 관리 실수, 정수 오버플로(숫자가 담을 수 있는 범위를 넘겨 잘못된 값이 되는 것) 같은 전형적인 취약점을 찾아내요. 코드가 정해진 명세대로 동작한다는 걸 수학적으로 증명하는 정형 검증을 적용하기도 해요.
다만 감사를 받았다고 해서 안전이 보장되는 건 아니에요. 여러 계약이 조합된 구조에서는 계약 하나하나가 다 멀쩡해도 서로 맞물리는 지점에서 예상 못 한 결함이 나타날 수 있어요. 또 계약이 외부 데이터에 의존할 때는, 그 데이터를 주는 쪽이 믿을 만한지가 새로운 공격 지점이 돼요.
7. 체인 밖 정보는 어떻게 가져오나요?
스마트 컨트랙트는 블록체인 안의 상태만 직접 읽을 수 있어요. 가격, 날씨, 경기 결과처럼 체인 밖에서 벌어지는 일은 스스로 알지 못해요. 이 빈틈을 메우려고 외부 데이터를 계약에 전달해 주는 장치를 오라클(oracle)이라고 불러요.
예를 들어 담보 가치가 일정 밑으로 떨어지면 청산하도록 짠 대출 계약은, 자산의 시세를 알려주는 오라클이 있어야 그 조건이 충족됐는지 판정할 수 있어요. 체인링크처럼 여러 출처의 데이터를 모아 계약에 공급하는 서비스가 바로 이 역할을 맡아요.
오라클은 스마트 컨트랙트가 할 수 있는 일을 크게 넓혀 주지만, 동시에 약점이기도 해요. 오라클이 잘못된 값을 전달하면 계약은 그걸 사실로 받아들여 그대로 실행해 버려요. 그래서 시세를 조작하려는 공격이 오라클을 노리는 경우가 적지 않아요.
이렇게 보면 쉬워요 · 계약은 눈이 없어서, 오라클이 바깥세상을 대신 읽어 전해 주는 정보원이에요.
8. 어디에 쓰이고 있나요?
스마트 컨트랙트는 오늘날 여러 블록체인 서비스의 토대가 되고 있어요.
- 탈중앙화 거래소: 이용자가 중개 기관 없이 자산을 서로 바꿔요. 사고파는 주문을 모아 놓는 호가창 대신, 수식으로 가격을 정하는 자동화 시장조성자(AMM) 방식이 대표적이에요. 이 교환 논리 전체가 스마트 컨트랙트로 구현돼요.
- 스테이블코인: 값을 일정하게 유지하도록 설계한 토큰이에요. 이걸 새로 발행하고 되돌려 받는 과정을 계약이 정해진 규칙대로 처리해요.
- 실물자산 토큰화: 부동산이나 채권 같은 실물 자산에 대한 권리를 토큰으로 표현하고, 그걸 넘기거나 나누는 걸 계약으로 관리해요.
- 탈중앙화 금융: 대출, 예치, 자동으로 자산을 굴리는 것 등을 코드로 구현한 대표적인 응용 분야예요. 이용자는 자산을 맡기고 이자를 받거나, 담보를 걸고 대출을 받는 과정을 사람의 승인 없이 계약을 통해 처리해요.
또 거래를 더 빠르고 싸게 처리하려는 레이어 2 솔루션도 스마트 컨트랙트를 활용해 메인 체인과 주고받아요. 레이어 2는 여러 거래를 바깥에서 처리한 뒤 그 결과만 메인 체인의 계약에 정산하는 방식이에요. 이때 스마트 컨트랙트가 두 계층을 잇는 신뢰의 기준점 역할을 해요.
이 밖에도 조건이 이뤄질 때까지 자금을 묶어 뒀다가 풀어 주는 에스크로, 서로 다른 체인의 자산을 조건부로 맞바꾸는 해시 타임락 계약 같은 것도 스마트 컨트랙트의 응용에 속해요.
9. 아직 남은 숙제는 뭔가요?
강력한 기반 기술이지만, 스마트 컨트랙트에는 근본적인 한계도 여러 가지 있어요.
- 불변성의 양면성: 바꿀 수 없다는 성질은 신뢰의 원천이지만, 배포한 뒤에 발견한 결함을 바로잡기 어렵게 만들어요. 그래서 나중에 업그레이드할 수 있는 구조를 따로 설계하기도 하는데, 이건 다시 관리 권한이 한곳에 몰리는 문제를 낳아요.
- 외부 세계와의 단절: 오라클이 없으면 체인 밖 사실을 알 수 없고, 오라클을 쓰면 그만큼 믿어야 할 대상이 늘어나요.
- 비용과 확장성: 연산마다 수수료가 들고, 네트워크가 혼잡하면 비용이 크게 올라요. 레이어 2 같은 방식이 이걸 덜어 보려는 시도예요.
- 법적 지위: 코드로 자동 집행되는 계약이 기존 법 체계에서 어떤 효력을 갖는지, 분쟁이 생기면 어떻게 다룰지는 나라마다 아직 정리 중인 과제예요.
결국 스마트 컨트랙트가 얼마나 안전하고 쓸모 있느냐는 코드 자체의 품질뿐 아니라, 그것이 기대고 있는 데이터·거버넌스(운영과 의사결정 방식)·법제도 전반이 얼마나 성숙하느냐에 함께 달려 있어요.
토큰포스트 위키, “스마트 컨트랙트”, 2026-07-30 수정, https://wiki.tokenpost.kr/w/smart-contractsAccept: text/markdown 로 요청해도 같은 결과문단 9개 · 연표 9건 · 각주 0개