www涩-www黄网站-www黄色-www黄色com-国产免费拍拍视频在线观看网站-国产免费怕怕免费视频观看

去向何處:以太坊的成長煩惱

2018-06-26 17:05:35 南湖互聯網金融學院  點擊量: 評論 (0)
本文就以太坊中存在的問題進行介紹,其實本文介紹的以太坊中的問題,同時也是所有區塊鏈網絡平臺需要解決的地方。以區塊鏈技術為基礎建立的網絡平臺,必須能夠對這些問題提出有效的解決方案,才有可能擁有長期的發展。

本文共6200字左右,閱讀完成預計需要14分鐘左右。

后臺回復“BT03“,獲取文章PDF版。

在上一篇文章中,我們簡單介紹了區塊鏈網絡平臺的概念,以及在比特幣的基礎上誕生的以太坊。在目前的區塊鏈網絡平臺經濟系統中,最終服務用戶的是應用程序,而后者又以平臺為基礎開發。因而平臺中存在的問題必然會影響用戶對應用程序的使用。以太坊作為這個領域的先行者,其創新之處已經得到了市場的肯定,但是其內部結構中仍然存在著許多亟需解決的問題。本文就以太坊中存在的問題進行介紹,其實本文介紹的以太坊中的問題,同時也是所有區塊鏈網絡平臺需要解決的地方。以區塊鏈技術為基礎建立的網絡平臺,必須能夠對這些問題提出有效的解決方案,才有可能擁有長期的發展。

一、共識機制

共識機制是維持以太坊網絡中交易信息記錄到區塊鏈中的保障,所以共識機制是以太坊中所有的交易活動以及智能合約順利執行的基礎。以太坊中的共識機制采用的是與比特幣相同的工作量證明(Proof of work),這種證明機制需要節點[就是參與以太坊網絡的用戶]通過耗費自己的“努力”來爭奪記賬權,然后獲得代幣獎勵回報。而這里的花費的“努力”具體指硬件成本以及電力成本。工作量證明中,節點要在難度非常大的情況下猜出一個未知數,這個過程是依靠計算機完成的。如果計算機的性能越好,或者一個節點擁有的計算機越多(我們將這兩個統稱為算力資源),那么其猜測的速度也就更快。另外,計算機在猜測的過程中還需要消耗大量的電量。因而,算力資源以及電力資源就成了維持以太坊中的共識機制必不可少的消耗。當參與以太坊網絡的用戶越多時,其消耗的資源量也就更大,這也就引發了這樣一個平臺是否一定需要消耗大量資源才能順利運行的思考。

與工作量證明對應,有一種叫做權益證明(Proof of stake)的共識機制。權益證明就是依據節點擁有的某種資源的量來決定話語權。而這個資源一般來說都是區塊鏈中的代幣持有量。也就是說,在每一輪要產生新的區塊時,對于不同的提議區塊(記錄同一段時間內的交易信息),各個節點對不同的區塊進行投票,最后得票最多的區塊獲勝。而作為回報,區塊提議人和投票人都能夠獲得一定量的代幣獎勵。

權益證明的最大優點就是避免了工作量證明中需要耗費大量資源的情況。事實上,從工作量證明機制轉為權益證明機制正是以太坊未來的計劃之一。雖然這樣做能夠避免資源浪費,但是也存在著一定的問題。比較突出的一個就是“無利害關系(Nothing at stake)”。我們說過,在權益證明機制中,節點通過對提議區塊進行投票,如果自己投的提議區塊最終勝出,那么節點也能夠獲得投票獎勵。這時候,可能就會存在節點在每一輪中,為了增加自己獲得獎勵的機會,對多個候選區塊進行投票(投票是免費的),這樣的做法對共識機制的正常運行就產生了很大的影響。為了解決這個問題,采用權益證明機制的區塊鏈網絡平臺都提出了自己的解決方案,但是這些方案原理上都是一致的。

