09.20 姚前:區塊鏈技術的激勵相容:基於博弈論的經濟分析

如果說區塊鏈技術的出現是各類信息技術融合帶來的“化學反應”,那麼,經濟機理則是其中的“催化劑”。區塊鏈技術不僅有技術邏輯層上的支撐,還有經濟邏輯層上的保障。本文從經濟理性人的角度出發,將“無組織”群體行動區分為三個層次,並利用博弈論,基於經濟學的視角剖析了區塊鏈技術的激勵相容設計,認為通過激勵相容的算法規則和相關契約安排,區塊鏈明確各方的經濟利益,充分調動各方的積極性,使分佈式協同作業真正成為可能。

密碼學是區塊鏈的根基,它集成各類密碼學原語和方案,同時還應用了P2P網絡協議、智能合約等技術。如果說區塊鏈技術的出現是各類信息技術融合帶來的“化學反應”,那麼,經濟機理則是其中的“催化劑”。區塊鏈技術不僅需要技術邏輯層上的支撐,還需要經濟邏輯層上的保障,否則難以在“去組織”化的環境下開展分佈式協同作業。因此,加密技術與經濟機制設計的結合使區塊鏈成為具有巨大潛力的新興技術,被認為是繼大型機、個人電腦、互聯網、移動互聯網之後計算範式的第五次顛覆式創新,有望重塑人類社會活動形態從目前的信息互聯網向價值互聯網的轉變。

無組織群體行動需要經濟激勵

從Linux的成功案例來看,基於互聯網的社區形態和技術的發展,已使得鬆散的個體可以不通過命令式管理,無組織地自發合作,開展某一項群體行動。一是互聯網信息傳遞的空間泛在性,消除了信息傳遞的物理侷限,極大地拓展了潛在參與者的範圍,大大降低了尋找“志同道合”者的成本,分佈式協同作業成為可能;二是伴隨著移動互聯網的普及和大眾化,信息傳遞的即時性越來越強,群體之間的實時溝通和協調更有效率。但是,如果要真正實現去組織化的分佈式協同作業,這兩點還遠遠不夠,它們僅是技術邏輯層上的基礎。既然是生產活動,就須要消耗資源,必然涉及各方的經濟利益,激勵相容的設計不可或缺。

根據哈維茨(Hurwiez)創立的機制設計理論,在市場經濟中每個理性經濟人都會有自利的一面,其個人行為會按自利的規則行為行動。如果能有一種制度安排使行為人追求個人利益的行為,正好與企業實現集體價值最大化的目標相吻合,這一制度安排就是激勵相容。

企業實踐表明,只有貫徹激勵相容原則,才能有效地解決個人利益與企業利益之間的矛盾衝突,使個體行為符合企業價值最大化的目標。對於去組織化的分佈式協同作業亦是如此。“無利不起早”,經濟學的自願原則以及經濟個體對帕累託改進的動機,在加密經濟的算法機制中依然成立。

當然,我們也觀察到在開源經濟和加密經濟發展的初始,一些技術極客或創始人的付出並非完全出於經濟利益的動機,而是懷著社會理想或者大愛精神,樂於無私合作,無須財務報酬。比如LinusTorvalds崇尚自由軟件精神,發起Linux開源軟件項目,拒絕商業利益;Nakamoto提出比特幣的概念,設計和發佈了相應的開源軟件,初衷也並非為了追求經濟利益。但應注意的是,對於大多數普通人,經濟利益仍是最重要的動機。

共識算法使

無組織群體行動的經濟激勵顯性化

根據經濟利益的重要程度,我們可以將“無組織”群體行動分為以下層次:

第一是“非經濟利益驅動”的群體行動,如公益活動、慈善活動。這類活動通常不需要參與者付出太多的時間和金錢成本,因此對群體行動的激勵相容要求最低。

