Mimblewimble这个名字起源于《哈利波特》,该技术于去年被一位匿名为“Tom Elvis Jedusor(哈利波特系列中大反派伏地魔的法语名字)”的密码学者提出。尽管这些称为对于一些人来说显得略带喜感,不过开发者对这种技术却是认真的——认为这种技术将通过前沿密码学提升扩展性和隐私性。
Mimblewimble最初是为比特币而设计的,但是这个技术需要比特币实现扩容,众所周知比特币的扩容进展相当缓慢,所以,为了能够使该技术尽早成为现实,开发者决定使用一种独立的加密货币-Grin。
比特币是第一个被广泛使用的分布式账本系统,任何人都可以拿到并验证系统状态的全部必要数据。它利用一个叫“区块链”的公共数据库保存所有的交易数据以完成这一壮举,然而真正想要检查系统状态的人必须下载所有数据,并且追溯每一笔交易。同时,大多数这些交易并不影响它的最终实际状态(它们每创建一项输出,就会销毁一项之前的交易)。
在去年这个时候,在区块链里包含了近1亿5000万笔交易,其中包含了仅仅4百万笔未花费输出,这些未花费输出被重复记录。
那么Mimblewimble的原理是什么?
机密交易和单向聚合签名(OWAS)
我们首先要做的是移除比特币脚本。这听起来很痛苦,但它太强大了,因此使用通用脚本混合交易是不可能的。这将证明Maxwell博士的机密交易(经过一些小的修改之后)足于构建花费,甚至无需交互就可混合交易。单向聚合签名(OWAS)也同样如此,它允许中继节点收取一些交易费或让接收人改变交易费用。我们可以免费实现比特币无法实现的这些额外功能。
机密交易是如何工作的?
现在,以这种方式创建的交易已经支持单向聚合签名(OWAS)。为了进行演示,假设我们有两笔交易,有剩余的k1和k2,这些都附上签名。然后,可以将两笔交易的输入和输出混合起来,将k1和k2 相互混合,这样再次成为一笔有效的交易。这笔混合后的交易中的输入值和输出值不可能找到对应的原始交易中的输入和输出
我们可以通过输出值的哈希散列值来识别出它们,而不是在交易中的位置,因此这很容易被改变。所以,为避免混淆,应该禁止相同的两项未花费输出同时进行。
跨区块混合交易
使用Maxwell博士的机密交易去创建一个非交互式版本的Maxwell博士的CoinJoin,但是我们并未看到最后的奇迹。我们需要其他方法,即-交易裁减。我们创建一个非交互式版本,并展示它是如何和几个区块一起使用。
这是意味着什么呢?当一个用户启动和下载整个区块链时,需要依据每一个区块下面的数据:
1. 数量明确的新币(区块奖励或侧链锚定币)和其他需要的数据。
2. 所有交易的未花费输出,连同每个输出的merkle proof 都将出现在原始区块中。
3. 所有交易的k值。
比特币现在大约有423000个区块,占80GB的硬盘空间,这些数据可以对所有交易进行验证。这些数据是一亿五千万的笔交易和500 万未花费的非加密输出值。如果相同的交易量在Mimblewinmble上,来估算下需要占用多少空间。每笔未花费的输出需要3Kb空间来存储rangeproof 和Merkle proof,每笔交易也需要占用100字节来存储:一个K值和一个签名。区块头和显性的总金额可以忽略不计。所有这些加起来一共需要30GB——包括所有的机密交易的交易图!
这在BTC中,将通过Mimblewimble可以将原将占有的数据空间缩减到40%以下。Mimblewimble也与零知识证明和跨区块小额交易不冲突,使得保持隐私与跨区块交易的同时减轻区块存储的负担。
网友评论