翻譯《Vitalik:On Collusion》論共謀

Williams Lai
19 min readApr 10, 2019

--

On Collusion 論共謀

原著: Vitalik Buterin

Apr 3, 2019

特別感謝Glen Weyl, Phil Daian 和 Jinglan Wang的審閱

在過去幾年裡,有越來越多人對於使用精心設計的經濟激勵及機制設計,來協調不同情境下的參與者行為感到有興趣。在區塊鏈的世界中,機制設計首要的是提供區塊鏈本身安全性:意即鼓勵礦工或者權益證明(POS)的驗證者能夠誠實的參與,但最近也被用在預測市場 代幣精選清單(token curated registries)以及非常多其他情境下。新興的基進變革行動(RadicalXChange movement)也同時引起了像是哈柏格稅(Harberger taxes)、二次方投票(quadratic voting)、二次方金融(quadratic financing)等甚至更多的實驗。最近,也有越來越多人有興趣使用基於代幣(token-based)激勵的方式,來試著鼓勵人在社交媒體上生產有品質的貼文。然而,隨著這些系統的發展漸漸從理論更接近實際落地的時候,這裡也有許多挑戰需要處理,而且我認為這些挑戰沒被充分的面對。

最近有個從理論到實際部署的案例--幣乎(Bihu),一個最近釋出一套基於代幣的機制,來獎勵人們寫文章的中國平台。他的基本機制(中文版的白皮書在這裡)是讓平台的使用者持有KEY代幣,他們可以用KEY 代幣在文章上面下注;每個使用者每天可以製造k個「點贊」(upvotes),而且每個點贊的權重(weight)與點贊的使用者的賭注成正比。被贊了很多次的文章會出現在比較顯眼的地方,文章的作者也會得到一些大致與投給文章票數成正比的KEY代幣作為獎勵。這是一個過度簡化的說明,而且在實際機制裡包含了一些非線性在其中,但是這對於該機制的基本功能來說並不是很重要。KEY有價值是因為他可以被以多種形式在此平台中使用,但特別是在所有廣告的收入中,會用一部分去買進還有燒毀KEY(沒錯,要給他們大大的一個讚,因為他們這樣做而沒有製造另一個交易媒介代幣(medium of exchange token)!)。

這種設計一點也不特別;獎勵線上的內容創作(的平台)是非常多人關心的,而且在此前已經有許多類似於他的設計,也有一些相當不一樣的設計。在這樣的情況下,這個特定的平台(指幣乎)已經被大量的使用了。

幾個月以前,在以太坊的交易平台subreddit /r/ethtrader上引進了一種有點類似幣乎的實驗性功能,亦即有一個叫做甜甜圈(donuts)的代幣,發行來給使用者讓他們的評論能夠得到讚(贊成票),甜甜圈每周發給用戶的數量和用戶的評論收到多少讚成正比。甜甜圈可以用來每設定subreddit頂端橫幅內容的權利,而且也能用來在社群投票中投票。然而,不像在KEY系統中發生的事情一樣:在這裡(ethtrader),當B收到A的讚的時候,獎勵並非和A既有的代幣供應量成正比;相反的,每個Reddit上面的帳戶都有相同的貢獻能力能夠給其他的Reddit帳戶(按讚)。

這種嘗試要超越「捐獻或微量小費等等已知的局限」,來獎勵有品質的內容創作,是非常有價值的;使用者產生的網路內容報酬不足,大致來說已經是個非常重要的社會問題(可以看自由基進主義(liberal radicalism)數據即勞動(data as labor)),而看到加密社群企圖用機制設計的力量來突破解決這個問題是令人振奮的。但很不幸的是,這也是個易於受攻擊的系統。

自己灌票,金權政治和賄賂(Self-voting, plutocracy and bribes)

