比特币圈最大的冲突莫过于扩容之争了。
三、四年前比特币的用户基数和交易量都很小,每笔转账的费用通常只需几美分,甚至免费。从2016年起,随着交易量的上升,区块大小接近1MB的上限,平均容量约2000笔交易。为了让转账交易能尽快得到确认,用户付给矿工的交易费也水涨船高。
在写下此文时,每笔交易平均225B,每字节出价130sat/B以上可以得到优先确认(有90%以上概率被加入最新区块),按$6000/BTC的汇率估算交易费约$1.75。这笔费用对于大宗汇款来说微不足道,比起银行电汇便宜十几倍,但显然不适合买咖啡之类的小额交易。
要解决交易量饱和、交易费高昂的现状,比特币需要扩容。这一点几乎没有争议。至于具体的扩容方案上则分裂出两大阵营:以矿工集团为代表的大区块派和以Core开发者为首的二层网络派。
大区块派的扩容策略很容易解释:1MB的区块填满了是吧?增加区块上限呗。先提升到2MB。2MB还不够就4MB或8MB。大区块极端派认为连1GB的巨块都是可以接受的。
面对难题,显而易见的解决方法通常都有显而易见的缺陷。
大区块方案也不例外。
先来看看2MB的区块有多大用处吧:区块容量上限约四千笔交易,平均每秒七笔,相当于Visa信用卡交易量上限的八千分之一,平均值的二百四十分之一。交易费顶多下降一半。平均确认时间不变。比特币显然仍不适合买咖啡。
如果用大区块策略让比特币处理Visa级别的交易量,那区块上限要提升到0.25GB。这意味着区块链每年增加13TB(参见
[block #8] 应对区块链数据大爆炸
),比特币全节点的运营成本飙升,节点更加中心化。区块增大的另一个副作用是验证和同步时间延长,分叉概率增加。这些后果都会降低比特币网络的总体安全性。
而且大区块策略不改变平均每十分钟一次的出块速度。确认交易的等待时间仍然会以分钟计,不满足需要快速支付的应用场景。
有人会说,GB级别的区块是荒唐的,但比特币不必对标Visa啊,何不先扩容到2MB,以后看情况再升到4MB、8MB?这种规模的区块好像没有太大的副作用。
2MB区块本身问题不大,但是从1MB升到2MB、从2MB升到4MB,每次扩容都需要硬分叉(参见
[block #9] 分叉、睡教与SegWit2X
)。连软分叉都应该格外谨慎对待,更何况硬分叉。
硬分叉不仅带来更高的风险,同时也是个清理历史遗留错误、引入重要改进的大好机会。
把它浪费在双倍扩容这样鸡毛蒜皮的改动上简直是儿戏。比特币不是Litecoin、Ethereum、Monero,在目前的发展阶段如果一言不合硬分叉的话,就好比一个计算机博士生在拿到学位前突发奇想要转系读挖掘机专业一样鲁莽。
既然大区块是急功近利的短视方案,那么比特币扩容路在何方呢?
基于二层支付通道的闪电网络(Lightning Network)是目前最有前景的方案。闪电网络利用哈希时间锁合约(Hashed Time-Lock Contracts或HTLC)让使用者在比特币主链上锁定一笔资金,开通链下的支付通道。之后的支付完全不受主链出块速度、区块上限影响,交易延迟从分钟级降低到毫秒级,交易量也提高多个数量级。
交易双方不需要信任第三方(比如中心化的银行或交易所),交易费用接近零,可以实现亚聪级支付额(细分比特币的原子单位“聪”),可以实现流式支付(比如按秒计费的在线播放)。全程用洋葱网络的方式传递交易信息,增加匿名性。只要采用同样的哈希锁,跨链交易也变得简单。
交易双方如果长期合作,支付通道可以无限期延续下去,不必定期在主链上结算;如果一方试图通过提前结算谋取利益,另一方可以在一个预定时期内阻止不诚实的行为,还可以外包给不能控制自己资金的第三方监督执行,即使自己的闪电网络钱包离线也能防止被坑。
功能如此强大的闪电网络根本不需要对比特币硬分叉,相较于大区块扩容的优势非常明显。不过它也遭到大区块派的各种攻击。抨击主要集中在三点:一、闪电网络到今年一月才发布v0.1-alpha公测版,正式发布日似乎还遥遥无期。但如果去github.com/lightningnetwork/lnd
https://