天天看點

自由意志跪于規則前:比特币的博弈論軟體觀

自由意志跪于規則前:比特币的博弈論軟體觀

比特币的共識問題使用了博弈論的研究,這一點有些人知道有些人不知道。但是博弈論到底給比特币這樣新誕生的軟體帶來了什麼,可能很多人都不清楚。博弈論的應用和Proof of Work的實施,無疑是非常天才的一個做法。

說到博弈論,很多人多少都知道一點,還有人從美麗心靈裡知道納什的故事。但是博弈論到底是什麼呢?

博弈論,英文叫做Game Theory,是20世紀經濟學最偉大的成果之一。它研究在一個兩個或者多個個體參與的群體博弈行為中鬥争各方是否存在着最合理的行為方案,以及如何找到這個合理的行為方案的數學理論和方法。一般博弈論從囚徒困境和選舉遊戲開始講起。

囚徒困境

我們一般學習博弈論的時候都聽說過囚徒困境。這裡是諸多囚徒困境版本裡的一個:有嫌疑犯A,B兩個人,因為偷銀行被抓起來,單獨隔離審查。囚犯互相無法交流。警察給與嫌疑犯招或者不招的選擇。

選擇的結果如果A,B同時招供,各判刑10年。如果一方招供另外一方不招供,則招供一方無罪釋放并且獲得巨額獎金。不招供一方槍斃之。如果雙方都不招供,雙方無罪釋放。

這個故事裡各種獎勵處罰可以調節。常用政策是,無論是A或者B分析如下。如果對方選擇招供,那麼自己招供的時候判刑10年,不招供的時候槍斃,招供好。如果對方選擇不招供,那麼自己招供可以無罪釋放還拿獎金,自己不招供僅僅無罪釋放。是以選擇還是招供更好。總的來說,招供比不招供好。

但是兩個人如果都這樣選擇了之後,結果就是各判刑10年。但是如果兩個人都選擇不招供,雙方都會無罪釋放。可以想象,這樣的設定,按照聰明人做出來的選擇,正好滿足了警察設定規則的初衷,壞人統統入獄。

從某種角度來看,這既反映了規則設定者的強大,又說明在公共環境下,Trust是多麼寶貴的财富。

選舉遊戲

這裡我們講另外一個非常著名的群體博弈論的例子。假設現在有若幹個人,大家一起玩選舉遊戲。這裡的選舉不是選某個人幹什麼,而是大家先上交100塊錢進一個獎金池。然後每個人可以自由的從1到100裡選一個數字出來。沒有人知道别人選了什麼。數字可以随便選,可以重複。

等大家都選好了數字之後,我們對這些數字求個平均值。最接近平均值2/3的那個人拿走所有的獎金。如果若幹個人平局,就平分獎金。隻要這些參與遊戲的人都是非常非常聰明的人,這個遊戲的最終結果是大家都選1。

理由并不複雜。假設大家都選100的話,那麼平均值的2/3小于67,是以任何選了67以上的人機會就不大了。是以聰明人想一想,都不應該選67以上的數字。以此一遍遍自己腦子裡類推下去,最終聰明人都會得出自己必須選1的結論。

比特币的共識問題

在這兩個例子裡,都有一個特點。如果系統本身是聰明的,追逐自己利益最大化的,那麼一旦系統的制定者設定好了規則之後,整個系統就不以人的意志為轉移的向着某個方向收斂。

比特币的共識問題簡單來說就是比特币的賬本得到整個比特币網絡的确定。它的做法是通過挖礦來實作的。所謂挖礦,學名叫做Proof of Work。其實不是新鮮東西。

簡單來說,比特币網絡裡面的每個節點都可以打包交易記錄,成為新區塊。但是一個新區塊要被整個比特币網絡接受,需要大抱的節點解一個很難的數學題。這個數學題在比特币裡面是對新區塊的頭做SHA256密碼級别的哈希兩次。符合要求的解必須是哈希值前面若幹位為0。

