俄羅斯聯邦中央委員會遠程電子投票系統概覽

31年2020月XNUMX日,根據俄羅斯聯邦中央選舉委員會的命令開發的採用區塊鏈技術的遠端電子投票系統(以下簡稱DEG)進行了公開測試。

為了熟悉新的電子投票系統並了解區塊鏈技術在其中發揮的作用以及使用的其他組件,我們正在啟動一系列出版物,專門介紹該系統中使用的主要技術解決方案。 我們建議按順序開始 - 從系統的要求和流程參與者的功能開始

系統需求

適用於任何投票系統的基本要求對於傳統現場投票和遠程電子投票通常是相同的,並由 12.06.2002 年 67 月 31.07.2020 日聯邦法 N XNUMX-FZ(於 XNUMX 年 XNUMX 月 XNUMX 日修訂)確定“關於俄羅斯聯邦公民投票權和參與公投的權利的基本保障。”

  1. 選舉和全民公投的投票是秘密的,排除了對公民意願進行任何控制的可能性(第7條)。
  2. 投票機會應僅提供給擁有積極投票權的人。
  3. 一名選民一票,不允許「雙重」投票。
  4. 投票過程必須對選民和觀察員公開、透明。
  5. 必須確保投票的完整性。
  6. 在投票完成之前,應該無法計算出臨時投票結果。

因此,我們有三個參與者:選民、選舉委員會和觀察員,他們之間的互動順序是確定的。 也可以單獨指出第四個參與者——在領土上進行公民登記的機構(主要是內政部以及其他行政當局),因為主動選舉權與公民身份和登記地點相關。

所有這些參與者都相互互動。

互動協議

讓我們考慮一下傳統投票站的投票過程,有投票箱和紙本選票。 一般來說,它看起來像這樣:選民來到投票站並出示身份證明文件(護照)。 投票站設有選區選舉委員會,其成員核實選民的身份以及他是否出現在先前編制的選民名單中。 如果找到選民,委員會成員就會給選民一張選票,選民在收到選票時簽名。 之後,選民前往投票站,填寫選票,並將其放入投票箱。 為了確保所有程序都嚴格遵守法律,所有這些都由觀察員(候選人代表、公共監督機構)監督。 投票結束後,選舉委員會在觀察員在場的情況下清點選票並確定投票結果。

傳統投票系統中投票所需的屬性由組織措施和參與者互動的既定程序提供:檢查選民護照、親自簽署選票、使用投票站和密封投票箱、計票程序等。

對於資訊系統,即遠端電子投票系統,這種互動順序稱為協定。 由於我們所有的互動都變得數位化,因此該協議可以被視為由系統的各個組件實現的演算法,以及由用戶執行的一組組織和技術措施。

數位互動對實現的演算法提出了一定的要求。 讓我們看看在資訊系統方面在傳統站點上執行的操作以及如何在我們正在考慮的 DEG 系統中實現這些操作。

可以說,區塊鏈技術並不是解決所有問題的「靈丹妙藥」。 為了創建這樣的系統,需要開發大量負責不同任務的軟體和硬體組件,並使用單一進程和協定將它們連接起來。 但同時,所有這些組件都與區塊鏈平台互動。

系統組成

從技術角度來看,DEG系統是一個軟硬體綜合體(以下簡稱STC),它組合了一組組件,以確保選舉過程中的參與者在統一的資訊環境中進行互動。

DEG PTC系統的組件和參與者的交互圖如下圖所示。

俄羅斯聯邦中央委員會遠程電子投票系統概覽
可點擊

遠端投票流程

現在我們將詳細考慮遠端電子投票的過程及其透過 DEG 軟體和硬體複合體組件的實現。

