Cardano 提议为零知识应用引入原生 Poseidon 支持

CIP-0199 提议将 Poseidon 置换添加为原生 Plutus 函数,为结合智能合约与零知识证明的应用提供更高效的基础。该提案正处于正式审查阶段,尚未在主网可用。

By SongMarketCap

Updated:

Cardano News - Cardano 提议为零知识应用引入原生 Poseidon 支持

Cardano 改进提案 0199 为零知识应用引入了一项新的 Plutus 加密原语。CIP 编辑在经过初步技术评审后,于 9 月 15 日确认其为候选项。由于该提案尚未合并或激活,常规 ADA 交易不受影响。

CIP-0199 引入新的 Plutus 原语

该提案将新增一个名为 bls12_381_poseidonPermutation 的 Plutus 内置函数。智能合约可以通过 Cardano 的原生 Plutus 实现来执行 Poseidon 置换,而无需在脚本中重复实现该计算。

Poseidon 是为零知识系统设计的一组密码学函数。与诸如 SHA-256 和 Blake2b 等传统哈希不同,它使用与许多 ZK 电路中相同类型的有限域算术。

传统哈希在常规处理器上效率较高,但在零知识电路内需要显著更多的约束。原生 Poseidon 函数可以在数据于证明中被处理并随后由 Cardano 智能合约验证时,缩小这一计算差距。

CIP-0199 由 Gamze Orhon Kilic 和 Thomas Vellekoop 撰写。其拉取请求仍处于开放状态,Plutus 团队正在讨论实现细节。

Poseidon 将 Cardano 与现有 ZK 工具链连接起来

零知识应用常使用 Merkle 树来证明某条信息属于更大的数据集,而无需披露完整数据集。可以将根存储在链上,并在需要时验证单个成员资格证明。

根据 CIP-0199,传统哈希函数一次求值可能需要数以万计的电路约束。Poseidon 因依赖原生的域加法与乘法,能够以数百个约束完成可比的工作。

初始注册表将包含两个 Poseidon 变体。其一基于 midnight-zk,即 Midnight 使用的零知识库。其二遵循基于 BLS12-381 标量域的 Circom 风格 R1CS 生态。

因此,Plutus 脚本可以验证通过两种既有 ZK 开发方式生成的承诺与证明。该提案对底层置换进行标准化,同时允许应用复现各自系统所需的哈希约定。

初步基准测试显示,在用于 Plutus 成本模型的基准机上,一次 Poseidon 置换约需 22 至 24 微秒。一次调用预计消耗当前每笔交易 CPU 预算的大约 0.24%,而深度为 20 的 Merkle 证明约需 4.8%。这些结果来自初步的集成工作,并非来自生产环境的 Cardano 发布。

安全审查界定激活路径

CIP-0199 提议的是 Poseidon 置换,而非完整的哈希函数。ZK 生态在输入排列、内部状态初始化与最终输出选择等方面采用不同的约定。

Plutus 将执行计算密集的置换操作,而各个应用仍需自行实现正确的外围哈希结构。该提案包含测试向量与使用指南,因为不当的框定可能导致不兼容或不安全的构造。

初步实现还依赖于基于 C 的 Poseidon 内核,尚未完成独立审计。仍需进行额外的 Plutus 集成、成本参数定稿、测试向量交叉校验以及外部安全审查。

候选状态并不会自动将该函数加入 Cardano。开发者在主网上使用之前,仍需完成实现、获得技术批准并完成协议激活。

如果被激活,CIP-0199 将为 Plutus 提供一个用于验证基于 Poseidon 的承诺与零知识证明的原生组件。它将扩展围绕 ADA 的 Cardano 开发基础设施,同时为基于 Midnight 与 Circom 的证明系统建立明确的兼容路径。