第二是“潛在經濟利益驅動”的群體行動,如社交平臺上的主題分享、P2P網絡資源分享。這類活動的參與者並沒有明確的經濟利益訴求,而是持著相互分享、共惠共利的目的,即“我可能在今天從別人的利益出發採取行動,即便此時給我帶來一些風險或代價,但我期望的是,別人會記得這一切,並在未來回報我”,經濟學將這樣非正式的基於社會關係的互惠互利稱為“社會資本”。社會資本是一種較為隱蔽的潛在經濟利益。

第三是“明確經濟利益驅動”的群體行動,也就是本文研究的加密經濟的分佈式協同作業。應該說,分佈式協同作業不一定非得要選擇明確經濟利益驅動模式,也可以選擇潛在經濟利益驅動模式,比如Linux等開源項目即是如此。根據常見的自由軟件授權方式(GeneralPublic License, GPL),如果使用者在免費取得自由軟件的源代碼後修改了源代碼,那麼基於公平互惠的原則,他也必須公開其修改的成果,這實質上就是為了保障潛在經濟利益的分享與互惠。但需要注意的是,除了Linux等少數開源項目之外,成功的開源項目相當有限,許多開源項目往往是失敗的。原因很簡單,開源項目缺乏經濟邏輯層上的機制設計,如果不給予活動參與者真正的經濟激勵,僅依靠人們對自由的熱愛和追求以及業餘的投入,難以激發出成員有價值的付出。比如,洪流網站(TorrentSites)的點對點文件共享就是個失敗的案例。系統旨在讓每個下載者在下載的同時也保持著向網絡裡的其他下載者提供種子(上傳已下載的數據)。這是一種基於潛在經濟利益——社會資本的設計。而在沒有經濟激勵的情況下,參與者越來越傾向於認為持續上傳種子是一件對自己不利的事情,特別是當這一行為會佔據電腦裡更多的存儲空間時,因此失去了繼續參與文件共享的興趣。

在某種意義上,開源項目是一種無明確生產目標、不講究效率的生產過程,不是一種有效的分佈式協同作業。與之不同,區塊鏈技術通過激勵相容的算法規則和相關契約安排,明確了各方的經濟利益,充分調動了各方的積極性,使有效的分佈式協同作業真正成為可能。

區塊鏈無組織群體行動和拜占庭將軍問題

區塊鏈是一種數字賬本,是由一個個區塊按時序組成的一串鏈條。一個區塊包含兩個部分:區塊頭(BlockHeader)和交易信息部分。區塊記錄的所有交易通過默克爾樹(MerkleTree)組織起來,默克爾樹根(Root)的哈希值作為本區塊裡所有交易的信息被放入區塊頭。區塊頭還包含以下字段:前一個區塊頭的哈希值(或稱哈希指針)、本區塊的時間戳、高度(從第一個區塊開始數,本區塊是第幾個塊)以及其他信息。

在區塊鏈系統開展的分佈式協同作業,是眾多互不相識的參與者一起對區塊的賬本信息進行驗證、確認和達成共識,形成統一的交易賬本。新的區塊在經過系統共識驗證後被添加到區塊鏈上。由於任何輸入端的細微變化都會對哈希函數的輸出結果產生較大影響,再加上哈希指針的設計,區塊鏈被認定為是難以篡改的。比如,若有人嘗試改寫1號區塊裡的數據,那麼存儲在2號區塊裡的1號區塊的哈希值將會產生巨大的變化,從而導致2號區塊的哈希值隨之發生變化,接著又影響存儲在3號區塊的2號區塊的哈希值,以此類推,後續的所有區塊數據都會發生變化。所以說,想改動一個區塊,必須同時改動該區塊後面的所有區塊。而對任何一個區塊的改動,均須獲得共識,這就使得更改一條記錄的困難程度按時間的指數倍增加,時間越早的記錄越難更改。因此,意圖修改一整條已獲得系統共識的區塊鏈數據幾乎不可能做到。

而攻擊主要發生在對新增區塊進行驗證和共識的過程中,最典型的方式是攻擊者從某個區塊開始構造一條秘密的區塊鏈,當秘密構造的區塊鏈比當前公開的區塊鏈更長時,將其公開,其他節點將會視其為“正確”的鏈條,在該鏈條上繼續工作和延長它,使被攻擊區塊包含的交易被撤銷,製造“雙花攻擊”,從而破壞系統參與者原來達成的共識。

如何在“無組織”的群體中形成共識即是經典的“拜占庭將軍問題”:在一個一致意見具有絕對必要性的系統裡,如何在缺乏信任機制的情況下,通過一個可信的方法,將一個一致意見同步給所有人?或者說,誠實者如何戰勝破壞者,形成一個多數一致的、可信的意見?

經濟激勵和懲罰為何重要:一個簡單的博弈邏輯

傳統上,解決“拜占庭將軍問題”的算法是BFT(Byzantine Fault Tolerant)算法,其中最著名的是PBFT,該算法是基於消息傳遞的一致性算法,在弱同步網絡下,算法經過三個階段可以達成一致性。在無法達成一致時,這些階段會重複進行,直到超時。PBFT算法的優點是收斂速度快、節省資源、具有理論上的安全界(理論上允許不超過1/3的惡意節點存在,即總節點數為3k + 1,其中正常節點超過2k + 1個時,算法可以正常工作)。缺點是隨著參與共識節點的增加,通信開銷會急劇上升,達成共識的速度則快速下降,難以支撐上萬節點規模的分佈式系統。尤其是,PBFT假設系統的所有節點是已知的,且節點參與共識首先要獲得投票權,因此需要為節點的加入和退出過程設計額外的機制,這不僅增加了協議複雜度和實現難度,還不允許節點自由加入和退出,不符合加密經濟的開放性要求。

而區塊鏈技術與BFT算法不同,它通過引入經濟激勵和懲罰機制,來解決“拜占庭將軍問題”。下面通過簡單的博弈例子來闡述其中的邏輯。

對於參與共識驗證的參與者,存在兩種策略是“協作”與“攻擊”,選擇“協作”即成為誠實者,選擇“攻擊”即成為攻擊者。參與者權衡利弊後選擇博弈策略。當參與者發現攻擊的收益要高於協作時,參與者選擇攻擊,否則選擇協作。假定攻擊沒有成本,那麼,如果大家都是攻擊者,相當於“一拍而散”,雙方收益均為負;如果有一方攻擊,一方協作,則攻擊者獲利,協作者受損;如果大家都是協作者,則共贏,收益均為正。假定相應的收益矩陣為表1。對其求解,可以得到納什均衡解:(協作,協作)和(攻擊,攻擊)。換言之,參與者可能協作,也可能攻擊,因此係統存在安全隱患。

若在此基礎上引入激勵和懲罰,結果則會發生改變。激勵機制是,系統給予協作者一個正向的激勵,比如在表1,給予協作者三個單位的正向收益,那麼表1的收益矩陣變為表2。此時求解得到的納什均衡為(協作,協作),即參與者的最優策略均是協作,而不是選擇攻擊,從而消除了系統的攻擊行為。懲罰機制是,系統給予供給者一個負向的懲罰,即攻擊須付出一定的成本,比如在表1,對攻擊者施予三個單位的懲罰,那麼表1的收益矩陣變為表3,得到的納什均衡解為(協作,協作)。可見,同激勵機制一樣,懲罰機制也消除了系統的攻擊行為。毋庸置疑,若同時施加恰當的激勵和懲罰機制,系統的安全性更能得到保障。

姚前:区块链技术的激励相容:基于博弈论的经济分析

工作量證明機制(PoW)的激勵相容

Nakamoto(中本聰)提出的工作量證明機制(PoW)同時包含了分佈式共識的激勵和懲罰機制。

