主页 > 最新版官网imtoken > 来自霍格沃茨的密码学——区块链法术Mimblewimble解读|DeepHas

来自霍格沃茨的密码学——区块链法术Mimblewimble解读|DeepHas

最新版官网imtoken 2023-02-27 05:50:24

文/杨光(Conflux研究总监)

今年的315,不知道大家有没有看到一个新闻,手机在尝试连接wifi的时候,会广播你的MAC地址。 其他人可以使用 wifi 探测器找到您的 MAC 地址。 并且因为这是和手机绑定的,所以可以进一步对应到你的手机号码和个人身份等信息。 所以大家说出门最好关掉WLAN,不要泄露自己的MAC地址。 但如果是在比特币上,可能连探查都不需要,直接搜索地址,就能找到对应账户的交易记录。 账户上的金额流入流出,大家都看得见。

为什么? 因为比特币虽然被称为加密货币,但实际上并不能保护隐私。

添加“加密”货币的神话

比特币利用什么作为假名_比特币之父能不能随意制造比特币_比特币分叉对比特币的影响

现在,让我们想想比特币使用了多少密码学? 首先,比特币使用抗碰撞的哈希引用来构建区块链结构,同一个哈希引用不会对应两个不同的区块; 第二,比特币上的每一笔钱都由对应的公钥和私钥控制。 除此之外,比特币并没有应用太多密码学。

因此,我们可以说比特币的安全是有密码学保护的,而隐私则不然。 我们可以通过多种方式进行分析,比如根据交易的相关性、交易时间、交易广播情况,找出账户对应的个人是谁,从而知道交易状态等隐私信息这个人在比特币上的。

比特币之父能不能随意制造比特币_比特币分叉对比特币的影响_比特币利用什么作为假名

Mimblewimble 的目的就是为了改善比特币的这个问题。 今天我们先简单介绍一下Mimblewimble隐私保护技术的原理,然后说说它的实际应用实例。

“伏地魔”创造的 Mimblewimble

比特币利用什么作为假名_比特币之父能不能随意制造比特币_比特币分叉对比特币的影响

Mimblewimble 实际上并不是一个传统的英文单词。 它出自著名小说《哈利波特》中的“混乱诅咒”法术——施法的效果是让对方说话含糊不清,从而失去施法能力。 能力。 当然,区块链中使用的Mimblewimble绝对不是这个咒语的本义,它指的是比特币交易中保护用户数据隐私的提议。

该提议最初是在比特币的 IRC 频道上匿名发布的,化名是 Tom Elvis Jedusor,这是伏地魔在法语版《哈利波特》中的名字。

事实上,最初提出的 Mimblewimble 解决方案并不完整,经过社区其他人的改进和完善,才形成了现在的版本。 这是一种基于输出模型为公共账本提供加密货币隐私的设计方案。 它不涉及共识层,几乎可以用于任何共识规则系统。

与比特币相比,Mimblewimble 的主要优势在于信息的隐私性,例如交易金额等隐私信息都受到密码学的保护。 隐私的一个直接好处是,交易中的数字资产是完全可替换的——例如,一些资金可能会被第三方识别为未知,甚至被标记为赃款,使用时可能会被拒绝。 风险,收款人必须承担额外的验证费用以避免此类风险。

另一方面,比特币等非匿名数字货币的交易历史是完全透明公开的。 如果对每笔交易的金额和去向进行分析,其实可以得到很多隐私信息,这也阻碍了它们得到更广泛的应用。 交换媒介。

其实早在比特币之前,就有一种古老的交易形式可以做到很好的隐私保护:交易双方将钱藏在袖子里完成交易,这样即使有其他人见证了交易,他们无法知道交易金额和其他私人信息。 但将这种想法直接复制到区块链中并不容易。 因为在公共账本中,每笔交易的合法性都需要他人验证,以确保交易的发起者确实授权了交易,并且交易没有引起恶性通货膨胀。

怎样才能“隐瞒交易的具体信息”,同时让他人验证交易的合法性呢? 这就是 Mimblewimble 解决的问题。

我们先来看看大家最熟悉的比特币的设计。 众所周知,比特币并没有很好地保护交易隐私:在比特币系统中,虽然每个用户在链上都有一个匿名钱包地址作为假名/假名,但每个地址对应的交易记录和信息实际上可以被上传到链上后通过公共渠道查询。 通过对匿名地址交易的用户信息进行交叉分析,可以轻松追溯用户的真实身份。

