【CN109919614A】一种区块链中使用零知识证明保护智能合约隐私的方法【专利】

合集下载

利用区块链技术保护个人隐私的方法与技巧

利用区块链技术保护个人隐私的方法与技巧

利用区块链技术保护个人隐私的方法与技巧随着互联网的普及和信息化的快速发展,个人隐私保护变得越来越重要。

传统的中心化平台容易出现数据泄露和滥用个人隐私的问题,而区块链技术则提供了一种分布式和安全的解决方案。

本文将介绍一些利用区块链技术保护个人隐私的方法与技巧。

1. 匿名地交易与支付在传统的金融系统中,个人的交易和支付往往需要透露身份信息和银行账户等敏感数据。

然而,区块链技术使得个人可以进行匿名的交易与支付,保护了个人隐私。

通过使用隐私币(privacy coins)或匿名交易协议(such as confidential transactions),个人的身份和交易细节可以得到保护。

2. 分布式身份验证区块链技术可以提供一种分布式身份验证系统,将个人身份与其交易记录绑定在一起。

个人可以使用公私钥机制(public-private key mechanism)来证明自己的身份,而无需透露敏感信息。

这种身份验证方式可以避免传统的中心化数据存储系统中的单点故障和风险。

3. 数据加密与授权区块链技术可以使用加密算法保护个人数据的安全性。

个人数据可以分散存储在区块链的不同节点上,每个节点都保存了数据的加密副本。

只有在获得相应的授权后,才能解密和查看数据。

这样一来,即使有恶意攻击者入侵其中一个节点,也无法获得完整的个人信息。

4. 去中心化的社交网络传统的社交网络平台经常被指责滥用个人数据和追踪用户活动。

而通过利用区块链技术,可以构建去中心化的社交网络,让个人能够完全掌控自己的数据。

个人可以选择是否将自己的信息分享给其他人,并保留对自己数据的所有权和控制权。

5. 匿名化的身份验证为了保护个人隐私,基于区块链的身份验证系统可以使用零知识证明(zero-knowledge proof)方式进行验证,无需透露个人的真实身份信息。

这意味着个人可以证明自己拥有特定的权限或资格,而无需暴露敏感的身份信息。

6. 去中心化的数据存储传统的中心化数据存储系统容易遭受黑客攻击和数据泄露的风险。

区块链技术的隐私保护方法

区块链技术的隐私保护方法

区块链技术的隐私保护方法区块链技术作为一种去中心化的分布式数据库,具有不可篡改、透明可信的特点,被广泛应用于数字货币、供应链管理、智能合约等领域。

然而,由于区块链的特性使得数据被公开共享,个人隐私保护成为了一个重要的问题。

针对区块链技术中隐私保护的挑战,本文将介绍几种常见的解决方法。

一、数据匿名化和加密首先,为了保护个人隐私,我们可以采用数据匿名化和加密的方式。

在区块链中,通过生成无法追溯的匿名地址来隐藏转账的真实身份,提高用户的匿名性。

同时,对敏感信息进行加密处理,确保数据在链上传输和存储时,只有授权的用户才能解密获得原始信息,有效保护个人隐私不被泄露。

二、零知识证明技术其次,零知识证明技术是保护区块链隐私的重要手段。

零知识证明可以证明某个信息是正确的,却无需透露其中的具体内容。

通过使用零知识证明,用户可以在区块链上验证交易的有效性,同时保护个人信息不被公开揭示。

这种技术的应用能够有效地解决区块链隐私问题,提高用户的隐私保护水平。

三、多链架构另外,采用多链架构也是一种保护区块链隐私的方法。

多链架构将数据分布到不同的区块链上,每个区块链只存储特定类型的数据,避免了敏感信息和个人隐私在同一链上被公开共享。

通过多链结构,可以降低信息泄露的风险,提高隐私的安全性。

四、可选择的隐私保护方案此外,为了满足不同用户的隐私需求,可选择的隐私保护方案也是一项重要工作。

