【译文】什么是跨链双雄之一的Cosmos?

 空投币   2020-04-28  来源:互联网  0 条评论
优质活动 币圈快讯 平台公告 行情分析
最新羊毛 最新空投 链圈挖矿 活动线报
新币上市 币圈空投 国外项目 币链屋
提醒:本站内容均转自网络,仅用于开发者下载测试,请明辨风险,若涉资金安全及隐私,请谨慎!谨慎!再谨慎!一切风险自担,涉及资金交易及个人隐私务必小心并远离,切记千万别投资,勿上当受骗。《本站免责申明》

文本是Cosmos的官方介绍,原文地址:https://cosmos.network/intro

什么是Cosmos?

 

0.名称解释

BFTBFT代表拜占庭容错。分布式系统中的拜占庭式故障是最难处理的。拜占庭容错共识算法是一种:可确保多达三分之一的拜占庭或恶意行为者的安全的共识算法。

区块链(Blockchain):区块链可以描述为由一组验证器维护的分布式数字账本,即使某些验证程序(少于三分之一)是恶意的,这些验证程序仍保持正确。

事务(Transaction):事务是触发状态转换的签名消息。

全节点(Full-Node):全节点是存储和验证区块链整个状态的节点。

拜占庭(Byzantine):在分布式系统的上下文中,拜占庭式节点是恶意行为的节点。

代币(Token):代币是由区块链存储和保护的数字资产。

账户(Account):在区块链网络的上下文中,账户是一组私钥/公钥/地址。

应用层(Application Layer):应用层是定义状态和状态转换功能的区块链软件的顶层。

工作量证明(Proof-of-Work):工作量证明是一种经济措施,通过要求服务请求者进行一些工作来阻止拒绝服务攻击和其他服务滥用(如网络上的垃圾邮件),这通常意味着计算机需要处理时间。

智能合约(Smart Contract):智能合约是包含代码功能的账户持有对象。它们通常部署在将虚拟机作为其应用层一部分的区块链上。

无许可(Permissionless):无许可系统是每个人都可以加入和参与的开放系统。

可扩展性(Scalability):可扩展性系统是一种能够容纳不断增长的请求的系统。

主权(Sovereignty):主权区块链应用是一种其治理系统对其运行所在的区块链拥有完全权限的应用。这包括拥有自己的独立验证器集。

治理(Governance):区块链治理是一个允许参与者使用其绑定代币在链上进行投票的过程。

TendermintTendermint既是共识引擎,也是BFT共识算法。状态机可以用任何编程语言构建在Tendermint之上,Tendermint负责复制它。

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

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

共识算法(Consensus Algorithm):共识算法是计算机科学中的一种过程,用于实现分布式节点之间的状态值一致。

ABCI应用程序区块链接口是连接状态机和共识引擎(如Tendermint)的协议。

验证器集(Validator Set):验证器集是积极参与共识的验证器组。在Cosmos Hub上,具有最高投票权的前100名验证器候选人构成验证器集。

权益证明(Proof-of-Stake):权益证明是一个激励层,与共识层配合使用,可以防止女巫攻击并激励验证器正确运行。

模块(Module):在SDK的上下文中,模块是状态机的子集。Cosmos-SDK应用程序通常由模块的集合组成。

 

面向应用区块链(Application-specific Blockchain):为特定应用量身定制的专用区块链。

Cosmos HubCosmos Hub是第一个在Cosmos网络中启动的Hub。

EthermintEthermint是一款使用以太坊虚拟机并将其转换为Cosmos-SDK模块的软件。该模块可以与其他SDK模块(如质押)结合,以创建能够运行以太坊智能合约的功能齐全的权益证明区块链。Ethermint链与Cosmos具有天然兼容性。

AtomAtom是Cosmos Hub的原生质押货币。可以质押Atom以获得投票权,可以将投票权委托给维护Cosmos Hub的验证器。