MimbleWimble 的三大贡献是提高比特币的隐私性、可替代性和可扩展性

比特币利用什么作为假名_比特币之父能不能随意制造比特币_比特币分叉对比特币的影响

最初提出 MimbleWimble 程序的目的是为比特币提供隐私保护。 使用后有以下好处:

保证隐私:账户所有权和交易关联将被隐藏,交易金额也将被隐藏。 这也是 MimbleWimble 最直接的好处。

实现比特币的可替代性:这意味着每一笔钱都是同样“干净”的,可以相互替代。 例如,在比特币中,一些钱可能被标记为偷来的钱。 一旦收到此类比特币,就存在无法花费的风险——许多机构将拒绝接受此类赃款。 有了私密性,每一笔钱的地址都可以更换,最直接的好处是收款人不需要跟踪收到的钱是否是赃款,这会为交易减少很多额外的负担. 就像你平时花人民币的时候,一般不会具体去查序列号,而是先查一下钱是不是被别人从银行偷走的。

对缩放的一些贡献:这是一个额外的好处。 主要通过剪枝,可以减少状态历史的大小,降低存储压力和同步数据的难度。

Mimblewimble主要提高了交易的隐私性,让其他人无法轻易看到哪些用户有交易,更谈不上交易的具体金额。

事实上,Mimblewimble 交易的连通性保护是一种比较被动的方式。 也就是说,你不会保存所有的交易记录,所以你无法直接从网上查询很久以前的交易记录。 但如果你实时关注每笔交易的动态并全部记录下来,你仍然可以知道每笔交易是哪个用户发给了谁,但即便如此,交易金额仍然不会从头到尾公开。

比特币利用什么作为假名_比特币之父能不能随意制造比特币_比特币分叉对比特币的影响

Mimblewimble使用的技术主要包括机密交易(Confidential Transaction,又名CT)、Coin Join和Cut-through。 简要细分如下:

如果想深入理解Mimblewimble的原理,需要了解椭圆曲线和Pedersen承诺方案的基础知识(有兴趣的读者可以自行查阅相关资料,此处省略5000字)。

简单来说,关于椭圆曲线我们只需要知道: 1)椭圆曲线和我们高中学的椭圆没有关系,99%以上的人大学毕业都不会学; 2)椭圆曲线上的元素加法和标量乘法是可以的,但除法是极其困难的——即给定椭圆曲线上的两个点G和H,我们很容易算出G+H或233*G对应的是哪个元素到 ,但很难计算出H/G的值(即找到一个满足k*G=H的整数k)。 椭圆曲线签名实际上利用了这种单向特性。

Pedersen承诺方案是一种承诺方法,即很难根据承诺值计算出对应的明文,但如果给出明文则很容易验证其是否对应于承诺值。 这其实有点类似于我们常用的防碰撞哈希函数。 在《三国演义》中,周瑜和诸葛亮写下了各自手掌上的破曹计划,同时摊开,描述了一个离线版的“承诺-验证”过程。

当然,Pedersen commitment scheme 有一些额外的性质,即加法的同态性。 它将以C=r*G+v*H的形式记录要提交的数v和一个随机数r,其中G和H是椭圆曲线群的两个生成元。 这样,我们就可以通过分别关于(v1,r1)和(v2,r2)的两个承诺值(根据椭圆曲线的相加)相加得到一个关于(v1+v2,r1+r2)的承诺值,并且在这个过程中,不需要知道v1和v2的值。

可能说到这里,大家会觉得太学术了。 椭圆曲线有什么用? 其实椭圆曲线归根结底是为了保护账户的隐私和安全。 例如,椭圆曲线就像一个不透明的袋子,你可以把你的黄金放进去,没有人能看到你有多少黄金。 但是,你可以向别人证明,几袋加起来一共是100两黄金,但同时别人却无法知道每袋是多少两。

Mimblewimble的框架和原理

比特币利用什么作为假名_比特币之父能不能随意制造比特币_比特币分叉对比特币的影响

下面,我们从三个方面来介绍一下Mimblewimble的框架:第一,每个Output的输出是什么,也就是每一笔钱会如何存储; 其次,每一笔交易是什么,也就是这些Outputs如何转换; 最后,如何将交易打包成区块,并将区块链接成整个区块链。

比特币利用什么作为假名_比特币分叉对比特币的影响_比特币之父能不能随意制造比特币

