1. 程式人生 > 其它 >礦視界譯文:以太坊2.0的分片是如何工作的?

礦視界譯文:以太坊2.0的分片是如何工作的?

分片絕對是最複雜的以太坊擴充套件解決方案,因此它也被放在了以太坊2.0路線圖中的最後一階段,給開發者充足的時間開發和在生產環境中測試。

什麼是分片?

分片(Sharding)指的是將整個以太坊網路分成許多個小部分(Shards)。每個分片都包含獨立的狀態、完整的賬戶系統和智慧合約。

分片絕對是最複雜的以太坊擴充套件解決方案,因此它也被放在了以太坊2.0路線圖中的最後一階段,給開發者充足的時間開發和在生產環境中測試。

在進入分片的技術細節之前,我們首先需要了解節點在以太坊網路中扮演的角色。節點負責驗證鏈上交易並確保交易都遵守區塊鏈共識規則。要做到這一點,最好的方法就是讓每個節點都保留一份以太坊交易賬本的完整副本,用以驗證交易的真實性和完整性。但是以太坊的鏈上資料一直在快速增長,目前的資料大小已經超過1TB,對於普通人來說儲存完整的資料副本是不切實際的。

以太坊的瓶頸

這就導致了一個大問題:如果以太坊全節點的運營成本過高,運營全節點的人數就會越來越少,網路將更容易受到中心化的影響。

同時,如果每筆交易都需要通過所有節點驗證,那以太坊也將難以實現可拓展性,分片將是這些問題的終極解法。

分片與狀態通道和plasma等拓展解決方案不同的是,分片不會將任何交易資料放到鏈下處理。分片只是將鏈上資料分成很多個部分,節點就不需要處理網路上的所有交易,而只要處理某一個片區的交易。分片也引發了一個討論,分片後還能保障區塊鏈的安全嗎?

分片的優勢

迄今為止,還沒有任何區塊鏈網路可以同時實現以下三個特性:去中心化、可擴充套件性、安全,這被稱為區塊鏈不可能三角。所以,分片可以看做是在這個三難困境前提下,相對犧牲了一部分安全性的情況下,解決以太坊可拓展性的解決方案。

在每一個分片中,將會週期性地隨機挑選出一批公證人(Notaries)用於驗證區塊,相當於PoW鏈中礦工的角色。然後以太坊主鏈上將會有一個委員二次檢驗這些區塊的真實性(Validity)。每個分片的出塊方式和塊之間的排列方式與主鏈是完全一樣的。

每個分片都以默克爾樹的形式與以太坊主鏈相關聯,兩者之間的連結也是加密的。每個分片都可以充當獨立的區塊鏈。每個分片上的使用者都有自己的賬戶餘額,與以太坊主鏈無關,只能用於與用一個分片上使用者間交易。

對於以太坊分片最簡單的理解方式就是,想象以太坊鏈被分裂成數千座島嶼,每個島嶼有自己的特色,也是主權獨立的。如果他們想聯絡其他島嶼,將需要使用某種特定協議。每個分片獨立儲存了該分片上的交易資訊,但是在需要時又可以隨時返回主鏈。

分片的挑戰

雖然分片在理論上聽起來很不錯,但也存在許多潛在的攻擊途徑。一種特定的攻擊是單分片接管攻擊(Single-shard takeover attack)。這種攻擊的方式是,攻擊者接管了某一分片中的大多數出塊者,建立了一個提交不實交易資訊的惡意分片。

以太坊核心開發人員提出了隨機抽樣檢查的應對方法,這個解決方案目前還在積極開發中。

分片在權益證明鏈上比在工作量證明鏈上更容易實現。因為權益證明鏈上本來就已經有活躍的驗證者,這些驗證者可以被進一步隨機指派到不同的分片中去。而在工作量證明中則無法阻止礦工向特定分片貢獻算力。如果礦工可以選擇他們想要驗證的分片,他們就可以聯合起來共謀作惡。


作者 | district0x

翻譯&校對 | 林芒果

本文由礦視界(奇蹟摩爾)翻譯整理編輯,如需轉載,請標明出處