智能合约的分段同态加密研究*
2021-01-19王沛然李加福雷志伟张桂刚邢春晓
计算机与数字工程 2020年12期
王沛然 李加福 雷志伟 张桂刚 张 勇 邢春晓
(1.清华大学行业可信区块链应用技术联合研究中心,计算机系,信息技术研究院 北京 100084)(2.中国科学院自动化研究所 北京 100190)(3.清华大学北京信息科学与技术国家研究中心,计算机系,信息技术研究院,互联网产业研究院 北京 100084)
1 引言
区块链技术从Bitcoin发展到Ethereum之后,支持图灵完备的编程语言的智能合约的引入[1],使得Ethereum成为可以支持开发和运行DApp的系统。而Ethereum的智能合约被调用并形成交易后,需要网络上其他节点对其正确性进行验证[2]。智能合约调用及验证的过程如图1所示。

图1 Ethereum智能合约调用及验证过程
在图1中,智能合约调用者即交易发起者,其调用合约时使用的参数全集,必须是明文且公开的,如此,网络上的其他节点即智能合约验证者才能根据这个参数全集来验证该智能合约执行结果是否正确。
显然,这样的验证方式,对于智能合约调用者节点来说,没有任何隐私保护可言[3]。对此,Ethereum技术团队也曾坦言,由于同态加密技术远不能够支持图灵完备的智能合约语言,所以只好放弃了智能合约调用过程中的加密功能。
与技术上的障碍相对应的,是一些应用场景对于智能合约加密的迫切需求。事实上,有很多可以运行在Ethereum或类似区块链上的应用场景,都是需要保护隐私的。例如:需要多方参与的竞拍竞价、竞选投票之类的应用[4],各方调用智能合约的输入都是需要被保密的。再如:医疗健康数据会涉及到个人隐私,因此信息持有者在通过调用智能合约来分享相关信息的时候也会有顾虑。……
登录APP查看全文
