硬核:Grin 和 BEAM 背后的 MimbleWimble 协议如何提高区块链隐私?

今年 1 月,两个致力于隐私保护的加密货币面世:BEAM 主网在 1 月 3 日上线,Grin 将在 1 月 15 日主网上线。

这两个币都是基于一种新型的隐私保护协议,名为 MimbleWimble 协议。

那么,这个协议是什么样的,又是如何运转的呢?

原文标题:《大火的 Grin 和 BEAM 都是基于这个协议开发的,它到底有啥亮点?》
作者:Arjun Balaji

MimbleWimble 协议是什么?

MimbleWimble 是一个专注于可替代性、可扩展性和隐私性的区块链协议。2016 年 7 月,Tom Elvis Jedusor (化名)在 IRC 频道 #bitcoin-wizard 上发布的白皮书中首次提出该协议,并提出了一种可以提高公共区块链隐私的新的交易方式。

(注:IRC,即 Internet Relay Chat 的缩写,是一种通过网络的即时聊天方式,主要用于群体或个体聊天。)

MimbleWimble 白皮书的诞生基于 2013 年发表的另一篇匿名论文。这篇论文中使用了单向聚合签名(one-way aggregate signatures ),并搭配一种新的密码原语——配对加密,尽管这种密码原语在学术界不太受信任。

此外,MimbleWimble 白皮书还参考了比特币核心开发者 Gregory Maxwell 提出的两项隐私建议——机密交易和 CoinJoin。

所谓的 CoinJoin,即当你想要转账时 , 可以找到另外一些也想转账的人 , 你们分别签名自己的输入,共同创建一笔交易。CoinJoin 的核心思想是利用比特币的一笔交易中可以有多个输入以及多个输出这一点 , 将多笔交易合并 , 让人难以分辨哪笔输入对应哪笔输出 , 进而达到难以追踪某个地址的资金的来源或去向的目的。

最初的 MimbleWimble 白皮书使用了与比特币相同的椭圆曲线加密技术,引起了诸多比特币研究者的关注。Blockstream 的数学家、应用密码学家 Andrew Poelstra 就是其中一员,他对 MimbleWimble 白皮书进行了改进,于 2016 年 10 月发布了「precise」版本。长久以来,Andrew Poelstra 的工作重点一直是保护隐私,致力于比特币的机密交易和「无脚本脚本」。

(注:Blockstream 是为比特币核心开发者提供资金的机构之一)

最初大家的设想是,MimbleWimble 可以作为比特币的升级版进行集成,或者作为一条侧链存在。但 Blockstream 联合创始人、比特币核心开发者 Pieter Wuille 在 2016 年表示,将其集成为向后兼容面临一些挑战 :

将 MimbleWimble 以向后兼容的方式引入比特币将是一项艰难的尝试。这不是不可能的,但会非常困难。如果非要进行实验,我希望它是一个实验性的分离链或侧链;在侧链中,我们不会引入新的加密货币,它也将是一个单独的链。 MimbleWimble 有一些缺点,比如,它没有脚本语言……尽管脚本语言在隐私方面有缺点,但它真的非常好用。Mimblewimble 将人们带向另一个极端,在那里你有更好的隐私,但确是以牺牲其他功能为代价。

MimbleWimble 确实取消了脚本语言,这种语言允许支付渠道 (如闪电网络) 和跨链原子交换等创新,这两种创新在 2017 年比特币创新中得以实现。从那时起,出现了两个独立实施的 MimbleWimble 协议,它们对社区、精神、资金和技术细节都有着不同的考虑。

MimbleWimble 协议第一个实现的项目是 Grin 。在 Andrew Poelstra 的「precise」版本发布几天后,Ignotus Peverell (化名)在 Github 上创建了名为 ignopeverell / grin 的项目。在该项目中,他证明了用 Rust 编写的协议可以达到部分实现,并展示了自己对该项目的愿景。

