导语
区块链的可扩展性问题
什么是链下扩展解决方案?
侧链介绍
什么是侧链?
侧链的工作原理
为什么使用侧链?
支付通道介绍
什么是支付通道?
支付通道的工作原理
支付路径
总结
从广义来说,可扩展性是指系统针对日益增长的需求不断扩展的能力。在计算中,您可以通过硬件升级提高计算机性能,加快部分任务的执行速度。谈到区块链的可扩展性,一般指提高性能,以便处理更多交易。
比特币等协议优点很多,但可扩展性有所欠缺。如果比特币在中心化数据库中运行,管理员提升处理速度和吞吐量会容易许多。然而,比特币的价值主张(如抗审查能力)要求众多参与者协同合作,一起同步区块链的副本。
比特币节点的运行成本相对低廉,即使是低配设备也可以胜任。然而,数千个节点需要保持最新状态,导致容量受限。
区块的上限一般设置为可在链上处理的交易数量,防止数据增长失去控制。如果数据增量过大、增速过快,节点可能无法跟上步伐。此外,如果区块过大,则会难以在网络中快速中继。
因此,遇到这种情况,我们会陷入瓶颈。我们可以将区块链视为发车间隔固定的火车服务。每个车厢座位有限,乘客必须通过竞价确保获得一张车票。如果所有人都想登车,票价自然水涨船高。同理,被未确认交易阻塞的网络会要求用户支付高昂的费用,以便优先处理其交易。
一种解决方案是车厢扩容。座位数量增加,客流量变大,车票价格随之下降。然而,车厢依然可能会如之前一样满员。车厢无法持续加宽,就像区块和燃料费限额不能无限增加。燃料费会加重节点留存在网络中的成本,因为节点只能通过硬件升级来保持同步。
以太坊的创造者Vitalik Buterin提出了可扩展性的“三元悖论”,论述区块链面临的挑战。他认为,协议必须在可扩展性、安全性和去中心化之间进行权衡。三者互相矛盾,如果过度强化任意两项,第三项势必大打折扣。
因此,许多人认为可扩展性有望在链下实现,而安全性和去中心化应在区块链自身得到最大优化。
链下扩展是指支持交易执行,但不让区块链扩容的方式。入链协议支持用户收发资金,但交易不会立即在主链出现。在这方面,我们将深入探讨两项最显著的进展:侧链和支付通道。
侧链是独立的区块链,但不是独立平台,在某种程度上与主链挂钩。主链和侧链可以互操作,即资产可以在主链与侧链自由流动。
保证资金顺畅转移的方法很多。在部分情况下,可以将资金存入特殊地址,将主链中的资产转入侧链。此时资金并没有真正转出,而是在地址中锁定,侧链会收到相应金额。更直接的方法(可能偏向中心化)是将资金发送给托管方,由其使用保证金交换侧链的资金。
假设我们的朋友Alice拥有五枚比特币。她希望以此交换比特币侧链中的五枚等价货币(我们称为“侧链币”)。我们讨论的侧链双向挂钩,用户可以将其资产从主链转入侧链,反之亦然。
别忘了,侧链是独立的区块链,拥有不同的区块、节点和验证机制。为了得到侧链币,Alice会将自己的五枚比特币发送至另一个地址。该地址可能归某人所有。收到比特币后,地址所有者在Alice的侧链地址中记入这5枚侧链币。此外,该地址可能采用某种去信任化程度最高的设置,软件检测到付款后会自动记入侧链币。
Alice已将所持比特币转换为侧链币。她也可以逆向操作,将侧链币转换为比特币。在侧链拥有资产后,她现在可以在这条独立区块链自由交易。如同主链一样,她可以发送或接收他人的侧链币。
例如,她可以向Bob支付一枚侧链币,购买币安的连帽衫。当她想换回比特币时,可以将剩余的四枚侧链币发送至一个特殊地址。交易确认后,四枚比特币将会解锁并转入她在主链控制的地址。
您可能想知道为什么要使用侧链。Alice只使用比特币区块链不行吗?
答案是,侧链可能拥有比特币不具备的功能。区块链是精心设计的链下交易系统。虽然比特币是最安全的去中心化加密货币,但就吞吐量而言,它还并不是龙头老大。虽然比特币交易比传统方法更快,但与其他区块链系统相比,速度略逊一筹。区块每十分钟才能挖掘一次,当网络拥塞时,手续费会显著增加。
但我们不得不承认,日常的小额支付可能根本不需要这么高的安全等级。如果Alice去买咖啡,她肯定不会苦等交易确认。如果是这样,她的交易会一直在队列中,待到交易确认,恐怕咖啡已经凉透了。
侧链不受这种规则的约束。它甚至不使用工作量证明也能发挥作用。您可以随意选择共识机制,信任单一验证者或调整任意数量的参数。侧链可以实施主链没有的升级,生成更大的区块并执行快速结算。
有趣的是,即使侧链严重出错,也不会影响基础链。这样一来,它们可以作为实验平台,推出本应占据多数网络共识的功能。
如果用户对链下交易感到满意,侧链可能是有效扩展不可或缺的一步。主链节点不需要存储侧链的所有交易。Alice可以通过单次比特币交易进入侧链,执行数百笔侧链币交易,然后退出。就比特币区块链而言,她只完成了两项操作:一进一出。
以太坊等离子体(Plasma)与之类似,但存在明显差异。敬请阅读《什么是以太坊等离子体(Plasma)?》,了解详情:
支付通道在可扩展性方面的作用与侧链相同,但二者本质不同。与侧链相似,支付通道将交易与主链分离,防止区块链无限扩容。然而,与侧链的不同之处在于,它们不需要依托独立的区块链,
支付通道通过智能合约支持用户交易,无需将交易发布到区块链。在两位参与者之间使用软件强制协议即可运行。
在热门的闪电网络模式中,双方首先将代币存入共同拥有的地址。这是一个多签名地址,需要两个签名才能使用资金。因此,如果Alice和Bob创建了这样的地址,资金只有经过双方同意才能转移。
假设二人均向同一地址存入10枚比特币,该地址的余额为20枚比特币。他们能够轻松确定初始余额,即Alice和Bob各自拥有10枚比特币。如果Alice需要转给Bob一枚代币,可以将账本更新为:Alice拥有9枚比特币,Bob拥有11枚比特币。他们不需要将交易发布至区块链,即可更新余额。
最终完成所有交易后,假设Alice拥有5枚比特币,而Bob拥有15枚。他们可以创建交易,将这些余额发送到各自的地址,对其签名并在链上广播。
Alice和Bob本可以在账本中记录几十、几百甚至上千笔交易。但在区块链层面,他们只执行了两项链上操作:一项是初始资金交易,另一项在完成交易后重新分配余额。除了上述两点,其他所有交易均在链下进行,没有手续费并且几乎即时成交。双方无需支付矿工费用,也不必等待区块确认。
当然,上文讨论的示例建立在交易双方相互了解,密切合作的基础之上,不太适合陌生人。然而,也可以使用特殊机制惩罚欺诈行为,让并不熟悉的各方安全交易。
对于频繁交易的双方来说,支付通道显然更加方便快捷。这种方式也在日臻完善。这些通道的网络可以不断充实与优化,让Alice可以向没有直接联系的收款方付款。如果Bob与Carol开通了支付通道,只要容量充足,Alice便可通过该通道向Carol付款。她可以首先通过Bob的支付通道付款,由Bob将资金转入Carol的通道。如果Carol与另一位参与者Dan相连,也可以进行相同的操作。
这样的网络结构最终演变成分布式拓扑,所有人均可连接多个对等节点。付款通道很多,用户可以自主选择最有效的通道。
在上文中,我们讨论了两种可扩展性方案。二者均支持在不增加基础区块链负担的前提下完成交易。侧链和支付通道尚不够成熟,但越来越多希望规避基础层交易缺陷的用户正在接纳这两项技术。
假以时日,用户不断加入网络,维持去中心化至关重要。为了实现目标,可以限制区块链容量的增长,以便随时加入新节点。链下可扩展性解决方案的支持者认为,随着技术发展,主链在未来只会服务高额交易,或者仅用于接入/断开侧链以及开放/关闭支付通道。