時(shí)間:2023-07-21|瀏覽:238
分片(Sharding)指的是將整個(gè)以太坊網(wǎng)絡(luò)分成許多個(gè)小部分(Shards)。每個(gè)分片都包含獨(dú)立的狀態(tài)、完整的賬戶系統(tǒng)和智能合約。
分片絕對(duì)是最復(fù)雜的以太坊擴(kuò)展解決方案,因此它也被放在了以太坊2.0路線圖中的最后一階段,給開(kāi)發(fā)者充足的時(shí)間開(kāi)發(fā)和在生產(chǎn)環(huán)境中測(cè)試。
在進(jìn)入分片的技術(shù)細(xì)節(jié)之前,我們首先需要了解節(jié)點(diǎn)在以太坊網(wǎng)絡(luò)中扮演的角色。節(jié)點(diǎn)負(fù)責(zé)驗(yàn)證鏈上交易并確保交易都遵守區(qū)塊鏈共識(shí)規(guī)則。要做到這一點(diǎn),最好的方法就是讓每個(gè)節(jié)點(diǎn)都保留一份以太坊交易賬本的完整副本,用以驗(yàn)證交易的真實(shí)性和完整性。但是以太坊的鏈上數(shù)據(jù)一直在快速增長(zhǎng),目前的數(shù)據(jù)大小已經(jīng)超過(guò)1TB,對(duì)于普通人來(lái)說(shuō)保存完整的數(shù)據(jù)副本是不切實(shí)際的。
以太坊的瓶頸
這就導(dǎo)致了一個(gè)大問(wèn)題:如果以太坊全節(jié)點(diǎn)的運(yùn)營(yíng)成本過(guò)高,運(yùn)營(yíng)全節(jié)點(diǎn)的人數(shù)就會(huì)越來(lái)越少,網(wǎng)絡(luò)將更容易受到中心化的影響。
同時(shí),如果每筆交易都需要通過(guò)所有節(jié)點(diǎn)驗(yàn)證,那以太坊也將難以實(shí)現(xiàn)可拓展性,分片將是這些問(wèn)題的終極解法。
分片與狀態(tài)通道和plasma等拓展解決方案不同的是,分片不會(huì)將任何交易數(shù)據(jù)放到鏈下處理。分片只是將鏈上數(shù)據(jù)分成很多個(gè)部分,節(jié)點(diǎn)就不需要處理網(wǎng)絡(luò)上的所有交易,而只要處理某一個(gè)片區(qū)的交易。分片也引發(fā)了一個(gè)討論,分片后還能保障區(qū)塊鏈的安全嗎?
分片的優(yōu)勢(shì)
迄今為止,還沒(méi)有任何區(qū)塊鏈網(wǎng)絡(luò)可以同時(shí)實(shí)現(xiàn)以下三個(gè)特性:去中心化、可擴(kuò)展性、安全,這被稱為區(qū)塊鏈不可能三角。所以,分片可以看做是在這個(gè)三難困境前提下,相對(duì)犧牲了一部分安全性的情況下,解決以太坊可拓展性的解決方案。
在每一個(gè)分片中,將會(huì)周期性地隨機(jī)挑選出一批公證人(Notaries)用于驗(yàn)證區(qū)塊,相當(dāng)于PoW鏈中礦工的角色。然后以太坊主鏈上將會(huì)有一個(gè)委員二次檢驗(yàn)這些區(qū)塊的真實(shí)性(Validity)。每個(gè)分片的出塊方式和塊之間的排列方式與主鏈?zhǔn)峭耆粯拥摹?p>每個(gè)分片都以默克爾樹(shù)的形式與以太坊主鏈相關(guān)聯(lián),兩者之間的鏈接也是加密的。每個(gè)分片都可以充當(dāng)獨(dú)立的區(qū)塊鏈。每個(gè)分片上的用戶都有自己的賬戶余額,與以太坊主鏈無(wú)關(guān),只能用于與用一個(gè)分片上用戶間交易。
對(duì)于以太坊分片最簡(jiǎn)單的理解方式就是,想象以太坊鏈被分裂成數(shù)千座島嶼,每個(gè)島嶼有自己的特色,也是主權(quán)獨(dú)立的。如果他們想聯(lián)系其他島嶼,將需要使用某種特定協(xié)議。每個(gè)分片獨(dú)立存儲(chǔ)了該分片上的交易信息,但是在需要時(shí)又可以隨時(shí)返回主鏈。
分片的挑戰(zhàn)
雖然分片在理論上聽(tīng)起來(lái)很不錯(cuò),但也存在許多潛在的攻擊途徑。一種特定的攻擊是單分片接管攻擊(Single-shard takeover attack)。這種攻擊的方式是,攻擊者接管了某一分片中的大多數(shù)出塊者,創(chuàng)建了一個(gè)提交不實(shí)交易信息的惡意分片。
以太坊核心開(kāi)發(fā)人員提出了隨機(jī)抽樣檢查的應(yīng)對(duì)方法,這個(gè)解決方案目前還在積極開(kāi)發(fā)中。
分片在權(quán)益證明鏈上比在工作量證明鏈上更容易實(shí)現(xiàn)。因?yàn)闄?quán)益證明鏈上本來(lái)就已經(jīng)有活躍的驗(yàn)證者,這些驗(yàn)證者可以被進(jìn)一步隨機(jī)指派到不同的分片中去。而在工作量證明中則無(wú)法阻止礦工向特定分片貢獻(xiàn)算力。如果礦工可以選擇他們想要驗(yàn)證的分片,他們就可以聯(lián)合起來(lái)共謀作惡。
作者:district0x
翻譯&校對(duì):林芒果
本文由礦視界(奇跡摩爾)翻譯整理編輯,如需轉(zhuǎn)載,請(qǐng)標(biāo)明出處。