5 个版本
0.1.5 | 2023 年 12 月 20 日 |
---|---|
0.1.3 | 2023 年 11 月 10 日 |
0.1.2 | 2023 年 11 月 10 日 |
0.1.1 | 2023 年 11 月 10 日 |
0.1.0 | 2023 年 11 月 10 日 |
#2495 in 神奇豆
2MB
1K SLoC
STARK-EVM 适配器
stark-evm-adapter 是一个库,提供了解析和操作 STARK stone 证明输出的工具集。具体来说,该库可以用来生成“分割证明”,这对于在以太坊上验证证明是必要的。
[dependencies]
stark-evm-adapter = "0.1.3"
示例
use stark_evm_adapter::annotated_proof::AnnotatedProof;
use stark_evm_adapter::annotation_parser::split_fri_merkle_statements;
// read an annotated proof
let file = std::fs::File::open("tests/fixtures/annotated_proof.json").unwrap();
let reader = std::io::BufReader::new(file);
let annotated_proof: AnnotatedProof = serde_json::from_reader(reader).unwrap();
// split the proof
let split_proofs = split_fri_merkle_statements(annotated_proof).unwrap();
println!("{}", serde_json::to_string_pretty(&split_proofs).unwrap());
// For how to submit the split proofs to the L1 EVM verifier, please refer to the demo: https://github.com/zksecurity/stark-evm-adapter/blob/8af44a0aa61c89e36a08261320f234709e99ed71/examples/verify_stone_proof.rs#L18
请注意,使用此 CLI 工具可以生成注释证明文件 annotated_proof.json
。
CLI
安装
cargo install stark_evm_adapter
用法
stark_evm_adapter --help
根据 stone-prover 的输出生成注释证明
stark_evm_adapter gen-annotated-proof \
--stone-proof-file tests/fixtures/stone_proof.json \
--stone-annotation-file tests/fixtures/stone_proof_annotation.txt \
--stone-extra-annotation-file tests/fixtures/stone_proof_annotation_extra.txt \
--output annotated_proof.json
注释证明来源于 stone-prover 的 3 个文件输出。
一旦你有了这个注释证明,你可以用它来生成分割证明,并将其提交到 L1 EVM 验证器。请参阅 示例演示
stone_proof.json 来自 cpu_air_prover 命令,而注释文件来自具有 annotation_file 和 extra_output_file 参数的 cpu_air_verifier 命令。
演示
您可以使用 docker 运行演示。演示将从注释证明生成分割证明,并将其提交到分叉链上的 L1 EVM 验证器。
首先,构建 docker 镜像
docker build -t stark-evm-adapter .
然后,运行演示脚本
docker run -it -e "MAINNET_RPC=******" stark-evm-adapter
请注意,您需要设置环境变量 MAINNET_RPC
为以太坊主网的 RPC 端点。例如,您可以使用 Infura 获取 RPC 端点。此演示代码将自动在主网上创建分叉,并将分割证明提交到分叉链上的 L1 EVM 验证器。
依赖项
~28–44MB
~825K SLoC