为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

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

2020-01-12 49页 ppt 1MB 3阅读

用户头像 个人认证

IT人

暂无简介

举报
零知识证明在区块链的安全和隐私问题零知识证明在区块链应用中的安全和隐私问题大纲区块链和ZKP介绍零知识证明在区块链应用中的安全和隐私问题实现漏洞信任风险非屏蔽交易信息泄漏密码方案风险其他风险总结比特币的隐私问题比特币:去中心化数字货币防止双花:广播交易到公开账本(区块链)比特币不存在匿名性假名≠匿名隐私问题:个人交易记录/账户余额/商家现金流钱的等价性:黑钱/收藏币隐私VS可审计性保护隐私?→数据加密加密与公开可审计性存在冲突零知识证明x∈R,w接受或拒绝x∈R……π完备性:如果论述是正确的...
零知识证明在区块链的安全和隐私问题
零知识证明在区块链应用中的安全和隐私问题大纲区块链和ZKP介绍零知识证明在区块链应用中的安全和隐私问题实现漏洞信任风险非屏蔽交易信息泄漏密码风险其他风险总结比特币的隐私问题比特币:去中心化数字货币防止双花:广播交易到公开账本(区块链)比特币不存在匿名性假名≠匿名隐私问题:个人交易记录/账户余额/商家现金流钱的等价性:黑钱/收藏币隐私VS可审计性保护隐私?→数据加密加密与公开可审计性存在冲突零知识证明x∈R,w接受或拒绝x∈R……π完备性:如果论述是正确的,证明者可以说服验证者正确性:如果论述是错误的,证明者无法说服验证者(可忽略概率说服)零知识性:验证者除了论述是正确的之外,无法获得任何其他信息非交互式零知识证明(NIZK)如果因式分解困难,对任意NP语言都存在NIZK零知识证明加密全部交易证明π:非交互式零知识证明,证明加密的交易合法(满足合法规则、未双花)解决加密与公开可审计性的冲突zkSNARKs通用性零知识证明方案性能通常不高区块链性能要求高zkSNARKsSuccintNon-interactiveArgumentofKnowledgeZero-knowledgezkSNARKs流程图待证明问题电路R1CSQAP参数生成证明者验证者FlattenSynthesizeIfftSetupPKVKx’,π’x∈R(x’,w’)∈R区块链上zkSNARKs的应用流程待证明问题电路R1CSQAP项目方:参数生成交易生成全网验证FlattenSynthesizeIfftSetupPKVKx’,π’x∈R(x’,w’)∈R1.验证逻辑2.等价转换3.公链参数生成4.交易生成(c1,c2,c3,π)5.全网验证全景图零知识证明在区块链应用中的安全和隐私问题实现漏洞信任风险非屏蔽交易信息泄漏密码方案风险其他风险实现漏洞实现漏洞内存破坏漏洞内存安全语言:rust、java、golibSNARKs(C++),该场景中,内存破坏相关漏洞难以利用逻辑漏洞电路问题应用层逻辑问题密码实现漏洞新的密码原件实现容易出现漏洞电路设计电路设计复杂大量密码算法实现大量约束、优化审计需要高超的密码技巧以zcash为例输入输入输出输出…………绑定签名Zcash屏蔽交易证明输入的总额与输出的总额相等输入锚rt唯一值nf根节点rt使用签名值承诺cv证明输出输出承诺cmu临时密钥epk密文1密文2值承诺cv证明输出电路公开私有中间值摘自qedit的审计报告输入电路公开私有中间值摘自qedit的审计报告电路常见问题电路设计漏洞:ZcashFaerieGold攻击攻击者可选择相同的rho,造成接收者无法使用收到的钱。链接:https://github.com/zcash/zcash/issues/98电路与非电路实现不一致未在知名项目中发现标准与实现不一致ZcashVersion2019.0.1[Overwinter+Sapling]Page139:cm^{old}与cm未绑定,恶意攻击者可对相同note选择多个cm^{old},产生多个nf,造成双花LibrustZcash中实现没有该问题应用逻辑安全问题应用开发者调用ZKP库来实现ZKP应用对底层ZKP缺乏足够理解,代码容易产生安全漏洞Semaphore双花问题未限定nullifier长度,造成双花Tron零知识参数未校验未校验参数直接使用Librustzcash,造成多种安全问题(如双花)Tronnullifier双花未校验一笔交易多个输入的nullifier是否不同,造成双花密码实现安全问题新方案实现易带来额外风险LibSNARKs:R1CS-to-QAP规约漏洞只有QAP中多项式是线性独立的,才能保证soundness增加冗余约束修复问题https://eprint.iacr.org/2015/437.pdfZcash侧信道漏洞Reject攻击、Ping攻击节点处理与自身地址相关的交易:信息泄漏打破节点匿名性https://crypto.stanford.edu/timings/pingreject.pdf信任风险setup信任问题zkSNARKs思路:提前生成验证者挑战:x保留加密的x,丢弃明文x验证过程:检查证明(A,B,C)满足:已知明文x,可伪造任意证明不可检测的后门(x)任意创建证明,无法被发现(零知识性)解决信任问题:MPC生成加密的xMPC1:PoweroftauMPC生成参数(可通用给任何电路)公开可验证安全前提:至少一人诚实MPC2:SaplingMPC针对特定电路生成参数两个MPC阶段缺一不可MPC问题Ethereum、Tron都在进行MPC仍有很多项目没有可信的setupMPC过程完全人为控制一些MPC参与经历如果你没有参与,你不能100%确认安全还没有考虑软件实现问题例子:ZoKratesZoKrates:零知识证明智能合约编译器将验证逻辑编译为零知识验证合约参数生成由合约方控制合约生成者:证明伪造非屏蔽交易信息泄漏Zcash交易分类85%14%1%ttotttosstosstot2019-09透明交易 部分频闭交易 完全频闭交易大多数的交易可被追溯Zcash货币池95%3%2%透明池 sapling池sprout池2019-09经验式分析非屏蔽交易信息泄漏相似的使用习惯相关的地址:地址聚类分析相关的金额:金额匹配分析相关的时间:时间相关分析:Shadowbrokers地址A地址C地址B1.1111Zec5.4321Zec6.5432Zec屏蔽池USD1天后轻节点隐私问题大多数参与者是轻节点解密后才能知道交易归属轻节点无区块数据解密交易:轻节点需将解密密钥交给全节点屏蔽交易对轻节点不友好:计算开销大轻节点隐私无法得到保障目前ZKP数字货币项目主要为全节点设计:市场上未见有好的轻节点解决方案Tron交易扫描RPC服务非屏蔽交易信息泄漏信息泄漏原因:轻节点对屏蔽交易支持不足交易所仅支持透明交易经验式对抗方法:使用屏蔽交易每次使用新地址金额不要相同等待足够长的时间最佳方案:只使用屏蔽交易密码方案风险密码方案风险ZKP技术相对较新16年,17年大规模使用有待时间考验参数选择和优化比较激进可证明安全有的困难问题并不标准依赖太多安全问题缺乏足够的审计Zcash伪造漏洞CVE-2019-71672018年3月1日发现(ArielGabizon),2019年公开零知识证明密码方案[BCTV14]漏洞任意人可伪造证明,凭空创造Zcash影响多个Zcash的分叉项目大概8个月时间才完成修复改变整个证明方案,升级全网没人知道漏洞是否被利用,因为是零知识的Zcash官方认为漏洞没有被利用:很少有人拥有的高水平密码技术发现该漏洞未发现zcash总额出现明显问题Zcash伪造漏洞CVE-2019-7167[BCTV14]并不存在可证明安全[BCTV14]参数生成存在冗余元素可被利用生成伪造证明原理并不复杂[BCTV14]升级为[Groth16]可证明安全并非第一次出现漏洞BryanParno发现过另一个漏洞是否会是最后一次?Zcash承诺和哈希方案复杂仅承诺与哈希就涉及多个方案多个安全证明有待时间考验摘自qedit的审计报告其他风险完美的零知识?数学上完美的零知识方案[Groth16]实际应用会有额外的信息泄漏zcash的例子:证明是统计上零知识的密文安全性:依赖于困难问题打破了完美的零知识性完美的零知识性≠ 完美的隐私保护输出加密给ivk,ovk输出输出承诺cmu临时密钥epk密文1密文2值承诺cv证明屏蔽地址不可链接性屏蔽地址不可链接性:安全性依赖于Jubjub群上的DDH问题Jubjub群并非常用的ECC群,而是为了ZKP性能特制的DDH可能会被攻破交易信息在链上不可被抹去目前不可链接,不代未来不可链接隐私与侧信道侧信道通常不被重视利用困难不直接造成安全问题隐私系统中侧信道非常重要隐私直接遭到破坏Groth16侧信道攻击Timing侧信道:A、B、C的计算时间,直接与秘密ai相关其他侧信道:Cache总结ZKP应用的安全风险实现漏洞信任风险非屏蔽交易信息泄漏密码方案风险其他风险ZKP是一项新技术实际应用中仍然存在很多问题越来越成熟谢!
/
本文档为【零知识证明在区块链的安全和隐私问题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索