(一)激勵機制

如前述所言,區塊鏈是一個公共可見的賬本,用來記錄交易的歷史信息。當一筆新的資產交易被創建時,資產轉出方須通過簽名腳本來證明自己是資產的合法使用者,並且指定輸出腳本來限制未來對本交易的使用者(資產收入方)。如果是合法創建並簽名的,則該筆交易現在就是有效的,它將被廣播到區塊鏈網絡並被傳送,每一個收到交易的節點將會首先驗證該交易,確保只有有效的交易才會在網絡中傳播,而無效的交易將會在第一個節點處被廢棄,直至抵達挖礦節點。

挖礦節點在驗證交易後,會將這些交易添加到自己的內存池中,構建新的區塊。在PoW機制,礦工們接著通過反覆嘗試求解一種基於哈希算法的數學難題來競爭獲得記賬權,具體而言,礦工不斷更換區塊頭的填充隨機數並計算這個區塊頭信息的哈希值,看其是否小於當前目標值。如果小於,則成功“出塊”,隨後礦工將這個區塊發給它的所有相鄰節點。這些節點在接收後進行一系列的檢查標準去驗證區塊的正確性。檢查的標準包括區塊的數據結構和區塊包含的交易合法有效;區塊頭的哈希值小於目標難度(確認包含足夠的工作量證明)等。一旦一個節點驗證了一個新的區塊,它就會將新的區塊連接到累積了最大工作量證明的區塊鏈中,礦工挖礦成功。

在上述過程中,礦工獲得兩方面獎勵:一是代幣獎勵。礦工構建的新區塊中的第一筆交易是一筆特殊交易,稱為創幣交易或者Coinbase交易。礦工挖礦成功後,將獲得這筆新創造的加密代幣。在比特幣網絡,每隔10分鐘將一個新的區塊添加至鏈上,每添加一個區塊可以獲得50枚比特幣作為獎勵(每四年減半)。二是記賬決策權與交易手續費。礦工擁有記賬決策權,有權決定將哪些交易添加至新構建的區塊,並對收錄在區塊內的所有交易收取手續費。

(二)懲罰機制

通過懲罰設計,PoW設置了兩道門檻:第一道門檻設在礦工競爭記賬權的時候,使得礦工不能隨便“發言”(新增區塊)。一方面,礦工為獲得記賬權,須不斷求解哈希難題,因此付出“不菲”的成本,這一成本是沉沒成本,只要礦工想參與“發言”,那麼無論他最終能否成功“發言”,他均必須付出這一筆建言成本;另一方面,由於哈希難題的驗證要比求解來得簡單,對新出區塊的驗證成本微乎其微,因此只要礦工一錯誤“發言”(如交易無效、格式不符等),就會很快地被其他節點檢測出來廢棄掉,他之前付出的建言成本相當於對他的懲罰。

第二道門檻則設在區塊被成功添加區塊鏈後的修改,使得礦工不能隨意更改區塊鏈。在比特幣網絡,每2016個區塊(大約兩週)後,所有客戶端把新區塊的實際數目與目標數量相比較,並且按照差異的百分比調整目標哈希值,來增加(或減少)產生區塊的難度,確保每10分鐘 1 塊的恆定出塊速度。挖礦難度值的提高,增加了攻擊的成本。攻擊者如果要構造出一條比真實區塊鏈更長的秘密區塊鏈,需要在比特幣網絡產出6個區塊的同時秘密產出7個區塊。