针对不同的场景和应用需求,可以提供不同的隐私保护级别和选择方式。

用户可以根据自身需求,选择合适的隐私保护方案。

这种灵活可选的隐私保护方案使得区块链技术在满足广泛应用的同时,保护用户的隐私。

总结起来,区块链技术的隐私保护方法包括数据匿名化和加密、零知识证明技术、多链架构以及提供可选择的隐私保护方案等。

这些方法可以有效地保护个人隐私,促进区块链技术的可持续发展。

随着隐私保护技术的不断创新和完善,相信在未来,区块链技术的隐私保护将实现更高的水平和更好的效果。

零知识证明在区块链的安全和隐私问题

零知识证明在区块链的安全和隐私问题
验证过程: 检查证明(A,B,C)满足:
已知明文x,可伪造任意证明 不可检测的后门(x)
任意创建证明,无法被发现 (零知识性) 解决信任问题:
MPC生成加密的x
MPC1: Power of tau
MPC生成参数 (可通用给任何电路) 公开可验证 安全前提:至少一人诚实
MPC2: Sapling MPC
针对特定电路生成参数 两个MPC阶段缺一不可
MPC问题
Ethereum、Tron都在进行MPC 仍有很多项目没有可信的setup
MPC过程完全人为控制 一些MPC参与经历
如果你没有参与,你不能100%确认安全 还没有考虑软件实现问题
例子:ZoKrates
ZoKrates: 零知识证明智能合约编译器 将验证逻辑编译为零知识验证合约 参数生成由合约方控制 合约生成者:证明伪造
Zcash侧信道漏洞 Reject攻击、Ping攻击 节点处理与自身地址相关的交易:信息泄漏 打破节点匿名性 https:///timings/pingreject.pdf
信任风险
setup信任问题
zkSNARKs思路: 提前生成验证者挑战:x 保留加密的x,丢弃明文x
零知识证明在区块链应用中的 安全和隐私问题
大纲
区块链和ZKP介绍 零知识证明在区块链应用中的安全和隐私问题
实现漏洞 信任风险 非屏蔽交易信息泄漏 密码方案风险 其他风险
总结
比特币的隐私问题
比特币:去中心化数字货币 防止双花:广播交易到公开账本(区块链) 比特币不存在匿名性
假名≠匿名 隐私问题:
个人交易记录/账户余额/商家现金流 钱的等价性:
如果因式分解困难,对任意NP语言都存在NIZK
零知识证明

区块链技术的隐私保护方法

区块链技术的隐私保护方法

区块链技术的隐私保护方法在当今数字化的时代,区块链技术因其去中心化、不可篡改和安全可靠等特性,正逐渐改变着我们的生活和商业模式。

然而,随着区块链技术的广泛应用,隐私保护问题也日益凸显。

如何在保障区块链技术优势的同时,有效地保护用户的隐私,成为了一个亟待解决的重要课题。

区块链技术的本质是一个分布式账本,所有的交易记录都被公开存储在链上。

这意味着任何人都可以查看这些交易信息,虽然区块链的匿名性使得交易双方的身份以加密的地址形式呈现,但通过对交易模式和地址关联的分析,仍有可能推测出用户的真实身份和交易行为,从而导致隐私泄露。

为了解决区块链技术中的隐私保护问题,目前主要有以下几种方法:零知识证明是一种非常有效的隐私保护技术。

简单来说,它允许一方(证明者)向另一方(验证者)证明某一陈述是真实的,而无需透露除了该陈述为真之外的任何信息。

在区块链中,零知识证明可以用于在不暴露交易细节的情况下,向其他节点证明交易的合法性。

比如,在一个加密货币的交易中,证明者可以在不透露自己的账户余额、交易金额等具体信息的情况下,向验证者证明自己有足够的资金进行交易,并且交易符合规则。

同态加密技术也是保护区块链隐私的重要手段之一。

同态加密允许在密文上进行计算,得到的结果解密后与在明文上进行相同计算得到的结果相同。

