你好,
我正在尝试构建一个全新的区块链(随时欢迎询问原因,我很乐意提供关于我项目的信息),并且正在使用Rust开发第一个节点实现。
这个区块链将能够执行编译为WebAssembly模块的智能合约,并生成其正确执行的zk-SNARK证明。我对zk-SNARKs还比较陌生,但经过大量探索,我相信最佳方案是Halo2,它不需要任何可信设置,并且还支持递归证明,使我能够实现zk-rollups。
我了解到如果使用Halo2,那么:
- EdDSA,
- Pallas/Vesta(又称Pasta)椭圆曲线,
- 以及为Pasta曲线优化的Poseidon哈希函数
都是实际上被强制要求的选择,因为使用任何其他曲线和哈希函数都会导致所有SNARK电路的大小急剧膨胀。
所有这些都是正确的,我将使用诸如halo2_proofs、halo2_gadgets,以及ff和pasta_curves等包。我的第一个问题是:我在哪里可以找到生成EdDSA密钥对的Rust示例?仅使用ff和pasta_curves包是否足以生成密钥对?
提前感谢!