節點能夠在同一輪對多個提議區塊投票的原因主要是兩個,一個是為了獲得獎勵,另一個是投票沒有成本。這時候只需要破壞這兩個任意一個條件就能夠消除節點“不老實”的行為動機。很顯然,取消獎勵不現實的,因為共識機制的維持需要節點參與,節點的參與會消耗一定的電力和硬件成本,因而需要激勵機制。那剩下的就只能夠從投票成本上入手,即讓投票不再是免費的。節點為了獲得投票權,必須要繳納一定量的代幣作為保證金,當節點被發現作出多次投票的行為時,這個保證金將會被沒收。如果節點按正常情況行使自己的投票權時,這個保證金在一定時間后便能夠被贖回。

實際上,對于權益證明機制來說,由于有機會獲得獎勵的節點是本身就持有代幣資源的人,并且擁有代幣越多的節點獲得的獎勵也就越多。這使得我們又回到了一個歷史性的問題上:“富人更富(The rich get richer)”。我們甚至可以想象在一種極端的情況下,絕大多數的代幣資源都被一個節點擁有,那么這個節點就占據了話語權,成為了“獨裁者”。并且由于獎勵也都被這個節點獲得,使得其地位無法動搖。

二、吞吐量

吞吐量指以太坊處理網絡中交易的能力,其本質上是由共識機制決定的,因為對于任意一筆交易來說,獲得了共識便等于交易的完成,如果獲得共識的速度越快,那么交易的處理能力也就越快。一般來說,我們使用每秒交易量(Transactions per second, TPS)來衡量網絡平臺的處理能力。

這里需要說明的一點是,我們之前說過,以太坊處理的是智能合約[更嚴謹的說法應該是以太坊虛擬機(Ethereum virtual machine,EVM)來處理智能合約,以太坊虛擬機存在于以太坊的客戶端中],那么這里為什么不用處理智能合約的能力來評價其能力呢?這是由于真實的以太坊能處理的事情還很少。用智能手機來做對比的話,上個世紀九十年代末期的一個智能手機處理不了的事情,以太坊現在也沒有能力處理。現在的以太坊能夠處理的智能合約僅僅限于商業邏輯上的內容(”if this then that”,意思就是,如果什么條件滿足,那么就執行什么)、驗證數字簽名(證明身份)等簡單的內容。所以我們這里用每秒交易量來衡量其處理智能合約的能力。

回到吞吐量的內容,目前以太坊理論上支持的每秒交易量(TPS)為25(實際上達不到這個數字)。這相對于比特幣(TPS為7)已經有了很大提升。但是這仍然讓以太坊網絡擁擠不堪,要知道這和真正的商業級應用還有著幾個數量級上的差距。Visa的TPS約為2000,而支付寶在高峰時期每分鐘處理的交易數量甚至達到了百萬筆。由于其背后的技術和平臺的不同,我們并不能簡單地將這幾個數字作對比然后決定誰好誰壞。但是從這個數字上能夠看出的一點是,要想滿足真正的商業級應用,以太幣必須解決其網絡吞吐量的問題。

對于網絡吞吐量的問題,以太坊在計劃中也給出了自己的解決辦法,主要包含兩個方面,一個是鏈下(Off-Chain)交易,另一個是分片(Sharding)。

為了幫助讀者較容易理解這兩個方法。我們現在假設以太坊是一家銀行,這家銀行只有一個實際存在的總部,而銀行能夠處理的事情就是為用戶提供存款與取款的服務。現在這家銀行面臨的問題就是只有一家總部,所有的人都需要來到這個總部進行存款或者取款,由于用戶數量太多,銀行處理不了,用戶只能堵在銀行門口排隊等待。

鏈下交易

鏈下交易的意思是,對于排隊等待的用戶,由于這些用戶有著不同的存款與取款需求,現在將這些用戶匹配,用戶間自行交易。需要存款的用戶將自己的資金給需要取款的用戶,然后雙方將自行交易后的賬戶狀態提交。這樣對于銀行來說,本來是存款與取款兩筆交易,現在只需要更新雙方賬戶的余額就行。對于銀行來說大大減小了業務壓力。這個解決方式與比特幣的閃電網絡十分相似。同時其可能存在的問題也與閃電網絡相似。