截至2018年2月,專業的比特幣挖礦機器(以Bitmain生產的AntMiner S9為例)價格為2700美元,這臺礦機以2017年2月27日為基準可挖0.0012枚比特幣。一臺AntMiner S9每天耗電33度,按照居民用電價格計算,大概每天的電費是2.6美元。假定AntMiner S9的折舊年限為3年,可推算每天固定資產折舊為2700/(365*3)=2.5美元,加上耗電費用2.6美元,得到挖出一枚比特幣的生產成本為(2.5+2.6)/0.0012=4250美元。那麼,無論攻擊成功與否,攻擊者都要付出4250*7=29750美元,約3萬美元的成本,而且這一成本隨著挖礦難度的增加不斷上升,再加上與誠實者的算力競爭,顯然對算力提出了巨大的要求:只有掌握了比特幣全網51%算力的攻擊者,才可以用這些算力來重新計算已經確認過的區塊。

上述兩道門檻使得無論是新增還是更改區塊,均要付出不菲的成本,尤其是對後者的要求更為苛刻,這就是Nakamoto面對“拜占庭將軍問題”的全新思路。從某種意義上來說,PoW機制的“工作量”相當於現代資產交易或拍賣的保證金制度,免除了隨意報價,同時還確保了比特幣各區塊哈希值的唯一性及難以篡改,這正是PoW這一機制設計精巧的地方。

權益證明機制(PoS)的激勵相容

(一)自私挖礦攻擊和P+Epsilon攻擊

PoW機制存在著缺陷。首先,在性能上,PoW的挖礦要耗費算力資源,且隨著算力競爭,挖礦難度值不斷提高,每10分鐘 1 塊的恆定出塊速度制約交易性能。其次,在安全性上,PoW存在自私挖礦攻擊和P+Epsilon攻擊的隱患。

自私挖礦攻擊由美國康奈爾大學兩位學者IttayEyal(伊泰·艾爾)和EminGun Sirer(岡塞爾)提出,它是指,自私礦工不公開挖到的塊,產生秘密分支,這時候誠實礦工還會基於較短的公開分支挖礦,當自私礦工選擇性地公開秘密分支上的區塊,將導致誠實礦工拋棄掉較短的公開分支,基於秘密分支計算最新的塊,由此就浪費了誠實礦工花費在公開分支的算力,使得自私礦池獲得高於全網算力比例的收益。當自私礦工所在的礦池佔總網算力的1/3時,其獲得的收益會大於相對算力,於是理性礦工會源源不斷地加入自私礦池,最終導致礦池算力超過總網絡的50%。

P+Epsilon攻擊由以太坊創始人VitalikButerin提出,它是一種賄賂攻擊者模型,即攻擊者進入系統,以可信的預算賄賂其他礦工們參與攻擊,但事後卻無須付出任何成本。以表1為例,假定攻擊者給予礦工們一個可信的賄賂預期:當其他人選擇“協作”時,如果你選擇“攻擊”,我將給予你比選擇“協作”更高的收益,通過這樣的賄賂,其他人選擇“協作”,我選擇“攻擊”的收益由6變為8+ε,見表4。此時的納什均衡解就變為(攻擊,攻擊),即所有礦工均選擇“攻擊”,各自的收益均為-1,事後,攻擊者沒有付出成本,因為所有人都選擇了攻擊,攻擊者不用兌現賄賂承諾。也就是說,攻擊者只要以可信的預算和承諾(例如將資金鎖定在智能合約),就可零成本地實現對系統的攻擊。

姚前:区块链技术的激励相容:基于博弈论的经济分析

(二)PoS機制降低了攻擊的經濟激勵

PoS機制在理論上可以克服上述缺陷。其一,在PoS機制,節點獲得區塊創建權的概率取決於該節點在系統中所佔有的權益比例的大小,不耗費算力,因此就不存在自私挖礦攻擊的問題;其二,針對P+Epsilon攻擊,VitalikButerin提出可以在PoS機制中引入嚴厲的懲罰予以預防,即要求礦工們提取一定比例的私人財富(或稱權益)作為抵押物,投注於未來的區塊中,隨後根據投注的情況進行處罰,比如,如果事後可以明確地證明一個特定的區塊是有問題的,那麼就對這個區塊的投注者進行最大限度的懲罰,這就改變了P+Epsilon攻擊時礦工的預期收益,使他們一旦在真實鏈上投注了自己的權益,就會有更大的動力繼續在真實鏈上工作,而不是參與作惡,同時又大大增加了攻擊者的賄賂預算。理論上,攻擊者需要擁有51%的權益(數字代幣),才有可能發起成功的攻擊,無疑,倘若攻擊成功,攻擊者自身的權益也會受到很大的損失,因此就降低了發起P+Epsilon攻擊的激勵。

