主持人:根據資料顯示,beacon chain(信標鏈)與分片之間是通過一種稱為交聯(Crosslink)的設計進行周期性通信的,能否給大家通俗地解釋一下這個設計?
楊鎮:
通俗肯定是做不到了,我嘗試盡量簡單地解釋一下。crosslink 數據中包含了以下幾個字段:分片號、信標鏈上的父區塊狀態根、開始 epoch、結束 epoch 和分片鏈上的數據狀態根。這里說的狀態根,就是狀態樹的根節點哈希(如果你還不明白這是什么意思,那你大概需要去補補 Eth 1.0 的課了)。epoch 是一個投票周期,大約是 6.4 分鐘,也就是 64 個 slot 周期。這樣就很容易理解了:crosslink 其實就是某個分片在某個 epoch 結束時的數據狀態版不過這里還需要多解釋一點兒關于信標鏈的設計。crosslink 是 attestation data(大概可以譯為“見證數據”,也就是由驗證者提交的用來證明分片鏈狀態的數據)的一部分,attestation data 則是信標鏈中區塊數據的重要組成部分,所以實際上crosslink 也就是信標鏈中區塊數據的一部分,是用來表示系統的整體狀態和用來支持跨片交易操作的關鍵數據。
阿劍:
應該可以簡單解釋成:單分片定期將自己的狀態證明存到信標鏈上,作為跨分片通信所需的密碼學證明材料。
向丹:
再通俗點是否可以理解為:分片時不時需要在信標鏈上報告狀態,crosslink就是分片之間的通關密語。7異步交易VS同步交易
主持人:Vitalik用火車旅館問題來解釋異步transaction,并且介紹了一個稱為“猛拉”(yank)的解決方案,可以大致講講火車旅館問題,以及這個解決方案的原理嗎?
張衛家:
火車旅館問題的場景是用戶想要購買火車票并預訂酒店,并且希望確保操作是原子的,要么保留成功,要么兩者都不成功。如果火車票和酒店預訂應用程序在同一個分片上,這很容易:創建一個嘗試同時進行預訂的事務,要么兩個預留成功, 要么拋出異常并恢復所有內容。但是,如果兩者都在不同的分片上,那就不那么容易了;Vitalik介紹的解決方案是讓合同本身可以跨越碎片移動;其中合約可以從一個分片“拉”到另一個分片,允許通常駐留在不同分片上的兩個合同臨時移動到同一分片,然后進行同步操作。
主持人:說到異步交易,自然還有同步交易的概念,Vitalik提到會通過類似Plasma的方法來實現,阿劍老師為我們講講這大概是個什么樣的思路?
阿劍:
關于同步型的跨分片交易,目前資料比較少。包括 Vitalik 說的用 Plasma 方式來實現我也不了解。不過我聽說過 Viltaik 提出過的另一種同步跨分片交易的模式,叫 Merge Block。大意是讓 A 分片的區塊附帶狀態 witness,讓 B 分片的驗證者可以收到區塊及其 witness(技術上來說,B 分片的驗證者變成了 A 分片的無狀態客戶端),然后可以將 A 分片的該區塊與 B 分片的區塊同時執行。另一種模式是在給定時間內讓某分片變成主分片,在該段時間內該分片的驗證者可以任意讀寫其它分片,即其他分片的驗證者也優先執行該分片的區塊,這樣也能創造同步執行。
楊鎮:
補充一句,貌似是用 sparse merkle tree 來做,所以說類似于 plasma(看不懂的童鞋就無視我吧……)8狀態租賃:實現起來未必容易
主持人:Phase 2階段對于以太坊2.0平臺而言是極其重要的一個階段,其重新引入了智能合約,每個分片將基于eWASM管理一個虛擬機,此外,狀態租賃方案也可能會被引入,這將會帶來什么影響嗎?
阿劍:
eWASM 和狀態租賃方案的情形我都沒有跟進,一無所知。
但狀態租賃會明顯面臨收費問題,不是個簡單的問題。有一位非常棒的開發者叫 Alexey Akhunov,就在做狀態租賃的研究和 EIP,大家可以關注一下。
張衛家:
此文由
中國比特幣官網 編輯,未經允許不得轉載?。?a href="http://m.huohuxiazai.com/">首頁 > btc是什么 » Eth 2.0 會成為第一個從 PoW轉PoS 的公鏈嗎?丨SheKnows第五期