首發 | Vitalik:重新認識區塊鏈投票

註:原文作者是以太坊聯合創始人Vitalik Buterin。

特別感謝Karl Floersch,Albert Ni,Silly先生以及其他人的反饋意見和討論。

投票對於進程完整性而言是一項非常重要的程序,投票的結果必須是正確的,而且必須通過透明的過程來保證,以便每個人都可確信結果是正確的。不應該存在能成功干擾任何人去嘗試投票,或阻止他們的投票被計算在內的可能。

區塊鏈是一項旨在為流程完整性提供保證的技術,如果某個流程在區塊鏈上運行,則可以確保該流程根據預先約定的代碼運行,並提供正確的輸出。沒有人可以阻止執行,也沒有人可以篡改執行,也沒有人可以審查和阻止任何用戶的輸入被處理。

因此乍看起來,區塊鏈似乎恰好提供了投票所需的組件。而且我不是唯一一個想過這個點子的人。很多主要的潛在用戶都對此感興趣,但事實證明,有些人有着非常不同的意見……

首發 | Vitalik:重新認識區塊鏈投票

儘管投票的需求和區塊鏈提供的技術益處似乎完美匹配,但我們經常會看到一些文章會反對兩者的結合。這不僅僅是一篇文章,這是一篇來自《科學美國人》雜誌的反對區塊鏈投票的文章,這是CNet的另一篇‌,還有來自ArsTechnica的另一篇‌。而且,不僅僅是科技記者在反對,例如Bruce Schneier就反對區塊鏈投票,麻省理工學院的研究人員也撰寫了一整片論文‌來闡述區塊鏈投票是一個壞主意,那麼到底是怎麼回事?

概述

區塊鏈投票協議的批評者通常會提出兩個關鍵的批評點:

  1. 區塊鏈是運行選舉的錯誤軟件工具,它們提供的信任屬性與投票所需的屬性不太匹配,其他具有不同信息流和信任屬性的軟件工具會更好地工作。
  2. 不管是什麼樣的軟件,一般來說都不能信任軟件來運行選舉。無論平台如何組織,無法檢測到的軟件和硬件漏洞風險都太高了。

本文將依次討論這兩種說法(“反駁”這個詞太強烈了,但我絕對不同意這兩種說法)。首先,我將討論使用區塊鏈投票的現有嘗試的安全問題,以及正確的解決方案不是該放棄區塊鏈,而是該將它們與其他加密技術結合起來。第二,我將回答軟件(和硬件)是否可信的問題。答案是:計算機安全實際上正在變得更好一些,我們可以繼續沿着這一方向努力。

從長遠來看,長期堅持紙上談兵對我們改善投票的能力而言是一個巨大的障礙。每N年一票是一種有250年歷史的民主投票形式,如果投票變得更方便、更簡單,我們可以擁有更好的民主,這樣我們就可以更頻繁地進行投票。

不用說,這篇文章的前提是基於良好的區塊鏈擴容技術(例如分片)基礎。如果區塊鏈無法擴容,那麼這一切都不可能發生。但到目前為止,這項技術的發展進展很快,因此沒有理由相信它不會發生。

壞的區塊鏈投票協議

區塊鏈投票協議一直受到黑客攻擊。兩年前,一家名為Voatz的區塊鏈投票技術公司風靡一時,很多人對此非常興奮,但在去年,一些麻省理工學院的研究人員在他們的平台上發現了一系列嚴重的安全漏洞。與此同時,在莫斯科,一個用於即將舉行的選舉的區塊鏈投票系統遭到了黑客攻擊,幸運的是,這次攻擊是在選舉前一個月發生的。

黑客攻擊是非常嚴重的,下表是研究人員分析Voatz時能夠實現的攻擊種類:

首發 | Vitalik:重新認識區塊鏈投票

這本身並不是反對使用區塊鏈投票的理由。但有一種觀點認為,區塊鏈投票軟件的設計應該更加謹慎,並隨着時間的推移緩慢、漸進地擴大規模。

隱私和脅迫抵抗

但即使是技術上沒有被攻破的區塊鏈投票協議也常常很糟糕。為了理解原因,我們需要深入研究區塊鏈提供了哪些特定的安全屬性,以及投票需要哪些特定的安全屬性——當我們這樣做時,我們會發現存在不匹配。

區塊鏈提供了兩個關鍵屬性:正確執行以及抵抗審查。正確的執行僅僅意味着區塊鏈接受用戶的輸入(“交易”),根據一些預定義的規則正確地處理它們,並返回正確的輸出(或者以正確的方式調整區塊鏈的“狀態”)。對審查的抵抗也很容易理解:任何想要發送一筆交易的用戶,只要願意支付足夠高的費用,就可以發送這筆交易,並期望看到這筆交易很快被納入區塊鏈。

