论文部分内容阅读
随着互联网技术的发展,互联网已逐渐渗透入人们生活的各方面中,资产的数字化将成为一种趋势。智能合约技术有助于保障数字资产的安全性,并为资产的转移提供便利。通过将合约以代码的形式建立,并记录到不可更改的区块链中,合约的真实性和可靠性可获得保障。然而,新兴的智能合约技术正面临着巨大的安全风险,2016年6月17日,运行于以太坊公有链中的The DAO智能合约系统受到黑客攻击,导致至少6000万美元的财产流失。这在很大程度上制约了社会对于区块链与智能合约的信任。在现有的以太坊、Hyperledger等项目中,由于需要在矿工节点上运行复杂、有状态的智能合约程序,这赋予了矿工过多的权力,在空间开销、隐私性方面都将产生严重问题,甚至可能影响整个区块链网络的货币稳定性。针对矿工权力的问题,本文将矿工的记账权与智能合约程序的执行相互分离。本文提出了一种非交互式的智能合约模型,这是一种基于承诺的合约表示形式,通过该方式可以描述现实中所存在的一大类合约。智能合约程序的执行结果将由若干复合承诺兑现与否来决定,每个承诺的兑现与否将由第三方节点进行计算,矿工只需要依据承诺的兑现情况进行相应的记帐。对于第三方节点,其数据均来源于区块中,从而保证承诺兑现结果的有效性和可验证性。针对用户隐私,本文在使用简洁非交互式零知识证明(zk-SNARK)技术的区块链项目ZCash的基础上进行了扩展,使其具有验证承诺的功能,从而确保了在区块数据公开的情况下,用户账户无法被追踪。在上述基础上,本文研究并设计了包含第三方认证以及匿名转账的区块链协议,对其中所存在的安全风险进行了分析。最后,本文设计了基于承诺的区块链智能合约应用,通过本文所提出的智能合约框架,实现了一个用于数字资产的众筹平台。用户资金转移通过区块链货币执行,并且平台重要数据都有相应的区块记录,防止平台或恶意用户对其进行篡改,提高了平台的公信力。本文主要针对区块链上的智能合约所面临的安全问题进行研究,并结合实际需求,提出了基于承诺的智能合约模板设计,解决智能合约使用过程中的一些安全问题,从而促进智能合约技术的发展。