一种区块链隐私协议的实现方法技术

技术编号:24589394 阅读:80 留言:0更新日期:2020-06-21 02:23
本发明专利技术公开了一种区块链隐私协议的实现方法,包括:将区块链上进行隐私交易的票据的承诺存储在Shrubs默克尔树上,其中,Shrubs默克尔树的每层具有一个Shrub节点,在Shrubs默克尔树上添加一个新的叶节点以存储承诺,当添加新的叶节点时只需更新一个Shrub节点。本发明专利技术的上述技术方案,可以对代币交易进行隐私保护,还可以高效地应用于智能合约。

Implementation of a blockchain privacy protocol

【技术实现步骤摘要】
一种区块链隐私协议的实现方法
本专利技术涉及区块链
,具体来说,涉及一种区块链隐私协议的实现方法。
技术介绍
区块链是公开的分布式交易账本,链上的数据都是公开可见的,包括交易的金额和交易双方的地址信息等。虽然一笔交易的发送方和接收方无法和现实生活中买卖双方进行关联,但是可以通过对链上的数据进行地址聚簇分析,从而得出一些地址和身份的关联信息。可见尽管数据的公开透明保证了账本真实和不可篡改的特点,但是这也使得很多需要隐私的场景无法在区块链上进行运用。在此背景下,区块链的隐私协议被提出。通过使用密码学等技术手段将交易的发送方、接收方和交易金额进行隐藏,而矿工(验证交易者)可以在不需要知道具体交易细节的情况下对一笔交易的合法性进行验证。如使用环签名达到隐私效果的门罗币,使用零知识证明zk-SNARK技术的Zcash,和使用Mimble-Wimble协议的Grin和Beam。综合来看,其中zk-SNARK是相对最好的技术。zk-SNARK技术中文名为“零知识的非交互式知识的论证”,这是一种非交互式的零知识证明技术,隐私性强,可以在交易双方不进行任何沟通的情况下实现对交易地址和交易金额进行隐藏。使用zk-SNARK技术的Zcash安全性好,至今没有被发现安全问题,且作为业内领先的隐私技术,Zcash已经稳定运行多年。但Zcash也有一些不足,首先Zcash与门罗以及基于MimbleWimble协议的Grin和Beam不同,Zcash不会在默认情况下启用隐私功能,可选的隐私功能的缺点是当用户选择使用加密交易信息时,这一行为可能会被视为可疑行为。另外,Zcash是一种纯加密货币,像比特币一样,并不支持丰富的智能合约,用户无法在Zcash上开发具有隐私功能的DApp(去中心化应用)。随后,基于zk-SNARK的可以应用在智能合约上提供隐私的解决方案被提出,这类隐私协议让用户可以在带有智能合约功能的区块链(例如以太坊和量子链)上开发隐私DApp。通过部署智能合约以实现zk-SNARK技术,这使得隐私的应用范围大大增加。Quorum是一个联盟链方案,由摩根大通开发的企业级分布式账本和智能合约平台,它是在以太坊(Ethereum)的基础上开发的,提供私有智能合约执行方案,并满足企业级的性能要求。适用于需要高速交易以及高吞吐量处理联盟间进行私有交易的应用场景,主要是为了解决区块链技术在金融及其他行业应用的特殊挑战而设计。Quorum的ZSL(零知识安全层)是一种协议,该协议利用zk-SNARKs来使用智能合约进行数字资产的转移,而无需透露有关接收者,发送者和金额的任何信息。2018年10月,安永在布拉格的以太坊Devcon上介绍了Nightfall。在2019年5月31日,安永发布了Nightfall,可以在以太坊主网上使用zk-SNARK智能合约隐私地交易ERC-20和ERC-721代币。Nightfall目前的实现并不是传统意义上的链,并没有修改以太坊的代码,而在以太坊的基础上,提供隐私交易的能力。通过ZoKrates工具箱,利用以太坊上的智能合约,提供了以太坊上的比较完整的隐私交易的服务。在以太坊智能合约中,隐私交易的管理类似Zcash。根据Quorum文档,在IntelXeonE3-1225v23.2GHz处理器(4核)上,一次JoinSplit操作耗时42.6秒,并且需要近3GB的RAM。对于日常使用而言,时间和资源的消耗过大了。Nightfall使用深度为33的默克尔树的SHA256哈希函数。ERC-20代币的交易需要2,292,000个zk-SNARK约束,并且消耗约2.7Mgas,这相对较高,因为以太坊中每个区块的gas限制是8M。从上得知,智能合约上现有的隐私协议不够实用。用户必须等待40秒以上才能生成交易,并且gas的消耗也无法被接受。
技术实现思路
针对相关技术中的上述问题,本专利技术提出一种区块链隐私协议的实现方法。本专利技术的技术方案是这样实现的:根据本专利技术的一个方面,提供了一种区块链隐私协议的实现方法,包括:将区块链上进行隐私交易的票据的承诺存储在Shrubs默克尔树上,其中,Shrubs默克尔树的每层具有一个Shrub节点,在Shrubs默克尔树上添加一个新的叶节点以存储承诺,当添加新的叶节点时只需更新一个Shrub节点。根据本专利技术的实施例,添加新的叶节点只需更新一个Shrub节点包括:添加新的叶节点时,将新的叶节点所在层切换到一个新的Shrub节点。根据本专利技术的实施例,添加新的叶节点只需更新一个Shrub节点还包括:重新向上计算哈希值,直到新的叶节点最近的子树根节点,将子树根节点更新为子树根节点所在层的Shrub节点根据本专利技术的实施例,每个Shrub节点满足以下每个特征:Shrubs默克尔树的每层只具有一个Shrub节点;Shrub节点是层的唯一一个节点,或者,Shrub节点是Shrub节点所在层的最靠右的完全子树的根;Shrub节点为一个叶节点,或者,以Shrub节点为根节点的子树包含所有叶节点中的部分或者全部叶节点。根据本专利技术的实施例,上述实现方法还包括:创建节点默克尔树,节点默克尔树的叶节点为Shrubs默克尔树的Shrub节点,并且节点默克尔树包括多个子树;其中,当添加新的叶节点时,只需修改Shrubs默克尔树中与新的叶节点对应的子树的根节点哈希值。根据本专利技术的实施例,上述实现方法还包括传输数字资产交易的票据,传输数字资产交易的票据包括:票据的发送方拥有第一密钥对,第一密钥对由一对公私钥构成;票据的接收方拥有第二密钥对,第二密钥对由一对公私钥构成;通过第一密钥对中的私钥和第二密钥对中的公钥生成共享加密密钥;发送方使用共享加密密钥加密票据,并将加密后的票据和第一密钥对中的公钥发送到区块链上;接收方基于第二密钥对中的私钥和区块链上的第一密钥对中的公钥恢复共享加密密钥,以解密票据。根据本专利技术的实施例,上述实现方法还包括:当发行隐私资产时,以票据的金额和承诺作为输入来生成证明,将票据的金额、承诺和证明发送至智能合约,当成功验证证明时,将承诺添加至Shrubs默克尔树上。根据本专利技术的实施例,上述实现方法还包括:当将隐私资产从发送方转移至接收方时,票据包括输入和输出,发送方为输入提供废弃符,并为输出提供承诺;将生成的证明发送至智能合约;当成功验证证明时,将输出的承诺添加到Shrubs默克尔树上,并且智能合约记录废弃符。根据本专利技术的实施例,上述实现方法还包括:当销毁隐私资产并获得与隐私资产等量的公开资产时,为票据生成证明;将生成的证明发送至智能合约;当成功验证证明时,智能合约记录废弃符。本专利技术的上述技术方案,考虑到添加叶节点时对整颗增量默克尔树更新的消耗,从而引入Shrubs默克尔树来进行改进。通过记录多个子树的根节点,来达到“添加一个节点只需要更改最近的那个树根即可”这样的效果。另外,由于协议的核心步骤是通过zk-SNARK技术生成和验证零知识证明,而输入的大小会影响本文档来自技高网
...

