本文深入探讨了区块链互操作性领域,重点介绍了 Polymer 如何通过 IBC 协议及 OP-Stack Rollup 架构,旨在为以太坊及其他区块链提供安全可靠的互联互通解决方案。文章分析了互操作性的标准化需求,以及 Polymer 在推动 IBC 协议在以太坊生态系统中应用所做的努力,并展望了未来互操作性的发展趋势。
启动一个区块链网络可能既耗时又耗费资源。这不仅适用于单个区块链,也适用于 Rollup。然而,随着技术的进步,2023 年基础设施呈指数级增长,因为 Rollup 开始提供他们的代码库作为框架使用。
RaaS 提供商的成熟推动了这一发展,导致了许多提供商的出现,如 Conduit、Caldera、Gelato、Ankr、Luganodes、Zeeve、Tanssi、Dymension、Lumoz、Karnot 等。这种趋势增加了对互操作性解决方案的兴趣,许多项目都在积极努力以更好地连接区块链和 Rollup。
在本文中,我们将首先更好地了解当前的互操作性格局以及改进标准化的必要性。然后,我们将探讨 "Polymer" 如何在该领域将自己定位为一个安全的连接枢纽。
回顾 Dmitriy Berenzon 在 2021 年发布的著名图片,以太坊已经取得了显著进展。以前,桥的功能很简单,主要集中在“转移代币”上,无论是通过包装、使用流动性桥还是通过中心化运营商来实现。
随着更多区块链的推出,以及对其他功能的需求增加,许多其他功能也随之增加。
来源:区块链桥:构建密码网络的网络 | 1kxnetwork
跨链变得更像一个插件,允许连接到所有链。现在,链之间的连接比以往任何时候都更好,消息现在可以轻松传输,并且可以由开发者根据需要进行自定义。现在,GMP(通用消息传递)得到了更广泛的应用,允许项目将消息发送到目标链并在那里触发执行。Dapp 可以利用其他链的基础设施,例如使用 layerzero 来访问多个区块链中的流动性。
然而,互操作性领域仍处于早期阶段,每个项目目前都在开发自己的堆栈。这些方法更倾向于将每个代码和基础设施变成一个标准化和可定制的模块。例如,LayerZero 正在宣布 v2,以允许自定义安全模块和中间中继提供商,而 Hyperlane v3 正在启用无需许可和可自定义的部署。
为了利用这些互操作性解决方案,开发者需要理解它们的用法以及随之开发的应用程序逻辑。这一点至关重要,因为每个解决方案都不同,并培养了一个独特的生态系统。
随着互操作性的采用增加以及其他链对定制的需求变得更加多样化,应用程序逻辑和核心基础设施逻辑的标准化变得越来越重要。
有两个层次:
应用程序逻辑:这处理消息如何被处理。在互操作性的应用程序逻辑方面,趋势越来越倾向于为每个堆栈定制模块,例如 layerzero 的 OFT-20,尽管像 xERC20 这样的努力正在进行中。在接口方面,像 Hashi 和多消息聚合 (MMA) 这样的项目正在引领通过类似的适配器格式创建聚合桥梁。
核心逻辑:这处理核心传输功能。各个项目正在标准化他们的基础设施,例如 Axelar。与此同时,像 Hyperlane 和 LayerZero 这样的项目正在标准化他们的基础设施,而像 Polymer 这样的项目正在努力使像 IBC 这样的标准更加通用。
区块链间通信(IBC)协议是一种区块链互操作性标准和解决方案,它允许在区块链之间以安全和无需许可的方式进行任意数据传输,尤其是在 Cosmos 中。它允许区块链、应用程序和智能合约向不同的区块链发送和接收数据、代币和一般的任意消息。
自 IBC 于 2021 年 3 月推出以来,其使用量呈指数级增长。2022 年,IBC 促成了 5200 万次转移,价值 290 亿美元。有 100 多个链连接到 IBC 网络。事实上,访问 IBC 作为一项内置功能是链选择使用 Cosmos SDK 启动的主要原因。然而,IBC 不仅仅是 Cosmos 生态系统中的协议,还有更多的项目正在扩展 IBC 生态系统。(有关更多扩展 IBC 的项目,请参阅“4.2 扩展 IBC 的项目”部分。)
为了加速这一采用,Interchain Foundation (ICF) 最近发布了 Interchain Stack Roadmap 2024,其中概述了将 IBC 扩展到其他生态系统的 GTM 战略和发展计划。一些项目正在积极致力于将 IBC 扩展到其他区块链。
来源:Adi on X: "prob nothing. @IBCProtocol https://t.co/k0RZTPg8Dv"
IBC 的架构包括开发者可以使用的核心和应用程序逻辑。核心逻辑处理基本传输功能,而应用程序逻辑负责处理消息。这种模块化结构允许根据每个项目的具体要求进行灵活性和自定义。(有关 IBC 核心模块的架构和交易流程,请参阅附录 B)
这使得可以在应用程序端开发以下功能:
ICA(链间账户):这允许一个区块链在另一个区块链上操作一个账户。因此,一个区块链可以在另一个链上执行诸如转移代币、投票或执行智能合约等操作。
ICQ(链间查询):旨在使区块链能够相互请求并安全地检索数据。此功能允许区块链使用来自其他链的数据进行决策过程、智能合约执行或增强其链上数据可用性。
跨链验证:也称为链间安全性,跨链验证允许主链上的验证者验证辅助链上的交易或区块,从而有效地将其安全模型扩展到其他链。
Polymer 目前是试图将 IBC 的功能带到以太坊生态系统的项目,具有“以太坊安全性”,由 OP-Stack 和 Eigenlayer 的 EigenDA 提供支持。
Polymer 通过使用 IBC 及其自己的 OP-Stack Rollup,正在构建以太坊以及最终所有区块链的基础连接层。
类似于 web2 中的路由器,它接收和发送跨计算机网络的数据,Polymer Rollup 接收来自各种区块链的 IBC 数据包,并将它们转发到目标链,并遵守 IBC 的最高安全标准。
这个目标可以通过两个步骤实现:
第一步:使用 Polymer 自己的 Rollup 连接所有以太坊 Rollup 和 Cosmos。
第二步:与其他生态系统建立连接,包括 Solana、Avalanche、Sui 等。
来源:Polymer Labs
3.2.1 拥有历史的强大团队
Polymer 的团队由具有多元化和专业背景的个人组成,他们拥有来自 Google、Citadel、McKinsey、Amazon、Verizon、EY 和 Uber 等知名公司的经验。他们的大部分工程团队,主要是高级开发人员,是从加密货币行业之外招聘的,带来了来自传统互联网(Web 2.0)领域扩展基础设施的宝贵经验。
最初,Polymer 渴望利用 IBC 在不同的区块链之间创建链接。然而,他们很快意识到原生 IBC 集成需要大量资源。最初,通过将 Polymer 建立为一个独立的应用程序链来解决这一挑战。
然而,随着 Rollup 的普及,尤其是在以太坊生态系统中,很明显,作为 IBC 分发渠道的独立应用程序链并不适合 Rollup 之间的通信。原因是 Rollup 和它所构建的结算层之间存在固有的交互。
这些 Rollup 的原生桥自然具有 Rollup/结算层的最小信任属性,这对于跨 Rollup 的通信至关重要。引入额外的第三方验证者集会破坏这些属性。因此,对于连接主权 Layer 1 来说有效的主权中心辐射模型在 Rollup 方面效率不高。
为了解决这个问题,Polymer 选择开发一种从与 Rollup 相同的来源继承安全性的解决方案。因此,他们决定将 Polymer 构建为 Layer 2 解决方案,继承与其旨在连接的 Rollup 相同的安全属性。
*请参阅附录 A 以了解 Polymer 的详细架构
Polymer 充当路由器枢纽,其结构为 OP-Stack Rollup,使集成和添加 IBC 传输到任何链成为可能,并且具有最小的侵入性。
它由两个主要基础设施组成:
接口层:这是轻客户端集群,包括一个 IBC 轻客户端和一个虚拟轻客户端。虚拟 IBC 轻客户端管理来自以太坊 Rollup 的传入请求,而 IBC 轻客户端处理来自 Cosmos 链的请求。
Polymer Rollup 层:这一层具有多跳功能,这有助于不同链之间的一键式交易。IBC 通道可以作为中间连接跳通过 Polymer 建立,Polymer 的功能类似于路由器。
Polymer 充当中间媒介,遵循模块化互操作性的原则,其中应用程序、传输和状态层是解耦的,但仍然提供互连的解决方案。这允许像以太坊这样的非 IBC 链通过轻量级实现来利用 IBC,同时依靠 Polymer 来处理传输工作。通过这种方式,vIBC 实现了更大的区块链互连的互操作性。
Polymer 技术堆栈建立在两个基本理念之上:
通过最常用的 Rollup 框架和最以太坊一致的 altDA 采用以太坊的安全性。
结合支持链间通信(IBC)的技术,同时利用 IBC 代码库和相关的应用程序逻辑。
以下是“Polymer 技术堆栈”及其功能的细分(从模块化区块链的角度来看):
执行:Cosmos SDK 集成到 Polymer 中,以本地为连接的 Rollup 提供链间通信(IBC)互操作性。这允许在区块链之间传输任意数据,从而实现无缝交互和数据传输。
结算:Polymer 采用 OP Stack,以提供可靠且高效的结算以及与以太坊之间的链推导逻辑。
数据可用性:EigenDA 在确保 Polymer 网络内可扩展的数据可用性方面至关重要。通过提高以太坊网络的数据带宽,EigenDA 增强了网络对高吞吐量应用程序(如跨链互操作性)的容量。
通过使用 OP-Stack、Cosmos-SDK 和 EigenDA,Polymer 确保建立一个安全且互操作的基础设施。
来源:Polymer Tech Stack | Polymer Developer Docs
为了确保高效的开发和协调,有必要有一个实体来推动每个组件的开发,并由一个实体进行协调。
目前,Polymer 正在领导开发和协调工作。IBC Explorer、OpenIBC 和 IBC Summit 由 Polymer 运营,这三项计划侧重于协调这些工作。
3.5.1 IBC Explorer
来源:polymerdao/ibc-explorer: IBC dashboard
IBC Explorer 旨在增强使用 IBC 的开发人员的用户体验。IBC Explorer 旨在通过提供以下功能来解决这些领域:
简化数据包生命周期的跟踪,从而实现更好的监控过程。
应用程序特定通道的健康状况跟踪,从而清晰地了解其性能。
提供对网络配置的控制,使开发人员能够指定他们想要通过特定客户端与之通信的链。
这些功能旨在增强 IBC 的实际应用,使其更加用户友好并适应开发人员的需求。
3.5.2 OpenIBC ( 网站 , Twitter )
OpenIBC 是由 Polymer 创立的组织,致力于开发和推广区块链间通信 (IBC) 协议。其主要目标是建立一个由开发人员、项目和组织组成的统一网络,以协作推进 IBC 标准和实施。
OpenIBC 拥有一个论坛,该论坛充当讨论、协作和知识共享关于 IBC 开发的平台。通过汇集来自各种区块链社区的利益相关者,OpenIBC 鼓励 IBC 的开放和协作开发,从而实现不同网络之间的安全通信和交互。该论坛旨在在协调努力以进一步在整个行业建立 IBC 协议方面发挥关键作用。
3.5.3 IBC Summit ( 网站 , Twitter )
IBC Summit 是一个聚会,汇集了生态系统中的个人,以提高他们对 IBC 的理解,并参与有关行业未来方向的讨论。许多行业专家分享了关于 IBC 的利用和潜力的见解。
由于 Cosmos 生态系统在 IBC 堆栈中具有最活跃的定制和开发,因此让我们来看看当前的开发情况。
过去,Interchain Foundation (ICF) 和 Informal Systems 是负责维护和开发与 IBC 相关的核心组件的团队。ICF 专注于维护 IBC 规范、ibc-go 和 ics23-go。另一方面,Informal Systems 维护 hermes、ibc-rs、ics23-rs 和 tendermint-rs(与 CometBFT 团队合作)。
在各种基于 Cosmos 的区块链中,IBC 功能也取得了 significant 进展。以下是一些例子:
Osmosis:它提供前哨站和跨链交换。
Stride 和 Neutron:这些区块链的构建具有广泛的中间件、ICA 和查询。
DAO DAO:他们创建了 Polytone,这是一种为每个智能合约提供与每个 IBC 连接的区块链上的帐户的协议。
Evmos:他们构建了用于通过 EVM 进行传输的 IBC 预编译。
Injective:他们开发了一个预言机 data 流媒体模块。
有多个项目正在使 IBC 被用于多个区块链网络。这使得 IBC 的技术前景和资源多样化,并且它正在不同的环境中进行测试,这正在导致一个更加多样化的生态系统。
将 IBC 扩展到其他区块链时,需要开发四件事才能启用基于 IBC 的互操作性
核心逻辑:实现自定义 IBC 传输层是集成其他区块链的关键,因为 ibc-go 仅适用于 Go 链。像用于 Rust 的 ibc-rs 这样的替代方案正在开发中,但不够成熟。
轻客户端:新的非 Cosmos 链需要一个轻客户端进行验证才能以无需信任的方式验证事务。
中继器:需要中继器软件和运营商来在连接的区域之间路由 IBC 数据包,并在生态系统内传播来自新链的数据。
验证逻辑:Cosmos 中的 IBC 利用 merkle 证明来验证跨链事务。然而,不同的区块链具有不同的终结性和验证逻辑。例如,与 Tendermint 不同,以太坊允许可逆性。OP-Mainnet 使用欺诈证明进行终结性,它也有自己独特的逻辑。因此,验证客户端应采取不同的措施来确保跨区块链的正确终结性。
此外,将两个具有不同终结性和技术规范的不同区块链连接起来可能具有挑战性。为了解决这个问题,需要进行各种修改和补充逻辑。一个例子是 Conditional Client 和 Polymer Labs 开发的虚拟轻客户端。
在 2023 年,许多项目旨在解决互操作性问题。有些成功了,有些失败了。然而,当前的参与者已经巩固了自己的地位,并且正在标准化消息和代币在链之间传输的方式。
我相信在逻辑的核心传输中,有两方面正在开发中,它们非常有趣:
应用程序逻辑:在链之间发送数据包意味着不仅可以转移资产,还可以发送数据,并且可以从其他链执行智能合约。这为有趣的实现打开了潜力,例如 Hashi 为链构建接口适配器,并使用 Safe 创建安全的 multi-chain 钱包。另一个例子是 Catalyst,它正在为所有区块链构建流动性层。
项目之间的更大协调:随着互操作性解决方案变得更加无需许可,它们可以相互支持并减轻故障。像 xERC20 这样的标准提案非常有趣,因为其他解决方案可以采用此标准。这种协调似乎解决了开发的碎片化问题,最初每个解决方案都旨在解决链的碎片化问题。
在这种情况下,看到 Polymer 如何通过将 Cosmos IBC 应用程序逻辑开发引入以太坊,并继续通过教育和开发来支持 IBC 生态系统来解决这些问题,这非常有趣。一旦上线,这将如何影响整个以太坊生态系统,这将非常有趣。
本节深入探讨 Polymer 架构的复杂性,研究其各种组件的角色和互连。
核心组件如下
1.1 入口合约:这些是部署在每个 Rollup/区块链上的合约。
1.2 中继器:这些是监听其他 Rollup/区块链中的事件并将它们中继到 Polymer 的实体,反之亦然。
2.1 Cosmos-SDK:这是构建逻辑的执行层。
2.2 OP-Stack:这是管理交易和结算过程的 Rollup 基础设施。
2.3 EigenDA:这是处理数据可用性的地方,提供更低的成本,同时保持以太坊级别的安全性。
来源:Polymer Tech Stack | Polymer Developer Docs
A.1.1 入口合约
在用户界面级别,我们有 IBC 代理合约,它是用户的主要联系点。这些入口点建立在核心智能合约的基础之上,这些智能合约定义了应用程序的运营逻辑。以下是 Polymer 提供连接的核心组件。
IBC:促进不同区块链网络之间互操作性的标准协议。
vIBC:表示虚拟链间通信,Inter-Blockchain Communication (IBC) 协议的这种改编旨在使 IBC 可用于任何链。
虚拟 IBC 允许无需许可的 IBC 连接。这个想法是,开发者不需要进行 IBC 的原生集成,而是可以部署一组智能合约,而是让 Polymer 充当 IBC sidecar,代表连接的 Rollup 执行 IBC,使 Rollup 本身看起来像网络中的任何正常 IBC 链。
A.1.2 中继器组件
中继器是 Polymer 架构中的一个类似桥的实体,负责监控和传输跨不同区块链网络的事件。它是机器中的一个重要齿轮,确保一个链上的操作可以触发另一个链上的相应操作。
A.2.1 Polymer Rollup,使用 Cosmos-SDK 和 OP-Stack 构建
深入研究架构,Polymer Chain App 集成了各种技术:
Cosmos-sdk:此框架用于在 Cosmos 生态系统内构建区块链执行逻辑,展示了 Polymer 与此环境的兼容性。Polymer 已成功与 OP-Stack 集成,使用 Cosmos-SDK 作为以太坊 Rollup 的执行引擎。
OP-Stack:OP Engine API 和 OP Rollup 节点,Optimistic Rollup 基础设施的关键组件,是中心。OP Engine API 与 cosmos-sdk 交互,而 OP Rollup 节点充当排序器的结算层。
L2Client (ABCI):此 Layer 2 客户端使用应用程序区块链接口 (ABCI) 来促进 Cosmos-SDK 和 OP Engine API 之间的通信。
Sequencer:此节点对交易进行排序,确定交易的顺序,然后再在区块链上最终确定。
Proposer:此实体为区块链提议新的区块。
A.2.2 使用 EigenDA 的数据可用性 (DA) 层
数据可用性 (DA) 层负责确保跨链的数据保持可访问和可验证。这对于维护生态系统内的透明度和安全性至关重要。Polymer 使用 EigenDA 来实现这一点,这允许 Polymer Rollup 以更低的成本运行,同时保持以太坊级别的安全性。
区块链间通信(IBC)协议是一种区块链互操作性解决方案,它允许在区块链之间以安全且无需许可的方式进行任意数据传输。它允许区块链、应用程序和智能合约无缝地跨链发送和接收数据。
在讨论跨链解决方案时,链间通信(IBC)协议通常被提及为安全可靠的跨链协议,但主要仅在 Cosmos 生态系统中积极使用。
让我们来看看 IBC 实际上是如何工作的:
IBC 具有不同的标准,并由各种组件组成。两个主要运营商是轻客户端和中继器。应用程序逻辑和连接在其核心逻辑中实现。
IBC 轻客户端:IBC 客户端,也称为轻客户端,跟踪其他区块链的共识状态以及针对客户端的共识状态验证证明所需的证明规范。每个客户端都由唯一的客户端 ID 标识,并且可以与任意数量的与对等链的连接相关联。
中继器:中继器在 IBC 通信中发挥着关键作用。它们是负责在运行 IBC 协议的两个链之间中继数据的链下进程。中继器扫描每个链的状态,构建适当的数据报,并按照协议的允许在对面的链上执行它们。
IBC 通过建立连接的过程来实现通信。然后,在模块之间打开通道,以允许使用 channelID 和 portID 发送、接收和确认数据包。一旦设置了连接、通道和端口,应用程序就可以跨链传输数据包。用户启动跨链交易,通过中继器传递到接收链的轻客户端,以进行验证。
B.2.1 初始化
建立连接:连接由 ICS-3 促进,负责 IBC 状态的所有跨链验证。每个连接封装了两个位于两个独立区块链上的 ConnectionEnd 对象。每个 ConnectionEnd 都与对等区块链的轻客户端相关联。
打开通道:一个区块链上的模块可以通过通过通道发送、接收和确认数据包来与其他区块链上的其他模块通信。通道通过握手建立,并通过(channelID、portID)元组唯一标识。它们封装了与连接相关联的两个 ChannelEnd。
绑定端口:IBC 模块可以绑定到任意数量的端口,每个端口都由唯一的端口 ID 标识。portID 表示应用程序的类型,例如,在同质化代币传输中,portID 为“transfer”。
B.2.2 数据包传输
应用程序现在可以通过已建立的通道发送数据数据包。一旦从源链发送数据数据包,它就会被目标链接收和确认,利用目标链上的轻客户端进行验证。
用户(可以是最终用户、智能合约或模块)在链 A 上启动一个跨链交易。
交易请求被传输到 IBC 传输层,以便传递到接收链链 B。
一个称为中继器的链下进程负责将消息从链 A 传输到链 B。
链 B 利用其链 A 的轻客户端来验证共识状态,并确认该交易确实发生在链 A 上。
如果验证成功,表明交易是合法的并且已在链 A 上执行,则链 B 继续在其自己的链上执行请求的操作。
感谢 Kate 为本文设计图像。
- 原文链接: 4pillars.io/en/articles/...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!