1 / 28
文档名称:

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

格式:pptx   大小:716KB   页数:28页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

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

上传人:bb21547 2022/8/8 文件大小:716 KB

下载得到文件列表

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

相关文档

文档介绍

文档介绍:隐私保护技术在区块链中的应用
技术创新,变革未来
目录
01 · 交易隐私保护
·环签名 & 机密交易
· MimbleWimble
02 · 智能合约隐私保护
01 · 零知识证明(ZK-CT( Ring Confidential Transactions),作为Ring Signature的改进,可以使交易金额同样被隐藏
在RingCT之前,假设Alice转给Bob 5xmr,Monero会将5xmr拆分,比如1,, 形成三个环签名,每个环中所有
交易金额必须相同,并且外部可以看到具体的金额,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的交易合法性,但是没法将明文之和拆分,恢复余项进行输入输出