Ethereum Sharding
為何引入 Ethereum Sharding
為了解決擴展性問題,Ethereum作為一個支持智能合約和去中心化應用(DApps)的開源區塊鏈平台,隨著用戶數和交易量的增加,面臨著嚴重的擴展性問題。為解決這一問題,引入了分片技術,即將一個大的資料表或交易集分成許多小片,存儲在不同的節點上,從而減輕每個節點的負擔,提高搜尋和處理的速度。資料庫中常用的這一技術,在區塊鏈領域同樣具有巨大的潛力。
Ethereum Sharding 的革命意義
Ethereum Sharding(分片技術),顧名思義,即將Ethereum網絡分割成多個更小、更易於管理的部分,每一部分被稱為一個「分片」。這種分割不僅能夠減輕單個節點的負擔,更重要的是,它允許這些分片同時處理交易和智能合約的執行,從而大幅提升整體網絡的處理能力和效率。
從資料庫領域借鑒而來的分片技術,在Ethereum的應用中展現出了獨到的價值。它將Ethereum的單一、集中式的工作負荷轉變為分布式處理系統,每個分片獨立處理自己的交易集,實現了資源的最優配置和利用。
Ethereum Sharding 的挑戰
跨片通信
分片環境下,不同的分片需要相互通信來處理跨分片的交易或合約調用。確保這些通信的高效和安全是一個重大挑戰,需要複雜的協調和同步機制。
數據一致性
保證每個分片的數據一致性和最終一致性是實現分片的一個關鍵挑戰。系統必須確保即使在分片環境下,所有用戶也能夠看到一個一致的交易歷史和網絡狀態。
安全性問題
分片可能會降低網絡的整體安全性,因為攻擊者可能只需要取得單個分片的控制權即可損害整個網絡。為了維持安全性,開發者需要設計複雜的共識機制和驗證過程來抵抗攻擊。
網絡分割和平衡
分片引入了網絡資源的分割問題,包括計算能力和存儲。合理分配和平衡這些資源,以避免某些分片成為瓶頸,是一個重要的技術挑戰。
智能合約的復雜性
在分片環境中,智能合約的執行和管理變得更加複雜。開發者需要考慮合約如何跨分片操作,以及如何處理跨分片調用和狀態管理。
升級和維護
分片架構的引入增加了系統的複雜性,這意味著升級和維護將變得更加困難。實現平滑升級而不中斷服務或影響網絡的安全性是一個重要挑戰。
Ethereum Sharding 所需的技術支持
跨片通信機制
- 技術概述:允許不同的分片之間交換信息和進行交易,是分片技術能夠實際運作的基礎。它涉及到如何在保證安全和效率的前提下,使得位於不同分片的數據和智能合約能夠相互作用。
- 發展背景:隨著分片概念的提出和Ethereum 2.0的計劃進行,跨片通信成為了研究的重點。Vitalik Buterin 和 Ethereum基金會的研究者們在2018年左右開始著手於Ethereum 2.0的設計,其中跨片通信是核心議題之一。
- 當前狀況:Ethereum基金會和全球的開發者社區正致力於解決跨片通信的技術挑戰,通過多個研究團隊和開發小組合作推進。
分片管理和負載平衡
- 技術概述:指的是動態調整和管理分片的數量及其節點組成的過程,以確保網絡的負載均衡和高效運作。
- 發展背景:隨著分片技術的提出,如何管理和優化這些分片的運作成為了一個新的研究領域。這包括了如何根據網絡狀態和需求來增加或減少分片數量,以及如何在分片間分配節點和資源。
- 當前狀況:這一技術的研究和開發同樣由Ethereum基金會及其合作夥伴進行。不同的研究團隊正在探索各種算法和機制以實現有效的分片管理和負載平衡。
數據一致性和狀態最終性
- 技術概述:確保在分片環境下,不同分片的數據能夠保持一致,並且交易一旦被確認,其結果能夠被整個網絡所接受和不可逆轉。
- 發展背景:這是分布式系統研究中的一個基本問題,但在分片區塊鏈中尤其重要。Ethereum 2.0的規劃和開發過程中,數據一致性和狀態最終性被置於核心地位。
- 當前狀況:由於這些問題的復雜性,Ethereum社區和其他區塊鏈研究者正通過多種途徑探索解決方案,包括使用新的共識機制和改進的數據結構。
節點驗證和安全性
- 技術概述:節點驗證和安全性關注於如何在分片環境中選擇和驗證參與區塊提議和確認的節點,以防止惡意行為對網絡的損害。這包括但不限於使用加密技術和算法來確保驗證者的選擇是隨機且安全的。
- 發展背景:隨著Ethereum從PoW轉向PoS的共識機制,節點的選擇和驗證機制變得更加關鍵。PoS下,持幣量和持幣時間成為節點參與共識過程的資格之一,這對網絡安全性提出了新的要求和挑戰。
- 當前狀況:Ethereum 2.0的研究和開發中,節點驗證和安全性是核心議題之一。Ethereum基金會和社區正致力於開發更高效、更安全的節點選擇機制,以防範中心化風險和增強網絡的抗攻擊能力。
智能合約的兼容性和升級機制
- 技術概述:智能合約的兼容性和升級機制涉及到如何確保在Ethereum平台升級,特別是在實施分片和過渡到PoS後,現有智能合約仍能夠正常運行,並且能夠支持合約的無縫升級。
- 發展背景:隨著Ethereum網絡的演進和技術的發展,需要確保智能合約在不同版本和技術規範下的兼容性。這對於維護開發者和用戶的利益,以及促進Ethereum生態系統的持續發展至關重要。
- 當前狀況:為了解決智能合約的兼容性和升級問題,Ethereum社區提出了多種解決方案,包括代理合約(Proxy Contracts)、智能合約版本控制等。這些方案旨在提供一種機制,使得智能合約能夠在不改變合約地址的情況下進行升級,從而降低升級帶來的風險和複雜度。
目前的情況
分片是指將以太坊區塊鏈分割,使部分驗證者只需負責所有資料中的一小部分。 這原本是以太坊的擴容方式。 然而,二層網路卷軸的發展速度比預期快得多,並且已經提供大量擴容,並且 Proto-Danksharding 實作後將提供更多功能。 這意味著已不再需要「分片鏈」,並且已將其從開發藍圖中刪除。
- from https://ethereum.org/zh-tw/roadmap/ 更新: 2024年3月13日
2024年3月,Ethereum進行了名為Dencun的重大升級,旨在透過一系列Ethereum改進提案(EIP)增強區塊鏈的擴展性、效率和安全性。其中,EIP-4844或proto-danksharding是Dencun升級中的關鍵提案之一,預計將通過降低二層(L2)交易的gas費用,直接惠及Ethereum終端用戶。這次升級被視為自合併以來最重要的更新,將為實現使用層二rollups達到大規模擴展的網絡打下基礎 ["](https://www.techopedia.com/ethereum-upgrade-when-is-it-going-live)。
Ethereum的分片方案不是因為技術壁壘被放棄,而是因為二層網絡解決方案,如Rollups的快速發展,已經有效提供了所需的擴容能力。此外,Proto-Danksharding的實施將進一步增強這些能力。這表示Ethereum的擴容策略已根據技術進步和社區需求進行了調整,而非分片技術本身過時或存在無法克服的技術障礙。這種策略調整反映了對目前和未來區塊鏈擴展需求的實際評估。
二層網路是如何工作的?
正如我們上面提到的,二層網路是以太坊擴容解決方案的統稱,這些解決方案在處理以太坊一層網路以外的交易時,仍能享有以太坊一層網路穩健的去中心化安全性。二層網路的獨立區塊鏈擴展了以太坊。那麼它是如何運作的?
市面上有各種類型的二層網路,各有各的權衡取捨及安全模型。二層網路分掉了一層網路的交易負荷,使一層網路不再那麼擁擠,可擴展性變得更高。
卷軸
卷軸將數百筆交易捆綁打包(或稱「匯總」)成單筆交易,並發佈到一層網路。這讓卷軸中的所有人共同分攤了一層網路上的交易費,也降低了每位使用者須負擔的費用。
卷軸交易會在一層網路以外執行,但交易資料會提交到一層網路。透過將交易資料提交至一層網路,卷軸繼承了以太坊的安全性。這是因為一旦資料上傳至一層網路,要還原卷軸交易就得還原整個以太坊。目前有兩種不同的卷軸:樂觀卷軸與零知識卷軸 - 它們的主要差異就在於將此交易資料提交至一層網路的方式。
Danksharding
Danksharding 可讓以太坊成為真正可擴容的區塊鏈,但需要進行一些協定升級才能實現這一目標。 Proto-Danksharding 是該過程中的一個中間步驟。 兩者的目標都是讓二層網路上的交易對使用者來說盡可能便宜,並且應該將以太坊擴容到每秒處理 >100,000 筆交易。