
스마트 컨트랙트가 뭔가요?
전전글에서 이더리움이 플랫폼이라고 했죠. 그 플랫폼의 심장이 바로 스마트 컨트랙트예요.
비트코인은 돈 보내는 데 특화된 장부였다면, 이더리움은 그 장부에 코드도 올릴 수 있게 만든 기술이에요.
이 글에서는 스마트 컨트랙트가 뭔지, 은행 계약과 뭐가 다른지, 실제로 어떻게 돌아가는지 쉽게 풀어볼게요.
1. 스마트 컨트랙트, 한 줄로 말하면 뭐예요?
한 줄로 정리하면 이거예요.
블록체인 위에 올라가서, 조건이 맞으면 자동으로 실행되는 코드예요.
일상 비유로 생각해보면:
- 일반 계약서: “A가 B한테 100만 원 주면, B는 물건을 준다”라고 쓰여 있고, 누가 지키는지 서로 감시해야 해요.
- 스마트 컨트랙트: “A가 100만 원 보내면 → 자동으로 물건 소유권 B한테 넘어가고 → 계약 종료”라고 코드로 짜놓은 거예요.
차이는 중간자(변호사, 은행, 공증인)가 필요 없고, 조건이 딱 맞으면 무조건 실행된다는 점이에요.
2. 은행 계약 vs 스마트 컨트랙트 비교
실제 예시로 차이를 보죠.
은행 계약 (기존 방식)
textA가 B한테 100만 원 송금 → 은행이 확인 → B 통장에 입금
(중간에 은행 수수료, 처리 시간 1~3일, 주말·공휴일 지연)
스마트 컨트랙트 (블록체인 방식)
textif (A.balance >= 1000000 && A.transfer(B, 1000000)) {
ownership.transfer(B, item);
emit ContractExecuted();
}
- A가 돈 보내면 즉시 실행
- 조건 안 맞으면 실행 안 함 (자동 취소)
- 결과는 블록체인에 영구 기록
중요한 건 코드 자체가 변하지 않고, 누구도 멈추거나 조작할 수 없다는 점이에요.
3. 스마트 컨트랙트가 돌아가는 과정
- 개발자가 스마트 컨트랙트 코드 작성 (Solidity 언어 사용)
- 컴파일해서 블록체인에서 이해할 수 있는 바이트코드로 변환
- 배포(deploy): 이더리움 네트워크에 올리고, 가스비 지불
- 실행: 누군가 컨트랙트 함수 호출 → 조건 체크 → 자동 실행
- 결과 기록: 실행 결과가 블록체인에 영구 저장
가장 중요한 건 4번 실행 단계예요.
누군가 함수를 호출하면 네트워크 전체가 코드를 검증하고, 조건이 맞으면 자동 실행돼요. 중간에 “잠깐, 이건 좀 이상하니 안 할래”라고 멈출 수 없어요.
4. 스마트 컨트랙트가 만드는 실제 서비스들
스마트 컨트랙트 덕분에 이런 서비스들이 가능해졌어요.
DeFi (탈중앙화 금융)
text예치 컨트랙트: "ETH 1개를 넣으면, 1주일 후 1.05 ETH 돌려줌"
대출 컨트랙트: "담보 200% 이상이면, 원하는 만큼 USDC 빌려줌"
스왑 컨트랙트: "ETH 1개 주면, 현재 시세대로 USDT로 바꿔줌"
은행 없이, 24/7, 자동으로 금융 서비스가 돌아가요.
NFT (디지털 소유권)
text민팅 컨트랙트: "이 이미지를 ETH 0.1로 민팅하면, 소유권 블록체인에 기록"
판매 컨트랙트: "구매자가 돈 보내면, 자동으로 소유권 이전 + 로열티 분배"
디지털 아트, 게임 아이템, 티켓 등을 “진짜 소유권”으로 만들어요.
DAO (탈중앙화 자치 조직)
text투표 컨트랙트: "토큰 보유자 비례 투표 → 찬성 과반시 자금 집행"
중앙 리더 없이, 토큰 보유자들이 직접 결정하는 조직이에요.
5. 스마트 컨트랙트의 장점과 한계
장점
- 중개자 없음: 은행, 변호사, 공증인 없이 자동 실행
- 24/7 가동: 주말, 공휴일 관계없이 항상 작동
- 투명성: 코드 공개되어 누구나 검증 가능
- 변경 불가: 배포 후에는 코드 수정 불가능 (버그 수정도 어려움)
한계 (현실적으로 알아야 할 점)
- 버그 리스크: 코드에 버그 있으면 돈 날아감 (과거 사례 다수)
- 가스비: 실행할 때마다 수수료 발생
- 법적 효력: 아직 대부분 국가에서 법적 구속력 없음
- 복잡성: 초보자가 직접 코딩하기 어려움
그래서 스마트 컨트랙트는 “완벽한 기술”이 아니라, “특정 조건에서 매우 강력한 도구”예요.
6. 스마트 컨트랙트 처음 접할 때 해볼 만한 것들
개념만 알았다면, 직접 경험해보는 게 좋아요.
- Etherscan에서 실제 컨트랙트 코드 확인해보기
- 유니스왑, 오픈씨 같은 유명 컨트랙트 주소 검색
- 코드 일부 읽어보면서 “아, 이런 식으로 작동하는구나” 이해
- 테스트넷에서 간단한 컨트랙트 배포 연습
- Sepolia 테스트넷에서 무료 테스트 ETH 받아서 실습
- 기존 서비스부터 써보기
- 메타마스크 연결해서 유니스왑에서 스왑 한 번 해보기
- OpenSea에서 NFT 목록만 봐도 컨트랙트 구조 감 잡힘
오늘은 여기까지 알아보고 다음에 봐요!