플루투스(Plutus) 스마트 컨트랙트의 온체인 검증 스크립트와 데이터 모델
📌 [기록 기준 및 기술 면책 안내]
이더리움의 EVM이 전역 상태(Global Mutable State)를 변경하는 명령형(Imperative) 가상머신 모델인 것과 대조적으로, 카르다노의 플루투스(Plutus)는 순수 함수형 언어인 하스켈(Haskell)의 수학적 람다 대수(Lambda Calculus)에 기초한 결정론적 eUTxO 스크립트 엔진입니다. 본 고에서는 Plutus Core V3의 검증 모델, 3대 핵심 인자(Datum, Redeemer, ScriptContext)의 데이터 구조, 그리고 트랜잭션 연산 예산(ExUnits: Execution Units) 계산 원리를 상세히 분석합니다.
1. Plutus 스크립트 검증 함수의 3대 핵심 인자 구조
카르다노에서 스마트 컨트랙트는 상태를 직접 ‘쓰기(Write)’하지 않고, 잠겨 있는 UTxO를 소비(Spend)할 수 있는지를 판정하는 불리언(Boolean) 검증자 함수(Validator Function)로 동작합니다.
| 인자 명칭 | 하스켈 타입 표현 | 기능 및 온체인 역할 |
|---|---|---|
| Datum | BuiltinData | UTxO 출력값에 고정 부착되는 계약의 상태 데이터 (예: 만기 블록 높이, 소유자 공개키 해시) |
| Redeemer | BuiltinData | UTxO를 소비하려는 트랜잭션 서명자가 제공하는 입력 매개변수 (예: 암호 해답, 청구 명령) |
| ScriptContext | ScriptContext (TxInfo + Purpose) | 트랜잭션 전체의 입출력, 서명자 목록, 유효 시간 범위(Valid Range) 등 전체 원장 문맥 |
2. 2단계 검증(Phase-2 Validation)과 결정론적 가스비 보호
플루투스의 가장 독보적인 아키텍처적 장점은 트랜잭션의 실행 성공 여부와 수수료가 로컬 노드에서 사전에 100% 확정된다는 점입니다. 1단계(Phase-1)에서 서명과 UTxO 존재 여부를 확인하고, 2단계(Phase-2)에서 스크립트를 평가합니다. 스크립트 실행이 실패하더라도 채굴자에게 가스비만 빼앗기고 트랜잭션이 취소되는 이더리움과 달리, 유효하지 않은 트랜잭션은 애초에 네트워크 멤풀(Mempool)에 전파되지 않아 수수료 낭비가 원천 방지됩니다.
※ 기술 면책 및 서술 기준
📚 연관 카르다노 코어 기술 연구 아카이브 (Related Research Notes)
대한민국 대표 베어메탈 스테이크 풀, JOY & HOPE에 위임하세요
24시간 무중단 베어메탈 서버 4대 운용, 블록 누락율 0%, 0% 고정 마진 수수료 및 미드나잇(Midnight) 프라이버시 파트너체인 완벽 대응. 안전한 비수탁 스테이킹으로 에포크 보상을 극대화하세요.