每日最新頭條.有趣資訊

跨鏈“戰事升級”:迅雷鏈如何更好地跨鏈、打造信任協作?

作者丨LuLu

數據孤島、信息孤島,對於區塊鏈行業而言已不再是新鮮名詞。正如大家所知道的,目前大部分鏈與鏈之間採用的是“煙囪式”的建設模式,每條鏈都是獨立、垂直、封閉的體系,數據本身蘊藏的信息和價值無法自由快速流通,生態無法對接,嚴重製約了區塊鏈行業的整體發展。

因此,打破不同區塊鏈間通信壁壘的需求層出不窮,解決區塊鏈網絡互通問題成為了區塊鏈技術發展的的新趨勢。

2019 年 6 月 30 日,“鏈間通信,鏈接未來”迅雷鏈技術沙龍在深圳舉辦,來自:

迅雷鏈開放平台研發負責人 張慧勇

迅雷鏈底層研發工程師 李海友

中山大學數據科學與計算機學院教授 鄭子彬

迅雷鏈開放平台產品負責人 馬雙陽

以區塊鏈在通信領域的技術突破為基礎,解讀如何利用 P2P 網絡構建互聯、互通、互信的通信網絡,迅雷鏈如何利用跨鏈架構實現 TPS 拓展,並結合迅雷鏈的平台與生態,為開發者提供高可用的實踐經驗。

1

跨鏈架構的設計與思考

當下,全球正在跑步進入“區塊鏈 3.0”時代,區塊鏈越來越偏向服務於實體行業,注重在各行各業的落地應用,提供低成本的信任基礎設施。

但是,TPS 低、交易確認不及時、鏈間價值無法傳遞以及安全性存疑等問題一直是區塊鏈落地的“攔路虎” 。對此,迅雷鏈的“同構多鏈”框架應運而生。

所謂同構多鏈框架,顧名思義就是有多條鏈,每條鏈上運行的程序是一樣的。不同用戶的請求會發到不同的鏈上進行處理。單個節點只需負責單一鏈上的相關數據,不僅對存儲的需求變小,同時性能得到了極大提升。而為保證系統的安全穩定,迅雷鏈利用 PBFT 的確定性特性完成鏈間通信。並支持動態擴鏈,為以後的擴展提供良好的基礎。

如下圖所示,為多鏈架構示意圖。左邊不同的交易進來,通過接入層手心把它做一個鏈的分配,相當於是做鏈的路由。不同的交易會進入不同的鏈,首先看這筆交易的 From 账號在哪一條鏈, 若有跨鏈處理需求 ,則通過 Zone 拷貝鏈間信息 。其中,MetaChain 支持動態擴鏈,解決下發新的路由配置更新到接入層上,在不同的鏈之間同步鏈間信息以及每條鏈的信息。

那麽,在此架構上,如何進行跨鏈通信呢?

如下圖所示,迅雷鏈會對交易進行分組,確定這條鏈上的交易。通過 Merkel 證明,將發往每條鏈的信息生成交易證明 。通 Relay node 把信息發到鏈裡,這不僅是利用流程把跨鏈信息轉移過去,仍然還需要利用共識算法。

PBFT 達成共識的過程分為三個階段:準備前,準備和提交。共識過程是:

準備前階段:節點為從客戶端收到的請求分配提議編號,然後發出預準備消息以廣播給其他節點 ;

準備階段:其他節點收到預準備消息後,檢查消息的有效性。如果檢查通過,它會向其他節點發送準備消息,並帶來自己的 ID 信息,並從其他節點接收準備信息。接收準備消息的節點也檢查消息的有效性,並且在整個網絡中驗證的節點中至少有 2/3 實際上將進入就緒狀態 ;

提交階段:向整個網絡的所有節點廣播進入就緒狀態的消息,然後所有節點投票,並且在投票數達到 2/3 後消息通過。

另外,在算法裡很多地方要求三分之二的節點投票。假如三分之一以上的節點不在線或者產生惡意的行為,這會導致 PBFT 整體算法陷入停滯的狀態。因此迅雷鏈引入了 DPoA 避免 PBFT 的停滯可能性。

