區塊鏈投票並不安全?這些賄選攻擊可能是“致命的”
譯者按:原文作者包括康奈爾大學博士生Phil Daian,IC3組織研究工程師Tyler Kell,康奈爾科技學院博士後Ian Miers以及康奈爾科技學院教授、IC3聯合主任Ari Juels。
在這篇文章當中,這些學者提出了各類針對區塊鏈鏈上投票的賄選攻擊方式,以提醒使用者鏈上投票所存在的問題。
原文標題為:鏈上投票賄選和崛起的Dark DAO( ofollow,noindex" target="_blank">On-Chain Vote Buying and the Rise of Dark DAOs ),有興趣的讀者可以閱讀原文。
區塊鏈對線上投票這一應用而言,似乎是一種完美的技術,它們可以充當“電子公告系統”,這也是過去幾十年電子投票研究中一直被假設(但從未真正實現)的全球賬本。更妙的是,區塊鏈還使智慧合約成為了可能,而後者可以自動地執行鏈上的選舉活動,並且可廢除當選者。
不幸的是,智慧合約不僅僅有利於競選,它也有利於賄選這一令人頭痛的問題。
在這篇文章當中,我們將解釋如何實現區塊鏈賄選以及其背後的原因。作為一個例子,我們將針對流行的鏈上投票系統CarbonVote 提出一個全面實施的、簡單的賄選攻擊。我們還將討論可信硬體如何能夠實現更強大的賄選技術,即使給定的是最先進的密碼投票協議,這些技術似乎也是無法解決這一賄選問題。
最後,我們會介紹一種新的攻擊形式,我們稱之為Dark DAO,請不要把Dark DAO的概念和The DAO的概念相混淆。所謂的Dark DAO是一種去中心化、不透明(在黑暗中)的進行鏈上投票賄選的卡特爾 (cartel)組織。我們提出了一個基於英特爾SGX的具體實施方案。
在這樣的攻擊中,可能沒有人(甚至連這個DAO的建立者)能確定DAO的參與者數量、承諾用於攻擊的資金總額或攻擊的精確邏輯:例如,這個Dark DAO可以攻擊像Tezos這樣的密碼貨幣,先祕密收集幣然後達到隱藏的閾值後,告訴其成員做空這個密碼貨幣。這樣的一個Dark DAO,還具有通過傳送(例如可否認的做空通知)來加強資訊不對稱的獨特能力:在這個卡特爾組織內部的成員,能夠驗證這個做空訊號,但他們自己可以生成看似真實的虛假訊號,並將它們傳送給外部人員。
信任最小化投票賄選以及Dark DAO的存在,意味著所有線上投票的使用者容易受到財閥及強制勢力的束縛、操縱和控制。這就意味著,所有的鏈上投票方案,其中使用者可在可信環境之外生成他們自己的私鑰 ,將天性地退化為財閥統治,這種正規化被認為是遠遠劣於民主模式的。
我們所有的方案和攻擊都不受身份控制的影響,它們可以允許使用者自由進行買賣行為。這意味著,依賴使用者生成的繫結到使用者身份的金鑰方案(例如 uPort或Circles),本質上也容易受到財閥的操控。如果有利可圖的話,我們的方案還可用於攻擊權益證明或工作量證明區塊鏈,這給所有區塊鏈帶來了安全隱患。
今天的區塊鏈投票
區塊鏈投票方案如今比比皆是,例如 Votem ,這種端到端的可驗證投票方案,允許使用者使用移動裝置進行投票,並利用區塊鏈作為安全釋出及統計選舉結果的地方。Remix,這個流行的智慧合約IDE,提供了一個選舉管理智慧合約(作為其練習例項)。更多的例子可以在 這裡 (1) 這裡 (2)以及 這裡 (3)找到。
鏈上投票方案面臨著很多挑戰,包括隱私、延遲以及擴充套件性問題。當然,這些並不是投票應用所獨有的挑戰,所有的一切最終都是可以克服的。但在投票問題中,賄選就是另一個大問題了。
在政治體制中,投票賄選是一種普遍存在,且具腐蝕性的選舉欺詐,世界各地都存在破壞選舉誠信的實質性歷史。有時,投票的代價只是 一杯啤酒 。值得慶幸的是,正如學者們所觀察到的,正常的市場機制通常會擊穿賄選計劃。原因有三。首先,賄選在大多數情況下屬於犯罪行為。在美國,聯邦法律是可以對賄選人進行處罰的。其次,在使用祕密投票的情況下,遵守規則是很難做到的。選民可以簡單地喝你的啤酒,然後祕密地投她喜歡的選票。第三,即使選民出售了他們的選票,也無法保證對方會為其支付賄選金。
而在區塊鏈系統中,是不會出現這樣的問題的。賄選市場可通過使用強大的選舉管理工具(智慧合約),來實現高效且有效的執行。而半匿名性及管轄難問題,對於控訴而言無異於提供了一些遮掩。
總的來說,電子投票方案在某些方面比親自投票更難防止欺詐,這也是多年來一直受學術屆關注的問題。其中,大衛·喬姆(David Chaum)在很早的時候就 提出了一個基石 ,其為訊息提供了匿名混合網路,這些訊息可以由參與者通過包含的收據匿名傳送。這種端到端的可驗證投票系統,使用者可以在不犧牲隱私的情況下,檢查他們的選票是否被正確計數,這不僅僅是理論家的領域,而是實際用於選舉的約束性方案。
再後來, 貝納洛(Benaloh)和託因斯特拉(Tuinstra)的工作 ,對電子投票方案提出了異議,其指出他們為選民提供了一種“收據”,該收據提供了加密證據,可證明某一次投票是以何種方式進行的。而這會導致非常有效的賄選和強制的發生,顯然這不是什麼好特性。作者定義了一種新的屬性(收據自由),來描述投票方案,在這種方案中,如果沒有這樣的密碼證明是可能的。後來,尤爾斯(Juels)、卡塔拉諾(Catalano)和雅格布森(Jakobsson) 進一步的研究工作 ,模擬了更強大的強制敵方(coercive adversarie),該研究表明即使是無收據的方案,也不足以防止強制性和投票賄選。這項工作為投票方案定義了一個新的安全定義,稱為“ 強制抵抗 ”,其提供了一種協議,其中沒有任何惡意方能夠成功脅迫使用者,以改變選舉結果。
尤爾斯(Juels)等人在他們的工作中指出,“我們的研究,其安全性依賴於金鑰對的生成..它由可信第三方或替代的安全金鑰生成協議(例如between the players)所生成”。關於強制抵抗投票方案,“可信的金鑰生成”、“可信第三方”或“可信設定” 被假設是學術文獻中的標準。不幸的是,這些要求不能轉到無需許可模型( permissionless model )當中,在這種模型中,節點可以在任何時間來回移動,而不需要事先了解彼此。這意味著“某種程度上”,使用者在所有這樣的系統中可以生成自己的金鑰,並且無需去利用可信多方金鑰生成或任何中心化的金鑰服務仲裁器。
如今,在區塊鏈這一行業,(可預測到的是)很多人繼續忽視了人類幾十年的研究結果,而選擇實施最天真的投票形式:以利於富豪的方式,直接計算 幣加權投票 ,然後把投票文字儲存到鏈上。不幸的是,目前還不清楚這樣的財閥統治,是否會在鏈上實現。我們要展示的是,無需許可模型對於投票而言是根本上敵對的。儘管市場上存在很多身份或基於第二層的緩解嘗試, 所有無需許可的投票系統 (或者允許使用者在非置信環境中生成自己金鑰的方案),都容易受到相同型別的賄選和強制攻擊。很多賄選攻擊也可通過“武力“脅迫使用者進行特定的投票選擇。
這是一個很好的區塊鏈鏈上投票方案,你在那裡投票…
值得注意的是,Vitalik Buterin在這類協議的賄選攻擊問題中也進行了 部分探索 ,但他並沒有提供具體的機制。在這裡,我們描述了用於投票、身份購買、強制以及高級別協調的無摩擦機制,然後我們會討論這些特定機制的含義。
鏈上投票攻擊
考慮一個非常簡單的投票方案:一種token的持有者,他每持有一個token,那他就擁有一張選票,並且他可以不斷地更改自己的投票,直到某個截止區塊到來。我們將使用一個簡單的“EZVote”方案,來展示我們的攻擊可應用於任何鏈上投票機制。
這種方案有幾種可能的升級攻擊方式。
簡單的智慧合約
針對鏈上投票系統最為簡單的低協調攻擊,涉及了賄選智慧合約( vote buying smart contracts)。這種智慧合約只需付錢給付合規則的投票使用者(或者參與投票,或者如果投票是不匿名的,就選棄權)。在EZVote當中,智慧合約可以是一個簡單的合約,它負責儲存你的ERC20 token(到達結束日期時釋放),然後投yes選項,然後再將token返還給你。合約中所有的保證,都可以通過底層區塊鏈強制實施。
這種方案的優點在於,它只需要底層系統中已固有的信任假設,但它也具有很大的缺點。一方面,在選舉結束後,它有可能公開宣佈購買了多少選票,因為在如今的智慧合同系統中,這是處理支付流程所必需的。此外,對於有興趣維護底層平臺/系統健康的各方而言,他們可以審查出賄選的情況。
根據投票方案的性質和底層協議,這些缺點可能會有一些解決方案。例如,選民可以為買票人提供一個環形簽名,用於證明他們在投贊成票的名單當中,這樣就可以換取到賄選金。我們暫且不談其實現細節。
總到來說,任何用於私有智慧合約的機制,也可以用於私有投票賄選,以解決基於公共智慧合約的攻擊問題;在密碼學上,等同於買家和賣家之間通過MPC(多方計算-Multiparty Computation)生成用於資金儲存的金鑰,然後簽署兩筆交易:一筆是投贊成票,一筆是在投票間隔結束後將資金釋放給投票賣家。投票賣家只有在擁有保證退款和支付的交易後,才能把資金轉移到這個金鑰上。
這將類似於以前有關 分散式證書生成 的工作,其添加了安全分析,以確保公平性。如果不慎地使用這種方案,會在投票的過程中,造成妨礙使用者資金的問題,使其無法用於其他用途(這種行為是可能的,但需要投票買方的合作,或者,可以使用可信/有擔保的代管方)。
可信硬體與賄選
一個更為重要的賄選攻擊方案,涉及到使用可信硬體,例如英特爾SGX。這種硬體有一個稱為 遠端認證 的關鍵特性。基本上,如果艾麗絲(Alice)和鮑勃(Bob)在網際網路上通訊,SGX實現的可信計算,可允許Alice向Bob證明:她正在執行某段程式碼。
可信硬體通常被視為一種你所執行的程式碼不是惡意的方法證明:例如,其在 DRM 中的應用,可用於證明使用者不會複製僅臨時授權給他們的檔案(比如電影)。相反,我們可以使用可信硬體,通過支付或強迫的方式來束縛密碼貨幣使用者,讓他們使用基於可信硬體的密碼貨幣錢包,可證明地限制他們的執行行為(例如,強迫他們不要在選舉中以某種方式投票)或者允許投票購買者實現信任最小化,但有限制地使用使用者的金鑰(例如,一名選票買家可強迫使用者簽名‘我給A投票’,但不能竊取或花費使用者的錢)。
部署投票賄選最為簡單的方式,是允許使用者證明,他們正執行來自投票買家的惡意錢包程式碼,以換取賄選金,並利用遠端認證技術確保雙方的安全。
在我們的“EZVote”示例當中,使用者只需要使用載入在英特爾SGX裝置上的密碼貨幣錢包,並執行投票買家的程式。 SGX能夠向用戶保證,錢包永遠都不會竊取使用者的資金(除非英特爾和投票買家勾結在一起)。對於使用者而言,使用這一錢包和其他正常的以太坊錢包沒有什麼不同,他們可以轉移自己的資金(雖然在這種情況下,投票買家不會支付賄選金)。使用者可以執行自己的錢包,不需要信任第三方控制他們的資金安全。使用者甚至不需要信任英特爾或可信硬體提供商,因為他們可以編譯自己的錢包!
當預定義觸發器的條件觸發時,這種SGX程式將自動按照選票購買者的命令在EZVote上進行自動投票,並向投票買家傳送收據。投票購買者本身也會執行一個SGX enclave,用於維護所有投贊成票的使用者 ,以及他們的地址列表。鑑於SGX的信任,投票買方不需要看到成員使用者的完整列表或總質押金額。在投票結束時,投票買家的SGX enclave將給那些沒有轉移資金或更改投票的使用者支付賄選金。這個過程,可以由enclave定期地釋出默克爾根(Merkle root)彙總鏈上的已支付使用者來完成,並向每個最終得到賄選金的使用者提供支付證明。在一些特別易受攻擊的投票設計中,SGX enclave 可以通過簡單地積累“贊成”票來提高其效率,並在投票結束時為他們提供報酬以及相應的公示。
隱藏的可信硬體卡特爾(Dark DAO)
而當可信硬體組合成DAO網路時,就會出現更令人擔憂的攻擊問題,從而產生一個以操縱密碼貨幣投票為中心的無信任組織。
一個基本的 Dark DAO例子
上圖概括了一個可能的體系結構。投票買家會通過執行SGX enclave網路(本身執行一個共識協議,這裡顯示為暗雲,表明其從外部是不可見的)來支援這個DAO。使用者將與這個 enclave網路進行通訊,並提供他們正在進行投票賄選的證明。例如,當前餘額為X幣的以太坊錢包。這個“邪惡的錢包”證明運行了投票買家所提供的攻擊程式碼,而投票買家則證明他們正在執行保證攻擊結束後會給使用者支付賄選金的程式碼(可能會結合一個基於智慧合約的協議,使得這一交易更誠實地執行。)
投票買家可以跟蹤有多少資金通過該系統進行了投票,並使用SGX內建的隱私特性,向外界隱藏這一事實。使用者可以獲得可證明的支付金,從而有動力參與這樣的系統。而投票買家,可以得到一個可證明的保證,即客戶永遠不會進行與他們期望的投票政策相牴觸的投票。
而使這個DAO組織變得黑暗的原因是,投票購買者不需要向任何人(甚至他們自己)透露有多少使用者正在參與該系統。系統只需要簡單地累積使用者,為執行攻擊者自定義錢包軟體的使用者支付賄選金,直到達到啟用攻擊的閾值。通過這種方式,失敗的嘗試需要不可探測性。更令人沮喪的是,任何小使用者的個人激勵,會明確指向加入該系統。如果小使用者相信他們的投票無關緊要,他們很可能會選擇接受回報,而不會去察覺邊際下跌。這對於鏈上投票而言尤其危險, 根據觀察,這些投票系統的投票率都非常低 。而那些不投票的使用者,可能是非常理想的賄選目標。
而Dark DAO還可以通過發起誹謗運動等,進一步搞亂局面。比如,在愛麗絲(Alice)的支援下,鮑勃(Bob)可以執行一個 Dark DAO,以取消他的投票,因為他認為可能會失敗。啟用閾值、支付時間表、完全攻擊策略、系統中的使用者數量,等等都可以選擇保密或者公開,這使得這種DAO最終可針對結構性激勵變化進行調整。
由於這一組織實際是存在於鏈外的,所以並不存在區塊生產者或其他系統參與者的卡特爾可以進行檢測、審查,或者去阻止這種攻擊。
這樣的黑暗組織有幾個直接的現實缺陷。首要的問題是,它需要在英特爾SGX上使用,所以其需要得到英特爾授予許可,這對於惡意軟體來說不太可能發生。此外,發生在英特爾SGX身上的側通道,隱藏軟體後門或平臺攻擊,還是對這個Dark DAO錢包的審計,都可能會削弱該方案。儘管隨著可信硬體的不斷髮展,此類攻擊的成本極有可能大幅增加。最後,我們可預見到,其他可信硬體可以提供英特爾SGX的遠端認證能力,這意味著此類攻擊將不再需要SGX,這就是為什麼我們要用可信硬體這個詞,而不是直接使用“SGX”。例如,在一些安卓安全處理器上,遠端認證是可以實現的。我們的方案,可應用於任何允許機密資料與遠端證明的硬體裝置。
針對經典方案CarbonVote & EIP999的攻擊
為了證明這些投票賄選策略的有效性,我們首先看一下現有密碼貨幣系統中執行的 coinvotes。也許最重要的此類投票就是 DAO CarbonVote 。這次投票的操作很簡單:把資金投入到一個地址,就代表該賬戶投了贊成票,而投到另一個地址,就表示反對票。每一個地址都是一個合約,並紀錄給定地址的投票。CarbonVote前端會統計投票結果,並顯示所有贊成和/或否定投票的賬戶淨餘額,而同一地址後傳送的投票,會取代其先前的投票,這種機制允許使用者更改主意。在投票結束後,系統會對贊成票進行快照,並用來衡量社群的情緒。這種投票方式正被用於其他有爭議的生態系統問題,包括 EIP-186 。
在此框架中,一種可能的最小化信任投票賄選智慧合約,涉及了託管的使用,使用者將以太幣傳送到一個保管這些以太幣的ERC20 token合約,投票結束後自動返還。對於使用者而言,他們每存入一個以太幣,就會接收到1個 投票幣。
在達到閾值時,這個預先設定的合約會投贊成票。當投票結束後,每一個投票幣都可以完全退成原來的以太幣。使用者收回了他們原來的以太幣,還可以收到投票買家為這次服務支付的賄選金。
我們已經實施了這類合約的 一個完整的、開源的概念證明 ,它可以使任何投票購買者為合約的賄賂池(BRIBEPOOL)提供資金。使用者在合約中臨時鎖定他們的以太幣,可以從這個賄選池中得到賄選金,並在目標投票結束後收回其100%的以太幣資金。實施一次攻擊,賄選池就會提前給投票出售者支付賄選金(一旦他們鎖定了幣,投票就會得到保證)。
the DAO Carbonvote 投票賄選智慧合約程式碼
使用者也可以在鎖定他們的以太幣後出售他們的投票幣,這實質上使得投票幣成為了一種投票賄選的通證化衍生品。因為每一個ERC20 token在程式上,最終會接收到原有的以太幣,這基本上建立了一個單向的漏斗,從基礎資產變成了預定義用於投票的衍生資產。如果保證非負回報,並基本上可以選擇之後拋售給其他類似不感興趣的買家,那對投票結果不感興趣的買家,應該總是會鎖定他們的以太幣。
此外,這個智慧合約還可以通過使用諸如 Town Crier (也可以組合多個oracle、預測市場等)來進行簡化。因為 CarbonVote系統會在 Etherscan 上釋出包括完整選民日誌在內的結果,所以檢查某人是否通過外部的工具進行的投票就很簡單了,如果他們的投票在最終快照當中,並且符合投票購買者的偏好,則向他們支付賄選金。
像Dark DAO這樣的模型也可以簡單地被應用。 每個使用者只需要執行一個錢包,每次交易轉移後的某個時間,其也是在CarbonVote上(事實上,這可能成為很多錢包的標準行為)按期望的方式進行投票的。只有當此類投票註冊過時,使用者才會得到賄選金,因此這會鼓勵使用者確保自己的投票交易已納入區塊鏈。目前沒有辦法告訴你CarbonVote中有多少選票是通過這樣的投票賄選卡特爾產生的,也沒辦法分辨多少投票是“合法”的。
這些方案中的任何一個,都具有在多個投票買主彙集資金時,最小化信任問題的能力;賄選智慧合約可以簡單地允許任何人向賄選池支付資金,而SGX網路,則可類似地開放構建。
而其他一些投票方案,例如 EIP999 ,甚至存在更為嚴重的問題。在這些方案中,如果使用者投票兩次,就會選擇後面的投票。而簡單而猛烈的攻擊方案,就是簡單地從使用者那裡收集“是”和“否”的投票簽名,在投票期結束前傳送大量所選的簽名,並依靠壓垮區塊鏈的能力,確保多數這樣的投票能夠繼續存在。或者,因為合約部署人員能夠為給定合約中的所有資金投票,所以另一種攻擊,就是簡單地強制使用者在投票期間使用投票購買者部署的合約錢包,然後這些投票購買者就可以肆意地控制鎖定在合約中的所有投票,而無視這些資金的託管。
比特幣也不能解決這個問題。比特幣社群通常 依靠投幣投票 ,類似的賄選計劃也可以應用(就像本文中所述的以太坊智慧合約,或者採用Dark DAO的方式,比特幣本身並沒有為投票賄選提供足夠豐富的合約支援。)
攻擊目標轉到共識機制
精明的讀者可能會指出,所有無需許可的區塊鏈,本質上依賴於某種形式的無需許可投票,即共識演算法本身。每當一個區塊鏈就某些屬性達成全球共識時,所發生的事情實質上就是無需許可(通常是幣或PoW加權)投票。
在這種情況下,“賄選”可能會有一些探索,這並不奇怪。例如,以太坊上的智慧合約,可通過審查、歷史修訂或鼓勵空白區塊
來 攻擊以太坊和其他區塊鏈 。這種攻擊直接作用於工作量證明本身,根據他們的加權工作對礦工進行賄賂。目前沒有理由能夠證明pos系統能夠免於類似的攻擊,特別是在 複雜的委託投票結構 的情況下,這種結構的激勵可能並不清楚,其形式分析可能並不完整或不存在。
關於賄選問題,與我們探索的Dark DAO類似的概念,我們稱之為“Fishy DAO”,我們以經典的Flash遊戲命名的它。在這個(超級好玩!)的遊戲中,你最初會是一條小魚。規則非常簡單,你可以吃掉較小的競爭魚類,但不能吃大小等同於或大於你的魚類。你每吃一條小魚,你就會變大一點,直到你最終(如果你幸運的話)成長為海洋主宰。而擺在我們面前的,不需要Flash和網路新增操作的一個遊戲,就是 agar.io 。
它就像Fishy遊戲一樣,但這裡的小魚也可以和更大的魚成群結隊!
Fishy DAO可使用上述Dark DAO所使用的技術,並對區塊鏈進行攻擊。使用SGX之後,當攻擊閾值達到時,Fishy DAO成員可接收不可轉讓的通知(DAO成員可以驗證訊息的真實性,但非成員不能辨別訊息是否是偽造的),這允許他們在發動這種攻擊前可以在短期內做空這個密碼貨幣市場。每一次區塊鏈Fishy DAO攻擊,會對這個Fishy DAO帶來一些好處。如果Fishy DAO未能到達要求的閾值,它就會逐漸消失,並把資金退還給參與者,當然,為了鼓勵參與者招募更多的參與者,這個 Fishy DAO可能會燃燒一部分資金(如果未能達到閾值的話)。
Fishy DAO需要Dark DAO的技術,就和在開放市場中以智慧合約執行一樣,可觀察的參與率,將為潛在的區塊鏈token價格提供市場訊號,而通過允許風險定價的方式,可使攻擊變得無利可圖。
而DAO成員與更廣泛的生態系統參與者之間的資訊不對稱性,使得這種攻擊是可行的。
其他應用
請注意,Dark DAO的影響遠遠超出上述。例如,一個以盈利為目的Dark DAO,購買了使用者的基本收入身份,預付少量費用以獲得使用者定期的基本收入支付。或者執行一個邪惡礦池的Dark DAO,利用無法覺察且不可阻擋的攻擊池,來攻擊基於ASIC的pow密碼貨幣。
人們也可以想象,在身份系統當中,身份制度本身可能也會存在針對購買行為的社會保障。例如,一些身份系統可以允許使用者親自撤銷或管理身份,這可以有效防止身份盜竊。還有一些方法:貸款的經典解決方案是抵押貸款。有可能,像企業這樣的“擔保人”也可以通過物理/法律恐嚇及合約,為無力承擔抵押的使用者,提供還款的社會保障。如果這種無需許可的基本收入體系與現行市場體系部署在一起,那麼發薪日貸款和保釋債券機構將非常適合這類業務,至少在美國是這樣的(在其他地方,可能不會有機構這樣做)。
區塊鏈中的機制協調空間是很大的,並且其環境是敵對的。所有基於身份的投票或財務激勵,都應非常小心地考慮底層無需許可模型潛在的生存性、可擴充套件性和安全性影響。
核心深入見解
也許你是一位略讀這篇文章的學者,或者是一位想知道這些到底意味著什麼的使用者。從上面的思想實驗中,我們可以發現一些有趣且令人驚訝的見解:
- 無需許可的電子投票*需要*可信硬體 。也許最令人驚訝的結果就是這個了。在使用者能夠生成自己金鑰的任何模型中,使用上述的可信硬體,低協調的賄賂攻擊本質上是可能的。對此的唯一防禦,就是使用更多的可信硬體:知道使用者能夠訪問他們自己的金鑰材料(因此不能被強迫或賄賂),這需要一些保證,使用者已經看到他們的金鑰。可信硬體,可以通過可信 硬體token設定通道(類似於政府使用電子投票促進民主)或通過基於SGX的系統(其保證任何選民已經將他們的關鍵資產透露給他們正執行的任何作業系統)來實現這一點。這固有地實施了多年以來一直使用的可信設定/生成假設的假設 學術電子投票方案 。顯然,在存在可信硬體的情況下,任何投票都需要這樣的假設,在沒有這種假設的情況下,投票可以被證明是低摩擦的買入/賣出/賄賂/脅迫選票,這是一個令人驚訝的結果,對於鏈上投票而言具有嚴重影響。
- 投票和協調機制的空間是巨大的,並且理解它的人非常少。正如上述通過如何處理以太坊智慧合約投票和投票更改的具體例項,很顯然,廣泛的設計決策從根本上改變了投票機制的激勵結構(我們會在下文附錄A中探討這些)。這些機制極其複雜,並且可以通過其他協調機制(如智慧合約和基於DAO的可信硬體)來改變它們的激勵結構。這些機制的特性,特別是當多個這樣的機制互動作用或被資源豐富的參與者主動攻擊時,能夠理解它們的人就更稀少了。任何此類機制都不應直接用於鏈上投票。
- 同一類別的賄選攻擊對任何身份系統都有效 。這些攻擊不僅僅是為了投票。想象一下一個身份系統,它給使用者一個基本收入的權利,其每週會支付一次。我可以先付現金,預先付款購買你的身份,從而得到下一年的收入份額,如果我的資金時值(time value of money)低於你的價值,那我確實應該這樣做(往往意味著財富不對稱)。對於涉及身份的任何系統,都會遇到這種情況:在相對較低的信任下,可以約束使用者身份的行為,這樣的限制可以在公開市場上進行買賣。而這對於任何擁有無需許可身份元件的鏈上經紀機制的健壯性而言,都會有嚴重和根本的影響。
- 鏈上投票從根本上會淪為財閥政治 。投票和民主在根本上只依賴於無記名的投票假設,和僅存在於現實世界中的身份基礎設施。而這些假設並沒有傳遞到區塊鏈上,使得相同的技術在一個無需許可的模型中基本無效。只要使用者可以自己生成自己的金鑰(見上文),外部的、甚至可信的身份系統也無法解決這個問題。
- 而硬分叉的治理可以為使用者提供唯一的出路 。上面提到的一個自然問題是,我們是否已經到達了財閥階層。答案可能是“沒有”,有一些證據表明, 諸如比特幣和以太坊這類區塊鏈的自組織、非正式、基於分叉的治理模型,實際上提供了健壯的使用者許可權保護 。在這個模型中,任何升級都必須為使用者提供主動選擇,並且如果使用者組不同意規則更改,則使用者可選擇退出。 另一方面,鏈上投票會產生一種自然預設的狀態,尤其是疏忽或漠不關心的使用者結合在一起時,這就會出現強大的反對分叉的慣性 。
- 多鏈之間相互作用可以打破所有鏈的獎勵性協調。重要且關鍵的是,我們探索過的Fishy DAO式攻擊表明,多個競爭鏈有能力從根本上影響所有這些鏈的內部平衡。例如,當世界上只有一個智慧合約系統 ——以太坊時,內部激勵可能導致穩定的均衡。當出現第二個競爭者時,處於劣勢的競爭者會發起賄賂攻擊以摧毀他們的競爭對手,這種平衡可以被改變和破壞。一個關鍵的,並且令人驚訝的未開發研究領域,是區塊鏈與區塊鏈之間競爭的巨集觀經濟學模型。我們直觀地發現,某些關鍵的黑天鵝事件,目前正潛伏在複雜的區塊鏈治理和互操作當中。
顯然,這些都需要進一步的探索、調整和證明。但我認為,我們至少提供了一些線索,為什麼我們會相信上述的原則分析框架。
結論
區塊鏈鏈上投票的趨勢,是由長期的人類投票和民主傳統所啟發的。不幸的是,在現實世界中我們可得到的保障措施,如強制私人/可否認投票,近似的身份控制,以及普遍欺詐行為的可歸責,在無需許可的模型下是不可用的。當使用使用者自己生成的公鑰時,鏈上投票不能保證這些使用者具有任何反強制保證。而所謂精心設計的投票方案,對解決這一問題並沒有多大作用(在很多情況下會加劇問題)。鏈上投票機制進一步使激勵機制複雜化,造成不穩定和混亂的激勵機制,而這些機制隨時可能被無需信任的智慧合約或Dark DAO式的投票賄選計劃所影響。
我們鼓勵大家對任何鏈上投票的結果高度懷疑,特別是鏈上投票已成為供應鏈系統中決策制定的一個非常重要的組成部分。行業在設計此類投票系統時,應當將其用作訊號,而不是決策,並且各種各樣的投票機制也應當充當這樣的角色。而沒有這些保障,所有投票系統仍然有可能通過直接投票、投票賄選甚至投票通證化而退化為富豪政治遊戲。
這樣的攻擊,對於所有基於區塊鏈的投票系統而言,都具有重大的安全影響。
致謝
我們要感謝 Patrick McCorry 提供的幫助,在這篇文章的整個生命週期當中,他提供了全面的反饋及幫助,同時感謝他在投票賄選和鏈上投票系統方面進行的開拓性工作。
我們也感謝Omer Shlomovits和István András Seres對這篇論文早期版本的有益評論。
附錄A——鏈上投票的不同因素
我們注意到,鏈上投票系統中的幾個不同的因素:
- 投票改變能力 :如果使用者不能改變他們的投票,任何提供密碼檢查收據的方法,都可用於進行小規模的投票賄選。一個智慧合約可以簡單地在使用者投票前賄賂他們。然而,大多數方案允許使用者改變或撤回他們的選票,這意味著賄賂需要一些連續的時間分量(或者在投票結束後做)。.
- 智慧合約/委託投票 :誰負責為智慧合約儲存的資金投票?這是一個困擾現有設計的未決問題。原來的CarbonVote設定,允許任何合約呼叫一個函式進行投票,後來它更改了規則。EIP999投票方案允許合約部署人代表合約進行投票,這被廣泛批評是影響選舉結果的決定。然而,這兩種設計都不是理想的。的確,從直覺上看,單一設計似乎很難公平地捕獲智慧合約中的所有託管細微差別:持有資金的智慧合約,可以從簡單的多重簽名帳戶,到複雜的具有自己收入流和合約間財務關係的去中心化組織。這些token當中,有哪些擁有投票權,以及如何公平地分配這些權利,這對建立一個公平的鏈上投票系統而言,仍然是一個完全未被探索的哲學要求。而強制合約作者提供顯式功能也可能是不夠的,這是因為這種功能的需求,在未來可以改變而無需向後相容。(通過區塊鏈投票或分叉)。
- 可否認性/可證明性 :本文中所探討的所有方案,都具有特別適用於投票賄選的特徵:它們向選民提供了某種形式的信任最小化密碼證明,即便是通過鏈上日誌、安全網路介面或智慧合約狀態。這樣的方案特別容易用於投票賄選,因為這易於智慧合約邏輯來驗證選票。學術文獻中的一些 傳統電子投票方案 ,提供了一種稱為強制抵抗的屬性。在這些方案中,使用者在遭遇強制的情況下,能夠使用他們投票的金鑰,以改變他們的想法,並且投票不能歸因於單個使用者。 總的來說,擁有與任何長期身份相關的選票,尤其是那些持幣的人,其隱私問題會非常嚴重 。這樣的擔憂,將完全取消現實世界中任何嚴肅的投票系統的資格,並且應在所有深思熟慮的鏈上投票設計準則中被取消資格。
發文時比特幣價格 ¥43029.67
原文:http://hackingdistributed.com/2018/07/02/on-chain-vote-buying/作者:Phil Daian,Tyler Kell,Ian Miers,Ari Juels翻譯:灑脫喜稿源(譯):巴位元資訊(http://www.8btc.com/on-chain-vote-buying) 版權宣告:
作者保留權利。文章為作者獨立觀點,不代表巴位元立場。