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) 。
輕客戶端是區塊鏈的輕量級版本 。與全節點不同 , 輕客戶端不會存儲區塊鏈中包含的所有消息的全部歷史記錄 , 也不會執行事務 。相反 , 輕客戶端用于連接全節點 , 并驗證區塊頭(區塊中所包含數據的摘要) 。這使輕客戶端能夠高效地進行存儲和計算 。
全節點定義:
https://github.com/cosmos/cosmos/blob/master/VALIDATORS_FAQ.md#what-is-a-full-node
通過 IBC 交互的兩條獨立區塊鏈 A 和 B 互相運行對方鏈的輕客戶端 。這意味著 A 鏈在其鏈上有一個輕客戶端 , 充當 B 鏈的輕量級版本 。當 A 鏈想要將「X」消息跨鏈傳輸到 B 鏈時 , 它會將包含該消息的區塊的區塊頭 , 以及該消息的承諾證明(commitment proof)發送給 B 鏈 。承諾證明用于驗證 A 鏈上是否存在對應消息 。通過使用區塊頭和承諾證明 , B 鏈得以通過加密方式驗證 A 鏈確實執行了消息「X」 。正是因為 IBC 中使用了輕客戶端 , 才使區塊鏈無需受信任的第三方就能夠相互交換消息 。
但是 A 鏈和 B 鏈并不是直接互相發送這些消息/數據包 。相反 , 當 A 鏈想要向 B 鏈發送消息時 , 它會在其狀態機中提交或存儲包含該消息的數據包的哈希值(hash) 。而作為鏈下進程的中繼器將不斷監聽此類消息 。當中繼器監聽到 A 鏈在其狀態機中提交了一條計劃發送給 B 鏈的消息時 , 他們只需拾取這條消息并將其傳遞給 B 鏈即可 。請注意 , 中繼器是無需許可的 , 因此任何人都可以運行 。
哈希:
https://www.investopedia.com/terms/h/hash.asp
狀態機:
https://www.techopedia.com/definition/16447/state-machine
「連接」負責連接兩條不同鏈上的輕客戶端 。「通道」則是在這些不同鏈上的模塊之間傳輸數據包的渠道 。因此 , 連接是專用于鏈的 , 而通道是專用于模塊的 。每個通道端都有一個唯一的通道 ID(和一個端口 ID) , 用于在兩個模塊之間準確地路由數據包 。
2. 應用層
應用層用于與終端用戶進行交互 。它由使用傳輸層構建的各種應用程序組成 。傳輸層沒有規定如何解析數據包 , 該角色由應用層執行 。
IBC 支持多種應用場景 , 例如同質化/非同質化的資產傳輸、跨鏈預言機輸入、跨鏈賬戶、跨鏈查詢、費用支付中間件(用于激勵中繼器)等 。
例如 , 用于資產傳輸的 IBC 用例——即跨鏈標準 20 (ICS 20)——規定了數據包的結構以及接收鏈解析數據包的方式 。在其傳輸中 , 數據包包含有關發送者、接收者、denom 等信息 。denom 字段跟蹤特定資產到達某個鏈所經過的路徑 。ICS 20 還規定了有關如何處理數據包的邏輯 。
跨鏈標準 20(ICS 20):
https://github.com/cosmos/ibc/blob/master/spec/app/ics-020-fungible-token-transfer/README.md
為更好理解 IBC , 可以用郵件傳遞系統做類比 。當發件人向某人發送一封郵件時 , 需要使用郵政服務收集包含信件的信封 , 并將其存入收件人的郵箱 。然后收件人打開對應信封并閱讀信件內容 。IBC 的傳輸層可以看作是郵政服務 。郵政服務不會規定信件的內容應該是什么 , 或者收件人應該如何解讀用戶的信息 。
同樣 , 傳輸層也不知道信封中的內容是什么 。它只負責執行從 A 鏈收集信封 , 并將其發送到 B 鏈的動作 。信封本身可以被認為是從一條鏈發送到另一條鏈的 IBC 數據包 。在信封上 , 用戶會指定收件人的地址 。這類似于 IBC 數據包中含有的數據包發送者(由通道 ID 指定)和數據包的目標對象(由對手鏈通道 ID 指定)信息 。最后 , 由接收者(應用程序)負責打開信封(數據包) , 并解析其中的內容 。
IBC 的用途是什么?
除了上文中提到的轉移用例 , 跨鏈賬戶和跨鏈安全也是兩個 IBC 應用領域 。
跨鏈賬戶能夠促進無需切換界面的跨鏈交互 。這實際上意味著 B 鏈(即「主鏈」)上能夠執行的任何操作 , 包括傳輸、委托或對治理提案進行投票 , 都可以通過 A 鏈(稱為「控制鏈」)來執行 ??珂溬~戶通過改善用戶體驗顯著提高了跨鏈生態內的可組合性 。
跨鏈安全是 Cosmos 生態的共享安全版本 。它使區塊鏈能夠完全以「選擇加入(opt-in)」的方式從另一條鏈租用安全性 。對于可以選擇利用現有網絡(例如 Cosmos Hub)所提供的安全性的新鏈來說 , 這一功能十分有用 。跨鏈安全讓區塊鏈無需承擔引導自己的驗證人集的工作 。
可以使用 IBC 作為核心基元(primitive)執行的應用范圍不斷擴大 ??珂?NFT 傳輸功能和跨鏈查詢功能(一條鏈可以從另一條鏈讀取狀態)也很快會進入生產完備狀態 。
IBC 能夠解決什么問題?
總而言之 , IBC 解決了區塊鏈的孤島困境以及交互有限的問題 。區塊鏈之間的互操作性對于實現最大的價值增長是必要的 。
每個區塊鏈都服務于一個或多個專有用例 。如果這些用例不能跨多個區塊鏈加以利用 , 則會嚴重限制它們的實用性 ?;ヂ摼W帶來的突破是信息可以輕松地在世界不同地區輕松流動 。同樣 , 不同區塊鏈的效用也需要跨多個平臺自由訪達 。
例如 , 用戶可能想要利用不同區塊鏈提供的隱私保護屬性 。區塊鏈之間的互操作性可用于實現這些用例甚至更多功能 。
IBC 不僅解決了互操作性問題 , 還同時實現了信任最小化、安全性、可擴展性和通用性 。
作為應用開發者應該如何使用 IBC?
【IBC 的工作原理是什么 ibc是什么意思】Cosmos SDK 的模塊化特性使開發者不必關心一些抽象層 , 例如輕客戶端、連接、證明的驗證等 。對于開發者來說 , 最需要熟悉的需求和功能是通道和端口 。有關 IBC 的更多詳細信息 , 可以參考 Cosmos 開發者門戶 。
- 軍犬會練習的高難度的作戰技巧 k9是什么意思
- 哈爾濱流傳的順口溜 哈拉少什么意思
- 暴雪的哪些游戲比較熱門
- 紅樓夢的故事梗概是什么 《紅樓夢》的故事梗概是什么
- 描寫聲音大的句子有哪些
- 風云變幻的近義詞是什么
- 渺小的近義詞是什么
- 鐵皮石斛的種法有哪些 鐵皮石斛怎么種
- 探索的近義詞有哪些內容
- 光字不是獨體字,是上下結構的字 光字是獨體字嗎