首先從 150 萬個節點中選擇具有穩定在線,平滑傳輸和良好性能的高質量節點,並集中到另一個池中。然後使用 DPoA 算法從候選池中選擇一定數量的節點,以形成整個鏈的計費網絡。這些節點定期輪換並重新選舉,以防止會計節點被外界暴露和攻擊。

迅雷鏈通過創新多鏈架構達到百萬級 TPS ,為將來區塊鏈應用落地打下良好的基礎,同時提供低成本上鏈環境,通過開放平台提供豐富的業務組件,方便商業用戶接入。

2

P2P 網絡的原理與應用

P2P 網絡是去中心化系統的基礎組件,應用在多個去中心化系統中,包括 eMule、ethereum、迅雷鏈文件系統 TCFS 等。典型的區塊鏈分為基礎層、核心層和應用層,P2P 網絡正是位於區塊鏈的基礎層,為區塊鏈服務。

P2P 網絡協議有很多種,傳統 BT 下載類應用常用分布式哈希表 (DHT) 算法,具體的就是 Chord,Kademlia 算法。

Chord 算法

Chord 算法是最為經典的實現。網絡中每個節點分配一個唯一 ID,可以通過機器的 MAC 地址做 Sha1,是網絡發現的基礎。

假設整個網絡有 N 個節點,並且網絡是呈環狀。兩個節點間的距離定義為每個節點會存儲一張路由表 (Finger 表),表內順時針按照離本節點 2、4、8、16、32.……2i 的距離選定 log2N 個其他節點的 IP 信息來記錄。

存儲方面:數據被按一定規則切割,每一份數據也有一個獨立 ID (查詢 Key),並且和節點 ID 的值域是一樣的。然後查找節點,如果存在和數據 ID 一樣的節點 ID ,則將這份數據存在該節點上;如果不存在,則存儲到離該數據 ID 距離最近的節點上。同時,為了保證數據的可靠性,會順時針往下找 K 個冗余節點,存儲這份數據。

查詢方面:先從自己的路由表中,找一個和數據 ID 距離最近、並且存活在網絡中的節點 Next。如果該節點的 ID 巧合和數據 ID 相等,則查詢成功。如果不相等,則到 Next 進行遞歸查找。一般或需要經過多次查詢才能找到數據所在的節點,而這個次數是可以被證明小於等於 log2N 的。

Kademlia 算法

Kademlia 算法其實是在 Chord 上做的優化。主要是兩個點:

用二進製 (32/64/128) 表示一個節點的 ID,兩節點的 ID 異或運算得到節點間的距離。

每個節點保持的路由信息更豐富,同樣是將整個網絡按照劃分成 log2N 份,在 Chord 中,是保持 log2N 個路由節點,但在 Kademlia 裡面,是保存了 log2N 個隊列。每個隊列長度為配置值 K,記錄網絡中對應節點區域的多個節點,並且根據活躍時間對這些節點進行換入換出。

與 Chard 相比,Kademlia 算法一方面方便進行網絡劃分,節點按照二進製中每一 bit 的 0 或 1 建成一棵二叉樹。另一方面可以使得節點查詢更迅速。從分割情況可以得知,最壞情況不會差於 Chord,但保存更多的節點使得命中概率更高。另外隊列中根據活躍時間進行換入換出,更有利於在 P2P 這種節點變更頻繁的網絡中快速找到有效的節點。

在 P2P 網絡應用上,最典型的例子是比特幣以及以太坊。

比特幣是沒有層次、無結構的去中心化網絡。Bootstrap 使用 dns-seed 和硬編碼 seed;有 upnp,但沒做打洞;交易泛洪傳播,也就是病毒式傳播;節點不斷向其他節點尋找更近的節點並記錄。而值得一提的是,比特幣為提高區塊及交易的傳播速度,使用了加速網絡,並且不止一個。通過一定中心化的節點協助區塊的傳播。