2017 年 3 月,Peverell 发布了 Grin 和 MimbleWimble 的技术介绍,现已成为当今协议规范的主要参考。到目前为止,这个项目仍然主要由一群匿名的开发人员负责维护,其中一些开发者使用的假名来自《哈利·波特》(比如 Luna Lovegood、Seamus Finnigan 以及 Percy WeasleyPercy),他们认为这些人名与 Grin 项目原始精神相一致。

Grin 的第一个测试网于 2017 年 11 月上线,目前该项目正在进行第四次测试,这也被认为是该项目的主网上线前的最后一个测试网。

MimbleWimble 协议的第二个项目是 BEAM,该项目始于 2018 年 3 月,在最初的 Mimblewimble 白皮书发布一周年之际正式宣布启动。BEAM 在另一份单独的白皮书中提出,其采用了类似于 Zcash 的结构,这与 Grin 的无政府主义、开源的理念形成了鲜明对比。此外,BEAM 团队还与 Grin 做出了不同的选择,包括技术选择与货币政策。BEAM 已于 2019 年 1 月初推出,其 CEO 是以色列企业家 Alexander Zaidelson。

MimbleWimble 如何提高隐私?

MimbleWimble 对比特币的 UTXO 模型做了一些修改,使基于机密交易和 CoinJoin 的私人交易成为可能。其白皮书中表述如下 :

  • 没有地址;
  • 没有数量;
  • 两个交易可以合并成一个块,只形成一个,删除所有的中间信息。

前两个部分可以通过使用机密交易来实现,这是 Blockstream 前 CTO 的提议。他提议使用一种名为 Pederson 承诺方案的密码原语,来改进比特币的 UTXO 模型。对于机密交易而言,只有交易中的参与者才能看到交易金额。从理论上来讲这是可行的,但有一个关键问题:必须让系统中的非参与者能够识别交易是否是伪造的,从而防止虚假交易。换言之,如果用户支出大于其账户余额,该笔交易能够被识别出来并终止。

在比特币中,使用简单的加密哈希函数进行交易承诺时,输入、输出和交易金额都是必不可少的。Pedersen 承诺允许发送方通过在区块链上将其作为哈希进行传播,来承诺交易量且不用向一般公众泄露;然后,用户可以通过再现存储在区块链上的哈希作为证明,来向接收者或可能需要了解该信息的任何其他人(如监管者)揭示金额。

Pederson 承诺也是可转让的,使得接收它的人可以在其他地方再次消费,且不会暴露金额。 这是因为选择的哈希是同态的,意味着你可以对它们做简单的算术函数运算,如减法和加法,而不需要解密数据。

但是,如何防止某人接受两个输入 (例如-100BTC, +100BTC) 呢?即在机密交易中使用「+ 100 BTC」作为输入,而忽略「- 100BTC」呢?机密交易的解决方案是使用另一种称为「范围证明」的密码原语。这一证明通过保证系统中的输入在一定范围内(例如「+ 100BTC」),来确保货币总供应量不变。

MimbleWimble 协议就是使用机密交易来确保系统中没有可见的地址或数量。

上面提到的第三个目标「删除所有的中间信息」,是通过使用 CoinJoin 实现的,它可以与网络中交易事务联系在一起。虽然比特币的交易事务也是使用机密交易完成的,具有匿名性,但这些事务的历史记录中仍然包含大量的隐藏信息,这使得具有足够计算资源的人能够轻松地推断网络中不同事务之间的关系,并将其可视化。如下图所示:

硬核:Grin 和 BEAM 背后的 MimbleWimble 协议如何提高区块链隐私?比特币交易可视化的例子,由 Benedict Koehler 提供

数据可视化并非没有先例——像 Elliptic 和 Chainalysis 这样的初创公司经常使用这种形式进行链上取证,来检测欺诈和「非法交易」(如洗钱、黑市活动)。一些交易所和政府组织为了调查,也会给这些公司提供资金进行追踪。对于一些私人交易而言,比特币仍然是一个糟糕的选择,因为比特币网络图易于追踪。

在 CoinJoin 中,来自多个用户的输入以所谓的匿名集的形式组合在一起,从而确保事务图更难跟踪。如下图所示,Alice 的 10 个 BTC 和 Bob 的 20 个 BTC 输入组合在一个 CoinJoin 事务中。