這兩個屬性對投票而言都非常重要:你希望投票的輸出,實際上是計算每個候選人的票數並選擇得票最多的候選人的結果,而且你肯定希望任何有資格投票的人都能夠投票,即使有一些強大的存在試圖阻止他們。但投票也需要一些區塊鏈無法提供的關鍵屬性:

  1. 隱私:你不應該知道某個特定的候選人投了什麼票,或者他們是否投了票。
  2. 脅迫抵抗:你不應該向別人證明你是如何投票的,即使你希望這樣做。

第一個要求的必要性是顯而易見的:你希望人們根據個人感受投票,而不是因為周圍的人、僱主、警察或街頭的暴徒對他們的選擇的感受。第二個要求是防止選票出售:如果你能證明你是如何投票的,出售你的選票就變得非常容易。選票的可證明性也將使脅迫形式成為可能,脅迫者要求看到某種形式的投票證明,以支持他們喜歡的候選人。大多數人,即使是那些意識到第一個要求的人,也不會考慮第二個要求。但是第二個要求也是必要的,並且在技術上提供它是非常重要的。很顯然,我們在市場上所看到一般的“區塊鏈投票系統”甚至都沒有嘗試提供第二個屬性,而且通常無法提供第一個屬性。

無需區塊鏈的安全電子投票

加密安全執行社會機制的概念並不是由區塊鏈極客發明的,實際上,它們早在區塊鏈之前就已經存在了。在區塊鏈領域之外,密碼學家從事安全電子投票問題已有20年的時間,好消息是已經有了解決方案。過去20年的許多文獻引用的一篇重要論文是是Juels、Catalano和Jakobson 在2002年撰寫的論文《抗脅迫電子選舉‌》:

首發 | Vitalik:重新認識區塊鏈投票

從那時起,在這個概念上已經有過多次迭代,其中Civitas‌是一個突出的例子。這些協議都使用一組類似的核心技術,有一套商定的計票員(tallier),並有一個信任假設,即大多數計票員(tallier)是誠實的。計票員(tallier)各自擁有私鑰的一部分,併發布相應的公鑰。投票者發布投票加密到計票員(tallier)的公鑰,而計票員(tallier)使用安全多方計算(MPC)協議來解密和驗證選票並計算計票結果。計票計算是在“MPC內部”進行:計票員(tallier)不需要知道他們的私鑰,他們計算最終結果時,除了從最終結果本身可了解的之外,對任何個人的投票都沒有任何的了解。

加密投票提供了隱私,一些額外的基礎設施,如混合網(mix-net)的添加,使得隱私變得更為強大。為了提供脅迫抵抗,就用到了兩種技術。一種選擇是,在註冊階段(計票員了解每個註冊投票者公鑰的階段),投票者生成或接收一個密鑰。相應的公鑰在計票員(tallier)之間是秘密共享的,計票員的MPC只有在用密鑰簽名的情況下才計算投票數。投票人沒有辦法向第三方證明他們的密鑰是什麼,所以如果他們受到賄賂或脅迫,他們只需出示並投下用錯誤密鑰簽名的選票。或者,投票者可以發送消息來更改他們的密鑰。選民無法向第三方證明他們沒有發出這樣的信息,從而導致同樣的結果。

第二種選擇可以讓選民進行多次投票,而第二次投票可以推翻第一次投票。如果選民受到賄賂或脅迫,他們可以為賄賂者/脅迫者的首選候選人投一票,但隨後再投另一票以否決第一個候選人。

首發 | Vitalik:重新認識區塊鏈投票

現在,我們來看看所有這些協議中一個關鍵的細微差別。它們都依賴一個外部原語來完成安全保證:公告欄(上圖中的“BB”),公告欄是任何投票人都可以發送信息的地方,並保證(i)任何人都可以閱讀公告欄,以及(ii)任何人都可以向公告欄發送被接受的信息。你能找到的大多數有關抵制脅迫的投票題材論文都會提及公告欄的存在(例如,“對於電子投票方案來說很常見,我們假設一個可公開訪問的只附加的公告欄”),但是很少有論文會談論這個公告欄是如何實現的。在這裡,我會告訴大家:實現公告欄最安全的方法就是使用現有的區塊鏈!

使用區塊鏈的安全電子投票

