atom_crypto

Posted on Apr 10, 2022Read on Mirror.xyz

Cosmos/IBC 手把手教你玩转IBC 功能

今日讨论提纲

今天我们的讨论将涵盖以上几个部分

  • Cosmos 论述
  • 区块链乐高的核心部分
  • IBC 和互操作性
  • 中心 vs 区的概念
  • 应用链 vs 广义智能合约平台
  • 利用IBC 做跨链应用的现场演示

COSMOS到底是什么

Cosmos 不仅仅是区块链而是基于区块链的开发框架。基于Cosmos SDK 开发,你可以看到Cosmos生态非常繁荣, 不管是Polygon,还是Terra生态, 都是比较成功的案例。除了基本的模块化组件 Cosmos SDK, Tendermint共识机制, ABCI, 是建立在共识层上的协议调用接口,除了可以实现快速获取区块堆栈的信息以外,还可以实现开发者不限语言进行开发。目前核心的模块包括IBC通讯协议、跨链安全、Cosmwasm、和流动性质押等。它和其他的layer0 例如波卡有很多类似,但拥有自己的特点:

1) 共享安全:每个中心都有自己的安全性,例如Terra比Juno 更加安全,原生治理代币也用于维护链的安全

2)可组合性,目前可组合性仅限于同一条应用链,比如Terra生态内部不同协议间的可组合性,举个例子,比如你在AAVE 借贷后,用btoken 作为底层资产,去其他协议进行操作,如何实现跨链间的可组合性?在实现可组合EVM后,可以实现更高级别、跨链间的可组合性

3)可扩展性,所有应用链通过IBC 实现跨链通讯而不是单片协议

4)可信的中立性, 这主要有命名的困惑,Cosmos Hub 并不代表Cosmos, 所有接入cosmos 的应用链,都不依赖于Cosmos Hub, 即使Cosmos Hub有任何问题, Osmosis 和Terra 仍然会运行的很好。

什么是IBC

IBC 是通讯跨链传输协议,需要实现不同链间的数据和信息传输, 例如我们如何把资产从Terra的轻客户端到转入到Osmosis的轻客户端,并且使用目的链的资产。这里我们讲下在IBC上可以实现模块的搭建,可以把他们理解为互联网领域的应用程序,例如ICS20, 跨链代币转账功能,例如跨链账户,能够真正实现不同链间的可组合性,作为Osmosis上的流动性提供者,可以到Juno网络上赚取收益。 

链与链之间,中心与中心间的交互,都创造了渠道,并且产生中继链和轻节点,当链拥有越来越多的通讯通道,它会成为一个中心(或是区), Osmosis 的出现让Cosmos 生态的可组合性成为可能,基础设施需要端口、通道、中继者、轻客户端(原有/目标)端等。

IBC交互数量

IBC 需要基础设施去运行,所以我们通常利用一些参数比如通道数量去衡量链的运行情况,当交易数量越多,意味着越多用户使用量和需求。

Mapofzone上的IBC运行网络

这个是mapofzone的显示IBC的运行情况,每条Cosmos链都是独立主权链, 链与链之间可以实现资金转账和活动。例如Terra 上UST的需求, Osmosis上的AMM 交易, Umee 的借贷协议。Osmosis 上最近上线的超级质押功能,允许流动性提供者获得更高收益提高了整条链的安全性。

Zone和Hub的区别

Cosmos上基于 Cosmos SDK主权链有很强的灵活性, 可以选择搭建哪些模块,便于使用,更快开发和设计空间.例如币安智能链采用了SDK, 但并没有接入IBC,和TerdermintBFT  的共识机制。以太坊这样的的智能合约平台更新, 不是针对所有链上开发的应用的更新, 比如无法做到专门为Uniswap 进行更新。链上有100-1000条应用,很难实现协调和兼顾,所以根据平均应用案例进行优化, 而Cosmos 上的协议层更新,,这些协议层更新会传输到应用端, 协议更新非常快, 对于特定应用进行优化, 例如Superfluid staking。

应用链和通用链的区别

Q&A:以太坊和Cosmos区别?

Cosmos 是一个区块链框架,所有应用链都具有互操作性, 2.0的版本将通过数据可用协议Celesita, 设计迅速,不仅仅运用EVM, 同时通过中心化的桥等方式实现异构链通信, IBC则提供同构链之间的资产和信息的互通,将所有的协议通过可信任的方式连接。目前的问题在于如果你需要运行传输协议, 你需要运行轻客户端,非常昂贵, 我们看到了Layer0 这样的协议, 试图解决这些问题.

似乎跨链帐户降低了将帐户连接到安全性最弱的链的用户的安全性。是否有缓解措施来防止这种情况发生?

