Scalability

分片和等離子之間的區別

  • August 13, 2018

乙太坊分片提案和 Plasma 有什麼區別?我知道 Plasma 可以在分片之上執行,但是在範式和技術方面有什麼區別?

分片和 Plasma 的第一階段實施本質上都是通過智能合約與主鏈綁定的側鏈。但是,這些智能合約的職責和側鏈的屬性對於每個項目都是不同的。

Plasma 側鏈有點類似於狀態通道(例如閃電和雷電),因為它們主要使用主鏈來裁決側鏈上的欺詐行為。任何人都可以創建 Plasma 側鏈,它本身可能由子鏈組成,因此可以創建任意數量。

相比之下,分片側鏈的作用更像是對主鏈的擴展,通過定期送出來自其分片的交易的狀態根雜湊。沒有存款來綁定側鏈交易。相反,主鏈上的權益證明流程會從池中分配公證人來驗證固定(SHARD_COUNT)個分片上的塊(稱為排序規則)。

另見:https ://github.com/ethereum/wiki/wiki/Sharding-FAQs#how-does-plasma-state-channels-and-other-layer-2-technologies-fit-into-the-trilemma

上面的答案在分片上已經過時,使用公證人而不是驗證人。請參閱https://github.com/ethereum/wiki/wiki/Sharding-FAQ#how-does-plasma-state-channels-and-other-layer-2-technologies-fit-into-the-trilemma

編輯完上面的文章,又過時了.

另請參閱https://github.com/ethereum/wiki/wiki/Sharding-FAQs#what-might-a-basic-design-of-a-sharded-blockchain-look-like

分片區塊鏈的基本設計可能是什麼樣的?

一個簡單的方法如下。為簡單起見,此設計僅跟踪數據塊;它不會嘗試處理狀態轉換函式。

存在稱為提議者的節點,它們接受分片上的 blob k (取決於協議,提議者選擇哪個k或隨機分配一些k)並創建排序規則,因此它們也充當整理者,因此充當提議者和整理者的代理可以被稱為prolators。排序規則有一個 排序規則標頭,一條短消息,格式為“這是碎片上的 blobk排序規則,父排序規則是 0x7f1e74,blob 的 Merkle 根是 0x3f98ea”。每個分片的整理形成一條鏈,就像傳統區塊鏈中的塊一樣。

還有一些公證人會下載(以確保可用性)並驗證(僅在存在 EVM 的情況下,通過執行數據以確保有效性)分片中的排序規則,它們是隨機分配的,並且每個週期都將它們洗牌到新的分片中通過例如一個隨機信標鏈並在排序規則中對數據的可用性進行投票(假設沒有 EVM,使用 EVM,他們也可以充當執行者並對數據的有效性進行投票)。

信標鏈的隨機性來源是一些可公開驗證的隨機函式,例如 RANDAO 或 BLS 聚合簽名產生的區塊雜湊。前者是首選,因為它更傾向於可用性而不是一致性,並且不需要誠實/不協調的多數假設(即沒有賄賂攻擊或串通多數),而它在機率上需要較低的權益權力恢復鏈,儘管通過使用 n-of-n 委員會可以最大限度地減少這種情況。N-of-n 的意思是,以 3-of-3 為例:“在全球時鐘的每一個滴答聲中,都會為 RANDAO 信標選出一個新的提議者和一個新的 3 人委員會。通過(提案是與最後一個承諾相對應的原像)該提案需要獲得委員會的所有三個簽名。” (來源)。因此,n-of-n 意味著委員會的所有 n 個(或 n 個中的 n 個)成員必須簽署該提案。

然後,委員會還可以檢查這些來自公證人的投票,並決定是否在主鏈中包含排序規則頭,從而建立與分片中排序規則的交叉連結。其他各方可能會質疑委員會、公證人、提議者、驗證者(使用 Casper Proof of Stake)等,例如通過互動式驗證遊戲或通過驗證有效性證明。

一條由所有人處理的“主鏈”仍然存在,但這條主鏈的作用僅限於儲存所有分片的排序規則頭。分片的“規範鏈”是分片k上最長的有效排序規則k鏈,其所有標頭都在規範主鏈內。

請注意,現在在這樣的系統中可以存在幾個“級別”的節點:

  • 超全節點- 完全下載每個分片的每個排序規則,以及主鏈,完全驗證一切。
  • 頂級節點——處理所有主鏈區塊,讓它們“輕客戶端”訪問所有分片。
  • 單分片節點- 充當頂級節點,但也完全下載並驗證它更關心的某個特定分片上的每個排序規則。
  • 輕節點——僅下載和驗證主鏈區塊的區塊頭;不處理任何排序規則頭或事務,除非它需要讀取某個特定分片狀態下的某些特定條目,在這種情況下,它將 Merkle 分支下載到該分片的最新排序規則頭,並從那裡下載 Merkle 證明狀態中的期望值。

引用自:https://ethereum.stackexchange.com/questions/39883