當然,在區塊鏈之前,有很多人嘗試製作一個公告欄。這篇2008年的論文‌就是這樣的一種嘗試,它的信任模型是“n個服務器中的k個必須是誠實”(k=n/2是常見的)的標準要求。這篇2021年的文獻‌涵蓋了在公告欄上進行的一些區塊鏈之前的嘗試,以及探索區塊鏈在這項工作中的使用。論文所提到的方案同樣依賴於k-of-n信任模型。

區塊鏈也是k-of-n信任模型,它要求至少一半的礦工或權益證明驗證者遵守協議,如果這一假設失敗,通常會導致“51%攻擊”。那麼,為什麼區塊鏈比專用的公告板更好呢?答案是:建立一個真正可信的k-of-n系統是很困難的,區塊鏈是唯一已大規模解決這一問題的系統。假設某政府宣布正在制定投票制度,並提供了15個地方組織和大學的名單,這些組織和大學將運行一個特殊用途的公告欄。作為一個外部觀察者,你怎麼知道它的真實性?

另一方面,公共區塊鏈具有任何人都可以參與的無許可的經濟共識機制(工作量證明PoW或權益證明PoS),並且它們具有區塊鏈瀏覽器、交易所和其他觀察節點的現有多樣化且高度激勵的基礎架構,以不斷實時驗證確保沒有發生任何不良的情況。

這些更複雜的投票系統不僅使用了區塊鏈,它們還依賴於密碼學(例如零知識證明)來保證正確性,並依賴多方計算來保證脅迫抵抗,因此,它們避免了常見系統(這些系統只是“直接在區塊鏈上投票”,而忽略了由此產生的隱私和脅迫抵抗問題)的弱點。然而,區塊鏈公告欄仍然是整個設計安全模型的關鍵部分:如果委員會被打破,而區塊鏈沒有,則脅迫抗性就喪失了,但圍繞投票過程的所有其他保障仍然存在。

MACI:以太坊上的抗脅迫區塊鏈投票系統

以太坊生態系統目前正在試驗一個名為MACI‌的系統,該系統將區塊鏈、ZK-SNARKs以及一個單一的中央參與者結合在一起,以保證抗脅迫(但除了抵抗脅迫之外,沒有能力損害任何屬性)。MACI在技術上並不難,用戶通過使用其私鑰對消息簽名,將簽名的消息加密為中央服務器發布的公共密鑰,以及將加密的簽名的消息發布到區塊鏈來參與。服務器從區塊鏈下載消息,對其進行解密、處理,並將結果與ZK-SNARK一起輸出,以確保它們正確地進行了計算。

首發 | Vitalik:重新認識區塊鏈投票

用戶無法證明自己的參與方式,因為他們能夠發送一個“密鑰更改”消息來欺騙試圖審核他們的任何人:他們可以先發送一條密鑰更改消息,將密鑰從A更改為B,然後發送一條用A簽名的“假消息”。服務器將拒絕該消息,但其他人將無法知道密鑰更改消息是否已發送。服務器上有信任要求,儘管僅出於隱私和抗脅迫要求。服務器無法通過錯誤地計算或審查消息來發布錯誤的結果。從長遠來看,可以使用多方計算來對服務器進行一定程度的去中心化,從而加強隱私和抗脅迫的保障。

在clr.fund‌上有一個用於二次方融資的工作演示。以太坊區塊鏈的使用可確保投票的抗審查性,這比依靠一個委員會來進行投票的抗審查性要高得多。

重述要點

  1. 投票過程具有四個重要的安全要求,那麼投票才能確保安全,它們分別是:正確性,抗審查,隱私和抗脅迫。
  2. 區塊鏈擅長前兩個要求,但它在後兩個要求方面表現得很差。
  3. 加密區塊鏈上的投票可以增加隱私,零知識證明可以帶回正確性,儘管觀察者無法直接相加投票,因為他們是加密的。
  4. 與用戶可與系統多次交互的機制相結合,多方計算解密和檢查投票可以提供抗脅迫性。第一次交互使第二次交互無效,反之亦然。
  5. 使用區塊鏈可確保你具有非常高的安全審查抵抗力,即使委員會串通並打破了抗脅迫屬性,你也可以保持這種抗審查屬性。引入區塊鏈可以顯着提高系統的安全級別。

但是,技術可以被信任嗎?

現在,我們回到第二個對任何類型的電子投票的批評:就是說不管是否是區塊鏈,這項技術本身不太安全,因此不值得信任。

麻省理工學院最近發表的批評區塊鏈投票的論文‌中,就包含了這張有用的表格,其描繪出任何形式的無紙化投票從根本上來說都很難是安全的:

首發 | Vitalik:重新認識區塊鏈投票

作者關注的關鍵屬性是軟件獨立性,他們將其定義為“系統軟件中未檢測到的更改或錯誤,不會導致選舉結果發生不可檢測到的更改的屬性”。基本上,代碼中的錯誤不應使偶然的Prezzy McPresidentface成為該國的新總統(或者,更現實的是,故意插入的錯誤不應使某些候選人的投票份額從42%增加到52%)。

但是還有其他方法可以解決漏洞。例如,任何使用可公開驗證的零知識證明的基於區塊鏈的投票系統都可以獨立驗證。有人可以編寫自己的證明驗證器實現,並自己驗證Zk-SNARK。他們甚至可以編寫自己的軟件進行投票。當然,實際執行此操作的技術複雜性超過了99.99%現實投票者基礎,但如果成千上萬的獨立專家有能力執行此操作並驗證其有效,那麼在實踐中就已經足夠了。

然而,對於麻省理工學院的作者來說,這還不夠:

“因此,任何僅僅是電子的系統,即使是端到端可核查的,在可預見的未來似乎都不適合政治選舉。美國投票基金會已經注意到E2E-V方法在提高在線投票安全性方面的前景,但已發布了一份詳細的報告,建議避免使用E2E-V方法進行在線投票,除非該技術變得更加成熟,並在投票站投票中得到充分測試[38]。
其他人則提出了這些想法的擴展。例如,Juels等人[55]的提案強調使用密碼學來提供多種形式的“脅迫抵抗”。Clarkson等人[24]的Civitas提案實現了額外的脅迫抵抗機制,Iovino等人[53]進一步將這些機制納入並闡述到他們的Selene系統中。從我們的角度來看,這些提議是創新的,但並不現實:它們相當複雜,而且最嚴重的是,它們的安全性取決於選民的設備是否完好無損且按預期運行,這是不現實的假設。

作者重點研究的問題不是投票系統硬件的安全性問題,這方面的風險實際上可以通過零知識證明來緩解,相反,作者關注的是另一個不同的安全性問題:即用戶的設備在原則上能安全嗎?

鑒於消費類設備的各種攻擊和黑客事件由來已久,人們有理由認為答案是“不”。引用我自己在2013年撰寫的關於比特幣錢包安全的文章:

“昨晚太平洋時間晚上9點左右,我點擊了一個鏈接進入CoinChat[.]freetzi[.]com,然後我被提示運行java。我做了(以為這是一個合法的聊天室),然後什麼也沒發生。我關了窗口,什麼也沒想。大約14分鐘后,我打開了我的bitcoin-qt錢包,看到了一筆我沒有批准的交易,而錢包里的資金都被轉到了1Es3QVvKN1qA2p6me7jLCVMZpQXVXWPNTC……”

以及:

“2011年6月,Bitcointalk會員“allinvain”丟失了25000 BTC(當時價值50萬美元),因為一個未知的入侵者不知何故直接入侵了他的電腦。攻擊者能夠訪問allinvain的wallet.dat文件,並快速清空了錢包-要麼是從allinvain的計算機發送的交易,要麼只需上傳wallet.dat文件並在自己的機器上清空即可。”

但這些災難掩蓋了一個更大的事實:在過去的二十年裡,計算機安全實際上一直在緩慢而穩步地改善。攻擊很難被發現,通常需要攻擊者在多個子系統中查找漏洞,而不是在大型複雜代碼段中發現一個漏洞。引人注目的事件比以往任何時候都要多,但這並不是任何事情變得不那麼安全的跡象;相反,這只是表明我們越來越依賴互聯網。

可信硬件是最近非常重要的改進來源。一些新的“區塊鏈電話”(例如HTC的產品)在這項技術上走得很遠,並在可信硬件芯片上放置了一個以安全性為重點的簡約操作系統,以允許安全性要求很高的應用程序(例如加密貨幣錢包)與其他應用保持分離。三星已經開始使用類似的技術製造手機。甚至從未被宣傳為“區塊鏈設備”的設備(如iphone)也經常擁有某種可信的硬件。加密貨幣硬件錢包實際上只是可信硬件模塊物理上位於計算機外部,而不是計算機內部的錢包。可信硬件在安全圈,尤其是區塊鏈社區,經常會受到不好的評價,因為它一次又一次地被攻破了。實際上,你肯定不想用它來取代你的安全保護。但作為一個補充,這是一種巨大的進步。

最後,單一應用程序,例如加密貨幣錢包和投票系統,要比整個消費者操作系統簡單得多,出錯的空間也更小——即使你必須支持二次方投票、排序,二次方排序和下一代的Glen Weyl在2040年發明的任何可怕的東西。

像可信硬件這類工具的好處是,它們能夠將簡單的事物與複雜的,可能是損壞的事物隔離開來,並且這些工具取得了一定的成功。

