The invention discloses a block chain account model privacy protection method based on zero-knowledge proof, which includes the following steps: the transferor converts the clear balance into zero-knowledge balance; transfers the zero-knowledge balance; the transferor updates its own balance; the payee updates its own balance; and the user converts the zero-knowledge balance into clear balance. The invention combines zero knowledge proof with block chain account model, realizes the privacy protection of transaction data, and can effectively ensure that data is not leaked. Through the technical scheme of the invention, the plaintext data transaction will be hidden. Although it is known that both parties have made an unmarked transaction, when many transactions are carried out simultaneously, many senders and receivers will be generated, so that the two sides of each particular transaction will be covered up, the two sides of the transaction can not correspond to each other, and the transaction amount is completely confidential.
【技术实现步骤摘要】
一种基于零知识证明的区块链账户模型隐私保护方法
本专利技术属于区块链及信息安全
,具体涉及一种基于零知识证明的区块链账户模型隐私保护方法。
技术介绍
区块链作为一种不可篡改和不可伪造的分布式账本,实质上是一种链式数据结构,这种链式数据结构特点在于按照时间顺序将数据区块以顺序相连的方式组合。区块链系统分为UTXO(unspendtransactionoutput)和账户两种模型体系,账户模型系统中由每一个账户负责对应的事务处理,类似于银行账户,这也是我们日常生活中最成熟的交易模型;UTXO是指地址上所有未花费交易的总和,它的最小单位是交易,每个交易对应到金额。区块链中每一个参与者都能够获得完整的数据备份,所有交易数据都是公开和透明的,这个是区块链的特点,这种特点对于某些应用是优点,但在很多情况下这是个缺点,现有的绝大部分具有隐私保护(即保护交易双方信息以及交易内容不被第三方知晓)功能的区块链如zcash是基于UTXO的。关于区块链的隐私保护问题,目前有混币、环签名、同态加密、零知识证明等几种方式:混币原理(CoinJoin)的实现思路是割裂输入地址和输出地址之间的关系。在一个交易中,假如有很多人参与,其中包括大量输入和输出,这样会比较难在输入和输出中找出每个人的对应对,这样一来,输入与输出之间的联系被事实上割裂;多次混币、每次少量币,效果更好。此方法虽然高度匿名,但其风险评估不到位,必须信赖匿名的第三方。环签名是一种简化的类群签名,它因为签名由一定的规则组成一个环而得名。在环签名方案中,环中一个成员利用他的私钥和其他成员的公钥进行签名,但却不需要征得其 ...
【技术保护点】
1.一种基于零知识证明的区块链账户模型隐私保护方法,包括如下步骤:(1)转账人将明文余额转换为零知识余额;(2)对零知识余额进行转账操作;(3)转账人更新自己的余额;(4)收款人更新自己的余额;(5)用户将零知识余额转换为明文余额。
【技术特征摘要】
1.一种基于零知识证明的区块链账户模型隐私保护方法,包括如下步骤:(1)转账人将明文余额转换为零知识余额;(2)对零知识余额进行转账操作;(3)转账人更新自己的余额;(4)收款人更新自己的余额;(5)用户将零知识余额转换为明文余额。2.根据权利要求1所述的区块链账户模型隐私保护方法,其特征在于:所述步骤(1)的具体实现过程为:首先定义明文余额转换为零知识余额的零知识转化函数Mint;然后调用函数Mint对指定账户的明文余额进行转化并产生相应的零知识证明,该证明内容包括:①证明转化前指定账户的零知识余额确实是由该账户已有的明文余额币值转化而来;②证明当前指定账户待转化的零知识余额确实是由明文余额币值转化而来且币值小于该账户当前持有的明文余额;③证明转化操作完成后指定账户的零知识余额确实为转化前的零知识余额与新转化的零知识余额的累加。3.根据权利要求1所述的区块链账户模型隐私保护方法,其特征在于:所述步骤(2)的具体实现过程如下:2.1转账人选择一个随机数,并利用椭圆曲线的基点在椭圆曲线上相应生成一个随机的点;2.2使用Diffie-Hellman密钥交换计算得到收款人相应的随机化公私钥;2.3定义转账交易函数Send,调用函数Send进行转账操作并产生相应的零知识证明,该证明内容包括:①证明转账人当前的零知识余额确实是由转账人已有明文余额转化而来的且已有的零知识余额大于待转账的零知识余额;②待转账的零知识余额确实是由转账人实际转账的明文余额转化而来的;2.4待转账的零知识余额使用默克尔树进行组织处理,记录在以零知识余额rtcmt为树根的默克尔树上;2.5交易双方所共享的参数使用收款人随机化公钥加密,转账交易产生后,转账人将该交易的哈希值通过链下告知收款人,转账交易记录上链,转账人当前账户的零知识余额所对应的序列号链上公开。4.根据权利要求3所述的区块链账户模型隐私保护方法,其特征在于:所述步骤(3)的具体实现过程如下:对于记录在区块链上的转账交易,定义相应的转账人更新零知识余额函数Update,转账人通过调用函数Update进行零知识余额更新操作并产生相应的零知识证明,该证明内容包括:①证明存在一个零知识余额,确实是由转账人账户的明文余额转化而来,并记录在以零知识余额rtcmt为树根的默克尔树上,此过程中使用的参数为交易发起方在转账操作中生成转账交易所缓存的参数;②证明转账人当前的零知识余额确实是由其账户的明文余额币值转化而来;③证明更新后账户的零知识余额确实为转账人账户已有...
【专利技术属性】
技术研发人员:黄步添,俞之贝,杨文龙,蔡玉生,卢瑞瑞,
申请(专利权)人:杭州云象网络技术有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。