MimbleWimble ——来自数学的隐私魔法
从去年底开始,笔者就一直很关心MimbleWimble这个新的隐私协议的发展,不只是因为Grin主网上线的缘故,或者Litecoin即将采用MimbleWimble协议的关系,而是因为他是很多隐私协议的结晶体,他巧妙地结合了许多隐私协议,而且让隐私交易变的可以实行,甚至具有扩容的效果,因此,一直很想再写一篇文章,把MimbleWimble的机制运作讲的更仔细,同时也力求好懂。
一、MimbleWimble怎么来
MimbleWimble的发展过程有点类似于比特币,是个千呼万唤始出来的成果,也就是某个议题,或者某种需求讨论了好久,终于有个人或者某篇论文,把一路上零零总总的研究成果,结合成一套可以运行的协议:在比特币问世以前,很多人在讨论去中心化的电子现金,例如Wei Dai;还有Adam Beck研究出「杂凑现金」Hash Cash,还有对于时间戳记(timestamp)、公私钥等等的研究成果,加上Satoshi在共识演算法上的突破--Nakamoto Consensus,而有了比特币;在MimbleWimble协议产生以前,其实很多在比特币核心开发组织中的成员,开始认为比特币的确实现了「点对点的现金交易」,但却不够能维护「点对点交易的隐私」,有许多研究者已经能够从交易图和网路爬虫等方式,来图像化分析某个或多个帐号的历史交易,并接近精准的推测交易的人或者群体可能是谁。因此在比特币交易中暴露交易双方帐号、交易金额以及交易可追踪等特性会威胁了交易匿名性(anonymity),而本身交易可追踪的特性又让货币本身不具有可替代性(fungibility),也是被人所诟病的特点。
于是,在比特币核心社群Bitcoin Core中,陆续有很多人提出了各种协议,或者新的方法,想要促进比特币能够更具有隐私性,但都比较像是个别专案的性质,而不是一套马上能够让某种货币直接使用的区块链系统。直到有一天,在比特币的IRC(Internet Relay Chat) channel中,有位化名为Tom Elvis Jedusor(法文版的佛地魔)透过Tor网络放了一份txt档,也就是后来大家俗称的白皮书,他在里面命名了一个叫做MimbleWimble的协议(哈利波特里面的锁舌咒语,念了你会说不出话~~),并且推测了,透过Confidential Transactions(机密交易,简称CT)、CoinJoin 、One-way aggregate signatures(单向聚合签名,OWAS)等三种方式,可以完成「隐私交易」,并且透过cut-through的方式处理资料大量增加「产生的状态增长问题」。他在留了这份名为MimbleWimble的白皮书后就人间蒸发了,然而他的白皮书仍然留下了很多问题,而且没有完善的数学证明他的想法的可行性,是最后由BlockStream的Andrew Poelstra将这篇文章完善,提出了一篇较为完整版的论文。(对了,后面还会一直看到BlockStream,没有这间公司的人,我认为也不会有MW协议)。
所以整体来说,MimbleWimble是在比特币社群中,有长期关心隐私问题的专家和爱好者们,不断的提出各种改进方法,最后有人统整这些方法,并且被人验证后所产生的产物,和比特币构成的过程有点相似,但是他是一个协议,实际的实作还必须等到Grin还有BEAM这两种隐私加密货币的出现。
从比特币的交易中,可以去分析个别的群体分别可能为何
某个比特币帐号在R语言下呈现的交易图
二、解构MimbleWimble三大零件
Mimblewimble是个由很多个零件拼装起来的变形金刚,在这个章节我会来介绍,MW的各种零件是如何运作来完成这套协议,根据协议,我认为MW的隐私货币交易有三个交易的特性。
1.没有交易金额
2.没有交易双方地址
3.在一个区块中,多笔交易是被合并的,没办法看到每个单笔交易的细节
要完成这样的特性:必须分别由三个大零件:
1.Confidential Transactions(机密交易,简称CT)
2.CoinJoin(混币交易)
3.One-way Aggregate Signatures(单向聚合签名,OWAS)
透过这三大重要的主要协议,来完成隐私交易,最后透过Cut-through,来回应已确认的链状态大量累积的问题,这也是MimbleWimble比Zcash和Monero等仍需要储存许多状态资料的隐私币还出色的地方。
既然他是一个专门为隐私币所创造的区块链协议,那么还是先来介绍一个区块中的内容物:
1.经ECDSA加密过的交易输入和范围证明的merkle tree
2.经ECDSA加密过的交易输出和范围证明的merkle tree
3.交易内核:一个剩余值excess value(s)和总和的kernel offsets、挖矿费用。
4.区块头、区块高度
其实应该在这里就能够看出来MW和其他区块链的区块有结构上的差别了,在此也开始解构MimbleWimble的所有零件:
1、Confidential Transactions机密交易
中国观察