微众银行区块链李辉忠 | 零知识证明在匿名投票中的应用

共 3791字,需浏览 8分钟

 ·

2021-09-29 01:02

《中华人民共和国数据安全法》已于2021年9月1日起施行,为数据安全、隐私保护提供强有力的法律制度保障。《中华人民共和国个人信息保护法》将于2021年11月1日起正式施行,这是我国首部个人信息保护领域的专门立法。零知识证明技术作为密码学领域的重要技术,可以在保证数据不出本地的情况下,完成对某个信息的验证。其与区块链技术的有机融合将为探索数据安全以及隐私保护提供可行发展方向。

日前,由北京金融科技产业联盟组织的“区块链+零知识证明技术沙龙研讨会”在线上举行。微众银行区块链隐私计算技术负责人李辉忠受邀参会,就“零知识证明在匿名投票中的应用”进行主题分享。


  痛点  传统电子投票方案的局限性


电子投票被广泛地应用于电子政务决议、团体活动投票、公司股东大会决议、物业基金使用决策等诸多应用场景。投票过程涉及很多敏感信息,比如投票人的身份、投票人的选择信息等,这些因素都可能影响到投票人的真实意愿,影响投票结果的正确性、公平性。



这就需要我们真实地去分析电子投票场景中的多维述求:
  • 是不是在投票开始时就设有投票的准入门槛,使得有资格的投票者才能投票;
  • 在投票过程中,投票者的选票提交之后不可被篡改也不会被删掉;
  • 投票的数据得是隐私的,第三方不应知道投票者投出选票的内容;
  • 投票人可以检验自己的选票被正确计入结果,实现个人可验证性;
  • 对于公众或者旁观者来说,他们可独立地对整个投票过程及结果进行验证,即做到全局可验证性。


但是在实际操作过程中,传统电子投票方案存在一定的局限性。首先,传统电子投票通常中心化程度高,而中心化投票系统存在增、删和篡改的风险。其次,很难让隐私和验证共存,尤其无法做到全局可验证,更难以实现上述不同角色的多种诉求。此外,传统电子投票方案在设计过程中无法进行规模扩展,在技术算法和执行过程中不够透明,公正性受到质疑。


匿名投票的设计目标也就产生了:基于现有电子投票方案,结合区块链与高效的零知识证明等密码原语,设计能够同时满足身份认证、投票隐私、全局与个人可验证的安全、可信、高效的匿名投票方案。


  思路  基于区块链的匿名投票架构与流程


匿名投票的场景涉及投票者、计票者、公众以及投票系统等,投票者需要与投票系统在身份验证登记、提交投票、验证投票结果等环节进行交互;计票者要在投票系统中验证每位投票者是否投了票,并且进行计票,之后将计票的结果提交到投票系统;公众要验证投票系统中的投票是否合规、整个计票结果是否正确。这意味着,对于投票系统来说,不仅需要提供相应的交互能力,还需要具备一些边界的功能。



类似于区块链技术多中心化的分布式记账,匿名投票整体架构可以搭建成多方共建的系统,不同角色可以参与共建这条区块链,并且这些角色自身会以区块链进行交互。在设计层面上,基于区块链架构,投票问题可以被抽象为转账问题。匿名投票方案可以在区块链这种分布式的系统上进行设计,投票者和计票者通过区块链实现分布式协作,区块链上的智能合约可以定义协作方式,而且可以设置监管机构或角色对整个投票过程进行监管审计。



基于区块链的匿名投票是怎么样的一个过程呢?首先引入区块链,并且在区块链上有智能合约,投票者通过智能合约获得初始选票和证明,然后进行投票。投票者和计票者、公众都要进行信息登记,在这个过程中,他们都会与系统进行相应的交互,以完成他们的投票、计票、验证,那么角色参与就实现了多中心化的方式。


整个投票、计票的过程,所有的数据也都在链上进行分布式记账,并且引入零知识证明机制,保证各参与方数据隐私,同时还能实现数据可验证。这样也就解决了传统电子投票方案的局限性问题,实现投票的不可篡改性、隐私性和全局可验证。


  概说  零知识证明的隐私密码


零知识证明是证明者向验证者证明陈述的正确性,而无需透露除该陈述正确性以外的任何信息,是投票者隐私和投票结果可验证非常好的解决方案。但目前它最大的问题在于,通用零知识证明方案的性能还比较低。它生成证明的过程通常要几十秒甚至是分钟级,而且如果计算模型过于复杂的话,时间还需更长,甚至是几十分钟级,这在体验端是无法被接受的。所以微众银行做了场景化的匿名投票解决方案,该方案采用自研的零知识证明技术,有效地提升了性能问题。