因此,風險可能會隨着時間的推移而降低。但好處是什麼呢?

安全技術的這些改進,預示着未來消費者硬件可能比現在更受信任。過去幾年在這一領域的投資,在未來十年內可能會繼續得到回報,我們可以期待進一步的重大改善。但是,使投票電子化(基於區塊鏈或其他方式)有什麼好處,以證明探索整個空間是合理的?

我的回答很簡單:投票將變得更有效率,使我們可以更頻繁地進行投票。目前,對組織(政府或公司)的正式民主投入往往限於每1-6年一次的單一投票。這實際上意味着每個選民每年只需要在系統中投入很少的投入。或許很大程度上正是由於這一點,我們社會中去中心化的決策被嚴重地分為兩個極端:純民主和純市場。民主要麼效率很低(企業和政府投票),要麼很不安全(社交媒體點贊/轉發)。市場的技術效率遠高於社交媒體,安全性也遠高於社交媒體,但其基本的經濟邏輯使其不適合處理多種決策問題,尤其是與公共產品有關的決策問題。

首發 | Vitalik:重新認識區塊鏈投票

是的,我知道這是另一個三角,很抱歉不得不再次使用它。但是,請只忍受一次…(好吧,我敢肯定,我將來會提出更多的不可能三角理論)

如果我們能夠建立更多介於民主和市場之間的系統,受益於前者的平等主義、後者的技術效率以及介於兩個極端之間的經濟特性,我們就可以做很多事情。二次方融資就是一個很好的例子,流動民主是另一個很好的例子。即使我們不引入新穎的委託機制或二次數學,我們也可以做很多事情。但所有這些想法的挑戰在於,要想擁有一個能夠持久維持任何民主水平的計劃,就需要某種形式的女巫攻擊抵抗性以及賄選緩解措施:這正是這些迷人的ZK-SNARK+MPC+區塊鏈投票方案正在努力解決的。

Crypto行業能夠幫上忙

Crypto行業被低估的益處之一是,它是一個極好的“虛擬特別經濟區”,可用於在高度對抗的環境中測試經濟和密碼學思想。無論你構建和發布什麼,一旦它控制的經濟力量超過一定規模,那麼各種各樣的,有時是無私的,有時是出於利益動機的,有時是惡意的行為者(其中許多人都是完全匿名的)就會出現在系統中,並嘗試將這種經濟力量轉向自己的各種目標。

攻擊者的動機很高:如果攻擊者從你的加密經濟小工具中竊取了100美元,他們通常可以獲得全部100美元的獎勵,並且他們往往可以逃脫。但是,捍衛者的動機也很高:如果你開發一種可以幫助用戶避免損失資金的工具,則可以(至少有時)將其轉變為一種賺取數百萬美元的工具。Crypto是終極的訓練場所:如果你能建造出某種能在這種環境中大規模生存的東西,那麼它也可能在更大的世界中生存。

這適用於二次方融資,適用於多重簽名,以及社交恢複錢包,也適用於投票系統。區塊鏈行業已經幫助推動了很多重要安全技術的興起:

  1. 硬件錢包;
  2. 有效的通用零知識證明;
  3. 形式化驗證工具;
  4. 具有可信硬件芯片的“區塊鏈手機”;
  5. 抗女巫攻擊方案,例如人性證明(Proof of Humanity);

在所有這些案例中,在區塊鏈出現之前,就已經存在了某些版本的技術。但很難否認的是,區塊鏈在推動這些努力方面產生了重大影響,而該領域固有的巨大激勵作用,使技術發展的真正實現方面發揮了關鍵作用。

結論

從短期來看,任何形式的區塊鏈投票都應局限於小型實驗,無論是針對更主流應用的小型試驗,還是針對區塊鏈行業本身。目前的安全性還不足以讓一切都依賴計算機。但是它正在改善,如果我錯了,並且安全性沒有改善,那麼不僅是區塊鏈投票,而且整個加密貨幣都將很難獲得成功。因此,這項技術有很大的動力繼續改進。

我們都應該繼續關注世界各地為加強安全所提出的技術與努力,技術已經是我們金融市場的關鍵,對經濟的很大一部分進行crypto化(甚至只是取代黃金),將把經濟的更大一部分交給我們的加密算法和運行它們的硬件。我們應該仔細觀察和支持這一進程,並隨着時間的推移利用其優勢將我們的治理技術帶入21世紀。

本文鏈接:https://www.8btc.com/article/6641207

轉載請註明文章出處

(0)
上一篇 2021-05-26 19:07
下一篇 2021-05-26 19:44

相关推荐