作者:扎克-赫斯, Zack Hess
https://github.com/zack-bitcoin/amoveo-docs/blob/master/other_blockchains/UMA.md
評價UMA DVM oracle白皮書 2019年7月
被評價論文的鏈接:https://drive.google.com/file/d/1OfdCsaIf5tCDEMS0nnPjF7-QidY1h0hJ/view
UMA是一個基於投票幣(votecoin)的預言機(oracle),與Augur或Bitcoin Hivemind非常相似。
就像Augur和Bitcoin Hivemind一樣,他們設置了使用預言機(oracle)的費用,試圖維持votecoins的市值大於被預言機(oracle)執行的賭注的總價值。 如果有太多的賭注,沒有足夠的投票幣,使用UMA的預言機(oracle)的成本增加,以獎勵人們鎖定更多的投票幣價值。如果賭注不多,而投票幣很多,那麼UMA的預言機(oracle)的成本就會降低,以嘗試與其他預言機(oracle)替代品相比更具成本競爭力,並吸引客戶回來。
如果一個altcoin的市值較低,其價值的波動性就會增加。因此,小市值的Votecoin是非常不穩定的。你需要支付的說服別人鎖定資產價值的成本與該資產的波動性成正比。這意味着我們需要向UMA/Augur/Hivemind等系統的votecoin持有者支付高額費用。
像UMA這樣的Votecoin類型的預言機(oracle)總是比Amoveo的預言機(oracle)要昂貴幾個數量級。
UMA對預言機(oracle)問題的定義。 #
“Oracles “在概念上可以分解爲兩種功能:一種是向區塊鏈報告鏈外數據的機制,另一種是驗證報告信息準確性的機制。在大多數智能合約設計中,如果合約參與者同意報告機制提供的數據,就不需要進行驗證。只有在發生爭議的情況下才需要驗證機制。這種驗證系統是本文的重點”
所以從一開始他們就給自己設置了限制,所以只有3.2級的oracle系統對他們來說纔是可能的。你可以在這裏閱讀安全級別:basics/trust_theory.md 通過拒絕使用升級機制(escalation mechanisms) 來順利地從報告步驟過渡到驗證步驟,他們不可能拿出比3.2更好的東西,像Augur或Bitcoin Hivemind那樣。
UMA聲稱對研究有新的貢獻。 #
“儘管現有大量關於預言機(oracle)系統設計的研究,但目前的方法缺少一個關鍵特徵:圍繞破壞預言機(oracle)系統的成本的經濟保證。”
請看Truthcoin白皮書的第27頁:http://bitcoinhivemind.com/papers/truthcoin-whitepaper.pdf 你可以看到圍繞腐蝕預言機(oracle)系統的成本,對經濟保障的計算。這個計算至少從2014年我第一次讀到這個白皮書時就已經存在了。
在Augur白皮書中搜索 “對攻擊者的最大利益”(“maximum benefit to an attacker”)https://www.augur.net/whitepaper.pdf
UMA引用了Truthcoin、Augur和Amoveo,認爲它們 “極大地影響了UMA的設計”。然而,UMA並沒有意識到,這3個項目都花了很多時間來計算破壞預言機(oracle)系統的成本,並提出了有關的經濟保證。
關於機制設計的錯誤假設 #
UMA所建立的最大的錯誤假設之一,在這句話中得到了體現。
“由於無權制限制的區塊鏈上的行爲只受經濟激勵,存在一些賄賂,可以腐蝕驗證機制,產生不誠實的行爲。”
我們在機制設計理論方面已經有了大量的研究,知道這是錯誤的。在有些經濟機制中,任何賄賂的嘗試只能使機制更加準確http://mason.gmu.edu/~rhanson/biashelp.pdf 訣竅是把報告設爲賭注,讓虛假報告作爲獎勵,激勵其他人做出誠實的報告。你可以利用攻擊者的勢頭來對付他們。這允許安全量與攻擊的大小成比例地升級,所以我們總是剛剛好夠安全。
UMA對Amoveo的攻擊性描述。 #
“Truthcoin、Augur和Amoveo等預測市場系統對驗證機制設計做出了重要貢獻;這些系統都使用謝林點(Schelling Point)投票方案來激勵真實投票,並對UMA的設計產生了很大影響。”
Amoveo沒有任何投票機制。我們使用futarchy和Nakamoto共識。
投票不可能比3.2更好,它永遠比futarchy貴幾個數量級。 design/voting_in_blockchains.md
你可以在這裏閱讀Amoveo的oracle設計:design/oracle.md
關於分層預言機(oracle)的困惑 #
UMA對來自預言機(oracle)設計的基本概念感到困惑: “UMA的驗證機制可以分層在另一個預言機(oracle)之上,爲該預言機(oracle)報告數據的準確性增加經濟保證,並允許UMA作爲 “最後手段 “的驗證層發揮作用。”
哇,這聽起來很有社會意義。好像我們大家可以互相幫助。但事實不是這樣。 互相串聯的機制使整個系統和最薄弱的環節一樣脆弱。對於像UMA或Augur這樣的投票方案,投票幣的價值需要超過當時正在執行的所有賭注的價值。如果我們有2個投票類型的協議,那麼這意味着投票幣的總價值現在需要比賭注的價值大2倍,使系統運行所需的最低費用增加一倍。
所以,不,像這樣把預言機層層疊加是沒有意義的。這隻能使它更不安全,更昂貴。
寄生蟲和模糊化。 #
UMA很好地描述了寄生蟲問題。這是一個發生在Augur/Hivemind/UMA等投票幣系統的問題。寄生蟲問題發生在他們身上,因爲他們需要收集費用來支付給投票幣持有者以維持安全。像Amoveo這樣的預言機(oracle)沒有寄生蟲問題,因爲我們沒有任何投票幣持有者。我們的預言機(oracle)不向交易者收取費用,所以在Amoveo中,如果賭注是鏈外(offchain)和私人的,這並不重要。 模糊化的解決方案依賴於一個錯誤的假設。他們假設寄生合約會看別人的賭注是如何被解決的,並且它將反映其他現有的賭注。但寄生合約也可以被編程爲通過驗證以太坊在特定區塊高度的共識狀態的默克爾證明來查詢預言機(oracle)的結果。這樣就可以把數據從以太坊導出到其他區塊鏈,並有鏈外寄生合約。
賄賂和勾結 #
“如果系統被成功操縱代幣的價格就會下降到零,根據這一前提,我們可以證明沒有攻擊者可以通過賄賂代幣持有人獲利。如果代幣持有者認爲如果系統被破壞,他們的代幣價值將下降到零,那麼每個代幣持有者都會要求一個大於他們當前代幣價格p的賄賂。”
攻擊者需要的賄賂規模遠遠小於每個人持有的代幣的價值。這就是所謂的公地悲劇。我將舉一個反例來證明這是假的。
讓我們想象一下,有100個代幣持有人,每個人有1%的價值。我們正在報告 “今天是1+1=2嗎?",而攻擊者正在賄賂代幣持有者,讓他們錯誤地報告 “false”。讓我們假設,正如UMA在他們的論文中所做的那樣,如果攻擊成功,那麼代幣的價值就會變成零。 攻擊者使用智能合約向每個預言機(oracle)報告者做出這樣的承諾:“如果你參與攻擊,我將向你支付你所持代幣價值的10%"。
因此,現在攻擊者已經鎖定了智能合約中所有代幣價值的10%的承諾。 每個預言機(oracle)報告者持有1%的代幣,他們必須做出這樣的決定:參與攻擊,或不參與。讓我們計算一下他們的預期利潤,看看哪個決定更有利可圖。
M = 代幣的起始市值
r = 預言機報告者有多少錢 = M/100
b = 一次賄賂 = r/10
p = 攻擊成功的概率
假設如果你參與了攻擊,就會使攻擊成功的可能性增加1%。
參與攻擊 -> b + (1-(p+(1/100))*r
不參與攻擊 -> (1-p)*r
在以下情況下,參與攻擊是有利可圖的:
(b/r) + (1-(p+(1/100)) > 1-p
b/r > 1/100
b > r
因此,只要賄賂金額大於其代幣價值的1%,預言機報告者就會有利可圖地參與攻擊。如果攻擊者想賄賂100個投票者中的51個,他只需要支付代幣總價值的0.51%。這就是機制設計者至少從1833年起就知道的公地悲劇的數學原理。