從POW到Casper,感受以太坊共識機(jī)制演進(jìn)藝術(shù)區(qū)塊鏈
對區(qū)塊鏈項(xiàng)目來說,共識機(jī)制是其根本價(jià)值所在。共識是區(qū)塊鏈應(yīng)用落地的基礎(chǔ),指的是參與者如何在此系統(tǒng)中進(jìn)行協(xié)作。
前言
區(qū)塊鏈起源于比特幣,發(fā)展于以太坊。想對區(qū)塊鏈有系統(tǒng)性的認(rèn)知,最好先熟知比特幣和以太坊的知識。這是我從比特幣和以太坊寫起的原因。
而對區(qū)塊鏈項(xiàng)目來說,共識機(jī)制是其根本價(jià)值所在。共識是區(qū)塊鏈應(yīng)用落地的基礎(chǔ),指的是參與者如何在此系統(tǒng)中進(jìn)行協(xié)作。所以,本文希望能對比特幣和以太坊的共識機(jī)制做總結(jié),幫助大家更好地認(rèn)識區(qū)塊鏈的價(jià)值。
正文
初遇比特幣,很多人看到的是一個周身被貪婪、欺騙所圍繞,充滿暴戾與丑聞的事物。
而當(dāng)有人試著吹散泡沫,探尋本源時(shí),他們會為比特幣所構(gòu)建的“共識”所折服。感覺像是走入一個全自動化工廠,每個處理事情的節(jié)點(diǎn),都按照既定規(guī)則運(yùn)轉(zhuǎn)。
從廣義上講,共識是一種社會協(xié)作方式,可在不同領(lǐng)域應(yīng)用,提升效率,是比特幣區(qū)別于“郁金香”、“密西西比”等泡沫事件最本質(zhì)的不同。
另一方面,比特幣共識并不完美。由于中本聰?shù)脑馐莿?chuàng)造一種“錢”,所以在CAP原則(指的是在一個分布式系統(tǒng)中,一致性Consistency、可用性Availability、分區(qū)容錯性Partition tolerance,三者不可得兼)框架下,他選擇了一致性和分區(qū)容錯性,弱化了可用性,使比特幣共識在擴(kuò)展應(yīng)用時(shí),遇到了難題。
CAP原則,文字內(nèi)容來源于百度百科
基于此,有人試著去研究不同的共識機(jī)制,彌補(bǔ)比特幣在應(yīng)用性上的不足。
以太坊社區(qū)是其中最著名的一群人,他們正嘗試把權(quán)益證明POS引入到以太坊中,并將此計(jì)劃命名為Casper(取自同名電影,中文譯為《鬼馬小精靈》)。
本文將圍繞比特幣工作量證明POW與以太坊權(quán)益證明計(jì)劃Casper展開敘述。
比特幣工作量證明POW
起初,中本聰想創(chuàng)造一種提前約定好發(fā)行機(jī)制,并且一旦發(fā)行,任何人都無法操控的貨幣。這樣就避免了有人因一己私利,通過控制貨幣發(fā)行量,變相盤剝民眾利益。
為了達(dá)成目的。首先,中本聰將比特幣總量設(shè)定在2100萬個,并利用動態(tài)函數(shù),規(guī)定每10分鐘產(chǎn)出一定數(shù)量。這2100萬個幣,將于2140年全部流通于世。
其次,比特幣交易記錄不受任何數(shù)據(jù)中心控制,而是利用點(diǎn)對點(diǎn)技術(shù)(P2P),讓用戶之間直接轉(zhuǎn)賬,過程就像用微信互傳文件一樣。
為了維護(hù)系統(tǒng)正常運(yùn)行,中本聰將新產(chǎn)出的比特幣與轉(zhuǎn)賬手續(xù)費(fèi),獎勵給記賬參與者(礦工,又稱節(jié)點(diǎn))。干活的人得到了獎勵,這樣便有人心甘情愿的為系統(tǒng)付出了。
為了不出差錯,中本聰需要采取一套運(yùn)行規(guī)則來使系統(tǒng)符合以下原則:
1. 結(jié)果一致。每個節(jié)點(diǎn)記錄的全網(wǎng)交易記錄是一致的。
2. 不可篡改。任何人無法篡改交易記錄。
3. 有效率。貨幣系統(tǒng)工作效率高。
4. 可持續(xù)。貨幣系統(tǒng)可一直運(yùn)行下去。
而用以保證系統(tǒng)正常運(yùn)行的規(guī)則,便是共識機(jī)制。
比特幣共識機(jī)制是如何運(yùn)轉(zhuǎn)的呢?
當(dāng)用戶A給用戶B轉(zhuǎn)賬時(shí),節(jié)點(diǎn)(包括AB自己)的比特幣客戶端,會收到這一信息。
同時(shí),所有參與者會在客戶端內(nèi),利用計(jì)算設(shè)備(礦機(jī))每隔10分鐘計(jì)算一道“哈希難題”。這道難題出現(xiàn)時(shí)間及難度,受動態(tài)函數(shù)控制,以保證10分鐘間隔。
這個過程被稱作工作量證明(POW)。
率先計(jì)算出正確結(jié)果的節(jié)點(diǎn),將根據(jù)代碼審查交易信息是否屬實(shí),將包括AB用戶在內(nèi)、一定時(shí)間段內(nèi)的轉(zhuǎn)賬信息,打包在一起確認(rèn)(打包成“塊”),并將當(dāng)前的“塊”,連接到此前的“塊”上,生成“區(qū)塊鏈”,并同步(廣播)至全網(wǎng)所有比特幣節(jié)點(diǎn)。
此時(shí),A給B的轉(zhuǎn)賬交易會判定為有效。
記賬節(jié)點(diǎn)獲得新產(chǎn)生的比特幣及轉(zhuǎn)賬手續(xù)費(fèi),作為獎勵,并開始新一輪的哈希難題計(jì)算。
此外,記賬結(jié)果以“最長鏈”為準(zhǔn)。若有2個參與者同時(shí)完成工作量證明,并打包區(qū)塊,則他倆會開始“競賽”,誰最先產(chǎn)生新的區(qū)塊,就以誰為準(zhǔn)。
工作量證明機(jī)制(POW)使每次參與記賬的節(jié)點(diǎn)是唯一的,計(jì)算結(jié)果會被廣播至全網(wǎng)且以最長鏈為準(zhǔn),這保證了全網(wǎng)節(jié)點(diǎn)交易記錄是一致的。
此外,在記賬時(shí),節(jié)點(diǎn)同時(shí)會檢查與該交易有關(guān)的、所有地址的“未被花費(fèi)的余額”(UTXO)。比如,檢查A是否有未被花費(fèi)的余額,則需檢查A是否收到過更早的轉(zhuǎn)賬,以此類推,直到“創(chuàng)世交易”。
理論上,只要“創(chuàng)世交易”不變,當(dāng)前每個人未被花費(fèi)余額就是確定的。
創(chuàng)世交易不變,加上交易記錄分布式存儲,使得任何人無法篡改交易記錄。
比特幣生態(tài)
能源消耗與“下議院悲劇”
事實(shí)上,比特幣為了保證系統(tǒng)一致性,犧牲了可用性,并引出一系列問題。
首先,比特幣不是有效率的。
一方面,受到大小的限制,每個“塊”包含4000條交易數(shù)據(jù),按10分鐘的生成時(shí)間換算,相當(dāng)于每秒處理6.67條交易,以至比特幣的全網(wǎng)未確認(rèn)交易數(shù)一度達(dá)12134筆,這對貨幣來說是不合格的。
另一方面,工作量證明機(jī)制消耗大量無謂資源。每次打包成塊時(shí),所有節(jié)點(diǎn)分別計(jì)算哈希難題,而最終有資格記賬權(quán)的節(jié)點(diǎn)卻是唯一的。其余節(jié)點(diǎn)所做工作皆是浪費(fèi)。
此外,為了有更大概率獲得記賬權(quán),人們發(fā)明了專門的礦機(jī)來提高算力。而礦機(jī)在計(jì)算哈希難題過程中,消耗大量電力。據(jù)統(tǒng)計(jì),目前全球比特幣礦場年耗電量,超過捷克等全球159個國家。
其次,比特幣或許不是可持續(xù)的,獨(dú)特的發(fā)行機(jī)制或許會讓比特幣陷入“下議院悲劇”。
由于中本聰規(guī)定,每產(chǎn)出21萬個區(qū)塊,新比特幣獎勵減半。到2140年,比特幣全部被挖出時(shí),礦工獎勵僅剩用戶轉(zhuǎn)賬手續(xù)費(fèi)。
同時(shí),別忘了“塊”的大小是有限制的,所以手續(xù)費(fèi)數(shù)量是一定的。
于是,在未來某一時(shí)刻,當(dāng)?shù)V工記賬獲得的比特幣獎勵,與礦機(jī)硬件、電力地租等成本持平時(shí),大量礦工將退出比特幣系統(tǒng),算力集中在少數(shù)人手里。
他們可以憑借已掌握的算力,在之前的區(qū)塊上,延伸出新的“最長鏈”,從而將另一條鏈作廢,從而將自己已經(jīng)支付的幣取回。這會對比特幣系統(tǒng)造成毀滅性打擊。
算力攻擊
事實(shí)上,比特幣社區(qū)早已認(rèn)識到問題的存在,近年來他們討論過擴(kuò)大“塊”的容量,或者引入隔離見證、閃電網(wǎng)絡(luò)等方案,提高每秒可處理的交易數(shù)(TPS)。他們甚至還討論過是否擴(kuò)大發(fā)行總量。但始終沒有達(dá)成一致。
好消息是,盡管比特幣支付還不像法幣一樣方便,但美國、日本、德國、加拿大、白俄羅斯、瑞士等國家已接受比特幣支付,并在一定法律范圍內(nèi),承認(rèn)其合法地位,部分國家還設(shè)置了比特幣ATM機(jī)。
本質(zhì)上,作為一種貨幣,比特幣正向著初衷邁進(jìn)。相比之下,以太坊需要解決的問題,就要復(fù)雜很多了。
區(qū)塊鏈能干嘛?
比特幣誕生后,人們發(fā)現(xiàn)共識機(jī)制可以提供全新協(xié)作方式。
比如,游戲開發(fā)者可以將游戲內(nèi)交易的部分,接入?yún)^(qū)塊鏈軟件開發(fā)工具包(SDK),這部分的數(shù)據(jù)將跟隨區(qū)塊鏈本身交易數(shù)據(jù),一起被礦工打包確認(rèn)。
這種做法對游戲開發(fā)者來說,可以節(jié)省相應(yīng)儲存、計(jì)算成本。而對于玩家們來說,他們的交易記錄無法被任何人篡改,從而不會出錯。
再比如,A公司向B公司購買價(jià)值10萬元商品,雙方簽了合同,由C公司做證明人擔(dān)保,約定1個月后付款。合同信息由礦工打包進(jìn)區(qū)塊鏈,無法被篡改。
B公司交付商品,C公司確認(rèn)合格,雙方在支付賬戶內(nèi)同時(shí)簽名,使區(qū)塊鏈內(nèi)的合同生效。1個月后,A公司賬戶會自動向B公司付款,無需人工干預(yù)。
事實(shí)上,區(qū)塊鏈項(xiàng)目“超級賬本”(hyperledger)正在積極實(shí)踐第二個例子所說的事情。目前,參與這一項(xiàng)目的公司,已經(jīng)達(dá)200余家,包括荷蘭銀行、巴黎銀行、華為、三星、IBM等企業(yè)。
可以看出,當(dāng)?shù)V工打包確認(rèn)的不僅僅是交易記錄,而是更廣闊的數(shù)據(jù)時(shí),區(qū)塊鏈?zhǔn)褂梅秶矔S之?dāng)U大,其功能跟云計(jì)算、支付寶等常見應(yīng)用類似。
而由于區(qū)塊鏈具備不可隨意篡改、自動執(zhí)行合約的特性,使得溝通、信任、執(zhí)行等成本大幅降低,在部分場景中受到企業(yè)青睞。
但現(xiàn)階段,區(qū)塊鏈技術(shù)想做到大規(guī)模應(yīng)用,還得解決諸多問題,其中效率和可持續(xù),尤為關(guān)鍵。
所以,相比于比特幣,以太坊更關(guān)注可用性。
為此,他們正嘗試將共識機(jī)制由工作量證明(Proof of Work,簡寫為POW)轉(zhuǎn)換成權(quán)益證明(Proof Of Stake,簡寫為POS)。
并基于權(quán)益證明,開發(fā)以太坊獨(dú)有的Casper共識機(jī)制,提高交易處理速度等,著重解決效率和可持續(xù)問題。
該計(jì)劃將分為兩個階段實(shí)現(xiàn),第一個階段名為Casper FFG,第二個階段名為Casper CBC。
以太坊生態(tài)
權(quán)益證明機(jī)制POS
本質(zhì)上,以太坊也是一種“錢”,其產(chǎn)生過程同樣來自于礦工記賬獎勵。
只是,以太坊礦工除了記錄交易信息,還記錄游戲、金融領(lǐng)域的一些數(shù)據(jù),這一載體被稱為“智能合約”。
所以,在解決效率和可持續(xù)問題之前,以太坊也需要做到結(jié)果一致、不可篡改。
那么,股權(quán)證明共識機(jī)制是如何運(yùn)轉(zhuǎn)的呢?
當(dāng)用戶間發(fā)生轉(zhuǎn)賬,以太坊節(jié)點(diǎn)客戶端,會收到信息。
同時(shí),所有參與者(節(jié)點(diǎn),或稱驗(yàn)證人)客戶端會根據(jù)代碼,審核信息是否屬實(shí),并自動打包成“塊”。然后客戶端會對這些“塊”進(jìn)行投票。
得票最高的“塊”勝出,組成“鏈”,并同步至全網(wǎng)以太坊節(jié)點(diǎn)。此時(shí),轉(zhuǎn)賬信息被判定為有效。
勝出“塊”的支持者們將獲得以太坊幣獎勵,并開始新一輪投票。
其中,投票權(quán)重由客戶端里以太坊幣的多少決定。客戶端持有的以太坊幣越多,投票權(quán)重越高,獲得獎勵概率越大。
這個過程被稱作權(quán)益證明(POS)。
在權(quán)益證明共識中,得票最高的“塊”通常是唯一的,且結(jié)果會被廣播是全網(wǎng),這保證了全網(wǎng)交易記錄的一致性。
更重要的是,在權(quán)益證明機(jī)制產(chǎn)生區(qū)塊鏈的過程中,不需要使用機(jī)器計(jì)算“哈希難題”,使得其每秒可處理的交易次數(shù)大幅提升,并且節(jié)省了機(jī)器所需的電費(fèi)、地租等成本。
以太坊權(quán)益證明Casper
今年5月,F(xiàn)FG階段第一個代碼版本已正式發(fā)布,旨在將以太坊工作量證明轉(zhuǎn)變?yōu)闄?quán)益證明。
在Casper FFG階段,以太坊每50個區(qū)塊中,會有1個由權(quán)益證明產(chǎn)生。
在未來Casper CBC中,以太坊共識機(jī)制將全面轉(zhuǎn)為權(quán)益證明,并在此基礎(chǔ)上,做兩方面升級:加入保證金制度,上線分片技術(shù)。
保證金制度是為增強(qiáng)安全性而設(shè)立的。Casper規(guī)定,節(jié)點(diǎn)需提交以太坊幣作為保證金,一旦其想作弊,比如在為全部“塊”進(jìn)行投票,或者試圖對網(wǎng)絡(luò)發(fā)起攻擊,則他們的保證金將全部被沒收。
而分片技術(shù),是為了進(jìn)一步提升系統(tǒng)處理交易的速度。分片技術(shù)指的是,先將節(jié)點(diǎn)分組,再將完整的交易數(shù)據(jù)分片,隨機(jī)放到不同組內(nèi)驗(yàn)證,最終結(jié)果打包成“塊”,組成“鏈”。
分片技術(shù)就像寫書一樣。首先,系統(tǒng)將“寫作主題”,也就是一定時(shí)間內(nèi)的交易信息,梳理出“章節(jié)目錄”;然后,隨機(jī)將不同章節(jié)的寫作任務(wù),分配給不同的小組。大家分頭寫完后,再組合成“書”。
理論上,參與驗(yàn)證的節(jié)點(diǎn)是無限多的,分組也會無限多,所以,以太坊處理交易速度是無限快的。
從目前的進(jìn)度來看,以太坊有望在明年年底前,完成Casper CBC上線。
同時(shí),隨著子母鏈(Plasma)、賬戶分離概念(account abstraction)以及無狀態(tài)客戶端(statelessclients)等功能上線,以太坊網(wǎng)路建設(shè)將全部完成。
網(wǎng)傳V神個人以太坊地址
V神的“驕傲”
Casper共識對于以太坊意味著什么?從其創(chuàng)始人V神(Vitalik Buterin,以太坊創(chuàng)始人)的言論中,可以看出端倪。
在他個人推特中,置頂內(nèi)容是,提醒大家防范假冒以太坊的騙子。
此外,他還說過數(shù)字貨幣隨時(shí)可能歸零,以及勸賺錢的項(xiàng)目方不要炫富。
在接受“王峰十問”采訪時(shí),V神表示,以太坊已經(jīng)不再那么依賴比特幣了,并且他還認(rèn)為交易所都應(yīng)該下地獄。
將這些言論概括起來,V神表達(dá)的意思是,希望以太坊可以獨(dú)立活下去,不受比特幣和幣圈其他因素影響。Casper是這一切的開始。
權(quán)益證明不僅使以太坊從根本的共識機(jī)制上,區(qū)別于比特幣,更重要的是,它是有效率的,這使得以太坊幣這一數(shù)字資產(chǎn),有了錨定實(shí)體產(chǎn)業(yè)應(yīng)用的可能性,讓其嵌入實(shí)體經(jīng)濟(jì)運(yùn)行當(dāng)中。
當(dāng)以太坊幣有了實(shí)體資產(chǎn)負(fù)債做發(fā)行背書,其與法定貨幣已經(jīng)沒有本質(zhì)差別了。
而權(quán)益證明使得節(jié)點(diǎn)想?yún)⑴c記賬前,需買入大量以太坊幣,并鎖定。客觀上,鎖倉會使以太坊幣價(jià)格達(dá)到新高度。
若以太坊幣價(jià)借此超越比特幣,或?qū)氐讛[脫比特幣“陰影”,其價(jià)格不受比特幣漲跌影響。
目前,Casper CBC的細(xì)節(jié)仍在討論中,整個網(wǎng)絡(luò)預(yù)計(jì)將于2019年部署完畢。經(jīng)歷過The DAO黑客事件的V神,明顯比之前謹(jǐn)慎了很多。
他一手締造了幣圈的繁榮,這是他的“驕傲”,他不想讓自己的“驕傲”輕易死去。
1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會明確標(biāo)注作者和來源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請轉(zhuǎn)載時(shí)務(wù)必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會經(jīng)TMT觀察網(wǎng)編輯修改或補(bǔ)充。