原文标题:《 Off-chain protocols: Sidechains and Rollups 》
原文作者: Patrick McCorry
原文编译:阿剑,以太坊爱好者
Infura 现已支持以太坊之外的网络,包括 Arbitrum、Optimism 和 Polygon。
这三个项目都是全新的区块链网络。相比以太坊,它们提供了更低的交易费和更快的交易确认速度。关键是,它们还提高了以太坊的易用性,因为用户原本放在以太坊上的资产也能拿到这几个网络中使用。
这种扩展方法被称为「链下协议」。我们写了一篇简短的文章来解释它们如何能有助于扩展以太坊的吞吐量(并提高其易用性)。
为什么不直接在以太坊上交易呢,吞吐量的瓶颈在哪
过去三个月的平均 Gas 价格。在网络拥堵时就会飙升
以太坊只支持每秒 15 笔交易,而且,从图 1 中可以看到,在用户的需求超过吞吐量瓶颈时,手续费水平就会飙升。从某种程度上来说,吞吐量的限制是社区为了追求去中心化而制定的自我约束。
去中心化的目标是最大化全世界能够实时验证区块链完整性的参与者的数量。这个目标对于最小化对区块生产者的信任,是非常关键的,所以社区自我强制实施了界定区块有效性的共识规则。为了达成参与者占世界人口比重的目标,需要限制交易处理所带来的计算量、存储量和带宽负担。
(译者注:作者在此处的推理是成立的,但是表述却是浪漫化的。我从来没听过谁能确定全节点(也即所谓的实时验证者)的运行负担与参与者数量的关系并以此提出计算量等方面的资源约束。这样的研究有几分可信度是值得质疑的。而现实也根本不是这样运行的。我们只需知道,提高吞吐量并不是没有代价的事情,就可以了。暗示大家有个一致的共识应该怎么控制吞吐量,则神化了「社区」这个概念,阻碍了人们认识实际的情形。)
我们的挑战是,既要提高吞吐量,又不能逾越资源的约束。
为什么我需要了解链下协议比如侧链和 rollup
大部分扩展网络的方法都从下面几点着手:
· 分发验证负担。验证任务在网络的节点之间分配,而不是像以太坊当前这样要求所有节点都做一模一样的工作。
· 更好地利用网络中可用的资源。网络中的资源应该能持续不断地得到利用,而不应出现闲置。举个例子,缩短出块的时间间隔以更好地利用带宽。
这些可扩展方案可能仍需要很多年来实现,因为它们需要对底层的以太坊协议作重大变更。
但另一种更为流行的替代方案是链下协议,它们是现在就可用的。因为它会以如下的方式来扩展网络的吞吐量:
链下协议:交易处理的负担从以太坊上转移到另一个网络中,但这些交易影响的资产仍然驻留在以太坊上。
这样的扩展方案等于是动用了另一个区块链网络,其资源约束也将与以太坊的不同。这样的网络可以用来实验多种扩展协议(也可以单纯用来测试 go-etherum(以太坊网络当前的主流客户端)的极限),同时提高以太坊的易用性。
当我把资产充进另一个网络时,这些资产去了哪里
你的资产会转移到以太坊上的一个专门的桥接合约里,然后目标网络里会你的账户中会出现等量的资产。资产铸造完成后,你就可以在目标网络里使用这些资产了,并且最终,当你想把资产取出时,你需要通过相应的桥接合约来取回。
并非所有的桥接合约都具备同样的功能和特性。我们必须考虑桥接合约是怎么决定在何时释放资产、还给用户的。理想状态下,只有桥接合约确信对应的网络没有遭到破坏时,才应该放行资产。这个就是所谓的「信任假设」,是保护用户资金的终极措施。在讨论链下协议是否真的能扩展以太坊时,这一点经常会引发争议。
一方面,有些用户认为,另外的区块链网络确实是一个扩展方案,因为它们能保证与以太坊同等(或非常接近)的安全性。常常被人讨论的「rollup」协议最理想时是能实现这种程度的安全性的。但是,另一些用户会接受更强的信任假设,相信锁在另一个网络中的资产总是足够安全的(只需要是「侧链」就能让他们满意)。
与主链保持同样安全性的 rollup 方案(相比于侧链),会需要付出更多的资源。举个例子,Rollup 网络中的每一笔交易都需要向桥接合约提交一次状态更新。但侧链协议就无需以太坊投入巨大的资源开销,因为交易的验证是由一组外部的参与方来执行的。(译者注,确切来说,是因为侧链无需把自己运行的任何细节暴露在以太坊区块链上)。这种 安全性/资源 的取舍,最终会转化成用户的经济负担,天下没有免费的午餐。
不管怎么说,我们相信,采取不同信任假设的桥接合约都会出现。最终,所有支持交易以太坊上资产的网络都会提高以太坊的易用性。只是用户在把资金锁入桥接合约之前需要三思,需要意识到信任假设的区别和风险。
什么是侧链
「侧链」这个词是始创于 Blockstream 的一篇论文。它是一种互操作性的解决方案,让两个区块链网络能通过轻量级的证明来验证有关彼此进展的信息。这种构想的初衷是希望能在比特币区块链上锁定比特币,然后在另一个网络中释放(或者反之),而无需信任任何中介。
但几年过去,「侧链」这个词获得了自己的生命力。它通常用来指代与另一个区块链网络有关联的一个独立的区块链网络。实际上,这是通过一个允许资产从主链(比如以太坊)移到另一个区块链网络的桥接合约来实现的。
侧链可能会用到三种不同类型的桥接合约:
· 单组织型。单个团体托管了锁定在桥接合约中的资金。
· 多组织型。特定的多个独立参与方托管了锁定的资金。N 个参与者中只需 K 个同意即可执行动作。
· 密码经济型。动态的参与者组合,由资产权重决定参与资格,决定锁定资金的去向。
举个例子,WBTC 就是一个单组织型的桥,因为 BTC 是由 BitGo 托管的。而 Liquid 网络和 RSK 区块链则是由多组织桥来实现的,因为一组预先指定的参与方有权把资产从一条链转移到另一条链(以多签名来表示许可)。而 Polygon 是一个密码学经济桥,因为它依赖大于(2/3)的权益多数来指定验证者,再由验证者定期向桥接合约提交网络状态检查点(且这个检查点可以用来授权用户取款)。
最重要的是,侧链的桥合约是不会去验证其它网络的完整性的,因此,它需要一组参与者为有效性负责。也就是它假设了至少会有一定比例的参与者会因为经济激励而保持诚实并保护用户的资产。
什么是 rollup
「Rollup」一词来源于 barry whitehat 提出的 zkrollup 概念,脱胎于 Plasma 的研究。
一个 Rollup 系统也是一个独立的区块链网络,但是 Rollup 系统中交易的资产留存在以太坊区块链上并受到桥接合约的保护。桥接合约必须不断确认 rollup 网络没有被破坏、资金没有处于风险之中。在最糟糕的情况下,桥接合约需要无视网络的请求,允许用户取回资金。
Rollup 可以保持(至少是非常接近)以太坊的安全程度,代价是要解决以下几个问题:
· 数据可得性。桥接合约必须确定所有数据都是公开可得的。这使得每个人都能独立计算这个 rollup 的最新状态。
· 状态转换的完整性。桥接合约必须确认,所有的状态转换(交易)都是有效的。
· 抗审查性。桥接合约可以自主执行交易,以保证如果网络被攻陷(或者不能推进),用户最终可以自己取出资金。
快速总结一下解决方案。数据可得性问题通过把系统内所有交易的数据发布到以太坊区块链上来解决,这也是「rollup(卷)」名字的由来(它把交易都卷了起来成批上链)。状态转换的完整性问题则使用错误性证明(fraud proof)(Optimistic rollup)或者有效性证明(ZK rollup)来解决。抗审查问题则有些棘手,通常也不会讨论,但它需要桥接合约能够自主接受和执行普通用户发起的交易。
Rollup 有一个持续付出的成本。这样的网络必须持续向桥接合约提供证明,证明所有得到处理的交易都是有效的,网络没有被攻破。这需要消耗以太坊的资源,也影响了它的可扩展性。不过,从中期来看,它还是可以大幅降低用户的交易成本。举个例子,在 Arbitrum 上,一次币币互换的成本是 1600 gas,而在以太坊主网上需要 12 万 gas。
虽然侧链交易不需要消耗以太坊的资源,代价就是它无法获得以太坊同等的安全性以及(最终来看)免信任性。
侧链与 Rollup 有何区别
侧链(比如 Polygon)和 Rollup(比如 Optimism 和 Arbitrum)都是独立的区块链网络,它们有自己的区块生产者和智能合约运行环境。它们的关键区别在于锁定资金的桥接合约。准确来说,是保护用户资金的信任假设的区别。
· 侧链。桥接合约会接收关于独立网络的信息,但不会验证其正确性。一组掌控这个桥接合约的参与者会负责检查独立网络的状态(确保其未被攻陷),并向桥接合约表示相关的事实。
· Rollup。一组参与者(定序器)负责为独立网络的状态更新提供证据,并由桥接合约来验证这些证据的有效性(以及独立网络是否完整而未遭破坏)。
这里面有个细微的区别,但归根到底,在于主链上的桥接合约是否能强制保证独立网络上的交易的有效性,还是说,它只能依赖于一组受信任的参与方来表示这些交易是有效的。
当然,天下没有免费的午餐。Rollup 网络可以保持与以太坊主网同样的安全性,但也要在以太坊网络中消耗更多的资源。这就拉高了在 rollup 网络上交易的成本。作为一个用户或者开发者,你需要考虑网络所提供的额外安全性和额外付出的财务成本。
没有最好的,只有最合适的。
本文链接: https://www.8btc.com/article/6678816
转载请注明文章出处