金色观察 | 详解莱特币MimbleWimble实现
2022年5月19日,MimbleWimble成功部署在 莱特币 网络,从此用户可以选择莱特币作为隐私币。
但在莱特币升级MimbleWimble后,6月13日币安发布公告称,将不支持通过MimbleWimble功能进行的 LTC 存取款,因该功能为用户提供了在不泄露任何交易信息的情况下发送隐私LTC交易的选项,使得币安无法核实发件人地址,资金将不会被接收或退回从而导致资金损失。
MimbleWimble是如何实现莱特币隐私交易的?本文详解莱特币的MimbleWimble实现。
莱特币MimbleWimble实现
莱特币MimbleWimble主要由三个组件实现,这三个组件是: 交易内核(Transaction Kernels)、交易穿透(Transaction Cut-Through)和扩展区块(Extension Blocks)。
扩展区块(Extension Blocks)
正如Peter Wuille在他2016年的播客中所预测的那样,MimbleWimble是作为现有莱特币网络的侧链被整合进莱特币。这意味着有一条称之为扩展区块的“平行高速公路”区块,其区块生产节奏与莱特币网络上的区块相同(2.5分钟),用户可以通过发送资金进出这条平行链来增强莱特币交易的隐私。然后矿工将在莱特币主链上提交一个默克尔根,这个默克尔根为来自扩展区块的所有交易的摘要。
在扩展区块内进行的任何交易都将向所有人隐藏所涉及的地址和金额,除了那些参与交易的人,使用户能够获得比他们在主区块链上轻松实现的更多交易隐私。
这种方法允许透明的主链交易和隐私增强的扩展区块交易共存,并且完全由用户自己选择。
从扩展区块发送和移除资金
要将资金发送到扩展区块(EB),用户首先创建挂钩(pegging-in)交易,其中LTC被发送到使用交易内核(transaction kernels)的特殊地址类型(上图中的A )。为了便于理解,最好将其想象为一个ltc1前缀地址,其中包含一条额外的信息,可以将其链接到特定的EB(上例中的F)。
这些挂钩(pegging-in)交易创建了一个准备好在特定EB中进行交易的资金池。
要从EB中取出资金,用户必须创建一个解钩(pegging-out)交易,在其中指定了希望在主链上接收LTC的地址以及从扩展区块(上图中的G)取出金额的链接。这会创建一个“提款请求”队列。
为了处理钉挂钩(pegging-in)和解钩(pegging-out)交易,矿工创建了一种特殊类型的交易——集成交易(Integration Transaction),也称为Hogwarts Transaction,它有X+1个输入和Y+1个输出,其中X和Y是挂钩(pegging-in)和解钩(pegging-out)交易的数量。上图稍微简化了一点,只有一个pegging-in和一个pegging-out交易。
集成交易输入(Integration Transaction Inputs)
集成交易中的第一个输入将始终是从前一个区块的HogAddr(上图中HogEx中的灰色框)到当前区块的HogAddr(上图中C)的输出。这确保了留在前一个EB中的任何代币都“移动”到这个新的EB中。其他的输入与EB的挂钩交易匹配(上图中B)。
随后,矿工将创建MimbleWimble coinbase交易,将代币从挂钩交易(上图中B)发送到 HogAdd(上图中C)。这用新的挂钩代币来补充从以前的HogAddr转移的现有EB“余额”。与主链上的区块不同,每次与扩展区块挂钩的交易将有一个coinbase MW,因此10次挂钩交易将产生10个MW coinbase交易到EB。
集成交易输出(Integration Transaction Outputs)
每个HogEx中的第一个输出为将发送到EB的新HogAddr(图中C),并匹配第一个输入,该输入将所有剩余的“余额”从最前一个EB移动到新的EB。其他的输出处理解钩交易,因此将相应数量的LTC从解钩交易中发送到指定的提款LTC地址(图中D)。值得注意的是,未激活前解钩资金在莱特币区块链上锁定了6个区块,以便为激活后输出提供一些额外的安全保障。
如上所述,LTC可以移入或移出扩展区块,隐私保护魔法就发生在这些扩展区块中。因为任何人都可以使用他们从主链挂钩的LTC在EB内协作创建MimbleWimble交易。这些MW交易类似于 比特币 闪电网络交易,因为不存储在主链上。因此,Alice可以从主链锚定超过10个LTC,向各种其他参与者进行50个MW交易,并且只有活动“结果”被提交回主链,例如她现在有3个 LTC。
在莱特币上使用MWEB将允许隐私移动LTC并为用户提供可选的保密性。
交易穿透(Transaction Cut-Through)
除了MW的隐私,还有可扩展性优势。当一个新的莱特币节点首次同步时,它必须处理区块链整个历史以验证LTC交易。然而,对于MimbleWimble交易,使用交易穿透意味着只需要验证需要的UTXO集。这将大大减少同步时间。
例如,如果有两个相同的交易从A到B,然后B到C,那么中间交易的历史可以被“切割”,从而导致从A到C的合并交易。这样,只有当前的UTXO 状态是必需的,不需要在区块链中存储任何地址。(LIP-003)
因此,使用交易直通将减少新节点需要同步的数据量,从而减少节点激活的时间,并将降低后续存储成本,从而降低维护完整节点的成本。
莱特币MWEB交易实际什么样
目前已经有工具出现,监测莱特币的MWEB交易,下面为i其中两个网站: https://litecoinsignals.quest/charts 、https://flappening.watch/。目前扩展区块中有4176枚LTC。
这一部分将使用一些具体交易示例来详解MWEB交易是如何工作的。
在莱特币此次Mimblewimble升级之前,所有莱特币交易的发送人、收收人和金额都可以公开查看。现在随着MimbleWimble Extension Blocks (MWEB)的引入,人们现在可以将他们的一些莱特币从主链转移到一条平行高速公路上,从而允许他们以匿名的方式转移锚定的莱特币。具体怎么实现的呢?
挂钩(pegging-In)
要将LTC从主区块链中移出,必须创建一个挂钩交易。此交易将LTC发送到一个特殊的任何人都可以输出的地址,这个地址只有矿工才能使用。
上图是有人挂钩84枚LTC的例子,他希望在扩展区块中使用这些LTC来进行隐私交易。
对于希望将资金转移到MWEB的每个实体,区块中都会有一个不同的交易,每个交易都有不同的收款人地址。
然后在区块中存在一种特殊类型的交易,它必须“处理”交易中的挂钩。这称为Integrating Transaction或HogEx(全名Hogwarts Express Transaction),并且始终是区块中的最后一笔交易。
对于区块2,268,029,即上述挂钩交易,我们可以在下面查看HogEx详细信息。
第一个发送者地址代表MWEB LTC从前一个扩展区块移动到新的扩展区块(接收地址ltc1g7w5j…),第二个发送者地址代表上面的挂钩交易。
因此,HogEx将资金从一个扩展区块转移到下一个区块,并且还允许挂钩LTC的数量超过扩展区块余额。HogEx中的这种“充值”被称为MWEB coinbase交易,因为它在扩展区块“创造”莱特币。与主链活动相一致,扩展区块本身也有一个交易,它将挂钩交易中的金额发送到用户的ltcmweb1隐秘地址,因此从下一个区 块开始,用户将能够从该隐秘地址转移资金到任何其他 ltcmweb1或标准ltc地址。
除了将资金转进扩展区块,还可以将它们转出。这称为解钩交易。它在区块中不作为单独的交易存在,而是在HogEx内被称为输出。
下面示例以红色显示HogAddr,以绿色显示挂钩交易,然后以黄色显示解钩交易。
因此,这是某个人将0.0049749枚LTC从扩展区块提取到其地址。无从知道此人是否在扩展区块中投入了0.1 LTC、1 LTC还是100 LTC,甚至无法知道他们在扩展区块中私下进行了多少 MimbleWimble交易。链上没有此信息,为将莱特币与MimbleWimble扩展区块挂钩的参与者提供交易隐私。
如果你希望在这些扩展区块中进行隐私交易,你需要使用 Litecoin Core生成一个 MimbleWimble隐秘地址,该地址以前缀ltcmweb1开头。这不是典型加密意义上的地址,无法在区块数据中找到它,而要查看与它相关的活动,你需要查看密钥(viewing key)。这意味着接收人无法看到发送地址,除非他们拥有该查看密钥。同样,网络上正在验证和处理mweb隐秘地址交易的节点无法看到交易的金额或地址,只知道交易中的ismweb字段设置为true。
至于mweb交易处理,提供帮助的节点仍然收取费用,就像他们为莱特币主网节点样。这就是为什么一些HogEx上有交易费用的原因,因为扩展区块中有MimbleWimble活动。
而扩展区块中没有MimbleWimble活动的情况下,交易费用为0 LTC。
当我们在区块数据级别观察时,你会注意到在去块头信息以及标准字段中,现在有一个与mweb相关活动的部分:
这是因为MimbleWimble扩展区块方法不是侧链或状态通道,而是附加到每个主链区块的一些数据。因此, 所有MimbleWimble交易,无论是ltcmweb1到ltcmweb1还是ltcmweb1到或者来自标准ltc地址,都进入内存池并与莱特币主链交易一起处理。MimbleWimble的魔力在于,扩展区块部分的操作,发送者、接收者和交易金额都保持隐秘。
你可能会质疑这种方法的可扩展性,因为MWEB交易通常比标准LTC交易大得多(由于内置的隐私元素)。然而,通过交易穿透,实际上使MWEB交易大小比标准交易小一半。
比特币会是下一个吗?
从历史上看,莱特币一直是比特币新功能的试验台。比如,SegWit于2017年5月被添加到莱特币,几个月后被纳入比特币。闪电网络于2017年5月在莱特币上推出,2018年3月比特币采用闪电网络。。
毫无疑问,比特币核心开发人员将密切关注莱特币Mimblewimble的表现,以及用户对其隐私功能的接受程度。
未来,比特币将有可能采用MimbleWimble技术,以保护用户隐私。