轻客户端(Light Client):轻客户端是仅下载区块头的区块链客户端。它将针对这些块头验证其查询结果(请参阅Merkle 证明)。这为用户提供了一种具有良好的安全保证的轻量级全节点替代方案。

绑定(Bonding):锁定质押代币一段时间以获取投票权的过程。绑定代币有权获得奖励,并暴露于大幅削减。

HubHub是一个区块链,其目的是将Zone连接在一起,同时限制连接的数量并防止Zone之间的双花攻击。

ZoneZone是Cosmos网络中常规的面向应用的区块链。他们通常可以通过IBC连接到Hub,从而彼此通信。

交易费用(Transaction Fees):区块链网络中的事务需要包括使用代币支付的费用才能进行处理。

Peg-ZonePeg-Zone是一种区块链,可充当Cosmos网络与工作量证明链等不具有快速终结的区块链之间的桥梁。

 

状态转换(State Transition):从一种状态转换到另一种状态。由事务触发,或由每个块的开头和结尾处的自动消息触发。

 

1.介绍

严格来说,Cosmos是一个有多个独立并行区块链组成的去中心化网络,每个区块链都采用BFT共识算法(如Tendermint共识)

 

换句话说,Cosmos是一个可以相互扩展和互操作的区块链生态系统。在Cosmos之前,区块链是孤立的,无法相互通信。它们很难构建,并且每秒只能处理少量事务。Cosmos以新的技术视野解决了这些问题。为了理解这一愿景,我们需要回到区块链技术的基础。

 

2.什么是区块链?

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

 

区块链技术的主要好处是各方无需依靠中心机构即可共享账本的能力。区块链是去中心化的。如今区块链技术的第一个也是最著名的应用是比特币,一种去中心化的货币。

 

现在我们从更高层面更好地了解区块链是什么,让我们从技术层面来看区块链的定义。区块链是在全节点上复制的确定性状态机,只要少于三分之一的维护者是拜占庭式的,就可以保持共识安全。让我们来分解一下。

 

l  状态机只是一个程序的美丽字眼,该程序保存状态并在收到输入时对其进行修改。存在一种状态,可以根据应用程序(例如加密货币的代币余额)和事务来表示不同的事物,该状态会修改状态(例如通过从一个账户中减去余额并将其添加到另一个账户中)。

l  确定性意味着,如果您从同一初始状态重放相同的事务,则最终将始终具有相同的结果状态。

l  共识安全是指复制状态机的每个诚实节点应该同时看到相同的状态。当节点接收到事务块时,它们将验证该事务是否有效,这意味着每笔事务都是有效的,并且该块本身已由三分之二以上的维护者(称为验证者)进行了验证。只要少于三分之一的验证者是拜占庭式的,即恶意的,就可以保证安全。


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

应用程序:负责根据给定的一组事务更新状态,即处理事务。

网络:负责事务和共识相关消息传播。

共识:使节点能够就系统的当前状态达成共识。

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

 

3.Cosmos如何适应更广泛的区块链生态系统?

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


要了解Cosmos如何适应区块链生态系统,我们需要回到区块链故事的开始。第一个区块链是比特币,比特币是一种诞生于2008年点对点数字货币,它使用一种称为工作量证明(PoW)的新颖共识机制。它是区块链上的第一个去中心化应用程序。很快,人们开始意识到去中心化应用程序的潜力,并且社区中出现了构建新应用程序的愿望。

 

当时,有两种选择来开发去中心化应用程序:要么分叉比特币代码库,要么在其基础上构建。然而,比特币代码库非常单一。网络、共识和应用程序这三层混合在一起。另外,比特币脚本语言是有限的,并且不友好。需要更好的工具。

 

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


