如何設計一個長治久安的區塊鏈系統?如何解決投票隱私問題?瞭解一下鏈上治理系統可採用的環簽名、盲簽名、門限同態加密和混淆網絡密碼學等工具。

原文標題:《區塊鏈治理一瞥》(A glimpse of the blockchain governance system)
撰文:劉玉林與林煌,前者爲 DFINITY 高級經濟學家,後者系 Suterusu 首席技術官

本文重點關注隱私安全問題。免責聲明:本文所述僅代表兩位作者本人觀點,不代表 DFINITY 基金的官方立場

區塊鏈項目代碼隨時間進化。爲了更新區塊鏈項目代碼,不同利益團體如用戶,核心開發者和全節點提供者(在比特幣系統中爲礦工),需要對改變哪部分代碼達成共識。由於這些利益相關方之間往往存在利益衝突,這個共識並不容易達成。爲了解決這個問題,每個區塊鏈項目都會有一個管理系統來協調參與方衝突,並激勵他們爲區塊鏈系統的良性發展而一起努力。一般來說,主要有兩種區塊鏈治理系統:鏈下治理系統如比特幣和以太坊及鏈上治理系統如 Cosmos 和 DFINITY。兩者主要區別在於投票是否在區塊鏈賬本上進行並記錄。

在鏈下治理系統中,核心開發者通過向官方代碼中心(如 Github)提交協議更新提案(如比特幣更新提案,以太坊改進提案等)。用戶和全節點提供商可在社區論壇和社交媒體,如 Slack 頻道、Telegram 和 Twitter 上表達他們的意見。如果利益相關方大部分同意協議更新,那麼區塊鏈協議將做對應修改。如果他們無法達成一致,核心開發者可以撤銷協議或仍然繼續按計劃更新。這種情況下往往導致硬分叉(如,2016 年以太坊 / 以太坊經典的硬分叉和 2017 年的比特幣 / 比特幣現金的硬分叉),導致硬分叉的原因在於總是有些全節點提供商不願意接受協議更新。人們往往批評鏈下治理機制違背了去中心化精神,因爲核心開發者和全節點提供商與普通用戶相比有過多的決定權。

鏈上治理,作爲一種更去中心化的治理機制,隨着權益證明(proof of stake)區塊鏈項目的發展近幾年開始嶄露頭角。權益證明項目通常使用代幣作爲籌碼來代表投票權和投票力。因此,用戶可以在系統中下注代幣從而對協議更新決定擁有投票權。與鏈下治理系統中無限期的辯論相比,鏈上治理系統通常在做決定時快很多。另外,由於投票規定都是預先制定且提前公之於衆的,因此鏈上管理系統更爲透明。決定過程不是被中心化實體所控制或解釋的。另外,由於投票規則嵌在系統代碼中,協議更新在被批准後自動執行,所以能在很大程度上防止硬分叉。

下面我們大致描述下鏈上治理系統的幾個突出設計問題。

鏈上管理的設計

提議什麼?

提議的可以是被黑代幣的凍結,參數改變或懲罰惡意全節點提供商等相關議題。

如何提議?

提交一個提案前,首先必須用一定數量的代幣下注。爲了激勵提交高質量提案,提案被接受後,籌碼被退還而且還有可能有獎勵(獎金可以來自新挖的代幣或由基金會提供)。如果提案被拒,籌碼退還但無獎金。如果提案被認爲是垃圾信息,則籌碼被沒收。

先投票哪個提案?

用戶可以通過對某個提案下注來背書該提案。吸引最多下注背書代幣的提案將被認爲是最重要的,且被最先投票。提案被接收後,獎勵的代幣將部分分給提議者(比如 50%)和背書者(如 50%,和所下籌碼數量成比例)。注意相對而言不重要的提案所吸引的背書者往往更少,因此會被推遲投票。由於只有在投票後所下注代幣纔會被解鎖並返還下注者,提議者和背書者在代幣下注上都有機會成本。這樣設計能防止垃圾提案。另外,系統也可以設置一個能讓提案進入投票期所需的最少下注籌碼數目(類似於「we the people」白宮請願協議)。