以下是如何從經濟層面對於上述的設計進行攻擊。假設有些富有的使用者取得一些數量N的代幣,而且因此該使用者的 k個贊成票各都會給接收者N * q的獎勵(q 在這裡是一個非常小的數,例如假設q = 0.000001)。這個使用者僅只需給自己的分身帳號投贊成票,就可以讓自己得到N * k * q的獎勵。於是,這個系統非常容易就崩潰,變成那種單純給使用者「每期k * q 利率」的工具,那這樣這個機制就什麼也做不了了(不能達到獎勵優質內容的效果)。

實際上幣乎的機制似乎預想到了這一點,而且有超線性的邏輯設計:哪個文章得到越多KEY為他們點贊,他們會獲得超越等比例的回報,似乎這是要鼓勵投票給受歡迎的貼文,而不是投票給自己。加入這個超線性機制,來避免自我灌票破壞整個系統,似乎這是一個在代幣投票治理的系統中常見的設計模式;在大多的DPOS方案中都只有有限的代理名額,對於沒有足夠票數來加入這個代理名額的人,將沒辦法得到任何獎勵,這樣也有類似的效果。但是這些方案會帶來兩個新的缺點:

  • 他們會補貼「財團」,例如某些很富有的個體戶和壟斷集團,依舊可以獲得足夠的資金來給自己投票。
  • 他們可以透過賄賂其他使用者來幫他們全體投票,以繞過這個限制。

賄賂攻擊可能聽起來有點牽強(在座誰在真實世界有收賄過的?),但是在一個成熟的生態系中,賄賂攻擊非常實際。在大多數發生在區塊鏈世界的賄賂情形中,這些操縱者還會用一些委婉的名詞來給這種觀念(賄賂)一個友善的面孔:「這不是賄賂,這是可以分享股利的投票(押注)池」。賄賂甚至可以讓人難以辨別:想像一下一個交易所提供你零手續費,而且花了好大的力氣製作了一個超級精美的介面,甚至不試圖獲利;然而,它們其實在做的是使用用戶的抵押的代幣,去參與各種代幣投票系統。不可避免地有些人會認為團體勾結是稀鬆平常的,看看最近EOS、 DPOS的醜聞就是一個例子:

最後,還有「負面賄賂」的可能性,例如勒索或脅迫,或者威脅參與者說除非他們乖乖的照機制內的某種方式行事,不然將要傷害他們。

在 /r/ethtrader的實驗中,由於擔心人們會來買很多甜甜圈來影響治理投票,導致社群決定只讓鎖住(也就是不能交易)的甜甜圈有資格用於投票。但還有一種比買甜甜圈更廉價的攻擊方式(這種攻擊也可以視為一種讓人不容易分辨的賄賂):就是「租」甜甜圈。如果一個攻擊者已經持有以太幣了,他們可以用它做為例如 Compound等平台上的抵押品,拿到一些代幣的借款,假設你有全部的權利去使用代幣做各種的目的,包括參加投票,那麼當他們完事以後,他們只要將這些代幣送回去借貸合約中,就可以拿回他們的抵押品(也就是以太幣),甚至完全不需要忍受任何一秒的代幣價格風險,因為他只是拿它們去做代幣投票的,即使代幣投票機制包含時間鎖(例如幣乎就這麼做)。事實證明,在每種情況中,圍繞著賄賂,意外的過度授權(over-empowering)還有人脈廣闊且富有的參與者等問題都出人意料的難以避免。

身分識別(Identity)

有一些系統則試圖透過使用身分識別系統,來減緩代幣式投票會產生的財閥問題。在/r/ethtrader的甜甜圈系統中,雖然治理用的投票池已經透過代幣投票完成,但首先決定你得到多少甜甜圈還是基於你的Reddit帳號:從一個Reddit帳號得到1個贊成票等於獲取N個甜甜圈。身分識別系統的理想目標是要讓個人相對容易的獲得一個身分,但是相對困難的得到很多身分。在/r/ethtrader甜甜圈系統中,是靠Reddit帳號;在 Gitcoin CLR的配對工具裡,則是透過Github來獲得相同的目標。但是身分識別,至少從目前實施的方案來看,還是一件脆弱的事情。

