Bitcoin 网络的诞生推动具有不同设计决策和用例的区块链出现了寒武纪爆发式的增长 。 虽然这些分布式账本服务于不同的目的 , 但它们是作为一座座孤岛存在的 , 彼此之间的交互十分有限 。 与互联网促进世界不同地区、不同类型的计算机相互通信类似 , 采用一种类似的技术充当区块链之间的连接组织 , 对于实现真正的价值增长是很有必要的 。 跨链通信协议(IBC)正是旨在服务于这一互联目标 。
IBC 是一种通用的互操作性协议 , 允许两个不同的区块链进行相互通信 。 IBC 能够保证跨链通信是可靠、有序并经过验证的 。
IBC 最重要的属性之一也许是信任最小化 。 在区块链中 , 信任最小化的属性本质上与安全性相关 。 没有哪种分布式系统是完全「无需信任」的 。 因此 , 安全问题最终会被归结为信任谁或信任什么 , 以及怎样判定违反信任 , 即破坏受信任的实体需要付出何种代价 。
从这个意义上说 , 与大多数桥接解决方案不同 , IBC 无需受信任的第三方 。 这意味着 , 如果用户信任两条特定的链 , 并使用它们提供的功能(以及默认信任它们的共识机制) , 那么当使用 IBC 在受信任的链之间进行交互时 , 则无需额外的信任假设 。
IBC 不仅仅是一个便于资产转移的桥梁 。 它是一种通用性的消息传递协议 。 也就是说 , 任何形式的数据都可以通过 IBC 进行传输 。
IBC 的工作原理什么?为了理解 IBC 的工作原理 , 首先需要区分 IBC 的两个不同分层 , 即 1)传输层和 2)应用层 。
文章插图
图 1:两个区块链之间 IBC 数据包流程的高层描述
文章插图
图 2
文章插图
图 3
1. 传输层
通过 IBC 通信的消息在数据包中完成传输 。 传输层负责传输、验证与排序这些数据包 。
数据包定义:传输层没有规定数据包中的数据应该是什么 , 或者接收链应该如何解析数据包 。 从传输层的角度来看 , 数据包中的信息只是随机字节 。
https://computersciencewiki.org/index.php/Data_packet
传输层的关键组件是轻客户端(light clients)、中继器(relayers)、连接(connections)和通道(channels) 。
轻客户端是区块链的轻量级版本 。 与全节点不同 , 轻客户端不会存储区块链中包含的所有消息的全部历史记录 , 也不会执行事务 。 相反 , 轻客户端用于连接全节点 , 并验证区块头(区块中所包含数据的摘要) 。 这使轻客户端能够高效地进行存储和计算 。
全节点定义:通过 IBC 交互的两条独立区块链 A 和 B 互相运行对方链的轻客户端 。 这意味着 A 链在其链上有一个轻客户端 , 充当 B 链的轻量级版本 。 当 A 链想要将「X」消息跨链传输到 B 链时 , 它会将包含该消息的区块的区块头 , 以及该消息的承诺证明(commitment proof)发送给 B 链 。 承诺证明用于验证 A 链上是否存在对应消息 。 通过使用区块头和承诺证明 , B 链得以通过加密方式验证 A 链确实执行了消息「X」 。 正是因为 IBC 中使用了轻客户端 , 才使区块链无需受信任的第三方就能够相互交换消息 。
https://github.com/cosmos/cosmos/blob/master/VALIDATORS_FAQ.md#what-is-a-full-node
但是 A 链和 B 链并不是直接互相发送这些消息/数据包 。 相反 , 当 A 链想要向 B 链发送消息时 , 它会在其状态机中提交或存储包含该消息的数据包的哈希值(hash) 。 而作为链下进程的中继器将不断监听此类消息 。 当中继器监听到 A 链在其状态机中提交了一条计划发送给 B 链的消息时 , 他们只需拾取这条消息并将其传递给 B 链即可 。 请注意 , 中继器是无需许可的 , 因此任何人都可以运行 。
推荐阅读
- ccb的缩写的不同意思 ccb是什么意思
- 中文1到10大写数字 大写数字一到十
- 月上柳梢头描写的传统节日 月上柳梢头人约黄昏后是什么节日
- 防止毛衣缩水的方法 羊毛会缩水吗
- 羊毛衫材质缩水原理 羊毛衫为什么会缩水
- 棉麻衣服不缩水的方法 棉麻衣服怎么洗不缩水
- wtt缩写介绍及赛事规则 wtt是什么意思
- 你我暮年是谁写的
- 一到十二月英文缩写 一到十二月英文怎么说
- aug的来历 aug是几月的英文缩写