如何獲得投票權及保證投票隱私?

爲了在管理系統中獲得投票權,用戶需要在系統中下注一段時間。這樣,用戶就成了利益相關方,因此有充分激勵理性投票。同態加密技術(具體細節見下個章節)是用於保證投票隱私的一種主流方法。投票加密後保證只有擁有私鑰的投票者可以解密。在投完票後進入計票環節。公衆僅知道最終解密的投票結果。

如何衡量投票權 / 獎勵?

投票權是隨着下注籌碼數目增加和下注時間拉長而增強的。只有當投票者參與投票時投票者纔會獲得代幣獎勵。如果代幣持有者不投票,光下注籌碼是不會獲得任何獎勵的。投票獎勵激勵投票者積極參與區塊鏈治理。

如何代理投票權?

由於投票需要消耗時間精力而且往往需要投票者在某些領域具有專業知識,投票者可以將其投票權代理給其他人(如,密碼學家,經濟學家,公知,開發者,基金會等)並且可以隨時取消代理權(這就是所謂的液態民主)。

誰能投票?

普遍投票機制:任何一個在系統中下注的人都可投票或代理投票權。

隨機投票機制:隨機選擇投票者中一部分人(如 10%)向某個提案投票。這種設計能保證多個投票同時進行,是個可擴展性的解決方案。由於參與投票的人比普遍投票機制少,每個投票對結果的影響更大。因此,被選中的選民有更多的動力參與並慎重投票。缺點是由於選民較少因此更容易發生勾結。所以,充分隨機地選擇選民對於保證該投票機制成功至關重要。

一方面,參與選民數應儘可能少以降低參與選民的總投票成本(如,研究提案所需花費的時間和資源)。另一方面,參與選民數應儘可能多,以確保投票結果具有代表性並符合多數代幣持有者的利益。有一種防止投票結果出意外的方法是評估投票。如果投票結果接近(例如,在 45%-55%範圍內),則系統會隨機選擇另一羣比如 5 倍數量的選民來參與第二輪投票。最終投票結果將綜合考慮兩輪投票的結果。

如何避免投票權集中化?

在現實生活的投票中,資本家可通過資助其偏愛的候選人競選活動來操縱選舉。一人一票的機制很容易受制於這種金錢效應。Cambridge Analytica 醜聞就是一個通過針對性影響社交媒體用戶來影響投票結果的例子。區塊鏈治理如果使用代幣一幣一票,富裕的用戶 / 投資者就可以通過購買大量代幣來影響投票結果。

使投票權更加去中心化的一種方法是引入靈活的鎖定期。用戶可以通過更長時間地鎖定其代幣以獲得更大的投票權。例如,鎖定 10 個代幣 10 個月的用戶可以獲得與鎖定 100 個代幣 1 個月的用戶相同的投票權。鎖定期越長意味着該選民對議案下注越大,因此比鎖定期較短的選民更關心繫統的長遠發展。

使投票權更加去中心化的另一種方法是用一個帳戶一票來取代一個代幣一票。選民通過填寫政府簽發的身份信息來註冊投票帳戶。該系統使用零知識證明技術(在下節中具體說明)以防止濫用用戶私人數據。選民仍可選擇不註冊帳戶匿名投票。但是,與那些實名註冊的帳戶相比,投票權將大打折扣。

投票權將隨帳戶中鎖定的代幣數量非線性增加。例如,要獲得一個投票權單位,投票者需要在帳戶中鎖定一個代幣。要獲得十個單位的投票權,選民需要鎖定十個以上的代幣(例如,十個單位的投票權需要 100 個代幣,即平方投票)。這種設計將降低了代幣持有大戶的投票權。

下一章中我們重點討論鏈上治理的隱私問題。

隱私保護電子投票

