隔离见证的主要好处之一就是修复了交易延展性,下面咱们来看看,什么是交易延展性?以及为何修复它很重要。
我们先来聊聊什么是交易延展性?
比特币网络会把交易的哈希作为这个交易的 ID,哈希是根据交易的内容运算出来的,如果交易本身哪怕只变一点点,交易哈希或者说交易 ID 就会变。我们都知道,比特币的每一个交易都带有数字签名,比特币的交易签名算法决定了,如果去修改签名的特定几位的数据,那么这个签名依旧有效。
但是生成交易 ID 的时候,会涉及到这个交易的所有数据,其中包含交易签名。所以如果有人修改了签名,那么交易 ID 就会改变,当然修改必须在交易打包到区块之前,因为一旦交易进入区块,那么交易,也包括其中包含的签名,就不可篡改了。
攻击者把签名改一下,让交易 ID也发生变化,而这种修改没有修改交易的主体数据。如果把交易比作一块金属,那么这个过程只是在上面敲了一下,让它发生了轻微的延展,这就是交易延展性这个名字的由来。
闪电网络是一个链下微支付网络,闪电网络通常被叫做 Layer 2 解决方案,因为它是运行在比特币之上的一层网络。交易延展性可以造成闪电网络工作异常。
闪电网络是基于双重签名的交易来工作的,也就是说交易需要有双方同时签名才能生效,每次进行一个新的微支付就会创建对应的交易并由双方共同签署这个交易。
创建一个闪电网络的通道就需要发起充值交易把一笔钱转入一个双重签名地址。闪电网络的工作原理决定了充值交易是不会被直接广播到网络并打包到区块中。后续发起的微支付交易会通过交易 ID 关联充值交易。当双方需要关闭交易通道的时候才需要广播交易。这样,如果在广播之前有人利用交易延展性修改了充值交易的 ID,那么后续的微支付交易也就失效了。也就是说,交易延展性会给建立交易通道带来风险。
虽然闪电网络也可以想办法避免交易延展性的影响,但是如果交易延展性被修复了,实现闪电网络就变得非常容易。
隔离见证通过把签名从交易中取出的方式解决了交易延展性问题
攻击者只有通过修改签名才能够修改交易 ID,也就是说,才能够利用交易延展性。实施了隔离见证之后,比特币的每个交易之中不再包含签名,这就意味着即使攻击者修改了签名,交易ID也会保持不变。交易的签名依然可以用来检查交易的有效性,只是在计算交易 ID 的时候不会涉及签名了。
所以,隔离见证解决了交易延展性。
通过在计算交易哈希的时候把签名排除在外,隔离见证解决了交易延展性问题。而解决了交易延展性,闪电网络的运转就会更顺畅。
参考: