和數傳媒:區塊鏈博弈論機制設計是未來關鍵

LikeLib發表於2019-03-21

一、區塊鏈資料結構與演算法

首先,講一下區塊鏈基本的技術內容。

區塊鏈,本質是由兩個部分構成:第一部分是資料結構,第二部分是演算法。這兩部分是可以分割的,也最好分割開來看。

首先看區塊鏈的資料結構,其實非常簡單:它是由很多的區塊組成的,每個塊都包括很多的資料,主要是交易資料。區塊互相之間的連結就是通過hash過程,也就說我們把前一塊的內容hash成一個數字簽名,然後放在後一塊裡面,形成一個鏈式結構。

在我的示意圖裡面,大家也可以看到每一塊還可能有自己的隨機數,這個隨機數的作用是方便對hash結果提要求,比如說比特幣要求hash結果前面要有多少個零。這樣可以保證hash的過程是一個比較複雜的過程,增加計算複雜性,通過POW這個模式來達成共識。區塊鏈的資料結構保證了,如果要修改前一塊資料必須連帶修改後一塊資料。這表示,如果一個資料的歷史越長,你要去修改它也就越困難。

除了資料結構,區塊鏈第二個組成部分就是演算法,即區塊是怎麼產生的?區塊的產生機制,如果我們從原始教義派就是bitcoin,也既是中本聰最開始提出來的想法,必須是無許可的或者說permissionless的方法。這個方法最基本的想法就是“完全平等公開”,也即網路上任何一個個體都可以成為產生區塊的礦工。這樣做的目的是提高安全性。

無許可方式允許任何人參加區塊鏈生產,這些人中就會有壞人,因此基本上說,它就需要採用拜占庭協議來解決共識問題。所以,它通常效率比較低,也就是說,每個區塊,它需要很長的時間產生。而且對於bitcoin來說,區塊產生以後還不能保證它在鏈上的穩定性,因為不知道最新的塊是不是在最長鏈上。通常你還要等到後面的區塊產生以後才可以確定,因此確認時間就更加漫長。

從提高效率的目標來講,最近提出來一些區塊產生機制,通常採用許可(permissioned)的方式。也就說,區塊並不是每個個體都可以產生的,而是在協議裡面被允許的那些個體才可以,它們的特點就是比較快。

採用許可方式的好處就是可以不用解決拜占庭協議問題或者採取輕量級的解決辦法。原因是,在產生區塊的過程中,礦工都是留下記錄的,可以事後審計(audit)。如果產生問題的話,就可以把出問題的礦工驅除出去。通過這些方式可以用比較快的方式來產生區塊。

第三種產生機制甚至比許可更中心化,也就是由一個特定的一箇中心來產生區塊。當然,很多人會認為,如果你用一個完全中心化的方式來產生區塊,那你就不是區塊鏈!

但是,我認為這個問題完全可以從另外的一個角度來考慮。

我們可以回頭再來考察前面提到的區塊鏈資料結構。它的hash結構具有“單向不可修改性”,也就是說,如果任何一塊被留下作為證據之後,那麼它前面的區塊基本上就不能再被修改偽造了。在這種情況下,如果由一個特定中心來產生區塊, 其他的參加者只作為一個聽眾或者是記錄者,他只要記錄某一個區塊以後,那麼前面的區塊再被特定中心修改,其實是可以被追溯的。

因此,我認為在區塊產生機制上,不一定要追求純粹的無許可去中心方式。為了效率,採用許可或者特定中心產生區塊的方式,我認為都沒有太大的問題。這也是我主張將區塊鏈資料結構和產生演算法分開考慮的主要原因。

二、區塊鏈的革命性

區塊鏈之所以引發這麼多的熱點,是因為它有以下幾個革命性。

第一個就是加密貨幣的發行。大家可以從新聞上看到,包括最近幣安被駭的事件,其實都跟貨幣發行或者交易所有關。因為涉及到錢的問題,大家可能都會比較感興趣。根據估算,在今天我們有數以千種加密幣,總的價值是在四千二百二十億美元左右,這還是非常可觀的。區塊鏈可以發行代幣的關鍵原因就是,它本質上是一個去中心化的公共賬本。解決了記賬的透明性和可信性(不可修改性)之後,貨幣,其本質就是一個記賬功用,就水到渠成了。