這個途徑中存在的一個很大問題是,當看到這么多用戶的需求無法得到滿足時,就可能會出現專門提供這個服務的人,并試圖從中獲取報酬。也就是讓其他用戶都在他/她這里處理存款或者取款的業務,最后再將處理完的用戶賬戶信息提交給銀行統一處理。最后銀行只需要對這些用戶的賬戶余額更新即可。但是,對于提供這個服務的用戶來說,不知不覺中,其控制的賬戶以及資金規模就能夠達到很大規模,這意味著這個解決方式具有一定的中心化的趨勢。如何監督這個中心用戶,以確保其不會做出有害于用戶的行為?就算這個中心化的用戶能夠保始終提供正常的服務,保證整個以太坊網絡系統的運行,但是對于一個本意是建立去中心化網絡的以太坊,卻產生了一個或者多個中心化的節點。這很顯然是有悖于其設計理念的。

分片

分片指將以太坊網絡中需要處理的交易分開處理。用銀行的例子理解就是,銀行多開設幾家分行,這樣便能夠很大地緩解只有一家總部的業務壓力。但是對于以太坊來說,與銀行系統不同的一點是,銀行可以將不同的分行的信息匯總得到所有用戶的賬戶信息。通過分片,實際上就是將以太坊的區塊鏈分成不同的“分鏈”,這樣做的結果是,實際上不存在類似于銀行總部一樣的“主鏈”了。以太坊網絡只有不同的分鏈存在,這樣引起的問題就是,對于不同的分鏈或者說分片上的用戶節點來說,如何進行交易?這也正是以太坊目前努力的方向,試圖解決由分片引起的不同分片之間的溝通交易問題,也就是說在采用這種方式解決網絡吞吐量問題的同時,由讓開發者以及用戶都覺察不到存在的溝通的問題。

除了不同分片之間的溝通問題以外,分片還會引起以太坊整體網絡的分散化。我們說過,以太坊目前的共識機制是工作量證明,工作量證明機制雖然消耗了大量電力資源,但是這同時也保證了以太坊區塊鏈的安全性。因為全網絡節點的算力共同維持著一條鏈的共識,這樣使得惡意攻擊者的攻擊成本巨大。但是一旦分片之后,隨著節點的分開,整體的算力也將分開。那么每一個分片所擁有的算力都將不如之前的情況,這也就降低了維持每一條分鏈的共識算力支持,使得對于共識的攻擊成本較之前相比大大降低。

三、交易費用

用我們上面的銀行做類比的話,以太坊中的交易費用相當于在銀行排隊的例子中增加的一個插隊機制。也就是說,對于眾多排隊等待處理業務的用戶而言,如果繳納一定的手續費,那么就能夠插隊提前辦理業務。在以太坊中,每一筆交易、智能合約的處理都需要繳納一定的手續費用,叫做“燃料(GAS)”。而這個燃料也正是以太坊中的代幣:以太幣。燃料主要有兩個用途,一方面以太坊網絡在執行智能合約的代碼時,系統需要消耗一定的燃料(這里可以把這個燃料費類比于汽車的燃油);其次,燃料的另外一部分由參與維持共識機制的節點獲取,作為生產區塊的另一部分獎勵。我們說過,節點在生產區塊的時候需要將等待確認的交易打包成區塊,然后進行解謎。在這個打包過程中,節點處于自身利益考慮,會優先將交易費用高的交易加入區塊中。因而付出更高的交易費用便意味著交易得到確認的速度更快。在這種“競爭”模式下,在沒有產生額外的價值情況下,智能合約的執行成本增加了。

