什麼是加密經濟學(cryptoeconomics)?以太坊社區開發者Vlad Zamfir解釋道:算法
「這是一門獨立的學科,旨在研究去中心化數字經濟學中的協議,這些協議被用於管理商品及服務的生產、分配和消費。它也是一門實用科學,重點研究對這些協議的設計和界定方法。」安全
區塊鏈技術是運行在加密經濟學理論基礎之上的。網絡
咱們不妨將此概念分解一下。加密經濟學(Cryptoeconomics)來源於兩個詞彙:密碼學(Cryptography)和經濟學(Economics)。人們經常會忽略其中「經濟學」的成份,而偏偏正是這一成份賦予了區塊鏈以獨特性。區塊鏈並不是是首個使用「去中心化的點對點系統」的技術,洪流網站(torrent sites)在文件共享上對此技術的使用由來已久。然而,從某種意義上來講,這是一次失敗的應用。數據結構
在一個洪流系統(torrent system)中,任何人都能經過一個去中心化的網絡來共享文件。這個想法旨在讓每一個下載者在下載的同時也保持着向網絡裏的其餘下載者提供種子(上傳已下載的數據)。問題是,這一系統的運做邏輯是創建在榮譽系統制度上的。若是你下載了一個文件,系統預期你也會提供種子。可是在沒有經濟激勵的狀況下,人們認爲持續上傳種子是件毫無心義的事情,尤爲是當這一行爲還將佔據電腦裏更多的存儲空間時。函數
2008年10月,中本聰(一位匿名男士、女士,或組織)發佈了一篇論文,此文爲比特幣(Bitcoin)後續的發展奠基了基礎。這篇論文將會動搖網絡社區的根基,由於這是咱們有史以來第一次擁有了一個以加密經濟學爲理論依據的工做模型。與以前的點對點去中心化系統不一樣的是,人們如今有了經濟激勵去「遵照規則」。不只如此,區塊鏈技術的真正天才之處在於其克服了拜占庭將軍問題,並創造了一個完美的共識系統(詳見下文)。工具
那麼,像比特幣這樣的,基於加密經濟學理論的加密貨幣,究竟有哪些屬性呢?區塊鏈
讓咱們一一闡述:測試
它是基於區塊鏈技術而產生的貨幣。其中,每一個區塊都包含前一個區塊的哈希值,從而造成一條連續鏈。網站
每一個區塊都包含多筆交易。加密
新產生的交易會使全部區塊的特定狀態得以更新。例如,若是A有50個比特幣,且想把其中的20個比特幣發送給B,那麼在新的狀態下就會顯示:A只剩下30個比特幣,而B擁有20個新的比特幣。
區塊鏈必須是不可變的。只可能新增區塊,而不可篡改舊的區塊。
僅容許有效交易。
區塊鏈應當是可下載的,任何人在任何地點均可以輕鬆接入並查詢某筆特定的交易。
若是支付了足夠高的交易費用,則交易能夠被快速添加至區塊鏈上。
正如其名,加密經濟學有兩大支柱:
密碼學
經濟學
區塊鏈技術的運行中使用了多項密碼學函數。讓咱們看一下其中一些主要的函數。
區塊鏈技術的運行中使用了多項密碼學函數。讓咱們看一下其中一些主要的函數:
哈希算法
簽名
工做量證實
零知識證實
簡言之,哈希算法是將任意長度的字符串映射爲較短的固定長度的字符串。比特幣則是使用SHA-256摘要算法對任意長度的輸入給出的是256bit的輸出。那麼,加密貨幣中哈希算法的應用有哪些?
加密哈希函數
數據結構
挖礦
一個加密哈希函數有以下特性:
肯定性:不管在同一個哈希函數中解析多少次,輸入同一個A老是能獲得相同的輸出h(A)。
高效運算:計算哈希值的過程是高效的。
抗原像攻擊(隱匿性):對一個給定的輸出結果h(A),想要逆推出輸入A,在計算上是不可行的。
抗碰撞性(抗弱碰撞性):對任何給定的A和B,找到知足B≠A且h(A)=h(B)的B,在計算上是不可行的。
細微變化影響:任何輸入端的細微變化都會對哈希函數的輸出結果產生劇烈影響。
謎題友好性:對任意給定的Hash碼Y和輸入值x而言,找到一個知足h(k|x)=Y的k值在計算上是不可行的。
加密哈希函數對區塊鏈的安全性和挖礦有巨大的幫助。
有兩種數據結構對於理解區塊鏈很是重要:鏈表和哈希指針。
在鏈表中的每一個區塊都經過一個指針指向另外一個區塊。
指針:指針是包含其餘變量地址的變量。所以,正如其名,指針就是指向其餘變量的變量。
哈希指針:哈希指針不只有其餘變量的地址,還有該變量中數據的哈希值。那麼,這對區塊鏈而言有何幫助呢?
區塊鏈的構成以下圖所示:
區塊鏈本質上是一個鏈表,其中的每一個新區塊都包含一個哈希指針。指針指向前一區塊及其含有的全部數據的哈希值。藉此特性,區塊鏈擁有了不可更改性(immutability)的偉大特質。
假設在上面的圖表中,有人嘗試篡改1號區塊中的數據。請記住加密哈希函數的一個重要特質是任何輸入端的細微變化都會對哈希函數的輸出結果產生劇烈影響。
那麼,即使有人嘗試對1號區塊裏的數據進行細微的改寫,也會使得存儲在2號區塊裏的1號區塊的哈希值產生巨大的變化。接下來,這將致使2號區塊的哈希值發生變化,進而影響存儲在3號區塊的哈希值。以此類推,最終整條區塊鏈上的數據都會發生變化。這種經過凍結整條鏈條來修改數據的方式幾乎是不可能作到的。正因如此,區塊鏈被認定爲是不可篡改的。
每一個區塊都有本身的梅克爾根(Merkle Root)。如今,正如你已知道的,每一個區塊裏都包含多筆交易。若是將這些交易按線性存儲,那麼在全部交易中尋找一筆特定交易的過程會變得無比冗長。
而這就是咱們使用梅克爾樹的緣由。
在梅克爾樹中,全部個體交易經過哈希算法都能向上追溯至同一個根。這就使得搜索變得很是容易。所以,若是想要在區塊裏獲取某一特定的數據,咱們能夠直接經過梅克爾樹裏的哈希值來進行搜索,而不用進行線性訪問。
加密謎題被用來挖掘新的區塊,所以哈希算法仍然相當重要。其工做原理是調整難度值的設定。隨後,一個被命名爲「nonce」的隨機字符串被添加到新區塊的哈希值上,而後被再次哈希。接着,再來檢驗其是否低於已設定的難度值水平。若是低於,那麼產生的新區塊會被添加至鏈上,而負責挖礦的礦工就會得到獎勵。若是沒有低於,則礦工繼續修改隨即字符串「nouce」,直至低於難度值水平的值出現。
正如你所見,哈希算法是區塊鏈和加密經濟學中一個相當重要的部分。
在加密貨幣中,簽名是其中一個最爲重要的密碼學工具。在現實生活中,簽名的概念是什麼?又有哪些特性?想象一下,你在一張紙上簽名後,如何鑑定這是一個好的簽名?
可被驗證的。這個簽名要能夠證實確實是你在紙上簽名了。
不可僞造的。沒有其餘人可以僞造及複製你的簽名。
不可抵賴的。若是你使用本身的簽名進行簽署,你就沒法將其收回或聲稱他人代替你簽名。
可是,在現實生活中,不管簽名有多複雜,都有被僞造的可能性。你沒法經過簡單的視覺輔助工具來真正地驗證簽名的有效性,這樣作既無效率也不可靠。
密碼學給了咱們一種經過公鑰和私鑰來解決問題的方案。讓咱們來看看這兩種祕鑰的工做原理和其對加密貨幣系統的促進做用。假設有兩我的,Alan和Tyrone。Alan想要發送一些很是重要的數據,而Tyrone想要鑑別這一數據確實來自Alan,他們能夠經過使用Alan的公鑰和私鑰來實現這一目標。
有一點必須指出,經過某人的私鑰來肯定其公鑰是不可行的。公鑰正如其名,指公開的密鑰,能夠被任何人獲取。而私鑰是僅我的擁有的密鑰,你不能夠將其與他人分享。
那麼,讓咱們再回到Alan和Tyrone的話題,若是他們要使用密鑰來交換信息,具體該如何操做呢?
假設Alan想把信息「m」發送出去,Alan有一把私鑰Ka-和一把公鑰Ka+。那麼,當他把信息發送給Tyrone時,他會用私鑰將該條信息加密,因而信息變成了Ka-(m)。當Tyrone收到這條信息時,他可使用Alan的公鑰來取回信息,Ka+(Ka-(m)),因而便獲得了原始信息「m」。
總結一下:
Alan有一條信息「m」,當他用私鑰Ka-對其進行加密以後,獲得加密信息Ka-(m)。
Tyrone隨後使用Alan的公鑰Ka+來解密這條加密信息Ka+(Ka-(m)),從而獲得原始信息「m」。
經過下圖能夠獲得上述過程的直觀表示:
可驗證性:若是加密信息可以用Alan的公鑰進行解密,那就能夠100%肯定是Alan發送了該條信息。
不可僞造性:若是說有其餘人,例如Bob,攔截了該條信息,並用本身的私鑰發送了一條本身的信息,那麼Alan的公鑰將沒法對其解密。Alan的公鑰只能用來解密Alan用本身的私鑰加密過的信息。
不可抵賴性:一樣的,若是Alan宣稱,「我沒有發送信息,是Bob發的」,但Tyrone卻可以用Alan的公鑰來解密信息,那就證實Alan在撒謊。如此,Alan就沒法收回他以前發出的信息,並將其歸咎於他人。
加密貨幣的應用:如今,假設Alan正在發送一筆交易「m」給Tyrone。首先,他要用哈希函數對該交易進行哈希,而後使用私鑰對其加密。Tyrone知道他正在收到一筆交易「m」,所以他能用Alan的公鑰對其解密,並將解密後獲得的哈希結果與他已有的交易「m」的哈希結果進行比對。因爲哈希函數具備肯定性,而且對於一樣的輸入老是給出相同的輸出,那Tyrone能夠直接肯定,Alan確實發送了同一筆交易,且其中沒有任何做惡。
更簡單地來講:
Alan有一筆交易「m」,而且Tyrone知道他正在接收該筆交易。
Alan對m進行哈希運算,獲得h(m)。
Alan用本身的私鑰對哈希結果進行加密,獲得Ka-(h(m))。
Alan將加密數據發送給Tyrone。
Tyrone使用Alan的公鑰來解密,Ka+(Ka-(h(m))),並獲得原來的哈希結果h(m)。
Tyrone用已知的「m」進行哈希運算,能夠獲得h(m)。
哈希函數的肯定性特徵決定了若是h(m)=h(m),就意味着這筆交易是真實有效的。
當礦工們經過「挖礦」來產生新區塊並添加至區塊鏈上時,其中驗證及添加區塊涉及到的共識系統被稱爲「工做量證實」。礦工們使用龐大的計算機算力來解決這道密碼學謎題,而難度值決定了這道題的所須要的計算量。這是區塊鏈技術中最具開拓意義的機制之一。早期的去中心化點對點數字貨幣系統之因此會失敗,是因爲「拜占庭將軍問題」致使的,而工做量證實的共識系統爲該問題提供了一種解決方案。
好了,讓咱們想象一下,有一羣拜占庭將軍想要攻打一座城市,他們將面臨兩個不一樣的問題:
每一個將軍及其軍隊在地理上相距甚遠,所以經過中央集權來指揮是不可行的,這使得協同做戰變得異常困難。
被攻打的城市擁有一隻龐大的軍隊,他們能得到勝利的惟一方式是全部人在同一時刻一同發起進攻。
爲了讓合做成功,位於城堡左邊的軍隊派遣一位信使,向城堡右邊的軍隊發送了一則內容爲「週三攻擊」的信息。然而,假設右邊的軍隊沒有作好攻擊準備,並讓信使攜帶一則內容爲「不,週五攻擊」的信息返回。而信使須要經過穿越被攻打的城市返回到左邊的軍隊,那麼,問題就來了。在這位可憐的信使身上,不少事情都有可能會發生。例如,他有可能被抓獲、泄露信息、或被攻打的城市殺害後將其替換了。這將致使軍隊得到被篡改過的信息,從而使做戰計劃沒法達成一致而失敗。
上述例子對區塊鏈有明顯借鑑意義。區塊鏈是一個巨型網絡,你要如何信任他們呢?若是你想從錢包裏發送4個以太幣給某人,你如何確認網絡中的某人不會篡改信息,將4個以太幣改爲40個?中本聰發明了工做量證實機制來繞過拜占庭將軍問題。其運行原理是:假設左邊的軍隊想要發送內容爲「週一進攻」的信息給右邊的軍隊,他們須要執行以下步驟:
首先,他們會給初始文本添加一個「nonce」,這個nonce能夠是任何一個隨機十六進制值。
其次,他們將添加了「nonce」的文本進行哈希,獲得一個結果。假設說他們決定僅當哈希結果前5位是零的時候,才進行信息共享。
若是哈希結果知足條件,他們就會讓信使帶着有哈希結果的信息出發。不然,他們會持續隨機改變nonce的值,直到獲得想要的結果。這一過程不只冗長耗時,且佔用大量的算力。
若是敵人抓到了信使,並企圖篡改信息,那麼根據哈希函數的特性,哈希結果將會劇烈變化。若是城市右邊的將軍看到信息沒有以規定數量的0做爲開頭,那麼他們就會叫停攻擊。
然而,這裏有可能有個漏洞。
哈希函數並非100%免碰撞的。那麼,若是城市中的敵人拿到信息以後將之篡改,並經過不斷改變nonce值,得到了以規定數量的0做爲開頭的結果,那該怎麼辦?雖然極度耗時,可是仍然可行。針對這種狀況,將軍們可使用數字的力量。
假設,若是不是1個左邊的將軍給1個右邊的將軍發送信息,而是有3個左邊的將軍來給右邊的將軍們發送信息。爲了實現上述目的,他們能夠製做本身的信息,而後對累積的信息進行哈希。緊接着,再給哈希結果添加nonce值後,再次進行哈希。此次,他們但願產生一個以6個0開頭的信息。
顯而易見,這將會很是耗時。但此次,若是信使被城市抓獲,那麼敵人想要篡改信息,而且找到符合結果的nonce值,將會耗費無限長的時間,可能歷時數年。例如,將軍們派遣多個信使,那麼,城市在計算到一半的過程當中就可能會遭受攻擊而且被摧毀。
右邊的將軍們要作的很是簡單。他們只要將以前給他們的正確的nonce值添加在信息上,並進行哈希,而後對照其結果是否匹配便可。對一個字符串進行哈希是很是容易的。那麼,從本質上來講,工做量證實的過程是:
尋找一個符合哈希目標的nonce值,是一個很是困難且耗時的過程。
然而,驗證結果中是否有做惡行爲倒是很是簡單的。
什麼是零知識證實(Zero Knowledge Proof, ZKP)?ZKP意味着A能夠向B證實,他知道特定的信息,而沒必要告訴對方本身具體知道些什麼。在這個例子中,A是證實者,B是驗證者。在密碼學中,這尤其有用,由於這將爲證實者提供一層額外的隱私保護。
運行一個ZKP,要知足如下這些參數:
完整性:若是陳述屬實,那麼誠實的驗證者能被誠實的證實者說服。
可靠性:若是證實者不誠實,他們沒法經過說謊來講服驗證者相信陳述是可靠的。
零知識:若是陳述屬實,那麼驗證者沒法得知陳述的內容是什麼。
舉一個零知識證實的例子。讓咱們觀察一下阿里巴巴洞穴是如何運做的。在這個例子中,證實者(P)對驗證者(V)說,他知道洞穴後面暗門的密碼,並提出在不向驗證者透露密碼的狀況下證實此事。那麼,其驗證過程以下圖所示:
證實者能夠走路徑A或者路徑B,假設他們一開始決定經過路徑A到達暗門。同時,驗證者V來到入口,他對證實者選擇哪條路徑並不知情,並宣稱他們但願見到證實者在路徑B出現。
如圖所示,證實者確實出如今路徑B上,但萬一這僅是巧合呢?也有多是證實者憑運氣在出發時選擇了路徑B,卻因不知道密碼被困在了門口。
因此,咱們須要經過屢次試驗來肯定測試的有效性。若是證實者每次都能出如今正確的路徑上,那麼證實者的確能夠在不向驗證者透露密碼的狀況下,證實本身知道密碼。
區塊鏈中的零知識證實是如何應用的?
許多基於區塊鏈的技術都在使用Zk-Snarks。事實上,以太坊在大都會階段就計劃引入Zk-Snarks,而且將其加入以太坊的功能庫。Zk-Snarks是「零知識簡潔無交互知識認證」的簡稱,是一種在無需泄露數據自己狀況下證實某些數據運算的一種零知識證實。
以上內容可用來生成一個證實,經過對每筆交易建立一個簡單的快照來驗證其有效性。這足以向信息接收方證實交易的有效性,而無需泄露交易的實質內容。
這就實現瞭如下兩種狀況:
實現了交易的完整性和隱私性。
實現了系統的抽象性。因爲無需展現整個交易內部的工做方式,所以系統很是易用。 所以,以上就是區塊鏈使用的一些重要的加密函數。如今,讓咱們觀察其第二個支柱,經濟學。
正如開篇所述,區塊鏈與其餘去中心化點對點系統的區別在於,它給用戶提供了金融和經濟激勵去完成某項工做。和其餘牢固的經濟系統同樣,咱們都須要經過激勵和獎賞的方式讓人們去完成工做。一樣的,若是礦工行爲不道德或者不盡職,那就要對礦工採起懲罰措施。接下來,讓咱們去觀察一下區塊鏈是如何將全部的經濟學基礎原理融合進來的。
第一種激勵組合:
代幣:加密貨幣做爲獎勵分配給那些活躍度高且爲區塊鏈作出貢獻的參與者。
特權:參與者能夠得到決策權,這將給予他們收取租金的權利。例如,挖出新區塊的礦工們能夠成爲新區塊的臨時決策者,將短暫地成爲新區塊的獨裁者,並有權決定將哪些交易添加至該區塊。他們能夠對收錄在區塊內的全部交易收取手續費。
第二種激勵組合:
獎勵:好的參與者能夠得到貨幣獎勵,或因盡職而獲得決策權。
懲罰:壞的參與者必須支付貨幣罰款,或因做惡而喪失權利。
加密貨幣和普通貨幣擁有價值的緣由大致上是同樣的,即基於信任。當人們信任某一種商品並賦予其價值,它就成爲一種通貨。這就是起初法幣和黃金有價值的緣由。所以,當某個給定的商品擁有一個給定的價值時,價值就會隨着供求關係而發生改變。供求關係是經濟學中最古老的規則。
什麼是供求關係?
這是供需曲線,也是經濟學中最多見的一張圖表。如上圖所示,商品的需求與供應呈反比關係。兩條曲線的交匯處是均衡點,也是你想要達到的甜蜜點。那麼,讓咱們用這個邏輯來觀察一下加密貨幣,好比說比特幣。
比特幣的發行總量固定在2100萬枚。這便是全部比特幣的市值。因爲總量是固定的,那麼當涉及到比特幣的供應時,有幾件事必需要考慮清楚。首先,須要制定一些規則來使比特幣的挖礦變得逐漸困難。不然,礦工們將會肆意挖礦,把剩餘的比特幣開採出來,並投放至市場,從而下降總體價值。
爲了確保礦工們不會立刻把全部剩餘的比特幣都開採出來, 咱們須要採用以下手段:
首先,每隔10分鐘將一個新的區塊添加至鏈上,每添加一個區塊能夠得到25枚比特幣做爲獎勵。時間間隔必須是固定的,以確保礦工們不會無規則地在鏈上持續添加區塊。
其次,比特幣協議要求難度值必須不斷地被提升。如先前所說,在挖礦過程當中,區塊的哈希值及其nonce值須要低於某個特定的數值。該數值被稱爲「難度水平」,一般以數個0做爲開頭。當難度提升時,0的數量也在增長。
有了以上兩種方式,挖礦過程變得十分專業,且投入巨大。整個過程確保能夠覈實市場上全部比特幣的供應量。這也一樣適用於其餘基於工做量證實機制的加密貨幣。
加密貨幣的需求有不少決定因素:
該貨幣有怎樣的歷史?
最近是否被黑客攻擊過?
是否可以持續產生結果?
背後的開發團隊實力如何?
是否有變得更好的潛力?
宣傳力度如何?
全部這些因素都決定了該貨幣的「熱度」如何。其結果是價值圍繞着需求而波動。
那麼,一個無序的、去中心化的點對點系統是如何保持其誠信的呢?礦工權利很大,且很容易做惡並逃脫。這就是先前嘗試構建去中心化系統失敗的地方。畢竟,用戶是人類,而人類就有做惡的傾向。所以,你如何創建一個有人類誠信的去中心化系統?答案就在一個最基本的經濟學概念中:博弈論。
博弈論本質上是對戰略決策的研究。其核心是作對本身最有利的決策,並記住對手的決策。博弈論中一個最基本的概念是:「納什均衡」。
納什均衡是一種狀態。在此狀態下,每一個參與者的策略是對其餘參與者策略的最優反應。沒有一個參與者能夠經過獨自變換策略來增長收益。讓咱們來觀察一個納什均衡的例子。
如上表所示,咱們將其稱爲「收益矩陣」。上表中的數字表明參與方採起(或不採起)行動而獲得的收益數量。讓咱們逐一分析:
假設A採起行動:
那麼若是B也採起行動,收益將是4;不然,收益是0。所以,對B來講最佳策略是採起行動。
若是A不採起行動:
那麼若是B不採起行動,收益將是0;不然,收益是4。
所以,咱們能夠得出結論:不管A如何選擇,B的最佳策略就是採起行動。如今,一樣的,咱們來觀察下A的最佳策略是什麼。
若是B採起行動:
若是A不採起行動,收益將是0;不然,收益是4。那麼,對A來講最佳策略是採起行動。
若是B不採起行動:
若是A不採起行動,收益將是0;不然,收益將是4。那麼,不管B如何選擇,A的最佳策略就是採起行動。
所以,咱們能夠得出結論,對A和B來講,最好的策略都是採起行動。
所以納什均衡是:
-當A和B都採起行動-
那麼,區塊鏈是如何運用納什均衡的呢?由於鏈自身在一個自我強加性的納什均衡裏,因此不誇張的說,區塊鏈是真實存在的,而礦工們也能夠維持誠信。
讓咱們舉個例子:
如上圖所示,藍色的1,2和3號區塊是主鏈的一部分。如今,假設有個惡意的礦工挖出了一個2A區塊,並企圖用一次硬分叉來知足本身的財務收益。那麼,用什麼來阻止其餘礦工加入他,並在新的區塊後面挖礦?
其實,礦工們有一個很是困難但卻很快的鑑定規則,那就是任意一個區塊在無效區塊上挖礦,即被認定爲無效區塊。所以,其餘礦工只需忽略無效區塊,並繼續在老鏈上挖礦便可。記住,全部貨幣都是創建在信任和認知價值上的。所以,爲何會有人將那麼多的資源浪費在一塊有效性沒法被確認的區塊上?
如今你要思考的是:萬一有許多礦工決定加入新的礦羣,並在其新區塊上挖礦。這個問題在於,區塊鏈網絡是一個巨大且普遍分佈的網絡,在裏面進行交流和協做幾乎是不可行的。大部分礦工只會選擇能將其收益最大化的那條路徑,正因如此,主鏈的納什均衡也就得以實現了。
就像其餘任何一個有效的經濟系統同樣,應當有正向激勵和負向激勵。在博弈論模型中如何實現懲罰?想象一個收益矩陣,其中參與者的收益很高,則其對社會的影響也很是高。例如:
假設有A和B兩我的,他們都將要犯罪。如今,根據收益矩陣,當他們犯罪時,他們的收益都很高。所以他們的納什均衡點是都去犯罪。雖然這在邏輯上是有意義的,但會帶來很是惡劣的社會影響。人類多半是被我的貪婪所驅動的,而非利他主義。若是這是真的,那麼世界將變成一個很糟糕的地方。那麼,人類如何應對的?答案是引入懲罰機制。
假設咱們有一個系統,每當有-0.5個因子的公共設施從公衆手裏被取走,就要相應的對任何犯罪的人記錄-5個因子的懲罰。那麼,讓咱們將懲罰因子加入上面的收益矩陣中,再觀察下表的變化:
如上表所示,收益發生了巨大變化。納什均衡變成了(1,1),不犯罪是最佳策略。如今,懲罰的代價是高昂的,可是社會畢竟損失了0.5個因子的公共設施。那是什麼激勵着社會加入這場懲罰博弈?這個問題的答案是將懲罰做爲針對每一個人的強制措施,即任何一個沒有參與到懲罰博弈中的人也將會被懲罰。例如說,用稅收供養的警力。警察能夠懲罰罪犯,但公共設施的損失會以稅收的形式從公衆手裏取走。任何參與博弈但沒有付稅的人,都會被認做爲是罪犯並受到懲罰。
在區塊鏈裏,任何不遵照規則而且非法開採的礦工都會受到懲罰。他們會被剝奪特權和承受被社會排斥的風險。這種懲罰會變得更加嚴厲,一旦權益證實被採用後(稍後詳述)。經過使用簡單的博弈論和懲罰系統,礦工們就能保持誠信。
當礦工(們)成功地挖到了一個區塊,他們成爲了這個區塊的臨時決策者。不管是選擇哪筆交易放入區塊中,仍是提升該筆交易的速度,他們都擁有徹底的管轄權。他們能夠對收錄的交易收取手續費。這對礦工們是一種激勵,由於他們除了可以得到挖到一個新區塊的獎勵以外(比特幣的新區塊獎勵是25個BTC,以太坊是5個ETH),還能獲得額外的經濟獎勵。
爲了讓系統公平,同時也確保每次不是同一批礦工挖到新的區塊,並得到獎勵,系統會階段性調整挖礦的難度水平。這就確保挖到新區塊的礦工是徹底隨機的。長遠來看,挖礦是一個零和博弈,換言之,礦工經過挖出新區塊而獲得的利潤終究將根據挖礦的成原本進行調整。
可是,一個工做量證實系統,容易受到一種名爲「P+Epsilon攻擊」的特殊類型攻擊。爲了理解這種攻擊的原理,咱們必須事先定義如下名詞。
非協做選擇模型:在一個非協調選擇模型中,全部的參與者都沒有動機與其餘人進行合做。參與者可能造成羣體,但在任什麼時候候,這個羣體都不會大到佔據多數。
協做選擇模型:在這個模型中,全部參與者都會爲一個共同的激勵而協做。
如今,假設區塊鏈是一個非協調選擇模型,但若是有一個動機可以讓礦工們採起行動去損害區塊鏈的完整性,那該怎麼辦?若是能夠經過賄賂使礦工們採起某一特定行動,那該怎麼辦?此時就要引用賄賂攻擊者模型。
如今,假設區塊鏈是一個非協調選擇模型,但若是有一個動機可以讓礦工們採起行動去損害區塊鏈的完整性,那該怎麼辦?若是能夠經過賄賂使礦工們採起某一特定行動,那該怎麼辦?此時就要引用賄賂攻擊者模型。
像一個非協調選擇模型。如今,假設有一個攻擊者進入了系統,並賄賂礦工們去相互協做,那該怎麼辦?這個新的模型就是賄賂攻擊者模型。爲了成功地賄賂系統,攻擊者必須擁有如下兩種資源:
預算:攻擊者願意支付給礦工們去執行某個特定行動的現金總額
成本:最後實際支付給礦工們的金額。
然而,若是一個攻擊者決定對區塊鏈發起攻擊,咱們會獲得一個有趣的謎題….,此時就會出現「P+Epsilon攻擊」。咱們能夠參考下圖:
想象一個簡單的博弈,例如選舉。若是人們投票給某我的,並和其餘人同樣投票給同一我的,那麼就能得到收益,不然就沒有收益。那麼想象一下,一個賄賂者接入系統,並對某個個體制定了這個規則。若是你投票時其餘人沒有投,那麼你會獲得「P + ε」的收益。除了普通收益P以外,還有一個額外的賄賂收益 ε。
那麼如今,收益矩陣以下圖所示:
如今想象一下這個場景,博弈中的每一個人都知道假設他們投票了,那麼都有可能獲得收益,但若是他們不投票,那就只有50%的機率獲得收益。
你認爲參與者會怎麼作?固然,他們會經過投票來確保收益。這正是有趣的地方所在。正如矩陣中所示,賄賂者只需支付費用「ε」,當有人投票了,而其餘人沒有投票的時候。可是,在這種狀況下,由於全部人都投票了,納什均衡點轉變爲:
是的,賄賂者都不須要支付賄賂費用!
所以,讓咱們從賄賂者的視角來看待這個問題:
說服羣體按照某種方式去投票。
無需支付賄賂費用便可實現目標。
這對賄賂者來講是一個巨大的共贏局面,同時,這對區塊鏈影響重大,尤爲是在基於工做量證實的系統中。讓咱們把以前的虛擬區塊鏈再拿出來檢驗一下:
假設賄賂者真的想讓區塊鏈進行硬分叉,同時宣佈對那些選擇加入新鏈的礦工們給予賄賂費用 ε,這將激勵整個礦工社區進行協做並加入新鏈。顯然,這須要極高的賄賂費用來實現上述情形,但正如咱們在上面的賄賂攻擊模型中所看到的那樣,攻擊者甚至不用給出該數量的金額。根據Vitalik Buterin所說,這就是工做量證實系統最大的問題之一,即易受到「P+Epsilon攻擊」。
權益證實機制是針對這類以激勵驅動的攻擊的解決方案。在該類系統中,礦工們須要提取必定比例的私人財富,並將其投資於將來的區塊中。這將是一個更好的經濟系統,由於其中的懲罰更爲嚴厲。礦工們將面臨其權益和財富被剝奪的可能性。而不是像以前同樣,僅僅被剝奪權利或在受到指責後逃脫。
所以,這是如何防治「P+Epsilon攻擊」的?假設你是一名礦工,你有一部分的財富被投資於即將添加到主鏈上的一個區塊中。如今,來了一個賄賂者來告訴你,你可以獲得一個額外的收益,若是你將區塊加入主鏈。可是,若是新鏈未被確認,那麼你就有很大的風險會損失你投資在區塊上的全部金錢。此外,正如「P+Epsilon攻擊」所述,你不會從賄賂者那裏獲得額外的收益。顯而易見的,對於一個礦工來講,一旦他們投資了一個權益,他們將會繼續在主鏈上工做,而不是參與做惡。
如你所見,密碼學和經濟學以一種很是美妙且複雜的方式結合起來創造了區塊鏈技術。在過去幾年中,它所經歷的成長使人難以置信。將來,它將變得更增強大,且應用更爲普遍。
內容來源:blockgeeks
翻譯: Nicole Yao
整理:區塊鏈兄弟
北京blockathon回顧:
Blockathon(北京):48小時極客開發,區塊鬆11個現場交付項目創意公開
成都blockathon回顧: