詳解ETH2.0的另一個重要技術特性:分片技術

買賣虛擬貨幣
在這篇文章中,我們將研究eth2.0的另一個重要特性:分片技術。Layer 1 VS Layer 2的可擴充套件性對各種加密貨幣和山寨幣系統的一個常見批評是可擴充套件性。簡而言之,如果加密貨幣和區塊鏈技術將推動明天的DeFi世界發展,它必須能夠支援數十億人。可擴充套件性技術主要分為以下幾類-Layer 1 與Layer 2。· Layer 2可擴充套件性這些是建立在區塊鏈之上的鏈外可擴充套件性解決方案。這裡的想法是讓基礎層保持獨立,並在其上增加額外的架構。該層處理複雜的計算,從而減輕了基礎層的體系結構瓶頸。Raiden和Plasma是Layer 2可擴充套件性的示例,我們將在以後的文章中進行探討。· Layer 1可擴充套件性
在區塊鏈內執行的可擴充套件性技術稱為Layer 1。增加區塊大小和分片是兩種最著名的Layer 1可擴充套件性技術。分片資料庫Sharding database

分片最初是一種技術用於將龐大的資料庫橫向劃分為更易於管理的塊或分片。看這張表:

那麼,您看到這裡發生了什麼嗎?

有一個6行的大型資料庫。透過分解它,我們將它轉換成三個大小可管理的較小分片。這只是透過水平分割槽來實現。要理解這一點,請考慮下面的示例。

看下這張表:

讓我們垂直劃分這個表:

看到了嗎?由於分割槽的關係,表變成了兩個完全不同的表。水平分割槽只會將表更改為具有相同功能的較小表。

同樣的概念也可以擴充套件到區塊鏈,其中鏈的狀態被分割成更小、更易於管理的區塊,稱為分片。

為什麼要使用分片?

加密貨幣最大的問題之一,也是建立以太坊2.0背後的核心原因是可擴充套件性。以太坊目前每秒可以處理少於25個事務,這是相當糟糕的。這種緩慢速度背後的原因是工作證明(POW)共識協議和這些加密貨幣固有的體系結構設計。

ETH 2.0:佇列流程 VS 並行流程

在加密貨幣中進行的大多數交易操作本質上是佇列的。想想交易是如何運作的:

1. 傳送方透過將其傳送到接收方的公共地址來啟動交易。他們使用數字簽名簽署交易。
2. 礦工拿到交易,驗證簽名並檢查傳送方是否有足夠的餘額來完成交易。
3. 之後他們將事務新增到其區塊中。
4. 區塊被新增到區塊鏈,隨後交易透過。

正如你所看到的,整個過程是非常有序的。每一步都取決於前一步的正確完成。隨著網路規模的擴大,這個問題變得更加複雜。

這就是為什麼選擇並行處理可以是更可行的選擇的原因。在本質上,你可以在一個區塊鏈中分解成多個分片,並且可以將它們分解成若干個並行處理。

假設一個網路有三個節點——A、B和C。在佇列模式中,每個節點都必須單獨驗證資料集D。然而使用分片,D將被分解為三個分片D1、D2和D3。它們每個都可以佔用一個單獨的分片並同時處理它們。即使我們只考慮三個分片,並行化絕對可以大大加快程序。

讓我們將其擴充套件到以太坊的大小,以太坊目前有6970個節點。如果以最佳方式執行,則整體吞吐量的提高將是巨大的。Eth 2.0最終將被劃分為1,024個分片,它希望從理論上講這應該使網路吞吐量增加> 1000倍。

· 託管節點的成本

接下來,讓我們看一下可擴充套件性的另一個方面。以太坊是一個對等網路。沒有集中的資料中心。整個網路依賴於節點完成各自的工作。在以太坊中,每個單獨的節點都具有與其他節點相同的許可權和特權。在以太坊中,您可以是一個輕節點,也可以是一個全節點。

輕節點客戶端是下載其系統中區塊鏈的一部分的節點。它可以驗證交易執行,而不必下載和維護整個區塊鏈。

全節點是指連線到已完全下載並定期維護區塊鏈的主網路的任何系統。它們幾乎是以太坊網路的主幹,履行以下職責:

1. 要麼挖掘區塊,要麼確保為每個挖掘的區塊給出正確的區塊獎勵。
2. 完全執行網路的所有共識規則。
3. 確保事務具有正確的簽名,並且區塊的資料格式正確。
4. 最後他們最重要的功能是確保網路中不會出現雙花情況。

