版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、隐私保护技术在区块链中的应用技术创新,变革未来目录01 交易隐私保护环签名 & 机密交易 MimbleWimble02 智能合约隐私保护01 零知识证明(ZK-Snark & ZK-Stark)02 可信执行环境 (TEE) 安全多方计算(sMPC) 同态加密 (HE)03 链上数据隐私保护01 fabric的隐私保护方案交易隐私保护0101交易隐私保护隐私保护的数据包括:交易发送者,交易接收者以及交易金额隐私保护的目的:保证交易过程的匿名性隐私保护后,区块链系统需要满足如下两个条件:系统能够验证接收的金额与发送的金额相等。在正常的系统中,如果Alice 将 5 人民币放到Bob手里,那么Al
2、ice少了 5 人民币,Bob多了 5 人民币。在 这个交易过程中没有凭空产生的钱,也没有凭空消失的钱。用户只能从自己的银行账户中进行电子转账,而不能从他人的银行账户中 转账。且能够验证交易是从加密货币中的私钥持有者发出的。以Monero和Mimblewimble为例,前者主要从隐私保护的三个数据出发,后者主要从货币系统需要满足的两个条件出发进行协议设计。01交易隐私保护 环签名环签名的过程:密钥生成。为环中每个成员产生一个密钥 对(公钥PKi,私钥SKi)。签名。签名者用自己的私钥和任意n个环 成员(包括自己)的公钥为消息m生成签名a。签名验证。验证者根据环签名和消息m,验 证签名是否为环中
3、成员所签,如果有效就接收,否 则丢弃。环签名的优势:无条件匿名性:攻击者无法确定签名是由环中哪个成员生成,即使在获得环成员私钥的情况下,概率也不超过1/n。正确性:签名必需能被所有其他人验证。不可伪造性:环中其他成员不能伪造真实签名者签名,外部攻击者即使在获得某个有效环签名的基础上,也不能 为消息m伪造一个签名。01交易隐私保护 - MoneroRING SIGNATURESSTEALTH ADDRESSESMonero 是使用环签名的代表项目,并主要针对交易接收者,交易发送者,以及交易金额提出了相应的隐私保护算法实现。一. 交易发送者保护(环签名Ring Signature混淆发送者身份)环
4、签名由一位签署者与多位非签署者组成的“环”所构成,每一位参与者都是同等的,实际的签署者使用one-timespend key签署“环”。并且使用key images对应唯一一个output,用途是防止key images对应的output被双花。具体实现方法(假设Alice 转给Bob 5 xmr):Alice 组装交易环,假设包含5个交易,Alice需要从区块链中任意选取4个交易当做诱饵,对于第三方 来说,这五笔交易都有可能作为signerAlice 使用one-time spend key对整个交易环进行签署,并且5个output均对应唯一的key images供矿工维护,后续output
5、作为输入时,检验key images来防止双花5 XMR01交易隐私保护 环签名二. 交易接收者保护(Stealth address也叫做 one-time public key)具体实现方法(假设Alice 转给Bob 5 xmr):Monero钱包公钥地址包括public view key 和 public spend key,Alice 钱包首先需要使用Bob的两个publickey作为随机数据源来生成one-time public key 供Bob之后使用one-time public key在区块链上公开,但只有Alice和Bob知道双方产生了交易,Bob通过使用自己的private
6、 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交易隐私保护 - MoneroRING CONFIDENTIAL TRANSACTIONSSTEALTH ADDRESSES* XMR (隐藏可被验证)三. 交易金额保护(RingCT)RingCT( Ring Confidential
7、Transactions),作为Ring Signature的改进,可以使交易金额同样被隐藏在RingCT之前,假设Alice转给Bob 5xmr,Monero会将5xmr拆分,比如1,1.5,2.5 形成三个环签名,每个环中所有交易金额必须相同,并且外部可以看到具体的金额,RingCT是为了解决这个缺陷而设计。RingCT不会暴露转账金额,但是为了矿工对交易进行验证,发起人需要提供一些commitment,证明input与output 之和相等,RingCT同时使用的range proof算法,证明output的数值大于0,并且小于转账金额(满足货币系统的第 一个条件,交易零和且不凭空造币)
8、 。如上内容足够证明交易的合法性而不需要暴露金额。01交易隐私保护 - MimbleWimbleMimbleWimble是一个区块链格式和协议,依托于健壮的加密原语,提供非常好的可扩展性、隐私和可替代性。MimbleWimble依赖于两个基本属性:(对应货币系统的两个条件)零和验证。 输出总和减去输入总是等于零,证明交易没有凭空创造新的资金,而且不会显示实际金额交易输出的所有权,基于ECC设计。并且MimbleWimble中,并不是通过公私钥对实现所有权控制,具体实现 后续说明。MimbleWimble技术实现:MimbleWimble 有三个基本组件,第一个基本组件叫CT(Confident
9、ial Transaction),第二个基本组件叫 Coin Join, 第三个组件叫OWAS(One Way Aggregate Signatures)。第一基本组件主要实现了交易隐私,而后两个组件主要是 配合交易的结构范式,设计了区块存储优化方案,后续主要针对第一个基本组件展开说明。01交易隐私保护 - MimbleWimbleConfidential Transaction:交易的输入输出表达形式: r * G + v * H注:运算基于ECC,G和H为椭圆曲线的两个基点,r为随机数,称作致盲因子,r*G 是r 在G 上的公钥。v代表金额。如上是对交易金额进行盲化操作,一个数值在乘以椭圆
10、曲线的基点之前是明文,乘以基点之后,成为经过椭圆曲线加 密过后的密文,且运算是单项的。一旦乘过之后就不能再把它倒推回去,也没有人知道原来的明文是多少,可隐藏v。 同时致盲因子r 是交易输入或输出的构造者针对具体交易自己选的随机数,这个随机数只有自己知道,不能告诉别人。假设交易的输入表达式为: ri * G + vi * H假设交易的输出表达式为: ro * G + vo * HMimbleWimble需要对输入输出配平,即交易输出- 交易输入= 0,并且满足零和验证vi = vo则表达式可以写成 ri * G + vi * H + (ro ri)* G = ro * G + vo * H 。(
11、ro r1)* G 称作余项,而ro - ri称作致盲因子差, 对于矿工需要验证余项为椭圆曲线G上的合法公钥地址,对于所有权的问题,MimbleWimble使用致盲因子差作为交易 的“私钥”签署,即双方交易前不暴露ri与ro的前提下,使用互动式交易确定致盲因子差,进行交易构造。(交易中的余项作为“公钥”,致盲因子差作为“私钥”。)01交易隐私保护 - MimbleWimble其他技术实现:Range Proofs :范围证明保证金额大于0,且小于转账金额,是一个简短的零知识证明(RingCT同样使用到),Bulletproofs是最新的range proofs算法实现,将证明大小压缩至700b
12、左右Coinjoin:有多个交易时,每一个交易等式左边和右边都是可以配平的:把多个交易等式的左边加在一起,右边加在一起,还是一个合法的交易,做到优化区块存储One Way Aggregate Signatures:单向的聚合签名,根本的作用是,当拿到一个区块中的很多交易输入、输出时, 没有办法判断哪些交易的输入和输出原本是一个交易。它的实现是把每个交易的致盲因子之差分成两项,一项用 签名证明,另一项直接公布明文。而对直接公布明文的那一项,对于所有的交易,可以直接把它们加在一起,则 可以验证coinjoin的交易合法性,但是没法将明文之和拆分,恢复余项进行输入输出的配对查找逻辑。智能合约隐私保护
13、0202智能合约隐私保护SC隐私保护的目的:上链或跨链数据交互过程中的复杂计算场景中,确保计算涉及到的数据的隐私性适用场景:电子选举、电子投票、电子拍卖、秘密共享、门限签名、供应链金融等单纯链上实现智能合约层面的隐私保护,存在技术难点以及效率的问题,目前主流的实现思路:Layer1 + Layer 2 ,方案有两种(零知识证明+ 安全多方计算sMPC)以及 (零知识证明+ 可信 执行环境TEE)Layer 1 负责存证和验证执行,Layer 2 负责执行隐私计算02智能合约隐私保护 零知识证明智能合约的隐私数据限制在参与方之间,隐私拥有者负责计算任务ZK-Snark (Zero Knowled
14、ge 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只需要生成
15、一次)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,v
16、k)使用的是受到保护的扩展性有待提升(通信复杂度,签名复杂度,验签复杂度)可被量子计算机攻击ZK - Stark解决了ZK - Snark最致命的软肋即依赖于trusted setup ( 若暴露,证明会被伪造且验证通过),并且ZK -Stark使用了更加简单的基础密码学,避免使用了椭圆曲线,双线性映射(pairings)等,取而代之的是哈希函数与信 息论,并且抗量子计算机。弊端是ZK - Stark的通信量会大一些。验签复杂度、签名复杂度、通信复杂度对比图(空心三角代表排除trusted setup的ZK-Snark)02智能合约隐私保护 可信执行环境TEE结合区块链的交互实现流程图:图片出
17、处:/iex-ec/iexec-end-to-end-sgx-solution-fee1e63297b2用户加密数据,并上 传到网上应用在SGX的保护下执 行用户端对应用输出进 行解密02智能合约隐私保护 可信执行环境当前的解决方案列举:SGX(Intel Software Guard Extensions)ARM TrustZone RISC-V KeyStone AMD SME/SEV优点:方案成熟、速度快、成本低缺点:中心化系统,只不过墙筑得很好安全问题,Foreshadow attack (https:/foreshadowattack.eu/)展示了如何读取被TEE保护的内存数据,以
18、及私钥。单点问题,TEE被黑,会导致整个生态系统受到安全威胁02智能合约隐私保护 MPCMPC 最早于 1982 年由华裔计算机科学家、图灵奖获得者姚启智提出,用于解决“百万富翁问 题”在没有可信第三方的前提下,两个百万富翁如何不泄露自己的真实财产状况,比较谁更 有钱。MPC 的工作原理可简单理解为,多方持有计算数据,在不解密的情况下共同执行一个计 算逻辑(比如求最大值),并获得明文计算结果。整个过程中,原始数据和计算模型都是被加 密和隐藏的。这就确保了数据在全过程中不被泄露,也分离了数据的使用权和所有权。主要包括两种实现:Garbled Circuit 混淆电路: 高通信量、低通信轮数;可以
19、保护函数;两方计算较为成熟Secret Sharing 秘密分享: 高通信轮数、低通信量;最少只需要2个诚实节点;可验证计算结果02智能合约隐私保护 Garbled Circuit基于布尔电路(逻辑门运算)使用与门为例XYX AND Y000010100111XYX AND YX0Y0Z0X0Y1Z0X1Y0Z0X1Y1Z1Garbled CircuitEnc(X1,Y1),Z1)Enc(X0,Y1),Z0)Enc(X1,Y0),Z0)Enc(X0,Y0),Z0)X0,X1等代表对0,1进行加密的结果,Enc(X1,Y1),Z1) 代表用X1与Y1与门后的加密结果为Z1交互步骤:(生成者代表X
20、,计算者代表Y)生成者把该混淆电路表交给计算者,并提供他的输入(假设是X0)假设计算者的输入是1,计算者通过不经意传输(Oblivious Transfer)可以从生成者手中得到Y1,并且生成者 不知道对方得到的是什么计算者根据X0和Y1,根据混淆电路表,只能解出Enc(X0,Y1),Z0),得到Z0交给生成者生成者查看Z0得到结果是002智能合约隐私保护 Secret SharingSecret Sharing是将秘密以适当的方式拆分,拆分后的每一个份额由不同的参与者管理,单个参与者无法恢复秘密信 息,只有若干个参与者一同协作才能恢复秘密消息。当其中任何相应范围内参与者出问题时,秘密仍可以完
21、整恢复。相关算法包括Shamirs Secret Sharing、Blakleys Secret Sharing、Proactive secret sharing、Verifiable secret sharing、Computationally secure secret sharing等Shamirs Secret Sharing :核心理论:2点足以定义一条线,3点足以定义抛物线,4点定义立方曲线等等。算法由一个二元组(k,n)表示, 秘钥分成n份,需要其中的k份即可恢复出秘密02智能合约隐私保护 Secret SharingShamirs Secret Sharing 加解密过程:(算
22、法由一个二元组(k,n)表示,也就是说,秘钥分成n份,需要其中的k份即可恢复出秘密。 )加密过程:对于待加密的明文s,任取k-1个随机数a1,a2.ak-1,并让a0=s,构造如下的多项式 = 0 + 1 + 22 + 33 + 44 + + 11 mod(p)p为大质数,针对这个多项式,任取n个数,x1、 x2、x3x 生成n个密码对:( 1 ,(1), ( 2 ,(2), ( 3 ,(3), ( ,()解密过程:收集k个密码片段的前提下,可以生成如下方程,即可求解a0得到明文s:0 + 11 + 22 + 33 + . . + 11 = 11110 + 12 + 22 + 33 + . . + 11 = 22220 + 1 + 22 + 33 + . . + 11 = 0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年韶关学院单招职业适应性测试模拟试题及答案解析
- 2026年重庆科技职业学院单招职业适应性考试模拟试题及答案解析
- 2026年江苏农林职业技术学院单招职业适应性测试模拟试题及答案解析
- 2026年自贡职业技术学院单招职业适应性考试模拟试题及答案解析
- 2026年浙江警官职业学院单招职业适应性考试模拟试题及答案解析
- 2026年四川商务职业学院单招职业适应性考试模拟试题及答案解析
- 2026年金华职业技术学院单招职业适应性测试模拟试题及答案解析
- 老年人骨质疏松的中医理疗干预
- 医生查房礼仪与患者交流
- 耳鼻喉科疾病诊断与微创手术技巧解析
- 火灾探测器的安装课件
- 酒店转让合同协议书范本大全
- DB21∕T 3722.3-2023 高标准农田建设指南 第3部分:项目预算定额
- 压力管道质量保证体系培训
- 2025年度数据中心基础设施建设及运维服务合同范本3篇
- 【八年级上册地理】一课一练2.2 世界的气候类型 同步练习
- 2024人形机器人产业半年研究报告
- 筋膜刀的临床应用
- 中国石化《炼油工艺防腐蚀管理规定》实施细则(最终版)
- 四川省遂宁市2024届高三上学期零诊考试高三生物答案
- GB/T 70.3-2023降低承载能力内六角沉头螺钉
评论
0/150
提交评论