2014年,以太坊提出了一个构建去中心化应用程序的新提议。 只有一个区块链,人们可以在其中部署任何类型的程序。以太坊通过将应用程序层转换为称为以太坊虚拟机(EVM)的虚拟机来实现这一目标。该虚拟机能够处理称为智能合约的程序,任何开发人员都可以以无许可的方式将其部署到以太坊区块链。这种新方法使成千上万的开发人员开始构建去中心化应用程序(dApps)。但是,这种方法的局限性很快就显现出来,并且一直持续到今天。

 

3.3局限性1:可扩展性

第一个局限性是可扩展性——在以太坊之上构建的去中心化应用程序被每秒15个事务的共享速率所抑制。这是因为以太坊仍使用工作量证明,并且以太坊dApp也在争夺单个区块链的有限资源。

 

3.4局限性2:可用性

第二个局限性是授予开发人员的灵活性相对较低。因为EVM是一个需要容纳所有用例的沙盒,所以它针对平均用例进行了优化。这意味着开发人员必须在其应用程序的设计和效率上做出折衷(例如,要求在可能首选UTXO模型的支付平台中使用账户模型)。其中,它们仅限于少数编程语言,无法实现代码的自动执行。

 

3.5局限性3:主权

第三个局限性是每个应用程序都具有主权限制,因为它们都共享相同的底层环境。 本质上,这将创建两层治理:应用程序的治理和底层环境的治理,前者受后者的限制。如果应用程序中存在错误,则未经以太坊平台本身的治理批准,将无法对其进行任何处理。如果应用程序需要EVM中的新特性,则它必须再次完全依赖以太坊平台的治理才能接受它。

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

3.6COSMOS的愿景(区块链3.0)


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

 

这一愿景是通过一套开源工具实现的(如Tendermint,Cosmos SDK和IBC),该工具旨在使人们快速构建定制、安全、可扩展和可互操作的区块链应用程序。让我们仔细研究生态系统中的一些最重要工具以及Cosmos网络的技术架构。请注意,Cosmos是一个最初由Tendermint团队构建的开源社区项目。欢迎大家构建更多的工具来丰富更大的开发者生态系统。

 

4.什么是Tendermint BFT和ABCI

直到最近,构建区块链还需要从头开始构建所有三层(网络、共识和应用程序)。 以太坊通过提供一个虚拟机区块链简化了去中心化应用程序的开发,任何人都可以在其上以智能合约的形式部署自定义逻辑。但是,它并没有简化区块链本身的开发。就像比特币一样,Go-Ethereum仍然是一个单一的技术堆栈,很难从中进行分叉和定制。2014年由Jae Kwon创作的Tendermint就是在这里诞生的。


Tendermint BFT是一种将区块链的网络层和共识层打包到通用引擎中的解决方案,允许开发人员专注于应用程序开发,而不是复杂的底层协议。因此,Tendermint节省了数百小时的开发时间。请注意,Tendermint还指定了Tendermint BFT引擎中使用的拜占庭容错(BFT)共识算法的名称。有关共识协议和BFT的历史的更多信息,请查看Tendermint联合创始人Ethan Buchman的精彩播客(podcast)。

 

Tendermint BFT引擎通过称为应用程序区块链接口(ABCI)的套接字协议连接到应用程序。该协议可以包装在任何编程语言中,从而使开发人员可以选择适合其需求的语言。

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

 

公有链或私有链就绪:Tendermint BFT仅处理区块链的网络和共识层,这意味着它可以帮助节点传播事务,并且验证者同意一组事务以附加到区块链上。定义验证程序集的构成方式是应用程序层的作用。因此,开发人员可以在Tendermint BFT引擎之上构建公有链和私有链。如果应用程序根据验证者所拥有的代币数量来选择验证者,则可以将区块链表征为权益证明(PoS)。但是,如果应用程序定义只有一组限定的预授权实体可以是验证器,则可以将区块链表征为允许或私有。开发人员拥有自定义规则的所有自由,这些规则定义了其区块链的验证程序集如何更改。

高性能:Tendermint BFT的阻塞时间约为1秒,每秒可处理多达数千笔交易。

