跨链与无限扩容:Cosmos
一、摘要
Cosmos是一个新型的区块链网络架构基础平台,将重点放在了跨(区块)链技术上,提出了跨链沟通以及不同区块链之间价值传递的解决方案。Cosmos的结构由多个独立的区块链共同组成,并且都被称作“空间(Zones)”。其中第一个空间叫做Cosmos中心[Cosmos Hub,中心是翻译后的结果,并不意味着这个Hub是所有区块链的中心],其他所有空间都与Cosmos中心相连接。Cosmos中心负责记录整个Cosmos网络的状态,也就是所有其他空间的状态。除Cosmos中心外,其他空间之间相互独立,只负责自己的空间状态。Cosmos采用Tindermint共识机制解决交易量表现问题;在Tindermint共识机制中采用权益证明(Proof of stake)的方式避开了资源浪费的问题,同时也用于网络的治理;Cosmos提出了跨区块链沟通协议(Inter-Blockchain communication protocol,IBC)用于解决空间与空间之间的沟通问题。
二、Tendermint
Tendermint可以理解为帮助开发区块链应用的一个软件,Tendermint提供了安全高效的区块链共识机制解决方案和应用程序开发交互界面。我们之前说过,区块链网络平台是整个区块链经济系统的底层架构,为去中心化应用的开发提供基础设施服务。而Tendermint则既可以作为更底层的解决方案,为区块链网络平台服务;同时也可以跨过区块链网络平台,直接为去中心化的应用程序服务。Cosmos区块链网络平台就是建立在Tendermint的基础上,因而在了解Cosmos之前,有必要对Tendermint做一个简单介绍。
(一)拜占庭容错
Tendermint对解决拜占庭将军问题(Byzantine generals)提出了一种实际有效的解决方案。拜占庭将军问题的实质是指,在一个可能存在恶意参与者的集体中,如何让这个集体对某一事件如何达成一致的结果的问题。而拜占庭容错是对拜占庭将军问题的解决。在区块链中的意思就是,在一个分布式的网络结构中,即使是在存在恶意节点的情况下,整个网络依然能够对每一轮新产生的唯一区块达成共识。用EthanBuchman[Tendermint联合创始人,而且这个算法也正是Buchman的博士论文]的话说就是“不可靠的参与者共同建立的可靠系统。”
(二)Tendermint的结构
Tendermint的设计初衷是为了解决当前区块链中的共识机制大一统式(Monolithic)的设计(与之对应的是模块化的设计)存在的问题。大一统的设计指区块链的共识维持是一个单一的程序,涵盖了节点与节点之间连接、向全网广播交易、对新区块的承认机制、账户余额、图灵完备的智能合约等内容。这样的大一统设计主要问题有两点,一是代码的重复利用率低,因为如果是采用模块化的设计,那么细分的模块就可以被重复利用。第二个是限制了区块链支持的编程语言。而Tendermint将区块链的结构分为两层:共识引擎(Consensus engine)和程序交互(Application interface)。其中前者负责节点间的信息记录的一致性,也就是对区块链共识的维持;后者使得智能合约的编写支持任意一种编程语言。
(三)共识的过程
区块链网络中的共识可以理解为全网对每一轮对新出现的唯一区块的认可。在Tendermint中,共识机制的参与者被称作验证人(Validators),他们负责对每一轮的新区块进行提议和投票。整个共识达成的过程如图1所示。
图1 Tendermint实现共识的过程
其中,在每一轮的开始(New Round),节点对新一轮的区块进行提议。之后,合格的提议区块首先经过一轮预投票(Prevote)。在提议区块获得2/3以上的投票后,进入下一轮的预认可(Precommit),同样是待获得2/3以上的验证人预认可后,被提议区块就正式获得了认可(Commit)。而得到认可的这个区块就被添加的到区块链中。
Tendermint的整个共识过程看起来其实比较简单,除了上述的这个过程外,还有两点需要注意。第一,图1中右下角有两个小人正在跳舞,而这种舞叫做“Polka”,来自捷克。第一轮预投票的过程也被称作“Polka”。这个词在Tendermint中最开始在Buchman的博士论文中出现,原因是在预投票的过程中,验证人的工作与Polka十分相似[ “The term evolved to polka as it was realized the validators are doing the polka.”引自论文。至于叫这个名字的更细节原因,笔者在查阅资料过程中并没有发现,有兴趣的读者可以自行查找]。
第二,我们上面关于Tendermint的描述相对较为简单,旨在让读者明白其工作过程,在Tendermint的完整结构中还包括许多内容,如治理、P2P的网络同步、应用程序的开发等等。
三、Cosmos
(一)Cosmos的网络结构
在了解了Tendermint的内容以后,我们接下来对Cosmos进行介绍。在文章开头说过,Cosmos是由多个区块链组成的。这也就是说,如果我们把区块链网络看作是不同的节点以去中心化的方式连接而成的网络,那么Cosmos则就是由不同的区块链组成的网络。图2是对Cosmos的结构的一个直观描述。其中网络中第一个区块链为Comos中心,记录着其他所有区块链(被称作“空间”)的状态。这些空间既可以是公有链,也可以是私有链。
对于Cosmos的结构需要强调的一点是,图2中看上去Cosmos中心是位于所有空间的中心位置,但是这只能代表Cosmos中心记录所有其他空间的状态功能。并不意味着Cosmos网络结构是一个中心化的结构。事实上,连接到Cosmos中心的空间并没有任何限制,这些空间完全可以作为区块链网络平台,然后在其平台上衍生出其他区块链或是应用程序,这种结构如图3所示。从这个角度而言,Cosmos区块链网络平台具有无限扩展性。
图2 Cosmos结构
图3 扩展的Cosmos网络结构
(图中的每一个圆圈都代表一个空间)
(二)Cosmos中心
上面我们说过,Cosmos中心的功能是记录其他空间的状态。这个状态特指其他空间的资产状况。空间的资产状况一般指空间内部的代币拥有量(这个代币由空间开发者自己开发)。代币可以通过跨链沟通协议在不同的空间转移,而这个过程由Cosmos中心记录,并且Cosmos中心负责整个网络系统中的各种代币的总量不会出现差错[这里主要指不同代币在不同空间转移的时候,Cosmos中心保证转出量始终等于转入量]。所以Cosmos中心实际上就是一个多资产(代币)的分布式账本。而由于这个总账本的功能,使得Cosmos中心这条区块链的安全性在整个网络的区块链中是最重要的。
(三)空间
每一个空间都是一个独立的区块链系统。不同的空间可以通过Cosmos中心发送消息沟通,包括转账。需要注意一点的是,由于我们说过,每一个空间都可以作为一个区块链平台,然后在平台上开发出不同的链。所以每一个空间可以拥有超过一种的代币。另外,考虑到空间的规模可大可小,为了保证空间的安全性,每一个空间至少要拥有4个验证人。
(四)跨区块链沟通协议(IBC)
不同的空间可以沟通传递信息,这个信息包括空间的代币(下面的例子我们都用转账作为沟通内容)。空间与空间交流的是非对称的,也就是说双方是依靠着Cosmos中心进行,而不是直接进行交易。这里的Cosmos中心充当的是一个中介的作用。
为了说明IBC的工作原理,我们假设现在有三个空间,分别是空间1、Cosmos中心以及空间2。现在空间1中有一个用户想要发送一笔代币给空间2的另一个用户,那么空间1的这个发送人需要提供两个证明:IBCBlockCommitTx和IBCPacketTx。IBCBlockCommitTx通过哈希值来表明发送方所在区块链网络的最新的区块是哪一块。IBCPacketTx则是转账本身的信息,包括发送方的身份证明等内容。这两个证明以交易请求的方式首先从空间1发起,在空间1得到认可之后,被Cosmos中心所接收,Cosmos中心随后更新在中心的区块链上的空间1的状态(扣除转账消息中的代币数)。然后Cosmos中心也同样发起这两个交易,更新中心区块链上的空间2的状态(增加转账消息中的代币数),将代币发送到空间2中。而在Cosmos中心发起的两个交易证明与先前发起的不同地方在于,此时IBCBlockCommitTx证明的是Cosmos中心的最新区块,而不是空间1。而IBCPacketTx则与先前的一致。这个过程可以通过图4来表示。
图4 IBC的工作过程
关于这个IBC的工作原理我们需要注意的一点是,我们很容易把这个跨连交易过程理解为“运送”的过程,但是实际上却有一些差别。这里的“运送”是指,如同我们生活中的快递服务一样,用户发送的东西通过快递公司的中介服务之后,另一方用户会接收到一模一样的东西。但是在Cosmos中,这个过程更像是“冻结与创造”的过程。这一点与银行服务有些类似,一般情况下,收款人收到的钱并不是打款人转出的那笔一模一样的钱(例如打款人支付一张100元,收款人收到2张50元)。在Cosmos中心收到空间1的转账消息后,会将对应的代币“冻结”起来,然后在空间2“创造”同样数量的代币,这两个过程都是依靠智能合约完成。因此从这个角度讲,当Cosmos网络中的空间数目增加,代币种类不断增多,处理的跨链交易增多时,Cosmos中心就相当于是一个公共的代币仓库。
四、总结
从Cosmos的设计上我们可以看出,Cosmos试图构建一个宏大的区块链经济网络系统。事实上,Cosmos甚至能够“兼容”以太坊,这也正是Cosmos正在研究的一个项目,叫做“Ethermint”。从设计上看,Cosmos的扩展性给予了其广阔的前景空间,在垂直面上,Tendermint解决方案支持大规模的吞吐量以及交易快速处理能力;在水平层面上,跨链技术支持Cosmos网络的无限扩容。但是由于其仍然处于开发阶段,实际运行后的情况是否能达到预期,同其他计划中的区块链网络平台一样,有待检验。
(完)
责任编辑:售电衡衡