喔,你是不是太懶的自己搞出一大堆的手機?嗯那你可能正在找這個:

警告:一個粗略的網站有可能會,也有可能不會詐騙你,你最好自己研究一下。

可以這麼說:透過簡單的像個魁儡師一樣地,控制著上千個假身分來攻擊這些機制,甚至比賄賂別人還要容易。而且你認為回應這個問題只要增加安全性到達政府認證級別的身分就好了嗎?嗯,如果你想要了解其中的一些(問題),你可以從這裡開始探索,但記住這裡總是有一些能夠遙遙領先於你的專業罪犯,如果當我們笨到創造一個讓這些活動有利可圖的系統時,即使所有的地下組織都被處理掉,敵對勢力的政府(治理機構)也必定能創造數以百萬計的假護照。而且這裡還沒有開始提到反方向的攻擊,那就是身分發行的機構,也會試圖透過拒絕提供身分證件的方式來剝奪邊緣社群的權力。

共謀(Collusion)

考量到一旦多重身分或者甚至是流動市場參與其間,許多機制似乎都會以相似的方式失敗,有些人可能會問,是否存在著某些深層的共同因素,導致這所有的問題?要我來說這個答案一定是YES,而且這個共同因素我認為是這樣:在一個參與者能夠串通勾結的模型裡,要使得機制能夠保有理想的性質,相對於不能串通的模型來說是更困難,也更接近於不可能的。許多人可能對於這件事已經有一些直覺, 在成熟的規範或(通常是)法律背後,有許多這個原理的特定實例,這些規範和法律促進競爭市場,以及限制一起喬價格的企業(壟斷)聯盟,買賣選票還有賄賂等行為。但是這個議題是更深,也更為廣泛的。

在「聚焦於個人選擇」版本的賽局理論中,此版本假設每位參與者都只能獨立做決定,而且不存在一群參與者,為了某個他們的共同利益而集體行動的可能性,這裡已經有數學證明至少有一個穩定的奈許均衡解(Nash equilibrium)存在於任何的賽局中,而且機制設計者有一個非常寬廣的空間來「設計」賽局,以達到某個特定的結果。「允許策略聯盟合作」版本的賽局理論,稱作合作賽局(cooperative game theory),在合作賽局裡,有一大堆類別的賽局沒有「能夠使得聯盟悖離無法獲益」的穩定(均衡)結果。

大多數賽局,形式上定義為N個參與人賽局,也就是他們之中任一個超過半數的子集,都可以取得一個固定報酬,並且在這些代理人之間瓜分,這和公司治理、政治,還有許多其他人類生活中的情況有驚人的相似,本質上這些事情就是一個不穩定賽局的一部分。也就是說,今天有固定的資源,而且有既定的機制來分這些資源,這時不可避免的會有51%以上的參與者會共謀,以奪取資源的控制權,不論當前的配置是什麼,總是會出現一些對於參與者有利的共謀結構。然而,這種共謀結構可能也很難抵擋潛在的新陰謀結構,這裡面可能包含前代的共謀者,還有受害者的結合...諸如此類。

在合作賽局中,多數決賽局的不穩定性這個事實,可說是被過度低估。這個事實可以作為一個簡化的廣義數學模型,來詮釋為什麼可能在政治學上可能沒有所謂「歷史的終結」(end of history),而且沒有 政治體系被證明是讓人滿意的;我個人認為這(意指合作賽局)還是比更有名的Arrow定理有用多了。
(譯註:Arrow定理指不可能存在一種社會選擇機制,使個人偏好通過多數票規則轉換為成社會偏好)

這裡有兩種方式可以解決這個問題。第一種方法是試著將我們自己限制在「免身分識別」和「共謀安全」的這種賽局中,所以在這裡我們不用擔心賄賂或者身分識別等問題。第二種是試圖去直接處理身分識別問題與抗共謀問題,並且解決到足夠完美,以求夠實做出非共謀安全的賽局,並善用其豐富的性質。