當然,采用交易費用的設定主要有兩個目的,一個是防止智能合約的執行陷入無限循環,另一個是為了保護以太坊網絡的網絡資源不被濫用。第一,在以太坊中處理的智能合約是圖靈完備(Turing completeness)[關于圖靈完備的意思比較復雜,作為直觀的理解,讀者可以認為具有圖靈完備性的編程語言(正是以太坊中的情況),有能力解決一切可以計算的數學問題。而這樣的話,如果在編寫代碼的時候,其中包括無限循環的語句,那么這個代碼的執行便會陷入無限循環。至于更嚴格意義上的含義,有興趣的讀者可自行查閱資料]的,采用交易費用的機制,設定智能合約中代碼執行的步驟上限,能夠防止合約執行的時候陷入無限循環。其次,因為如果不存在交易費用的話,懷有惡意的人可能會向以太坊網絡發送大量沒有實際意義的交易請求,從而造成以太坊網絡的堵塞。特別是我們在上面說過,以太坊目前能夠處理交易的能力十分有限,這使得這樣的攻擊更加容易實現。這種占據網絡資源,使得系統無法服務于有正常需求用戶的攻擊就是“拒絕服務器攻擊(Denial-of-service attack)”。

但是,如果我們換一個角度看待這個問題,交易費用的設定雖然在一定程度上限制了拒絕服務器攻擊的發生,但是另一方面似乎又具有加劇網絡擁堵的潛在可能。拿前段時間十分火爆的以太坊養貓為例,由于游戲的火爆,許多玩家不惜付出更高的交易費用,使得以太坊網絡都被有關以太坊養貓的交易塞滿了,而其他用戶的轉賬等交易無法得到處理。這時候我們再回頭看一下拒絕服務器攻擊,我們可以假設這么一種情況(即使可能性不高),攻擊者想對以太坊發動拒絕服務器攻擊,并需要為此付出很高的交易費用成本(當然還有硬件、電力成本),但是只要他/她從這個攻擊中得到的收益更高時,攻擊就會發動。而又因為交易費用較高的交易總能得到優先處理,這就會導致這個攻擊一定會成功。所以從這個角度上講,交易費用的設定在一定程度上減少了拒絕服務器攻擊的動機的同時,也使得拒絕服務器攻擊一旦出現,就很容易造成網絡的擁堵。

四、治理(Governance)

區塊鏈網絡平臺的治理指對其日常運行的維護,對于偏離其正常運行軌道時的修復補救手段以及對整個網絡中的規則更新、修改等內容。關于這一點,以太坊奉行著自己的至高原則:“The code is law(代碼即法則)”。一旦代碼完成發布后,沒有任何人能夠對其進行修改,對其運行造成干擾。因為在用代碼編寫的智能合約發布后,會在全世界所有的以太坊網絡節點運行。導致以太坊硬分叉為現在的以太坊和以太坊經典的The DAO事件,正是由于這個原因。當時的現實情況是,人們眼睜睜地看著黑客利用The DAO的代碼漏洞,從當時價值1.5億美金的以太幣池中源源不斷地拿走資金,同時卻沒有任何辦法。造成The DAO攻擊事件的原因很簡單,就是因為其代碼中的一個條件判斷語句出了問題。當這個問題出現后,由于奉行“代碼即法則”,沒有人能夠對The DAO的代碼進行修改又或是停止其運行。

對于這樣的一個設計理念,不同的人具有不同的理解。但是不可否認的一點是,在The DAO事件出現以前,以太坊的運行并沒有出現絲毫問題,并且這件事情并不是由以太坊的漏洞造成的。真正造成問題的原因是在于開發The DAO的人員。對于這樣的原則,在“理想”情況下,即智能合約的編寫不會出現問題的情況下,確實能夠將整個系統透明準確地傳遞給每一個用戶,這在一個去中心化的網絡中能夠建立極大的信任。或許這也就是區塊鏈被認為是“重塑信任”的一個重要原因,是區塊鏈真正能夠實現“重塑信任”的重要手段。

但是我們不得不思考,在沒有人能夠保證所有的代碼,所有的智能合約都是按照其設計本意準確編寫的情況下,一旦出現預測之外的事情,如何對其進行治理和解決?從這個角度說,以太坊其實并不存在任何的治理機制,它只是將唯一的原則告訴了所有人。

五、智能合約

