以太坊分片跨鏈間資訊系統詳解

買賣虛擬貨幣
這篇文章透過提出對塊有效性和分叉選擇規則的更改,概述了協議內跨分片訊息傳遞系統。 這是CBC Casper分片提案的一部分,但可以輕鬆應用於Eth2.0的後續階段。 對此的描述可以在CBC Casper草案第3部分4.6中找到。1.目標

Eth2.0在協議外支援跨分片訊息傳遞,這意味著使用者必須手動執行一些操作才能傳遞跨分片訊息。 該協議處理從分片鏈到信標鏈的交易收據的傳遞,並且使用者必須在引用該收據的接收者分片上建立交易。

目的是要有一個協議來處理跨分片訊息的端到端傳遞,在該協議中,使用者只需要在第一條分片鏈上生成一個事務即可。

2.提案

2.1.區塊結構

區塊現在包含2個新日誌,每個都包含一個用於傳送訊息(在此區塊中)和已接收訊息(在此區塊中)的日誌。

2.2.訊息

訊息是包含以下內容的物件:

- sender_shard_ID
- recipient_shard_ID
- final_destination_shard_ID
- target_block on the recipient shard
- blocks_to_live parameter
- payload_tx

任何跨分片訊息都必須進行2跳-分片A到信標鏈,信標鏈到分片B。sender_shard_ID和receive_shard_ID用於特定跳,而final_destination_shard_ID標識分片B。

可以在高度為(target_block)+1到高度(target_block)+ blocks_to_live的接收方分片中的塊中接收訊息。

在上圖中,target_block為b2,blocks_to_live為2。此訊息只能在塊b3和b4中接收。

2.3.區塊有效性和分叉選擇

需要保持傳送和接收的原子性;要麼訊息在傳送方shard中傳送並在接收方shard中接收(最終),要麼訊息不會出現在任何地方。

我將跳過一些顯而易見的訊息,例如:每個訊息只能接收一次,鏈只能接收發給自己的訊息,等等。

2.3.1.分片鏈

分片鏈分叉選擇遵循信標鏈叉選擇,並且這些修改強制執行send-receive的原子性:

1. 如果信標鏈傳送分片某條訊息,則target_block在分片鏈上的分叉中選擇。
2. 如果信標鏈從分片接收到某些訊息,則發件人塊位於分片的分叉選項中。
3. 如果信標鏈在到期時仍未收到分片鏈訊息,則發件人的區塊在分片中將成為孤塊。
4. 任何尚未透過blocks_to_live到期接收到尚未收到的訊息的分片鏈塊都是孤塊。

下圖說明了第一條規則:

下圖說明了第二條規則:

2.3.2.信標鏈

信標鏈塊有效性規則強制將塊中接收的訊息立即重定向併傳送到最終目的地。 如果訊息在區塊的接收日誌中,則該訊息還必須出現在區塊的傳送日誌中,並帶有:

· sender_shard_ID標識信標鏈
· receive_shard_ID作為接收到的訊息的final_destination_shard_ID
· 收件人分片上適當的target_block和blocks_to_live

由於分片鏈分叉選擇取決於信標鏈分叉選擇,因此,信標鏈分叉選擇必須遵循以下規則,以避免分片混亂

信標鏈不能從分片的一個分叉傳送/接收,也不能從分片的衝突分叉傳送/接收。(“傳送到fork”指包含目標塊的fork)

該分叉選擇規則的目的是避免出現以下情況:

3.訊息如何在分片之間傳輸?

由於驗證者的分佈方式,訊息自然可以從信標鏈傳送到分片/從分片傳送到信標鏈:

· 從信標鏈到分片鏈的訊息會被分片上的所有驗證者看到,因為它們也是信標鏈上的驗證者。 分片鏈上的驗證器還具有執行分叉選擇的所有必要資訊。

· 從分片傳送到信標鏈的訊息由相應的分叉連結委員會收集,幷包含在信標鏈的交叉連結資訊中。 重要的是要注意,並非所有信標鏈驗證器都可以訪問執行信標鏈分叉選擇和區塊有效性規則所需的資訊。 要求是,如果違反了規定的規則,分片鏈上的驗證者中至少有一個提供欺詐證據。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;