根據遠端電子投票程序,選民必須在國家服務入口網站上提交申請,才能列入遠端電子投票參與者名單。 同時,只有擁有確認帳戶並已成功與國家自動化系統「選舉」系統的選民登記冊、公投參與者進行比對的用戶才能提交此類申請。 收到申請後,選民的數據將再次由俄羅斯中央選舉委員會檢查並上傳至 選民列表組件 PTC DEG。 下載過程伴隨著區塊鏈中唯一識別碼的記錄。 選舉委員會成員和觀察員可以使用位於選舉委員會所在地的特殊自動化工作站查看名單。

當選民訪問投票站時,他會被驗證(與護照資料進行比較)並在選民名單中被識別,並檢查該選民之前是否收到過選票。 這裡重要的一點是,無法確定選民是否將收到的選票放入投票箱,只能確定選票之前已經發出。 就 PTC DEG 而言,選民的訪問代表用戶的請求 DEG門戶 網站位於 vybory.gov.ru 與傳統投票站一樣,該網站包含有關正在進行的選舉活動的資訊資料、候選人資訊和其他資訊。 為了進行識別和認證,使用國家服務入口網站的ESIA。 因此,在申請和投票時都維持通用識別方案。

此後,匿名程序開始 - 向選民提供一張不包含任何識別標記的選票:它沒有號碼,與所發給的選民沒有任何關係。 當投票站配備電子投票綜合體時,考慮該選項是很有趣的 - 在這種情況下,匿名化的執行方式如下:選民被要求從一堆帶有條碼的卡片中選擇,而不是紙質選票他將接近投票裝置。 卡上沒有關於選民的信息,只有一個代碼,用於確定設備在出示此類卡時應提供哪張選票。 對於完全數位化的交互,主要任務是實現匿名化演算法,一方面無法建立任何用戶身份數據,另一方面只為那些有投票權的用戶提供投票能力。之前已在列表中確定。 為了解決這個問題,DEG PTK 使用了一種加密演算法,在專業環境中稱為「盲電子簽名」。 我們將在後面的出版物中詳細討論它,並且還將發布源代碼;您還可以使用關鍵字“加密無記名投票協議”或“盲簽名”從互聯網上的出版物中收集更多信息

然後,選民在無法看到所做選擇的地方(封閉的投票亭)填寫選票 - 如果在我們的資訊系統中選民遠端投票,那麼唯一的地方就是用戶的個人設備。 為此,用戶首先被轉移到另一個網域 - 到匿名區。 在切換之前,您可以提升 VPN 連線並更改您的 IP 位址。 正是在這個網域上顯示選票並處理使用者的選擇。 在用戶設備上運行的源代碼最初是開放的 - 可以在瀏覽器中看到。

一旦做出選擇,選票就會使用特殊的加密方案在使用者的裝置上加密,發送並記錄在 組件“分散式儲存和計票”,建立在區塊鏈平台上。

該協議最重要的特徵之一是在投票完成之前不可能知道投票結果。 在傳統投票站,這是透過密封投票箱並由觀察員監控來確保的。 在數位互動中,最好的解決方案是對選民的選擇進行加密。 使用的加密演算法可防止投票結果在投票完成之前洩露。 為此,使用具有兩個金鑰的方案:所有參與者都知道的一個(公共)金鑰用於加密語音。 它不能用相同的金鑰解密;需要第二個(私有)金鑰。 私鑰在選舉過程的參與者(選舉委員會成員、公共議院、計票伺服器操作員等)之間分配,使得密鑰的每個單獨部分都是無用的。 只有收集到私鑰後才能開始解密。 在所考慮的系統中,密鑰分離過程包括幾個階段:系統內部分密鑰的分離、系統外密鑰的分離以及公共公鑰的產生。 我們將在未來的出版物中詳細展示加密過程以及使用加密金鑰。