關于智能合約,除了我們剛剛說到的其在發布之后便不可修改不可撤回的特性外,還有兩點語需要注意。第一點是支持智能合約編寫的語言,目前以太坊的智能合約基本上由Solidity語言編寫,除此之外還支持Go, Java, C++, Rust, Haskell。這一點相對于正處于開發階段并聲稱支持任意一種編程語言的區塊鏈網絡平臺(如Cosmos而言,對開發者來說或多或少是一個局限性。第二點是關于智能合約的執行,上文我們說到智能合約是在以太坊區塊鏈網絡中執行的,這么說不能說錯,但是更嚴謹一點的話,執行智能合約的是以太坊虛擬機,以太坊虛擬機存在于以太坊的客戶端中。對于任何想要加入以太坊網絡的節點來說,通過下載安裝以太坊客戶端就能夠加入網絡,而在下載的以太坊客戶端中都內置了以太坊的虛擬機,用于對智能合約的執行。其步驟上簡單來說就是將用代碼編寫的智能合約轉化為更低級的二進制語言,讓機器讀懂進而執行。

但是正如我們在共識機制中說到的,以太坊虛擬機目前能夠實現的功能和二十年前的智能手機并沒有太大差距。像現在我們日常使用電腦網絡儲存文件、發送郵件以及任何具有圖形界面的功能,以太坊暫時都是做不到的。如果僅限于轉賬領域,那么目前以太坊虛擬機的功能已經足夠了,但是如果要實現更復雜的功能,那么以太坊虛擬機仍然有很大的發展空間,而在引入新的功能的同時,隨之帶來的問題也是很大的挑戰。

六、總結

本文總結了目前以太坊區塊鏈平臺所面臨的幾個重要的問題。以太坊所采用的共識機制對環境并不友好,其改進的計劃中也存在著或多或少的問題;而共識機制又影響著以太坊網絡對于交易或者說智能合約達成共識的速度,從而又限制了以太坊的網絡吞吐量,而對此以太坊給出的解決計劃目前看起來似乎也并不是那么“完美”;治理方面以太坊奉行的至高原則值得我們對人與代碼這個話題的思考;最后在智能合約方面,不管是其支持唯一的編寫語言,還是虛擬機能夠帶來的功能都限制著以太坊未來發展的空間。

盡管存在這些尚未解決的問題,但是以太坊卻是唯一一個大規模運行的區塊鏈網絡基礎平臺,從這個角度上說,以太坊確實也經受住了實際的考驗,至于未來的路,我們拭目以待。

(完)

大云網官方微信售電那點事兒

責任編輯:售電衡衡

免責聲明:本文僅代表作者個人觀點,與本站無關。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關內容。
我要收藏
個贊
?
主站蜘蛛池模板: 亚洲国产成人精品区| 精品精品国产自在久久高清| 日韩性色| 一区二区三区久久精品| 性感毛片| 成人午夜视频免费观看| 中文无码日韩欧免费视频| 亚洲国产人成中文幕一级二级| 亚洲综合色就色手机在线观看| 亚州免费| 中国欧美一级毛片免费| 日本japanesevideo黑人| 久久精品国产福利| 亚洲第一网站在线观看| 美女视频免费黄| 欧美成人毛片| 在线三级网址| 成人久久伊人精品伊人| 特及毛片| 91香蕉国产亚洲一区二区三区| 午夜天堂视频| 亚洲国产成人久久综合一 | 免费国内精品久久久久影院| 久久精品亚洲一级毛片| 欧美精品hdxxxxx| 亚洲网站一区| 亚洲制服丝袜美腿亚洲一区| 欧美jizzhd精品欧美| 久爱www免费人成福利播放| 久久99国产精品久久99| 国产成人精视频在线观看免费| 在线高清免费爱做网| 日本男人的天堂| 欧美激情一级欧美精品| 国产精品国产亚洲精品不卡| 国产高清免费视频| 黄色网址在线免费观看| 性欧美videos俄罗斯| 国产一级黄毛片| 美女毛片在线看| 国内自拍区|