오늘 끝나면
스마트 컨트랙트
- ✓스마트 컨트랙트의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 스마트이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
코드가 곧 계약 — 이더리움이 연 것 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
암호 & 보안 · 16
스마트
컨트랙트
코드가 곧 계약이다. 조건이 맞으면 사람 없이 자동으로 실행된다. 이더리움이 연 세계다.
자판기를 떠올린다
자판기에는 직원이 없다. 돈을 넣고 버튼을 누르면 음료가 나온다. 규칙이 기계 안에 박혀 있어서 사람 없이도 알아서 집행된다.
“돈이 가격 이상이면 음료를 준다.” 이 한 줄이 자판기를 굴린다. 감독하는 사람이 없어도 조건만 맞으면 그대로 작동한다.
스마트 컨트랙트는 이 자판기를 블록체인 위에 올린 것이다. 사람 대신 코드가 약속을 지킨다. 그게 전부다.
감독하는 직원 없이 규칙이 알아서 집행한다
조건이 맞으면 자동으로 실행되는 코드
스마트 컨트랙트는 블록체인 위에 올린 작은 프로그램이다. 핵심은 딱 하나, 조건문이다.
if (조건) then (실행) 구조다. 코인이 가격 이상이면 상품을 준다. 미달이면 거절하고 돌려준다. 한 번 정한 규칙이라 변덕이 없다.
사람이 매번 확인하고 도장을 찍는 게 아니다. 조건이 맞는 순간 코드가 스스로 집행한다. 밤이든 명절이든 쉬지 않는다.
투입 코인 >= 가격 ?
상품 지급
거절 · 환불
사람 손이 안 탄다 · 조건이 맞으면 즉시 집행한다
직접 돌려보는 컨트랙트
오른쪽 자판기 컨트랙트를 직접 굴려 본다. 가격은 3코인이다.
코인을 슬라이더로 정하고 [컨트랙트 실행]을 누른다. 그럼 컨트랙트가 직접 판정한다. 3코인 이상이면 음료를 지급하고 잔액을 차감한다. 미달이면 거절하고 환불한다.
내가 판정하는 게 아니다. 코드가 판정한다. 아래 장부에 결과가 쌓인다. 한번 찍힌 기록은 지울 수 없다. 이게 다음 장의 핵심이다.
if (투입 >= 3) {
상품 지급
} else {
거절 · 환불
}코인을 정하고 [컨트랙트 실행]을 눌러 본다. 사람 없이 코드가 판정한다.
장부에 남으면 되돌릴 수 없다
실행 결과는 블록체인 장부에 박힌다. 한번 기록되면 되돌릴 수 없다. 이게 종이 계약과의 결정적 차이다.
종이 계약은 “안 했다”고 우기거나, 몰래 고치거나, 법정까지 가기도 한다. 스마트 컨트랙트는 그게 안 된다. 실행은 자동이고 기록은 영구다.
좋게도 나쁘게도 작동한다. 잘 짠 규칙은 절대 어겨지지 않는다. 하지만 버그가 있어도 되돌릴 수 없다. 그래서 코드를 신중히 짜야 한다.
블록끼리 사슬로 묶인다 · 하나를 고치면 뒤가 다 깨져서 사실상 수정이 불가능하다
중개자 없이 약속이 집행된다
원래 약속을 지키려면 믿을 만한 중간 사람이 필요했다. 은행, 변호사, 에스크로다. 이들이 사라진다.
돈이 들어오면 자동으로 소유권을 넘기는 컨트랙트가 있으면, 중개인이 떼먹거나 늑장 부릴 일이 없다. 코드가 곧 중립 심판이다.
정리하면 셋이다. 자판기처럼 조건이 맞으면 자동으로 실행된다. 블록체인 위라 결과는 되돌릴 수 없다. 그래서 중개자 없이 약속이 그대로 집행된다. 이게 스마트 컨트랙트의 전부다.
Q. 스마트 컨트랙트의 핵심 성질은?
조건이 맞으면 사람 없이 코드대로 자동 실행된다. 그리고 그 결과는 되돌릴 수 없다. 자판기처럼 규칙이 코드로 박혀 자동 집행되고, 블록체인 장부에 영구히 남아 되돌릴 수 없다. 그래서 중개자 없이 약속이 그대로 지켜진다.수수료 · 늑장 · 떼먹기 위험이 따른다
컨트랙트
중립 심판으로 약속을 그대로 집행한다