28. Fabric2.2 + 基于环签名的匿名投票-2

上节课测试Golang版本的环签名算法,本节课设计电子投票场景、开发智能合约以及编写测试客户端。

1. 准备工作,编译CCENV

24.Fabric2.2 集成 gnark零知识证明-2 章节中我们介绍很多算法库要求高版本Golang,第一步需要我们将ccenv进行升级到1.17版本,这里不过多赘述。如果你是根据教程从头开始的,那你的ccenv镜像已经是一个Golang1.17版本的,第一步略过。

2. 电子投票流程

1)客户端生成5只秘钥对,将5只公钥发送给智能合约保存
2)客户端使用1只私钥 + 5只公钥生成环签名,将环签名的结果发送给智能合约
3)智能合约使用5只公钥验签,如果验证通过,则记录投票信息;验证失败,不记录投票信息
4)客户端可查询所有投票结果

3. 开发智能合约

智能合约包括四个功能:
1)upload_voter:上传ProjectName待投票的项目,Public环签名的公钥,Index上传的第几只秘钥,其中Index不是必要内容,该字段的作用是方便范围查询所有的投票人公钥。
2)

猜你喜欢

转载自blog.csdn.net/xjmtxwd24/article/details/124269195