MimbleWimble:历史、技术及Grin
前言:如果你想了解隐私加密货币Grin,这是一篇不错的文章。Mimblewimble协议在隐私保护上有特点,尽管它因此牺牲其他功能。有特点的不平衡远比没有特点的完美更引人注目。本文作者Arjun Balaji,文章来自于theblockcrypto,由“蓝狐笔记”公众号社群的“Sien”翻译。
MimbleWimble及Grin的历史回顾
MimbleWimble是专注于可互换性、隐私性以及可扩展性的区块链协议。它于2016年7月由一位匿名名字为Tom Elvis Jedusor的人在IRC频道#bitcoin-wizards上发布。它提出了结合交易的新方法,用于改善公链的隐私功能。
Jedusor的论文建立于另外一篇同样是匿名的论文基础上,该论文于2013年提出单向聚合签名(OWAS),它要求新的加密原语、配对加密,在学术界这并不受信任。它还从“保密交易”和“CoinJoin”两个提案中获取灵感,这两个隐私提案是由Bitcoin Core 开发者Gregory Maxwell提出来的。
最初的MimbleWimble论文使用了跟比特币相同的椭圆曲线加密技术,这吸引了不少比特币研究者的注意,这其中包括Andrew Poelstra,他是Blockstream的数学家和应用密码学家,他在MimbleWimble白皮书上进行了优化,于2016年10月发布了“精确”版本。Poelstra的工作长期以来一直专注于隐私方面,曾参与过比特币的“保密交易”、“无脚本脚本”这两方面工作。
最初,有设想把MimbleWimble集成进入比特币的升级版本或作为侧链存在,但Blockstream的联合创始人及Bitcoin Core开发者Pieter Wuille澄清了一些问题,他认为在比特币中集成会存在向后兼容的挑战。
“以向后兼容的方式将mimblewimble引入比特币会是艰难工作。虽然不是不可能,但会很难。如果人们想试验它,我期待通过独立链或侧链的方式来进行。在侧链中,我们不会引入新的加密货币,但它会是独立链。mimblewimble有它的缺点。特别是,它没有脚本语言......脚本语言非常简洁,但它存在隐私问题。mimblewimble则走向另外一个方向,它有很好的隐私保护,但它兼顾不了其他功能。”
MimbleWimble做出的平衡排除了富有表现力的脚本语言,脚本语言可以支持一些创新,比如支付通道(闪电网络等)和跨链原子交换,这两者都是于2017年比特币推出的。从那时起,两个独立实施的MimbleWimble协议项目开始出现,两者在社区、气质、资金和技术细节上都有不同的考虑。
第一个实施的项目是Grin,已经成为MimbleWimble的代名词,在Poelsta的基调文件发布几天后推出。创建者采用了匿名名字Ignotus Peverell(Harry隐形斗篷的最初拥有者),他创造了Github项目ignopeverell/grin,其中他提供了用Rust编写的协议的部分实现,此外,他还发布了对项目精神的看法。
2017年3月,Peverell发布了对Grin和MimbleWimble的技术介绍,现在MimbleWimble一词已经风格化了,它是如今协议规范的主要参考。到目前为止,项目由一群以匿名为主的开发者维护,其中一些开发人员根据项目的最初精神采用了“哈利波特”小说里面的名字。如Luna Vovegood、Seamus Finnigan以及Percy Weasley。第一个Grin测试网络于2017年11月启动,该项目目前为止在testnet 4上,据说这是项目主网发布前的最后一个测试网络。
第二个实施的项目是BEAM,它于2018年3月启动,并于Mimblewimble原始论文发布一周之际正式对外宣布。BEAM有单独的白皮书,也伴随着一个功能齐全的挖矿节点以及钱包客户端,它采用了类似于Zcash的更正式的结构,这与Grin的自由主义、开源气质形成鲜明对比。BEAM团队由以色列企业家Alexander Zaidelson领导。
通过明确的管理和工程团队、预售、正式的基金会以及创始人的税收,BEAM采用了一种与Grin完成不同的道路,它在市场上展示了竞争性的替代品。除了围绕项目创造正式的结构之外,BEAM团队采用了与Grin不同的技术路线选择,包括在货币政策和哈希算法等方面的不同决策。
BEAM计划于2019年1月发布,在哈希率方面有关键主导。
理解比特币的UTXO模型和加密原语
注意:这绝不是比特币或密码学的全面介绍,但提供一定的背景,让读者尽可能了解。
从一开始,隐私和可互换性一直都是比特币用户的重点关心问题。通过复杂的网络分析和区块链分析,比特币做了很多尝试进行交易的匿名化。有些加密货币把隐私当作最高优先级(如门罗和Zcash)。比特币已经在协议层和交易层都可以看到隐私和可互换性方面的显著改进。
Grin和BEAM都采用UTXO(未花费交易输出)模型,这与比特币相同,跟以太坊之类的基于账户的模型不同。
可视化的比特币UTXO模型,来自Bitcoin.org
当通过新交易TX1和TX2发送9万聪时,产生了2个输出(分别是4万聪和5万聪),两个输出发送到由发送人确定的一定量的地址。通过使用加密哈希,Grin和BEAM都实现了这一点。在非常高的级别,哈希功能允许你接受输入,应用加密哈希函数或CHF(这是标准转换),并得到固定大小的输出(称为摘要)。说明如下:
最重要的是:CHF的魔力代表了攻击者和防御者之间的不对称。这是什么意思?对输入进行哈希处理很容易,但,实际上很难对摘要进行逆向工作以获得原始信息。这是一件好事:世界上绝大多数的互联网安全假设,从密码到公/私钥都是进行过哈希处理的,除非有一天我们有强大的量子计算机,否则这个假设一直存在。
加密哈希函数的图表。资料来源:Wikipedia
在比特币的UTXO模型中,很明显,有三种信息是公开可见且可验证的:输入信息、输出信息、交易金额。所有这些信息都不会被隐藏,并且可以轻松验证系统中有多少钱(因为所有的UTXO都会增加系统中预期的比特币供应量)。然而,这些特性伴随着权衡:比特币交易不是非常私密,因为所有这些信息对外部世界并没有加密,它们只是经过哈希处理。虽然社区已经采用了更好的实践,例如不鼓励地址重复使用,鼓励使用“混合”(比特币随着“新鲜”的UTXO返回给你),CoinJoin和保密交易等隐私相关的工作已经发展到为用户提供更强的隐私功能。
MimbleWimble如何改进隐私?
为了实现隐私,MimbleWimble基于“保密交易”和“CoinJoin”对比特币UTXO模型进行了一些改变。从文档中可以看到:
- 没有地址
- 没有金额
- 2个交易,一个花费另一个,可以合并到一个区块中,只形成一个,删除所有中间信息。
这是怎么做到的?加密承诺听上去很奇特,但它的意思是说,“我证明我知道哈希处理前的信息,因为我不能逆向该哈希来揭示我知道的。”即使在加密货币之外,人们也会使用承诺来证明公开预测,例如Nic Carter于1月1日对2018年项目发展的公开预测。在2019年,Nic将能够揭示他的清单(用纯文本的英文),人们能够轻易验证他的清单与前年进行哈希处理的信息是否相匹配。
在比特币中,简单的加密哈希函数用于实现交易承诺,输入、输出和交易金额都很关键。Pederson承诺通过确保输入和输出的总和是相等且可验证来优化这一点。允许这种确定性的加密证明超出本文范围,但这揭示了一个关键洞察:所花费的具体输入和输出量可以保密,同时系统的安全性保持不变(以及非参与者对任何特定交易中的安全可验证)。
但是,如果使用100BTC作为保密交易的输入并忽略-100BTC,那么如何来防止一个人接受两个输入(例如-100BTC,100BTC)?“保密交易”的解决方案是使用另一个被称为范围证明的加密原语。该证明通过保证系统内的输入处在一定范围内(在这种情况下为正),以此确保总货币供应的不可篡改。
MimbleWimble实施都使用“保密交易”,以确保在系统中地址或金额的不可见。
上面提到的第三个目标:“移除所有中间信息”,是通过使用CoinJoin来解释的,CoinJoin是由Gregory Maxwell创建,并且说明了网络中的交易图。尽管在一个交易中的隐藏信息被明确显示是关键的,并且使用“保密交易”来完成,但交易的历史依然拥有大量隐含信息,这允许人们通过大量算力轻松实现可视化,并推断出一个网络中不同交易之间的关系。这种图形的例子如下:
比特币交易可视化的例子,Benedict Koehler提供
这不算是前所未有的——像Elliptic和Chainalysis这样的初创公司使用这种形式的链上取证来检测欺诈和“非法交易”(例如,洗钱、黑市活动),它们得到来自加密交易所(用于合规)或政府组织的充足资助。由于比特币网络图的易于追踪,对于必要的私人交易来说,比特币依然不是好的选择。虽然对于完全隐私的优点提出道德论证超出本文的关注范围,但这个问题不仅仅适用于毒贩和洗钱者:一个易于追踪的网络图允许分析人员随着时间的推移对交易做出越来越强烈的推断。保持这方面的隐私依然是所有原始网络资金的目标。
在CoinJoin中,来自于多个用户的输入被组合在所谓的匿名集里面,并且混合一起以确保交易图更难以被追踪。如下图所示,其中Alice和Bob的10BTC和20BTC输入被混合进一个CoinJoin交易中。
CoinJoin图,由Artncase提供
像Wasabi钱包这样的比特币钱包已经实施CoinJoin,以此为比特币提供交易层隐私。然而,这并不让人满意。这些产品的匿名集往往很小,每笔交易只有少数参与者,往往需要花费大量时间才能获得匹配的资金。研究者甚至能够对小型匿名集中的大多数交易进行去匿名化。MimbleWimble则通过让CoinJoin成为协议核心部分来解决这个问题,而不是通过第三方钱包或服务实现交易层的隐私改进。在MimbleWimble中,每个区块的所有交易都会自动折叠成单个交易,并且大多数中间交易信息都是隐藏的。
现在你可能正在考虑:我的输入、输出以及交易金额都是隐藏的,交易图可以充分混淆......还有没有其他方法促使相关人搞清楚我在做什么?最后一个潜在失败点在于个体节点可以实现去匿名化,方式是通过利用原始的IP地址。
当比特币交易来自钱包时,它会广播到一组节点,然后快速广播到他们的对等节点,这些节点是比特币的八卦网络节点。在将它们合并进入区块之前,因为个别交易是分段广播的,想要了解你交易的监测者可以记录交易以及来源的IP地址,他们希望利用该信息获取有关某人活动的信息。
MimbleWimble提出的解决方案是基于另一项最初为比特币设计的改进方案:“蒲公英”。它是由伊利诺伊大学厄巴纳-香槟分校一组研究人员设想出来的。从2017年以来,它一直在公开的比特币改进提案中讨论。
“蒲公英”的目标是混淆比特币交易的IP地址。蒲公英的花瓣有一根茎干,之后是它们完全开花。同样,跟蒲公英一样,比特币交易分为两个阶段广播到网络:“茎干”阶段(交易被混淆);“绒毛”阶段(广播出去)。
首先交易被广播到单个节点,然后将它中继到另外一个单独节点,直到原始对等节点有足够的“跃点”。这个时候,交易被广播到其余的八卦网络。下面可以看到关于它的可视化,其中交易是广播到一个单一节点(阶段1),之后才被广播到其他剩余的网络对等节点(阶段2)。
图片来自于Giulia Fanti在里斯本演讲“蒲公英介绍”
保密交易、CoinJoin以及蒲公英等这些优化的结合使得MimbleWimble的实施可以消除一些传统观念,比如地址:生成交易的人所做的承诺服务于公/私钥的目的,该公私钥对用于比特币以执行交易。这使得MimbleWimble可以通过提供完全私有的加密货币来实现实质的隐私优化。
BEAM和Grin的区别
虽然Grin和BEAM都是从零开始实现MimbleWimble协议,但两者有些许差别:
Grin的主要实现是用Rust编写,而BEAM的主要实现是用C++编写。
虽然两个团队都专注于抗ASIC,但他们采用了不同的方式,采用不同的哈希算法和初始方法。
Grin OS团队对权衡取舍有广泛分析,他们选择坚持开源治理,而不是正式的基金会。其中一个平衡是资金,Grin坚持通过捐赠方式来解决。除了有跟Zcash类似的20%的区块奖励之外,BEAM还进行了一轮私人融资。
Grin的货币政策中,“每秒产生一个新的grin代币”,使得供应量保持持续的通胀,通胀率会逐渐接近于零。这与其他加密货币如比特币有意识形态上的差异。比特币的设计是通缩的。具体来说,Grin团队目的是阻止囤积grin代币。相比而言,BEAM有固定的供应量,大约2.63亿枚代币。
如果出现错误,Grin会提供部分同步模式和几种缓解策略。这允许节点用完整节点同步所需的一小部分数据同步到网络,BEAM则需要全部数据。
BEAM提供传统的保密交易(使用Bulletprooof签名)。此外,BEAM还提出可审计钱包的设计。选择可审计功能允许企业或其他用户生成独有的公/私钥对,密钥对可以让外部第三方验证资金或其他任何存储在交易中的元数据(例如,其他文档或数字资产)。Grin团队则明确选择放弃扩展除核心功能之外的其他功能。
挖矿概况
Grin和BEAM挖矿方面的情况还不明朗,因为两个网络都还很新。BEAM团队选择优化的Equihash PoW。(Equihash150,5,包括了额外的数据路径更改,以抗ASIC。)除了计划的六个月硬分叉之外,它还旨在从网络上抗ASIC。
Grin使用了革新的Cuckoo Cycle来启动,它是一个替代性的PoW系统,由John Tromp于2015年开发。尽管该算法试图防止ASIC,但团队一直认为ASIC是潜在的必然。解决方案出现于2018年9月:使用两种算法。一种优化为ASIC友好型(Cuckatoo31+),另一种允许GPU竞争(Cuckaroo29),而PoW每24小时平衡这两种算法的挖矿奖励。
Grin和BEAM早期矿工选择的GPU似乎是Nvidia GTX 1088TI,该通用硬件也可用于挖其他很多区块链。
早期BEAM发布统计数据似乎显示有两个主要的矿池:sparkpool.com(它是多资产的矿池,约占69%的哈希率),bepool.org(约占30%的哈希率),一共约1.5m solutions/sec。具体的solutions/sec数可能取决于矿工所使用的硬件(也可优化),但使用OpenCL矿工时钟约10 sols / sec,基于CUDA的矿工时钟约15-20 sols / sec,那么,大概有100,000+的GPU目前正在保护网络的安全。
Grin的挖矿市场更加制度化,十几家私人挖矿运营商正在向加密基金、家族基金以及高净值人群推销。个人矿工有机会在它们推出时加入矿池。grin矿池(BlockCypher推出)和MWGrinpool.com是社区的两个选择。
早期的挖矿仍然存在困难:其他GPU的矿工(如AMD芯片组)不易访问,矿池软件不够稳健和可靠,多重签名钱包的基础设施还不完善,优化在市场上还不为人知。这给早期矿工提供了实质的信息不对称,他们可以利用技术的先进性。一些公司的目标是构建像713的grinbox这样的基础设施。
结论
在一个有社会信用系统和人工智能技术的世界中,这些技术会越来越了解你交易什么,跟谁进行交易,甚至预测未来会发生什么。很显然,在设计未来货币系统时,隐私非常重要。甚至使用隐私方法(例如比特币混合器),在执法者看来可能会“污染”用户,完全隐私的货币允许用户对其意图具有合理的否定性。虽然他们可能无法隐藏,但这是一个重要区别。
Grin和BEAM给市场带来两种完全不同的方法。尽管表面上,它们都是基于MimbleWimble的,但它们在各个方面都有实质不同。它需要几个月,甚至更长时间,才能看到谁是“胜利者”。虽然目前还不清楚哪一个会赢,两个项目的发展给热心者提供了测试的机会,尤其是他们认为的重要方面:
完美概念的项目跟有更正式资助的项目,两者如何竞争?大多数都一样?
在早期,用户体验(似乎BEAM领先)相对于其他因素有多重要?其他因素例如品牌(似乎Grin领先)
边缘的隐私加密货币(革新的)是否有机会在拥挤的市场中获得动力?这个拥挤的领域包括了Zcash、Monero、比特币自身的隐私优化。(译注:其实除了这些,还有很多本文没有提及:比如Dash、Verge、PIVX、ABE等)
对于隐私币来说,这会是令人兴奋的一年。
------ 风险警示:蓝狐笔记所有文章都不构成投资推荐,投资有风险,投资应该考虑个人风险承受能力,建议对项目进行深入考察,慎重做好自己的投资决策。