(三)

PoS機制可引入經濟懲罰來解決利益無關者攻擊

“利益無關者攻擊”(Nothing at the Stake Attack)是指,由於PoS機制不需要耗費算力,因此礦工在偽造鏈上挖礦無須成本,但一旦偽造鏈被確認時,則會獲得收益,這就會激勵即便是誠實的礦工也可能會在偽造鏈上挖礦,尤其是權益越少的礦工,這種“投機”的心態越強,因為雖然他們知道這種攻擊行為會造成整個系統的價值降低,但他們的權益很少,他們並不在乎,而當少數人“積少成多”時,就會對系統的整體安全性帶來隱患。“利益無關者攻擊”也稱為平凡人悲劇(Tragedyof the Commons)。

對此,以太坊的Casper權益證明機制引入了名為Slasher的懲罰機制,即如果有人嘗試了攻擊,其他人發現了可以公佈證據,系統將對這個人進行懲罰。由此,就抑制了礦工在偽造鏈上挖礦的經濟激勵,有效預防“利益無關者攻擊”。

(四)

PoS機制的實踐

PeerCoin最早提出並實現了PoS共識協議。PeerCoin沒有完全拋棄PoW,每個節點有自己的PoW難度值,幣齡(Coinage)是該難度值的計算參數。幣齡越高,則PoW難度越低,越容易計算出滿足難度的哈希值。PoS一般需要用戶時刻在線,對應用帶來了很大的挑戰。為了解決這個問題,衍生出了DPoS(Delegated Proof of Stake)共識,其核心思想是從先從全網節點中選出部分節點,保證這些節點的有效性,然後在該子節點集合內進行PoS共識。BitShares是第一個採用DPoS的區塊鏈。在BitShares中,全網節點投票選出101名代表,來負責區塊的生成。

總結與展望

基於不同的經濟激勵和懲罰設計,PoW機制和PoS機制構建了一個激勵相容的開放式環境,讓眾多互不相識的參與者自願參與,一起對區塊的賬本信息進行驗證、確認和達成共識,形成統一的交易賬本,從而可以在無需第三方機構的情況下實現資產的確權、交易和轉移。目前,PoW機制與PoS機制孰優孰劣,尚未有定論。比如,有人就認為,PoW機制的資源耗費不是無意義的,恰恰是“真金白銀”的投入,才凸顯區塊鏈系統的價值與可信。

在理論上,共識機制的研究成果正不斷豐富,比如在PoW機制方面,康奈爾大學Rafael Pass提出Thunderella算法,使狀態機與同步協議無異,不僅可以實現快速的異步處理,還可以在異常時啟動回滾機制,同時實現了拜占庭容錯和交易瞬間響應;在PoS機制方面,研究者們提出了各種算法,如康奈爾大學的Elaine Shi等提出的基於Sleepy Model的PoS共識,SilvioMicali等提出的Algorand協議,愛丁堡大學AggelosKiayias等提出的Ouroboros算法等;Krzysztof Pietrzak和Bram Cohen則提出了一種新的取代PoW的共識機制,他們稱之為空間證明機制(Proofof Space)。這些共識機制和安全模型仍需在實踐上進一步檢驗。

[姚前為中國人民銀行數字貨幣研究所所長,本文得到國家重點研發計劃(批准號:2016YFB0800600)和SFI(上海新金融研究院)資助,本文僅代表個人學術觀點,與任何機構無關。]


分享到:


相關文章: