• APP內打開
    風險提示:防范以虛擬貨幣/區塊鏈名義進行的非法集資風險。 ——銀保監會等五部門

    吐槽君烤仔 | 波卡為什么絕口不提跨鏈延遲?

    白話區塊鏈 2021-02-22 19:45:34
    微信分享

    掃碼分享

    探尋波卡諱莫如深的跨鏈延遲究竟是多少?

    作者:烤仔 / 來源:吐槽君烤仔

    image.png

    在烤仔的上一篇文章《吐槽君烤仔 | 波卡從“萬鏈互聯”到“One鏈Who連”》中,我們指出波卡的跨鏈延遲不足以支撐起波卡生態所構筑的愿景,最終會使得波卡的泡沫破裂。在本期文章中,我們來解構波卡的協議設計,來探尋波卡諱莫如深的跨鏈延遲究竟是多少
    根據波卡的官方技術文檔,在波卡的架構中,有三個關鍵角色:提名人(Nominator),驗證人(Validator),收集人(Collator)。驗證人大致相當于 Relay Chain (相當于核心鏈)的 PoS 全節點。提名人負責選舉驗證人。收集人大致相當于 ParaChain (相當于側鏈)的全節點。這里我們要分析的,就是驗證人和收集人的關系。下面,我們用核心鏈、側鏈指代波卡中的 Relay Chain 和 ParaChain。

    image.png 

    為了讓平行鏈上的狀態可靠地同步到核心鏈上,收集人(側鏈全節點)每生成一個區塊,就要相應的產生一個有效性證明 (Proof of Validity)區塊。驗證人(核心鏈全節點)通過側鏈開發人提供的算法驗證這個有效性證明區塊。如果驗證通過,就把側鏈區塊頭及相關元數據寫入核心鏈中,相當于側鏈的狀態同步到了核心鏈上。

    在官方默認方案中,這個有效性證明區塊需要包括:所有交易內容、處理每筆交易時讀到的數據(如轉賬發送人余額)及其證明、處理每筆交易時寫入的數據(如更新轉賬發送人余額)及其證明。這樣,驗證人(核心鏈全節點)就不需要存儲任何側鏈的狀態,只需要重新執行一遍交易就可以了。但在 CPU 開銷上,驗證人(核心鏈全節點)仍要執行側鏈的每一筆交易。顯然,驗證人(核心鏈全節點)不可能同時執行每一個側鏈的每一筆交易。波卡的方案是,驗證人同時只驗證一個側鏈,但隨著時間的推移,同一個驗證人會在不同側鏈之間切換,頗有些巡視組的感覺。

    但是,如果波卡有 100 個側鏈,就意味著同一時間一個側鏈只有 1/100 個驗證人。如果這些驗證人恰好都是壞人,就可以與這個側鏈的一個收集人(側鏈全節點)合謀,在側鏈執行上弄虛作假,并且同步到主鏈上。這種情況下,側鏈的安全性將毫無保證。于是,波卡設置了“賞金獵人”和“隨機巡視”的機制。賞金獵人維護一個側鏈的全節點,當虛假的側鏈區塊被提交到核心鏈上時,賞金獵人可以通過舉報獲得賞金。除了賞金獵人之外,波卡還會隨機秘密分配驗證人(核心鏈全節點)來檢察。

    這個方案非常像以太坊里面 Optimistic Rollup 的思路。一些人負責將側鏈的數據提交到主鏈上,另外一些人負責監督和舉報錯誤提交。這個思路最大的問題是,為了留出充足的舉報時間,從側鏈區塊提交核心鏈到側鏈區塊被核心鏈接收需要相當長的時間。在 Polkadot 原始白皮書(polkadot.network/PolkaDotPaper.pdf)提到的以太坊跨鏈方案中,以太坊跨入波卡需要半個小時,而波卡跨回以太坊需要一個小時。白皮書特別提到,波卡跨回以太坊之所以需要一個小時時間,是為了給舉報留足時間。雖然白皮書沒有明確說明核心鏈與側鏈之間的跨鏈延遲,但可以推斷,這段時間應當也是十分鐘級到小時級。這意味著,一個波卡側鏈發出的跨鏈消息,需要等待幾十分鐘時間,然后才能被消息接收方收到和處理。

    image.png 

    如果波卡是一個聯通不同區塊鏈的解決方案,花幾十分鐘時間將資產從以太坊跨至其他鏈是可以接受的。然而,在今天的波卡生態中,每個 DeFi 應用和基礎設施成為了一個側鏈,在以太坊上的合約間交互、在波卡這里變成了長達幾十分鐘的跨鏈

    當然,波卡可以選擇一個激進的方案,放棄安全性換取效率:為每一個區塊留出極小的錯誤證明 (proof of fraud) 時間窗口,甚至不給錯誤證明留時間。換句話說,就是拋棄錯誤證明這個安全性基石。這樣,雖然可以顯著地降低跨鏈延遲,但也是在自掘墳墓。跨鏈延遲一小時的波卡或許還有一定的價值,毫無安全性可言的波卡就只是空氣了。

    最終,我們的結論是,在跨鏈時間延遲上,波卡平行鏈(側鏈)與以太坊 Layer 2 相比并沒有優勢。以太坊 Layer 2 做不好的事情,波卡一樣做不好。

     

     

    下載白話區塊鏈APP

    區塊鏈世界入口第一站,人人都能看懂的區塊鏈;24 小時熱點實時追蹤。

    毛片免费看