토픽 5 / 116·블록체인 / 탈중앙화
스마트 컨트랙트 (Smart Contract)
스마트 컨트랙트 (Smart Contract)
블록체인 상에서 사전에 정의된 조건이 충족되면 중개자 없이 자동으로 실행되는 프로그램 코드로, 계약 조항을 코드로 구현하여 불변성과 투명성을 보장하며 이더리움의 EVM에서 주로 실행됨
목적: 자동 계약 실행, 중개자 제거, 신뢰 자동화, 투명성
특징: 자동 실행, 불변성, 투명성, 코드 기반 신뢰, 조건 충족 시 실행
구성요소: 상태 변수, 함수, modifier, 이벤트, Gas
기술요소
- •Solidity(프로그래밍 언어)
- •EVM(Ethereum Virtual Machine)
- •Gas(실행 비용)
- •상태 변수(영구 저장)
- •이벤트(로그)
실행 흐름: 트랜잭션 전송 → EVM(바이트코드 로드, Gas 확인, 조건 검증, 상태 변경, 이벤트) → 영수증 → 블록 기록
주요 요소
- •상태 변수(uint256 balance)
- •함수(transfer, release)
- •modifier(onlyOwner, whenNotPaused)
- •이벤트(Transfer, Approval)
- •Gas(연산 비용)
장점: 자동 실행, 중개자 불필요, 투명성, 저비용(Gas), 위변조 불가
단점: 수정 불가, 버그 위험, Gas 비용, 복잡성, 법적 지위 불명확
적용사례: DeFi(Uniswap), NFT(ERC-721), DAO, 에스크로, 토큰 발행(ERC-20)
보안 고려사항: 재진입 공격(Checks-Effects-Interactions), 정수 오버플로우(SafeMath), 권한 관리(onlyOwner), 보안 감사(CertiK, OpenZeppelin)
예제: Escrow 계약(구매자가 확인 시 판매자에게 자동 송금)
비교: 스마트컨트랙트(자동/코드/불변) vs 전통계약(수동/법률/수정가능)
연관: 이더리움, DeFi, DAO, dApp, EVM, Solidity