主页 > imtoken钱包下载教程 > 比特币应用部署 宇宙是什么? 一篇文章了解Cosmos的来龙去脉

比特币应用部署 宇宙是什么? 一篇文章了解Cosmos的来龙去脉

imtoken钱包下载教程 2023-03-25 06:27:33

本文从技术角度全面了解Cosmos项目,什么是Tendermint,Cosmos SDK将解决什么问题,如何跨链,如何解决扩展性问题。

Cosmos 简介

严格来说,Cosmos 是一个由独立并行区块链组成的去中心化网络,每条区块链都是由 Consensus 等 BFT 共识算法构建的。

BFT 代表拜占庭容错。 分布式系统中的拜占庭故障是最难处理的问题之一。 拜占庭容错共识算法是一种共识算法,可以保证分布式系统的安全性,抵御多达三分之一的拜占庭或恶意行为者。

换句话说,Cosmos 是一个可相互扩展和互操作的区块链生态系统。 在 Cosmos 之前,区块链是孤立的,无法相互通信。 同时这样的网络很难搭建,每秒只能处理少量的交易。 Cosmos 以全新的技术视角解决了这些问题。 要理解这一愿景,我们需要回到区块链技术的基础。

什么是区块链?

区块链可以描述为由一组验证者(矿工)维护的分布式数字分类帐,即使某些验证者(少于三分之一)是恶意的,它也是正确的。 每个参与者在其计算机上存储分类账的副本,并在收到交易块时根据协议定义的规则更新它。 区块链技术的目标是确保账本被正确复制,这意味着每个诚实的参与者在任何给定时刻都能看到相同版本的账本。

区块链技术的主要好处是各方可以在不依赖中央机构的情况下共享分类账。 区块链是去中心化的。 当今区块链技术的第一个也是最著名的应用是比特币,一种去中心化的货币。

既然我们从高层次的角度更好地理解了区块链比特币应用部署,那么让我们从更技术的角度来看一下区块链的定义。 区块链是在全节点上复制的确定性状态机,只要少于三分之一的维护者是拜占庭(恶意)节点,共识就会保持安全。 让我们分解一下。

从架构的角度来看,区块链可以分为三个概念层:

Layers of a blockchain: application, consensus, and networking

状态机类似于应用层,定义了应用的状态和状态转换函数。 其他层负责在连接到网络的所有节点之间复制状态机。

Cosmos 如何塑造更广泛的区块链生态系统? 比特币的故事(区块链 1.0)

Bitcoin is monolithic

要了解 Cosmos 如何构建区块链生态系统,我们需要从区块链故事说起。 第一个区块链是比特币,它是一种点对点数字货币,创建于 2008 年,使用一种称为比特币的新型共识机制。 这是第一个分散的应用程序。 不久之后,人们开始意识到去中心化应用程序的潜力,并希望在社区中构建新的应用程序。

当时,开发去中心化应用程序有两种选择:要么分叉比特币代码库,要么在其之上构建。 然而,比特币代码库是非常耦合的; 所有三层——网络、共识和应用——都耦合在一起。 此外,比特币脚本语言是有限的,而且对用户不友好。 所以需要更好的工具。

以太坊的故事(区块链 2.0)

Ethereum has smart contracts

2014 年,以太坊提出了构建去中心化应用程序的新愿景。 构建一个区块链,人们可以在其中部署任何类型的应用程序。 以太坊通过将应用层转变为称为以太坊虚拟机 (EVM) 的虚拟机来实现这一点。 虚拟机能够处理称为智能合约的程序,任何开发人员都可以以无需许可的方式将其部署到以太坊区块链。 这种新方法允许成千上万的开发人员开始构建去中心化应用程序 (dApp)。 然而,这种方法的局限性很快就显现出来并且至今仍然存在。

注意:无权限系统是一个开放的系统,每个人都可以加入和参与。

比特币应用_比特币应用部署_siteweilaicaijing.com 币比特应用

限制 1:可扩展性

第一个限制是扩展——建立在以太坊之上的去中心化应用程序受到每秒 15 笔交易的共享速率的限制。 这是因为以太坊仍然使用工作量证明,而以太坊 dApp 争夺单一区块链的有限资源。

扩展:可扩展系统是指可以容纳越来越多请求的系统。

限制 2:可用性

