支付通道是指双方或多方无需信任地交换和更新tx的机制。在支付通道技术里,tx会在多方之间多次更新,除了最后一次更新需要上链,其他的更新都可以链下进行。这个特点特别适合需要快速更新tx的场景,比如频繁快速的支付等。相比每次支付都上链,支付通道的优势之一是可以节省手续费。
必备知识:nSequence和nLockTime
在了解支付通道之前,需要先了解比特币的两个技术点:nSequence和nLockTime。
nSequence约束tx更新
每个tx的每个input都有一个nSequence字段,可以把该字段理解为input的版本号,版本号越大表示版本越新。该字段为最大值0xFFFFFFFF时,表示已经是最新版本了,不会再更新了。
矿池内存池可以接受nSequence大的tx替换nSequence小的tx,但反过来不行。
nLockTime和nSequence联合约束tx的打包时间
每个tx都有一个nLockTime字段,该字段的数值表示一个时间,含义为:在这个时间之前,该tx可能会更新。
一个tx中,如果至少有一个input的nSequence值不是最大值,那么就表示说:这个tx不是最终版本,可能还会更新,先别打包进区块。什么时候打包呢?等当前时间超过nLockTime时,无论是不是最终版本,都可以打包进区块了。也就是