LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 新闻观点 > IBCHubAMA:如何让区块链实现多链交互

IBCHubAMA:如何让区块链实现多链交互

2020-04-09 BOSCore 来源:区块链网络

2020年4月7日,我们 BOSCore 团队发布了 BOS IBC v4.0.0 版本,所以今天邀请了 BOSCore 开发人员 Simon 来和我们详细地聊聊什么是BOS IBC Hub, ?Hub 可以给 BOSCore 甚至 EOSIO 生态带来哪些改变?

Q1:什么是 IBC Hub?

IBC?Hub?实现的是 Token?的跨链中心,Hub?就是交换中心的意思。可以看下图

通过IBC Hub?实现一个星型的跨链网络,中间的链成为?Hub?Chain,其他链称为平行链。

BOS?实现 Hub?后,其他与?BOS?相连的平行链之间可以一键转账,比如 EOS主网和?Telos?主网,他们都已经和?BOS?主网实现了跨链,BOS?部署 Hub?合约后,你可以把?EOS?一键转移到?Teols?主网指定的账户上。

IBC Hub??协议非常灵活,你可以一键转移任意已经注册的 Token,从一个平行链到另一个平行链,比如,你可以在平行链?A?一键转移来自平行链?B?的?Token?到平行链?C?的指定账户。

Q2:跨链的实现方式是什么?如何实现同构跨链?

这个问题其实以前回答过许多次了,核心原理是比特币白皮书中提到的一个原理“简单支付证明” Simple Payment Verification (SPV),具体的原理可以参考 github?详细的解读:

https://github.com/boscore/Documentation/blob/master/IBC/EOSIO_IBC_Priciple_and_Design_zh.md

目前我们看到的协议可以说都是同构跨链,比如另外两个跨链项目 Cosmos?和?polkadot,所谓同构,是说两条链具有相同或相近的区块头结构和逻辑,比如?EOSIO,BOSCore,Telos?等属于同构链,其实?BOSCore?和其他链在某些核心数据结构方面差别已经比较大了,因此才能做到 3s LIB。对于异构跨链,需要特殊的桥,比如和比特币网络实现跨链,这方面 Cosmos?和?polkadot?都有涉及,异构跨链一般采用多见证人的方式实现。

Q3:Cosmos?前段时间也推出?Cosmos Hub,和?BOS Hub有什么相同和不同点吗?

从用户的角度来说非常相似的,我们称为的平行链在 Cosmos中称为?zone,BOS Hub和?Cosmos Hub?都可以支持 Token?在平行链间一键转账。他们的实现原理也非常接近,都是基于轻客户端和?SPV?证明。

Q4:你觉得跨链未来会发展成标准化协议,就像TCP之于互联网,而不是依赖某条具体链吗?

这是个重要的问题,目前看来,公链的世界似乎还比较远,然而联盟链领域因为有国家引导,再加上一些标准制定机构的参与,可能会比较早的出现跨链标准。

现有的区块链都有自己的数据格式和共识算法,比如比特、以太、EOSIO等,差别巨大,因此也就导致不同链的轻客户端设计差别巨大,只有当许多区块链使用相近的共识和区块数据结构时,标准才能形成。

Q5:可以介绍下?BOS IBC?发展历程,v1-v4?都做了那些功能迭代吗?你觉得实现IBC V4,最大的挑战是什么?

v1?实现的是?BOS?主网和?EOS?主网之间的双向跨链,当时?BOS?的共识和?EOS?一样是pipeline-bft。

v2?实现支持?BOS?的?batch-pbft?共识算法,也就是?BOS?的3s LIB,Token?从?BOS?到?EOS?的跨链速度也更快了。

v3?这是做了个小的改动,代码中增加对检查?relay?权限的控制,因为修改了底层协议,和之前的版本不兼容,所以才做个一个大版本号。

v4?是实现了?Hub?协议,部署 Hub?版本合约的链可以作为跨链中心。

Hub?协议是基于原有的 IBC 协议的,因为 IBC 协议本身设计的足够完善和灵活,所以实现 Hub 协议就变的比较容易,没有太多的难度。

Q6:IBC协议只支持简单的价值传递即跨链发送代币,什么时候能支持更多信息的传输,比如支持跨链的?action互操作?

