Vitalik Buterin以太坊開發者大會演講完整版
編者按:本文來自巴比特,作者:海倫,經授權發布。
編者按:本文來自
巴比特
,作者:海倫,經授權發布。
編者按:本文來自
巴比特
,作者:海倫,經授權發布。
編者按:本文來自
巴比特
,作者:海倫,經授權發布。
2019年6月29日,由CSDN、靈鈦科技聯合主辦的“2019以太坊技術及應用大會”在北京召開。
作為國內極具影響力的以太坊技術大會,本屆會議圍繞以太坊生態全景、以太坊未來發展、以太坊開發實戰、優質項目案例等多方面內容,並邀請了以太坊創始人Vitalik Buterin、核心技術開發者Hsiao-Wei Wang、海內外知名項目負責人、行業領軍人物及以太坊生態精英專家,共同探討以太坊生態新進展,分享最新的以太坊開發經驗。
以太坊創始人Vitalik Buterin在熱烈的掌聲中,發表了本次大會的第一個演講,主題為《以太坊2.0之跨分片交易》。 Vitalik向開發者詳細介紹了以太坊2.0的構想及推進情況,並且針對開發者所關心的「以太坊性能」話題,向開發者介紹了跨分片交易的原理,並對開發者常見的疑問進行了解答。
現在的鏈,所有節點下載和驗證所有交易,這樣雖然很安全,但嚴重限制了擴展性。因此我們想改善這個情況,未來區塊鍊是分片的,這意味著每個節點只下載和驗證一部分的交易。
比如在以太坊上2.0的設計中,有1024個分片,所以每個節點只需驗證1/1024的交易,這個變化會提高區塊鏈的性能,可能會讓以太坊每秒10筆交易提高為每秒10000筆交易,但這會面臨一個新挑戰,就是:
用戶和應用都在不同分片上,要如何“交流”呢?
現在,所有帳戶、智能合約都儲存在一台計算機上(意指以太坊),它們相互交流非常方便。但如果未來我們的賬戶、合約在不同的分片上,就難以進行立即的對話和交流。
所以以太坊2.0的設計並不是讓每個節點都去處理所有的交易和信息,我們有1024個分片,每個分片都相當於是一個短的鏈,每個分片都有自己的共識算法。一個分片上發出交易,然後每6分鐘,每個分片間進行“交流”,也就是發現其他分片的哈希值。信標鏈(beacon chain)來管理共識算法和跨分片的溝通。
“異步”交易這是我之前設計的。比如我有5個幣,然後我想要把它轉給Bob,Bob有一個帳戶,它的帳戶在底端,我的在頂端。首先我要在頂端做一個交易請求,這個交易會進行第一個分片處理,然後產生一個哈希值,但它並不會立即完成,之後我們就可以把它放到底部的分片當中,當它在底部的分片進行驗證後,交易就能夠處理了。
打個比方,如果你想訂火車票和酒店,你當然會希望他們訂在一起,如果只有一個而沒有另外一個就沒有意義,如果訂火車和訂酒店在不同的分片怎麼辦?
我們想像兩個智能合約,一個合約用來訂火車票,另外一個是用來訂酒店。其中任何一項失敗,我們都可以把交易撤回。但由於這兩個合約在不同的分鏈中,確保一致性更難。
其中的一個解決方案是“猛拉”,每張火車票都有一個合約,每個房間都有一個合約,這樣每個合約都能夠代表我們訂座位或者訂房間的能力。現在我們能做什麼?在“猛拉”中發起一個合約,它的功能就是一次用一個合約。從酒店分片拉一個合約,從火車票再拉一個合約,兩個分片同時預定。而如果你放棄訂票,而別人還想訂,就可以通過“猛拉”拉到他們的合約裡。它是一個自動的過程,要么2個都訂,要么都不訂。
但是想像一下,我們需要花費5分鐘時間,讓一個分片知道另外一個分片的數據或者哈希值,可我們希望這個應用變得更加快捷。
比如,最開始Alice有10個,Bob有20,charlie有52個,我們把這些進行壓縮之後進行存儲。有兩種情況,一種情況是bob有20個coin,還有一種情況是Bob之後有25個coin。如果我們的錢包上面看到上面的根是R,下面的分片就可以做個推測,就是Bob有25個coin,就可以取25個coin給其他人。
但在這個過程中,我們的計算並沒有最終化,雖然看起來交易已經完成了。那麼你可能會問,似乎Bob有了這些coins,但是他還沒有花這些coins。我們假設Bob要把25個coins發給Charlie,他會做什麼?
我們不用去思考到底R是真實的還是假的,因為Charlie現在有52個coins了,所以知道R一定是真實的。這個邏輯是在後台進行的,邏輯效應是通過Bob、Charlie的錢包分析,我們至少先知道發生了這樣的交易。非常有意思是,你可以用通信的方式在跨區塊鏈中進行交易,還可以讓它創造應用程序,讓不同的區塊鏈進行跨鏈的交易。



