Jeffrey Hu

Posted on Jan 19, 2022Read on Mirror.xyz

Cosmos 基本概念指北

随着 Cosmos 生态不断发展和繁荣,非常高兴的看到 Cosmos 相关的技术和生态也越来越多受到了关注。不过略显遗憾的是,一些报告和文章中对于 Cosmos 还有一些理解不到位之处。因此,希望通过本文能有助于帮助刚接触 Cosmos 生态的伙伴来快速上手了解。

让我们先从术语讲起……

当我们谈论 Cosmos,谈的是什么?

说到 Cosmos,首先应该看这里的“Cosmos”具体指什么。因为 Cosmos 有个特点,是同一个词语经常会用在不同语境下,即一词多义。对于“Cosmos”:

  • Cosmos 项目:由跨链基金会(Interchain Foundation)支持的分布式网络项目
  • Cosmos Hub:Cosmos Hub 是 Cosmos 项目的主网。类似的,IRIS Hub 是 IRISnet 项目的主网
  • Cosmos 生态:基于 Tendermint、Cosmos SDK、IBC 等技术开发的项目

所以例如像 Osmosis 等链及应用可以说是在 Cosmos 生态中,但并不是在 Cosmos Hub 上(而 Gravity DEX 则是直接建立在 Cosmos Hub 上)。

顺便提一下,上文提到的 Tendermint、Cosmos SDK、IBC 也可以认为是 Cosmos 为区块链行业贡献的 3 大技术创新:

  • Tendermint 共识协议:首个互联网级别可用的 BFT(拜占庭容错)的共识协议
  • Cosmos SDK:极为方便的区块链应用开发框架
  • IBC 跨链协议:借鉴 TCP/IP 设计理念的跨链协议,可自由、灵活无许可的跨链连接

Tendermint 是什么?

上面提到的 Tendermint,其实和 Cosmos 类似,在不同语境下 Tendermint 也有多重含义:

  • Tendermint 共识协议:首个互联网级别可用的 BFT(拜占庭容错)的共识协议,比 PBFT 等经典的共识协议简化了 View-Change 等复杂的切换过程,更适合公链上使用。因此,可以看到目前的许多 Cosmos 生态的网络都是上百节点。OmniFlix 之前的一个公开测试网有过 600-700 个验证节点(即参与共识的节点)的网络,足以说明 Tendermint 共识协议的扩展性不错。
  • Tendermint Core:实现 Tendermint 共识协议并增加网络通讯以及提供了开发接口(ABCI)的软件。相当于是 Cosmos SDK(链上应用逻辑层)和 Tendermint Core(共识和通讯层)一种松耦合的区块链架构。
  • Tendermint Inc.:即 All in Bits 公司,注册在美国,经常为了方便也被称为 Tendermint 团队。创始团队成员(Jae Kwon 等)最早提出了 Tendermint 共识协议并实现了 Tendermint Core。虽然在 2020 年初团队风波后,Jae Kwon 等人淡出了 Tendermint 以及 Cosmos 项目,但 Tendermint 团队仍是目前 Cosmos 项目最核心的开发团队之一,目前除了 Tendermint Core 之外,还涉及多个方向的开发,例如:脚手架快速启链的工具 Starport、为 Cosmos 链兼容 Coinbase API 标准的 Cosmos Rosetta API、为合规金融做准备的 Cosmos Cash、DEX 方面的 Gravity DEX 及配套的 Emeris 等。

Cosmos 团队

既然提到了 Jae Kwon,就不得不说说 Cosmos 团队的话题。不过严格来说,“Cosmos”团队这个说法并不成立!

原因在于 Cosmos 实在是太去中心化了,Cosmos 项目和生态中涉及到了非常多的实体和团队。

首先要提到的就是 Interchain Foundation,即跨链基金会,简称 ICF,注册在瑞士楚格。如果一定要按照其他项目来对标,这个可能是最“官方”的组织了,通过 grant 等方式来支持 Cosmos 项目的技术发展。

其中,ICF 的一个分支机构:Interchain GmbH 技术团队在德国柏林,在负责 Tendermint、IBC 跨链协议、Cosmos Hub 等项目的研发。

