2. 河南科技大学 数学与统计学院, 河南 洛阳 471023;
3. 国网三门峡供电公司, 河南 三门峡 472000;
4. 中国科学院 信息工程研究所, 北京 100190
2. School of Mathematics and Statistics, Henan University of Science and Technology, Luoyang, Henan 471023, China;
3. State Grid Sanmenxia Power Supply Company, Sanmenxia, Henan 472000, China;
4. Institute of Information Engineering, Chinese Academy of Sciences, Beijing 100190, China
开放科学(资源服务)标志码(OSID):
区块链技术[1]具有去中心化[2]、公开透明、可追溯[3]等诸多优点,无需任何可信中心即可在陌生网络节点间搭建可信的价值传递渠道,可广泛应用于医疗、物联网等各个领域[4]。区块链2.0以以太坊为代表实现了更复杂的分布式合约记录——智能合约[5],虽然智能合约的概念早在1994年就被提出[6],但直到近年来得益于区块链技术的发展,其利用价值才被逐步发掘。
电子投票是一种新型网络投票系统,较传统方式更具经济性,其使用密码学确保投票过程公正、公平、公开、透明[7]。它所用到的密码学知识主要包括环签名、同态加密、混合网络、零知识证明等,其中环签名[8]是一种简化的群签名,只有环成员、没有管理者,无需环成员之间的合作,对验证者来说签名者完全是匿名的。可链接环签名[9-11]是指若某个环成员产生2个消息签名对,存在有效算法使得签名验证者可以确定这2个消息签名对是由环中同一成员产生的[12-13]。
为同时确保数据的机密性和可认证性,传统方法通常对数据进行先签名后加密或者先加密后签名的操作,这类方法的计算量和通信成本是加密和签名的代价之和。而签密[14]在一个逻辑步骤内实现加密和签名,也能达到传统方法的效果,同时具有以下优点:低于传统方法的计算量及通信代价;允许部分高代价密码运算的并行计算;若设计恰当可更安全;简化了同时需要认证性与机密性的密码算法设计[15]。
ZHAO等[16]在电子投票方案中应用区块链技术,但该方案只支持2个候选者。MCCORRY等[17]提出使用智能合约实现的开放投票协议,但该协议使用的前提是不能出现投票者弃权的情况,不切实际。BISTARELLI等[18]提出一个基于比特币的端到端投票系统,充分保护投票者的隐私,但该系统过于集中,方案不够公开透明。ZHEGN等[7]提出一个以太坊电子投票方案,利用一次性环签名及匿名地址技术,解决了部分投票隐私性等问题,但缺乏安全性证明和仿真实验。LYU等[19]设计一个基于智能合约的去中心化、无信任的电子投票系统,在投票阶段对其选票加密后进行环签名,确保了投票结果的可信度,解决了投票过程中的部分安全问题,但该系统没有任何安全性证明,且计算消耗的gas较多,运行时间较长。
针对上述问题,本文通过构造可链接环签密,提出一个基于智能合约的电子投票协议,并在一个逻辑步骤内实现选票的加密和签名,在确保协议具有相关安全特性的同时,从总体上降低协议运行时间和计算消耗的gas。
1 预备知识 1.1 选择消息的环分叉引理引理1 选择消息的环分叉引理[20]。
在椭圆曲线构成的阿贝尔群
在门限加密系统[22-24]中,加密组的n个成员共享一对系统公私钥,所有的成员都知道系统公钥,然而在无可信中心[25]参与的情况下,系统私钥分成若干个秘密份额,每个秘密份额由1个成员保存,最少需要t名成员才能重构系统私钥。
群
1)群
2)群
3)当每位成员公布这些k值后,
4)使用
5)
系统模型使用三元组
![]() |
Download:
|
图 1 电子投票模型 Fig. 1 E-voting model |
1)投票管理员(admin):创建投票进程,编写投票合约代码;通过公钥参数鉴定投票者的资格;公布投票者公钥列表、投票问题及候选项;设定并公布投票相关时间节点(注册截止时间
2)投票者users:
3)智能合约contract:智能合约并不是协议中的真正实体,但所有实体都与智能合约进行交互,故将其定义为“虚拟实体”;其由投票管理员admin请求创建,包括可链接环签密函数LinkableRingSigncryption()、计算系统私钥函数computeSystemPrivateKey()、验证环签密函数verifyLinkableRingSigncryption()、计票函数winningProposal()等,其具有的功能包括:按照admin编写的总体投票流程运行、检验所接收的消息是否来自合法的
区块链的结构如图 2所示,主要包括合约创建交易、上传参数交易、合约调用交易被打包进区块并加入区块链。
![]() |
Download:
|
图 2 投票区块链结构示意图 Fig. 2 Schematic diagram of voting blockchain structure |
上述交易的上链过程为:
1)合约创建交易。投票管理员admin发起创建电子投票智能合约请求,内容包括发送账户地址(即admin账户地址)、接受账户地址(为0,表示该交易为创建智能合约的交易)、本次转移的以太币数量、用于完成交易的gas数量、承诺支付的gas单价等;接着,网络节点验证交易请求,并争取到打包权的矿工,遵循admin发送的交易费用与合约代码,创建合约账户,在账户空间中部署合约,同时将智能合约账户地址返回给admin,并将admin的请求打包进区块,全网传播该区块,令区块加入共识区块链。
2)上传参数交易。投票者
3)合约调用交易。在需要计算系统私钥、验证签密、计票时,admin发起合约调用交易请求,交易内容包括发送账户地址、接收合约账户地址、本次转移的“虚拟货币”数量、用来完成交易的gas数量、交易中愿意付出的gas单价、执行智能合约或其某功能函数的指令,该请求被传播到区块链上;接着,网络节点验证交易请求,争取到打包权的矿工将在本地节点运行被调用的合约代码,直至代码运行结束或gas消耗殆尽后,将该区块加入本地区块链,并在全网传播该区块,令区块加入共识区块链。
3 本文智能合约电子投票协议本文协议将已有协议中选票的“加密+环签名”方式改进为选票的可链接环签密,在保证安全性的同时,降低协议运行时间和计算消耗的gas。同时因签密是在一个逻辑步骤内实现了解密和签名验证,本协议将选票签密的验证放至最后的计票阶段,而非像已有投票协议那样在投票阶段验证签名。改进后,本协议分为注册、创建、密钥生成、投票、秘密份额上传、计票6个阶段,G是阶为
每一个投票者
admin设定一个时间节点列表来触发相应的投票进程,然后将公钥列表、时间节点、整体投票进程等写入合约代码,发出智能合约创建请求。在合约创建后,admin将智能合约账户地址及其他相关信息公布。
3.3 密钥生成阶段每一个投票者
1)投票者
$ {f}_{i}\left(z\right)={f}_{i, 0}+{f}_{i, 1}z+\cdots +{f}_{i, t-1}{z}^{k-1}\left(\mathrm{m}\mathrm{o}\mathrm{d}\ l\right) $ | (1) |
其中:
2)投票者
这里,每位投票者均可获得所有的
$ \eta =\sum\limits_{i=1}^{n}{F}_{i, 0}=\sum\limits_{i=1}^{n}{\eta }_{i} $ | (2) |
但是系统私钥
投票者
签密生成的步骤如下:
1)投票者
2)对于
3)随机选取
4)计算
5)投票者
6)计算
投票者发出上传选票签密
投票者
$ {s}_{j, i}^{'}\times G=\sum\limits_{l=0}^{t-1}{F}_{j, l}\times {i}^{l} $ | (3) |
若式(3)不成立,则
$ {s}_{i}=\sum\limits_{j=1}^{n}{s}_{j, i}^{'} $ | (4) |
当至少有t名投票者上传秘密份额时,智能合约中的函数computeSystemPrivateKey()通过式(5)计算获得系统私钥:
$ \lambda =\sum\limits_{j=1}^{t}{s}_{j}\times \prod\limits _{h=1, h\ne j}^{t}\frac{h}{h-j}\left(\mathrm{m}\mathrm{o}\mathrm{d}\ l\right) $ | (5) |
对智能合约中的验证环签密函数verifyLinkableRingSigncryption()进行如下操作:
1)有任意2个环签密:
2)令
3)若
由于部署在区块链上的智能合约式是公开透明的,无法篡改,因此在区块链上进行电子投票,同时也可以确保投票公开、公正、公平。
4 安全性分析 4.1 正确性本文仅论证选票签密及验证的正确性,根据式(6)进行验证:
$ \begin{array}{l}\sigma G={R}_{1}+\cdots +{R}_{n}+{y}_{1}{h}_{1}+\cdots +{y}_{n}{h}_{n}=\sum\limits_{i=1, i\ne s}^{n}{a}_{i}G+\\ \;\;\;\;\;\;\;aG-\sum\limits_{i=1, i\ne s}^{n}{y}_{i}{H}_{1}({V}_{s}, {R}_{i}, t)+\sum\limits_{i=1}^{n}{y}_{i}{H}_{1}({V}_{s}, {R}_{i}, t)=\\ \;\;\;\;\;\;\;aG+\sum\limits_{i=1, i\ne s}^{n}{a}_{i}G+{y}_{s}{H}_{1}({V}_{s}, {R}_{s}, t)=\\ \;\;\;\;\;\;\;aG+\sum\limits_{i=1, i\ne s}^{n}{a}_{i}G+{x}_{s}{H}_{1}({V}_{s}, {R}_{s}, t)G=\\ \;\;\;\;\;\;\;\left(a+\sum\limits_{i=1, i\ne s}^{n}{a}_{i}+{x}_{s}{H}_{1}({V}_{s}, {R}_{s}, t)\right)G\end{array} $ | (6) |
当式(6)所示的验证方程成立时,选票签密有效。
4.2 不可伪造性智能合约账号收到投票签密
引理2 在随机预言机模型下,若椭圆曲线离散对数问题是困难的,则环签名
证明:设椭圆曲线E上的离散对数难题为:
$ \sigma G={R}_{1}+{R}_{2}+\cdots +{R}_{n}+{y}_{1}{h}_{1}+\cdots +{y}_{j}{h}_{j}+\cdots +{y}_{n}{h}_{n} $ | (7) |
$ \sigma \text{'}G={R}_{1}+{R}_{2}+\cdots +{R}_{n}+{y}_{1}{h}_{1}^{\mathrm{'}}+\cdots +{y}_{j}{h}_{j}^{\mathrm{'}}+\cdots +{y}_{n}{h}_{n}^{\mathrm{'}} $ | (8) |
以上两式相减得:
$ \begin{array}{l} (\sigma -{\sigma }^{'})G={y}_{j}({h}_{j}-{h}_{j}^{'})={\alpha }_{j}y({h}_{j}-{h}_{j}^{'})\Rightarrow\\ y=\frac{(\sigma -{\sigma }^{'})}{({h}_{j}-{h}_{j}^{'}){\alpha }_{j}}G \end{array}$ | (9) |
即可求得椭圆曲线的离散对数解为
定理1 若椭圆曲线离散对数问题是困难的,则本协议的环签密是不可伪造的。
证明:假设某用户能伪造合法的投票环签密,那么其肯定可以利用环签名的转换算法,将伪造的环签密转换成环签名,即在椭圆曲线离散对数问题是困难的情况下,得到一个伪造的环签名。这显然与引理1相矛盾,定理得证。
4.3 隐私性本节着重探讨Ui和Vi的隐私。从Ui隐私方面来说,由于可链接环签名的特性,在具有
本文设计的投票协议采用可链接环签密,其可链接性能够确保一位投票者只可投一次票,若重复投票将被验证出来,则作废处理,以保证协议的唯一性。
4.5 公正性本文协议融合了无可信中心的门限加密、可链接环签密及智能合约,在3.6节以前,投票者只掌握其本人的投票内容,任何人都不可能获取中间结果或最终结果,以确保本协议的公正性。
4.6 可验证性选举结束后,任何投票者均可查看选票及系统私钥,以查看自己的选票是否被正确记录,且拥有合约地址的任何人均可查看所有选票并验证计票结果。
5 性能评估 5.1 性能分析选票签名或签密的可链接性都将被进行验证,这一点对于本文协议和Lyu协议来说没有差别。但是对于加密选票签名,Lyu协议需要在投票阶段和计票阶段分别进行验证和解密,而本文协议在3.6节计票阶段第2步的一个逻辑步骤内实现了选票签密的验证和解密,降低了计算量,进而降低了gas消耗,最终gas消耗总量也随之降低。
在电子投票协议中,除了选票的验证、统计等工作由智能合约完成外,仍有很多操作需要投票者运行,包括生成公私钥、计算
本文在本地部署以太坊私有网络,通过truffle将智能合约部署到以太坊私有网络上,同时进行挖矿并确认交易。本文协议从确认交易的信息中获得交易消耗的gas,投票者或管理员可以在rpc模式使用web3.js与区块链网络进行通信。
本地投票计算机配置为Win10系统,四核2.9 GHz的CPU,8 GB内存。系统中的功能函数均用Python编写,所有时间单位均为ms,每gas的价格定为1 Gwei,在t=0.7 n的情况下进行测试。
5.3 gas消耗表 1展示了在n=30的情况下投票者和管理员每个交易的gas消耗,其中,由管理员admin发起的交易只发起一次,由投票者Ui发起的交易每名一次。
![]() |
下载CSV 表 1 交易或计算的gas消耗 Table 1 Consumption of transaction and computation in gas |
对比本文协议与Lyu协议,从表 1可看出投票者上传数据至区块链的gas消耗基本一样,而本文协议admin建立合约及设置相关信息的gas消耗要低于Lyu协议的消耗。这是因为Lyu协议中智能合约执行的是选票环签名验证函数和加密选票解密函数,而本文协议中智能合约执行的是选票签密的验证(解密)函数,能够在一个逻辑步骤内实现验证和解密;同时,Lyu协议及本文协议执行这些功能函数所消耗的gas均包含在admin建立合约及设置相关信息交易中。
为研究选举时各实体的gas消耗与投票者人数之间的关系,分别对n=10、20、30、40的情况进行测试,再利用python画出两协议不同实体的gas消耗对比图,结果如图 3所示。
![]() |
Download:
|
图 3 本文协议与Lyu协议的gas消耗对比 Fig. 3 Comparison of gas consumption between this protocol and Lyu protocol |
从图 3可以看出,随着投票者人数的增加,本文协议和Lyu协议中admin和投票者的交易或计算消耗的gas都在增加。但是无论投票者人数如何变化,本文协议投票者的gas消耗和Lyu协议投票者的基本一样,本文协议admin的gas消耗始终要比Lyu协议admin的低,降低了约1×107 gas,每gas的价格为1 Gwei,即节省了1×107 Gwei的计算消耗,其原因与n=30的情况一样,所以最终本文协议的gas消耗总量低于Lyu协议的gas消耗总量。
5.4 操作运行时间表 2展示了在n=30时在投票者本地运行的操作所花费的时间。
![]() |
下载CSV 表 2 投票者操作运行时间 Table 2 Voter operation run time |
从表 2可以看出本文协议与Lyu协议在投票者本地运行的生成公私钥、计算
对投票者运行的操作总时间进行测试并统计,再利用python绘制出本文协议与Lyu协议在这方面的对比图,结果如图 4所示。
![]() |
Download:
|
图 4 本文协议与Lyu协议投票者的操作总时间对比 Fig. 4 Comparison of total voter operation time between this protocol and Lyu protocol |
由图 4可知,随着投票者人数的增加,本协议和Lyu协议中投票者运行的操作总时间均在增加,但是无论投票者人数如何变化,本文协议投票者的操作总时间始终比Lyu协议的低,少了约450 ms,其原因与n=30时的情况相同。
6 结束语本文提出一种新的智能合约电子投票协议,融合可链接环签密,在一个逻辑步骤内实现了选票的加密及签名,分析得出协议具有正确性、唯一性、隐私性、公正性、可验证性等特性,并对协议的不可伪造性进行了形式化证明。实验结果表明,本文协议的运行时间和gas消耗较Lyu协议均有所降低,但随着投票人数的增加,上传至区块链的数据量也有所增加。下一步将引入IPFS文件系统,使密钥参数、选票、签名等数据存储至IPFS文件系统,且在区块链上只存储这些数据的指针或索引,以降低上传至区块链的数据量。
[1] |
张亮, 刘百祥, 张如意, 等. 区块链技术综述[J]. 计算机工程, 2019, 45(5): 1-12. ZHANG L, LIU B X, ZHANG R Y, et al. Overview of blockchain technology[J]. Computer Engineering, 2019, 45(5): 1-12. (in Chinese) |
[2] |
CULHA D. A random and transaction-positioned blockchain[J]. Comptes Rendus de L'Academie Bulgare des Sciences, 2020, 73(7): 915-925. |
[3] |
TANG F, PANG J J, CHENG K F, et al. Multiauthority traceable ring signature scheme for smart grid based on blockchain[EB/OL]. [2021-06-02]. https://www.researchgate.net/publication/350798231_Multiauthority_Traceable_Ring_Signature_Scheme_for_Smart_Grid_Based_on_Blockchain.
|
[4] |
祝烈煌, 高峰, 沈蒙, 等. 区块链隐私保护研究综述[J]. 计算机研究与发展, 2017, 54(10): 2170-2186. ZHU L H, GAO F, SHEN M, et al. Survey on privacy preserving techniques for blockchain technology[J]. Journal of Computer Research and Development, 2017, 54(10): 2170-2186. (in Chinese) |
[5] |
蔡晓晴, 邓尧, 张亮, 等. 区块链原理及其核心技术[J]. 计算机学报, 2021, 44(1): 84-131. CAI X Q, DENG Y, ZHANG L, et al. The principle and core technology of blockchain[J]. Chinese Journal of Computers, 2021, 44(1): 84-131. (in Chinese) |
[6] |
赵其刚, 王红军, 李天瑞, 等. 区块链原理与技术应用[M]. 北京: 人民邮电出版社, 2020. ZHAO Q G, WANG H J, LI T R, et al. Blockchain principle and technical application[M]. Beijing: Posts and Telecom Press, 2020. (in Chinese) |
[7] |
一种基于可信计算技术的电子投票方案[J]. 计算机工程, 2012, 38(6): 1-6. FENG Y M. Electronic voting scheme based on trusted computing technology[J]. Computer Engineering, 2012, 38(6): 1-6. (in Chinese) |
[8] |
RIVEST R L, SHAMIR A, TAUMAN Y. How to leak a secret [C]//Proccedings of the 7th International Conference on the Theory and Application of Cryptology and Information Security. Berlin, Germany: Springer, 2001: 522-565.
|
[9] |
LIU J K, WEI V K, WONG D S. Linkable spontaneous anonymous group signature for Ad Hoc groups[EB/OL]. [2021-06-06]. https://link.springer.com/chapter/10.1007/978-3-540-27800-9_28.
|
[10] |
TORRES W A A, STEINFELD R, SAKZAD A, et al. Post-quantum one-time linkable ring signature and application to ring confidential transactions in blockchain (lattice ringct v1.0)[C]//Proceedings of Australasian Conference on Information Security and Privacy. Berlin, Germany: Springer, 2018: 558-576.
|
[11] |
REN H, ZHANG P, SHENTU Q C, et al. Compact ring signature in the standard model for blockchain [C]///Proccedings of the 14th International Conference on Information Security Practice and Experience. Berlin, Germany: Springer, 2018: 50-65.
|
[12] |
吕佳卓. 基于智能合约的去中心化安全电子投票系统[D]. 哈尔滨: 哈尔滨工业大学, 2019. LÜ J Z. A decentralized secure e-voting system based on smart contract[D]. Harbin: Harbin Institute of Technology, 2019. (in Chinese) |
[13] |
具有可链接性的匿名签密方案[J]. 西南大学学报(自然科学版), 2012, 34(9): 113-117. QU Y Y, YIN L, XIONG X G, et al. A linkable anonymous signcryption scheme[J]. Journal of Southwest University (Natural Science Edition), 2012, 34(9): 113-117. (in Chinese) |
[14] |
ZHENG Y L. Digital signcryption or how to achieve cost (signature & encryption) ≪ cost(signature) +cost (encryption)[C]//Proceedings of the 17th Annual International Cryption Conference. Berlin, Germany: Springer, 1997: 165-179.
|
[15] |
数字签密综述[J]. 信息网络安全, 2011(12): 1-8. LI F G, ZHONG D. A survey of digital signcryption[J]. Netinfo Security, 2011(12): 1-8. (in Chinese) |
[16] |
ZHAO Z C, C T H. How to vote privately using bitcoin [C]//Proccedings of the Internal Conference on Information and Communications Security. Berlin, Germany: Springer, 2015: 82-96.
|
[17] |
MCCORRY P, SHAHANDASHTI S F, HAO F. A smart contract for boardroom voting with maximum voter privacy [C]//Proccedings of the International Conference on Financial Cryptography and Data Security. Berlin, Germany: Springer, 2017: 357-375.
|
[18] |
BISTARELLI S, MANTILACCI M, SANTANCINI P, et al. An end-to-end voting-system based on bitcoin[C]//Proceedings of the Symposium on Applied Computing. New York, USA: ACM Press, 2017: 1836-1841.
|
[19] |
LYU J Z, JIANG Z L, WANG X, et al. A secure decentralized trustless e-voting system based on smart contract [C]//Proccedings of the 13th IEEE International Conference on Big Data Science and Engineering. Washington D. C., USA: IEEE Press, 2019: 570-577.
|
[20] |
HERRANZ J, SÁEZ G. Forking Lemmas for Ring Signature Schemes[EB/OL]. [2021-06-06]. https://link.springer.com/chapter/10.1007/978-3-540-24582-7_20.
|
[21] |
杨波. 现代密码学(第四版)[M]. 北京: 清华大学出版社, 2017. YANG B. Cyberspace security(the fourth edition)[M]. Beijing: Tsinghua University Press, 2017. (in Chinese) |
[22] |
SHAMIR A. How to share a secret[J]. Communications of the ACM, 1979, 22(11): 612-613. DOI:10.1145/359168.359176 |
[23] |
DESMEDT Y G. Threshold cryptography[J]. European Transactions on Telecommunications, 2010, 5(4): 449-458. DOI:10.1002/ett.4460050407 |
[24] |
BONEH D, GENNARO R, GOLDFEDER S, et al. Threshold cryptosystems from threshold fully homomorphic encryption[C]//Proceedings of Annual International Cryptology Conference. Berlin, Germany: Springer, 2018: 565-596.
|
[25] |
PEDERSEN T P. A threshold cryptosystem without a trusted party[EB/OL]. [2021-06-06]. https://www.researchgate.net/publication/313151874_A_threshold_Cryptosystem_without_a_Trusted_Party_Lecture_Notes_in_Computer_Science_547_Advances_in_Cryptology.
|