編者注:Augur 是以太坊上的一個(gè)預(yù)測(cè)市場(chǎng)平臺(tái),用戶可以在平臺(tái)上自由地創(chuàng)建預(yù)測(cè)項(xiàng)目,邀請(qǐng)其他人預(yù)測(cè)未來某個(gè)事件的結(jié)果,在參與預(yù)測(cè)時(shí),參
編者注:Augur 是以太坊上的一個(gè)預(yù)測(cè)市場(chǎng)平臺(tái),用戶可以在平臺(tái)上自由地創(chuàng)建預(yù)測(cè)項(xiàng)目,邀請(qǐng)其他人預(yù)測(cè)未來某個(gè)事件的結(jié)果,在參與預(yù)測(cè)時(shí),參與者要購買相應(yīng)結(jié)果的份額,即 “下注”。本文介紹了 Augur v1 在運(yùn)行過程中遇到的一個(gè)問題:有些參與者會(huì)通過創(chuàng)建最終會(huì)被判定為 “無效” 的預(yù)測(cè)項(xiàng)目來欺詐;并提出 Augur 的短期解決方案和長遠(yuǎn)解決方案。
重寫游戲
Auger 有點(diǎn)像高風(fēng)險(xiǎn)的象棋比賽:開發(fā)者和社區(qū)是一方,攻擊者和取巧者是另一方,在智力競賽中相互對(duì)抗;惡意玩家追求新的利用點(diǎn),新的攻擊類型,開發(fā)者則讓協(xié)議更健壯、更安全來對(duì)抗。雙方都想比對(duì)方更機(jī)智、用智謀壓制對(duì)方。
但是和象棋比賽不同的是,開發(fā)者可以重寫正在進(jìn)行的游戲來改進(jìn)游戲。最終的目標(biāo)是創(chuàng)造一個(gè)人人共贏的游戲:游戲中市場(chǎng)參與者的個(gè)人激勵(lì)與協(xié)議的效用和安全性站在統(tǒng)一戰(zhàn)線上,變成一個(gè)整體。在這個(gè)游戲中,參與到協(xié)議中而不是去攻擊它會(huì)更受益,創(chuàng)造有效的市場(chǎng)并誠實(shí)地報(bào)告結(jié)果,而不是創(chuàng)造無效市場(chǎng)和撒謊會(huì)更受益。
盡管 Augur v1 在先前已經(jīng)取得了相當(dāng)大的成功,它已經(jīng)遇上了一個(gè)迫在眉睫的問題:無效市場(chǎng)詐騙。惡意玩家,或者至少一個(gè)占主導(dǎo)地位的交易人,故意制造了 “無效的” 預(yù)測(cè)市場(chǎng)項(xiàng)目,并以犧牲其他交易者的利益為代價(jià)獲利。這一問題在 v1 之前就已經(jīng)暴露出來了,但是由于技術(shù)問題,詐騙者仍然能有效利用這個(gè)漏洞。
這是一個(gè)很嚴(yán)重的問題,急需一個(gè)嚴(yán)肅的解決方案。因此從今天開始,我們將發(fā)布一系列更新,我們相信這可以讓無效市場(chǎng)詐騙這件事成為過去??偟膩碚f,我們希望這些改進(jìn)不僅僅可以很好地解決這個(gè)問題,也能讓 Augur 成為更可靠和健壯的協(xié)議。今天實(shí)現(xiàn)了這些更新中的第一部分,其他部分將會(huì)在 Augur v2 中推出。在深入研究這些變化之前,先讓我們看看這些攻擊是怎么回事...
攻擊
在一個(gè)預(yù)測(cè)市場(chǎng)中,交易者購買份額(share),至于份額最終給交易者帶來的收益則依賴于某個(gè)事件的結(jié)果。Augur v1 的 YES/NO 市場(chǎng)中,一個(gè)人可以買兩種類型的份額:YES 或者 NO。如果預(yù)測(cè)市場(chǎng)結(jié)果為 YES(事件發(fā)生了),每份 YES 的份額可以得到 1 Ether,而 NO 的份額則一無所獲。如果市場(chǎng)結(jié)算為 NO(事件沒有發(fā)生),每份 NO 份額可以得到 1 Ether,每份 YES 價(jià)值歸零。如果結(jié)果是模棱兩可或者不可驗(yàn)證時(shí),市場(chǎng)就會(huì)被判定為 “無效的(Invalid)”,最終 YES 和 NO 份額都價(jià)值 .50 Ether.
以無效市場(chǎng)為手段的詐騙就是創(chuàng)建一個(gè)第一眼看上去是有效的,但實(shí)際上卻是無效的市場(chǎng)。最常見的做法是將預(yù)測(cè)市場(chǎng)項(xiàng)目的關(guān)閉時(shí)間設(shè)定在實(shí)際結(jié)果揭曉之前。然后,市場(chǎng)創(chuàng)建者(或其他交易者)去下訂單,以便以低于.50 Ether 的價(jià)格獲得便宜的 YES 和/或 NO 份額。那些未能看穿騙局或者懵懂無知的交易者之后可能會(huì)購買這些股份,詐騙者們就可以在市場(chǎng)結(jié)算時(shí)獲利。
相同的模式可以被應(yīng)用在分類市場(chǎng)中(多重結(jié)果)和標(biāo)量市場(chǎng)(數(shù)字結(jié)果)中,區(qū)別不過是當(dāng)預(yù)測(cè)項(xiàng)目被判定為無效時(shí),份額所對(duì)應(yīng)的價(jià)值會(huì)有所不同。例如,在分類市場(chǎng)中有 4 種結(jié)果,每個(gè)無效份額都意味著 0.25 Ether,那么詐騙者就會(huì)在價(jià)格低于 0.25 時(shí)購買 YES 或 NO。
在 Augur v1中,預(yù)測(cè)項(xiàng)目創(chuàng)建者需要在創(chuàng)建項(xiàng)目時(shí)押上一筆保證金,該筆資金只有在項(xiàng)目被判定為有效時(shí)才能夠拿回來。然而,有些時(shí)候,這個(gè)保證金要求太低,不足以遏制利用無效市場(chǎng)的欺詐。
設(shè)計(jì)反擊
理想的解決方案需要一些特性:
我們需要自動(dòng)化的解決方案,要使用市場(chǎng)強(qiáng)制力和激勵(lì)或者可編程邏輯,而不是手動(dòng)干預(yù)。例如,因?yàn)?Augur 是一個(gè)去中心的,抗審查的協(xié)議,預(yù)測(cè)基金會(huì)( the Forecast Foundation)不能手動(dòng)移除或者標(biāo)記市場(chǎng)。
我們需要健壯的、可以適用于不同環(huán)境的解決方案,可以從不同的角度解決問題,從第一時(shí)間遏制無效市場(chǎng)的創(chuàng)建,到標(biāo)識(shí)出哪些現(xiàn)存市場(chǎng)有可能是無效的。
最后,我們喜歡廣泛有用的解決方案,希望方案可以具備中立或者有益的副作用,除了解決這個(gè)問題,理想情況下還可以為交易者創(chuàng)造效用。
流動(dòng)性排序
今天,我們發(fā)行了 Augur App 的新版本,此版本重新定義了項(xiàng)目的排序方式,激勵(lì)市場(chǎng)流動(dòng)性和有效的輸出結(jié)果。該排序基于“深度加權(quán)”差價(jià)對(duì)項(xiàng)目進(jìn)行排名,使得最具有流動(dòng)性的交易訂單簿最明顯可見。
正常的差價(jià)是最高出價(jià)(交易者提供的買入價(jià))和最低叫價(jià)(交易者提供的賣出價(jià))的差。過濾掉那些有很大差價(jià)的市場(chǎng),可以隱藏起那些高風(fēng)險(xiǎn)的、可能導(dǎo)致人們蒙受大量損市的詐騙項(xiàng)目。
然而,詐騙者也可以通過放置一系列粉塵交易(即交易量很小的訂單),產(chǎn)生出更大并且更有利可圖的訂單,從而繞過簡單的差價(jià)過濾器、誘捕那些毫無戒備的交易者。因此我們不僅要考慮差價(jià)的寬度,還需要考慮它的深度。
以深度加權(quán)來計(jì)算差價(jià)時(shí),我們不僅要考慮差價(jià)的大小,也要考慮買賣雙方的意愿成交數(shù)量。例如,以此種方式考慮,一個(gè)買價(jià)為 0.49、出售數(shù)量只有 0.01 份,賣價(jià)為 0.51,賣出數(shù)量為 0.1 份的市場(chǎng),就比以 .48 欲購 10 份、以 .52 賣出 10 份的市場(chǎng)流動(dòng)性差,盡管前一個(gè)市場(chǎng)中差價(jià)較小。
設(shè)想從一個(gè)訂單簿中買入 15% 最便宜的份額,然后馬上將它出售。如果你賣出所得,占買入支出的很高比例(比如 85%),那么市場(chǎng)的流動(dòng)性比你只回收到很小的比例(比如 50%)的流動(dòng)性要好。如果差價(jià)很大、或者雖然差價(jià)小但有一堆粉塵交易,你就只能回收到很小的數(shù)額。
新的流動(dòng)性排序本質(zhì)上就是對(duì)這種模式的實(shí)現(xiàn)。項(xiàng)目會(huì)根據(jù)在滿足流動(dòng)性閾值(默認(rèn)為15%)要求的同時(shí)你能買賣的份額數(shù)量來排序。如果在一個(gè)預(yù)測(cè)項(xiàng)目中,你買入價(jià)值 100 ETH 的股份,當(dāng)即賣出后可以收回你支出的 85%;而在另一個(gè)項(xiàng)目中,你只有買入 10 ETH 才能維持這個(gè)回收比率;那么前一個(gè)項(xiàng)目的排名就比后一個(gè)的排名更高。這種排序也會(huì)過濾差價(jià)高于 15% 的市場(chǎng)。單獨(dú)這一個(gè)特性可能不能過濾掉所有無效市場(chǎng),但是它可以很好地減少攻擊。
這種排序獎(jiǎng)勵(lì)流動(dòng)性強(qiáng)(差價(jià)小、深度大)的市場(chǎng)。換言之,對(duì)交易者越有用的市場(chǎng),越是明顯可見。之前,交易者可以刷量把項(xiàng)目刷到首頁,因?yàn)榕判蚣兇饣诔謧}量,即當(dāng)前市場(chǎng)中的下注量。無效市場(chǎng)得益于反常的網(wǎng)絡(luò)效應(yīng),它們看起來有很好的報(bào)價(jià),因此人們跑到里面去交易,從而使得這個(gè)市場(chǎng)的默認(rèn)排序更高。
新的排序方則翻轉(zhuǎn)這些網(wǎng)絡(luò)效應(yīng)去支持流動(dòng)性和有效市場(chǎng)。它激勵(lì)市場(chǎng)創(chuàng)建者和玩家用更小的差價(jià)注入更多流動(dòng)性。
實(shí)驗(yàn)性無效市場(chǎng)過濾器
無效市場(chǎng)仍然可以躲過差價(jià)過濾器。雖然它不會(huì)像在沒有過濾器的市場(chǎng)中那么猖獗了,但它可能仍會(huì)造成損失。
例如,上圖這個(gè)市場(chǎng)可以通過完善強(qiáng)大的差價(jià)過濾器,但是它是無效的!如果有人出價(jià) .48ETH,他將會(huì)失去 .02 ETH + 每一份額的手續(xù)費(fèi),而詐騙者將會(huì)賺取 .02 ETH + 每一份額的費(fèi)用。
是否有其它方式可以揭露這個(gè)市場(chǎng)是無效的,或者至少提供一個(gè)紅牌警告——僅僅通過查看交易訂單簿?
是有的!在無效的項(xiàng)目下,沒人會(huì)用可能造成損失的價(jià)格來買進(jìn)或者售出。在 YES/NO 的市場(chǎng)中,這意味著不可能有高于 .50 的買價(jià)和低于 .50 的賣價(jià)。記住,無效的市場(chǎng)詐騙是一種操縱游戲,市場(chǎng)創(chuàng)建者從一開始就知道份額的最終價(jià)值(比如在 YES/NO 市場(chǎng)中每個(gè)份額都值 0.5 ETH)。因此,如果有任何高于.50 的買價(jià)或低于 .50 的賣價(jià),可以假定市場(chǎng)創(chuàng)建者或理性行為者會(huì)吃掉訂單。
因此我們的無效市場(chǎng)過濾器會(huì)排除掉那些市場(chǎng)上的訂單都不會(huì)在市場(chǎng)被判定為無效時(shí)讓訂單創(chuàng)建者遭受損失的項(xiàng)目。這種交易的存在是市場(chǎng) 有效 的信號(hào),因?yàn)槿绻袌?chǎng)是 無效的,一個(gè)或多個(gè)理性的行為者應(yīng)該已經(jīng)吃光這些訂單了。
該過濾器也會(huì)考慮費(fèi)用。假設(shè)市場(chǎng)創(chuàng)建者要收取 4% 的費(fèi)用,那么哪怕一股要花費(fèi) .52 ETH,因?yàn)樽罱K可得 .50 ETH,出價(jià)為 .52 ETH 時(shí)創(chuàng)建者依舊能賺一點(diǎn)(.50 - .52+.04 = .02)。(譯者注:即市場(chǎng)創(chuàng)建者所要求的手續(xù)費(fèi)率會(huì)改變上面所述的、會(huì)造成創(chuàng)建者損失的價(jià)格區(qū)間)。
盡管考慮費(fèi)用,無效市場(chǎng)過濾器也不是萬能的。一個(gè)詐騙者可以發(fā)布一筆小交易,作為可能導(dǎo)致?lián)p失的信號(hào),從而通過過濾器。然而,因?yàn)橛型瑫r(shí)發(fā)揮作用的差價(jià)過濾器,從無效詐騙中獲利也是相當(dāng)難的,因此市場(chǎng)創(chuàng)建者最好想清楚,去制建有效的市場(chǎng)。
流動(dòng)性排序和無效市場(chǎng)過濾器是共生的,因?yàn)椋袌?chǎng)創(chuàng)建者要在流動(dòng)性排序中排名靠前,就得增加流動(dòng)性,這樣也更有可能通過無效市場(chǎng)過濾器。然而,無效市場(chǎng)過濾器可能誤殺:過濾了實(shí)際上有效的市場(chǎng)。因此我們將無效市場(chǎng)過濾器作為一個(gè)實(shí)驗(yàn)性功能,用戶可以自由地啟用或關(guān)閉。作為實(shí)驗(yàn)性的過濾器,我們的計(jì)劃是用來觀測(cè)詐騙手段,看看詐騙者的行徑,然后根據(jù)需要進(jìn)行調(diào)整。
可交易的 Invalid 份額
截至目前提及的方法,雖然有效,卻沒有解決問題的根源:激勵(lì)。它們還是依賴于用戶界面的改變,沒有觸及到協(xié)議??山灰椎?Invalide 份額(Tradable Inavlid), 我們?cè)?v2 中最激動(dòng)人心的創(chuàng)新之一,是一個(gè)可觸及問題要害的,優(yōu)雅的解決方案。它運(yùn)用市場(chǎng)強(qiáng)制力去抑制無效市場(chǎng)的創(chuàng)建,讓從無效市場(chǎng)中獲利或者被詐騙變的很難。
在 Augur v2 中,Invalid 也會(huì)變成一種明確可交易的份額。正如你可以購買 YES 或者 NO 份額,你也可以購買 “Invalid 份額”。 詐騙者因此再不能從無效市場(chǎng)中的 YES 或 NO 份額中獲利了,因?yàn)闊o效市場(chǎng)的 YES/NO 份額不會(huì)得到任何資金回報(bào)。
一個(gè)項(xiàng)目中 Invalid 份額的價(jià)格和訂單數(shù)量都將顯示出該項(xiàng)目被判定為無效市場(chǎng)的風(fēng)險(xiǎn)。因此交易者可以更好地過濾出無效市場(chǎng),并且在他們交易的市場(chǎng)中考量和對(duì)沖該市場(chǎng)被判定為無效的風(fēng)險(xiǎn)。購買 YES/NO 份額時(shí),也可以購買 Invalid 份額,當(dāng)作一種保險(xiǎn)。
Invalid 份額可交易的真正閃光點(diǎn)在于其廣泛的效用。精心設(shè)計(jì)的預(yù)測(cè)市場(chǎng)的一個(gè)核心特性是,份額的價(jià)格可表明當(dāng)前感知到的結(jié)果概率。例如,如果“Andrew Yang 將成為2020年民主黨總統(tǒng)候選人”的 YES 股份是 .09 ETH,即表明市場(chǎng)認(rèn)為有大約 9% 的可能。反過來說也是成立的:交易者根據(jù)他們自己感知到的可能性去決定買賣多少份額。因此價(jià)格和已感知到的概率之間的關(guān)系是雙向的。
這個(gè)對(duì)應(yīng)關(guān)系在 Augur v1 中被打破了。因?yàn)槿藗儫o法知道 Invalid 結(jié)果在 YES/NO 份額中的定價(jià)是多少,也不能從價(jià)格推斷被感知到的概率。即便結(jié)果發(fā)生的概率為 0%,如果相關(guān)項(xiàng)目有可能被判定為無效的,那么YES 份額就可能會(huì)有一個(gè)正的價(jià)格。當(dāng) Invalid 也變成一種可交易的結(jié)果,人們就會(huì)變得更為謹(jǐn)慎,預(yù)測(cè)項(xiàng)目出現(xiàn)每個(gè)結(jié)果的概率都變得非常清楚。這推動(dòng) Augur 離其成為公共設(shè)施的長期目標(biāo)更近了一步,可以對(duì)世界上的任何結(jié)果進(jìn)行有力的預(yù)測(cè)。
Invalid 保證金的浮動(dòng)公式
當(dāng)你在 Augur 上創(chuàng)建一個(gè)市場(chǎng),你要提供“Invalidity 保證金”,當(dāng)且僅當(dāng)市場(chǎng)清算為有效時(shí)你才可以拿回這筆保證金。保證金的價(jià)格基于近期無效市場(chǎng)的數(shù)量來動(dòng)態(tài)調(diào)整。近期無效市場(chǎng)越多,創(chuàng)建市場(chǎng)的保證金率就越高,即創(chuàng)建預(yù)測(cè)項(xiàng)目變得越昂貴;相反,無效市場(chǎng)數(shù)量下降,會(huì)驅(qū)使保證金率下降。
v1 中存在的問題是保證金要求回落得太快,使得創(chuàng)建無效市場(chǎng)的成本很低。v2中,我們改變了公式,因此保證金要求在單個(gè)周內(nèi)的回落不能超過 15%。因?yàn)轭A(yù)測(cè)項(xiàng)目的保證金率越高就越不可能是無效市場(chǎng),更慢的回路速度也許可以幫助制止無效市場(chǎng)的創(chuàng)建,同時(shí)讓用戶通過創(chuàng)建市場(chǎng)時(shí)的保證金率來過濾項(xiàng)目。
有效清算
“與現(xiàn)存事實(shí)作斗爭永遠(yuǎn)無法改變一些事。要改變一些事,就去建立一個(gè)新的模型,讓現(xiàn)存的模型過時(shí)”—— Buckminster Fuller
我們相信,這些改變將會(huì)讓無效市場(chǎng)詐騙成為一場(chǎng)失敗的游戲并最終消失無蹤 。無效市場(chǎng)詐騙者將會(huì)面臨一些選擇:尋找新的攻擊點(diǎn),離開 Augur,或者開始創(chuàng)建有效的市場(chǎng)并貢獻(xiàn)富有成效的流動(dòng)性(似乎在 Augur 上大多數(shù)多產(chǎn)的無效市場(chǎng)創(chuàng)建者已經(jīng)開始創(chuàng)建一些有效的市場(chǎng)了)。不管怎么說,這都是一種勝利。如果他們發(fā)現(xiàn)了新的攻擊點(diǎn),我們可以繼續(xù)抗擊欺詐,直到 Augur 到達(dá)黃金時(shí)代。如果他們把自身技能用在創(chuàng)建有效市場(chǎng)上,那就更好了。
協(xié)議和其利用者之間的高風(fēng)險(xiǎn)對(duì)峙中, Augur 非常寶貴的優(yōu)勢(shì)在于,其社區(qū)在全世界擁有成千上萬的成員,他們都對(duì)這個(gè)項(xiàng)目熱情高漲,希望其成功。社區(qū)也一直在幫助開發(fā)和完善一些解決方案。特別地,我們對(duì)Augur Discord上 #博弈理論(game-theory)頻道的人們致以極大的敬意。
我們也要對(duì) Augur 社區(qū)中的許多成員表示感謝,他們不遺余力地教育其他人關(guān)于無效市場(chǎng)的風(fēng)險(xiǎn),有時(shí)候甚至是去對(duì)付詐騙者。最后,盡管我們永遠(yuǎn)也不會(huì)寬恕他們的行為,我們還是要對(duì)無效市場(chǎng)創(chuàng)建者說聲謝謝,謝謝你們告訴我們 Augur 需要被改進(jìn)的地方。
正如我們向前邁出一大步去解決這個(gè)問題,我們相信,通過開發(fā)人員和社區(qū)的辛勤工作和足智多謀,我們可以應(yīng)對(duì)任何挑戰(zhàn)。
寫給市場(chǎng)創(chuàng)建者
若要給你的預(yù)測(cè)項(xiàng)目增添流動(dòng)性,你得先讓用戶看到你的項(xiàng)目。你的市場(chǎng)會(huì)包含一個(gè)交易訂單簿,訂單簿中的最高叫價(jià)和最低出價(jià)的差(包括了市場(chǎng)手續(xù)費(fèi))要小于 15%。例如,一個(gè)二元或者分類市場(chǎng),以 0.55出價(jià),0.63 叫價(jià)的差價(jià)是 8%,因此可以出現(xiàn)(注:即不會(huì)被隱藏掉)。而 0.55 出價(jià),0.75 叫價(jià)的市場(chǎng)則不會(huì)出現(xiàn)。差價(jià)越小、流動(dòng)性越強(qiáng),市場(chǎng)的排名就越高,就有更多的人可以看見這個(gè)市場(chǎng)。
此外,為了讓你的市場(chǎng)出現(xiàn)在默認(rèn)的市場(chǎng)頁面上,在計(jì)入交易費(fèi)用后,訂單簿中必須有訂單 出價(jià)高于/叫價(jià)低于 項(xiàng)目結(jié)果數(shù)量除以價(jià)格范圍所得的值。例如,一個(gè) YES/NO 市場(chǎng)中,最高買價(jià)是 0.48,最低賣價(jià)是 0.52 ,則這個(gè)市場(chǎng)會(huì)被過濾掉,因?yàn)橘I價(jià)沒有高于 0.50,賣價(jià)也沒有低于 0.50。而出價(jià)為 0.52,叫價(jià)為 0.55 的市場(chǎng)則不會(huì)被過濾掉。
因此,在Augur V1中,直到有更好的解決方案在 V2 中生效前,要避免創(chuàng)建真正均勻賠率的市場(chǎng),而是要?jiǎng)?chuàng)建有輕微(或大的)弱勢(shì)的市場(chǎng),去確保他們不會(huì)被無效市場(chǎng)過濾器意外地過濾掉。(Ben Davidow)