好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

隐私保护技术在区块链中的应用.pptx

28页
  • 卖家[上传人]:I***
  • 文档编号:157511699
  • 上传时间:2020-12-24
  • 文档格式:PPTX
  • 文档大小:716.25KB
  • / 28 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 隐私保护技术在区块链中的应用,,,目录,,01 交易隐私保护,,,,,环签名 & 机密交易 MimbleWimble 02 智能合约隐私保护 01 零知识证明(ZK-Snark && ZK-Stark),,02 可信执行环境 (TEE),,,,,, 安全多方计算(sMPC) 同态加密 (HE) 03 链上数据隐私保护 01 fabric的隐私保护方案,交易隐私保护,,,01,,,,01交易隐私保护,隐私保护的数据包括:交易发送者,交易接收者以及交易金额 隐私保护的目的:保证交易过程的匿名性 隐私保护后,区块链系统需要满足如下两个条件: 系统能够验证接收的金额与发送的金额相等在正常的系统中,如果Alice 将 5 人民币放到Bob手里,那么Alice少了 5 人民币,Bob多了 5 人民币在 这个交易过程中没有凭空产生的钱,也没有凭空消失的钱 用户只能从自己的银行账户中进行电子转账,而不能从他人的银行账户中 转账且能够验证交易是从加密货币中的私钥持有者发出的 以Monero和Mimblewimble为例,前者主要从隐私保护的三个数据出发,后者主要从货币系统需要满足的两个 条件出发进行协议设计。

      01交易隐私保护 环签名,,环签名的过程: 密钥生成为环中每个成员产生一个密钥 对(公钥PKi,私钥SKi)签名者用自己的私钥和任意n个环 成员(包括自己)的公钥为消息m生成签名a 签名验证验证者根据环签名和消息m,验 证签名是否为环中成员所签,如果有效就接收,否 则丢弃 环签名的优势: 无条件匿名性:攻击者无法确定签名是由环中哪个成员生成,即使在获得环成员私钥的情况下,概率也不超过1/n 正确性:签名必需能被所有其他人验证 不可伪造性:环中其他成员不能伪造真实签名者签名,外部攻击者即使在获得某个有效环签名的基础上,也不能 为消息m伪造一个签名01交易隐私保护 - Monero,,,RING SIGNATURES,,,STEALTH ADDRESSES,,,Monero 是使用环签名的代表项目,并主要针对交易接收者,交易发送者,以及交易金额提出了相应的隐私保护算法实现 一. 交易发送者保护(环签名Ring Signature混淆发送者身份) 环签名由一位签署者与多位非签署者组成的“环”所构成,每一位参与者都是同等的,实际的签署者使用one-time spend key签署“环”并且使用key images对应唯一一个output,用途是防止key images对应的output被双花。

      具体实现方法(假设Alice 转给Bob 5 xmr): Alice 组装交易环,假设包含5个交易,Alice需要从区块链中任意选取4个交易当做诱饵,对于第三方 来说,这五笔交易都有可能作为signer Alice 使用one-time spend key对整个交易环进行签署,并且5个output均对应唯一的key images供矿工维 护,后续output作为输入时,检验key images来防止双花 5 XMR,,,,01交易隐私保护 环签名,二. 交易接收者保护(Stealth address也叫做 one-time public key) 具体实现方法(假设Alice 转给Bob 5 xmr): Monero钱包公钥地址包括public view key 和 public spend key,Alice 钱包首先需要使用Bob的两个public key作为随机数据源来生成one-time public key 供Bob之后使用 one-time public key在区块链上公开,但只有Alice和Bob知道双方产生了交易,Bob通过使用自己的 private view key 去从区块链上扫描可使用的one-time public key,并计算出一个 one-time private key, 从而结合private spend key对output的5xmr进行消费 第三方仅能获取到one-time public key,但没有Bob的private view key 是无法追踪到output对应的接收者身份,,,,01交易隐私保护 - Monero,,,RING CONFIDENTIAL TRANSACTIONS,,,STEALTH ADDRESSES,,,* XMR (隐藏可被验证),三. 交易金额保护(RingCT) RingCT( Ring Confidential Transactions),作为Ring Signature的改进,可以使交易金额同样被隐藏 在RingCT之前,假设Alice转给Bob 5xmr,Monero会将5xmr拆分,比如1,1.5,2.5 形成三个环签名,每个环中所有 交易金额必须相同,并且外部可以看到具体的金额,RingCT是为了解决这个缺陷而设计。

      RingCT不会暴露转账金额,但是为了矿工对交易进行验证,发起人需要提供一些commitment,证明input与output 之和相等,RingCT同时使用的range proof算法,证明output的数值大于0,并且小于转账金额(满足货币系统的第 一个条件,交易零和且不凭空造币) 如上内容足够证明交易的合法性而不需要暴露金额01交易隐私保护 - MimbleWimble,MimbleWimble是一个区块链格式和协议,依托于健壮的加密原语,提供非常好的可扩展性、隐私和可替代性 MimbleWimble依赖于两个基本属性:(对应货币系统的两个条件) 零和验证 输出总和减去输入总是等于零,证明交易没有凭空创造新的资金,而且不会显示实际金额 交易输出的所有权,基于ECC设计并且MimbleWimble中,并不是通过公私钥对实现所有权控制,具体实现 后续说明 MimbleWimble技术实现: MimbleWimble 有三个基本组件,第一个基本组件叫CT(Confidential Transaction),第二个基本组件叫 Coin Join, 第三个组件叫OWAS(One Way Aggregate Signatures)。

      第一基本组件主要实现了交易隐私,而后两个组件主要是 配合交易的结构范式,设计了区块存储优化方案,后续主要针对第一个基本组件展开说明01交易隐私保护 - MimbleWimble,Confidential Transaction: 交易的输入输出表达形式: r * G + v * H 注:运算基于ECC,G和H为椭圆曲线的两个基点,r为随机数,称作致盲因子,r*G 是r 在G 上的公钥v代表金额 如上是对交易金额进行盲化操作,一个数值在乘以椭圆曲线的基点之前是明文,乘以基点之后,成为经过椭圆曲线加 密过后的密文,且运算是单项的一旦乘过之后就不能再把它倒推回去,也没有人知道原来的明文是多少,可隐藏v 同时致盲因子r 是交易输入或输出的构造者针对具体交易自己选的随机数,这个随机数只有自己知道,不能告诉别人 假设交易的输入表达式为: ri * G + vi * H 假设交易的输出表达式为: ro * G + vo * H MimbleWimble需要对输入输出配平,即交易输出- 交易输入= 0,并且满足零和验证vi == vo 则表达式可以写成 ri * G + vi * H + (ro ri)* G = ro * G + vo * H 。

      ro r1)* G 称作余项,而ro - ri称作致盲因子差, 对于矿工需要验证余项为椭圆曲线G上的合法公钥地址,对于所有权的问题,MimbleWimble使用致盲因子差作为交易 的“私钥”签署,即双方交易前不暴露ri与ro的前提下,使用互动式交易确定致盲因子差,进行交易构造交易中 的余项作为“公钥”,致盲因子差作为“私钥”01交易隐私保护 - MimbleWimble,其他技术实现: Range Proofs :范围证明保证金额大于0,且小于转账金额,是一个简短的零知识证明(RingCT同样使用到), Bulletproofs是最新的range proofs算法实现,将证明大小压缩至700b左右 Coinjoin:有多个交易时,每一个交易等式左边和右边都是可以配平的:把多个交易等式的左边加在一起,右边加 在一起,还是一个合法的交易,做到优化区块存储 One Way Aggregate Signatures:单向的聚合签名,根本的作用是,当拿到一个区块中的很多交易输入、输出时, 没有办法判断哪些交易的输入和输出原本是一个交易它的实现是把每个交易的致盲因子之差分成两项,一项用 签名证明,另一项直接公布明文。

      而对直接公布明文的那一项,对于所有的交易,可以直接把它们加在一起,则 可以验证coinjoin的交易合法性,但是没法将明文之和拆分,恢复余项进行输入输出的配对查找逻辑智能合约隐私保护,,,02,,,,02,智能合约隐私保护,SC隐私保护的目的:上链或跨链数据交互过程中的复杂计算场景中,确保计算涉及到的数据的隐私性 适用场景:电子选举、电子投票、电子拍卖、秘密共享、门限签名、供应链金融等 单纯链上实现智能合约层面的隐私保护,存在技术难点以及效率的问题,目前主流的实现思路: Layer1 + Layer 2 ,方案有两种(零知识证明+ 安全多方计算sMPC)以及 (零知识证明+ 可信 执行环境TEE) Layer 1 负责存证和验证执行,Layer 2 负责执行隐私计算,,,,02,智能合约隐私保护 零知识证明,智能合约的隐私数据限制在参与方之间,隐私拥有者负责计算任务 ZK-Snark (Zero Knowledge Succinct Non-Interactive Argument of Knowledge) Non-Interactive 非交互,省去多轮通信验证 ZK-Stark (Zero Knowledge Scalable Transparent Argument of Knowledge) Transparent 无需trusted step 以及抗量子计算机特性,,,,02,智能合约隐私保护 ZK-Snark,,定义: ZK-Snark包括三个算法表达式 G、P、V (步骤如下): Verifier:(pk,vk) = G(,C) (G为生成密钥算法,为隐私参数, C为程序,每一个程序C,pk与vk只需要生成一次) Prover:(即proof) = P(pk, x, w) (P为隐私拥有者证明函数,x 为公开数据,w为需要隐私保护的数据) Verifier:V(vk, x, ) 验证为true,证明Prover拥有隐私保护的 数据w 缺陷:如果被Prover知道,则可以生成假的proof,即便不知道w,也可以使得V(vk, x, ) 验证为true 以太坊目前集成了ZK - Snark验证的函数,链上合约作为Verifier,可针对链下的prover提供的proof进行验证,,,,02,智能合约隐私保护 ZK-Stark,首先列举ZK-Snark的缺陷: 需要假设trusted setup是安全的,即第一步生成(pk,vk)使用的是受到保护的 扩展性有待提升(通信复杂度,签名复杂度,验签复杂度) 可被量子计算机攻击 ZK - Stark解决了ZK - Snark最致命的软肋即依赖于trusted setup ( 若暴露,证明会被伪造且验证通过),并且ZK - Stark使用了更加简单的基础密码学,避免使用了椭圆曲线,双线性映射(pairings)等,取而代之的是哈希函数与信 息论,并且抗量子计算机。

      弊端是ZK - Stark的通信量会大一些验签复杂度、签名复杂度、通信复杂度对比图(空心三角代表排除trusted setup的ZK-Snark),,,,02,智能合约隐私保护 可信执行环境,TEE结合区块链的交互实现流程图:,,图片出处:,用户加密数据,并。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.