스마트 컨트랙트 (Smart contract)
한눈에 보기 스마트 컨트랙트는 블록체인에 저장된 프로그램으로, 호출되면 작성된 그대로 실행되며 중개자 없이 자금을 보관하고 규칙을 집행합니다.
스마트 컨트랙트는 블록체인 주소에 배포된 코드입니다. 일단 배포되면 누구나 트랜잭션을 보내 호출할 수 있고, 모든 노드가 같은 코드를 실행해 결과에 합의합니다. 토큰, DEX 풀, 렌딩 마켓, NFT 컬렉션, 브리지는 모두 스마트 컨트랙트로 만들어집니다.
구조상 컨트랙트에는 함수와 잔고 목록 같은 저장된 상태(state)가 있습니다. 상태를 바꾸는 함수를 호출하면 가스비가 드는데, 이는 검증자가 이를 실행하고 기록하는 대가입니다. 이더리움, BNB 체인, 베이스 같은 EVM 체인에서는 보통 Solidity로 컨트랙트를 작성해 바이트코드로 컴파일합니다. 솔라나는 컨트랙트를 프로그램이라고 부르며, 토큰마다 컨트랙트가 따로 있는 것이 아니라 공용 토큰 프로그램이 관리하는 별도 계정에 토큰 잔고가 저장됩니다.
토큰을 사는 입장에서는 컨트랙트가 진짜 규칙서입니다. 웹사이트나 채팅방에서 뭐라고 하든, 오너가 신규 물량을 발행(mint)할 수 있는지, 매도에 세금을 매길 수 있는지, 거래를 중지시킬 수 있는지, 지갑을 블랙리스트에 올릴 수 있는지는 코드가 결정합니다. 컨트랙트로 보낸 트랜잭션은 되돌릴 수 없으므로, 버그나 악의적인 규칙은 그 토큰을 가진 모든 사람에게 한꺼번에 피해를 줍니다.
매수하기 전에 블록 익스플로러에서 소스 코드가 검증(verified)되어 있는지 확인하세요. 바이트코드를 그냥 믿지 말고 코드가 무슨 일을 하는지 직접 읽을 수 있어야 합니다. 오너만 호출할 수 있는 함수가 있는지, 오너십이 포기(renounce)되었는지 아니면 멀티시그로 넘어갔는지 살펴보세요. 프록시 컨트랙트도 주의해야 하는데, 업그레이드가 가능한 컨트랙트는 나중에 전혀 다른 코드로 바뀔 수 있기 때문입니다. 감사(audit)는 도움이 되지만, 검토 당시에 검토한 코드만 다룬다는 한계가 있습니다.