熟悉SHA256的人知道這個東西很難做,又沒捷徑隻能硬拼算力。但是這些願意拼算力的節點都是好節點,努力的做好事,由于它們的努力解題勤奮打包,保證了整個比特币網絡的穩定。

共識問題中的博弈論

那麼為什麼這些節點都自願的做雷鋒燒電打包挖礦呢?其最主要的原因是做好人好事在比特币系統裡面給與獎勵,獎勵一開始是50比特币,每隔4年下降一半。我們現在在第三個4年裡,現在做好人打包就隻有12.5個比特币了。

大家好像還是沒有看出來這裡面的博弈論到底在哪裡。和囚徒困境以及選舉遊戲比起來,這個地方的博弈論不明顯。我們需要展開說一下。

在比特币系統裡,如果51%的節點是好人的話,這個系統就是安全的,因為壞人無法篡改賬本。因為比特币是一個網際網路上的P2P系統,誰都可以進來,是以我們不能阻止居心叵測的節點混進來幹壞事。

但是我們設想兩種不同的情況。情況一是比特币系統是個自娛自樂的小系統,大家挖礦開心,想來就來想走就走。這是比特币系統的早期。币是空氣币,毫無價值。是以有心人很容易投入機器占據51%的算力。但是統治了這個網絡之後,拿到手的也隻是一把空氣币。何必浪費錢呢?

情況二是今天的比特币系統。無數龐然大物在挖礦打包做好人。每個新區塊的12.5個比特币按照6000美元一枚計算也是8萬美元的收入。無數多的人願意賺這麼多的錢而投入機器電力去挖礦,進而保證了系統的穩定性。如此龐然大物的系統,幾乎不可能有一個團體有能力去占據51%的算力。因為代價付不起。

情況一是個玩具,情況二是一個極其穩定又分布式的記賬系統,現實世界裡見得人和見不得人的交易都可以穩定的來使用。

具體來說有三個要素在這個系統裡:(1)比特币對法币的價格(2)願意參與系統裡面來做好人挖礦的算力(3)比特币系統的抗攻擊能力。我們可以看到一個自我回報增強(或者減弱)的循環。比特币系統裡做好人挖礦的算力越多,系統就越穩定,也就有越多的人願意用這個系統去做實物交易,進而也就導緻了比特币對法币的價格更高,進而促進更多的人進來挖礦,進而系統更穩定。

可以說,隻要系統度過了最初的艱難的階段,那麼這個自我增強的循環能力就可以不斷入滾滾洪流一樣帶着比特币系統越滾越大,中本聰根本不需要再做任何的宣稱,比特币已經是龐然大物了。這兩個例子裡,都有一個特點。如果系統本身是聰明的,追逐自己利益最大化的,那麼一旦系統的制定者設定好了規則之後,整個系統就不以人的意志為轉移的向着某個方向收斂。

博弈論在其他軟體的未來

我本人并不是其他共識算法的粉。尤其是某大神在自己的多個作品裡推薦的DPoS,更是違反了博弈論的基礎,又怎麼可能成功呢。EOS上線以後就開始跌跌不休,上線前還有那麼多韭菜信。隻能說李笑來說的傻逼的共識也是共識真的沒錯。

但是如果你要了解了博弈論這套東西設定好了規則和目标以後,系統就沿着設定的方向自動運作和發展了的精髓,就能想象其背後革命性的東西了。比特币用博弈論解決的是賬本共識問題。但是如果經濟學家們有能力在更複雜的系統下設定出目标和規則的話,我們未來的軟體世界,實在吓人的無法想象。

隻不過世界确實是太複雜了,用好博弈論去解決系統性問題,不是那麼容易的。但是既然有了比特币,我想未來這個方向上一定會出現更為歎為觀止的軟體,自動駕駛不斷擴張不需要人幹預的軟體。

很多人都在談論智能合約,但我覺得,博弈論如何在這類系統裡更深層次的應用,可能才是區塊鍊帶給人類最翻天覆地的變化。