区块链:一文了解跨链项目Cosmos的来龙去脉

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

Cosmos简介

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

BFT代表拜占庭容错(ByzantineFault-Tolerance)。分布式系统中的拜占庭故障是一些最难处理的问题。一个拜占庭容错共识算法是一个共识算法,可以保证多达三分之一的拜占庭或恶意行为者的情况下分布式系统的安全。

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

什么是区块链?

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

区块链技术的主要好处是各方无需依赖中央权威即可共享账本。区块链是去中心化的。今天区块链技术的第一个也是最着名的应用是比特币,一种去中心化的货币。

现在,我们从高层次的角度更好地理解区块链,让我们从更多的技术角度来看待区块链的定义。区块链是一个在全节点上复制的确定性状态机,只要其维护者不到三分之一是拜占庭式节点,即可保持共识安全,让我们来分解一下。

?状态机只是一个程序的“花哨词”,它保存一个状态,在接收到输入时修改它。这个状态可以代表不同的东西,取决于应用程序和修改状态的交易。?确定性意味着,如果您从同一个创世纪状态重播相同的交易,始终得到相同的结果状态。?共识安全是指状态机复制的每个诚实节点都应该同时看到相同的状态。当节点收到交易块时,会验证它是否有效,意味着每个交易都确保有效,并且该块本身由超过三分之二的称为验证器的维护者进行验证。只要不到三分之一的验证者是拜占庭式节点,安全就会得到保证。

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

?应用程序:负责更新给定的一组交易,即处理交易的状态。?网络:负责交易和共识相关消息的传播。?共识:使节点能够就系统的当前状态达成一致。

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

Cosmos如何打造更广泛的区块链生态系统?

比特币的故事(区块链1.0)

要了解Cosmos如何打造区块链生态系统,我们需要从区块链故事开始。第一个区块链是比特币,这是2008年创建的点对点数字货币,使用一种称为工作证明的新型共识机制。这是第一个去中心化应用。不久,人们开始意识到去中心化应用的潜力,并希望在社区中建立新的应用。

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

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

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

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

限制1:可扩展性(Scalability)

第一个限制是扩展性-建立在以太坊之上的去中心化应用程序被每秒15交易数的共享速率所抑制。这是因为以太坊仍然使用工作证明,并且以太坊dApps竞争单个区块链的有限资源。

扩展性(scaling):一个可扩展的系统是一个能够容纳越来越多的请求的系统。

限制2:可用性

第二个限制是开发人员只有相对较低的灵活性。由于EVM是一个需要容纳所有用户场景的沙盒,因此它针对常用场景进行了优化。这意味着开发人员必须对其应用程序的设计和效率进行折衷。除此之外,它们仅限于一些编程语言,并且不能实现代码自动执行。

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

限制3:主权

第三个限制是每个应用程序在主权方面都受到限制,因为它们都共享相同的基础环境。本质上,这会创建两层治理:应用治理和底层的治理。前者受到后者的限制。如果应用程序中存在错误,无法对其进行任何操作,除非经以太坊平台本身的治理批准(参考Dao事件。如果应用程序在EVM中需要一个新功能,那么它再次必须完全依靠以太坊平台的治理来接受它。

这些限制不是特定于以太坊,而是所有试图创建一个适合所有使用情况的单一平台的区块链。这也是Cosmos发挥作用的地方。

COSMOS愿景(区块链3.0)

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

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

Tendermint是一个共识引擎和BFT共识算法。在Tendermint之上可以使用任何编程语言构建一个状态机,Tendermint将负责信息的复制。

CosmosSDK是一个模块化框架,用来简化构建安全的区块链应用。

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

什么是TendermintBFT和ABCI

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

TendermintBFT将区块链网络和共识层打包成通用引擎的解决方案,允许开发人员专注于应用程序开发,而不是复杂的底层协议。因此,Tendermint可节省大量的开发时间。

TendermintBFT引擎中使用的拜占庭容错共识算法这个名称是Tendermint命名的,想了解更多的共识协议和BFT的历史,可以关Tendermint联合创始人伊桑-布克曼注的播客)。

TendermintBFT引擎通过使用ABCI套接字协议连接到应用程序。这个协议可以用任何编程语言进行封装,开发者可以选择适合他们适合的语言。

这还不是全部,下面这些属性使TendermintBFT成为先进的区块链引擎:

?

公有链或私有链均可:TendermintBFT只处理区块链网络和共识,它帮助节点传播交易和验证追加交易到区块链。应用层的角色是定义如何构成验证者集合。因此,开发人员可以在TendermintBFT引擎之上构建公有链或私有链。如果应用根据他们有多少Token来选取验证者,那么区块链就称为权益证明PoS。应用也可以只有经过许可或授权才能成为验证者,那么区块链则是许可或私有链。开发人员可以自由定制区块链验证者集的规则。

?

高性能:TendermintBFT具有1秒数量级的出块时间,每秒处理数千个交易。

?

即时最终确定性:Tendermint共识算法的一个属性是即时最终确定性。只要三分之一以上验证者是诚实的,就永远不会分叉。用户可以确保他们的交易一旦创建到区块就是最终的。

?

安全:Tendermint共识不仅是容错的,同时也有问责。如果发生分叉,有一种方法来确定责任。

CosmosSDK和其他应用层框架

TendermintBFT将区块链的开发时间大大缩减,但从头构建一个安全的ABCI应用仍然是一项艰巨的任务。这就是为什么需要CosmosSDK。

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

