概述
长期以来,可扩展性一直是该领域广泛讨论的话题。围绕单片式区块链与模块化区块链、横向与纵向扩展的讨论长期以来一直是社群交流的重点。
一种流行观点因此应运而生——为特定应用程序或用例建立专门的执行环境或者甚至是最终性(即 finality,指区块链上的交易达到了交易状态确认的状态)工具。这种想法具体指,基于每个产品、每个应用程序的安全和速度需求,对共识和计算进行分离与优化,这在理论上可以减轻单一底层区块链的负载并提升其性能。但这种方法长期受制于一点:这种架构下确保互操作性所需的基础设施是极其复杂的。
在过去的几年里,我们通过不同的方式应对这些挑战,取得重大进展。更重要的是,在过去几个月里,几个独立多链环境的通信层已上线,这些通信层可以说是这块「拼图」中最重要的一块。同时,在过去几周,更多的 L1/L2 区块链宣布调整架构,为特定应用的区块链提供开箱即用的基础设施,再一次重新激发了相关讨论。
在这篇文章中,我们详细研究了为追求这一愿景而开发的各种形式的架构,并比较了它们在共享共识、容量和互操作性方面的取舍。具体来说,我们研究了五个独立的多链架构:Polkadot、Cosmos、Avalanche、Polygon Supernets 和 Binance BAS。
注:该文章主要关注独立多链基础设施,在此特定应用的区块链会共享验证者组或共识算法。
独立多链生态系统的连接程度各有不同,低至共享开发者工具包,高至共享验证者集、最终性工具和状态。客观来说,每种方法各有优势,但都对共享安全的维护和速度/能力进行了一定程度的优化。
在这篇文章中,我们通过五个关键参数来比较这些生态系统。
在这些生态系统中,一些链保持着某种形式的独立状态,一些链则是在整体水平上达到最终性的。这提供了 1) 更大的安全性和 2) 更综合的互操作性。然而,这也带来在容量限制上的取舍,如果模块化区块链的数量超过一定数量,达到最终性的过程将大大减慢。
除了共享共识机制外,各个区块链还可以共享验证者组。在下面的例子中,验证者共享的范围涉及所有链上的单一验证者集,到多个验证者集(其中的每个验证者集为部分而非所有底层区块链提供共识),再到每个底层区块链的互斥验证者集。由于每条新区块链的边际风险降低,共享验证者集提供了集中的安全保障,但在节点上的大规模折中会导致被验证者集保障的所有链受到不利影响。这一参数的理想状态是一个充分分布的单一验证者集,为大量的链提供共享安全保障。另一方面,它最有风险的状态是一个有少量集中节点的单一验证者组。
推特用户:Jump已开始将MATIC转移到B2C2、Cumberland和Wintermute:金色财经报道,推特用户nay_gmy发推称,Jump已开始将MATIC转移到B2C2、Cumberland和Wintermute,然后将其存入 Coinbase和Binance,价值1250万美元的MATIC仍留在Jump的钱包中。[2023/6/28 22:04:48]
速度和容量在很大程度上是上述设计选择的表征,可以通过到达终点态的时间和一个生态系统可支持的最大链数来衡量。例如,具有共享最终性和单一全局状态的结构只能容纳一定数量的链,因此到最终性的时间就会大大减慢,这是为了获取更大安全保障做出的取舍。
下面是对这五个生态系统在这些参数上的宏观概述。在文章的其余部分,我们将对这些生态系统中的每一个部分进行分解,并讨论每个设计选择的优缺点。
Polkadot 在该领域出现较早,建立的目的是为了支持共享单一全局状态的特定应用区块链。在 Polkadot 架构下,特定应用区块链(平行链)与底层区块链(称为中继链)共享计算和共识资源,其主要功能是维护一个统一的全局状态。
Polkadot 在中继链层面上运行提议的权益证明共识。在这种架构下,有三种类型的节点。
提名者选择值得信赖的验证者,并将自己的一些 DOT 抵押给他们。他们分享验证者的奖励,但如果验证者从事恶意活动,他们也会被处罚 (slash)。
中继链上的验证者参与区块生产和共识。不同于独立的单体区块链,中继链验证者必须就多条个链的状态与单独交易达成共识。
校对者收集在特定平行链上的交易,并向中继链验证者提出一个候选交易块和一个状态转换证明。每个校对者在中继链和其工作的平行链上各保持一个节点。他们在自己的平行链上积累交易,创建未密封的区块,将其与状态转换证明一起提供给一个或多个中继链验证者。在中继链验证者达成共识之前,该区块都不算达到最终性。
尽管平行链共享全局状态,但他们可以自由选择所运行的具体共识算法(GRANDPA /Tendermint/传统 pBFT 等),以便在中继链(Polkadot / Kusama)上结算之前实现平行链级验证。
Polkadot 共识的一个独特之处在于,它将区块生产和区块最终性分离;在一个混合共识框架下运行。
区块生产机制:BABE(Blind Assignment for Block Extension)区块延伸随机分配制
基于质押的价值大小与 Polkadot 的随机循环,验证者被选择来为 6 秒的插槽(slot)下单和生产区块。在这种随机选择下,最终每个插槽可能有一个、多个或零个区块生产候选人。当多位验证者被选入同一槽时,区块生产转为竞赛。在没有验证者被选中的情况下,会进行二次循环选择。一旦一个区块被生产出来,该消息就会被传输给其他验证者。
Jump Trading过去一周增持MASK、LDO、LEVER和PERP:6月24日消息,据Lookonchain统计,Jump Trading在过去一周积累了MASK、LDO、LEVER和PERP。Jump Trading目前持有:159万枚MASK(615万美元);109万枚LDO(211万美元); 5.09亿枚LEVER(68.6万美元);107万枚PERP(54.5万美元)。[2023/6/24 21:57:42]
终局性工具:GRANDPA (GHOST-based Recursive ANcestor Deriving Prefix Agreement) 基于 GOSHT 的递归 ANcestor 衍生前缀协议
一旦一个中继链块被传输到网络的其他部分,它需要至少 2/3 的多数同意才能被添加到链上。然而 GRANDPA 的独特之处在于,它在链上而非块上达成协议。这意味着,当它证实了一条包含某个区块的链时,该区块之前的区块都会立即一并被达到最终性,这与传统的逐个区块进行确认的过程不同。
在此架构下,这些组件,特别是中继链,通过 Polkadot 特有的通信标准 XCM 相互通信。
在宏观上,Polkadot 跨链信息传递系统中的所有消息都会通过中继链传输,从而延续其安全性。有两种类型的消息可以被传递:
向上传递的消息(UMP):从一个平行链到中继链的消息
下行传递的消息(DMP):从中继链到其中一个平行链的消息。
进入平行链的信息被称为入口(ingress),而出去的信息被称为出口 (egress)。
下面是一条消息从平行链 A 传到平行链 B 的过程:
平行链 A 发布 UMP,作为出口批次的一部分,被传输到中继链上的所有验证者节点。
平行链 B 上的校对者节点每次向中继链提交新的区块候选者时,都会搜索新的入口消息。
入口信息被添加到平行链 B 的处理队列中,并将在下一个区块提案中被传递给验证者节点。
在资产转移的过程中,基础资产在 A 区块链上被销毁,并在 B 区块链上重新发行。
鉴于所有消息都要经过观察全局状态的单一验证者(与 Polkadot 中继链共享),且所有链都建立在相同的标准上,这就使「销毁+铸造」模型高效进行。Polkadot 的互操层是该领域中最有效和最安全的层级之一。因此推荐选择在它的生态系统内建立项目,因为可以使用 XCM 与现有的平行链无缝连接,并借用这些网络效应进行启动。
Beosin:Jumpnfinance项目发生Rugpull,涉及金额约115万美元:金色财经报道,据Beosin EagleEye平台监测显示,Jumpnfinance项目Rugpull。攻击交易为0x48333962e6e946748a26d6222db95ce97e76c9ed3917123a7c9f2731f896b72c。Beosin安全团队分析发现攻击者首先调用0xe156合约的0x6b1d9018()函数,提取了该合约中的用户资产,存放在攻击者地址上(0xd3de02b1af100217a4bc9b45d70ff2a5c1816982)。目前被盗资金中2100 BNB ($581,700)已转入Tornado.Cash,剩余部分2,058 BNB($571,128)还存放在攻击者地址,Beosin安全团队将持续跟踪。Beosin Trace将对被盗资金进行持续追踪。[2022/10/10 12:51:13]
拥有更高共享安全保障的代价是:在平行链数量达到一定值后,到最终性的时间会受到大幅减缓。在 Polkadot 中,平行链估计约为 100 个,是付租金使用的,目的就是减小这一限制的影响。项目可以在社区的支持下,通过 DOT 质押竞标平行链的使用名额,一旦名额过期,他们必须与其他参与者重新竞标以保留名额。这对拥有最多活动和社区支持的项目来说是一种默认的管理机制,部分地规避了容量限制问题,但这也意味着,新项目加入这个生态系统的门槛相对较高。
Cosmos SDK 是一套具有开箱即用的共识和执行的工具,允许任何人创建自己的 PoA/PoS 区块链。与本文涉及的其他生态系统不同,Cosmos 建立在一大前提下:基于智能合约的虚拟机其灵活性、主权和性能都是受限的。因此,Cosmos 不是建立一个可运行多应用的单一虚拟机,而是鼓励和促进为每个用例创建单独的区块链。在这种结构下,应用程序开发人员在构建时可以围绕特定的架构、语言等进行灵活操作,并通过 Cosmos 的多链通信层 IBC 实现互操作性。单个区块链被称为区(zone),而连接模块被称为中心(hub)。
在 Cosmos 生态系统中,不同于 Polkadot,每个特定应用的区块链都保持自己的独立状态,在每个区块上达到独立的最终性。通过 Cosmos SDK,开发人员只需要定义状态机(即应用程序),并可依靠 Cosmos 的 Tendermint 核心(一个共享的软件层),以推动共识和网络连接。Tendermint 运行的是基于 BFT 的共识算法,每个独立区的验证者可以利用该算法来促进状态转换和维护独立的状态。在每个区块链/区中,每个纪元都会随机选择一个验证者来提出下一个区块;如果超过 2/3 的验证者证明其有效性,则该区块可被认为是有效的。验证者集合和具体的激励设计可以在状态机/应用层面上定义。
赛马链游DarleyGo完成种子轮融资,Jump Capital领投:1月2日消息,基于Solana的在线赛马游戏DarleyGo宣布已完成种子轮融资,由Jump Capital领投,Genesis Block Ventures、Waterdrip Capital、Solar Eco Fund、GuildFi、Paribus Ventures、Athena Ventures和Panony参与投资。在神话故事的NFT赛马游戏中,DarleyGo允许玩家购买、比赛、收集和繁殖NFT马匹,通过冒险游戏可以获得游戏内的资产和代币。[2022/1/2 8:20:21]
Tendermint 是共享软件层,每个区块链/区必须通过一个名为 ABCI(应用区块链接口)的专用接口与之连接。来自各个区的交易通过 ABCI 作为交易字节传递给 Tendermint 核心,验证者对这些字节进行最终性排序,并通过 ABCI 向状态机传回代码,证明这些交易的有效性。
鉴于每个区都有主权并保持独立的状态,区与区之间的交流变得越来越重要。Cosmost 通过中心(作为路由连接各区)对与中心相连的区的状态进行观察。Cosmos Hub 是 Cosmos 生态系统中的第一个中心,大多数早期的高价值区都与之相连。通过 Cosmos Hub,被连接的区可以相互交流信。进行信息交流的具体架构称为区块链间通信(Inter-Blockchain Communication),或简称 IBC。IBC 客户端是轻型客户端,它跟踪各个链的共识状态和必要证明,以此根据客户端的共识状态正确验证证明。
在 Cosmos 中,路由是由一个单一且充分分布的验证者集来管理的,该验证者观察所有区块链的状态,且这些验证者大部分是与区块链共享的,因此它能够围绕跨区消息传递提供足够的安全保障。这也为在 Cosmos 生态系统内进行建设提供了充分理由,因为故障点集中且充分去中心化。
由于最终性没有集中到一个单一的链上,Cosmos 在理论上能拥有无限多的区和中心。因此,不同于 Polkadot,它用新项目建立新链是毫无困难的。这里的取舍是将一些安全保障卸载给区(让区自行设计激励机制和吸引验证者),以换取更大的设计灵活性和更高的容量,来容纳更多的个人区块链。
Avalanche 是一个由多组节点(称为子网)验证的区块链生态系统。子网可以自由选择自己的共识机制,包括 Avalanche 新颖的基于重复随机子采样的共识变体。子网内的每个区块链共享计算和共识资源,但最终保持自己的状态,不存在全局共享状态。
为了更好了解它的架构,我们必须了解 3 个关键部分:
动态 | 芝加哥交易公司 Jump 为 Robinhood 执行加密货币交易:据彭博社报道,芝加哥交易公司 Jump Trading 为股票交易平台 Robinhood 执行加密货币交易,目前双方均不予置评。知情人士透露称 Jump 在 2017 年 11 月便开始交易比特币。Robinhood今年 1 月该公司获得纽约州金融服务部颁发的加密货币经营牌照,可提供购买、销售、存储 7 种加密货币的服务。[2019/5/30]
Avalanche 式共识
指的是重复的随机子抽样。Avalanche 共识是建立在雪球算法上的,该算法利用重复的随机子抽样来实现共识。在这个系统下,每个节点随机询问 k 数量的相邻节点,以确定一项交易是否正确。这个过程不断重复,直到达到一定的预设法定人数 x,并且节点在很高的置信度范围内(至少是比特币的哈希碰撞概率),最终网络对交易的有效性达成一致。
Avalanche 共识与 Snowman 共识
Snowman 和 Avalanche 是 Avalanche 生态系统中两个主要的基于 PoS 的共识模型,使用重复的随机子抽样。两者之间的区别是,Avalanche 采用 DAG(有向无环图)架构,而 Snowman 是为线性区块链建立的。基于 DAG 的系统与线性区块链的关键区别在于,线性区块链的最终性是有序的,而在基于 DAG 的系统中,它的状态更接近于具有无序最终性的交易网。Avalanche 生态系统内的区块链可以选择使用两者中的一种共识模型,也可以采用他们自己的模型。
子网(Subnet)
子网是验证者的集合,可以在 Avalanche 框架内的一些区块链上提供共识。每个区块链都有一个子网,但每个子网可以验证多个区块链。因为每个区块链都是独立验证的,全局状态在区块链之间是非线性的,所以区块链间没有共享安全。
虚拟机(VM)
虚拟机决定了区块链的应用级逻辑。Avalanche 希望给每条区块链提供一系列操作代码,供其选择,来处理和转换状态等,而不是只提供一套操作码。目前的选项包括子网 EVM(为子网构建的 EthereumVM)、AvalancheVM(DAG 链)、SpacesVM(一个钥:值存储虚拟机)和 BlobVM(二进制数据存储虚拟机)。除此之外,项目可以自由实施自己的自定义虚拟机。
Avalanche 架构能实现的前提是这三个组件适合于一个模块化的框架,可以随着子网/验证者的增长而超线性地扩展。
在 Avalanche 目前的形式下,有一个由所有参与的 Avalanche 验证者担保的主网络,其下有三个区块链。
P 链:基于雪人共识的线性区块链,用于创建验证者、添加委托者、创建子网等任务。
X 链:基于雪崩共识的 DAG 型区块链,用于交换资产。
C 链:基于雪人共识的线性区块链,运行 EVM,用于通用智能合约。
这些验证者的各种排列组合随后可以形成子网,验证增量参与的区块链。
总的来说,Avalanche 生态系统中的每个区块链都保持着自己的状态,并且可以独立选择自己的 1)共识机制,2)验证者集,以及 3)激励设计。同一子网内的区块链得益于由充分分布带来的更高共享安全保障。
上述情况对于如今拥有约 1450 个验证者的默认子网来说是成立的,当然向新子网的转换还有待观察。简而言之,Avalanche 所做的取舍就是把安全保障更大程度地装载到每个子网上去,以换取更大的灵活性。
考虑到该架构的模块化程度,以及生态系统内不同链有多个并发状态(相对于单一的全局状态而言),跨链和跨子网通信成为需要关注的议题。
单个子网内的跨链传输 :由于每个子网对该子网内的所有区块链都有一套验证者,这个问题比较容易解决。我们可以举一个例子,比如在主要/默认子网的 X、C 和 P 链之间转移资产。由于该架构中至少有 3 个并发状态,那么任何资产 Z 必须不存在于发送链当前状态的任何账户中,之后才能成为接收链中转换的一部分。因此,当有用户请求将 Z 从 X 链转移到 C 链时,例如,子网验证者必须首先同意在 X 链上烧掉 Z,随后在 C 链上铸造 Z。由于是同一组验证者对子网内的所有链上的共识负责,这个过程变得相对容易。
不同子网间的跨链转移 :不同的子网之间的跨链传输比较具有挑战性,因为验证者集不再相同。在这种情况下,与第三方中继器的外部桥接变得很重要。目前的 Avalanche 架构中有一个模块可以在多个子网之间部署桥接。每个实例都可以自定义为 1)销毁和铸币或 2)锁定和铸币。与单子网传输不同,这依赖于第三方中继器来观察发送链上的销毁或锁定情况,并将此消息转发到接收者链上以启动铸币。下面是桥接 WAGMI 和富士子网的实施实例概述:
在目前的设置下,每一对子网都需要一个独立桥架,中继器的阈值可以低至一个,中继器的执行被外包给 Chainsafe。这是一个可以接受的短期解决方案,但从长远来看,带有分布式中继器网络的单桥可能更能提升安全。
Avalanche 的子网内信息传递与 Cosmos 和 Polkadot 等相类似,都有一个单一验证者组,观察每个链上的状态并促进传输。只要这个验证者集是充分分布的,就能提供合理的共享安全保障,所以这个架构也是值得推荐的。然而,子网之间的信息传递仍待完善,目前还依赖于第三方中继器,那么只要第三方桥接器有自己的安全保障,结果就会相对合理。因此,在现有子网内部署是要比直接部署新子网更合适的。
与 Cosmos 类似,Avalanche 采取分布式状态是为了支持多个独立的区块链。由于共识机制和验证者集的灵活性,Avalanche 生态系统中的一些区块链也可根据每个子网中的参与者数量拥有更短的区块时间;例如,C 链到达最终性的时间为 2 秒,除此之外的所有其他链目前都有亚秒级的最终性时间。
Polygon 是这一系列生态系统中最新宣布的开箱即用特定应用区块链,称为超级网。与 Cosmos SDK 类似,Polygon 有一个名为 Edge 的模块化框架,便于创建独立网络。用户可以利用该框架来部署共享安全或主权区块链。两种链类型都保持独立的状态,但是共享安全链利用了一套共享的验证者,而主权区块链则部署了自己的验证者。
有两种类型的共识可以在超级网中使用:
IBFT PoA(Istanbul BFT Proof of Authority):Polygon Edge 的默认共识。是固定验证者集,验证者可以通过多数(51%)投票增加和/或删除验证者。共识是由超级多数(2/3)投票达成的。验证者轮流提出新区块。更适合于超级网框架下的主权区块链。
2. 中继器在源链上观察到这个动作,并将信息传达给目的链?
在 Edge 和 ChainBridge 的案例中,不同于本文前面的一些解决方案,超级网和桥梁的验证者不一定相同。
这与独立多链架构中强有力的观点相反,这种观点认为链级和通信级共识的共享验证者集导致更少的故障点。也就是说,考虑到 Polygon 提供的其他共享安全功能,如果桥接验证者集充分分布、拥有恰当激励,那么这可能不是一个关键因素。
Polygon 做出了一个与速度和安全有关的有趣设计。通过共享验证者集和共识机制,Polygon 提供了足够的共享安全保障。同时,通过让每个超级网维护自己的状态,它避免了 Polkadot 和其他公司所面临的开销,理论上可以建立无限数量的超级网。
Binance Application Sidechains(BAS)是 BSC 用于特定应用区块链的模块化框架。BAS 的初始版本据估计是一系列 PoS 侧链,有 3-7 个验证人,具体数量取决于每个链所需的安全级别。BAS 链是这篇文章中所涉及的唯一特定应用区块链,应该既不共享共识,也不共享状态,每个 BAS 都有自己独立的验证者集。若想与 BSC 进行关联,可能只能通过供开发者建立侧链的共享工具包和连接 BAS 链与 BSC 的外部桥梁。
除了 BAS,Binance 还在建立一个通用的执行环境,类似于以太坊 L2,称为 BNB 链分区链(BPC),它将用于承载 BNB Beacon 链的一些计算。这很有趣,但我们在这篇文章中将专注于特定应用侧链的讨论。
Binance 提供的架构或许是该领域中最弱的情况之一。由于每条链都有小的独立验证者集,并维护自己的状态,这意味着共享安全保障极为有限,Binance 为开发者提供的唯一工具就是自行建立区块链使用的工具包。如果验证者集能够有更大规模,或者在所有侧链间进行高信任共享,那么用 Binance 建立项目值得考虑。然而,BAS 更多的还是适合只需要低共识共享的项目建设。
像任何一组主权区块链一样,BAS 链将需要第三方桥接器来相互通信。在这种情况下,BSC 将利用 Celer 的第三方桥梁,通过「锁定+铸造」的形式,连接到每个 BAS,同时每个 BAS 也通过这种机制连接。
Binance 采用具有独立验证者的第三方桥梁,在其生态系统中建立项目可能不如建立一个独立的区块链吸引人,因为任何独立的区块链理论上都可以通过这些桥梁连接。要说明的一点是,客观上这并不是一个坏的设计,只是对开发者来说,他们没有强烈理由选择在这个生态系统内项目构建,不如选择直接构建独立的架构。
BAS 架构下的侧链不共享验证者、共识或状态,且每个链的验证者集规模很小,导致到最终性的时间可能很短,可容纳的链数很大。
一段时间以来,特定应用区块链一直是可扩展性讨论的重要组成部分,尽管它的实施受制于尚未成熟的互操作性基础设施。在过去几个月,这种基础设施在各种独立的多链生态系统中不断上线,因此我们也希望看到这一领域的更多活动——包括但不限于创建和发展更多特定于用例的子应用层(例如 Polkadot 上的 Acala)以及特定应用的执行环境。
总的来说,这个领域的每个项目都在速度/能力与共享安全方面做出了不同的权衡。能够成功吸引最多开发者使用的项目很可能是那些在这两者之间做出平衡的项目。
来源:区块律动
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。