本文的目的是使人們更好地理解什么是分片,這是以太坊公司區(qū)塊鏈縮放解決方案之一。以太坊已經(jīng)提出了從第一階段到第六階段關(guān)于分片的階段性開發(fā)路線圖。到目前為止,最明確定義的階段(階段1)已經(jīng)結(jié)束,而其他階段正在按順序開發(fā)。(截止2018年6月8日)分片發(fā)展路線圖如下:
圖1所示。在本文中,我討論了分片階段1,以便提供分片的清晰概述。關(guān)于分片的更多細(xì)節(jié)將在下期分片問答中討論。
分片的背景
分片是以太坊公司為解決區(qū)塊鏈(如等離子體和萊頓網(wǎng)絡(luò))的可伸縮性問題而提出的一種解決方案。等離子體和萊頓網(wǎng)絡(luò)是脫鏈解決方案,分片是一種通過改變主鏈本身的協(xié)議來提高主鏈性能的鏈上解決方案。
應(yīng)用鏈上解決方案需要主網(wǎng)絡(luò)的硬分支,而非鏈上解決方案通過在主鏈外添加其他系統(tǒng)來消除對硬分支的需要。
此外,基于厲害關(guān)系證明(PoS)算法設(shè)計(jì)分片,以支持以太坊所設(shè)想的從工作量證明(PoW)到厲害關(guān)系證明(PoS)的過渡。
關(guān)于分片
首先,分片是一種鏈上解決方案,它將整個網(wǎng)絡(luò)按照部分順序來存儲事務(wù)。然后并行處理這些事務(wù),以解決區(qū)塊鏈可伸縮性問題。簡而言之,數(shù)據(jù)被分割并存儲為單獨(dú)的分片以供處理。
“分片”的概念源于數(shù)據(jù)庫環(huán)境。在數(shù)據(jù)庫環(huán)境中,分片是對表進(jìn)行水平分區(qū)以處理和存儲大量數(shù)據(jù)的過程。
同時,以太坊共享將主鏈分割成N塊。每個分片并行地處理網(wǎng)絡(luò)上的所有事務(wù)。因此,網(wǎng)絡(luò)的總體吞吐量通過多個分片來提高,這與當(dāng)前主鏈的事務(wù)處理機(jī)制形成了對比。例如,假設(shè)有100個事務(wù)。使用10個分片鏈,每個分片鏈平均可以同時處理10個事務(wù)。
分片鏈的特點(diǎn)
為了更好地理解分片,必須了解分片鏈的組件和關(guān)鍵術(shù)語。然而,隨著分片研究的不斷深入,分片相關(guān)的組件和術(shù)語也在不斷變化。但同樣,本文還是在第一階段規(guī)范的再次進(jìn)行的討論。
排序: 在分片鏈的主鏈中,排序與塊的作用相同。排序規(guī)則由事務(wù)列表組成。整理構(gòu)成的信息,并通過提案人的簽名提交給主鏈。在這里,事務(wù)列表指是排序中的事務(wù)列表。
提案人:提案人主要負(fù)責(zé)收集事務(wù),創(chuàng)建提案,然后將其提交給核對人。此外,提案是未經(jīng)驗(yàn)證的整理。
Collator:審核申請人提交的提案。對于每個時間段,一個排序器被分配給一個分片,而分片是在某個時間段之前隨機(jī)選擇的。
執(zhí)行器:將整理的數(shù)據(jù)傳遞到主鏈中的分片管理器契約(SMC)中。這改變了分片鏈的實(shí)際狀態(tài)。(執(zhí)行器出現(xiàn)在分片階段3)
期間:分片鏈的整理數(shù)據(jù)向主鏈提交的時間。這里的單位是主鏈中的塊數(shù)。例如,如果PERIOD_LENGTH = 5,生成5個塊的是1周期。
前瞻周期 : 核對人是SMC在驗(yàn)證分片鏈中的排序之前偽隨機(jī)分配的。同樣,“前瞻周期”表示每個排序器在某個時間段之前被分配到哪個分片鏈。例如,如果LOOKAHEAD_PERIODS = 4,它意味著核對人在4周期之前必須把數(shù)據(jù)分配到分片鏈中。然后,核對人才可以確保他們提前下載分片鏈的狀態(tài)信息的時間。
分片經(jīng)理合同(SMC)
SMC是在分片鏈中起重要作用的一種智能合約。SMC連接主鏈和分片鏈,管理整理器、提案器。SMC的角色對于分片鏈參與主鏈?zhǔn)侵陵P(guān)重要的。SMC的主要作用如下:
讓我們看看分片鏈的結(jié)構(gòu)和SMC的作用
PoS系統(tǒng):SMC管理核對人的存款。如果核對人在分片鏈中做錯了什么,那么SMC可能會削減一個人的存款。
偽隨機(jī)抽樣:SMC偽隨機(jī)將數(shù)據(jù)分配給核對人池中的分片鏈。這減少了核對人攻擊特定分片的可能性,這樣可以防止核對人知道哪個分片會被分配給哪個分片。
整理頭驗(yàn)證:驗(yàn)證分片鏈提交的整理頭。SMC通過addHeader函數(shù)進(jìn)行驗(yàn)證,并且必須在啟用排序之前進(jìn)行驗(yàn)證。
跨分片通信:對于分片的事務(wù)傳輸,必須在主鏈中創(chuàng)建收據(jù)。SMC起到管理這個收據(jù)的作用。當(dāng)分片鏈中的用戶創(chuàng)建收據(jù)時,該收據(jù)將通過SMC傳遞給另一個分片鏈,并使用它來傳輸分片事務(wù)。(這將在分片階段4中實(shí)現(xiàn))。
鏈上治理:SMC在鏈上治理中起著核心作用。整理人員的投票通過SMC進(jìn)行處理,以便這些投票可以在鏈上進(jìn)行。
分片鏈?zhǔn)綑C(jī)制過程
現(xiàn)在讓我們看看分片鏈?zhǔn)侨绾喂ぷ鞯摹N蚁胱屇銈冇涀》制湹慕M成和術(shù)語來理解分片鏈的機(jī)理過程。
(1)首先,想通過SMC成為提款人的網(wǎng)絡(luò)參與者存款余額。
(2)同樣,希望通過SMC成為核對人的網(wǎng)絡(luò)參與者也可以通過SMC進(jìn)行存款。
(3)整理人員定期檢查SMC狀態(tài),看是否選擇他們作為整理人員。
(4) SMC將整理器偽隨機(jī)分配到每個分片鏈上。使他們在前瞻期間下載分片的先前狀態(tài)。每個整理人會從提出選定方案的提案人處收到建議標(biāo)書。
(5)然后提案人向保證人提交建議書。(建議書是指尚未核實(shí)的校勘。當(dāng)一個提案被核對人選中時,提案人會從交易發(fā)起人那里收取交易費(fèi)用。)
(6)整理人進(jìn)行表決,以核實(shí)每份建議書內(nèi)的交易是否有效。
(7)如果超過2/3的整理人批準(zhǔn)提案的交易有效,那么提案就是有效的。
核對人調(diào)用add_header函數(shù)并在投票后將新創(chuàng)建的校對標(biāo)頭發(fā)送到SMC。通過SMC上傳的add_header連接到主鏈。
分片將在這個階段中添加執(zhí)行器和跨分片事務(wù)等功能。首先分析了最基本的分片化連鎖經(jīng)營流程和激勵結(jié)構(gòu)。讓我們看看分片鏈的分叉選擇規(guī)則。
分片鏈的分叉選擇規(guī)則
與主鏈一樣,在分片鏈中選擇分支的鏈也是一個問題。當(dāng)前主鏈有一個分叉選擇規(guī)則,當(dāng)分支發(fā)生時,它會選擇最長的邊。然而,分片鏈中的分叉選擇規(guī)則更為復(fù)雜。
在分片的情況下,主鏈和分片鏈基本上都是長鏈。也就是說,1)選擇最長的分片鏈,2)主鏈需要較長的分片鏈。讓我們仔細(xì)看看下圖。
在階段1中,分片鏈中的分叉選擇規(guī)則取決于最長的主鏈。也就是說,當(dāng)一個分支發(fā)生時,分片鏈的選擇不應(yīng)該僅僅是最長的分叉鏈,而是主鏈中最長的分叉鏈。
例如,在圖8中,包含塊B3的主鏈?zhǔn)亲铋L的鏈。因此,可以看出塊B3是有效的,以及collation C3也是有效的。得分是塊或整理的高度。
如圖所示,當(dāng)添加塊B3 ‘時,上面的鏈和下面的鏈被捆綁在一起。在這種情況下,根據(jù)主鏈上的分叉選擇規(guī)則,在分片時刻的有效塊是隨機(jī)確定的。
此時,B3塊被選擇為有效塊,而屬于B3的排序規(guī)則C3是有效的排序規(guī)則。
在上圖中,底層鏈中添加了一個新的塊B4 ’。底鏈?zhǔn)亲铋L的主鏈。在這種情況下,當(dāng)我們比較排序規(guī)則 C3和排序規(guī)則n C2的分?jǐn)?shù)時,排序規(guī)則 C3分?jǐn)?shù)》 排序規(guī)則C2分?jǐn)?shù)。這意味著帶有排序碼C3的分片鏈?zhǔn)禽^長的分片鏈。然而,分片鏈的選擇取決于主鏈。最長的主鏈中包含的排序規(guī)則是C2,而不是C3。因此,盡管排序規(guī)則C2的得分較低,但排序規(guī)則C2也會成為一個有效的排序規(guī)則,并被選為一個有效的分片鏈。這就是分片鏈的分叉選擇規(guī)則。
在本文中,我們關(guān)注的是階段1,在階段1中給出了具體的規(guī)范,以幫助理解總體分片。如前所述,我們必須解決區(qū)塊鏈中的可伸縮性問題。分片是非常有趣的,因?yàn)樗且粋€鏈上的解決方案,主要用于以太坊中的PoS轉(zhuǎn)換。
在分片的情況下,沒有發(fā)布具體的白皮書,所以公文是有限的。以太坊基金會仍在進(jìn)行分片,分片的信息存儲在不同的地方,比如prysmaticlabs、ethresearch和github。如果你想了解最新的分片信息,你需要不斷更新。
評論
查看更多