Cosmos诞生的背景

假如时间倒退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=24
  • https://cosmos.network/

一文带你了解火爆的区块链互联网Cosmos相关推荐

  1. 百度工程师深度好文, 横评3大企业级区块链技术平台

    百度工程师深度好文, 横评3大企业级区块链技术平台! 区块链从独立的技术范式,慢慢扩展到企业区块链的融合范式,是下一代区块链的核心特征.在区块链技术与AI.大数据.云计算技术加速融合的今天,区块链如何 ...

  2. 翼次元空间资讯:区块链互联网酒业“心直酒快”有动作

    本文由BitCOO.4COO全球运营官社区网络中国区节点与TokenRise+ValueBoost | Chain++产业链+.FUND++.Value++与BrandFin+品牌价值燃焕力中心.Fi ...

  3. 一文读懂:什么是区块链

    今天写一个能够一文读懂区块链的文章,以后谁再问我区块链是什么东西,我就把这篇文章发给他. -------- 个人技术公众号:解决方案工程师 欢迎同领域的朋友关注.相互交流. -------- 区块链技 ...

  4. 【Dfinity完整概述】一文带你读懂Dfinity的链上运行

    区块链的发展历史一共分为3分里程碑意义:2009年比特币点对点支付系统诞生-数字通证的区块链化,2015年以太坊智能合约带来的DeFi运动-智能合约的区块链化,2021年Dfinity无限区块链-所有 ...

  5. 从小故事带你理解零知识证明 | 区块链一千零一问

    开胃小故事 阿里巴巴证明 阿里巴巴被强盗抓住,为了保命,他需要向强盗证明自己拥有打开石门的密码,同时又不能把密码告诉强盗.他想出一个解决办法,先让强盗离开自己一箭之地,距离足够远让强盗无法听到口令,足 ...

  6. 一篇文章带你更深入了解区块链有哪些应用?

    如今的人们生活在一个充满网络世界中,无论是活动还是资产也逐渐转移到了互联网上.传统的互联网只是传递信息的功能,网络中的每一个节点,每一个产品,需要同时承担交易对象和交易发起者的角色,将会产生非常庞大的 ...

  7. 元宇宙漫游指南-区块链构建元宇宙基础设施,一文搞清楚元宇宙和区块链

    1.区块链和元宇宙 1.1 区块链和元宇宙的概念 1.1.1 元宇宙大事件 Roblox第一支股票上市 Roblox公司2004年成立,2021年3月份在纽交所直接上市.在他们自己的描述中,Roblo ...

  8. 一文简述机构资本市场中的区块链

    区块链技术从根本上改变了金融机构交换价值和构建市场基础设施的方式.从广义上讲,资本市场有四类市场参与者,基于区块链的解决方案为他们提供了明显的好处:发行人.基金经理.投资者和监管者. 下面毛球科技将针 ...

  9. 宜信区块链|一篇干货文读懂宜信的区块链实践

    12月6日下午,每月一次的CEO座谈会在北京如期举办,近百位同事到场参加.本期座谈会邀请了宜信首席技术官向江旭.宜信区块链实验室主任.翼启云服区块链业务总监于明扬.宜信金融科技产业基金合伙人秦琴等三位 ...

最新文章

  1. python2.7除法_对python中的float除法和整除法的实例详解
  2. PhantomJS快速入门教程(转)
  3. 鸿蒙开发-新建Ability与使用image-animator实现图帧动画
  4. Google Maps——页面提示[For development purposes only]解决方案
  5. RPC的负载均衡策略
  6. POI的XWPFTableCell的方法
  7. k8s安装nginx部署前端页面_Kubernetes(k8s)部署并测试nginx service
  8. 【兼容】----常见浏览器兼容性问题与解决方案
  9. 54. Cache-Control
  10. 基于RS485通讯总线的ModbusRtu协议 上位机项目源代码
  11. php面向对象编程孙卫琴,什么是面向对象编程(OOP)?,面向对象编程孙卫琴
  12. python 神奇时钟项目_第一个python小程序——即时动态时钟(代码解读)
  13. Matlab中pickic_高颜值甜品DIY |春季甜品Picnic野餐系列,一起过个惬意慵懒的午后时光❗️...
  14. 游戏服务器经常被DDOS攻击应该怎么办?
  15. mysql查姓名中既有a也有e的姓_mysql查询初级练习题(已更完)
  16. 欧洲通用数据保护条例(GDPR)合规的6个步骤
  17. Dubbo系列之微服务框架整合教程
  18. 关于for example: not eligible for auto-proxying
  19. 迅为嵌入式linux驱动开发笔记(八)—内核定时器
  20. 1分钟读懂 云支付(云收款)交易规则 云支付收费标准

热门文章

  1. chrome浏览器f12的network里的请求行变得很大的解决方案
  2. 每天一个Linux命令-使用du查看文件大小
  3. Linux下kill -9杀不死进程或杀死又自动启动,解决
  4. cmd、命令大全、DOS命令、使用方法(超全),是我喜欢的文章
  5. 用户请求网站提示 网络连接错误
  6. Facebook的利润创下历史新高,不受最近的丑闻影响
  7. Java开发之——Date时间差
  8. 为什么区分LHS和RHS?
  9. 编写 react-redux 库,封装 react-reduc.js 的心里路程(原理及详解)
  10. 对链特异性建库的理解