区块链扩容:侧链与支付通道技术详解
区块链的可扩展性难题
可扩展性指的是系统适应不断增长需求的能力。在计算机领域,提升机器性能的方法之一是升级硬件,从而加快特定任务的执行速度。而在区块链技术中,可扩展性指的是提升其处理更多交易的能力。
像比特币这样的协议有很多优点,但可扩展性并非其中之一。如果比特币运行在一个中心化的数据库中,管理员相对容易地就能提高速度和吞吐量。但比特币的价值主张(即抗审查性)要求许多参与者同步区块链的副本。
区块链可扩展性问题的核心
运行比特币节点的成本相对较低,即使是简单的设备也能做到。但由于数千个节点需要彼此保持同步,因此其容量存在一定的限制。
为了防止数据库规模变得过大难以管理,对链上可处理的交易数量进行了限制。如果数据库增长过快,节点将无法跟上。此外,如果区块过大,它们就无法在网络中快速转发。
因此,我们面临着某种瓶颈。区块链可以被视为一个定期发车的火车服务。每节车厢的座位有限,要获得车票,旅客必须竞标以保证获得座位。如果每个人都试图同时上车,价格就会很高。同样,网络中积压的未决交易将要求用户支付更高的费用才能及时处理他们的交易。
一种解决方案是扩大车厢。这意味着更多座位、更高的吞吐量和更低的票价。但不能保证座位不会像以前一样很快被填满。车厢不能无限扩大,就像区块或Gas限制不能无限扩展一样。后者使得节点留在网络上的成本更高,因为它们需要更昂贵的硬件才能保持同步。
以太坊创始人 Vitalik Buterin 创造了“可扩展性三难困境”一词来描述区块链面临的挑战。他认为,协议必须在可扩展性、安全性以及去中心化之间进行权衡。这三者之间存在某种矛盾——如果过于关注其中的两个属性,第三个属性就会很差。
因此,许多人认为可扩展性应该通过链下解决方案来实现,而安全性以及去中心化应该在区块链本身得到最大化。
链下扩展解决方案
链下扩展指的是允许执行交易而不会使区块链膨胀的方法。连接到链的协议允许用户发送和接收资金,而无需交易出现在主链上。我们将深入探讨这方面最显著的两个进展:侧链和支付通道。
侧链简介
什么是侧链?
侧链是一个独立的区块链。然而,它不是一个独立的平台,因为它以某种方式与主链挂钩。主链和侧链是互操作的,这意味着资产可以自由地在两者之间流动。
有多种方法可以确保资金能够转移。在某些情况下,资产通过存入一个特殊的地址从主链转移。它们并没有真正被发送过去——而是被锁定在该地址中,并且在侧链上会发行等值的资产。一个更直接(尽管是中心化的)方法是将资金发送给托管人,托管人将存款兑换成侧链上的资金。
侧链是如何工作的?
假设我们的朋友爱丽丝有五个比特币。她想将它们兑换成侧链上等值的五个单位——我们称之为侧币。该侧链使用双向锚定,这意味着用户可以将他们的资产从主链转移到侧链,反之亦然。
请记住,侧链是一个独立的区块链。因此,它将具有不同的区块、节点和验证机制。为了获得她的侧币,爱丽丝会将她的五个比特币发送到另一个地址。该地址可能是属于某人的,一旦他们收到比特币,就会向她的侧链地址贷记五个侧币。或者,它可能具有一种信任最小化的设置,在软件检测到支付后,侧币会自动贷记。
爱丽丝现在已将她的币兑换成侧币,但她可以随时反向操作以收回她的比特币。现在她已经进入侧链,她可以在这个独立的区块链上自由交易。她可以发送侧币或接收来自其他人的侧币,就像她在主链上一样。
例如,她可以用一个侧币向鲍勃支付一件商品。当她想回到比特币时,她可以将剩余的四个侧币发送到一个特殊的地址。交易确认后,四个比特币将被解锁并交付到她在主链上控制的地址。
为什么使用侧链?
你可能想知道这样做有什么意义。为什么爱丽丝不直接使用比特币区块链呢?
答案是侧链可能能够做到比特币无法做到的事情。区块链是经过精心设计的权衡系统。虽然比特币是最安全和最去中心化的加密货币,但在吞吐量方面并非最佳。虽然比特币交易比传统方法更快,但与其他区块链系统相比,它仍然相对较慢。区块每十分钟挖掘一次,当网络拥塞时,费用可能会大幅增加。
诚然,对于日常的小额支付,可能不需要这种级别的安全性。如果爱丽丝正在买咖啡,她不会一直等着交易确认。她会堵塞队列,她的饮料在递交给她之前就会变冷。
侧链不受相同规则的约束。事实上,它们甚至不需要使用工作量证明来运作。你可以使用任何共识机制,信任单个验证者,或调整任意数量的参数。你可以添加主链上不存在的升级,生成更大的区块,并强制快速结算。
有趣的是,侧链甚至可能存在严重的错误,而不会影响底层链。这允许它们用作实验平台,并推出否则需要网络大多数用户达成共识的功能。
只要用户对权衡感到满意,侧链可能是实现有效扩展的关键步骤。主链节点不需要存储侧链的每笔交易。爱丽丝可以用一笔比特币交易进入侧链,执行数百笔侧币交易,然后退出侧链。就比特币区块链而言,她只执行了两笔交易——一笔是进入,一笔是退出。
支付通道简介
什么是支付通道?
在可扩展性方面,支付通道与侧链的作用相同,但它们在根本上却大相径庭。与侧链一样,它们将交易推离主链,以防止区块链膨胀。然而,与侧链不同的是,它们不需要独立的区块链来运作。
支付通道使用智能合约,使用户能够进行交易而无需将其交易发布到区块链。它通过在两个参与者之间使用软件强制执行的协议来实现。
支付通道是如何工作的?
在像流行的闪电网络这样的模型中,双方首先将代币存入他们共同拥有的地址。这是一个多签地址,需要两个签名才能花费资金。因此,如果爱丽丝和鲍勃创建了这样一个地址,资金只能在他们双方同意的情况下才能转移。
假设他们各自向一个现在持有 20 个 BTC 的地址存入 10 个 BTC。他们很容易就能保持一个资产负债表,一开始显示爱丽丝和鲍勃各拥有 10 个 BTC。如果爱丽丝想给鲍勃一个币,他们可以将其更新为爱丽丝拥有 9 个 BTC,鲍勃拥有 11 个 BTC。他们不必发布到区块链,因为他们会继续更新这些余额。
然而,当时间到来时,假设爱丽丝有 5 个 BTC,鲍勃有 15 个 BTC。然后他们可以创建一个将这些余额发送到各方拥有的地址的交易,对其进行签名并广播。
爱丽丝和鲍勃可能在他们的资产负债表上记录了十笔、一百笔或一千笔交易。但就区块链而言,他们只执行了两次链上操作:一次用于初始资金交易,一次是在他们完成时重新分配余额。除了这两次之外,所有其他交易都是免费且近乎即时的,因为它们发生在链下。无需支付矿工费,也无需等待区块确认。
当然,上面讨论的例子需要双方合作,这对陌生人来说并不是理想的情况。然而,可以使用特殊的机制来惩罚任何试图作弊的行为,因此各方可以安全地进行互动而无需信任。
支付路由
显然,支付通道对于预期进行大量交易的双方来说非常方便。但它还可以更好。可以完善这些通道的网络,这意味着爱丽丝可以向她没有直接连接的方支付。如果鲍勃与卡罗尔建立了通道,则只要有足够的容量,爱丽丝就可以向她付款。她会将资金推送到鲍勃的通道一侧,鲍勃反过来会将其推送到卡罗尔的通道。如果卡罗尔与另一个参与者丹连接,则可以执行相同操作。
这样的网络演变成一个分布式拓扑结构,每个人都连接到多个对等节点。通常会有多条到达目的地的路线,用户可以选择最有效的路线。
结语
我们讨论了两种可扩展性方法,它们允许进行交易而不会给底层区块链带来负担。侧链和支付通道技术都尚未成熟,但越来越多的用户正在利用它们来规避基础层交易的缺点。
随着时间的推移和越来越多的用户加入网络,维护去中心化非常重要。这只有通过限制区块链的增长来实现,以便新的节点可以轻松加入。链下可扩展性解决方案的支持者认为,随着时间的推移,主链将仅用于结算高价值交易,或用于侧链的进出锚定以及通道的打开/关闭。