囚徒戈多第4篇文章,閱讀需要5分鐘
這或許是全網解釋區塊鏈的價值核心--共識機制最詳細的文章。
前言
區塊鏈起源於比特幣,發展於以太坊。想對區塊鏈有系統性的認知,最好先熟知比特幣和以太坊的知識。這是我從比特幣和以太坊寫起的原因。
而對區塊鏈專案來說,共識機制是其根本價值所在。
共識是區塊鏈應用落地的基礎,指的是參與者如何在此係統中進行協作。所以,本文希望能對比特幣和以太坊的共識機制做總結,幫助大家更好地認識區塊鏈的價值。
正文
初遇比特幣,很多人看到的是一個周身被貪婪、欺騙所圍繞,充滿暴戾與醜聞的事物。
而當有人試著吹散泡沫,探尋本源時,他們會為比特幣所構建的“共識”所折服。感覺像是走入一個全自動化工廠,每個處理事情的節點,都按照既定規則運轉。
從廣義上講,共識是一種社會協作方式,可在不同領域應用,提升效率,是比特幣區別於“鬱金香”、“密西西比”等泡沫事件最本質的不同。
另一方面,比特幣共識並不完美。由於中本聰的原意是創造一種“錢”,所以在CAP原則(指的是在一個分散式系統中,一致性Consistency、可用性Availability、分割槽容錯性Partition tolerance,三者不可得兼)框架下,他選擇了一致性和分割槽容錯性,弱化了可用性,使比特幣共識在擴充套件應用時,遇到了難題。
CAP原則,文字內容來源於百度百科
基於此,有人試著去研究不同的共識機制,彌補比特幣在應用性上的不足。
以太坊社群是其中最著名的一群人,他們正嘗試把權益證明POS引入到以太坊中,並將此計劃命名為Casper(取自同名電影,中文譯為《鬼馬小精靈》)。
本文將圍繞比特幣工作量證明POW與以太坊權益證明計劃Casper展開敘述。
比特幣工作量證明POW
起初,中本聰想創造一種提前約定好發行機制,並且一旦發行,任何人都無法操控的貨幣。這樣就避免了有人因一己私利,透過控制貨幣發行量,變相盤剝民眾利益。
為了達成目的。首先,中本聰將比特幣總量設定在2100萬個,並利用動態函式,規定每10分鐘產出一定數量。這2100萬個幣,將於2140年全部流通於世。
其次,比特幣交易記錄不受任何資料中心控制,而是利用點對點技術(P2P),讓使用者之間直接轉賬,過程就像用微信互傳檔案一樣。
為了維護系統正常執行,中本聰將新產出的比特幣與轉賬手續費,獎勵給記賬參與者(礦工,又稱節點)。幹活的人得到了獎勵,這樣便有人心甘情願的為系統付出了。
為了不出差錯,中本聰需要採取一套執行規則來使系統符合以下原則:
1。 結果一致。每個節點記錄的全網交易記錄是一致的。
2。 不可篡改。任何人無法篡改交易記錄。
3。 有效率。貨幣系統工作效率高。
4。 可持續。貨幣系統可一直執行下去。
而用以保證系統正常執行的規則,便是共識機制。
比特幣共識機制是如何運轉的呢?
當用戶A給使用者B轉賬時,節點(包括AB自己)的比特幣客戶端,會收到這一資訊。
同時,所有參與者會在客戶端內,利用計算裝置(礦機)每隔10分鐘計算一道“雜湊難題”。這道難題出現時間及難度,受動態函式控制,以保證10分鐘間隔。
這個過程被稱作工作量證明(POW)。
率先計算出正確結果的節點,將根據程式碼審查交易資訊是否屬實,將包括AB使用者在內、一定時間段內的轉賬資訊,打包在一起確認(打包成“塊”),並將當前的“塊”,連線到此前的“塊”上,生成“區塊鏈”,並同步(廣播)至全網所有比特幣節點。
此時,A給B的轉賬交易會判定為有效。
記賬節點獲得新產生的比特幣及轉賬手續費,作為獎勵,並開始新一輪的雜湊難題計算。
此外,記賬結果以“最長鏈”為準。若有2個參與者同時完成工作量證明,並打包區塊,則他倆會開始“競賽”,誰最先產生新的區塊,就以誰為準。
工作量證明機制(POW)使每次參與記賬的節點是唯一的,計算結果會被廣播至全網且以最長鏈為準,這保證了全網節點交易記錄是一致的。
此外,在記賬時,節點同時會檢查與該交易有關的、所有地址的“未被花費的餘額”(UTXO)。比如,檢查A是否有未被花費的餘額,則需檢查A是否收到過更早的轉賬,以此類推,直到“創世交易”。
理論上,只要“創世交易”不變,當前每個人未被花費餘額就是確定的。
創世交易不變,加上交易記錄分散式儲存,使得任何人無法篡改交易記錄。
比特幣生態
能源消耗與“下議院悲劇”
事實上,比特幣為了保證系統一致性,犧牲了可用性,並引出一系列問題。
首先,比特幣不是有效率的。
一方面,受到大小的限制,每個“塊”包含4000條交易資料,按10分鐘的生成時間換算,相當於每秒處理6。67條交易,以至比特幣的全網未確認交易數一度達12134筆,這對貨幣來說是不合格的。
另一方面,工作量證明機制消耗大量無謂資源。每次打包成塊時,所有節點分別計算雜湊難題,而最終有資格記賬權的節點卻是唯一的。其餘節點所做工作皆是浪費。
此外,為了有更大機率獲得記賬權,人們發明了專門的礦機來提高算力。而礦機在計算雜湊難題過程中,消耗大量電力。據統計,目前全球比特幣礦場年耗電量,超過捷克等全球159個國家。
其次,比特幣或許不是可持續的,獨特的發行機制或許會讓比特幣陷入“下議院悲劇”。
由於中本聰規定,每產出21萬個區塊,新比特幣獎勵減半。到2140年,比特幣全部被挖出時,礦工獎勵僅剩使用者轉賬手續費。
同時,別忘了“塊”的大小是有限制的,所以手續費數量是一定的。
於是,在未來某一時刻,當礦工記賬獲得的比特幣獎勵,與礦機硬體、電力地租等成本持平時,大量礦工將退出比特幣系統,算力集中在少數人手裡。
他們可以憑藉已掌握的算力,在之前的區塊上,延伸出新的“最長鏈”,從而將另一條鏈作廢,從而將自己已經支付的幣取回。這會對比特幣系統造成毀滅性打擊。
算力攻擊
事實上,比特幣社群早已認識到問題的存在,近年來他們討論過擴大“塊”的容量,或者引入隔離見證、閃電網路等方案,提高每秒可處理的交易數(TPS)。他們甚至還討論過是否擴大發行總量。但始終沒有達成一致。
好訊息是,儘管比特幣支付還不像法幣一樣方便,但美國、日本、德國、加拿大、白俄羅斯、瑞士等國家已接受比特幣支付,並在一定法律範圍內,承認其合法地位,部分國家還設定了比特幣ATM機。
本質上,作為一種貨幣,比特幣正向著初衷邁進。相比之下,以太坊需要解決的問題,就要複雜很多了。
拓展閱讀:
Bitcoin: A Peer-to-Peer Electronic Cash System
https://bitcoincore。org/bitcoin。pdf
Next-Generation Smart Contract and Decentralized Application Platform
https://github。com/ethereum/wiki/wiki/White-Paper
Ethereum Casper 101
https://medium。com/@jonchoi/ethereum-casper-101-7a851a4f1eb0
A Proof of Stake Design Philosophy
https://medium。com/@VitalikButerin/a-proof-of-stake-design-philosophy-506585978d51
Proof of Stake FAQs
https://github。com/ethereum/wiki/wiki/Proof-of-Stake-FAQs
Casper Proof of Stake compendium
https://github。com/ethereum/wiki/wiki/Casper-Proof-of-Stake-compendium
Proof of Stake: How I Learned to Love Weak Subjectivity
https://blog。ethereum。org/2014/11/25/proof-stake-learned-love-weak-subjectivity/
Critique of Buterin’s “A Proof of Stake Design Philosophy”
https://medium。com/@tuurdemeester/critique-of-buterins-a-proof-of-stake-design-philosophy-49fc9ebb36c6
Cryptocurrencies without Proof of Work
https://arxiv。org/pdf/1406。5694。pdf
casper_basics。pdf
https://github。com/ethereum/research/blob/master/papers/casper-basics/casper_basics。pdf
The Triangle of Harm
https://vitalik。ca/general/2017/07/16/triangle_of_harm。html
Casper Proof of Stake compendium
https://github。com/ethereum/wiki/wiki/Casper-Proof-of-Stake-compendium
slasher
https://blog。ethereum。org/2014/01/15/slasher-a-punitive-proof-of-stake-algorithm/
The History of Casper — Chapter1
https://blog。ethereum。org/2016/12/06/history-casper-chapter-1/
The History of Casper — Chapter2
https://blog。ethereum。org/2016/12/07/history-casper-chapter-2/
The History of Casper — Chapter3
https://medium。com/@Vlad_Zamfir/the-history-of-casper-chapter-3-70fefb1182fc
The History of Casper — Chapter4
https://medium。com/@Vlad_Zamfir/the-history-of-casper-chapter-4-3855638b5f0e
The History of Casper — Chapter 5
https://medium。com/@Vlad_Zamfir/the-history-of-casper-chapter-5-8652959cef58