Cosmos网络由许多独立的并行区块链组成,网络中第一个区块链是Cosmos Hub,其他的并行链称为Zone,通过跨链协议(IBC)与Hub进行跨链操作。严格来说,Cosmos是一个独立的并行区块链的去中心化网络,每个区块链均由BFT共识算法,例如Tendermint共识。
严格来说,Cosmos是一个独立的并行区块链的去中心化网络,每个区块链均由 共识算法,例如Tendermint共识。
换句话说,Cosmos是一个生态系统
可以相互扩展和互操作。在Cosmos之前,区块链很孤立,无法相互通信。他们很难建造,只能处理少量的每秒。Cosmos以新的技术视野解决了这些问题。为了理解这一愿景,我们需要回到区块链技术的基础。区块链可被描述为由一组验证器维护的数字分类帐,即使某些验证器(少于三分之一)是恶意的,该验证器也保持正确。各方在接收计算机交易时,将分类帐的副本存储在其计算机上,并根据协议定义的规则对其进行更新。区块链技术的目标是确保正确地复制分类帐,这意味着每个诚实方在任何给定时刻都可以看到相同版本的分类帐。
区块链技术的主要好处是各方无需依靠中央授权即可共享总账的能力。区块链是去中心化的。今天,区块链技术的第一个也是最著名的应用是比特币,一种去中心化的货币。
现在我们已经从更高的角度更好地了解了区块链是什么,让我们从技术角度来看区块链的定义。区块链是复制在其上的确定性状态机全节点只要不到三分之一的维护者保持共识安全 拜占庭。让我们分解一下。
从架构的角度来看,区块链可以分为三个概念层:
状态机与 应用层。它定义了应用程序的状态和状态转换功能。其他层负责在连接到网络的所有节点上复制状态机。
要了解Cosmos如何适应区块链生态系统,我们需要回到区块链故事的开始。第一个区块链是比特币,比特币是一种于2008年创建的对等数字货币,它使用一种称为工作量证明(PoW)。它是区块链上的第一个去中心化应用程序。不久,人们开始意识到去中心化应用程序的潜力,并且社区中出现了构建新应用程序的愿望。
当时,有两种选择来开发去中心化应用程序:要么分叉比特币代码库,要么在其基础上构建。但是,比特币代码库非常单一。网络,共识和应用程序这三层混合在一起。此外,比特币脚本语言是受限制的,并且不友好。需要更好的工具。
2014年,以太坊提出了构建分散式应用程序的新主张。只有一个区块链,人们可以在其中部署任何类型的程序。以太坊通过将应用程序层转换为称为以太坊虚拟机(EVM)的虚拟机来实现这一目标。该虚拟机能够处理称为智能合约 任何开发人员都可以将其部署到以太坊区块链中未经许可时尚。这种新方法使成千上万的开发人员开始构建分散式应用程序(dApps)。但是,这种方法的局限性很快变得显而易见,并且一直持续到今天。
第一个限制是 缩放-以太坊之上构建的分散式应用程序受到每秒15个事务的共享速率的抑制。这是因为以太坊仍然使用工作量证明,并且以太坊dApp争夺单个区块链的有限资源。
第二个限制是授予开发人员的灵活性相对较低。因为EVM是一个沙箱,需要容纳所有用例,所以它针对平均用例进行了优化。这意味着开发人员必须在其应用程序的设计和效率上做出折衷(例如,要求在可能首选UTXO模型的支付平台中使用帐户模型)。其中,它们仅限于几种编程语言,并且无法实现代码的自动执行。
第三个限制是每个应用程序都受到限制主权,因为它们都共享相同的基础环境。本质上,这将创建两层治理:应用程序以及基础环境的功能。前者受后者的限制。如果应用程序中存在错误,未经以太坊平台本身的管理的批准,将无法对其进行任何处理。如果应用程序需要EVM中的新功能,则它必须再次完全依赖以太坊平台的管理才能接受它。
这些限制并不只适用于以太坊,而是适用于所有试图创建适合所有用例的平台的区块链。这就是Cosmos发挥作用的地方。
Cosmos的愿景是通过允许开发人员彼此进行交易,使开发人员可以轻松构建区块链并打破区块链之间的障碍。最终目标是创建一个区块链互联网,这是一个能够以分散方式相互通信的区块链网络。借助Cosmos,区块链可以维护主权,快速处理交易并与生态系统中的其他区块链进行通信,使其成为各种用例的最佳选择。
通过一系列开源工具(例如, , 和 旨在让人们快速构建自定义,安全,可扩展和可互操作的区块链应用程序。让我们仔细研究生态系统中的一些最重要工具以及Cosmos网络的技术架构。请注意,Cosmos是一个最初由Tendermint团队构建的开源社区项目。欢迎每个人构建其他工具,以丰富更大的开发人员生态系统。
直到最近,构建区块链还需要从头开始构建所有三个层(Networking,Consensus和Application)。以太坊通过提供虚拟机区块链简化了去中心化应用程序的开发,任何人都可以在其上以智能合约的形式部署自定义逻辑。但是,它并没有简化区块链本身的开发。就像比特币一样,以太坊仍然是一个整体的技术堆栈,很难从中进行分叉和定制。这是Jae Kwon在2014年创建的Tendermint进入的地方。
Tendermint BFT是一种将区块链的网络层和共识层打包到通用引擎中的解决方案,允许开发人员专注于应用程序开发,而不是复杂的基础协议。结果,Tendermint节省了数百小时的开发时间。请注意,Tendermint还指定拜占庭式容错(BFT)的名称共识算法
在Tendermint BFT引擎中使用。有关共识协议和BFT的历史的更多信息,请查看Tendermint联合创始人Ethan Buchman的精彩播客。
但这还不是全部。以下是使Tendermint BFT成为最先进的区块链引擎的属性:
Tendermint BFT将区块链的开发时间从数年缩短至数周,但是从头开始构建安全的ABCI应用仍然是一项艰巨的任务。这就是为什么
在CosmosSDK是一个广义的框架,简化了建立在Tendermint BFT的顶级安全blockchain应用程序的过程。它基于两个主要原则:
Cosmos SDK还附带了一组有用的开发人员工具,用于构建命令行界面(CLI),REST服务器和各种其他常用的实用程序库。
最后一点:Cosmos SDK与所有Cosmos工具一样,都是模块化的。今天,它允许开发人员在Tendermint BFT之上构建。但是,它可以与实现ABCI的任何其他共识引擎一起使用。随着时间的流逝,我们期望出现多个SDK,它们使用不同的体系结构模型构建并与多个共识引擎兼容-所有这些都在一个单一的生态系统:Cosmos Network中。
要了解如何在SDK上对应用程序进行编码,可以查看教程。
Cosmos SDK的伟大之处在于它的模块化特性使开发人员可以在Golang之上移植几乎任何现有的区块链代码库。例如,醚薄荷是一个将以太坊虚拟机移植到SDK模块的项目。Ethermint的工作原理与以太坊完全相同,但也受益于Tendermint BFT的所有属性。所有现有的以太坊工具(松露,Metamask等)均与Ethermint兼容,您无需进行额外工作即可移植智能合约。
当我将分散的应用程序部署在虚拟机区块链之上时,为什么还要使用Cosmos SDK创建区块链呢?
考虑到当今大多数去中心化应用程序都是在以太坊等虚拟机区块链之上开发的,因此这个问题是合理的。首先,应该指出的是,这种现象的原因是,到目前为止,区块链比智能合约更难开发。多亏有了Cosmos SDK,情况已不再如此。现在,开发人员可以轻松地开发整个特定于应用程序的区块链,这具有多个优势。其中,它们提供了更大的灵活性,安全性,性能和主权。要了解有关特定于应用程序的区块链的更多信息,请阅读这篇文章。当然,如果您不想构建自己的区块链,则仍然可以通过将智能合约部署在Ethermint上来使其与Cosmos兼容。
现在,开发人员可以快速构建自定义的区块链,让我们看看如何将这些区块链连接在一起。区块链之间的连接通过称为区块链间通信协议(IBC)的协议来实现。IBC利用Tendermint共识的即时最终特性(尽管它可以与任何“快速最终”区块链引擎一起使用),以允许异构链彼此之间传递价值(即代币)或数据。
从本质上讲,它可分为两件事:
IBC允许异构区块链彼此之间传递令牌和数据,这意味着具有不同应用程序和验证器集的区块链可以互操作。例如,它允许公共和私有区块链相互之间交换令牌。当前,没有其他区块链框架支持这种级别的互操作性。
IBC背后的原理非常简单。让我们以一个示例为例,链A上的一个帐户要发送10个令牌(让我们称它们为原子)链B。
连续地,链B接收链A的标题,反之亦然。这允许每个链跟踪另一个链的验证器集。本质上,每个链条都运行一个轻客户其他的。
启动IBC传输后,ATOM被锁定(保税区)在链A上。
然后,将10个ATOM绑定的证明从链A中继到链B。
在链B上针对链A的标头验证该证明,如果有效,则在链B上创建10个ATOM凭证。
请注意,在链B上创建的ATOM不是真正的ATOM,因为ATOM仅存在于链A上。它们是链A上ATOM的B上的表示形式,以及这些ATOM冻结在链A上的证明。
当ATOM返回其原始链时,可以使用类似的机制来解锁ATOM。有关IBC协议的更全面描述,请参见此规范。
IBC是一种协议,它允许两个异构区块链相互之间传递令牌。从那里开始,我们如何创建区块链网络?
一种想法是通过直接IBC连接将网络中的每个区块链相互连接。这种方法的主要问题是,网络中的连接数与区块链的数量成平方增长。如果网络中有100个区块链,并且每个区块链之间都需要维持IBC连接,那么就是4950个连接。这很快就失控了。
为了解决这个问题,Cosmos提出了具有两类区块链的模块化架构: 集线器 和 区域。区域是常规的异构区块链,而集线器是专门设计用于将区域连接在一起的区块链。当区域创建与集线器的IBC连接时,它可以自动访问与其连接的所有其他区域(即向其发送和从其接收)。结果,每个区域仅需要与有限的集线器建立有限数量的连接。集线器还可以防止区域之间的双重支出。这意味着,当区域从集线器接收到令牌时,它仅需要信任此令牌和集线器的原始区域。
Cosmos网络中启动的第一个Hub是Cosmos Hub。Cosmos Hub是一个公共的权益证明区块链,其本机权益标记称为ATOM,在哪里交易费用将以多个令牌支付。Hub的启动也标志着Cosmos网络的启动。
到目前为止,我们介绍的Cosmos架构显示了基于Tendermint的链如何实现互操作。但是波斯菊不仅限于嫩薄荷链。实际上,任何种类的区块链都可以连接到Cosmos。
我们有两种情况可以区分:快速最终链和概率最终链。
使用任何快速确定共识算法的区块链都可以通过调整IBC与Cosmos连接。例如,如果以太坊要切换到Casper FFG(友好终结小工具),则可以通过使IBC与Casper配合使用,在以太坊和Cosmos生态系统之间建立直接连接。
对于没有快速确定性的区块链,例如工作量证明链,事情会变得有些棘手。对于这些链,我们使用一种称为钉区的特殊代理链。
一种 钉区是一个跟踪另一个区块链状态的区块链。钉区本身具有快速确定性,因此与IBC兼容。它的作用是为所桥接的区块链确定最终性。让我们看下面的例子。
我们希望桥接工作量证明以太坊区块链,以使其能够在以太坊和Cosmos之间来回发送令牌。由于工作量证明以太坊不具有快速确定性,因此我们需要创建一个挂钉区以充当两者之间的桥梁。
首先,钉区需要确定源链的最终阈值。例如,当在原点链的给定块之后添加100个块时,它可以认为是最终块。
其次,在主要的以太坊区块链上部署合同。当用户想要将令牌从以太坊发送到Cosmos时,他们首先将令牌发送到该合约。然后合同冻结资产,并在100个区块之后,在钉区释放这些资产的表示。使用类似的机制将资产发送回以太坊链。
有趣的是,钉区还允许用户将驻留在Cosmos中的任何令牌发送到以太坊链(Cosmos令牌在以太坊链上将表示为ERC20)。Tendermint团队目前正在为名为Peggy的以太坊链开发一种钉区实现。
钉区需要针对它们所桥接的特定链进行定制。建立以太坊钉区相对简单,因为以太坊是基于帐户的并且具有智能合约。然而,建立一个比特币钉住区更具挑战性。在此介绍的范围内,无法解释如何构建类似比特币的钉区,但知道在理论上是可行的。如果您想了解更多有关钉区的信息,请查看此规格。
现在我们可以轻松地创建和连接区块链,还有一个要解决的最后问题:可伸缩性。Cosmos利用两种类型的可伸缩性:
Cosmos将在发布时提供非常好的垂直可扩展性,这将是对当前本身的区块链解决方案的重大改进。稍后,在完成IBC模块后,将实施水平可伸缩性解决方案。
希望到目前为止,您对Cosmos项目有了更清晰的了解。以下是三个简要说明,概述了Cosmos:
最重要的是,Cosmos并非产品,而是基于一系列模块化,可适应和可互换工具的生态系统。鼓励开发人员共同努力改进现有工具并创建新工具,以实现区块链技术的承诺。这些工具是创建明天的去中心化互联网和全球金融系统所需的基础。
免责声明:本文不代表信比特官方立场,且不构成投资建议,请谨慎对待。
浏览: 点赞:
浏览: 点赞:
浏览: 点赞:
浏览: 点赞:
浏览: 点赞:
浏览: 点赞:
浏览: 点赞:
浏览: 点赞:
浏览: 点赞:
浏览: 点赞:
微信扫一扫,分享到朋友圈