V神最新演讲:以太坊2.0的分片交易
V神最新演講:以太坊2.0的分片交易
?
以太坊創(chuàng)始人Vitalik Buterin
文/Vitalik Buterin
2019年6月29日,由CSDN、靈鈦科技主辦的“2019第二屆以太坊技術(shù)及應(yīng)用大會(huì)”在北京舉行。以太坊創(chuàng)始人Vitalik Buterin在大會(huì)上做了題為《以太坊2.0之跨分片交易》的主題演講,Vitalik Buterin詳細(xì)介紹了以太坊2.0的分片交易。
以下為Vitalik Buterin的演講實(shí)錄:
現(xiàn)在我們要把以太坊進(jìn)化到2.0版本,有更多分片。現(xiàn)在在研究信標(biāo)鏈相關(guān)話題,在這方面仍有很多努力要做。這可能對(duì)區(qū)塊鏈交易非常有用,可以增加它的可擴(kuò)展性,從每秒10個(gè)交易發(fā)展到以后可能的每秒1萬個(gè)交易,它會(huì)增加信息吞吐量的速度,也能夠有更多區(qū)塊鏈的應(yīng)用。
?
但是開發(fā)者也會(huì)面臨一些挑戰(zhàn),區(qū)塊鏈現(xiàn)在的運(yùn)作方式是每個(gè)計(jì)算機(jī)要驗(yàn)證所有交易,每個(gè)節(jié)點(diǎn)都要進(jìn)行驗(yàn)證,這樣安全性是好了,但是它難以進(jìn)行擴(kuò)展,因?yàn)槲覀兘灰椎臄?shù)量非常多,因?yàn)榻灰姿俣仁怯梢粋€(gè)計(jì)算機(jī)決定的,所以我們想要去改善這個(gè)過程,我們要提高它的拓展性。這樣每個(gè)計(jì)算機(jī)只需要驗(yàn)證一小部分的交易,這樣并不是所有節(jié)點(diǎn)都需要進(jìn)行驗(yàn)證了,每個(gè)計(jì)算機(jī)只需要去處理1000個(gè)節(jié)點(diǎn)當(dāng)中的千分之一的交易。
當(dāng)前我們要處理的問題是,如果我們看到現(xiàn)在的應(yīng)用運(yùn)作的方式就會(huì)發(fā)現(xiàn),在這個(gè)理論上建立其他的東西是很容易的,比如智能合約和其他進(jìn)行交流時(shí),可能需要5個(gè)應(yīng)用的參與,所有的帳戶、智能合約都儲(chǔ)存在一臺(tái)計(jì)算機(jī)上,所以它們相互交流非常方便。但是如果我們?cè)诟痰囊粋€(gè)區(qū)塊鏈中就做不到了,因?yàn)檫@個(gè)區(qū)塊鏈中智能合約、帳戶、交流速率非常高,我們很難讓一個(gè)應(yīng)用都能夠進(jìn)行對(duì)話,難以進(jìn)行立即的對(duì)話和交流。
所以以太坊2.0的設(shè)計(jì)并不是讓每個(gè)節(jié)點(diǎn)都去處理所有的交易和信息,我們有1024個(gè)分片,每個(gè)分片都相當(dāng)于是一個(gè)短的鏈,每個(gè)分片都有自己共識(shí)的算法,不同分片中交流進(jìn)行管理,每個(gè)分片會(huì)跟其他分片進(jìn)行交流,有合約進(jìn)行交流,每6分鐘會(huì)發(fā)生一次,所以每6分鐘每個(gè)分片都有機(jī)會(huì)了解哈希值以及最近發(fā)生的事情等等。
另外,之前這個(gè)鏈的可擴(kuò)展性受到了限制的,所以我們可以選擇,要么這個(gè)鏈的交流速度變慢,要么拓展性受到限制,我們還是要二選一。另外,這些基礎(chǔ)層主要關(guān)注數(shù)據(jù)和計(jì)算力等等,不同的分片交流和溝通的能力、它們是否受限,我們可以創(chuàng)建一個(gè)機(jī)制讓它們的性能更好、使用效率非常高,這樣用戶不同的智能合約能夠相互交流,而且速度非???。
?
首先,我們是異步交流的流程,這是我之前設(shè)計(jì)的,已經(jīng)有了幾年的設(shè)計(jì)過程,如果讀相關(guān)文章,比如2016年就有文章談到異步交易。它的理念是,如果我們有幾個(gè)分片的話,如何去促進(jìn)這個(gè)分片之間的交易。比如說我有5個(gè) coins,然后我想要把這5個(gè)coins轉(zhuǎn)移給Bob,Bob有一個(gè)帳戶,它的帳戶在底端,我的coins在頂端,首先我要在頂端做一個(gè)交易的請(qǐng)求,這個(gè)交易會(huì)進(jìn)行第一個(gè)分片處理,然后它會(huì)有一個(gè)哈希值產(chǎn)生,當(dāng)然,它并不會(huì)立即完成,但是之后我們就能夠把它放到底部的分片當(dāng)中,它能夠在底部的分片進(jìn)行驗(yàn)證。驗(yàn)證之后交易就能夠進(jìn)行處理了。
所以有一個(gè)信息,是5個(gè)coins去進(jìn)到Bob,底部的Bob就能夠得到5個(gè)coins,它不會(huì)立即發(fā)生,原因是我們要驗(yàn)證,不僅僅接收方需要進(jìn)行驗(yàn)證,還有其他的哈希值、數(shù)據(jù)、信標(biāo)鏈等等都需要進(jìn)行驗(yàn)證。我們發(fā)現(xiàn)接收方也是分片的一部分,不同的分片交流需要5分鐘的時(shí)間,所以第一步我們就需要發(fā)送這個(gè)交易,第二步是等幾分鐘,第三步是要進(jìn)一步去處理這個(gè)交易,然后才能夠讓底部的Bob接收到這個(gè)coin,這樣Bob帳戶就增加了。
現(xiàn)在有各種加密貨幣,包括比特幣等等,對(duì)于這些數(shù)字資產(chǎn)有不同的平臺(tái),我們發(fā)現(xiàn)這樣一個(gè)交易,它其實(shí)非常強(qiáng)大的,有很多有趣的理論、復(fù)雜的理論都可以來驗(yàn)證這個(gè)交易。我們發(fā)現(xiàn),我們理解這些機(jī)制,跟客戶交流是非常難的,我們還是有很多可以做的,但是會(huì)有相關(guān)溝通方面的限制。
?
另外一個(gè)是“火車票和酒店”的問題,如果你使用數(shù)據(jù)庫工作就會(huì)了解相應(yīng)的問題,它跟我們非常相似,我們有不同的方式可以解決相關(guān)的問題。你想要去一個(gè)地方旅游,我們要買火車票,同時(shí)也要訂酒店,如果訂一個(gè)不行,要兩個(gè)一起訂,所以我們要確保:要么都不訂,要么酒店和火車票一起訂。如果僅僅有火車票而沒有酒店,或僅僅酒店而沒有火車票,這對(duì)我來說沒有任何意義,是浪費(fèi)錢。
所以我們想象兩個(gè)智能合約,一個(gè)合約是用來訂火車票的,另外一個(gè)是用來訂酒店的。當(dāng)前體系解決這個(gè)非常簡單,首先,我們給賣火車票的地方打電話,比如我們?cè)诨疖嚻鄙嫌喠艘粋€(gè)座位,這個(gè)合約會(huì)回復(fù)你成功或失敗,然后我們?cè)俳o訂酒店的地方打電話,這個(gè)地方也回復(fù)你成功或失敗,如果其中一個(gè)失敗了,那在我們交易過程中就無法讓這個(gè)交易進(jìn)行下去,整個(gè)交易會(huì)被撤回。今天我們也是這樣做的,不管是訂火車票還是訂酒店,其中一項(xiàng)失敗了,我們就可以把交易撤回。但是在更短的鏈中,訂酒店和訂火車票是不同的分鏈中,確保一致性更難,原因是因?yàn)榘l(fā)現(xiàn)在一致的環(huán)境中已經(jīng)訂了火車票了,我們就不能再撤消了。
?
其中的一個(gè)解決方案是我們有一個(gè)新的機(jī)制叫“猛拉”,它看起來是全新的想法,但是有很多類似之處,跟我們之前的數(shù)據(jù)庫很像。所以我們會(huì)有非常多樣化的做法,并不是用一個(gè)合約訂酒店,一個(gè)合約訂火車票,現(xiàn)在我們把它分開,每個(gè)火車座位都有一個(gè)合約,每個(gè)房間都有一個(gè)合約,這樣每個(gè)合約都能夠代表我們訂座位或者訂房間的能力。
現(xiàn)在我們能做什么?在“猛拉”中發(fā)一個(gè)合約,它的功能是一次用一個(gè)合約,我們拿掉這個(gè)合約之后就獲得一個(gè)座位,然后我們?cè)侔押霞s放到另外一個(gè)位置上。
如何解決“酒店和火車票”的問題?第一步,猛拉,從酒店分片拉一個(gè)合約,從火車票再拉一個(gè)合約,兩個(gè)分片同時(shí)預(yù)定,現(xiàn)在酒店合約和火車票合約在一個(gè)地方,跟之前的交易一樣,就可以一起訂了,但其中如果任何一個(gè)操作失敗,我們就什么都不訂了?;蛘咂渌讼胍喕疖嚮蛴喚频?#xff0c;去之前你去的那個(gè)分片,可以用這個(gè)合約進(jìn)行“猛拉”的操作,不會(huì)有任何阻礙,兩個(gè)一起訂,它是自動(dòng)的過程,就是要么兩個(gè)都訂,要么兩個(gè)都不訂。所以在區(qū)塊鏈的運(yùn)用當(dāng)中有很多都是類似的,包括去中心化資產(chǎn)的交流等例子,對(duì)我們來說非常有用,能夠提高用戶以及區(qū)塊鏈應(yīng)用的操作性。
這是另外一個(gè)例子,也是我們可以做的一個(gè)應(yīng)用?,F(xiàn)在我們想象一下,我們用一個(gè)更短的區(qū)塊鏈,比如它需要5分鐘時(shí)間讓一個(gè)分片知道另外一個(gè)分片的數(shù)據(jù)或者哈希值,但是我們希望這個(gè)應(yīng)用變得更加快捷,所以我們的做法是在上面分片有一個(gè)coin,然后我們想把這個(gè)coin轉(zhuǎn)移到下面,我希望coin可以在底部立馬進(jìn)行應(yīng)用,那我們就不用等了。
?
具體怎么操作呢?看起來是挺難的,我們是這樣做的。比如說,就像我們之前的程序一樣,首先,我想給Bob發(fā)5個(gè)coin,就必須在上面的分片進(jìn)行交易,然后上面就會(huì)給我個(gè)這樣的證明,它還包含一個(gè)區(qū)域性的分片,然后我再把它放到下面的分片中,下面的分片就會(huì)記錄這個(gè)交易。而且它已經(jīng)了解上面分片當(dāng)中的根值了,所以下面的分片根本不知道上面跟它是否合法,但是不管怎樣,它把相關(guān)數(shù)據(jù)融到自己的數(shù)據(jù)包中了。如果記錄另外一個(gè)信息,也可能沒辦法讓下面的分片知道。?
我們這里想陳述的是,最開始Alice有10個(gè),Bob有20,charlie有52個(gè),我們把這些進(jìn)行壓縮之后進(jìn)行存儲(chǔ)。有兩種情況,一種情況是bob有20個(gè)coin,還有一種情況是Bob之后有25個(gè)coin。如果我們的錢包上面看到上面的根是R,下面的分片就可以做個(gè)推測(cè),就是Bob有25個(gè)coin,就可以取25個(gè)coin給其他人。
即使在這樣的狀態(tài)下,我們的計(jì)算也并沒有最終化,看起來這個(gè)交易已經(jīng)完成了,那么你可能會(huì)問:看起來好像Bob有了這些coins,但是他還沒有花這些coins。我們假設(shè)Bob要把25個(gè)coins發(fā)給Charlie,他會(huì)做什么?把22個(gè)coins發(fā)給Charlie會(huì)是什么?現(xiàn)在這種情況下,你只能把兩個(gè)情況進(jìn)行評(píng)估和對(duì)比,這種情況下Alice還是有10個(gè)coins,如果合法的話,Bob之前有25個(gè)coins,現(xiàn)在25減22,它只剩3個(gè)幣了,如果不算根是不夠的,所以Bob還是有200個(gè)。C如果根是對(duì)的,就會(huì)從30多上升到52。
這個(gè)交易結(jié)束后,上面的分片和下面的分片信息可以連接,下面的分片可以記錄上面分片的信息了,我們就不用去思考到底R(shí)是真實(shí)的還是假的,我們知道R一定是真實(shí)的Charlie現(xiàn)在有52個(gè)coins了。這個(gè)邏輯是在后臺(tái)進(jìn)行的,邏輯效應(yīng)是通過Bob、Charlie的錢包分析,我們至少先知道發(fā)生了這樣的交易。非常有意思的一點(diǎn)是,對(duì)于這個(gè)技術(shù),你可以用通信的方式在跨區(qū)塊鏈中進(jìn)行交易,還可以讓它創(chuàng)造應(yīng)用程序,讓不同的區(qū)塊鏈進(jìn)行跨鏈的交易。
比如我們假想有這樣一種應(yīng)用,上面的分片是以太坊區(qū)塊鏈,下面的分片是另外一種區(qū)塊鏈,它們兩個(gè)如果是相碰撞、相沖突的話,我們會(huì)用同樣的機(jī)制保證它們交易,讓它們進(jìn)行及時(shí)的通訊、及時(shí)的去中心化的交易。這在以太坊和跨以太坊的區(qū)塊鏈交易中是非常重要的,可以讓跨鏈的通訊變得更加方便。
我們還可以實(shí)現(xiàn)其他的目標(biāo),比如我們目前已經(jīng)做了一些工作,比如通過Plasma方法做同步的交易,我們的目的是首先Plasma已經(jīng)建立了,希望data把這些數(shù)據(jù)公布到分片上,所有這些數(shù)據(jù)并不一定都能夠公布到區(qū)塊鏈上,但是最終發(fā)生的一件事情是,我們還是會(huì)用類似Plasma的方法去實(shí)現(xiàn)同樣的目的,我們不會(huì)馬上去數(shù)狀態(tài)的總數(shù)是多少。我們至少要知道現(xiàn)在以太幣的所有者的目的是什么,是在任何分片發(fā)交易,還是要等一段時(shí)間才能出資產(chǎn)。所以如果發(fā)生沖突的話,他有可能想上傳證據(jù),還有所有者可以對(duì)coin進(jìn)行再構(gòu)造。?
通過這個(gè)方法可以保證如果我們收到了coin,從來沒有進(jìn)行非法支付的話,我們的交易就會(huì)同步到整個(gè)區(qū)塊鏈上進(jìn)行廣播。這些交易出現(xiàn)了,我們有兩個(gè)資產(chǎn),X和Y,另外一個(gè)交易是X,是A到C,我們的分片有自己的輕重緩急,可能先進(jìn)行某一次交易再進(jìn)行下一次交易,還有B到G、F到M等等交易。之后還有很多交易,有些是合法的,有些是不合法的,M到M是不合法的,因?yàn)闀r(shí)間上它是不能實(shí)現(xiàn)的。
如果我們參加交易過程當(dāng)中,自己有了資產(chǎn)的話,而且你也希望發(fā)送交易信息,就可以把它公布到任何分片上。如果你是某個(gè)資產(chǎn)的所有者,你可以僅僅分析這些分片,就可以評(píng)估這些交易的歷史記錄是怎樣的,某些資產(chǎn)并不屬于這樣交易過程的,我們也可以做類似的結(jié)論總結(jié)。
在區(qū)塊鏈中,我們做的工作量還會(huì)少一些,比如用戶錢包可以做更多事情,而且它還可以幫助我們考慮什么樣的交易方式是合理的,就是誰更關(guān)注每一個(gè)分片,然后每一個(gè)分片對(duì)應(yīng)的資產(chǎn)又是怎樣的,這是特別棒的一個(gè)想法。
為了減少復(fù)雜性,讓更多用戶用錢包,我們就把區(qū)塊鏈便捷性、性能、應(yīng)用效率大大提升,希望通過用這個(gè)方式把中心化更復(fù)雜的交易變得便捷和簡單,這個(gè)基本的戰(zhàn)略可以讓我們進(jìn)行更快的交易。不需要之前去中心化的共識(shí)層,我們希望通過這些用戶錢包了解目前我們的錢包里是有多少幣的。
這樣一種設(shè)計(jì)最近被我們叫“積極虛擬機(jī)(OVM)”它的結(jié)論是你所有權(quán)的資產(chǎn)并沒有立即轉(zhuǎn)移,我們開始一個(gè)流程,不需要把這個(gè)錢取出來,可能一整周時(shí)間才可以真正到帳,但是如果你是用戶,你可以知道為什么不能馬上取出某個(gè)資產(chǎn),而且你有一種感覺,就是這個(gè)交易是可以真正到帳的。
我們需要做什么?10秒鐘才可以進(jìn)行跨分片交易,比如有20個(gè)分片參與交易,提高交易速度會(huì)不會(huì)提高區(qū)塊速度?我們需要去研究區(qū)塊時(shí)間,比如最上面分片可能需要10秒,那么下面的分片再往右移,就是0.5,然后10.25,然后11.1,然后21.5等等,逐漸的向右移。
這個(gè)基本原則是在某個(gè)時(shí)間點(diǎn)上一定有某個(gè)分片去到某個(gè)固定的位置,首先我們首先要知道需要在哪個(gè)區(qū)塊中公開這個(gè)分片。這樣做的好處是,如果我們這么做,就會(huì)獲得一種公開交易的能力,而且還可以得到及時(shí)確認(rèn),可能0.5秒的時(shí)間就可以立即確認(rèn),得到區(qū)塊,然后可以進(jìn)行證明。如果做得很成功的話,用戶體驗(yàn)會(huì)非常好,類似之前中心化服務(wù)器提供的這種體驗(yàn)一樣,如果我們用第二層方法,從不同的分片進(jìn)行數(shù)據(jù)的公布,邏輯會(huì)非常復(fù)雜,智能合約也會(huì)變得很復(fù)雜,用戶錢包會(huì)進(jìn)行很高速、很大量的計(jì)算,有多少coins到哪個(gè)用戶手上就需要更長時(shí)間進(jìn)行計(jì)算,這是我們更需要研究的一點(diǎn)了。
這里我得出的結(jié)論是什么?如果我們想要做出一個(gè)通用型的區(qū)塊鏈,就首先要有一個(gè)比較通用的基礎(chǔ)設(shè)施,能夠讓我們把數(shù)據(jù)放在這個(gè)鏈上,還可以在這個(gè)鏈上做更快的計(jì)算。我們利用工具進(jìn)行應(yīng)用的過程比較復(fù)雜,不同的用戶有不同的實(shí)施方式。所以區(qū)塊鏈要求我們有一個(gè)全球的共識(shí),就是怎樣進(jìn)行儲(chǔ)存、怎樣對(duì)于某個(gè)用戶具體所有的coins的數(shù)量進(jìn)行準(zhǔn)確了解,這些都需要我們通過更進(jìn)一步的應(yīng)用來實(shí)現(xiàn)的;而且我們需要保證整個(gè)流程的簡便性,防止這個(gè)流程變得復(fù)雜;需要對(duì)于共識(shí)機(jī)制進(jìn)行不斷的提升,創(chuàng)造出有不同應(yīng)用的底層協(xié)議。
這已經(jīng)成為一個(gè)非?;钴S的研究,我們正在研究怎樣設(shè)計(jì)剛才所說的這些機(jī)制,讓我們創(chuàng)造出擴(kuò)展區(qū)塊鏈以上的不同應(yīng)用,它擁有很強(qiáng)的性能,可以進(jìn)行非??焖俚慕灰?#xff0c;甚至是異步的、同步的交易都可以實(shí)現(xiàn),而且還可以實(shí)現(xiàn)跨分片的交易,當(dāng)然,還有其他很多很好的性能,比如其他的加密方式進(jìn)行進(jìn)一步擴(kuò)展。
因此,Layer2 的這個(gè)機(jī)制是和以太坊2.0密切相關(guān)的,它可以把區(qū)塊鏈更上一層樓。
總結(jié)
以上是生活随笔為你收集整理的V神最新演讲:以太坊2.0的分片交易的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 以太坊钱包1-Android-创建钱包
- 下一篇: 朱宁:70%散户跑不赢大盘?因为机构利用