硬核:Grin 和 BEAM 背后的 MimbleWimble 协议如何提高区块链隐私?CoinJoin 图,Artncase 提供

像 Wasabi Wallet 这样的比特币钱包已经实现了 CoinJoin,为比特币提供交易层隐私。然而,结果并不令人满意。这些产品的匿名集往往非常小,每笔交易只有少数参与者,往往需要花费大量时间才能获得匹配的资金。研究人员甚至能够对小型匿名集中的大多数交易进行去匿名化。

MimbleWimble 通过将 CoinJoin 作为协议的核心部分,而不是由第三方钱包进行事务层的隐私改进,从而解决了这个问题。在 MimbleWimble 中,每个块中的所有事务都被自动压缩成一个事务,并且大多数中间事务信息都是隐藏的。

现在你可能在想 : 我的输入、输出和交易额都被隐藏了,交易图也变得非常模糊……那些别有用心的人,是否还有其他方法来确定我在做什么 ?

答案是:有,潜在的可能是单个节点可以利用原始 IP 地址对交易进行去匿名化。

当一个比特币交易来自钱包时,它会被广播到一组节点上,然后快速广播到比特币网络中的对等节点上。在将这些交易合并到一个块之前,由于单个交易是分散传播的,那些别有用心的人可以记录交易和其来源的 IP 地址,并通过这些信息来获取关于某人活动的信息。

MimbleWimble 的解决方法是,采取另外一个方案 Dandelion (蒲公英)。该方案由伊利诺伊大学厄巴纳—香槟分校的一个研究小组提出,并作为比特币的改进方案一直备受讨论与关注。

「蒲公英」方案的目标是混淆比特币交易的 IP 地址。该方案中,比特币交易在网络上的传播被分为两个阶段:「茎」阶段(混淆)和「绒毛」阶段(模糊)。

「茎」阶段

节点通过隐私图将数据传递给随机节点,而不是使交易信息公开给所有节点,从而使交易信息与其他公共节点分开。随着交易信息继续在链上发送,除了对于直接接收它的节点之外,它仍然保持匿名性。最后它达到一个节点,该节点通过广播向网络的其余部分宣布。

「绒毛」阶段

扩散过程是绒毛阶段的开始,此阶段表示区块链网络中交易信息的分发。虽然交易信息当前处于公共领域,但是很难找到进入该传播阶段的路径。将它映射回原始节点变得非常困难,因为初始阶段与其他随机节点的数据发送互相混淆了。正常的交易传输途径是从单一点公开向其他连接点分散;而使用蒲公英协议后,交易信息在随机节点之间采取一种安静路径,再最终通过多个节点扩散到整个网络。

整个过程如下图所示:

硬核:Grin 和 BEAM 背后的 MimbleWimble 协议如何提高区块链隐私?Giulia Fanti 在里斯本的展示的「蒲公英」示意图

机密交易、CoinJoin 和「蒲公英」等方案的组合,使得 MimbleWimble 达到「消除地址」的目的;生成交易的人所做的承诺服务于比特币中用于进行交易的公钥、私钥,使得 MimbleWimble 能够成为一种私有的加密货币,比比特币提供更加实质性的隐私保护。

BEAM 和 Grin 之间的区别