免身分和共謀安全的機制設計(Identity-free and collusion-safe game design)

這種類型的賽局裡,無身分而且可以共謀安全是他的本質。甚至工作量證明在某個單一成員達到23.21%的總算力之前也是共謀安全的,而且還可以通過巧妙的工程方法達到50%的上限。競爭市場在達到相對高的界線前都是合理的共謀安全,這個上限對於有些情況可以輕易到達,但有些情況則不行。

在治理和內容積釀 (content curation)這兩個案例中(這兩個案例都是一般識別「公共財」和「公害」的問題的特殊案例。)一種運作良好的主要機制是futarchy—通常會描述為「透過預測市場來治理」,雖然我會認為這和存款保證金根本上是同種技術。 futarchy的機制方式最常見的形式是這樣:投票不僅僅是表達意見,也是在「獎勵做出正確預測,並懲罰做出錯誤預測的人」的情況下做出預測。例如,我提案過「內容積釀的DAOs預測市場」,建議採取半中心化設計,在這裡任何人可以對內容投贊成票或反對票,內容的贊成票數量越多,就越容易被看見,這裡也有一個會做出最後的決定的「審查小組」。對於每篇貼文,審查小組有很小的機率(和投贊成票和反對票的票數成正比)會被呼喚來對這篇文章做最後的決定。如果審查小組贊成這篇文章,每位投贊同票的就能夠獲得獎勵,而且投反對票的人會受到懲罰,如果審查小組對一篇文章投不贊同票,則會有相反的情況發生;這樣的機制是要鼓勵參與者利用他們的「贊同」和「不贊同票」來試圖預測審查小組的判決。

另外一個futarchy可能的案例,是有代幣的專案的治理系統,在這裡任何要投票做決定的人,如果投票獲勝的話,有義務用投票開始時的價格,去購買一定數量的代幣。這確保了投給錯誤決定的代價是昂貴的,而且一個壞的決定在投票中獲勝的限制下,那麼每個贊同這個決定的人,本質上必須買斷在此專案中所有其他人的代幣。這也確保每個人把票投給錯誤決定的時候,會付出昂貴的代價,除排了廉價賄賂的可能性。

這張圖描述一種 Futarchy 的形式,創造兩個市場代表兩種可能的未來世界,並且去選擇一個更有利的價格。來源:這篇貼文

然而,這種機制能做的事情終究是有限的。在這個內容積釀的案例中,我們並非要真正解決治理問題,我們只是將已經假設可信的治理工具的功能(指審查小組)放大。人們可以試圖把審查小組換成代幣的價格預測市場,這裡代幣有權去購買廣告空間。但實際上價格是一個太多雜訊的指標,只適用在少量的極重大決定。而且我們嘗試極大化的價值,通常不是代幣的價值。

讓我們更深入的看看為什麼,在更為一般的情況下,我們沒辦法在此輕易地透過代幣價格的影響力,來決定該治理決策的價值,不幸的是,識別公共財和公害的的好機制,並沒有辦法免身分或者共謀安全。如果想試著保有賽局中免身分識別的性質,建立一個身分識別不重要、且只有代幣能夠起作用的系統,那麼就必須在「無法激勵合法公共財」,或者「過度補貼富豪集團」之間作取捨。

論證如下:假設這裡有一些正在製造公共財的作者(例如一系列的部落格文章)為10000人的社群中的每個成員提供了價值。假設這裡存在著一些機制,讓社群的會員可以採取行動,讓作者收入多一元。除非社群成員們極端的無私, 要嘛這個機制要運作的成本就必須遠遠少於一元,否則社群會員獲得的利益的部分將要遠遠小於支持作者的成本,而且這個系統也將崩潰成一個沒有人支持作者的公有地悲歌。因此,必須存在一種方式讓作者在成本少於1元的情況下可以賺取1元。但假設現在也有一個假社群,是由某個富有的攻擊者的10000個假帳號組成。如果對於真正的社群成員來說,在個人付出的成本遠小於1元的情況下給該位作者1元是可能的,這樣攻擊者也可能在個人付出的成本遠小於1元的情況下,一再的給他們自己1元,從而耗盡這個系統的資金。任何一個能夠幫助缺乏協調的團體們協調的機制,在沒有正確的保護措施下,也可能使得已經協調好的團體(例如許多帳戶被單一個人所控制的團體)過度協調,進而從系統中榨取資金。