鏈上投票可以看作電子投票的一種。安全電子投票是個被深度研究的密碼課題。一個先進複雜的投票系統需要考慮多種屬性,如可驗證性,隱私,針對虛假指控的魯棒性(即,如果選舉執行準確無誤,那麼將無法生成證據誣陷選舉被操縱)和可用性等 [SR17]。在某些情況下,這些屬性可能會相互衝突。

隱私是本章節重點關注的課題,同時也是電子投票系統最重要的屬性之一,因爲如果攻擊者可以準確定位某個投票者如何投票,那麼投票者會很容易被賄賂或者脅迫。因此,電子投票方案的最基本要求就是應保證投票保密性和選民匿名性。

目前用於解決投票隱私問題的密碼學工具很多,如環簽名,盲簽名,門限同態加密和混淆網絡等。這一章將簡單介紹下這些技術。

環簽名

匿名電子投票密碼方案中文獻最多的可能是可鏈接環簽名。環簽名首先在 2001 年由 Rivest, Shamir 和 Tauman [RST01] 首次提出,隨後 [ES07] 提出可鏈接性作爲一種改進。

數字簽名通常假定參與方可通過一個公私鑰對識別。環簽名方案則允許一個隱藏在隨機選取的一羣人(或換一種說法,一個公鑰環)的簽名者生成一個環簽名,且環簽名不泄漏具體是這個公鑰環中哪個公鑰對應真正的簽名者。因此,它爲真正的簽名者提供匿名保護。但由於簽名消息是公開的,因此該方案不保證投票保密性。

由於環簽名隱藏投票者身份,因此,投票者可能會給某個候選人多次投票,從而提高他 / 她被選中的概率。一次性可鏈接屬性確保環中某個私鑰一旦被使用兩次,就可指認該重複簽名並認定該簽名非法。

一次性可鏈接環簽名可以通過一種特殊的零知識證明,即成員資格證明(如 [GK15] 中所示)來構造。零知識證明這種協議能讓證明者證明某個命題的正確性,且無需透露該命題本身之外的任何其他信息。例如,零知識區間證明方案(如 Suterusu 項目提出的方案 [Lin19])允許證明者證明一個加密的整數屬於某個區間,例如 [0,1],但不會泄漏它是哪個整數。換句話說,在不泄漏其爲 0 或 1 的情況下,驗證者在讀完證明後將確信該整數是二進制的。

盲簽名

另一個密切相關的密碼技術是盲簽名 [C82,FOO92],但它需要一個初始化的註冊階段,這個階段往往由某個羣管理員負責。這意味着投票過程需要選民與管理員互動,以便選民從管理員那裏獲得無法追蹤的空白選票,並以加密 / 盲簽名的形式投票。盲簽名能保證選民匿名性,投票保密性和一次可追溯性。但是,在區塊鏈中使用盲簽名時需要使用門限盲簽名技術來防止羣管理員權力集中。注意,這裏的「門限」是指使用門限密碼學以多個管理員來取代單個管理員。如果大多數管理員忠實執行協議,就可以保證投票者的匿名性和投票保密性。

門限同態加密

加密方案將明文轉換爲隨機字符串來保證其保密性。消息加密後,必須首先解密密文,然後才能對消息做操作(例如求和)。但是,在某些應用場景中,執行操作的人員不一定適合知道所加密的明文信息。例如,計票人員只需知道候選人所獲投票總數,而無需知道具體單個用戶的投票。同態加密是一種特殊的加密機制,它允許獲得密文的任何人同態地執行所需的操作,這意味着可以在無需解密同時對底層消息執行操作。

如果每個投票者對某個候選人或聲明的投票使用同態加密方案加密後,計票員則能無需解密單個投票密文並同態地生成最終投票計數的密文。

注意,一個惡意投票者可以通過加密一個較大的正數(或負數)而不是二進制的投票來增加(或減少)其所偏愛的候選人(或其對手)獲勝(或落選)的機率。因此,基於同態加密的電子投票方案通常需要同時執行零知識區間證明,該證明可以證明加密的投票數是二進制的,而無需透露具體的投票值。另一個問題是,擁有同態加密方案私鑰的任何實體都將能夠解密所有單個投票。因此,通常需要使用門限同態解密機制以將解密能力去中心化。

