HashKey 崔晨:分析公链多层结构趋势和互操作性

Oh3timism Rolluh3

Optimism Rollup 与 ZK Rollup 同样采取了 Rollup 的方法,面临相同的互操作问题。与 ZK Rollup 的验证证明方法不同,Optimism 在保证资金安全上参考了 Plasma 模式,用的是欺诈证明。链上信息发布者需要提交押金,并等待挑战期。别的人可以在链上提交欺诈证明揭露发布者发布了错误的数据,假如属实则会对买卖进行回滚,并没收发布者的押金。挑战期结束前无人挑战成功的话,就可以觉得数据是正确的。马上上线的ArbitrumRollup 是 Optimistic Rollup 的一个变种,也设有挑战期的限制。假如有人觉得数据是有误的,则要缴纳保证金并提交证明,链上合约会对其进行仲裁。他们之间最大的差异在于上传到链上的数据有所不同,在解决争端时的链上本钱会不同。Optimistic Rollup 会在链上实行一次完整的合约调用,消耗较高本钱,Arbitrum Rollup 缩小其中的争议范围,减少了链上解决争议的本钱。

不少公链都呈现出多层结构,依据区块链上验证者对其他层是不是感知,它们在达成方法上有所不同。对于原生型多层结构来讲,除去资产以外,在虚拟机存在的状况下,还可以在不同层中达成智能合约的调用。在多层结构中达成更多的互操作性有益于扩大生态规模,达成模块化的功能,节省开发本钱,并且层级间的互通可以提升资金借助率。后天型多层结构中主链验证者不会响应 Layer 2 层上的请求,不过 Layer 2 层在非必要状况下也不会与主链进行交互,由于会占用主链资源,影响 Layer 2 的扩容成效。因为没像原生型多层结构中的中继者或达成统一协议,在 Layer 2 之间达成互操作性是很不简单的。

后天型多层结构在资金安全问题上会涉及到更复杂的问题,需要用户资产在链下可以达成和主链相同的安全性。在现在 Layer 2 的设计策略中,都保证了无论 Layer 2 上是不是存在验证者,用户在链下的资产都可以随时提回链上,需要通过各种机制设计保证用户资产的安全性。下表是对不同多层结构在互操作性、跨层方法和层中角色方面异同的概要。

cosh3laymos

cosplaymos 通过 Hub 和 Zone 的形式来达成多层结构,互联网通过增加 Zone 达成扩容,Zone 也可以成为 Hub 再连接上其他 Zone。相对于来讲,Zone 就是互联网中的分片, Zone 与 Zone 之间可以通过 IBC (区块链间通信)协议达成通信。

图 2:cosh3laymos 互联网构造

每一个 Zone 和 Hub 都是一个独立的区块链,互联网的安全性由每条链自行维护,每条链上都设有独立的验证者节点,他们通过共识保障链上财产。cosplaymos 互联网多层结构交互独立,这有别于 DOT波卡。在构建 Zone 时,cosplaymos 提供了模块化的开发工具包 cosplaymos SDK,允许开发者直接用 Tendermint BFT 共识算法。Tendermint 的容错率为三分之一,并且在共识时可以达成同一区块高度上不会出现两个区块,防止了互联网分叉以此达成安全。

cosplaymos 中的 Zone 通过 IBC 机制进行信息交换,IBC 像网络的 TCP 协议,目的是达成信息的靠谱传输,需要共识算法的最后性预防双花,Tendermint 是最符合其需要的共识算法之一。在跨链达成前,双方需要知道他们的区块头信息,等于保存了他们的轻节点。发送方在链上实行有关操作后,会生成有关证明传送给接收者。接收者验证后发送者的操作后,会实行下一步骤。

对于后天型多层结构,原本就存在的区块链结构称为 Layer 1,后来在区块链本身上搭建的多层结构称为 Layer 2。并不是所有链下策略都可以算作 Layer 2 层,不然中心化交易平台也能算作多层结构。只有在机制设计上能完全保证用户资金安全的策略才可以归入 Layer 2 策略,比如状况通道、Plasma、Rollup 等。

Plasma

Plasma 由智能合约和默克尔树结构组成,通过在ETH主链(或者称根链)上创建一条或多条子链达成扩容。每一个 Plasma 子链都是由独立的节点运营,他们可以通过不同于主链的共识算法验证和产出区块。运营者将买卖数据以默克尔树的形式储存,并且将默克尔根发布到ETH主链上,如此别的人能迅速验证原数据是被储存在 Plasma 链中。