除了可信公共賬本,我認為,區塊鏈另一點真正具有革命性的是智慧合約的產生。智慧合約就是把一段程式放在區塊鏈上作為一個合同,這個合同的條款在條件成立後可以被自動執行,而執行的結果就被記入區塊鏈作為完成的交易。智慧合約將會成就區塊鏈的各種應用。

這兩張投影片借用自IBM的區塊鏈總經理Marie Wieck上週在西北大學演講。第一張代表了IBM對於區塊鏈如何產生商業革命的觀點。

最上邊圖中,我們看到的是一個traditional business processes是怎樣進行的:參加交易的兩個party,包括party A,party B,互相之間進行交易。這個過程中的合同、文字、交易的記錄,很多時候都是存在交易方自己的地方,參與的銀行和事務所也有自己的記錄。這其中的Clearing House來完成清算的話,通常需要花比較長的時間去對比互相之間的記錄,解決可能產生的糾紛。除了銀行以外,也會涉及到auditor,通過一個很複雜的過程來對比互相之間的交易記錄。

下邊圖顯示在區塊鏈革命之後,中間複雜漫長的Clearing House被區塊鏈代替了。通過區塊鏈,交易各方,包括銀行、監管機構都不儲存自己的記錄,所有的記錄都儲存在公共的區塊鏈賬本上面。這樣做的好處就是說極大的提高了效率,簡化了paperwork, 也極大的增加了可信度,和減少糾紛的產生。以前的很多繁瑣的對賬,以及法律官司就都不需要了,區塊鏈就給你解決了這些問題。

從這個圖來考察,我們可以看到,區塊鏈的主要應用不是在一個公司內部,而是在公司和公司之間。所以,這個事情到底是這個由誰去做?一個單獨的公司可能很難去做這件事情。從區塊鏈的基本資料結構來看,區塊鏈對於做商業交易是個利器。

因此,一點都不奇怪為什麼銀行和金融市場推動區塊鏈的比例是最高的,達到20%。其次是健康業,百分之十五;IT業大概百分之十二。當然,區塊鏈的革命不光發生在傳統的商業上。

因為,區塊鏈上記錄的資料不一定是交易,也可以是其他的資料。

三、區塊鏈的三塊基石

區塊鏈建立在三塊基石上,第一個是分散式計算,第二個是密碼學,第三個是博弈論。

展開來看,首先是分散式計算,剛才我們講了,permissionless的區塊鏈需要在不同的礦工或者是不同的個體之間來產生區塊,因此,它需要分散式計算來解決共識(consensus)甚至是拜贊庭共識的問題。區塊鏈一個比較重要的應用驅動是智慧合約,從智慧合約開始的時候直到今天,很多人都把智慧合約看成是一個序列的程式。後來DAO bug出來以後,大家尋找產生bug的原因,最後發現把智慧合約看成序列程式是錯誤的,應該當成是並行分佈計算。實際上,所有的智慧合約都必須看成平行計算,只有這樣,在設計智慧合約的時候才不會產生問題。

第二塊基石是密碼學。以區塊鏈的基本連結結構為例,前一塊的資料,被hash以後放在後一塊裡面,那麼這個hash為什麼會具有不可修改性,這其實就是密碼學中最基本的工具,即單向函式。單向函式是指,我從資料變成hash是一個很容易的事情,但是,我要從這個hash轉回去找到它對應的資料,這是一個很難的問題。其實區塊鏈處處是密碼學的應用,包括數字簽名,認證,智慧合約,預言機,以及零知識證明等方面。

區塊鏈的最後一塊但是是最重要的基石是博弈論,這點大家可能不是特別認同。

但是,博弈論這點是我今天想著重強調的。大家來看區塊鏈,我們會發現,無論是從鏈內到鏈外,或是鏈的邊界,都是博弈論在發揮作用。甚至區塊鏈的出現和產生其實都可以用博弈論來思考解釋。