这意味着可以在加密的数据上进行操作,而无需对数据进行解密,从而有效地保护了数据的隐私。

在区块链中,使用同态加密可以对交易数据进行加密处理,节点在验证交易时无需解密数据,直接在密文上进行验证,既能保证交易的有效性,又能保护交易的隐私。

环签名技术则为区块链的隐私保护提供了另一种思路。

环签名是一种特殊的数字签名,签名者可以用自己的私钥和若干其他用户的公钥生成一个签名,使得验证者只能验证签名来自于这个用户集合中的某个用户,但无法确定具体是哪一个。

在区块链中,环签名可以用于隐藏交易发起者的真实身份,增加了交易的匿名性。

除了上述技术手段,还有一些其他的方法来加强区块链的隐私保护。

零知识证明在区块链的安全和隐私问题

零知识证明在区块链的安全和隐私问题
Zcash侧信道漏洞 Reject攻击、Ping攻击 节点处理与自身地址相关的交易:信息泄漏 打破节点匿名性 https:///timings/pingreject.pdf
信任风险
setup信任问题
zkSNARKs思路: 提前生成验证者挑战:x 保留加密的x,丢弃明文x
应用逻辑安全问题
应用开发者调用ZKP库来实现ZKP应用 对底层ZKP缺乏足够理解,代码容易产生安全漏洞
Semaphore双花问题
未限定nullifier长度,造成双花
Tron零知识参数未校验
未校验参数直接使用Librustzcash,造成多种安全问题(如双花)
Tron nullifier双花
电路与非电路实现不一致
未在知名项目中发现
标准与实现不一致
Zcash Version 2019.0.1 [Overwinter+Sapling] Page 139: cm^{old} 与cm未绑定,恶意攻击者可对相同note选择多个 cm^{old} ,产生多个nf,造成双花 LibrustZcash中实现没有该问题
[BCTV14] 升级为[Groth16]
可证明安全
并非第一次出现漏洞
Bryan Parno发现过另一个漏洞
是否会是最后一次?
Zcash承诺和哈希
方案复杂 仅承诺与哈希就涉及多个方案多个安全证明 有待时间考验
摘自qedit的审计报告
其他风险
完美的零知识?
数学上完美的零知识方案 [Groth16]
非屏蔽交易信息泄漏
Zcash 交易分类
t to t
t to s
s to s
s to t
1% 14%
85%
2019-09

了解区块链技术中的隐私保护方案

了解区块链技术中的隐私保护方案

了解区块链技术中的隐私保护方案随着数字化时代的到来,个人隐私保护成为人们关注的焦点。

区块链技术作为一种分布式、去中心化的数据库技术,被广泛应用于金融、供应链管理和智能合约等领域。

然而,由于区块链的公开性和不可篡改性,它也带来了一些隐私保护的挑战。

为了解决这些问题,研究人员提出了一系列区块链技术中的隐私保护方案。

在本文中,我们将探讨几种常见的隐私保护方案。

一种常见的隐私保护方案是零知识证明(Zero-Knowledge Proofs)。

零知识证明是一种加密协议,可以证明某个命题是真的,而不需要透露任何与该命题有关的具体信息。

在区块链中,零知识证明可以用于证明一个交易的有效性,而不暴露交易的具体内容和参与方的身份。

这样,用户可以在保护隐私的前提下参与到区块链网络中,并确保交易的安全和可靠性。

另一种常见的隐私保护方案是同态加密(Homomorphic Encryption)。

同态加密是一种特殊的加密技术,允许对加密的数据进行计算,而不需要解密。

在区块链中,同态加密可以用于保护交易数据的隐私。

通过将交易数据进行加密,参与方可以在无需获取明文数据的情况下进行必要的计算和验证,从而保护交易数据的隐私。

此外,还有一种常见的隐私保护方案是环签名(Ring Signatures)。

环签名是一种特殊的数字签名技术,可以隐藏交易参与方的真实身份。