这个需要有足够的需求后才能知道如何抽象成标准,目前还这方面的需求很少,所以目前只支持跨链。

如果有这方面需求的项目方,可以通过?transfer?这个?action?的?memo string?来进行自定义参数的跨链传递,这是个不多的选择。

Q7:如果有人想将其自定义代币添加到 IBC?网络中,当前是否可行?如何进行设置?

当然可行,Token需要注册才能在各个链上流通,需要准备一些信息,可以参考 github?文档并联系?BOSCore?项目方即可,项目方审核后会进行 Token?注册,然后你的 Token 就可以跨链流通了。

审核就是梳理一遍参数,看看有没有错误,一是为了便民,二是为了防止冒名顶替的假币。因为参数比较多,而且向 IBC 合约中提交信息,需要 ibc.token 合约的权限,这个是需要多签才能够完成的,本身也是去中心化的。

https://github.com/boscore/ibc_contracts/blob/master/docs/Token_Registration_and_Management.md

Q8:所有跨链的通信都通过?Hub?这个中心代理来完成,这样会不会违背区块链去中心化的初衷?

好问题,我们一共提供了两个协议,他们是分层的:一个是?IBC?协议,一个是?HUB?协议。

HUB?协议是基于?IBC?协议的,目的是方便实现一键跨两条链互转 Token。IBC协议是完全去中心化的对等协议,可以组成任意的网状结构,以组成真正去中心化的跨链网络。而HUB协议只是为了方便用户实现一键跨两条链转账,就产生了跨链中心的概念,这个中心本身也是去中心化的一条公链,cosmos?和?polkadot?也是一样的星型结构,去中心用大白话就是,IBC 账户最终都交给 BP 多签控制,个人无法操作,所以并未违背去中心化的初衷。

Q9:从一条链到另一条链转账的代币会发生什么?它将在发送代币的链上燃烧吗?”

要看具体的转账方向,从?Token?发行的原链到目的链,不会燃烧;从其他链转回它发行的原链,会燃烧。

真实的跨链,这些 Token?本质上说并未真正跨过去,而是在原链上锁定这些 Token,然后,在目的链上生成等量同名的 Token。当把这些 Token?转回原链时,才会燃烧,然后原链将锁定的token转给指定的账户。

通过 IBC?协议实现一个 Token?之间的锚定,也就是说跨链过程中,流动币的数量守恒,就像能量守恒一样。

Q10:谁收取费用??运营合约的网络还是超级节点?

中继收费,因为中继是推动交易的。更直白点就是根据 PoW 的精神,干活的才收取服务费。跨链协议中有许多的交易需要人 push,我们设计的是,谁 push 这交易,交易费就给谁。

自由讨论

Q1:“连接在一起的链是否需要使用相同的?EOSIO?版本?”

不需要,不同的链有自己版本号,也可能会有大量的修改,例如BOSCore。

Q2:EOS 和 Wax 之间是否允许直接转账?

等?Wax?接入?BOS Hub?后就可以了,平行链之间转账只需要一键操作,剩余的 IBC 系统会自动完成。

Q3:现在从BOS跨链到 EOS 要多久?HUB 上线以后两条链跨链要多久?

现在大概不到10秒,Hub上线好,平行链之间跨链的计算方式是 3.5分钟+10秒。3.5分钟是个大概时间,这是因为其他链还是用的 pipeline bft;10秒是因为 BOS 有3s LIB。

Q4.1:v4 如果 BOS做HUB,两个EOS做平行链,? EOSA->BOS->EOSB ?? 那 EOSA和EOSB 分别运行一个relay节点,BOS 得分别运行2个relay 节点 与 EOSA 和 EOSB 连接么?

是的。

Q4.2:有没有可能 BOS 只跑一个 公共的relay 节点?

不能,因为不同的平行链的属于不同的网络,而且数据结构也可能不同,所以是做不到的。

Q5:目前跨链时? memo 字段占用较多,目前的业务需求需要 memo 带业务信息过去,这个有可能优化么?

IBC 插件的逻辑比较复杂,可以参考 net_plugin,如果让 net_plugin 连接多个区块链网络,那他的复杂度会指数上升。协议层面没有什么优化空间了,如果你遇到了长度限制,后面可以看下如何能扩展 memo 长度。

—-

编译者/作者:BOSCore

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...