假如时间倒退4,5年前,如果有人跟你说他要做一个区块链的互联网,让市面上所有的公链互联互通。你一定觉得他疯了。因为那个时候公链就没有几个,大家谈来谈去还是比特币,以太坊等这些公链。这个时候搞公链的互联互通确实没有什么意义。
不过随着区块链的发展,大量的链上交互需求导致以太坊过于拥挤,再加上高昂的 Gas fee 也阻挡了大量的用户进入 以太坊 主网。以太坊的TPS(系统吞吐量)只有15笔/秒,程序员都应该清楚这个TPS真的不算高。
在这样的背景下,市面上诞生了很多公链用来抢占以太坊的溢出资金和流量。下面这个图是我在footprint上看到的最新公链市场份额数据,可以看到尽管以太坊还是当之无愧的老大,但是诸如Terra,BSC等公链都开始发力。
于是,区块链市场格局就产生了变化,各种公链像雨后春笋般涌现出来。但由于技术、生态以及一些问题绝大多链与链之间无法连接互通,使得用户的数据、资产、应用割裂,形成孤岛效应。为了解决此问题,业界开始探索跨链技术。
这几年提出的跨链技术有很多,Cosmos就是其中一种。而且是目前最主流的。现在一种普遍的看法是,Bitcoin 是区块链 1.0、Ethereum 是区块链 2.0,而Cosmos 是区块链 3.0——「区块链互联」多链宇宙的基础设施。
Cosmos致力于成为”区块链的互联网“,类比主流公链(如BSC、Avalanche)的发展路径可知,Cosmos生态内上线区块链网络的情况对其发展尤为关键。
通过Cosmos SDK(一个模块化框架),Cosmos支持开发者便捷地为Dapp构建专有的应用链(Cosmos中称为zone)。应用链通过接入IBC(跨链通信协议),可与Cosmos生态中其它接入IBC的链实现互 *** 作,以此构建Cosmos的多链生态系统。
到底什么是Cosmos一般大家把Cosmos成为区块链互联网,它不像以太坊提供一个独立的公链。而是希望借助于一些技术实现公链的互通互联。
Cosmos的中文是宇宙,从这个名字就能感受到它的创始人的野心。我理解Cosmos想成为一个区块链的宇宙控制者,而一个一个独立的区块链就是星球。这些星球需要在遵循宇宙的规则的前提下各自运转。
下面这张图,来自map of zones,目前接入Cosmos生态的链已经超过40个,可以看到现在Cosmos生态已经做的很不错了。
Cosmos有几项核心的技术来实现它的野心。
首先是Tendermint,Tendermint是一个Pos共识引擎。这个技术可以使在其它链上开发的代币实现跨链转移。
另外一个核心的技术是Cosmos SDK,可以认为这是一个框架或者模块,通过这个SDK,开发者可以为Dapp构建专有的应用链(在Cosmos里叫zone)。一般我们做软件开发都知道,SDK这个玩意可以简化开发,很多功能都给你封装好了直接调用就行,也可以从这个角度理解下这个SDK。
还有一个重要的技术是IBC(跨链通讯协议),上面提到的各个应用链可以通过这个协议实现通讯。IBC其实不只是连接公链,企业的内部链也可以通过IBC接入Cosmos的生态。
Cosmos的多链生态系统主要就是基于上面三个技术底座实现的。
Cosmos背后涉及的技术细节一般别的写Cosmos的文章,到这里就结束了。但是我是个程序员,喜欢研究事物的底层原理。这部分我们来把前面章节提到的一些概念涉及的技术细节展开说说。
先来说受Tendermint,它是一种将区块链的网络和共识层打包成通用引擎的解决方案,底层使用的算法是BFT 共识算法(拜占庭容错)。这个也是很多区块链的底层算法。
通常情况下,一个区块链系统需要三层
Tendermint相当于帮我们隐藏了下面两层,开发人员只需要在最上层开发区块链的应用即可。这样就大大简化了开发区块链的时间。Tendermint提供的这个通用的引擎使用一种名叫ABCI
的socket通讯协议和应用进行交互,这个协议我们可以基于各种开发语言进行封装,比如java,Go等。所以开发人员可以选择自己熟悉的语言进行开发。
然后我们再来说说这个Cosmos SDK。尽管有了Tendermint引擎已经大大降低了我们开发区块链的难度,但是开发一个基于ABCI的app依然是相对比较复杂的,Cosmos SDK就是为了简化app的开发。就好想尽管我们开发一个手机app,都会用到一些封装好的库来简化我们的开发一样。
从这个图可以看出,Cosmos SDK在Tendermint引擎之上,并且它采用了一种模块化的概念,它希望开发者能想搭积木一样在自己的应用里引入模块。模块可以自己定制开发,也可以使用Tendermint内置的一些基础模块。另外,Cosmos sdk还引入了一些安全边界的机制,模块间的通讯不是任意的。这样可以防止一些恶意的交互。具体的安全机制这里就不展开了,想了解这块的朋友可以评论区留言。
最后该说说IBC了。
要把市面上这么多区块链互通互联,肯定要有一个协议,然后所有的区块链都去实现并遵守这个协议就可以了。这个协议就叫做IBC。实现了这个协议的的区块链,无论是公链还是私链都可以进行通讯,包括传输代币和数据。
举一个例子,假设A链上的一个账户想要发送 10 个代币到B链。代币我们给它取个名字叫ATOM。
B链接收A链的头部,反之亦然,且允许每个链跟踪另一个链的验证者集合。本质上相当于每条链执行了另一个链的一个轻客户端。
当 IBC 转账发起时,ATOM 被锁定在A链上。
然后,将10个 ATOM 绑定的证明从链 A 中继到B链。
在B链上根据A链的头部进行验证,如果有效,则在B链上创建 10 个 ATOM 凭证。
需要注意的是,在B链上创建的ATOM并不是真正的ATOM,因为 ATOM只存在于A链上。它们是A链中 ATOM在B上的表示,以及这些ATOM被冻结在A链上的证明。
总结我们可以看到cosmos的生态越来越强大,慢慢在向着自己的伟大梦想(区块链宇宙)迈进。我个人认为cosmos未来会成为web3.0的重要组成部分,让我们一起拭目以待。
参考:
https://mapofzones.com/?testnet=false&period=24https://cosmos.network/欢迎分享,转载请注明来源:内存溢出
评论列表(0条)