區(qū)塊鏈智能合約中的并發(fā)性和并行性
以太坊很慢——極其緩慢。
最近做一個(gè)簡(jiǎn)單的USDC審批交易,大概花了3個(gè)小時(shí)進(jìn)行驗(yàn)證。
這里有一個(gè)更有啟發(fā)性的統(tǒng)計(jì)數(shù)據(jù):以太坊平均每10~20秒發(fā)布一個(gè)區(qū)塊。每個(gè)區(qū)塊包含少于350個(gè)交易。所有這些大致轉(zhuǎn)換為每秒30個(gè)交易。
當(dāng)批評(píng)以太坊的緩慢時(shí),Visa的2000 tps經(jīng)常被提起。也許這是一個(gè)不公平的比較,因?yàn)橐蕴蝗蕴幱陂_發(fā)階段。
然而,以太坊似乎不太可能在短期內(nèi)主宰數(shù)字金融。
以太坊的低吞吐量是一個(gè)基礎(chǔ)性問題。
以太坊是一個(gè)基于賬戶的區(qū)塊鏈:賬本狀態(tài)被定義為一個(gè)從賬戶地址到一段數(shù)據(jù)的鍵值映射。
簡(jiǎn)單的ETH交易(價(jià)值轉(zhuǎn)移)可以實(shí)現(xiàn)賬戶對(duì)ETH余額數(shù)據(jù)的增減。同樣,更復(fù)雜的交易(合約調(diào)用)將改變指定帳戶的數(shù)據(jù)。
在這種情況下,以太坊交易是全球賬本狀態(tài)的轉(zhuǎn)換函數(shù)。這就是讓以太坊虛擬機(jī)(EVM)圖靈完成并允許智能合約成為可能的原因;以太坊智能合約本質(zhì)上是一個(gè)可交互的賬戶數(shù)據(jù)。
現(xiàn)在讓我們看看EVM如何處理或驗(yàn)證這些交易。并行處理所有交易是不合理的。按照設(shè)計(jì),所有交易都試圖改變整個(gè)全局狀態(tài)。
如果交易并行運(yùn)行,EVM將偏向于競(jìng)態(tài)條件:兩個(gè)程序(在本例中是交易)嘗試并行地增加uint變量。因?yàn)閮蓚€(gè)程序同時(shí)訪問變量,所以變量只增加一次而不是兩次。
為了解決此類并發(fā)bug,以太坊選擇逐個(gè)處理交易。換句話說,EVM是一個(gè)單線程狀態(tài)機(jī)。
因此,以太坊實(shí)現(xiàn)了Concurrency(并發(fā)),而不是Parallelism(并行)。
以太坊類似于只有一個(gè)出納員的票務(wù)隊(duì)列,其處理時(shí)間不一致。排隊(duì)的人是等待驗(yàn)證的交易,唯一的出納員是虛擬機(jī)。當(dāng)我們考慮到gas費(fèi)用時(shí),事情就變得更加復(fù)雜了?,F(xiàn)在,任何人都可以額外付費(fèi)插隊(duì)。超長(zhǎng)的隊(duì)伍意味著那些不能花錢買到更好位置的人將不得不等待過多的時(shí)間來處理他們的票。
以太坊的低吞吐量是個(gè)問題,尤其是從web3.0的角度來看。以太坊確實(shí)成為了所有web應(yīng)用程序的媒介。如果它目前的吞吐量持續(xù)下去,像為Reddit上的一篇帖子加贊這樣微不足道的任務(wù)可能需要超過兩個(gè)小時(shí)的時(shí)間來處理。我們生活在一個(gè)速度決定一切的時(shí)代,以太坊太慢了。
可能會(huì)問,為什么不選擇性地應(yīng)用并發(fā)性呢?
更詳細(xì)地說,為什么不將并發(fā)應(yīng)用到?jīng)_突的交易上——例如,將價(jià)值轉(zhuǎn)移到同一個(gè)帳戶上——并并行處理其余的交易。不幸的是,Saraph和Herlihy已經(jīng)向我們表明,所實(shí)現(xiàn)的加速充其量是適度的。
已經(jīng)提出了許多加速以太坊并提高其可擴(kuò)展性的解決方案。最近的EIP-1559——倫敦硬分叉——并不直接影響以太坊的交易速度,但理論上應(yīng)該通過減少普通用戶在交易處理前必須等待的潛在區(qū)塊數(shù)量來穩(wěn)定其在大規(guī)模交易峰值上的波動(dòng)。然后是L2的rollup,這應(yīng)該會(huì)直接影響以太坊的吞吐量,而不會(huì)破壞區(qū)塊鏈寶貴的去信任。
與此同時(shí),其他模擬通用虛擬機(jī)的區(qū)塊鏈也在積極開發(fā)中。有些已經(jīng)成功實(shí)現(xiàn)了并行,承諾吞吐量遠(yuǎn)高于以太坊的30 tps。特別關(guān)注Algorand、Solana和Cardano,以及他們?cè)谥悄芎霞s中實(shí)現(xiàn)并行化的獨(dú)特方法。
以上就是區(qū)塊鏈智能合約中的并發(fā)性和并行性的詳細(xì)內(nèi)容,更多關(guān)于智能合約中的并發(fā)性和并行性的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
你可能感興趣的文章
-
一文弄懂區(qū)塊鏈和以太坊智能合約的由來和運(yùn)行原理
這篇文章主要介紹了一文弄懂區(qū)塊鏈和以太坊智能合約的由來和運(yùn)行原理的相關(guān)資料,希望這篇關(guān)于區(qū)塊鏈和智能合約的文章,讓大家能夠深入的了解區(qū)塊鏈和以太坊智能合約的由來…
2021-11-08 -
以太坊智能合約是什么?以太坊的智能合約有什么用
這篇文章主要介紹了以太坊智能合約是什么?以太坊的智能合約有什么用,下面小編W為大家整理一篇比較詳細(xì)的教程,希望能幫助到投資君!…
2021-11-03 -
智能合約地址什么意思?智能合約安全嗎?
這篇文章主要介紹了智能合約地址什么意思?智能合約安全嗎?的相關(guān)資料,智能合約是表示為一段代碼的合約,旨在執(zhí)行一組指令。很多人不知道是智能合約地址什么意思,下面小編…
2021-08-23 -
科普:以太坊智能合約,以及大部分Token都在用的ERC標(biāo)準(zhǔn)是什么?
這篇文章主要介紹了以太坊智能合約,以及大部分Token都在用的ERC標(biāo)準(zhǔn)是什么?ERC表示以太坊版的意見征求稿,ERC中包含技術(shù)和組織等注意事項(xiàng)及標(biāo)準(zhǔn)。在現(xiàn)實(shí)生活當(dāng)中,我們經(jīng)…
2021-05-06 -
區(qū)塊鏈科普:加密貨幣的來歷,演變歷史
這篇文章主要介紹了區(qū)塊鏈科普:加密貨幣的來歷,演變歷史,學(xué)習(xí)加密貨幣時(shí)要知道的最重要的一件事是它們的最初目的。第二件最重要的事情是什么不是加密貨幣。如果投資者朋友…
2021-05-05 -
科普:什么是智能合約及其運(yùn)作方式,智能合約有哪些優(yōu)缺點(diǎn)?
這篇文章主要介紹了科普:什么是智能合約及其運(yùn)作方式,智能合約有哪些優(yōu)缺點(diǎn)?很多投資者還不知道,本文詳細(xì)講解了其定義和優(yōu)缺點(diǎn),需要的朋友可以參考一下,下面一起來看看…
2021-04-15 -
一張圖理解EOS是什么及EOS的智能合約
這篇文章主要介紹了一張圖理解EOS是什么及EOS的智能合約,從比特幣到以太坊,再到 EOS,它們背后的組織漸趨復(fù)雜。EOS包括三個(gè)部分:EOSIO 軟件,EOS 幣(EOS 通證),EOS 主…
2021-04-02 -
區(qū)塊鏈科普:什么是智能合約?智能合約有哪些特點(diǎn)?
這篇文章主要介紹了什么是智能合約?智能合約有哪些特點(diǎn)?如果有一種合約,事先確定了規(guī)則,一旦觸發(fā)相關(guān)條款,合約將自動(dòng)執(zhí)行,無需人為干涉,也不用擔(dān)心有人抵賴。是否存…
2021-03-27 -
eos智能合約是什么意思?eos智能合約有什么用
這篇文章主要介紹了eos智能合約是什么意思?eos智能合約有什么用?eos智能合約是通過信息庫和公共內(nèi)存數(shù)據(jù)庫來進(jìn)行彼此之間通訊的,而步通信導(dǎo)致的spam問題將由資源限制算…
2021-03-17