【技术保护点】
1.一种区块链隐私协议的实现方法,其特征在于,包括:/n将区块链上进行隐私交易的票据的承诺存储在Shrubs默克尔树上,其中,所述Shrubs默克尔树的每层具有一个Shrub节点,在所述Shrubs默克尔树上添加一个新的叶节点以存储所述承诺,当添加所述新的叶节点时只需更新一个Shrub节点。/n

【技术特征摘要】
1.一种区块链隐私协议的实现方法,其特征在于,包括:
将区块链上进行隐私交易的票据的承诺存储在Shrubs默克尔树上,其中,所述Shrubs默克尔树的每层具有一个Shrub节点,在所述Shrubs默克尔树上添加一个新的叶节点以存储所述承诺,当添加所述新的叶节点时只需更新一个Shrub节点。


2.根据权利要求1所述的区块链隐私协议的实现方法,其特征在于,添加所述新的叶节点只需更新一个Shrub节点包括:
添加所述新的叶节点时,将所述新的叶节点所在层切换到一个新的Shrub节点。


3.根据权利要求1所述的区块链隐私协议的实现方法,其特征在于,添加所述新的叶节点只需更新一个Shrub节点还包括:
重新向上计算哈希值,直到所述新的叶节点最近的子树根节点,将所述子树根节点更新为所述子树根节点所在层的Shrub节点。


4.根据权利要求1所述的区块链隐私协议的实现方法,其特征在于,每个所述Shrub节点满足以下每个特征:
所述Shrubs默克尔树的每层只具有一个Shrub节点;
Shrub节点是所述层的唯一一个节点,或者,Shrub节点是所述Shrub节点所在层的最靠右的完全子树的根;
所述Shrub节点为一个叶节点,或者,以所述Shrub节点为根节点的子树包含所有叶节点中的部分或者全部叶节点。


5.根据权利要求1所述的区块链隐私协议的实现方法,其特征在于,还包括:
创建节点默克尔树,所述节点默克尔树的叶节点为所述Shrubs默克尔树的所述Shrub节点,并且所述节点默克尔树包括多个子树;
其中,当添加所述新的叶节点时,只需修改所述节点默克尔树中与所述新的叶节点对应的子树的根节点哈希值。

【专利技术属性】
技术研发人员:李星孙通成郑翊夏坤贤张守恒钟文斌李琦
申请(专利权)人:上海宓猿信息技术有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1