同样一笔智能合约交易,在以太坊上你可能遇到”预估 10 万 gas、实付 14 万”的意外,在 Cardano 上这种差额理论上不该出现:交易提交前,脚本要消耗的内存与计算步数已经被离线模拟出来,按官方费率换算成确定的金额。这个”确定性费用”的承诺靠两层结构兑现:一笔按体积的线性费,加一笔按 ExUnits 的执行费。本文按官方文档与协议参数记录拆解这套成本模型。
第一层:按字节收费的线性公式
Cardano 的基础交易费不靠拍卖也不随拥堵浮动,而是一个线性公式:单价系数乘以交易序列化体积,再加一个固定底数。官方开发者门户页面上给出的当前参数是每字节 44 lovelace 与固定 155381 lovelace,这两个数字属于可投票调整的协议参数,取值以官方页面当前值为准。公式里没有”别人拥堵所以我变贵”的项:费用只取决于你交易的体积。体积的构成则取决于输入输出数量、脚本大小与元数据,钱包可以通过删减冗余签名、合并输入来压缩它。
第二层:ExUnits 的双维度执行费

交易一旦涉及 Plutus 脚本——从脚本地址花费、按铸造策略发币、验证证书——就要追加执行费。脚本执行被计量为两种执行单元:内存单元度量峰值内存,CPU 步数量化解释器执行的每一步。合约费用等于内存单价乘以内存用量,加上步数单价乘以步数,再加到体积费之上。CIP-28 对 Alonzo 时代的协议参数做过快照记录:每笔交易与每块的内存、步数上限分别有单独的 ExUnits 帽子,脚本失败时没收的抵押品比例也写在参数表里。这些数值此后随参数更新变化,引用时应注明对应时代。
每一步内置函数——哈希、整数运算、签名验证——在成本模型里都有对应的成本项,由常数、斜率与截距组合而成。成本模型的意义在于把”解释器干一件事大约花多少”提前写死,杜绝执行现场自由裁量。
为什么模拟出来的费用就是实付的费用
Cardano 官方文档反复强调其设计目标是确定性:离线评估与链上执行使用同一套成本模型,本地模拟得到的 ExUnits 换算后就是链上会收的准确金额,不存在”脚本跑着跑着更贵了”。交易构建流程因此天然分成两个阶段:先离线用节点评估脚本、得到内存与步数消耗、填进交易;链上执行时逐条核对是否越过申报的额度,越线即失败。为了防止脚本失败白耗资源,脚本交易还要求附加一笔 ADA 抵押品,只有脚本校验失败才会被没收。
这和以太坊的 gas 模型形成清晰对照:以太坊用 gas 上限加费用市场,鼓励在额度内尽快完成;Cardano 用申报加对账,把定价权前移到构建期。代价也对称:Cardano 的构建工具链必须多做一次模拟请求,钱包要处理”模拟失败但原因不明”的排障场景;而申报额度设置过小时,交易不是变贵而是直接被拒绝。
普通用户核对什么
第一,看到 Cardano 交易的高费用时先查体积而不是”网络拥堵”:多数溢价来自输入碎片堆积,钱包的 UTXO 整理功能通常比任何拥堵猜测更对症。第二,脚本交易的抵押品条款值得看一眼:正常成功时抵押原路返回,只有脚本阶段失败才没收,抵押比例由协议参数决定。第三,官方文档提到超大脚本还会触发阶梯式的额外字节费,部署或引用巨型参考脚本前先确认这笔附加账。
边界提醒:文中参数是官方页面在撰写时的当前值或历史时代快照,均可能随治理更新;涉及资产操作的一切费用讨论不构成任何投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。