即时完成:Tendermint共识算法的一个属性是即时完成。这意味着只要超过三分之一的验证者是诚实的(拜占庭式的),就永远不会创建分叉。用户可以确保一旦创建一个区块就可以完成他们的事务(在工作量证明区块链(如比特币和以太坊)中不是这种情况)。

安全性:Tendermint共识不仅可以容错,而且是负责任的。如果区块链分叉,就有方法确定责任。

5.Cosmos SDK与其他应用层框架


Tendermint BFT将区块链的开发时间从数年缩短至数周,但从头开始构建安全的ABCI应用仍然是一项艰巨的任务。这就是Cosmos SDK存在的原因。

 

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

 

模块化:Cosmos SDK的目标是创建一个模块生态系统,使开发人员可以轻松启动面向应用的区块链,而不必从头开始编写其应用程序的每一个功能。任何人都可以为Cosmos SDK创建模块,并且在区块链中使用现成的模块就像将它们导入应用程序一样简单。例如,Tendermint团队正在构建Cosmos Hub所需的一组基本模块集。任何开发人员在构建自己的应用程序时都可以使用这些模块。此外,开发人员可以创建新模块以自定义其应用程序。随着Cosmos网络的发展,SDK模块的生态系统将会扩展,这使得开发复杂的区块链应用程序变得越来越容易。

基于功能的安全性:功能限制了模块之间的安全边界,使开发人员可以更好地说明模块的可组合性,并限制恶意或意外交互的范围。要深入了解功能,请单击此处。

Cosmos SDK还附带了一组有用的开发人员工具,用于构建命令行界面(CLI),REST服务器和各种其他常用的实用程序库。

 

最后一点:Cosmos SDK与所有Cosmos工具一样,都是模块化的。现在,它允许开发人员在Tendermint BFT之上构建。但是,它可以与实现ABCI的任何其他共识引擎一起使用。随着时间的推移,我们期望出现多个SDK,它们使用不同的体系结构模型构建并与多个共识引擎兼容-所有这些都在一个生态系统:Cosmos网络中。

学习如何在SDK上对应用程序进行编码,可以查看教程。

5.1ETHERMINT

Cosmos SDK的最大的优点在于其模块化功能使开发人员可以通过Golang移植几乎任何现有的区块链代码库。例如,Ethermint是一个将以太坊虚拟机移植到SDK模块中的项目。Ethermint的工作原理与以太坊完全相同,但也受益于Tendermint BFT的所有特性。所有现有的以太坊工具(Truffle,Metamask等)均与Ethermint兼容,您无需进行额外工作即可移植智能合约。

 

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

 

考虑到当今大多数去中心化应用是在以太坊等虚拟机区块链之上开发的,因此这个问题是合理的。首先,应该指出的是,导致这种现象的原因是,到目前为止,区块链比智能合约更难开发。归功于Cosmos SDK,现在,开发人员可以轻松开发整个面向应用的区块链,这具有多个优势。其中,它们提供了更大的灵活性安全性性能主权。要了解有关面向应用的区块链的更多信息,请阅读此文。 当然,如果您不想构建自己的区块链,仍然可以通过将智能合约部署在Ethermint上来使其与Cosmos兼容。

 

6.将区块链连接在一起-IBC

如今,开发人员可以快速构建自定义的区块链,让我们看看如何将这些区块链连接起来。区块链之间的连接是通过称为区块链间通信协议(IBC)的协议实现的。 IBC利用Tendermint共识的即时终结特性(尽管它可以与任何“快速终结(fast-finality)”区块链引擎一起使用),以允许异构链相互传递价值(即代币)或数据

 

6.1什么是异构链?

从本质上讲,它可以归结为两点:

不同的层:异构链具有不同的层,这意味着它们在实现网络、共识和应用程序部分的方式上可能有所不同。为了与IBC兼容,区块链只需要遵循一些要求,主要的是共识层必须具有快速的终结性。工作量证明链(如比特币和以太坊)不属于此类,因为它们具有概率性确定(probabilistic finality)。

