스마트 컨트랙트란?
Chapter 1 후반에 잠깐 나왔던 스마트 컨트랙트(smart contract)는 블록체인 위에 올려둔 작은 프로그램입니다. 한 번 올라가면 코드에 적힌 규칙대로만 동작하고, 그 결과는 전 세계가 똑같이 검증합니다. 바로 이 점이 기존 소프트웨어와 다릅니다.
자판기와 같은 원리
자판기를 떠올리면 이해가 빠릅니다.
- 정해진 금액을 넣고 (조건)
- 버튼을 누르면 (실행 요청)
- 정확히 그 음료가 나옵니다 (결과)
점원이 기분 따라 다른 걸 주거나 돈만 받고 끝낼 수 없습니다. 규칙이 기계에 박혀 있기 때문입니다. 스마트 컨트랙트도 마찬가지입니다. "이 조건이면 이렇게 한다"는 규칙을 코드로 적어 블록체인에 올리면, 누구도 임의로 바꾸거나 멈출 수 없이 규칙대로 실행됩니다.
사람 대신 코드에 맡기는 신뢰
전통적인 계약은 사람과 기관(은행, 법원 등)을 믿어야 집행됩니다. 반면 스마트 컨트랙트는 신뢰를 사람이 아니라 코드와 네트워크에 맡깁니다. 예를 들어 "송금액이 들어오면 자동으로 디지털 입장권을 발급한다" 같은 규칙을 코드로 적어두면, 발급을 미루거나 거절할 중개인 자체가 없습니다.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
// 가장 단순한 형태의 스마트 컨트랙트
contract VendingMachine {
string public product = "Cola";
}위 코드처럼 contract 한 덩어리가 곧 하나의 스마트 컨트랙트입니다. 아직 문법은 몰라도 됩니다. "규칙을 코드로 적어 올린다"는 그림만 잡으면 충분합니다.
다만 코드는 적힌 그대로 실행될 뿐, 의도를 알아서 채워주지는 않습니다. 그래서 규칙을 정확히 쓰는 일이 중요합니다.
스마트 컨트랙트는 중간에서 믿어야 했던 사람을 코드로 대체합니다. 코드가 곧 계약이고, 블록체인이 그 계약을 공정하게 집행합니다.