用途:EZKL 用于零知识机器学习(zkML),把任意 ONNX 格式模型转换为 ZK-SNARK 电路,从而在不暴露私有数据的前提下,用密码学方式证明模型在特定输入上正确运行。适用于模型转 ZK 电路、生成与验证推理证明、部署链上验证器,以及通过 @ezkljs/engine 或 ezkl 集成到 Node.js、Bun、浏览器和 EVM 链应用中。
主要能力:核心流程共 9 步——导出 ONNX 模型、生成 settings.json、可选校准、编译电路(network.ezkl)、获取 SRS(kzg.srs)、setup 生成 pk.key/vk.key、生成 witness.json、prove 生成 proof.json、verify 返回布尔值。验证只需 proof.json、vk.key、settings.json、kzg.srs,无需模型权重或私有输入。settings 控制可见性(public/private/fixed/hashed/polycommit)、量化尺度、电路规模(logrows)与承诺方案(KZG 或 IPA)。支持 EVM 链上验证,可生成 Solidity 验证合约并部署。
使用方式:安装命令为 bun add @ezkljs/engine、pip install ezkl,或 curl https://raw.githubusercontent.com/zkonduit/ezkl/main/install_ezkl_cli.sh | bash。JS SDK 分 nodejs 与 web 两个构建目标,浏览器需 SharedArrayBuffer 及 COOP/COEP 响应头。CLI 提供 gen-settings、calibrate-settings、compile-circuit、get-srs、setup、gen-witness、prove、verify、mock、table 等命令。输入格式为 {"input_data": [[1.0, 2.0, 3.0, 4.0]]},模型须为 ONNX。
限制:浮点到定点量化会带来与标准推理的细微输出差异;ReLU、sigmoid、GELU 等非线性算子显著增大 logrows 与证明时间;大模型证明可能需 30GB 以上内存;核心编译器虽经 Trail of Bits 审查,但未针对生产安全审计;zkML 不能防止对抗输入、成员推断或数据投毒;非商业免费,超过特定版本的商业使用需许可。GPU 加速可设 ENABLE_ICICLE_GPU=true。