問題在於,以太坊全節點必須始終下載並維護整個區塊鏈。這裡的問題是以太坊區塊鏈的資料量非常大,接近有1TB的大小,因此常規節點儲存全部資料變得越來越困難。

那麼,切分在這裡有什麼幫助呢?根據GitHub上的官方Sharding FAQ,關鍵思想是允許以太坊每秒處理10000多個事務,而不必強迫每個節點在硬體裝置上花費數千美元。這就是為什麼分片技術可以很好地解決這個問題。每個節點的工作負載分配顯著減少。

 什麼是以太坊分片?

最後,讓我們看一下分片在ETH 2.0中的工作方式。以太坊區塊鏈的整個狀態稱為“全域性狀態”。該狀態被分解為分片,並且每個分片都有其自己的狀態。這些狀態,分片和全域性根形成Merkle樹。

所以讓我們看看發生了什麼。樹中的每一級都是從上面一級中的一個節點派生出來的。

以太坊2.0分片機制

啟用分片後,將發生以下情況:

狀態被分割成分片。
每個唯一帳戶都屬於一個分片。

為了直觀地瞭解其工作原理,讓我們以Devcon的Vitalik Buterin為例。

想象以太坊已經分裂成成千上萬的島嶼。每個島嶼都能做自己的事。每個島嶼都有自己獨特的功能,屬於該島嶼的每個人(即帳戶)都可以彼此互動,他們可以自由地享受它的所有特徵。如果他們想與其他島嶼聯絡,他們必須使用某種協議。

以太坊2.0透過建立兩個級別的互動來執行此操作。

第一層

分片互動中的第一級是事務組。每個分片都有自己的唯一交易組。

該組進一步細分為事務組標頭和主體。

· 事務組標頭

事務組標頭具有明顯的左右部分。

左側部分包含以下元件:

1. 事務組所屬的Shard ID,在本例中為“43”
2. 狀態前的根,即在將事務放入其中之前該特定分片的根的狀態。
3. 後狀態根是將事務組放入根之後的根狀態。
4. 最後,有一個收據根,用於確認交易組已進入該根。

標頭的右側部分是一組隨機選擇的驗證器,它們驗證分片本身內部的事務。

一層功能

到目前為止,我們已經看到了屬於第一級的元件,讓我們來看看一切如何結合在一起:

每個事務都指定它們所屬的唯一shard ID。
屬於特定分片的事務在該分片中的兩個帳戶之間發生。
級別還透過指定前狀態根和後狀態根來顯示狀態轉換。

第二層

現在,讓我們看一下ETH 2.0的分片的第二層。您在上面的影象中看到的是一個標準的區塊鏈,但是它有兩個根,而不是一個:

狀態根:還記得我們以前的Merkle樹圖嗎?狀態根是整個狀態的根節點。
交易組根:包含在該塊的所有分片內的所有交易組的根節點。

二層功能

該級別充當簡單的區塊鏈,接受交易組而不是交易。
僅當狀態前根與全域性狀態中的分片根匹配時,才接受事務組。此外,交易組中的每個單個簽名都需要進行驗證。
事務組進入該塊後,其全域性狀態根(如該塊中所述)將成為該分片ID的後狀態根。

跨分片通訊

好了,現在您知道分片是如何工作的以及它們的組成。但是以太坊最後需要做的就是讓這些分片成為它們自己的獨立孤島。必須有一種方法,這些分片可以有效地相互通訊。

為了使畫面更清晰,讓我們回顧一下巴特林的島嶼比喻。如果這些島嶼必須蓬勃發展,則需要使用特定的協議彼此有效地進行互動。另外,為了減少通訊負擔和費用,這些孤島必須找出一種僅在需要時進行通訊的方法。

分片通訊的原理相同。以太坊開發人員需要回答某些問題以確保有效的跨分片通訊:

1. 分片如何在提供以太坊網路期望的相同安全性的同時相互通訊?
2. 分片如何在不影響安全性的情況下提供預期的大規模可擴充套件性?

ETH 2.0的跨分片通訊

ETH 2.0的跨分片通訊協議是“receipt paradigm”。

1. 如上所述,集合中的每筆交易都會在分片中生成收據。
2. eth2.0信標鏈將有一個分散式共享記憶體,這些收據將被儲存在那裡。
3. 其他分片可以看到信標鏈內的收據。由於區塊鏈的不可變屬性,他們無法對其進行篡改。
4. 因此,分片將能夠彼此受益而不影響最終性。