在区块链中,环签名可以用于确保交易的可追踪性和匿名性。

通过环签名,任何人都可以验证交易的有效性,但无法确定交易的真实发起者,从而保护参与者的隐私。

另外,基于同态加密技术的同态秘密共享方案(Homomorphic Secret Sharing)也可以应用于区块链隐私保护。

同态秘密共享方案将秘密信息加密并分割成多个部分,然后将这些部分分发给不同的参与方。

只有同时拥有足够多的部分时,才能重构出原始的秘密信息。

在区块链中,同态秘密共享方案可以用于确保共享数据的隐私,同时通过验证多个参与方间的共享来确保数据的可靠性。

区块链技术中的零知识证明与隐私保护

区块链技术中的零知识证明与隐私保护

区块链技术中的零知识证明与隐私保护引言区块链技术作为一种新兴的分布式账本技术,已经得到了广泛的应用和关注。

它可以帮助解决许多传统金融系统中存在的问题,如信任和透明度。

然而,随着区块链技术的发展,隐私保护和安全性问题也开始引起越来越多的关注。

在这种情况下,零知识证明技术应运而生,为区块链技术的隐私保护提供了一种全新的解决方案。

本文将从零知识证明的基本概念、技术原理和应用场景,探讨零知识证明在区块链技术中的作用以及对隐私保护的重要性。

一、零知识证明的基本概念零知识证明最早由美国加州大学的计算机科学家Shafi Goldwasser、Silvio Micali和Charles Rackoff在1985年提出,指的是一种可以证明某一事实的正确性,却不需要透露具体证明的内容的证明方式。

简而言之,就是证明者可以证明自己知道某一信息,但并不需要透露具体的信息内容。

这种证明方式可以在不泄漏敏感信息的前提下进行认证和交易。

零知识证明除了具有高度的隐私保护特性,还具有以下几个基本特点:1.完备性:零知识证明要求证明者能够在没有任何失实信息的情况下向验证者证明其所宣称的陈述是正确的。

2.可靠性:零知识证明必须能够在合理的时间内得到验证者的认可,验证者不能拒绝合理的正确证明。

3.零知识:证明者可以证明自己知道某一信息的正确性,但不需要透露具体的信息内容。

4.互操作性:零知识证明必须能够适用于不同的场景和应用,而不需要对其进行修改。

二、零知识证明的技术原理零知识证明的实现涉及到很多密码学算法和技术,其中最为重要的是零知识证明系统的设计。

在一个典型的零知识证明系统中,通常包括三个主要角色:证明者(Prover)、验证者(Verifier)和挑战者(Challenger)。

1.证明者(Prover):证明者是一个想要向验证者证明某一信息的正确性的实体。

证明者通常会使用密码学算法和协议,来产生一组信息,向验证者证明自己知道某一信息,但并不需要将具体信息内容透露给验证者。

区块链中的零知识证明算法

区块链中的零知识证明算法

区块链中的零知识证明算法引言随着区块链技术的发展,我们逐渐意识到数据的隐私和安全问题变得越来越重要。

在传统的区块链中,所有的交易信息都是公开的,包括发送方、接收方和交易金额等细节。

然而,很多场景下,我们希望能够保护交易的隐私性,即不暴露任何有关交易细节的信息,同时也不影响交易的合法性验证。

为了解决这个问题,零知识证明(Zero-Knowledge Proof,简称ZKP)成为了一种被广泛研究和应用的隐私保护技术。

什么是零知识证明?零知识证明是一种特殊的加密策略,它可以让你向别人证明一些事实的真实性,但不需要提供任何关于该事实内容的任何零碎信息。

这意味着,除了事实本身以外,证明者几乎没有其他信息可以泄露给观察者或验证者。

零知识证明的应用原理在区块链中,零知识证明可以被用来证明一些交易是有效的,而不需要公开任何交易的具体内容。

具体来说,基于零知识证明的算法可以将交易的合法性证明转化为一个数学问题,而这个问题只有交易发起者才会知道如何解决。

