不同的区块链需要有一种通信方式,以便用户可以轻松地与多个区块链上的数据和资产进行交互,因此建立了区块链间通信(IBC)协议作为区块链之间的传输层。 Cosmos 生态系统首先采用了 IBC,但由于它是一个可通用的协议,IBC 已经进入了许多其他生态系统。
ICS-02 概述了轻客户端构建的要求,包括 IBC 如何管理轻客户端数据。 IBC 的工作需要客户端,这是一种任意的验证算法,用于证明链上的信息,通常以 IBC 格式编码,从一个地方到另一个地方。
从IBC的角度来看,每条链通常由其轻客户端来标识。最常见的验证发生在两个通信状态机之间;使用轻客户端,源链能够验证来自目标链的更新,而无需下载其整个数据。由于轻客户端是一种多功能工具,因此它们可以使用多种方法进行状态验证。
区块链共识确保参与网络的所有节点都是同步的。使用共识验证,轻客户端证明有足够数量的验证者签署了标头。这种类型的验证是 IBC 最流行的用途。
共识算法的规则集和优先级通常有所不同。然而,两种不同共识算法的异构性可能会使链通过 IBC 进行通信变得困难。例如,Cosmos 链使用 Tendermint 共识算法,该算法具有单时隙终结性,也称为快速终结性。另一方面,以太坊共识不具有单时隙终结性,因此终结性较慢,因为它更看重活性而不是安全性,而 IBC 与重视安全性的共识算法最兼容。由于区块被视为“最终”的时间存在差异,因此两条链如何在彼此之间发送和验证区块存在困难。
在这种情况下,可以实现虚拟光客户端,该虚拟光客户端可以在达到最终结果之前在某个块高度处查看光客户端。最初,IBC 专注于在基于 Tendermint 的链中采用,这在客户端规范和实现的定义方式中显而易见。在这个初始阶段之后,客户端重构 提高了为具有其他共识算法和功能的链开发轻客户端的灵活性和易用性。
“状态机”可以是整个区块链(复制账本),也可以是使用私钥(最小共识)签署操作的单个进程,例如笔记本电脑或手机。
通常,我们将状态机视为带有分布式账本的区块链,因此在区块链之间建立 IBC 时,目标链的轻客户端由源链托管。源链还维护目标链的可信状态,这是通过两个链之间的连接握手建立的。 IBC 协议使用有效性谓词,这是一种检查目标链的状态更新是否有效的算法。为了发挥作用,轻客户端需要源链的有效性谓词和可信状态。
客户端“类型”与客户端“实例”
轻客户端被设计为尽可能高效地支持许多链的大量客户端实例。为了实现这一点,轻客户端算法不会重放所有状态转换,否则会使其成为完整节点。
单机机器是指笔记本电脑、网络界面、移动电话或链下进程等设备。单机一台可以建立通讯 如果该区块链使用 IBC 进行传输,则具有复制的分类账。
例如,IBC 可以启用保管转移协议 这降低了新连锁店的整合成本。这很重要,因为中心化托管人在集成新网络时面临着繁琐且昂贵的过程,需要为每个集成链运行完整节点和 RPC 基础设施。相反,托管人可以操作一个单独的机器客户端,以促进跨链传输、铸币/销毁。验证将由托管人运行的连接机器的客户端进行。
单机客户端展示了 IBC 如何在区块链之外打开连接。在上面的例子中,它可以让机构通过IBC轻松地与公共区块链进行交互。这只是涉及区块链的业务线的一个例子,而无需启动整个链或维护重型硬件来与其一起工作。
尽管正在努力让客户端易于实施和更新,但可以选择使用有效性或欺诈证明进行验证。
乐观的IBC: 客户端可以通过在某些虚拟机上执行程序的链下中继器乐观地接受传入的标头。在这种情况下,存在一个可以提交欺诈证明的质询窗口。积极的一面是,Optimistic IBC 降低了整个系统的成本。其缺点包括欺诈挑战期较长,并且根据网络的不同,转移资产的基本成本可能很高——对于以太坊来说,这是 21,000 单位的 Gas。
ZK-IBC:客户端计算发生在链外,并通过 ZKP 在链上进行验证。没有最小延迟,并且成本低于简单验证。但是,ZK 验证在链上的成本可能很高,并且没有最大延迟,这意味着用户可能需要等待一段时间才能获得确认。如果签名方案不适合 SNARK,也可能存在不兼容问题。
由于上述单独的系统可能存在一些令人望而却步的缺点,因此建议 Optimistic ZK 借鉴两者的优点。使用两者的好处是降低连接维护成本,并通过激励中继器引入最大延迟限制。
Optimistic ZK:源链在链上乐观地接受标头(可能存在安全性的质押机制)。然后,ZKP 在出现不当行为时用作欺诈证明或有效性证明,以动态减少连接的延迟。
IBC 不需要任何第三方信任假设,而外部验证的互操作性协议通常会采用这种假设。它只是一个传输协议,其安全属性取决于底层客户端和连接类型,而不是链本身。它还取决于连接对欺诈证明的使用、诚实多数假设、通过公共数据可用性共享安全性等。IBC 协议不需要知道连接两侧链的身份,只要 IBC 客户端是与有效更新保持同步。
如果存在不当行为,即源链上的客户端破坏了目标链设定的共识规则,如果在源链上验证了不当行为的证据,则主链上的客户端将被冻结。看到此情况的一方(例如中继者)可以发送包含此不当行为证据的消息。不当行为谓词是一种在以下情况下调用的算法:如果证明了不当行为,则客户端将被冻结,并希望有一个适当的治理系统来采取行动。不当行为的后果由参与的连锁店决定。
尽管 IBC 可能需要对底层链的共识和内部结构有一定的技术熟练程度,但并不是所有的复杂性对于使用 IBC 进行构建都是至关重要的——这是我们这一系列文章的另一个目标。这里的要点是,鉴于客户端可以进行各种验证实施,IBC 是一个强大的工具。
IBC 生态系统正在积极努力,使 IBC 成为构建者易于采用的解决方案。我们讨论的一些举措包括客户端重构和虚拟客户端。例如,如果一条链想要升级共识,则需要升级其连接的每条链及其轻客户端以保持连接,这是一个昂贵的链上治理过程。正在开发 WASM 客户端,以便通过部署为智能合约的客户端实例来简化轻客户端的开发和升级。这使得在不停止链的情况下升级轻客户端以及使用 Rust 等语言创建客户端变得更加容易,Rust 是多种状态机中的流行选择。
最后的结论是,任何人、任何机器都可以使用 IBC 客户端来验证任何区块链上的状态,这使它们成为加密领域新型业务和服务的强大催化剂。
本文由 Polymer 赞助,旨在支持围绕 IBC 的社区教育和真正去中心化的互操作性。
Polymer Labs 由熟练的分布式系统和基础设施工程师、加密货币先驱和出色的业务运营商组成,处于推进以太坊与 IBC 互操作性的最前沿。 Polymer 的技术价值基于 TCP/IP,其使命是通过确保去中心化网络的互操作层在整个生态系统中保持中立、开放、无需许可和统一,从而建立下一代互联网。作为以太坊互操作性中心(第一个致力于实现 IBC 互操作性的第 2 层)的创建者,Polymer 为区块链技术树立了新标准。
不同的区块链需要有一种通信方式,以便用户可以轻松地与多个区块链上的数据和资产进行交互,因此建立了区块链间通信(IBC)协议作为区块链之间的传输层。 Cosmos 生态系统首先采用了 IBC,但由于它是一个可通用的协议,IBC 已经进入了许多其他生态系统。
ICS-02 概述了轻客户端构建的要求,包括 IBC 如何管理轻客户端数据。 IBC 的工作需要客户端,这是一种任意的验证算法,用于证明链上的信息,通常以 IBC 格式编码,从一个地方到另一个地方。
从IBC的角度来看,每条链通常由其轻客户端来标识。最常见的验证发生在两个通信状态机之间;使用轻客户端,源链能够验证来自目标链的更新,而无需下载其整个数据。由于轻客户端是一种多功能工具,因此它们可以使用多种方法进行状态验证。
区块链共识确保参与网络的所有节点都是同步的。使用共识验证,轻客户端证明有足够数量的验证者签署了标头。这种类型的验证是 IBC 最流行的用途。
共识算法的规则集和优先级通常有所不同。然而,两种不同共识算法的异构性可能会使链通过 IBC 进行通信变得困难。例如,Cosmos 链使用 Tendermint 共识算法,该算法具有单时隙终结性,也称为快速终结性。另一方面,以太坊共识不具有单时隙终结性,因此终结性较慢,因为它更看重活性而不是安全性,而 IBC 与重视安全性的共识算法最兼容。由于区块被视为“最终”的时间存在差异,因此两条链如何在彼此之间发送和验证区块存在困难。
在这种情况下,可以实现虚拟光客户端,该虚拟光客户端可以在达到最终结果之前在某个块高度处查看光客户端。最初,IBC 专注于在基于 Tendermint 的链中采用,这在客户端规范和实现的定义方式中显而易见。在这个初始阶段之后,客户端重构 提高了为具有其他共识算法和功能的链开发轻客户端的灵活性和易用性。
“状态机”可以是整个区块链(复制账本),也可以是使用私钥(最小共识)签署操作的单个进程,例如笔记本电脑或手机。
通常,我们将状态机视为带有分布式账本的区块链,因此在区块链之间建立 IBC 时,目标链的轻客户端由源链托管。源链还维护目标链的可信状态,这是通过两个链之间的连接握手建立的。 IBC 协议使用有效性谓词,这是一种检查目标链的状态更新是否有效的算法。为了发挥作用,轻客户端需要源链的有效性谓词和可信状态。
客户端“类型”与客户端“实例”
轻客户端被设计为尽可能高效地支持许多链的大量客户端实例。为了实现这一点,轻客户端算法不会重放所有状态转换,否则会使其成为完整节点。
单机机器是指笔记本电脑、网络界面、移动电话或链下进程等设备。单机一台可以建立通讯 如果该区块链使用 IBC 进行传输,则具有复制的分类账。
例如,IBC 可以启用保管转移协议 这降低了新连锁店的整合成本。这很重要,因为中心化托管人在集成新网络时面临着繁琐且昂贵的过程,需要为每个集成链运行完整节点和 RPC 基础设施。相反,托管人可以操作一个单独的机器客户端,以促进跨链传输、铸币/销毁。验证将由托管人运行的连接机器的客户端进行。
单机客户端展示了 IBC 如何在区块链之外打开连接。在上面的例子中,它可以让机构通过IBC轻松地与公共区块链进行交互。这只是涉及区块链的业务线的一个例子,而无需启动整个链或维护重型硬件来与其一起工作。
尽管正在努力让客户端易于实施和更新,但可以选择使用有效性或欺诈证明进行验证。
乐观的IBC: 客户端可以通过在某些虚拟机上执行程序的链下中继器乐观地接受传入的标头。在这种情况下,存在一个可以提交欺诈证明的质询窗口。积极的一面是,Optimistic IBC 降低了整个系统的成本。其缺点包括欺诈挑战期较长,并且根据网络的不同,转移资产的基本成本可能很高——对于以太坊来说,这是 21,000 单位的 Gas。
ZK-IBC:客户端计算发生在链外,并通过 ZKP 在链上进行验证。没有最小延迟,并且成本低于简单验证。但是,ZK 验证在链上的成本可能很高,并且没有最大延迟,这意味着用户可能需要等待一段时间才能获得确认。如果签名方案不适合 SNARK,也可能存在不兼容问题。
由于上述单独的系统可能存在一些令人望而却步的缺点,因此建议 Optimistic ZK 借鉴两者的优点。使用两者的好处是降低连接维护成本,并通过激励中继器引入最大延迟限制。
Optimistic ZK:源链在链上乐观地接受标头(可能存在安全性的质押机制)。然后,ZKP 在出现不当行为时用作欺诈证明或有效性证明,以动态减少连接的延迟。
IBC 不需要任何第三方信任假设,而外部验证的互操作性协议通常会采用这种假设。它只是一个传输协议,其安全属性取决于底层客户端和连接类型,而不是链本身。它还取决于连接对欺诈证明的使用、诚实多数假设、通过公共数据可用性共享安全性等。IBC 协议不需要知道连接两侧链的身份,只要 IBC 客户端是与有效更新保持同步。
如果存在不当行为,即源链上的客户端破坏了目标链设定的共识规则,如果在源链上验证了不当行为的证据,则主链上的客户端将被冻结。看到此情况的一方(例如中继者)可以发送包含此不当行为证据的消息。不当行为谓词是一种在以下情况下调用的算法:如果证明了不当行为,则客户端将被冻结,并希望有一个适当的治理系统来采取行动。不当行为的后果由参与的连锁店决定。
尽管 IBC 可能需要对底层链的共识和内部结构有一定的技术熟练程度,但并不是所有的复杂性对于使用 IBC 进行构建都是至关重要的——这是我们这一系列文章的另一个目标。这里的要点是,鉴于客户端可以进行各种验证实施,IBC 是一个强大的工具。
IBC 生态系统正在积极努力,使 IBC 成为构建者易于采用的解决方案。我们讨论的一些举措包括客户端重构和虚拟客户端。例如,如果一条链想要升级共识,则需要升级其连接的每条链及其轻客户端以保持连接,这是一个昂贵的链上治理过程。正在开发 WASM 客户端,以便通过部署为智能合约的客户端实例来简化轻客户端的开发和升级。这使得在不停止链的情况下升级轻客户端以及使用 Rust 等语言创建客户端变得更加容易,Rust 是多种状态机中的流行选择。
最后的结论是,任何人、任何机器都可以使用 IBC 客户端来验证任何区块链上的状态,这使它们成为加密领域新型业务和服务的强大催化剂。
本文由 Polymer 赞助,旨在支持围绕 IBC 的社区教育和真正去中心化的互操作性。
Polymer Labs 由熟练的分布式系统和基础设施工程师、加密货币先驱和出色的业务运营商组成,处于推进以太坊与 IBC 互操作性的最前沿。 Polymer 的技术价值基于 TCP/IP,其使命是通过确保去中心化网络的互操作层在整个生态系统中保持中立、开放、无需许可和统一,从而建立下一代互联网。作为以太坊互操作性中心(第一个致力于实现 IBC 互操作性的第 2 层)的创建者,Polymer 为区块链技术树立了新标准。