它首先设计了一个初始化参数,用Elgamal加密来隐藏投票者一些信息。计票者每个人拥有一个密钥分片,通常计票者会设计成是多人联合的方式,所有人(或者超过一定阈值)的密钥分片可合成出私钥,但没有人能够得到一个完整的私钥。此外,所有的计票者可以合成出最终的公钥。公钥是可公开的,那么投票者在投票的过程中可用公钥将数据进行隐藏。



投票生成的过程中,如何隐藏数据呢?零知识证明会为每一位候选人的投票生成一个范围证明,为投票者整个投票过程生成一个会计平衡的证明,整体上投票交易就变成了多个数据的组合,由多个计票者联合进行解密计票。



在这一联合计算、联合解密的过程中,由于每一位计票者拥有一个秘密的最终私钥的份额,所以他们可以将自己所知道的份额,以及对应自己的份额分片进行最终的解密,解密之后所有的数据再合成,就相当于是用最终的私钥对数据进行了解密。整个过程中有非常多的步骤需要进行零知识证明的设计和验证。




投票者主要涉及归属性证明和格式的正确性证明。归属性证明即投票者要证明,他知晓每一张投票的存在,并且他要向别人证明这张票是由他投出去的,这里便会引入离散对数知识证明,即“我知道证明的数值是什么,但是我不需要向你透露具体是什么值。”



同时,投票者需要为他投出去的每一张选票进行一个格式的正确性证明。因为使用了Elgamal加密投票,密文由两部分数据组成,使用了两个生成元和一个随机数,根据Elgamal算法要求,密文中两部分数据使用的随机数必须一致才有效,才能够完成后面的联合数据计算和解密。



如果两个随机数的选择是不一样的,那么计票过程将无法正确计算,计算出来的值也就毫无意义。但是本身这个数据是加密的,如何判断这两个数据是一致的?这就需要投票者在投票的过程中,同时给出证明,证明密文选票里面的两个随机数是一样的。投票者还需去证明初始的票数、投出去的票数、剩余的票数这三者之间要满足金融学的会计平衡,即最终投出去的票数加上剩余的票数一定等于初始分配票数。这需要引入会计平衡证明,来证明这张选票是合规的。


每一位计票者拥有的是一个密钥的分片,他必须用秘密的分片解密,才能够保证我们解密出来的数据是符合我们所需要的结果计算,否则计算出来的值是毫无意义的。因此对于计票者而言,他在计票的过程中,既要参与计算,也要给出一个证明,即拥有的密钥分片和解密时候用的秘密分片两个值是一样的。而进行验证的公众要从区块链中的数据对此进行审查,然后快速地通过投票交易中所有零知识证明,来验证判断所有的过程,做到全局的可验证和可信。



  实践  微众银行场景化隐私保护解决方案



WeDPR是微众银行区块链团队所做的一个场景化的隐私保护解决方案。之所以被称之为“场景化”,是因为我们在各种隐私保护、隐私计算的业务场景中发现,每一种场景都具有一定的特殊性。如果只选用某一种通用的算法,那么在面临特殊情况时,将会无法适用。



因此,我们考虑对于一些常用的业务场景,比如说区块链上的密文账本、多方密文的投票排名,还有一些选择性的数据披露等等,为这些场景针对性地给出定制化和优化的隐私保护方案。然后,基于这些优化方向,保证既能达到隐私保护的效果,满足安全性的同时,也能够服务于商业的场景和应用的落地。


基于场景化的隐私保护解决方案WeDPR,我们还推出了多方大数据隐私计算的平台WeDPR-PPC。该平台结合了当下业界前沿的学术成果,是一个基于MPC的多方大数据的隐私计算平台,覆盖了数据全生命周期的各个维度,在每个阶段均具有隐私合规等特性。


在数据的收集、传输、存储、使用、流转和消耗全过程中,WeDPR-PPC均能很好地体现数据所需的隐私保护能力,对于数据的确权、授权和维权, WeDPR-PPC结合区块链的优势便能很好地发挥作用。在收集阶段,能实现对数据的脱敏、匿名化和去标识化处理,在传输过程中实现安全和加密,在存储和授权过程做到安全可控的存储,包括密钥的管理,以及密态数据的查询和校验;在生产过程或者协作过程中,在加强隐私信息保护方面,遵守最小使用原则,在促进公共数据价值的释放方面,坚持最大开放原则。


WeDPR-PPC有多个非常关键的技术指标,首先是,隐私求交的性能,它具有十亿级数据集处理能力。其次是,乘法联合计算的性能,实现毫秒级端到端响应,可以在几十亿级的数据上快速地满足商业场景的应用。再则,可实现平等多方的大规模数据协作,对于同时参与隐私计算的机构数没有限制。在工信部信通院最新一批“中国信通院大数据产品能力评测”中, WeDPR-PPC首批通过“区块链辅助的隐私计算产品”权威评测,安全性、性能、功能全面符合国家级测试标准。



浏览 88
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报