然后,交易发起者可以使用零知识证明将解决方案提供给验证者,以证明交易的合法性,而不需要提供任何交易细节。

零知识证明的基本算法目前,有很多种零知识证明的算法存在,比如零知识SNARKs、零知识STARKs等。

其中,零知识SNARKs是应用最为广泛的零知识证明算法之一零知识SNARKs(Succinct Non-Interactive Argument of Knowledge)是一种高度压缩和高效的零知识证明算法,它可以将复杂的计算过程转化为一个简短的证明。

与其它证明算法不同,零知识SNARKs不需要进行交互,只需要证明者生成一个证明,并将其发送给验证者即可。

零知识SNARKs的工作原理可以分为三个主要步骤:1.创建证明:证明者根据交易信息和一些随机数生成一个证明。

2.验证证明:验证者接收到证明后,使用公开的交易信息和证明来验证交易的合法性。

3.验证结果:验证者根据验证的结果来判断交易是否有效,如果有效则将其添加到区块链中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201910150108.1
(22)申请日 2019.02.28
(71)申请人 北京科技大学
地址 100083 北京市海淀区学院路30号
(72)发明人 程旭辉 黄旗明 梅宇 
(74)专利代理机构 北京市广友专利事务所有限
责任公司 11237
代理人 张仲波
(51)Int.Cl.
G06Q 20/38(2012.01)
G06F 21/62(2013.01)
(54)发明名称
一种区块链中使用零知识证明保护智能合
约隐私的方法
(57)摘要
本发明涉及一种区块链中使用零知识证明
保护智能合约隐私的方法,包括:构建一个可以
保护智能合约隐私的系统,该系统分为三部分:
第一、使用基于格问题提出的零知识证明协议构
建一个部署与区块链上的公共智能合约,用于用
户合约的调用,执行和验证,以期达到保护用户
合约运行和执行结果的隐私性;第二、构建一个
对所存储的用户合约仅返回合约哈希值的分布
式存储网络,以期达到保护用户合约源代码隐私
的目的;第三、可以为用户提供包含合约部署和
调用接口的用户端,以便和区块链平台以及分布
式存储网络进行交互。

权利要求书2页 说明书5页 附图3页CN 109919614 A 2019.06.21
C N 109919614
A
1.一种区块链中使用零知识证明保护智能合约隐私的方法,其特征在于,包括:构建一个可以保护智能合约隐私的系统,该系统分为三部分:部署于区块链上的公共智能合约,分布式存储网络以及与区块链和分布式存储网络交互的用户端。

2.根据权利要求1所述的方法,其特征在于,部署所述公共智能合约的步骤包括:
首先基于格问题提出一种零知识证明协议算法,并基于该算法,使用编程语言开发一个公共智能合约,将公共智能合约部署到区块链上,在用户准备执行自己私人智能合约的时候,调用该公共智能合约来实现私人合约的调用、执行和验证过程。

3.根据权利要求2所述的方法,其特征在于:所述零知识证明协议算法的工作步骤包括:
加密算法:输入:公钥pk=(a,t,p,
q)以及
挑战域:χ={c∈R:||c||∞=1,||c||1≤36},
加密哈希函数标准差:输出:零知识证明密文
第一步:在集合S k 中随机均匀的选取随机向量;第二步:
利用公式计算得出密文证明π中
的其中I k 为k维的单位矩阵,0k ×k 为元素均为0的k维矩阵,为用户要加密的明文;
第三步:对于集合
从中随机选取向量
第四步:
计算
第五步:
计算
第六步:
使得
第七步:判断如下条件,如果||z||∞>6·σ,则返回第三步,
否则输出零知识证明验证算法:输入:
零知识证明公钥pk=(a,t,p,q),加密使用的哈希函数H,标准差σ,输出为0或者1,0代表验证失败,1代表验证通过;
权 利 要 求 书1/2页2CN 109919614 A。

相关文档
最新文档