收集並下載金鑰後,開始計算結果,並進一步記錄在區塊鏈中並隨後公佈。 正在考慮的系統的一個特點是使用同態加密技術。 我們將在未來的出版物中詳細描述該演算法,並討論為什麼該技術被廣泛用於創建投票系統。 現在讓我們來看看它的主要特點:記帳系統中記錄的加密選票可以在不解密的情況下進行組合,這樣組合密文的解密結果將是選票中每個選項的總和。 同時,該系統當然對這種計算的正確性進行了數學證明,這些證明也記錄在會計系統中,並且可以由觀察者驗證。

以下是投票過程的摘要。

俄羅斯聯邦中央委員會遠程電子投票系統概覽
可點擊

區塊鏈平台

現在我們已經研究了遠端電子投票系統實施的主要特徵,讓我們回答我們一開始提出的問題 - 區塊鏈技術在其中扮演什麼角色以及它可以解決哪些問題?

在已實施的遠端投票系統中,區塊鏈技術解決了一定範圍的問題。

  • 基本任務是確保投票框架內資訊的完整性,首先是投票。
  • 確保以智慧合約形式實現的程式碼的執行透明度和不變性。
  • 確保投票過程中使用的資料的保護和不變性:選民名單、在加密協議的各個階段用於加密選票的金鑰等等。
  • 提供去中心化的資料存儲,每個參與者都擁有完全相同的副本,並由網路中的共識屬性確認。
  • 查看交易和追蹤投票進度的能力,這在區塊鏈中得到了充分體現,從開始到計算結果的記錄。

因此,我們看到,如果不使用這項技術,幾乎不可能在投票系統中實現必要的屬性以及對它的信任。

透過智能合約的使用豐富了所使用的區塊鏈平台的功能。 智慧合約以加密選票檢查每筆交易的電子簽名和「盲」簽名的真實性,並對填寫加密選票的正確性進行基本檢查。

此外,在所考慮的遠端電子投票系統中,「分散式儲存和計票」組件不僅限於區塊鏈節點。 對於每個節點,可以部署一個單獨的伺服器來實現投票協議的主要加密功能—計數伺服器。

計數伺服器

這些是去中心化元件,提供投票加密金鑰的分散式產生以及投票結果的解密和計算的過程。 他們的任務包括:

  • 確保部分選票加密金鑰的分散式產生。 密鑰產生過程將在以下文章中討論;
  • 檢查加密選票的正確性(不解密);
  • 將加密形式的選票進行處理,產生最終的密文;
  • 最終結果的分散式解碼。

密碼協議執行的每個階段都記錄在區塊鏈平台中,觀察者可以檢查其正確性。

為了給系統在投票過程的各個階段提供必要的屬性,使用了以下加密演算法:

  • 電子簽名;
  • 投票者公鑰的盲簽名;
  • ElGamal橢圓曲線加密方案;
  • 零知識證明;
  • Pedersen 91 DKG(分散式金鑰產生)協定;
  • 使用 Shamir 方案的私鑰共享協定。

加密服務將在以下文章中更詳細地討論。

結果

讓我們總結一下遠端電子投票系統考慮的一些中間結果。 我們簡要描述了該過程和實現該過程的主要組件,並確定了實現任何投票系統所需屬性的方法:

  • 選民可驗證性。 該系統僅接受經過驗證的選民的投票。 透過識別和驗證選民,以及記錄選民名單和在區塊鏈中提供選票訪問的事實來確保這一屬性。
  • 匿名。 該系統確保俄羅斯聯邦立法規定的投票保密性;無法從加密選票中確定選民的身份。 使用“盲簽名”演算法和用於填寫和發送選票的匿名區域來實現。
  • 投票的保密性。 在投票完成、計票並解密最終結果之前,主辦單位和其他投票參與者無法得知投票結果。 透過對選票進行加密並使選票在投票後無法解密來實現保密性。
  • 資料不變性。 選民資料無法更改或刪除。 不可變的資料儲存由區塊鏈平台提供。
  • 可驗證性。 觀察員可以驗證計票是否正確。
  • 可靠性。 系統架構基於去中心化原則,確保不存在單一「故障點」。

來源: www.habr.com

添加評論