除了 Interchain GmbH、Tendermint 之外,其他的团队基本是围绕在不同的代码库项目,例如:负责维护 Cosmos SDK 的 Regen Network 团队,参与 IBC 协议设计研发的 Iqlusion、Informal Systems、Agoric、Bianjie 等。核心开发团队也非常欢迎开发人员参与贡献设计与实现。例如对于非常模块化的 Cosmos SDK,Bianjie 开发了 NFT 模块在经过开发团队的多轮评审讨论后,目前已基本完成了到 Cosmos SDK 代码库中的合并,将在 Q1 集成在 Cosmos Hub 主网上。整个流程很像以太坊那样的集市开发的形式。

所以,现在你会知道,Cosmos 是没有“Cosmos CEO”这种说法的。

IBC 跨链协议

提到 Cosmos,必然要提到他最具特色的 IBC 跨链协议。

IBC 跨链协议是采用 TCP/IP 的方式来设计的,不需要许可,可以支持到网络之间的跨链通信。设计的逻辑是跨链的区块链相互之间进行验证的关系。所以可以非常自由、不需要许可的进行跨链连接和交互。

而且 IBC 设计的是进行了高度抽象和通用化的设计,除了基于 Tendermint Core 的区块链之外,其他区块链只要根据 IBC 协议 spec(ICS)进行了实现,即可与其他实现了 IBC 协议的异构区块链之间相互通信。

IBC 的原理是区块链独立验证跨链传输来的事务信息。所以理论上,任何区块链上的事务信息都可以基于 IBC 跨链协议进行传输和交互。因此,除了最简单的 token 的转移之外,还可以支持 NFT 的转移、还可以支持智能合约的调用等等。因为逻辑都是另一个链只要能验证好本链上的智能合约事务即可。

关于 IBC 跨链协议,经常会流传着一些都市传说,包括:

  • IBC 只能同构跨链?
    • 实际上是可以和异构的以太坊、Substrate 等等异构区块链之间进行跨链,甚至包括联盟链 Fabric 等。只要这些链实现了 IBC 通信协议即可。
  • IBC 只能转 token?
    • 如上文介绍,是可以实现跨链 NFT、智能合约的调用等等。
  • IBC 只能中继链架构?
    • 实际上并不假设拓扑关系,而是对等关系(见下文会提到的 Map of Zones

所以 IBC 是一个非常灵活、自由且无需信任的跨链协议。

Cosmos 是中继链架构?

对,也不完全对。

从 IBC 跨链协议的技术角度来看,并没有严格的 Hub 和 Zone 的区分,而是一种对等的关系。这个可以从当前的网络拓扑中直观的看到。

https://mapofzones.com/

但 Hub 确实有其特殊之处,Cosmos 白皮书中也确实提到了 Hub 和 Zone 的概念。

抛开具体的技术,Hub 更具有社区共识的意味。

而且在设计 Hub 时会考虑 Hub 功能的精简,会倾向于实现通用的功能而非针对某一特定应用的开发实现,即所谓“Hub Minimalism”(Hub 极简主义)。

那么,Hub 主要的用途是什么?

跨链安全(Interchain Security)

Hub 一个可能的主要用途会在于跨链安全。这也是 2022 年 Cosmos 的一个非常值得期待的技术进展。

在具体展开之前,需要再来介绍一下 Cosmos 和 Polkadot 技术的区别。

和 Polkadot 的区别

和 Polkadot 等最大的区别在于 独立安全共享安全(安全是指采用什么方式来维护区块链网络的信任来源)

  • 共享安全(Shared Security):实际上更像是分片,因为要由一个主链(中继链)来维护和验证其他子链(平行链)的交易。
  • 独立安全(Independent Security):各自链来维护和验证,链之间自由连接。

跨链安全及计划

跨链安全容易和共享安全混淆。共享安全定义为一系列技术,包括 optimistic rollup、zk-rollup、分片以及跨链安全等。

跨链安全指使用 IBC 协议实现的共享安全。更具体的,链间安全使用 IBC 协议中的跨链校验(Cross Chain Validation)来实现。

另一个和 Polkadot 共享安全的区别是,这个不是必须有了才能跨链,而是为了解决小网络自己可信程度低、不太好招募验证节点等困难而设计。

具体的,也会分为V1、V2、V3 等几个阶段在 2022 年的 Q2、Q3、Q4 来逐步上线(详见:# 跨链技术进展报告(第 3 期)

缀后

以上一点维小的工作,希望能有助于伙伴快速厘清各种 Cosmos 常见的概念,来更加深入的了解 Cosmos、更好的参与 Cosmos。谢谢☕️