當目標物不是資金的時候,而是決定什麼內容應該是最可見的時候,也有一個類似的挑戰出現。什麼內容你認為會得到更多的錢去支持他呢:是一個合理的高品質,而且能使得上千人受益,但對自己獲利卻相對低的部落格文章嗎?還是下面這個呢?

或者可能是這個?

那些在「真實世界」關注最近的政治的人,也可能指出不同於上述,但一樣獲益於中心化行動者的內容:也就是社交媒體被敵對的政府所操縱。最終,中心化系統和去中心化系統可能都會面臨一樣的根本問題,就是「想法市場」(以及更廣泛來說的公共財市場)離經濟學家所謂的「效率市場」還是非常的遠,而且這會導致公共財即使在「和平時期」仍生產不足,同時非常容易受到活躍的攻擊。這就是一個難題。

這也是為什麼以代幣為基礎的投票系統(例如幣乎)與基於身分系統(例如the Gitcoin CLR或/r/ethtrader的甜甜圈實驗)相比有一個真正的優勢:至少這裡沒有大量購買帳戶能夠獲得利益這回事,因為每件你做的事情,都會正比於你有多少代幣,而不管你的硬幣要如何分割到多少個帳戶裡面。然而,只依賴於代幣而不依賴任何身分識別模型的機制,這本質上沒辦法解決『利益集中者比「試圖支持公共財的分散社群」更有競爭優勢』的問題;一個賦權給去中心化社群的無身分識別機制,無法避免的會過度賦權給假裝是去中心化社群的中心化富豪集團。

公共財賽局的弱點不只有身分辨識問題,還有賄賂。想理解為什麼,可以再想一次上面的例子,但在此不要把假社群當作是第10001個攻擊的假帳號,攻擊者只有一個身分,即用來收取資金的那個帳戶,而且其他10000個帳號這次也是真的使用者,只是他們每次收取0.01元的賄賂金額,去採取會導致攻擊者額外得到1元的行動。如上所述,這些賄賂可以被高度的混淆,甚至透過第三方託管服務,讓使用者為了方便,而以「他們的投票權利」作為交換;在代幣投票的情況中,設計一個讓人混淆的賄賂行為甚至更輕鬆:一個人只要透過在市場上租代幣和使用他們去投票,就可以完成這件事。因此,在某些種類的賽局,尤其是預測市場或者基於保證金的遊戲,可以做到無身分且共謀安全,但廣義的公共財募資,似乎仍然是一種共謀安全和無身分方法無法解決的問題。

抗共謀及身分識別(Collusion resistance and identity)

另外一種選擇是正面處理身分問題。如上述提到的,簡單的提升中心化的認證系統,例如護照或者其他政府級別的ID,將沒有辦法大規模的運作;因為在一個有充分激勵的背景下,他們非常不安全,而且會受到發行政府本身的攻擊!相反的,我們在此說的「身分」 我們在此說的「身分」是某種強健、多因素的主張, 他主張能被某幾組訊息真正辨別出來的行為者,就是獨一無二的個體。一個非常早期的網絡身分模型可以說是HTC區塊鏈手機的社交密鑰復甦(social recovery)。