主权:每个区块链都由一组验证器维护,他们的工作是就下一个区块提交区块链达成协议。在工作量证明区块链中,这些验证器称为矿工。主权区块链是具有自己的验证器集的区块链。在许多情况下,重要的是让区块链拥有主权,因为验证器最终负责修改状态。 在以太坊中,应用程序全部由一组通用的验证器运行。 因此,每个应用程序仅具有有限的主权。

 

IBC允许异构区块链之间传递代币和数据,这意味着具有不同应用程序和验证器集的区块链可以互操作。例如,它允许公有链和私链相互之间交换代币。 当前,没有其他区块链框架支持这种级别的互操作性。

6.2IBC工作原理

BC背后的原理非常简单。 让我们举个例子,链A上的一个账户想要向链B发送10个代币(我们称它们为ATOM)。

6.2.1跟踪(Tracking)

连续地,链B接收链A的块头,反之亦然。这允许每个链跟踪另一个链的验证器集。从本质上讲,每个链都运行另一个链的轻客户端。

6.2.2绑定(Bonding)

 

启动IBC传输后,ATOM被锁定(绑定)在链A上。


6.2.3证明中继(proof relay)

然后,将10个ATOM绑定的证明从链A中继到链B。


6.2.4验证(Validation)

 

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


请注意,在链B上创建的ATOM不是真正的ATOM,因为ATOM仅存在于链A上。它们是链A上ATOM在B上的表示形式,以及这些ATOM冻结在链A上的证明。

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

 

7.设计“区块链互联网”


IBC是一种协议,它允许两个异构区块链相互之间传递代币。从那里,我们如何创建一个区块链网络?

 

一种想法是通过直接IBC连接将网络中的每个区块链相互连接。这种方法的主要问题是,网络中的连接数与区块链的数量成二次方增长。如果网络中有100个区块链,并且每个区块链之间都需要维持IBC连接,那就是4950个连接。这将很快导致失控。

 

为了解决这个问题,Cosmos提出了一种具有两类区块链的模块化架构:Hubs和Zones。Zones是常规的异构区块链,而Hubs是专门设计用于将区域连接在一起的区块链。当Zone创建与Hub的IBC连接时,它可以自动访问与其连接的所有其他Zone(即向其发送和从其接收)。结果,每个Zone仅需要与有限的Hub建立有限数量的连接。Hub还可以防止区域之间的双重支付。这意味着,当Zone从Hub接收代币时,它只需要信任此代币和Hub和原始Zone。

 

Cosmos网络中启动的第一个Hub是Cosmos Hub。 Cosmos Hub是一个公共的权益证明区块链,其原生权益代币称为ATOM,交易费用将以多个代币支付。Hub的启动也标志着Cosmos网络的启动。

 

8.桥接非Tendermint链


到目前为止,我们介绍的Cosmos架构显示了基于Tendermint的链如何实现互操作。 但是Cosmos不仅限于Tendermint链。 实际上,任何种类的区块链都可以连接到Cosmos。

我们有两种情况可以区分:快速终结链和概率终结链。

8.1快速终结链

使用任何快速终结共识算法的区块链都可以通过适应IBC与Cosmos连接。 例如,如果以太坊要切换到Casper FFG(友善终结工具),则可以通过使IBC与Casper配合使用,在以太坊和Cosmos生态系统之间建立直接连接。

 

8.2概率终结链

对于没有快速终结区块链,例如工作量证明链,事情会变得有些棘手。 对于这些链,我们使用一种特殊的称为Peg-Zone代理链。

 

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

8.2.1例子: 以太坊Peg-Zone

我们希望桥接工作量证明以太坊区块链,以使其能够在以太坊和Cosmos之间来回发送代币。由于工作量证明机制以太坊不具有快速终结性,因此我们需要创建一个Peg-Zone以充当两者之间的桥梁。

 