第二个限制是开发人员的灵活性相对较低。 由于 EVM 是一个需要容纳所有用户场景的沙箱,因此它针对一般用例进行了优化。 这意味着开发人员必须在其应用程序的设计和效率方面做出妥协(例如,需要在可能首选 UTXO 模型的支付平台中使用帐户模型)。 除此之外,它们仅限于某些编程语言并且不启用自动代码执行。

备注:以太坊智能合约的执行需要外部账户的触发动作。

限制 3:主权

第三个限制是每个应用程序在主权方面都受到限制,因为它们都共享相同的底层环境。 本质上,这创建了两层治理:应用程序治理和底层治理。 前者受后者限制。 如果应用程序中存在错误,除非得到以太坊平台本身治理的批准,否则无能为力(参见 Dao 事件。如果应用程序需要 EVM 中的新功能,那么它又必须完全依赖关于以太坊平台的治理 快来接受吧。

这些限制并非特定于以太坊,而是所有试图创建适合所有用例的单一平台的区块链。 这就是 Cosmos 发挥作用的地方。

COSMOS 愿景(区块链 3.0)

Cosmos is composed of three layers

Cosmos 的愿景是让开发人员能够轻松构建区块链,并通过允许他们相互交易(通信)来打破区块链之间的壁垒。 最终目标是创建一个区块链网络,一个可以以去中心化的方式相互通信的区块链网络。 有了Cosmos,区块链可以维护主权、快速处理交易并与生态系统中的其他区块链进行通信,使其成为各种场景的最佳选择。

Cosmos 通过一系列开源工具实现这一愿景,例如 Tendermint、Cosmos SDK 和 IBC,旨在让人们快速构建自定义、安全、可扩展和可互操作的区块链应用程序。 后面会有Cosmos网络的工具和技术架构的分析。

Tendermint 是一个共识引擎和 BFT 共识算法。 可以在 Tendermint 之上用任何编程语言构建状态机,Tendermint 将负责信息的复制(根据共识要求的一致性和安全性)。

Cosmos SDK 是一个模块化框架,可简化安全区块链应用程序的构建。

IBC是区块链之间的通信协议,可以看作是区块链的TCP/IP。 它允许快速终结的区块链以去中心化的方式相互交换价值和数据。

什么是 Tendermint BFT 和 ABCI

以前创建区块链需要从头开始构建所有三个层:网络、共识和应用程序。 以太坊通过提供虚拟机区块链简化了去中心化应用程序的开发,任何人都可以在其中以智能合约的形式部署自定义逻辑。 但是,它并没有简化区块链本身的开发。 就像比特币一样,Go-Ethereum 仍然是一个整体耦合的系统,不容易定制。 Jae Kwon 在 2014 年创建了 Tendermint 来解决这个问题。

比特币应用部署_siteweilaicaijing.com 币比特应用_比特币应用

Tendermint BFT 是一种将区块链网络和共识层打包成一个通用引擎的解决方案,让开发者可以专注于应用程序开发而不是复杂的底层协议。 因此,Tendermint 节省了大量的开发时间。

Tendermint BFT 引擎中使用的拜占庭容错 (bft) 共识算法以 Tendermint 命名。 要了解有关共识协议和 BFT 历史的更多信息,您可以关注 Tendermint 联合创始人 Ethan Bookman 的播客)。

Tendermint BFT 引擎通过使用 ABCI(应用程序区块链接口)套接字协议连接到应用程序。 该协议可以封装在任何编程语言中,开发者可以选择适合自己的语言。

Diagram for Tendermint BFT

这还不是全部,以下属性使 Tendermint BFT 成为先进的区块链引擎:

Cosmos SDK等应用层框架

Tendermint BFT 大大减少了区块链的开发时间,但从头开始构建安全的 ABCI 应用程序(实现 ABCI 协议)仍然是一项艰巨的任务。 这就是需要 Cosmos SDK 的原因。

Cosmos SDK Cosmos SDK 是一个通用框架,它基于两个主要原则简化了在 Tendermint BFT 之上构建安全区块链应用程序的过程:

Diagram for Cosmos SDK

Cosmos SDK 还附带了一组有用的开发人员工具:控制台命令行 (CLI)、REST 服务和各种其他常用工具库。

一句话总结:与所有其他 Cosmos 工具一样,Cosmos SDK 在设计上是模块化的。 它现在允许开发人员在 Tendermint BFT 共识引擎之上构建应用程序。 也可以用于未来实现ABCI协议的其他共识引擎。 随着时间的推移,预计会在 Cosmos 网络生态系统中看到与多个共识引擎兼容的多种不同架构模型的 SDK。

