摘要:本次以太坊分片技術(shù)的分享,主要是基于神在臺(tái)北做的一場(chǎng)關(guān)于分片的分享會(huì)。如有指正,請(qǐng)聯(lián)系微信為了提高可擴(kuò)展性,以太坊提出了兩個(gè)解決方案。是由為隨機(jī)函數(shù)選出的合法,其身份的合法性只在指定時(shí)間段和指定分片內(nèi)有效。
本次以太坊分片技術(shù)的分享,主要是基于V神在臺(tái)北做的一場(chǎng)關(guān)于分片的分享會(huì)。如有指正,請(qǐng)聯(lián)系微信:wuqiong_blockchain
為了提高可擴(kuò)展性,以太坊提出了兩個(gè)解決方案。一個(gè)是建立分層結(jié)構(gòu)(Layer 2),把不必要的交易從最底層的主鏈分離到附屬結(jié)構(gòu)上,比特幣的閃電網(wǎng)也是這個(gè)思路。另一個(gè)便是分片技術(shù)(Sharding),著眼于改進(jìn)主鏈本身的協(xié)議來提高它的性能。
分片技術(shù)概覽在現(xiàn)在的以太坊中,每一個(gè)節(jié)點(diǎn)都要處理全網(wǎng)的交易。這就使全網(wǎng)的性能極大地受制于單點(diǎn)的能力。而分片之所以能夠處理更多的交易,是因?yàn)槊恳还P交易只由不同分片中這一小部分的節(jié)點(diǎn)看到和處理。這樣,全網(wǎng)中不同交易便可以由不同的分片中的節(jié)點(diǎn)在同一時(shí)間點(diǎn)上平行處理。這樣就大大提高了交易的處理效率。在這個(gè)模型當(dāng)中,主鏈(Main chain)依舊不斷形成。同時(shí),不同的分片(Shard chain)中也會(huì)形成屬于本分片的鏈,甚至,分片中還可以二次分裂出新的分片鏈。每隔不固定的時(shí)間,分片會(huì)將當(dāng)前的分片鏈上最新區(qū)塊的的Markel Root/collation header 同步到主鏈上。在最新公布的算法中,每次只能同時(shí)分裂出最多100個(gè)分片。
V神所構(gòu)想的分片技術(shù)有六個(gè)階段。當(dāng)前所實(shí)現(xiàn)還只是第一階段。第一個(gè)也是最簡單的分片技術(shù),就是把系統(tǒng)切分成獨(dú)立的數(shù)據(jù)片。只是做了網(wǎng)絡(luò)的分片和交易的分片,并沒有真正實(shí)現(xiàn)狀態(tài)的分片。
分片技術(shù)詳解要了解一下有關(guān)分片技術(shù)的細(xì)節(jié),首先我們先來了解分片中幾個(gè)關(guān)鍵的角色。
Proposer是交易池的維護(hù)者。負(fù)責(zé)為proposal(collationheader)做準(zhǔn)備而收集交易,并負(fù)責(zé)廣播collation body。任何人都可以成為proposer。
Collator是由為隨機(jī)函數(shù)選出的合法collator,其身份的合法性只在指定時(shí)間段和指定分片內(nèi)有效。它的主要作用就是collates the
proposal以建立collation。Collator從所有分片的collator pool中選出。
Executor執(zhí)行狀態(tài)交易函數(shù)。其實(shí)proposer也應(yīng)該是executor,都是擁有獲取交易所花費(fèi)gas和選擇高手續(xù)費(fèi)的交易等能力的身份。
collator區(qū)塊結(jié)構(gòu)
下面給出一張圖,從宏觀上來解釋交易的執(zhí)行流程:
下圖,再從細(xì)節(jié)上解釋交易的流程,同時(shí)引入一個(gè)非常重要的額概念:
SMC中包含隨機(jī)個(gè)collator pool,這些collator pool又分別來自于不同的分片中的當(dāng)前時(shí)間段中最新的collator。
分片技術(shù)的安全性以太坊主鏈每個(gè)時(shí)間段新生成的區(qū)塊,都會(huì)將在此時(shí)間點(diǎn)之前的五個(gè)區(qū)塊打包在內(nèi)。這也被成為“LookAhead”。每個(gè)validator都會(huì)借由LookAhead來確認(rèn)在未來他們將負(fù)責(zé)驗(yàn)證的是哪個(gè)分片。也就是驗(yàn)證者是先得知會(huì)被劃分到哪個(gè)分片的。在指定時(shí)間段內(nèi),每個(gè)區(qū)塊的驗(yàn)證者都會(huì)面臨新一輪的隨機(jī)選擇(共5個(gè)區(qū)塊,共五個(gè)validator)。當(dāng)?shù)竭_(dá)主鏈出塊時(shí)間,所有validator都會(huì)將已校驗(yàn)的交易發(fā)送到交易池中。檢驗(yàn)發(fā)起者需要向交驗(yàn)者支付激勵(lì)。交驗(yàn)者下載潛在的分片提案。驗(yàn)證者驗(yàn)證數(shù)據(jù)的有效性,并挑選當(dāng)前分片中最新區(qū)塊,然后將collation header提交給主鏈。由礦工負(fù)責(zé)挖礦生成新的主鏈的區(qū)塊。
那分片技術(shù)是否能夠預(yù)防攻擊呢?假如遭遇攻擊,惡意節(jié)點(diǎn)驗(yàn)證錯(cuò)誤的信息并提交主鏈挖礦。那么錯(cuò)誤的區(qū)塊就會(huì)在分片鏈中記錄下來。是否這樣的攻擊就已成定局了呢?
答案是不是的。
因?yàn)閭€(gè)區(qū)塊的交驗(yàn)者都會(huì)面臨一次隨機(jī)重選。惡意節(jié)點(diǎn)不會(huì)每次都拿到打包權(quán)。那么,當(dāng)正直節(jié)點(diǎn)在惡意節(jié)點(diǎn)之后被選中,在驗(yàn)證數(shù)據(jù)有效性時(shí),就會(huì)察覺到有不可信信息,那么他就會(huì)追溯到腐壞解區(qū)塊分片頭的上幾個(gè)區(qū)塊,將正確信息提交到主鏈并在此分片鏈上分叉。此次作惡也就失敗。
此處留一個(gè)問題,供大家思考: 如果該分片內(nèi)的所有節(jié)點(diǎn)合謀作惡呢? 那么是否還有可能發(fā)現(xiàn)并糾正錯(cuò)誤信息? (雖然我們知道每個(gè)申請(qǐng)作為validator的人都會(huì)提交對(duì)應(yīng)的質(zhì)押, 惡意者自身利益與全網(wǎng)利益有互相關(guān)系的特點(diǎn), 但仍假設(shè)作惡收益大于作惡懲罰呢?。。。)簡介系統(tǒng)角色和模型
系統(tǒng)中主要有兩種角色。
一種是常規(guī)Executor,包括Executors和proposors。他們負(fù)責(zé):
旁觀指定的分片
狀態(tài)變更
都可能獲得相應(yīng)的交易手續(xù)費(fèi)收益
一種是輕客戶,負(fù)責(zé):
驗(yàn)證最新頭部
旁觀指定分片
系統(tǒng)中主要有兩種狀態(tài)模式:
一種是有狀態(tài)分片中的客戶端組件 分片開發(fā)規(guī)劃一種是無狀態(tài)
basic Sharding without EVM
EVM狀態(tài)轉(zhuǎn)換函數(shù)
輕客戶端狀態(tài)協(xié)議
跨分片交易
與主鏈安全的緊耦合
超二次分片
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/24265.html
摘要:基于以太坊項(xiàng)目,以太坊團(tuán)隊(duì)目前運(yùn)營了一個(gè)公開的區(qū)塊鏈平臺(tái)以太坊網(wǎng)絡(luò)。主要特點(diǎn)以太坊區(qū)塊鏈底層也是一個(gè)類似比特幣網(wǎng)絡(luò)的網(wǎng)絡(luò)平臺(tái),智能合約運(yùn)行在網(wǎng)絡(luò)中的以太坊虛擬機(jī)里。以太坊采用交易作為執(zhí)行操作的最小單位。 以太坊將比特幣針對(duì)數(shù)字交易的功能進(jìn)一步進(jìn)行了拓展,面向更為復(fù)雜和靈活的應(yīng)用場(chǎng)景,支持了智能合約這一重要特性。 以太坊項(xiàng)目簡介 以太坊:項(xiàng)目最初的目標(biāo)是打造以個(gè)智能合約的平臺(tái),該平臺(tái)支持...
摘要:將由超級(jí)節(jié)點(diǎn)組成以太坊網(wǎng)絡(luò)的計(jì)算存儲(chǔ)寬帶等資源記作,。以太坊分片去中心化擴(kuò)展性安全性都要。但是安全性會(huì)有所降低,原來雙花攻擊需要控制以太坊網(wǎng)絡(luò)的節(jié)點(diǎn),但是分片之后只需要控制的節(jié)點(diǎn)。 三難困境 區(qū)塊鏈的三難困境:去中心化、擴(kuò)展性、安全性 犧牲擴(kuò)展性方案 現(xiàn)在的比特幣、以太坊都是通過犧牲擴(kuò)展性來換取安全性的。 因?yàn)橐蕴痪W(wǎng)絡(luò)上的每筆交易,需要每個(gè)節(jié)點(diǎn)都計(jì)算、存儲(chǔ)和廣播一次。這意味著以太坊網(wǎng)...
摘要:自年初以來,一直在推廣和分享以太坊及其生態(tài)系統(tǒng)方面的知識(shí)。你可以把想作是以太坊的。在任何外部數(shù)據(jù)源例如網(wǎng)絡(luò)和區(qū)塊鏈應(yīng)用程序如以太坊方面的智能合約之間提供安全的認(rèn)證通道。 從2018年3月8日到10日,來自世界各地的以太坊專業(yè)人士、研究人員、投資者和愛好者涌入了巴黎來參加以太坊社區(qū)會(huì)議(EthCC)。 EthCC是由一家法國的非盈利組織Asseth籌備組織的。Asseth自2016年初以...
摘要:以太坊的分片方案解析阿希鏈測(cè)鏈多鏈與跨鏈技術(shù)在阿希鏈系統(tǒng)上,每個(gè)都是運(yùn)行在一條測(cè)鏈上的。也是截至目前,在其測(cè)試網(wǎng)絡(luò)上實(shí)現(xiàn)分片技術(shù)的僅有的兩個(gè)中的一個(gè)區(qū)塊鏈項(xiàng)目。和分片的實(shí)現(xiàn)將很大程度上改善以太坊的短板。 撰稿人: 卡酷少 kakushao 在區(qū)塊鏈所面臨的諸多問題中,區(qū)塊交易的處理速度,和區(qū)塊鏈之間的互通性都極大程度的限制了區(qū)塊鏈的應(yīng)用空間。要實(shí)現(xiàn)更快的交易確認(rèn)速度,拓寬區(qū)塊鏈向外連接...
摘要:實(shí)際驗(yàn)證發(fā)現(xiàn)交易中有一個(gè)要求導(dǎo)致兩個(gè)錯(cuò)誤要求以太坊要求一個(gè)賬戶的每筆交易有一個(gè)連續(xù)的計(jì)數(shù)。 在我們發(fā)布eth智能合約后希望可以同時(shí)轉(zhuǎn)賬多筆代幣,又不希望將群發(fā)幣寫入智能合約,所以只能手動(dòng)寫web3腳本交易,當(dāng)我們測(cè)試geth接口在一個(gè)交易失敗問題后,之后的交易都將阻塞,也無法看到pendding狀態(tài),最終他們將被取消。最后發(fā)現(xiàn)交易設(shè)置了相同nonce。 什么是nonce? nonce有...
閱讀 1114·2021-09-22 15:37
閱讀 1141·2021-09-13 10:27
閱讀 2484·2021-08-25 09:38
閱讀 2456·2019-08-26 11:42
閱讀 1538·2019-08-26 11:39
閱讀 1565·2019-08-26 10:58
閱讀 2330·2019-08-26 10:56
閱讀 2578·2019-08-23 18:08