用户在 Plasma 链上的进入和退出需要智能合约处置,这个智能合约包括了状况转换规则,用户可以随时与智能合约交互自行加入和退出 Plasma 链。因此在测试到 Plasma 链上运营者的作恶行为时,可以主动将资金退回到主链。在退出时,用户除去要向ETH提交期买卖记录的证明外,还需要提交保证金且有肯定挑战期的限制。假如用户提交了错误的记录,需要有人在挑战期对其进行证明并扣掉他的押金。

与状况通道不同,Plasma 允许将子链中的资产发送给不在子链上的用户,仅需用户在子链中提现,所以在 Plasma 链上的资产与主网没互操作性。而且不一样的 Plasma 链由不同智能合约设立,他们之间也非常难达成资产跨链和互操作性。

状况通道

状况通道和闪电互联网类似,将买卖转移到通道中进行,等待通道内的买卖结束后,再将资金转移到主链上进行清算。为了保证买卖双方的资金安全,用户可以随时把资金撤走。在这种模式下,用户每进行一次资金转移都需要经过双方签名确认,最后版的签名代表了通道内的最后状况。用户需要凭着双方签名的证明提出提现请求,假如一方用户提交了请求,在规定时间内另一方拿出证明表明前者并不是用最新的买卖结果,则提出质疑的一方获得所有资金(罚金机制);不然根据提出方的结果进行分配。

虽然状况通道的设置保证了资金安全,但影响了可用性和互操作性,而且状况通道内非常难达成智能合约。用户没办法对状况通道外的人转账,只能与通道内的人交互。通道只允许双方存在,假如想与别的人买卖,只能再设立一个通道或者通过别的人作为路由节点进行买卖。每条通道内都要锁定肯定资金,如此的话影响全网的资金借助率,并且需要节点长期在线。

从互操作性角度,波卡等原生型多层结构要优于 Layer 2 等后天型,由于前者可达成信息流转和智能合约调用。

区块链技术应用一直以来都是大家最关注的话题,而作为承载应用的公链,其性能决定了应用的上限,关于公链的技术进展同样遭到关注。ETH之后诞生的角逐公链,包括ETH的升级,都致力于提升系统性能。在此首要条件下,多层(链)结构在公链中成为海量公链的选择,比如多层构造和链下扩容策略。对于多层结构,层级之间的互操作性是达成可用的基础,更要紧的是坐落于不同层的资产要达到统一的安全性。本文主要对现在时尚的多层区块链结构进行剖析,说明安全出处和互操作性问题。

公链及智能合约的诞生给区块链应用提供了载体,但应用场景也受限于公链。区块链大规模应用的障碍之一是可扩展性(Scalability),即区块链的性能。可扩展性会限制区块链买卖吞吐量,致使拥堵和买卖费上涨,ETH就常常面临这个问题。扩容是解决互联网拥堵的根本策略,多层结构就是达成扩容的主要方法之一。通过多层结构,数据可以在不一样的互联网分区并行处置,提升系统的处置效率。比如ETH的 Layer 2 扩容策略,以计算过程放到链下进行,最后结果传回链上的方法,增强区块链的信息处置能力。公链多层结构有不一样的表现方法,有平行链和中继链、分片、Layer 2、主网和子网等。

公链中的数据和价值流转需要主网出块者达成协议,依据主网中的节点对多层结构是不是感知,可以分为原生型多层结构和后天型多层结构两种模式。原生型多层结构的例子是DOT波卡,在设计之初就明确了信标链上的验证者负责维护互联网安全与平行链间的通信。在后天型多层结构中,主网对其他层级没感知,不负责其他层上的任何功能,需要各层自行保证资产安全。无论是哪类型型的多层结构,它们有哪些用途都是在保证资产安全和互操作性的首要条件下,达成整个系统的扩容,提升公链的处置效率。

不相同种类型的公链结构在达成多层结构安全的方法有所不同,原生型多层结构需要上线时就对跨层机制和确保安全方面有健全的设计,在上线后非常难改动。后天型多层结构会在主链的基础上进行改动,自行保证安全并且无需主链参与,推行发现缺点后可与时更迭技术,更为灵活。在保证不同层间安全的首要条件下,多层结构的互操作是可用性的基础。与安全保证类似的,原生型多层结构中会预设跨层接口,而且互操作性的范围更广,后天型多层结构需要额外的桥连接才能达成跨片区的交互。

DOT波卡

PolkaDOT波卡币 是一种异构多链结构,表现为中继链加平行链的方法,互联网中共有三个角色,验证人(Validator)、提名人(Nominator)和采集人(Collator)。提名人可以将我们的DOT波卡币抵押给验证人,验证人负责维护中继链,中继链与多个平行链相连,每一个平行链都会被分配少量的验证人,采集人负责采集平行链上的信息并生成验证证明发送给验证人。应用全部运行在平行链上,在互联网需要扩容时,仅需增加平行链的数目。