四、博弈論的高度看待區塊鏈革命

用諾貝爾獎得主Myerson的話來說,博弈論是一切社會科學的基礎。

今天為大家拋磚引玉,先大概講講我自己想到的幾個方面。

第一個是區塊鏈的社群組織。如果我們大家來考察比特幣,其實它的去中心化是很可懷疑的。為什麼?

首先,我們來看比特幣礦工,現在,比特幣挖礦被集中在幾個大的礦池,好像五到六個礦池基本上就壟斷了它的挖礦,在這種情況下, 比特幣多大程度上還能被認為是去中心化的?

另外一個是區塊鏈開發人員(俗稱碼農)。任何一個區塊鏈都執行在自己的程式程式碼上,誰來寫這個程式?然後誰去維護這個程式?那麼這個碼農集體是不是就導致了一箇中心的出現?

我們從博弈論的角度來考察區塊鏈,首先來分析,為什麼碼農願意維護、開發區塊鏈的程式碼?到目前來看,驅動力或者說在ICO的時候,在傳統法律的保障下,使得很多空氣幣可以發行,然後在用資金來開發執行區塊鏈,即先進行ICO,等程式碼、區塊鏈落地以後,再按照承諾發代幣給買家。

這其中就存在一個問題,即——如果區塊鏈的演化、維護主要由碼農來做的話,那麼我們怎麼防止碼農成為新的中心或者是獨裁者?在現有的區塊鏈裡面,比如DAO bug出來以後就進行硬分叉,其實這已經形成了一個獨裁。

因此,從這個地方來思考的話,在一個區塊鏈最初開發的時候,就應該有一個比較好的機制設計,使得區塊鏈在進化過程中,可以有投票和決策機制,而且最好在鏈內。也就是說,如果我能夠把我當前區塊鏈的程式碼放在鏈內來維護,並且有一套機制可以來進行程式碼的進化,這樣,區塊鏈發展才會比較系統。

博弈論來考察區塊鏈的發展,第二個有意思的問題,是可以來看貨幣的誕生。

我不知道多少人讀過弗裡德曼的《貨幣的禍害》?注意,這本書的第一章其實跟區塊鏈關係非常大。第一章講了一個有趣的現象,在一個叫雅浦島的小島上,島上的居民用費Fei來作為他們的貨幣。這些貨幣其實就是一些很大、厚重的石輪。在做交易的時候,他們也不去搬動石輪,也就是說,石輪放在哪裡就永遠放在哪裡。甚至很多時候,做完交易以後,都不會在石輪上貼條,以此證明新主人是誰。

現在來看,這就是原始的區塊鏈!為什麼?

因為雅浦島居民採用的就是分散式公共記賬本,大家心裡的共識:也就說這些大石輪屬於誰,是一個公共的認知。交易以後,口耳相傳,大家都認同大石輪已經從舊主人那裡歸屬到新主人那裡去了。如果我們從雅浦島上的石幣來理解貨幣的話,貨幣的本質不是石頭也不是美鈔,貨幣其實是記賬!

另外,在理解加密貨幣產生的原因上,我們可以發現貨幣其實是一種群體心理認同現象。貨幣本身不一定會有價值,即便你個人不認同,但是,如果周圍的人都認同它可以用來記賬進行交易的話,那麼,你也去會趨向接受它,作為交易的工具。

那麼我們來想想今天區塊鏈上發行的數以千種加密貨幣的話,到底多少可以存活下來?大家可以將其作為一個有趣的問題來思考。

因為,從一個角度來看,區塊鏈的很多程式碼都是開源的,甚至你可以免費拿來用。免費開始一個新的區塊鏈,我就可以發行貨幣,這看起來是很容易,但又不是那麼容易。這真是一個有意思的博弈論的現象,大概跟傳染病流行,時尚風行一樣,需要用網路博弈論來建模研究。

五、博弈論機制設計就是區塊鏈的未來