跨分片通訊的兩個最大問題是操作複雜性和延遲。讓我們來看看ETH 2.0如何緩解這些障礙。

#1消除複雜性

Vitalik Buterin已經提出了兩個提案,即建立一個完全分片的以太坊,它具有“相對最小的共識層框架”,為開發複雜的智慧合約框架提供足夠的支援。

這些提案將:

1. 將多個任務和責任從單個分片轉移到信標鏈。
2. 確保分片具有自己的唯一狀態和執行。
3. 降低每個分片的複雜性並維護各種網路功能。
4. 分片將具有足夠的功能來建立執行環境,以支援分片,跨分片通訊和其他功能中的智慧合約。
5. 介紹三種新的事務型別-NewExecutionScript,NewValidator和Withdrawal以完成這些任務。

· 研究新的事務型別

NewExecutionScript建立一個可以儲存ETH的執行指令碼。
NewValidator將新的驗證節點新增到系統。
Withdrawal從信標鏈中移除驗證節點。
驗證節點的新增和撤消是透過執行指令碼和接收系統授權的。
這些新的創新將使以太坊能夠進行跨切分通訊,同時利用Layer 2抽象交換所有乙太網並執行智慧合約。
這消除了單個分片的所有複雜操作,並使它們儘可能簡單。

#2通訊延遲

要了解這種延遲是如何發生的,讓我們看看跨分片通訊是如何工作的:

1. Alice想從Shard A傳送令牌到Shard B。
2. 在這個事務中,令牌在Shard A上被燒掉並儲存地址記錄。然後將該值傳送到目標Shard B。
3. 經過一段時間的延遲後,每個單獨的分片都會透過八卦來了解其他分片的狀態根。
4. 一旦分片驗證了交易,Shard B從Shard A恢復token收據。
5. 最後Shard B收到從Shard A傳送的令牌。

可以想象,此過程會導致很多延遲,這會損害使用者體驗並違背ETH 2.0的整個可擴充套件性精神。Vitalik透過給出以下示例解釋了此問題的解決方案:

“…如果Bob在Shard B上有50個令牌,Alice從Shard A向Bob傳送了20個令牌,但是shard B還不知道Shard A的狀態,因此無法完全驗證轉賬,如果Alice的轉賬是真實的,Bob的賬戶狀態暫時變為‘70個令牌’,有能力驗證Shard A和Shard B的節點可以幾乎立即確定轉移的“最終結果”(即一旦在鏈內驗證轉移,Bob的帳戶狀態最終將解析為70個令牌)。

該解決方案提案稱為“透過樂觀收據根進行快速跨分片傳輸”。

一旦轉讓被核實,交易:

如果有效,則變為永久性。
如果沒有,則還原。

分片何時開始工作?

正確執行分片的最關鍵的技術需求之一是權益證明共識演算法。原因是每個單獨的分片將具有原始以太坊鏈的雜湊率的一小部分。但是如果分片包含強大的挖礦池作為其驗證節點,則它可以完全接管系統並集中其操作。

階段0

階段0透過啟動信標鏈啟動POS實現。一旦滿足以下條件,該鏈將啟動其第一個(genesis)區塊:

網路上至少有524,288 ETH被抵押。
至少有16,384位驗證者簽名。

階段1

該階段可以被認為是“分片階段”,將在2021年發生。區塊鏈被劃分為64個分片鏈,這些分片鏈並行執行並不斷相互通訊。到本階段結束時,以太坊應該能夠同時處理64個區塊中的交易。由於分片可以分配工作負載,因此可以大大減少主鏈膨脹。

階段1.5

在此階段,將信標鏈與主工作量證明(POW)鏈整合在一起,以建立新的POS鏈。如前一階段所定義,POW鏈最終將作為64個分片鏈之一存在。

請記住,原始的POW鏈的歷史資料還是存在,但它將像其他分片一樣存在,但不再執行POW共識機制。

階段2

這個階段的細節還沒有完善。但是人們普遍認為,該階段將微調以太坊賬戶,交易,轉賬和在新鏈上無縫執行智慧合約等功能。

ETH 2.0分片:結論

您可以想象,微調無縫分片執行的不同功能非常困難,這就是為什麼以太坊2.0分階段啟動的原因。然而,一旦執行,這將把以太坊帶到前所未有的高度。對加密貨幣的最大沖擊是它缺乏可擴充套件性,這迫使新的協議選擇更集中的方法和機制。然而,透過分片,以太坊將能夠在不影響分散化的情況下顯著擴大規模。

免責聲明:

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

推荐阅读

;