我们先来看一下每笔交易的Output的呈现形式。 与比特币中的 UTXO 一样,Mimblewimble 的 UTXO 也是所有未花费的 Outputs 的列表。 不同的是,比特币的UTXO列表中每一项的呈现格式是一个地址对应一个明文数量,而Mimblewimble不是这样。 Mimblewimble 这里使用 Pedersen 承诺方案来存储每个 Output 的数量,并使用随机数部分作为私有信息来为交易生成签名。 另外,每一个Output还需要附上金额范围的合法证明,避免出现负数或溢出的问题。

然后是交易的处理。 交易实际上是资金从之前创建的Output流向新创建的Output的过程。 在 Mimblewimble 中,每笔交易的输入和输出都以 Pedersen 承诺方案的形式出现,金额是隐藏的。 那么如何验证交易的合法性呢? 这里其实有两点需要验证:一是同一笔交易的输入输出金额在必要的时候是可以匹配的; 另一种是交易已经得到输入资产所有者的授权。

如果有明文金额信息,第一项非常容易验证,只需要比较输入总金额之和等于总输出金额加上手续费即可。 但是Mimblewimble交易中并没有具体金额,所以这里使用加法同态的性质进行验证。 例如,现在有两个输入 C1=r1*G+v1*H 和 C2=r2*G+v2*H 以及两个输入 C3=r3*G+v3*H 和 C4=r4*G+v4*H ,我们只需要验证(C1+C2)-(C3+C4+fee*H)=k*G。 因为只有当v1+v2=v3+v4+fee时,H前面的系数才能正好抵消,只剩下G的倍数。

这里的k*G称为超值,可以作为公钥。 用于验证的交易是经过资产所有者认可的,即需要以k为私钥的签名来证明交易是授权的。 . 因为k实际上是r1、r2、r3、r4的线性组合,其中r3和r4是接收方选择的随机数,所以上述签名实际上需要发送方和接收方共同进行一次签名,其中k为私钥。 需要多次签名才能完成。 交易手续费、超额价值和相应的签名共同构成交易内核,用于辅助验证交易的合法性。

事实上,仅靠上述步骤并不足以保证交易的合法性。 如果产出量为负,其实可以凭空造出一些钱。 比如我给两个账户转1块钱,这两个账户分别是正1万元和负1万元。 这样一来,虽然转账前后的总额是相等的,但其实我可以舍弃掉。 金额为负数的账户被丢弃,所以最后的结果就是凭空多了一笔钱。 所以为了解决这个问题,每个输出还必须附带一个范围证明,用来保证输出对应的数量是正的,并且在一定的范围内。 这个证明最初是用环签名制作的。 缺点是证明比较长,证明范围在(0,2^64)中大约5kB。 后来,借助 Bulletproof 的零知识证明技术,范围证明的大小可以缩小到 1kB 以下。

接下来,我们来谈谈如何将交易打包成区块。 这里 Mimblewimble 使用了一种类似于比特币中 Coin Join 技术的方法,将所有交易的输入和输出排列在每个区块中,以形成一个非常大的交易。 通过同态加法的性质,我们可以很容易地验证这笔新交易的输入和输出总量是否平衡。 但显然,矿工不可能重新签署交易。 所以每笔交易的内核都会被保留,用于辅助验证。

这里其实有个小技巧,就是如果直接按照“超额价值=输入承诺之和-输出承诺之和”的方式存储,仍然可以从内核中使用超额价值的值整个区块的输入和输出 找到对应交易的输入和输出。 因此,为了消除这种相关性,Mimblewimble 要求每笔交易在超额价值之外还要指定一个偏移量,使得“超额价值+偏移量*G=输入承诺之和-输出承诺之和”。 那么在打包一个区块的时候,可以将整个区块中所有交易的offset加起来就是一个总的offset。 这个总偏移量不仅足以帮助验证区块中交易的合法性,还可以隐藏单个交易的偏移量并消除关联。 性别。

有了单独的区块后,我们可以把整个区块链历史上的所有区块放在一起,然后进行混合操作,也就是所谓的切入。 在这个操作之后比特币利用什么作为假名,所有花费的输出都可以从交易历史中移除——因为它们将作为输入和输出出现一次,可以抵消验证金额。 当然,去掉输出也可以去掉它们对应的范围证明,这样可以节省很多空间。

经过这样的剪枝,输入端只剩下Coinbase发币的输入,实际上可以直接从当前区块的高度计算出来,不需要存储; 留在输出端的恰好是所有尚未花费的输出,也称为UTXO。 那么区块链的整个历史就不能再存储那些已经花费掉的输出。 为了验证从 Coinbase 输入到 UTXO 的交易的合法性,仍然需要保留所有历史交易的内核,但内核的大小仍然远小于每笔交易的大小。

