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