虽然 Grin 和 BEAM 都是 MimbleWimble 协议的实践者,但两者还是有着一些区别 :

  • Grin 是用 Rust 编写的,而 BEAM 是用 c++ 编写的。
  • 虽然这两个团队都「抗 ASIC」,但他们在选择哈希算法和初始方法时采用了不同的方法(后文有论述)。
  • Grin 团队选择坚持开源治理,其中一个考量就是资金问题,它靠的是捐款;BEAM 团队除了与 Zcash 一样将 20% 的代币留给创始团队外,还进行了一轮私募。
  • 在 Grin 的货币政策中,「每秒钟都会产生一个新的 Grin」,使通胀永远保持不变 (尽管逐渐接近 0% )。这与比特币等其他加密货币不同,比特币具有很强的通缩性。总而言之,Grin 团队目的是劝阻囤积 Grin。相比之下,BEAM 的供应量固定,约 2.63 亿枚硬币,133 年后总量挖完,是限量供应的通货紧缩型代币。
  • 如果出现错误,Grin 提供了一种部分同步模式解决问题,即允许节点可以用一个完整的节点同步所需数据的一小部分同步到网络;BEAM 则需要全部数据才能同步。
  • Beam 提供传统的机密交易(使用 Bulletproofs 签名)。此外,BEAM 还提出了一种可审核钱包的设计方案。选择加入审核功能,将为企业或其他用户生成唯一的「公钥—私钥对」,该密钥对允许外部第三方审查资金或查看存储在交易中的任何元数据 (例如文档或其他数字资产)。Grin 团队明确表示,在核心功能之外不会扩展额外的功能。

挖矿

Grin 和 BEAM 的挖矿前景仍不明朗,因为这两个网络都是新生的。

BEAM 团队选择了改进的 Equihash PoW ,除了计划 6 个月的硬分支之外,这还将阻止 ASIC 访问网络。

Equihash 是一种需要高内存的工作量证明,这意味你能挖到多少币主要取决于你的设备内存的大小。在短期内要创建一个低成本的挖矿定制硬件(专用集成电路)几乎不可能,所以 Equihash 被认为可以构造更去中心化的一种 POW 算法。

Grin 使用了新的 Cuckoo Cycle,这是 John Tromp 在 2015 年开发的替代 POW 的证明。尽管该算法的设计初衷是抵抗 ASIC,但该团队长期以来一直认为 ASIC 是不可避免的。2018 年 9 月出现了两种解决方案 : 一种优化为 ASIC 友好型 ( Cuckatoo31+);另一种优化为允许 GPU 竞争 ( Cuckaroo29 ), POW 每 24 小时平衡两种算法之间的挖掘奖励。

Grin 和 Beam 早期矿工选择的 GPU 是 Nvidia GTX 1080 TI,这是一种通用硬件,也用于其他区块链挖矿。

早期 BEAM 发布统计数据表明,两大矿池占据主导地位:sparkpool.com(多币种矿池,哈希率占比 69% ) 和 beepool.org (哈希率占比 30% )。

Grin 挖矿市场更加制度化,十多家私营挖矿公司提供资金、场地和 HNW (高净值客户),单个矿工在挖矿时可以选择加入矿池。grinmint 矿池和 MWGrinPool.com 是社区最早提供的两种选择。

Grin 和 BEAM 早期的挖矿中也存在诸多困难:其他 GPU (如 AMD 芯片组)的矿工难以挖矿;矿池软件不够稳定可靠;多重签名钱包的基础设施缺少。由于上述问题存在,早期那些凭借先进性技术的矿工由此获得较多的利益,造成分化。

结论

在一个社会信用系统和人工智能技术越来越成熟的世界中,你在交易什么,与谁交易,甚至未来会发生什么都一清二楚。因此,在设计未来的货币系统时,隐私是很重要的。

虽然使用隐私方法(例如比特币混合器),在执法部门看来可能「玷污」用户,但私人货币对隐私的保护还是有必要的,尽管可能没什么好隐瞒的。但「有隐私币」和「没有隐私币」是两个概念,有了之后,用与不用的决定权在于我们自己。

Grin 和 BEAM 其实是两种不同的保护隐私的方法。尽管表面上相似,但除了基于 MimbleWimble 协议之外,其他各个方面都不同。

虽然目前还不清楚哪个币会「胜出」,但这两款货币的推出,将有可能产生一些连锁反应:比如,同样主打隐私保护的加密货币(包括 Zcash、Monero)能否迎来新一轮发展?

    举报

    链闻 ChainNews 信息平台,诚邀读者共同监督,坚决杜绝各类代币发行、投资推荐及虚拟货币炒作信息。如您发现这篇文章含有敏感信息,请点击「举报」,我们会及时调查,并进行处理。

    你可能感兴趣

      App

      链闻 App

      扫码下载

      公众号 小程序