Mimblewimble 在可扩展性方面的意义

比特币利用什么作为假名_比特币之父能不能随意制造比特币_比特币分叉对比特币的影响

比特币目前有近 4 亿笔交易,但 UTXO 中只有约 6000 万笔输出。 如果一个新用户想要加入比特币网络,他必须首先知道所有过去 200+GB 的挖矿历史,然后才能验证最新的区块。 但如果采用Mimblewimble方式,区块链的交易历史将被丢弃,只留下约25GB的历史交易内核,这样数据处理的复杂度将大大降低。 当然,Mimblewimble 的 UTXO 需要为每个输出自带范围证明,这是一个额外的负担,但这个负担只与 UTXO 的大小有关,与整个链运行了多长时间无关。 此外,在采用新的 Bulletproof 技术后,范围证明的规模和验证效率都得到了极大的提升。

比特币分叉对比特币的影响_比特币之父能不能随意制造比特币_比特币利用什么作为假名

Mimblewimble在实际项目中的应用

比特币利用什么作为假名_比特币之父能不能随意制造比特币_比特币分叉对比特币的影响

比特币利用什么作为假名_比特币分叉对比特币的影响_比特币之父能不能随意制造比特币

2018 年底和 2019 年初,两个基于 Mimblewimble 的项目 Grin 和 Beam 上线。 它们都为交易提供了更好的隐私性:没有地址,没有交易金额,很难链接交易。 这两个项目都使用 Bulletproof 技术进行范围证明。 此外,Grin 还支持多种常用脚本。 Beam 还计划在今年实现对通用脚本的支持。 这在原始的 Mimblewimble 协议中是无法实现的,还使用了一些特殊的技术。

这两个项目最大的区别在于发币规则和开发团队获得报酬的方式:Grin选择线性无限发行策略,开发团队的报酬完全取决于用户和矿工的捐赠; Beam采用更接近比特币的上限和固定周期减半发行策略,开发团队通过抽取前五年的挖矿奖励来获得收入。

我们来看一下两者的简单对比:

Grin和Beam都是Mimblewimble技术在加密数字货币实践中非常好的尝试。 虽然它们还存在着种种不成熟和不足比特币利用什么作为假名,但这样的尝试必将为未来区块链上的隐私保护提供更多有价值的经验。 (本文每周二首发于DeepTech平台DeepHash专栏)

比特币之父能不能随意制造比特币_比特币分叉对比特币的影响_比特币利用什么作为假名

杨光

杨光毕业于清华大学姚班,获博士学位。 清华大学交叉信息研究所计算机科学博士。 在加入Conflux团队之前,曾在丹麦奥胡斯大学、中科院计算技术研究所、比特大陆工作。 他的研究兴趣包括密码学、博弈论和区块链。 博士论文曾获中国密码学会优秀博士论文奖。

关于 DeepHash 专栏/每周二

文/林佳怡

“区块链技术非常复杂,存在很多误解。 更可怕的是,很多人自以为懂区块链技术,实则无知。 学术机构负有培养下一代创新者的巨大责任。 ”在杜克大学商学院开设区块链课程的教授 Campbell Harvey 曾感慨地说。

每一项新兴技术的发展都有其周期,技术越有可能带来重大变革,这种周期就越明显。 就在区块链技术进入所谓的“幻灭低谷”之际,DeepTech认为,下一个行业风口现在在各个顶尖大学的实验室,在各国央行和监管机构的研究室,在行业组织. 研讨会中酝酿。

DeepTech认为,这是关键时刻。 作为一家坚持对科技行业进行深度报道的专业媒体和科技服务商,我们有责任也有必要。 至此,我们将带领读者拨开迷雾,澄清误区,加深对区块链技术的认识。

正因如此,我们每周二定期推出 DeepHash 专栏。 DeepTech资深编辑林嘉义邀请万千学者与天德链创始人蔡伟德、分布式系统专家王嘉平、物联网区块链创业公司Biilabs创始人朱一真等专家学者共同维护,每周一次,带领读者从技术研发、法规政策、行业标准、国际趋势等方面深入挖掘未来3-5年真正具有产业化潜力的区块链知识。

-结尾-

比特币利用什么作为假名_比特币之父能不能随意制造比特币_比特币分叉对比特币的影响

比特币之父能不能随意制造比特币_比特币利用什么作为假名_比特币分叉对比特币的影响