博弈論裡對區塊鏈的未來有關鍵作用的一個東西就是機制設計。

機制設計是博弈論的工程問題,也就說,如果我想要達到一個社會組織目標,其中每個參與者都有自己的輸入,我設計的機制就是一個演算法,這個演算法使得每一個參與者都願意提供自己真實的資訊和採取設計的行為來達成社會目標。

今天,我想用美國國防研究所DARPA在2009年搞的一個紅氣球挑戰遊戲來介紹什麼事機制設計,以及機制設計的重要性和趣味性。

DARPA的紅氣球挑戰其實為了紀念網際網路產生三十週年來做紀念的。這個挑戰在舉行的半年前就對外公佈了,主要內容是,在2009年十月的某個週六,將在美國某十個城市的未知地點升起十個大的紅氣球,哪個個組織或個人最先準確報告十個紅氣球的位置,將會贏得四萬美金的大獎。

這個挑戰出來以後,很多這個博弈論學家對此非常感興趣。甚至很多人就在計算,如果我做一個有獎徵集,誰報告一個紅氣球的位置,假如我最後得到四萬美金的大獎,那麼應該獎勵單個報告者的最優金額應該是多少?最後的結果是,MIT組織的隊伍在這個挑戰開始以後少於九個小時的時間裡,報告了十個紅氣球的準確的位置,贏得大獎。

不管意識到沒有,每個參加團隊都在使用一個機制。這個機制需要激勵個人參與,保證真實,又要隊伍之間互相競爭以致互相搗亂。

優勝隊伍的機制非常有意思,類似於被政府禁止的傳銷。也就說,他們通過公佈組織和獎勵規則,形成了一個樹形的傳銷隊伍。

核心的四個學者作為傳銷組織的最上線,然後通上線拉下線的方式來拉人形成網路。鼓勵規則激勵每一個人都會努力地發現紅氣球,因為,發現紅氣球的人能夠報告給核心,然後隊伍最後贏得大獎的話,發現氣球的個人將得到兩千美金,他的直接上線會得到一千美金,然後再上線得到五百美金。這樣,從發現單個氣球的個體,一直走到最上線的話,大概差不多是四千美金。這樣,十個氣球,4萬美金就可以獎勵所有的發現者和上線。這個機制設計得非常好。因為,為了增加自己最後得到的獎勵的話,你就會盡量去拉下線,下線越多,離你越近,你得到獎勵的可能就越高。

在紅氣球挑戰裡面還有一個信任問題。例如,有的人採用的方式是有獎徵集,即在谷歌上發一個廣告說,發現紅氣球然後把位置發給某個email,如果最後得獎的話,會給你多少獎勵。但這就產生一個問題,就是你的路人或者競爭者可能會給你發錯誤資訊。設計機制就很好的解決了信任問題和激勵問題,通過上線拉下線的方式,你拉的基本上都是你認識的人,欺騙後果就嚴重了。

機制設計就是區塊鏈的未來,這主要是跟智慧合約結合在一起的。

因為區塊鏈的透明、可信,然後再加上智慧合約的自動執行。我相信,在未來的區塊鏈應用上面,智慧合約應該會成為大殺器。而在智慧合約的設計過程中,我們必須做機制設計,每個區塊鏈的應用都是一個博弈論機制設計!

博弈論機制設計在區塊鏈上的應用可以說是無窮無盡。這裡我只能舉例講講一些我拍腦袋就能想到的東東。

比如說,團購。

團購,現在已經被商家搞得跟一般的折扣沒有太大的區別了。但是,團購剛開始提出來的時候,是基於一個很好的機制設計。因為,在傳統的零售或者服務業,商家需要做很多廣告去招徠客戶,現在通過一個合同,就是說只要吸引足夠多的人來購買,就給大家一個大折扣。這個機制鼓勵每個參與購買的人,都有一個激勵使得他們通過口耳相傳的方式去給商家做廣告,把朋友什麼的拉進來—商家省了廣告費,客戶得到了好處。

