零知识证明
用零知识证明实现隐私交易示例
Warning:当前代码仅为原型验证系统,请勿用于生产环境。
示例中使用的环境如下:
- Rust:
rustc 1.34.1 (fc50f328b 2019-04-24) - CITA:develop commit 为
87e11818081a9d2a883341bebf2aeb95c59c15fd - zktx:master commit 为
03fcc4b02432f42e53563deccdaaa767fd7a0ad6 - zktx_example:master commit 为
b37ec8fe88fb2d8a48a4651419ed0c536d047c73
准备工作
clonezktx_example 代码cloneCITA 代码
生成参数
使用 zktx_example 生成隐私交易需要的参数文件,命令如下:
cd zktx_example && cargo run --release --bin gen_params
生成 PARAMS 的文件夹。
运行 CITA 链
CITA 开启隐私交易功能
详细信息可查看 zk_privacy 文档,如下操作:
修改 cita-executor/Cargo.toml。 在 [features] 下面 default 列表中增加 privatetx 。
编译 CITA
详细信息可查看 编译 CITA 文档,如下操作:
./env.sh make
生成 CITA 配置
本实例运行一个节点,更多信息查看配置。
进入
target/install拷贝
PARAMS到resourcecp ../../../zktx_example/PARAMS resource -r生成配置信息
bin/cita create --super_admin "0x4b5ae4567ad5d9fb92bc9afd6a657e6fa13a2523" --nodes "127.0.0.1:4000" --resource_dir resource
运行 CITA
详细信息查看运行 CITA
初始化
bin/cita setup test-chain/0启动
bin/cita start test-chain/0
运行 zktx_example 的测试
cd ../../zktx_example && cargo run --release --bin client