图 1:DOT波卡 构造,内圈是中继链,外面连接的是平行链

中继链负责维护平行链的安全与之间的信息传输,分别通过验证证明和 XCMP (跨链信息传递)达成。平行链与中继链共享安全的同时需要共享状况,他们通过 BABE 和 GRANDPA 达成协议,只须超越三分之二的节点投票支持,区块就可以被觉得是最后性的。为了保证互联网安全,平行链中的信息会由验证人证实已经实行过后,才会记录到中继链上。采集人向负责的验证人提交候选区块和状况转换的验证证明,假如平行链区块是无效的,则会被验证人拒绝。最后是验证人维护整体互联网安全,验证人数目越多互联网越安全,与平行链上采集人的数目无关。转化状况证明的验证需要用验证人储存在中继链上的已注册的状况转换函数。为了预防验证人和采集人共谋,验证人会每隔一段时间进行随机分配。

XCMP 负责达成两条平行链的互操性,通过中继链上的验证者解决信息跨链问题。XCMP 由发送者和接收者组成,发送者的采集人会将跨链信息放入出站列中,负责的验证者验证后将其添加其进入接收者站列,同意者的采集人会看到这条信息后实行需要,并构建候选区块。接收链上的采集人最后将区块交给验证者,经由验证人验证消息已经被处置后,纳入中继链完成一次跨链。中继链既保证安全又帮助跨链,因此 DOT波卡 可以视为一个整体。

ZK Rolluh3

Rollup 是一种链下解决方法,主网中的计算放到链下进行,将可验证的结果传回链上,并且可以保证数据可得性。和 Plasma 一样,在链下买卖前也需要用户将资金转入 Rollup 地址中。ZK Rollup 的验证者提交链下数据者需要附属一个证明,其内容的正确性可以迅速得到主链验证。但有效性证明的本钱与买卖的复杂度有关,假如对智能合约的操作进行验证,本钱会剧增。因此 ZK Rollup 非常难支持通用智能合约,限制了它的用场景。现在 ZK Rollup 的研究团队在开发适用在其上的规范智能合约。

Validium 是一类型似于 ZK Rollup 的技术,同样通过有效性证明验证买卖。不一样的是 Validium 的数据储存在链下,需要运营者负责数据储存。运营者的存在让 Validium 更中心化,但能够帮助扩展链下效率,因此 Validium 更适用于低信赖环境的高频买卖场景。

Rollup 是主链上扩展出的 Layer 2 层,现在只能达成跨层资产转移,通过验证证明的方法保证 Layer 2 层的资金安全。因为资产跨到了 Layer 2 层,所以非常难达成跨层的智能合约调用。不一样的 Rollup 之间也非常难达成互操作,现在的跨链策略多为设立双边资金池的方法。

表 1:多层结构的异同

多层结构一般是公链达成扩容的方法,将原本在一条区块链上买卖的信息分散到多层中,通过并行处置提升效率。多层结构有两种表现方法,原生型和后天型,他们在验证者对多层结构的感知上有所不同。

在原生型和后天型多层结构中,信息通过不一样的方法进行跨层传递。原生型多层结构比如 DOT波卡 和 cosplaymos 分别通过中继链和协议的方法达成跨层,对多层结构有严格的限制,DOT波卡 需要平行链的结果由中继链共识决定,cosplaymos 需要用 IBC 协议的双方达成一致的共识安全,比如双方都用 Tendermint 算法。DOT波卡 中继链的验证者负责平行链的信息传递和资产安全,可以将多层视为整体。cosplaymos 的多层结构则较为独立,每层均有独立的验证者。后天型多层结构只能通过资产映射的方法进行跨层,映射资产的安全性来源于用户可以自行加入和退出 Layer 2,保证用户学会控制权。为了达成链下买卖与主链同等的安全性,不同 Layer 2 策略设计了各种机制。比如状况通道中需要用户买卖后更新签名状况,Plasma 将原始数据的默克尔根发布在主网上,Rollup 将压缩后的买卖传回主网,买卖方或第三方可以直接验证。

在更广义的互操作性上,原生型多层结构要优于后天型,由于他们可以达成信息流转及智能合约的调用。而后天型多层结构中因为信息来源于链下,主链上验证者没感知,在 Layer 2 和验证者之间不会存在直接交互。对于不同 Layer 2 而言,因为都是从主链上延展出的结构,跨层互操作性的困难程度不亚于两条异构链之间互操作。现在达成的资产跨层是双边资金池的方法,距离真的的互操作性还差非常远。总之在区块链应用大规模部署前,多层结构依旧是公链的趋势,下面还将在互操作性与生态扩展方面进行健全。

你会喜欢下面的文章?