混淆網絡

混淆網絡使用多個獨立的服務器來洗牌輸入的選票密文並輸出明文選票。不過必須假定這些混淆服務器中至少有一臺誠實地執行祕密置換操作,以保證投票者匿名性。

更具體地說,混淆網絡通常採用多層加密對原始投票加密,每層加密對應一個公鑰,每個公鑰對應於中間一個混淆節點。每個中間的混淆節點將接收多個密文,並使用其私鑰解密,然後隨機洗牌後將消息發給下個節點執行相同的操作。因此,只要其中一個混淆節點忠實執行協議,就能在一定程度上保證投票者匿名。但是,由於最終計票員收到的是明文投票,因此混淆網絡不能保證投票本身的保密性。

下表比較了這些技術的利弊。

一文概述鏈上治理隱私問題與技術方案電子投票方案比較

討論

區塊鏈項目是隨時間進化的複雜系統。他們的治理往往取決於所制定的治理規則以及定義如何更改這些治理規則的規則。在設計治理規則時,需要牢記以下幾個問題:如何定義有效選民及其投票權?誰可以發起提案?什麼樣的提案纔有資格引發投票?如何定義投票結果?法定選民人數是多少?如何更改投票規則?

歸根結底,問題核心在於:如何設計一個能保證區塊鏈項目長治久安的治理系統。成功的祕訣是讓大部分參與者的利益與項目的利益保持一致。

作者

劉玉林(yulinzurich@gmail.com),目前領導 DFINITY 的代幣經濟學和治理系統研究。他還擔任華中科技大學兼職經濟學教授。玉林的研究方向包括貨幣理論,銀行監管,加密貨幣,代幣經濟學和區塊鏈治理系統。他擁有蘇黎世聯邦理工學院的量子計算理學碩士學位和經濟學博士學位。玉林也是歐洲中央銀行的訪問學者,並曾應邀在全球各大央行和會議上演講。

林煌(lh@suterusu.io),目前擔任 Suterusu 項目 CTO。他的專業方向是應用密碼學。林煌擁有上海交通大學的應用密碼學博士和佛羅里達大學的隱私保護分佈式系統博士學位。他曾在瑞士聯邦理工學院(EPFL)擔任博士後研究員,並在香港應科院擔任副主任工程師。他發表了 20 多篇有關應用密碼學和信息安全的論文,引用次數 1000 多。

參考文獻

[RST01], Rivest, Ronald L., Adi Shamir, and Yael Tauman. "How to leak a secret." International Conference on the Theory and Application of Cryptology and Information Security. Springer, Berlin, Heidelberg, 2001.

[ES07] Fujisaki, Eiichiro, and Koutarou Suzuki. "Traceable ring signature." International Workshop on Public Key Cryptography. Springer, Berlin, Heidelberg, 2007.

[C82] D. Chaum. Blind signatures for untraceable payments. In D. Chaum, R. Rivest, and A. Sherman, editors, CRYPTO ’82, pages 199–204. Prenum Publishing Corporation, 1982.

[FOO92] A. Fujioka, T. Okamoto, and K. Ohta. A practical secret voting scheme for large scale election. In AUSCRYPT 91, pages 244–260. Springer-Verlag, 1992. LNCS Vol. 718.

[SR17] Park, Sunoo, and Ronald L. Rivest. "Towards secure quadratic voting." Public Choice 172.1-2 (2017): 151-175.

[GK15] Groth, Jens, and Markulf Kohlweiss. "One-out-of-many proofs: Or how to leak a secret and spend a coin." Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer, Berlin, Heidelberg, 2015.

[Lin19] Dr. Lin. Suterusu Yellowpaper 1.0. https://github.com/suterusu-team/Suter_yellowpaper.

來源鏈接:medium.com