最基本的想法,是你的私鑰是私密共享在最多五個可信任的聯絡人之間,透過這種方式,在數學上可以確保透過這些人中的其中三個,可以恢復你原先的鑰匙,但兩個或者以下則不行。這就有資格稱作是「身分識別系統」 — 這是透過你的五個朋友來決定「某個試圖要恢復你的帳號的人」實際上是不是你。然而,這是一個專門用來試圖解決個人帳戶安全問題的身分識別系統,這和企圖要識別唯一的個人身分的問題有所不同(而且甚至更簡單)。話雖如此,個體之間相互主張的推廣模型,很有可能被成為某種更強韌的身分識模型。這些系統如果使用上述的「futarchy」機制,可以被增強:如果某人主張某人是個獨立的個人,同時有其他人不同意,那麼兩方願意拿出保證金來提起訴訟,那麼系統就可以請出審判小組來決定誰是對的。

但我們也想要另一個重要的功能:我們想要創建一個讓你不可能可靠的出租或者拍賣的身分。很明顯的,我們沒辦法阻止人們做(身分)交易:「你給我50元,我寄我的私鑰給你。」但我們能做的是試圖阻止這類交易變的可信:因為這會使得賣家可以輕易的欺騙買家,而且給他們一把不能用的私鑰。另有一個方式是設計一套機制,讓私鑰的擁有者可以寄送一筆交易來撤銷舊鑰,並且用另一把由擁有者所選的新鑰來替代他,而這一切都無法被旁人證明。處理這個問題最簡單的方式,也許最簡單的方式是使用可信任團體去執行運算並只公布結果(附帶零知識證明來證明公佈的結果,所以這個可信任團體只是信任它保有隱私,不用信任它運算的誠實性),或者我們也能夠透過多方運(multi-party computation)來去中心化相同的功能。這些方式無法完全解決共謀的問題;朋友們依舊可以一同坐在一張沙發上並協調投票,但至少會將這個問題,減少到一個不會導致系統全面崩潰的可控程度。

這裡還有個更深層次的問題:最初的私鑰分配。如果使用者在第三方代管的服務機構創建了一個自己的身分,然後這個機構存了他的私鑰,並且偷偷的拿他的私鑰去投票,那會發生什麼事情呢?這可能是隱性的賄賂,也就是用使用者的投票權,來交換提供給他們的便利服務,更甚者, 如果系統讓選票無法證明投給誰,來達到避免賄賂的安全性,則第三方的秘密投票也將無法偵測得到。唯一一個處理這個問題的方法似乎是親自驗證。例如,我們可以有一個「生態系的發行人」,在此每個發行人都可以發行有私鑰的智能卡,使用者可以立即下載這張卡到智慧型手機上,並且傳送訊息,用一個沒告訴過任何人的私鑰來取代原本的私鑰。這些發行者可以是線下聚會或者研討會,或者已經被一些投票機制認定是可信賴的潛在個體。

建立起有可能抗共謀機制的基礎設施,包括強韌的去中心化身分系統,是一件非常困難的挑戰,但如果我們想解放這種機制的潛力,我們似乎不可避免得要盡自己最大的努力去嘗試。目前的計算機安全確實圍繞著許多教條,例如:引入線上投票就是不行,但如果我們想要擴張類投票機制的作用,包括例如二次方投票或者二次方金融更先進的形式等更多的作用,我們別無選擇,只能去面對當前的挑戰,並努力的去嘗試,並且由衷的希望至少在某些使用情境上,能成功促使某些東西夠安全。

譯後註:本文能夠順利完成翻譯,要很謝謝智程推薦文章,並且在翻譯的過程中提供我很多意見,還有補充關於賽局理論等經濟學的背景知識,實在是說再多次的感謝也不為過。
當然,如果有什麼地方需要修改,也請不吝告知,讓我能夠給大家更高品質的文章。

19/4/11更新:也謝謝原著Vitalik轉推本文。

LikeCoin 文章讚賞獎勵計畫如果您喜歡,可以按最多 5 次鼓掌按鈕給予鼓勵;我會收到讚賞幣獎勵,如果註冊 LikeCoin ID 後再按鼓掌,我會得到更多獎勵,感謝讚賞!

--

--

Williams Lai
Williams Lai

Written by Williams Lai

A blockchain degen who is doing something Impossible in DeFi \ prev Nervos advocate from 2019~2021/10

No responses yet