写在前面:以太坊的扩容解决方案层出不穷,例子有状态通道、Plasma、分片以及最近非常流行的zk-rollup和optimistic rollup等,而像Plasma方案,此前已被判定了死刑,可以说,目前的以太坊社区更倾向于选择rollup及零知识证明方案,那状态通道方案的情况又如何呢?来自Consensys研发部Magmo团队的负责人Tom Close在这篇文章中解释了状态通道与rollup方案的互补作用,并简单提到了状态通道方案需要解决的一些问题。 而在今天,我们将探讨区块链技术领域中的状态通道,并对它们的工作方式进行一个大概的总结,当然,这些总结对您来说可能并不是全新的,但它应该能够很好地刷新有关新状态通道的基本知识。 状态通道有什么好处? 状态通道通常被描述为一种可扩展性解决方案。自从状态通道首次被提出以来,关于Layer 2扩容方面已经有了很多进展(Layer 2是指构建在区块链之上的解决方案,因此它们不需要对核心协议进行任何更改。) 而最新的Layer 2扩容解决方案就是zk-rollups和optimistic rollups,这两种方法都涉及定期向区块链提交批处理交易数据以及生成的状态根,从而允许更高的交易吞吐量。使用zk-rollups方案,可提供关于整体状态转换正确性的零知识证明,从而保证链上状态有效,并允许立即撤出。由于生成证明的复杂性,zk-rollup系统目前仅被用于简单的资产转换。而Optimistic rollups方案则允许在链下设置中执行任意EVM代码,但要求用户在退出其资金之前等待一个挑战期(challenge period),并依赖挑战不正确状态的各方来维护转换的完整性。 这两种方法的可扩展性都很可观,可能实现大约500 tx/s的交易吞吐量。(译者注:这是Vitalik早期提出的一个估计值,在以太坊完成伊斯坦布尔硬分叉后,使得这两个方案的理论tps最高提升到了2048,而假设以太坊成功转向PoS方案,则这些方案的理论tps上限可得到极大的提升) 状态通道也有助于提高可扩展性,在某些用例中,状态通道有可能实现超过rollup方案的吞吐量,这是因为它消除了链处理大多数交易的需要。它们还具有一些独特的属性,这使得它们适用于一些用rollup方案难以实现的场景。 而其中一个非常重要的特性,在于它能够实现交易的非中介化:一旦双方建立了通道,他们就可以交换价值而无需第三方参与。但在rollup方案中,情况并不是这样的,因为所有交易都必须由rollup运营方处理的,而另一个重要特征就是转移的终局性。使用状态通道,在收到更新后即会更新状态,这意味着价值转移会立即发生。 例如,假设你想要求Infura API的用户为每个API调用支付少量的ETH。一个典型的用户每10秒左右就会碰一次你的endpoint,你希望能够向他们收取一分钱的费用,并且仍然给出一个亚秒级的响应时间。在这种情况下,你没有时间联系rollup操作者,即使这样做了,rollup交易的开销成本也将太高,即使它降低到100 gas (当前约为分)。 或者,假设你想构建一个去中心化的ISP(互联网服务提供商),它允许用户从邻居那里购买带宽,并按MB为单位进行付费。或者,如果你想通过启用去中心化按需付费模式,为内容创作者提供广告收入的替代选择。或者,如果你想建立一个物联网设备网络,该设备可以在收集和提供数据时接受付款。或者,如果你想为状态提供者付款,以激励他们提供支持无状态区块链所需的数据…… 在以上的这些情况下,你就有可能会想到状态通道方案了。 好吧,说了那么多,我们还没有提到状态通道的“状态”部分。在大多数情况下,上面的例子会需要用到支付通道(一种专门的状态通道),其中状态只是每个参与者的余额。链外交换的状态可以比这更通用,从而允许状态通道在用户之间提供更复杂的交互。在状态通道内,包括原子互换、任意复杂的条件支付,甚至是国际象棋游戏都可以完成。在设计激励方案时,这为系统设计人员提供了很大的灵活性。 总而言之,状态通道占据了权衡空间的一个独特区域,其特性在广泛的应用中具有重要意义。在本文的其余部分内容中,我们将概述状态通道的运作方式,以便更好地理解它们是如何实现上述特性的。 状态通道是如何运作的? 那什么是状态通道?我们将通过一个典型的状态通道交互来回答这个问题: (责任编辑:admin1) |