?模块化:CosmosSDK的目标是创建一个模块生态系统,允许开发人员轻松地创建特定应用的区块链,而无需从头开始编写应用的每个功能。任何人都可以在自己的区块链里为CosmosSDK创建一个模块或利用现成的模块。例如,Tendermint团队正在构建一组CosmosHub所需的基础模块。这些模块可以在构建自己的应用时使用。此外,开发人员可以创建新的模块来自定义其应用程序。随着Cosmos网络的发展,SDK模块的生态系统将扩大,使得开发复杂的区块链应用程序变得越来越容易。?基于功能的安全性:功能约束模块之间的安全边界,使开发人员能够更好地了解模块的可组合性,并限制恶意或意外交互的范围。要深入了解,点击这里。

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

总结一句话:与所有其他的Cosmos工具一样,CosmosSDK也是模块化设计。现在它允许开发者在TendermintBFT共识引擎之上构建应用。以后也可以用于其他实现ABCI协议的共识引擎之上。随着时间的推移,预计将出现多个不同的架构模型的SDK,与多个共识引擎兼容,所有这些都在Cosmos网络生态系统中。

参考这份教程学习在CosmosSDK开发应用。

ETHERMINT

CosmosSDK很棒的地方在于它的模块化,允许开发人员移植现有的区块链代码在它上面运行。例如,Ethermint是一个将以太坊虚拟机移植到SDK模块中的项目。Ethermint的工作原理完全像以太坊,具有TendermintBFT的共识属性。所有现有的以太坊工具)与Ethermint兼容,很容易将已有智能合约移植过来。

USC Athletics与加密平台 iTrustCapital 达成合作:金色财经报道,USC Athletics 和iTrustCapital 建立合作伙伴关系,使 iTrustCapital 成为USC Trojans的官方加密平台。

作为此次赞助的一部分,iTrustCapital 将通过横幅、现场活动和足球和篮球赛季的额外广告来加强影响力。此外,标志性的洛杉矶纪念体育馆(南加州大学橄榄球队的主场)和举办特洛伊主场篮球赛的盖伦中心将在标志性的洛杉矶纪念体育馆及其周围展示定制标志。iTrustCapital 将在整个足球和篮球赛季的许多活动之前和之后举办以球迷为中心的特别活动和促销活动。(prnewswire)[2022/8/13 12:22:38]

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

我已经可以在区块链上部署去中心化应用了,为什么要用CosmosSDK创建一个区块链?

这个问题是有道理的,考虑到今天大多数去中心化的应用都是在像以太坊这样的虚拟机区块链之上开发的。首先,这种现象的原因是,创建区块链比智能合约要困难得多。有了CosmosSDK之后就不再是这样。开发人员可以轻松地开发整个特定应用的区块链,这有几个优点。除次之外,还将拥有更多的灵活性,安全性,性能和主权。要了解更多有关特定应用的区块链的信息,请阅读这篇文章。当然,如果不想建立自己的区块链,仍然可以通过在Ethermint上部署你的智能合约来与Cosmos兼容。

IBC把区块链连接在一起

现在,开发人员已经有了一种快速构建定制区块链的方法,让我们来看看如何将这些区块链连接在一起。区块链之间的连接是通过区块链间通信协议来实现的。IBC利用Tendermint共识的“即时最终性”,以允许异构链之间相互转移价值或数据。

什么是异构链?

本质上它归结为两件事:

?不同的层:异构链有不同的层,这意味着它们在如何实现网络,共识和应用部分方面可能有所不同。为了与IBC兼容,区块链只需要遵循几个要求,主要是共识层必须具有快速的最终确定性。工作量证明链不属于这个类别,因为它们的确定性是概率性的。?主权:每个区块链都由一组验证者维护,他们的工作是同意下一个区块提交给区块链。在工作量证明区块链中,这些验证者被称为矿工。主权区块链是一个拥有自己的验证者集合的区块链。在许多情况下,区块链的主权是很重要的,因为验证者最终负责修改状态。在以太坊中,应用程序都是由一组通用验证者运行的。正因为如此,每个应用程序只有有限的主权。

IBC允许异构链之间转移价值和数据,这意味着具有不同应用程序和验证人集合的区块链是可互操作的。例如,它允许公有链和私有链间相互转移token。

IBC是怎么工作?

IBC背后的原理相当简单。我们以链A上的一个帐户想要发送10个Token到链B为例介绍。

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

跟踪

链B会不间断地接收链A的报头,反之亦然。这允许每个链跟踪其他链的验证者集合。从本质上讲,每个链运行一个其他链的轻客户端。

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

锁定

当IBC转移被启动时,ATOM被锁定在链A上。

中继证明

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

验证

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

注意,在链B上创建的ATOM不是真正的ATOM,因为ATOM仅存在于链A上。它们是链A中ATOM在链B上的表示形式,同时还证明了这些ATOM被冻结在链A上。

当他们回到其原始链时,也使用类似的机制来解锁ATOM。有关IBC协议的更全面的描述,可以查看这个规范。

"区块链互联网”的设计

IBC是一种协议,允许两个异构区块链相互传输Token。那如何创建一个区块链网络呢?

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

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

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

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

在Cosmos网络中推出的第一个Hub是CosmosHub。CosmosHub是一个开放的权益证明的区块链,其原生staking代币为ATOM,并且交易费用可以用多个Token支付。CosmosHub的推出也标志着Cosmos主网上线。

如何桥接非Tendermint链

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

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

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-3:822ms