相比之下,以太坊則不太一樣,使用了結構化的去中心化網絡,用 Kademlia 優化網絡的拓撲結構。其交易以及區塊的傳遞仍然是泛洪傳播,系統中每個節點都要存區塊數據。同樣只有 upnp,沒有做打洞。Kademlia 做了一定的優化,節點加入時,find_node 對象不是自己,而是隨機目標 ID。而因為使用了 Uncle Block 的策略,區塊的浪費程度更低,以太坊沒有加速網絡。

而相對於比特幣和以太坊沒有做打洞,迅雷鏈 TCFS 在 P2P 網絡中進行了不同的探索。TCFS 是為區塊鏈而生的高可用網絡存儲系統。可以有效避免其他基於區塊鏈的文件系統,在存儲文件後,文件的有效性要通過數據提供方時刻關注,去檢查數據保存是否靠譜,以及網絡過程中安全性是否足夠的問題,保障迅雷鏈文件系統的安全性。

TCFS 設置了冗余編碼切片存儲和文件自愈機制,以實現高效率和高可用性;採用 Merkle-DAG 管理文件信息,建立信任機制,保證存儲高可靠;建立權益保護和授予機制,僅文件擁有者和被授權者通過令牌才可下載。

此外,迅雷鏈文件系統 TCFS 結合了打洞穿透和轉運站 Relay 結合的方案,普通的用戶節點、邊緣節點和骨乾節點組成強大的 Relay Network。連通性達到 99% 以上的同時,還達到了性能和成本的最佳平衡。

3

區塊鏈通信產品設計的 4 個核心模塊及 5 大特性

區塊鏈通信網絡主要面對並需要解決的是用戶隱私、數據丟失、數據所有權、價值歸還四個問題。而對於這幾個方面,區塊鏈通信網絡產品該如何設計?

區塊鏈通訊產品設計的核心模塊分為四部分:

分布式存儲。文件通過非對稱加密算法加密,加密後單個文件被切分為幾塊分布式地存儲在不同節點伺服器中,只能通過特定私鑰重新組合。

經濟激勵。Token 直接同用戶會員等級掛鉤,有更多 Token 的用戶會被允許來解鎖高級功能、升級會員等。

會話加密。會話唯一 Hash 保證通訊的隱私,安全協議的傳輸是由地址的私鑰進行。進入通信網絡,則需要持有錢包地址的公鑰,同時對私鑰簽名,對所有對話進行非對稱加密。

共識算法。隨著鏈上數據越來越多,而在通訊網絡的場景,會有極其龐大的數據傳輸,如:會話、照片、語音、視頻等,會造成區塊交易的延遲。此時可以採用迅雷鏈 DPoA+PBFT 的共識算法,以此來提高速度。

同時,區塊鏈通信產品設計還要滿足以下特性

絕對匿名:免注冊、無需電話和郵件、不收集通訊錄位置、不暴露 IP ;

運用 DPoA+PBFT 共識算法;

開源可信,區塊鏈通信產品公開特性時所有代碼是公開的,並且提供 SDK、API 接入的方式;

支付體系,如在會話內支付,產生系統費用和付費消息;

去中心化存儲,主要滿足可靠存儲和區塊鏈驗證消息傳輸的環節。

以版權中心搭建解決方案為例。迅雷為中國版權中心推出 DCI 體系標準聯盟鏈提供區塊鏈技術支持,本質是信息傳送的過程,主要是對普通 IP 創作者上傳作品,在他的平台上進行驗證,生成 DCI 碼,迅雷鏈把 DCI 碼通過平台地址進行交易的執行,生成獨有的哈希,通過哈希的方式查看功能信息的,並可以通過哈希分析在雲存儲裡的加密,形成完整的閱讀。

區塊鏈通信網絡應用,目前來說在國內最大的問題是如何擁抱監管。點對點的存儲方式主要是中間沒有中心化機構的管控,假如發送一些非法的信息,還是比較難以受到監管。這種環境在國內需要研究如何把應用跟監管合作,用相對合適的方式打通,使應用得到很好的推廣和普及。

點個在看少個 bug

獲得更多的PTT最新消息
按讚加入粉絲團