请参阅本教程以了解如何在 Cosmos SDK 中开发应用程序。

以太薄荷

Cosmos SDK 的伟大之处在于它是模块化的比特币应用部署,允许开发人员移植现有区块链(用 Go 编写)代码以在其上运行。 例如,Ethermint 是一个将以太坊虚拟机移植到 SDK 模块中的项目。 Ethermint 的工作方式与以太坊完全一样,具有 Tendermint BFT 的共识属性。 所有现有的以太坊工具(Truffle、Metamask 等)都与 Ethermint 兼容,可以轻松移植现有的智能合约。

Ethermint 将以太坊虚拟机转换为 Cosmos-SDK 模块。 该模块可以与其他 SDK 模块(例如 staking)相结合,以运行运行以太坊智能合约的全功能 POS 区块链。 Ethermint 链与 Comos 兼容。

当我已经可以在(虚拟机)区块链上部署去中心化应用程序时,为什么还要使用 Cosmos SDK 创建区块链?

考虑到当今大多数去中心化应用程序都是在以太坊等虚拟机区块链之上开发的,这个问题是有道理的。 首先,造成这种现象的(部分)原因是创建区块链比智能合约困难得多。 Cosmos SDK 不再是这种情况。 开发人员可以轻松开发整个特定于应用程序的区块链,这有几个优点。 除了时间,还会有更多的灵活性、安全性、性能和主权。 要了解有关特定应用程序的区块链的更多信息,请阅读本文。 当然,如果你不想构建自己的区块链,你仍然可以通过在 Ethermint 上部署你的智能合约来与 Cosmos 兼容(通信)。

IBC 将区块链连接在一起

比特币应用_比特币应用部署_siteweilaicaijing.com 币比特应用

既然开发人员有办法快速构建自定义区块链,那么让我们来看看如何将这些区块链连接在一起。 区块链之间的连接是通过区块链间通信协议(IBC:Inter-Blockchain Communication protocol)实现的。 IBC 利用 Tendermint 共识的“即时终结性”(也可以使用其他具有“即时终结性”的共识引擎)来允许异构链之间价值(例如代币)或数据的相互转移。

什么是异构链?

本质上它归结为两件事:

IBC 允许在异构链之间转移价值(例如代币)和数据,这意味着具有不同应用程序和验证器集的区块链是可以互操作的。 例如,它允许在公共链和私有链之间转移代币。

IBC 是如何工作的?

IBC 背后的原理相当简单。 举个例子,A链上的一个账户想发送10个Token(假设是ATOM)给B链。

原子是 Cosmos Hub 的原生货币。 持有 Atoms 可以获得投票权,投票权可以委托给维护 Cosmos Hub 网络的验证者。

追踪

链 B 将不间断地接收链 A 的标头,反之亦然。 这允许每个链跟踪其他链的验证器集。 本质上,每条链都运行着另一条链的轻客户端。

轻客户端是一种只下载区块头的区块链客户端。 它使用 Merkle Proof 来验证查询结果。 这为用户提供了具有良好安全性的全节点的轻量级替代方案。

锁定(绑定)

当发起 IBC 转账时,ATOM 被锁定(Bonding)在链 A 上。

How IBC Works #1 锁定

证明继电器

然后,需要证明从链 A 转移到链 B 的 10 个 ATOM 被锁定。

How IBC Works #2 中继证明

验证

链 A 的区块头证明在链 B 上进行验证,如果有效,则在链 B 上创建 10 个 ATOM 凭证(ATOM-vouchers)。

siteweilaicaijing.com 币比特应用_比特币应用_比特币应用部署

How IBC Works #4 验证

请注意,在链 B 上创建的 ATOM 不是真正的 ATOM,因为 ATOM 只存在于链 A 上。它们是链 A 中的 ATOM 在链 B 上的表示,它们也证明了这些 ATOM 在链 A 上是冻结的。

当 ATOM 返回其原始链时,使用类似的机制来解锁它们。 有关 IBC 协议的更全面描述,请参阅此规范。

“区块链互联网”的设计

IBC 是一种允许两个异构区块链相互转移代币的协议。 那么如何创建区块链网络呢?

一个想法是网络中的每个区块链都使用 IBC 与另一个区块链成对连接。 这种方法的主要问题是网络中的连接数随着区块链的数量呈二次方增长。 如果网络中有 100 个区块链,并且每个区块链都需要保持彼此之间的 IBC 连接,那就是 4950 个连接。 这很快就会失控。