当你设置这些连接的时候, 你就是信任这个链的安全性,  当新的链加入Cosmos 网络提升可组合性的同时, 的确存在风险, 但目前不是个问题。跨链安全,类似于波卡的中继链,Celestia, 作为数据可用协议,在开发Rollup功能, Osmosis上线的superfluid 质押功能,允许用户将资产存入Osmosis, 同时通过IBC协议,可以实现与比如Akash 网络通讯交互 和质押 绑定,真正意义上实现跨链安全功能。

Demo展示

Kpler钱包UI

Keplr 与Metamask 相似,可以在不同EVM 兼容链之间转账, 如果你选择Osmosis, 你可以看到对应的Osmosis 上的钱包,差别是这些都是不同的应用链,你需要在不同链之间进行转账交易。你可以从Terra Station,中心化交易所等转账到Kepler 钱包, 你可以参与每条链的治理/治理, 用每个链对应的钱包,钱包地址以每条链的名称打头。如果你打开Terra钱包,你就会获得Terra地址。其他链也是一样的情况。我们现在做一笔将Atom从Cosmos Hub 转账到Osmosis 的操作。

Cosmos Hub和Osmosis之间的通道

我们需要去定义我们需要发送资产的通道,起始链(Cosmos) 和目的地链(Osmosis),我们通过mintscan, 区块浏览器, 选择IBC Relayer, 并且输入相应信息,在Channel ID栏输入channel-141。

Cosmos Hub向Osmosis发起的通道141

手续费用发起链的原生代币支付的,所以你需要确保在你发起转账的链上有原生代币(非常便宜),我们复制目的链地址,粘贴进去,我们提交并且批准交易。到账Osmosis 协议后,我们可以用于质押、流动性提供、交换等功能。

用IBC和以太坊的关键区别是如果你通过IBC做交易,如果交易没有成功,你没必要再发起10笔交易,和以太坊不同,如果你发起交易,就是在排队等待,等待中继链发送包含有代币交易信息的数据包至目标链,如果你再发起10笔交易,会让情况变得更糟,这让中继链承担了更多的信息去relayer over, 我们只需要刷新UI 就可以了。

Osmosis AMM界面

Osmosis 为什么会被这么广泛的应用,因为所有IBC的链上的资产都需要经过Osmosis进行存储和交易,每个保护链安全的代币都作为链的交易代币,类似于以太坊上的燃料费用,比如你在Osmosis 上操作,你需要消耗Osmosis, 你在Secret Network上操作,需要消耗Secret, 你需要确保在Secret网络上拥有Secret代币。接下来我们把Osmosis 换成Secret 代币,Osmosis 上的目前手续费用为0 (average and low)。 

ATOM和SCRT交易之间AMM界面

点击取款,会自动弹出你的secret wallet 的地址,之前你必须要点击Keplr钱包,在不同的链间做交换,你需要搜索Secret 网络页面, 复制以Secret打头的相应地址,同时你需要Channel ID, 但是更加简单的方法你可以从Osmosis资产页面,直接发送交易,它会自动显示出你的地址,非常注重用户体验。

在Osmosis上SCRT通过IBC跨链转账到Secret链

非 Terdemint支持IBC, 目前波卡的Substract 在做,Solana,EVM Bridge, Ocotopus 网络基于Near 协议开发,但是致力于将Parachain接入IBC, Celo也在IBC 实现端进行大量的研究。Layer0, Whormhole, Thorchain 都是不错的案例。现在很多桥都在激进pitch Osmosis, 看他们最后选择哪个。IBC 还很重要的点是, Terra是SDK, 你仅仅可以转账Luna UST,  把IBC 接入智能合约, 智能合约创建在Cosmwasm, 目前用RUST 语言编写,和ERC20 代币类似,他们有CW20代币,如果你直接将IBC 植入到合约,他们能够直接发送接受代币。Cosmwasm, 是搭建在Cosmos SDK上的智能合约平台,目前他们主要被Terra生态运用,所以前段时间一直有Terra代币的炒作,自称为是Cosmos 生态的中心,而非Cosmos Hub 。你需要在Layer1 上搭建应用,现在你可以特定链上搭建特定应用,减少了开发者的开发门槛,同时也提升了应用程序的互操作性和设计空间。Osmosis也通过了接入Cosmwasm 的治理提案。Cosmos生态目前有三种虚拟机,一种是Cosmwasm,一种是Evmos 上的EVM,最后是Golden Harvest Javascript 的设计和执行,代表项目有Agoric。

Osmosis也通过了接入Cosmwasm 的治理提案。如果你是Osmosis协议, 你不需要几千个apps 在你的链上开发,你会遇到可扩展性的问题,很难去协调,更多的质押者,所以作为应用链的点在于,他们都有一个核心产品,有10-15个apps 在他们上面同时存在,插入Cosmwasm智能合约组件, 你可以搭建一个借贷协议,可以搭建一个永续合约协议。随着跨链账户功能上线,届时你的机枪池可以在Juno network, 也可以在Osmosis 上创建,底层通过跨链合约进行交互(Contract Call),以往需要双边复杂的升级等待,跨链账户功能可以很好地解决这个问题。