首先,Peg-Zone需要确定源链的最终阈值。例如,当源链的给定区块添加到其后的100个区块中时,它可以认为是最终区块。

 

其次,在主以太坊区块链上部署合约。 当用户希望将代币从以太坊发送到Cosmos时,他们首先将代币发送到此合约。然后合约冻结资产,并在100个区块之后,在Peg-Zone释放这些资产的代表。类似的机制用于将资产发送回以太坊链。

 

有趣的是,Peg-Zone还允许用户将驻留在Cosmos中的任何代币发送到以太坊链(Cosmos代币将在以太坊链上表示为ERC20)。Tendermint团队目前正在为名为Peggy的以太坊链进行Peg-Zone实现。

 

Peg-Zone需要针对它们所桥接的特定链进行定制。建立以太坊Peg-Zone相对简单,因为以太坊是基于账户的并且具有智能合约。然而,建立一个比特币Peg-Zone更具挑战性。解释如何构建类似比特币的Peg-Zone在本介绍中并不明确,但知道在理论上是可行的。如果您想了解更多有关Peg-Zone的信息,请查看此说明。

 

9.解决可扩展性


现在我们可以轻松地创建和连接区块链,还有一个要解决的最后问题:可扩展性。 Cosmos利用两种类型的可扩展性:

 

纵向可扩展性:这包括用于扩展区块链本身的方法。通过远离工作量证明并优化其组件,Tendermint BFT可以每秒处理数千笔事务。瓶颈因素是应用程序本身。例如,与直接嵌入事务类型和状态转换功能的应用程序(例如标准Cosmos SDK应用程序)相比,像虚拟机这样的应用程序(例如以太坊虚拟机)对事务吞吐量的限制要低得多。这是面向应用区块链之所以有意义的原因之一(在此处了解更多原因)。

横向可扩展性:即使共识引擎和应用程序得到了高度优化,在某个时候,单条链的事务吞吐量也不可避免地会碰到它无法超越的瓶颈。那是纵向扩展的极限。超越它,解决方案是转向多链架构。这个想法是让多个平行链运行同一应用程序,并由一个公共的验证器集进行操作,从而使区块链在理论上可以无限扩展。关于横向可扩展性的详细信息非常复杂,因此在本介绍中并不涵盖。

Cosmos将在发布时提供非常好的纵向可扩展性,这将是对当前本身的区块链解决方案的重大改进。其后,在完成IBC模块后,将实施横向可扩展性解决方案。

 

10.那么,到底什么是Cosmos


希望到目前为止,您对Cosmos项目有了更清晰的了解。以下是对Cosmos的三个简明概括:

1. Cosmos使用Tendermint BFT和Cosmos SDK的模块化功能,使区块链功能强大且易于开发。

2. Cosmos使区块链能够通过IBC和Peg-Zones相互转移价值,同时让它们保持主权。

3. Cosmos允许区块链应用程序通过横向和纵向可扩展性解决方案扩展到数百万用户。

 

最重要的是,Cosmos不是产品,而是建立在一组模块化、适应性强和可互换的工具上的生态系统。鼓励开发人员共同努力改进现有工具并创建新工具,以实现区块链技术的承诺。这些工具是创建未来去中心化互联网和全球金融系统所需的基础。

 

10.1进一步了解

§  阅读 Cosmos白皮书

§  开始 在Cosmos上进行开发

 

本文地址:http://bilianwu.com/40779.html
版权声明:项目均采集于互联网, 空投币 无法审核全面,且希望大家能赚钱,请谨慎切勿上当受骗!
温馨提示:★★★天上真会掉馅饼!天道酬勤,都是机会!不错过每个空投糖果!真假难以辨认,尽量0撸!
重要提醒:本站内容均转自互联网,请明辨各个项目风险,不构成投资建议,如涉及资金交易,请谨慎操作与自担风险!
《新人必看》 《本站免责申明》

评论已关闭!