为了解决这个问题,Cosmos 提出了一种模块化架构,其中包含两种类型的区块链:Hubs 和 Zones。

Cosmos Hub & Spoke Architecture

Hubs:中央枢纽链,Zones:区域链

Zones 是常规的异构链,而 Hubs 是专门设计用于将 Zones 连接在一起的区块链。 当 Zone 与 Hub 建立 IBC 连接时,Hub 可以自动访问(即发送和接收)与其连接的所有 Zone。 因此,每个 Zone 只需要为有限的 Hub 建立有限的连接。 集线器还可以防止区域之间的双重支出。 这意味着当一个 Zone 从 Hubs 收到 Token 时,它只需要信任这个 Token 的原始 Zone 和 Hub。

Cosmos 网络中推出的第一个 Hub 是 Cosmos Hub。 Cosmos Hub 是一个开放的权益证明(POS)区块链,其原生质押代币为 ATOM,交易费用可以使用多个代币支付。 Cosmos Hub 的上线也标志着 Cosmos 主网的上线。

如何桥接非 Tendermint 链

到目前为止,我们展示的 Cosmos 架构展示了基于 Tendermint 的链如何进行互操作。 但 Cosmos 并不局限于 Tendermint 链。 事实上,任何类型的区块链都可以连接到 Cosmos。

如何桥接非Tendermint链以及Cosmos如何解决可扩展性问题,我将在区块链扩容与跨链技术专栏中介绍。

总结一下,Cosmos 是什么?

Cosmos is the internet of blockchains

希望现在您对宇宙有了更清晰的了解。 简单回顾一下Cosmos的三大要点:

最后,Cosmos 不是一个产品,而是一个建立在一组模块化、适应性和互操作性工具之上的生态系统。

比特币应用_比特币应用部署_siteweilaicaijing.com 币比特应用

进一步

本文参考什么是 Cosmos? 在官方网站上。

深入浅出区块链-打造优质区块链技术博客,学习区块链就来这里,关注知乎和微博。

我们有两种情况需要区分:具有快速终结性的区块链和具有概率终结性的区块链。

快速确定性区块链

任何使用快速确定性共识算法的区块链都可以适应连接到 Cosmos。 例如,如果以太坊想要切换到 Casper FFG(Friendly Finality Gadget),它可以通过适配 IBC 连接到 Casper 来与 Cosmos 生态系统建立直接连接。

概率确定性区块链

对于没有快速终结性的区块链(例如工作量证明链),它有点棘手。 对于这些链,需要使用一种称为 Peg-Zone 的特殊代理链。

Peg zones bridge non-Tendermint blockchains

Peg-Zone 是一个跟踪另一个区块链状态的区块链。 Peg-Zone 本身具有快速终结性,因此与 IBC 兼容。 它的作用是为它桥接的区块链建立最终性。 让我们看下面的例子。

示例:以太坊挂钩区

我们想桥接以太坊的工作量证明,以便可以在以太坊和 Cosmos 之间发送代币。 由于工作量证明以太坊无法快速达到确认状态,我们需要创建一个 Peg-Zone 作为两者之间的桥梁。

首先,Peg-Zone 需要确定源链的最终性阈值。 例如,可以认为源链给定块的状态是在源链给定块之后添加100个块之后确定的。

其次,需要在以太坊上部署合约。 当用户想要从以太坊向 Cosmos 发送代币时,他们首先向这个合约发送代币。 然后合约冻结资产,在 100 个区块之后,这些资产的表示被发布在 Peg-Zone 上。 类似的机制用于将资产返还给以太坊。

有趣的是,Peg-Zone 还允许用户将 Cosmos 上存在的任何代币发送到以太坊(Cosmos 上的代币将表示为以太坊上的代币)。 Tendermint 团队目前正在为以太坊实施一个名为 Peggy 的 Peg-Zone。

特定的桥链需要特定的定制。 构建以太坊 Peg-Zone 相对简单,因为以太坊是基于账户的并且有智能合约。 然而,建立比特币挂钩区更具挑战性(理论上是可能的)。 感兴趣的同学可以阅读Peg-zarl。

解决可扩展性问题

现在我们可以轻松地创建和连接区块链,还有一个问题需要解决:可扩展性。 Cosmos 处理两种形式的可扩展性:

Horizontal scalability with multiple blockchains

Cosmos 在发布时提供了非常好的垂直可扩展性,这将是对当前区块链解决方案的重大改进。 IBC模块完成后,将开始实施水平扩展方案。