但是,網際網路對於實現團購機制是不成熟的:機制在什麼地方實現,其實是大有問題的。因此,團購慢慢就變成跟傳統的折扣沒什麼區別。我認為,主要是透明和可信問題沒有解決。

有了區塊鏈,商家就可以寫一個智慧合約放在區塊鏈上面,合約規定很清楚,當多少人蔘與團購的時候,就可以給你多少的折扣。而且,大家在區塊鏈上參與,時刻人數都是透明的,可以看到。所以,對於顧客來說,它就會產生一個很好的激勵作用。因此,即使團購這樣一個已經被大家用爛的機制,如果能夠在區塊鏈上重新進行智慧合約實現,都會產生很大很不同的效果。

其次講講拍賣

一般大家熟習的主要是英國拍賣,就是採用往上競價的方式,每個參與者不斷喊價直到別人退出。但英國拍賣往上競價的方式會用很長的時間,而且,私密性也不是很好。

德國拍賣也叫次高價拍賣,它的機制是,每個競拍者把自己對拍賣品心中的估值直接寫到到競拍的標書裡,將其交給拍賣者。拍賣者收集到所有標書後,會搜尋誰是最高的出價者,最高出價者就會得到拍賣品,但是,最高出價者給的價錢,並不是他自己出的價錢,而是所有拍賣價的第二高的那個價錢。

在博弈論機制設計裡面可以證明德國拍賣和英國拍賣是等價的。但是德國拍賣中,每一個競拍者把自己心目中的拍賣品的價格寫出來,不需要多次出價,只需要出一次價格,而且也不需要讓大眾知道出的價。因此,將德國拍賣在區塊鏈上通過智慧合約來實現,也會是一個非常好的應用。

第三個例子是我們平時買的保險

其實我們買的就是一個合同,現實中大家可能參加過車的保險或者是其他保險,理賠的過程通常都會很麻煩,因為保險公司都在想盡可能的去賴賬。但是,把保險寫成一個智慧合約,那麼這些問題就都統統消失了。因為,不管保險公司願不願意,一旦預言機能夠判定被保人受到損失,那麼這些賠付都是自動進行的。還有很多金融的衍生產品,比如什麼CDO,hedge fund,其實都可以寫成智慧合約的形式。

第四個例子是博彩或賭博

如果把它寫成智慧合約,在區塊鏈上就會得到很好的執行,因為輸贏之後的賠付,完全都是自動進行的。區塊鏈在慈善上也會有很好很多的應用。大家可以想象,在慈善活動中,可以設定這樣的機制:如果有興趣,大家都可以參與這個捐款活動,但這個捐款是一個有條件的捐款,比如說,我的條件是,我捐了一百萬出去,如果最終的捐款目標能夠成,我的捐款就捐出去了,如果沒有達成的話,捐款就自動退回來,不用真正的捐出去。這種方式有很好的激勵作用,讓有捐款的意向的人提前表達出來。

機制設計對於代幣的發行,其實也有很重要的作用。

這裡,我引用Arvind Narayanan在推特上說的一句話“Create tokens without studying mechanism design is like building new cryptosystems without reading any crypto papers。”翻譯過來就是,如果我們發行代幣而不去研究機制設計的話,就像我們去建立新密碼系統而不去讀密碼學的文章一樣。一句話,代幣的發行必須被設計成一個審時度勢的博弈論機制。

從這個角度來看比特幣的挖礦,它把新塊產生過程變成要去解決一個比較複雜的數學問題,這樣會花很多的能量和計算去產生新的區塊。但是從另外一個角度來說,挖礦產生的新的比特幣耗費了一些能量,從人的心理上來講,它可能會增加對這個代幣的認同。

另外,很多人會覺得一個代幣如果要作為一個貨幣的話,就必須有一個穩定的幣值,而不像今天的比特幣,每天漲跌那麼多。

如果我們要去穩定幣值的話,其實也可以通過智慧合約來控制發幣,比如說,幣值增加太快的時候就增加發幣,下跌的時候就減少發幣,通過自動執行的智慧合約來穩定幣值。有了機制設計,穩定幣值在未來也不是不可能的。

相關文章