Cardano Plutus Proposal Targets Lower Script Execution Overhead
CIP-0194 proposes a new Match operation for Untyped Plutus Core that could reduce the overhead of reading complex script data. A second proposal, CIP-0195, defines the Data encoding model for the upcoming Plutus V4 ledger API.
By SongMarketCap
Cardano’s Plutus development pipeline has added two proposals focused on how smart contracts process ledger data. CIP-0194 introduces builtin pattern matching for UPLC, while CIP-0195 specifies how Plutus V4 types such as ScriptContext and TxInfo should be encoded as Data. Both remain under review.
CIP-0194 already has a working implementation prototype, with early local benchmarks showing substantially lower CEK execution time for several data-access patterns. The measurements are not calibrated on-chain execution units, and production cost parameters have not yet been finalized.
CIP-0194 Adds Pattern Matching to Plutus Core
Cardano smart contracts frequently inspect structured Data, including transaction information inside ScriptContext. Existing UPLC programs can deconstruct these structures through functions such as unConstrData, chooseData and list operations, with each step adding work inside the CEK evaluator.
CIP-0194 proposes a new Match operation that can inspect nested values directly and capture only the fields required by a script. It covers integers, byte strings, lists, pairs and structured Data, while the existing Case mechanism remains available for simpler operations.
The change is aimed primarily at validators that repeatedly inspect transaction context, including more complex DeFi, trading and lending logic.
A working prototype already exists in the Plutus codebase. Production use would still require conformance testing, calibrated cost parameters, ledger support and a Cardano node release.
Early Benchmarks Show Lower CEK Execution Time
The CIP includes local benchmarks comparing Match with existing methods for deconstructing Data.
When retrieving a single deeply nested value, measured CEK execution was between 6.38 and 13.74 times faster in the tested scenarios. A test involving 64 nested Data layers recorded 2.297 microseconds with Match, compared with 31.068 microseconds using the existing approach.
The performance gap narrows when scripts capture multiple values, with tested improvements ranging from approximately 1.67 to 6.10 times depending on the structure and baseline method.
These figures measure local CEK wall-clock performance rather than final Cardano execution units. The cost model remains uncalibrated. Preliminary CPU and memory budgets in the proposal improved by 10% to 90% across different workloads, with typical script-context scenarios showing roughly 40% to 60% improvement under the initial parameters.
The proposal assigns Match to Plutus Core language version 1.2.0, which would require ledger support and activation through Cardano’s hard fork process before scripts could use it on mainnet.
CIP-0195 Defines the Plutus V4 Data Model
CIP-0195 addresses the other side of the Plutus stack by specifying how Plutus V4 ledger API types should be represented as Data.
The proposal covers the V4 ScriptContext and related structures, including an expanded TxInfo. It replaces the more informal approach used in earlier Plutus versions, where developers and alternative tooling often had to derive encoding behavior from implementation code rather than a dedicated specification.
The proposed V4 design continues using lists for datatype encoding. CIP-0195 argues that newer UPLC operations make list access efficient while avoiding the additional constructors and ledger integration required by a broader array-based model.
CIP-0194 and CIP-0195 can progress independently, but together they address how the next Plutus generation structures and accesses ledger data. If adopted, CIP-0195 would standardize how Plutus V4 exposes that data, while CIP-0194 would give validators a lower-overhead way to inspect it. Both still require specification approval, calibrated cost models and ledger integration before reaching Cardano mainnet.