談區塊鏈技術在未來投票上的可行性/陳映竹
從網路普及以來,就一直有人主張應該可以透過網路進行「不在籍投票」或「在家投票」;除了解決返鄉問題,也加快開票速度。近年來更有人提出,可以透過區塊鏈技術來解決身份認證和投票記錄等問題,而本文則是作者根據經驗與觀察,提出的可行性問題討論。
台灣歷年來都有遠距投票、線上投票的議題與需求,而今年還多了個「區塊鏈」的話題來攪和。
在投票之前,很幸運的和一位外國朋友談到,他的國家對於「投票」這件事的態度。他說:「如果不投票是會被罰錢的」。
我問:「那萬一人剛好不在國內呢?」
朋友:「那你可以選擇提前投票。在第三人的見證下簽署提前投票的聲明,政府就會把選票提前寄到你家裡;你選好之後,再拿去特定的地方投入就可以了。」
當下我的腦中隨即出現了各種可能「被作票」的情境。朋友說,因為他居住的地方太大,除非真的是有心人士開著車一家一家偷拿信箱中的票,不然效益太低。
台灣地狹人稠,所以要做什麼其實都還蠻容易的。遠距、跨區投票的理想不是沒有出現過;如果設籍高雄,但在台北工作,只要有完整的投票機制,也許就可以解決舟車勞頓的返鄉潮,減輕輸運量。
這同時涉及了戶籍單位的驗證、選務人員是否足夠,以及相關投票、保密、驗票機制的安排;上述這些,只是實體投票部份的問題。
線上投票的前提
讓我們來進一步談談「線上投票」。這應該是最節省大家時間的作法,只要連上網路就可以投票,同時人也不一定得在台灣才能進行;就算身在其他國家,只要有加密安全的網路環境,通過身份驗證就可以投票。
這樣的形式涉及了:
網路安全相關:網路的安全性、載具與相關工具的安全性、網站的安全性與承載性(包括可否抵抗DDoS之類的常見網路攻擊)、是否容易被其他人得知你我的投票結果?例如過去有些網站就曾經發生過,只要改個參數就可以得知他人資料的結果。
時差的計算:例如台北時間下午四點截止投票,日內瓦時間可能是還在當天早上的八點。
戶籍單位驗證:必須有這類驗證機制,以避免有人重覆投票。
數位落差:因為地方和個人條件不同,而數位落差的關係,在實施後的十年內必定還是線上、實體並行。如何縮短數位落差與認知,也會是一條必經之路。
實體投票、驗票會出現的問題。
因為「網路投票」有重覆投票、或是被人篡改投票結果的風險,再加上區塊鏈技術盛行,於是開始有人開始討論「使用區塊鏈技術來進行投票」的可能性。
區塊鏈應用的本質問題
由於區塊鏈在金融的應用上,最大的作用就在解決「信任」問題,避免「相同的一塊錢被重覆支付給不同的人」,所以也有人認為可以應用在選舉上。
然而以我所認知的區塊鏈技術,並不涉及「身份驗證」;它不會記錄你的個人資訊,而是以「私鑰」(Private Key,一串個人專屬的密碼)來認定所有者。
許多我知道的區塊鏈應用,都想透過將個人資訊、以及生物特徵都寫入區塊鏈中,作為「身份驗證」之用;然而隨著這種驗證方式而來的,就是個人隱私的喪失。
如果將個人的投票結果再寫進區塊鏈,讓人可以透明、公開的看到,那麼隨之而來的結果,可能就是人們因為區塊鏈技術的不當使用,而感到不安與恐懼。
如果有興趣深入瞭解這個議題的讀者,可以參考以下兩篇文章:
但反之,如果今天這個區塊鏈技術所做的應用方向是:
記錄這個私鑰已經進行投票;
這個私鑰無法再次進行投票;
投票結果不記錄在區塊鏈上;
那麼區塊鏈技術確實解決了一部份的「重覆投票」問題。但如何證明一個人只能用一組私鑰投票(確保「密碼」不會多人共用)、或是投票時只能用國家發給的私鑰投票(確保沒有人用自己「製造」出來的一組、甚至多組密碼來投票)?
如果是由國家來管理民眾合法、合理使用私鑰,或許就能解決一個人同時運用多組私鑰的重覆投票情況;但接下來的問題會是「國家能否保障私鑰、以及私鑰所有人的資料安全性」。
不想記得,卻忘不了
此外,因為不能將投票結果記錄在「不能篡改」的區塊鏈中,所以並無法降低投票結果被篡改的風險。
雖然目前瑞士、泰國等國家都在進行類似的測試,但都有各自的風險存在。例如瑞士可能就面臨「歐盟通用資料保護規則」(GDPR)中「被遺忘權」的規範:如果區塊鏈中記錄了個人的資料與投票結果,但當事人卻希望行使「被遺忘權」而要求移除資料,那麼這在區塊鏈的應用中是不可行的。
關於這些討論,還可以參閱這幾篇國外報導:
https://www.coindesk.com/swiss-railway-tests-blockchain-identities-for-workplace-safety-boost
Thailand Uses Blockchain-Supported Electronic Voting System in Primaries
West Virginia Not Planning to Expand Use of Blockchain Voting
所以,如果要談如何將區塊鏈技術應用在投票上,還要先解決遠距投票、線上投票的問題;在隱私與資料保護與相關配套措施、以及避免侵犯人權的相關政策更成熟之後,才有可能將區塊鏈技術應用在全國性的投票上。
在繼續討論之前,筆者先將從前整理的資料再重述一次:
區塊鏈的優點
去中心化:不受央行、銀行、任何第三方機構所控管,所以就不會有操弄資訊不對稱,造成資訊落差、詐騙的情況出現。
加密:資訊經過節點上的機器加密運算處理後,被放上區塊鏈;除非透過私鑰的核對,不然只看得到交易記錄,而無法看到加密的資料。
安全:在整個區塊鏈上的每個節點都存有一份資料,必須更改51%以上的節點資料才有可能被篡改成功;若是區塊鏈中的一個節點遭受到攻擊,還有其他節點上的資料可以立即回復,同時也因為其他的節點不承認篡改,所以不會造成損失。
公開透明:被加密的資料是無法看到的,但交易的過程是可以在網路上清楚看見的。
匿名:交易的雙方僅提供公開的公鑰作為支付的流向記錄,私鑰則是作為身份確認的用途。
區塊鏈的缺點
它同時也具有以下這些缺點。但或許日後會因為技術的改善而陸續解決:
若遺失個人私鑰,所有區塊鏈的資料可能歸為其他人所有、或是整體歸零。
如果一開始就提供造假的資訊,整個區塊鏈上的資料都是假的。
若程式設計不佳,的確有被篡改的可能,實際上也的確發生過。
執行速度不夠快,資料加密的時間過長。
每個區塊的容量有限、交易速度還是不夠快。
每個人都可以依據用途的不同,擁有多組公鑰與私鑰。
如果用PGP的運作方式來比喻,公鑰是一組公開的長碼;例如你可以公開這組資訊來募款,請他人將加密貨幣、或是其他數位貨幣根據這組公開資訊匯款(像是銀行帳號)。
而你自己則有擁有一組私鑰(類似網路銀行密碼),這是只有你自己才知道的資訊;而公私鑰如果彼此比對成功,就可以證明你就是本人、也能使用「帳戶」中的金錢或資訊。
如果忘記PGP的密碼,還可以想辦法更新;但如果你忘了區塊鏈的私鑰,將會從此一無所有、無法回復。
用區塊鏈技術來投票可行嗎?
銀行強制把「確認客戶身份」(Know Your Customer,KYC)的規定放在區塊鏈之上,其實是令人始料未及的。雖然銀行也需要區塊鏈之類的新技術來改革,但也必須注意新技術被用於洗錢或犯罪的風險。
如果銀行不強制執行KYC,當執法機構需要調閱相關資料時,銀行手上可是沒有任何顧客資訊的。
然而,用區塊鏈來記錄「個人身份資料」是絕對不可行的;而即使再退一步看,如果要用於投票,問題可能不是技術,而是速度。
如果先撇開記錄個人身份資料不可行的部份,我想像中的「區塊鏈投票」應該像是:
政府發給一組帳號,而這組帳號同時有一組公開的公鑰、以及對應的私鑰;私鑰的部份用於管理個人設定,公鑰的部份則可以由政府來記錄公共事務資訊。
每個人在投票時,經過比對公私鑰確認身份後,投下自己的一票。
政府會收到某個公鑰所有者已經投票、而且投給某候選人的紀錄。
如果開票與記票的速度夠快,投票結果很快就會統計完成。
不過我要強調的是,上述的想像是有許多前提的;如果做不到以下的要求,就會讓原本以「去中心化」為宗旨的區塊鏈,變成極權管理的工具:
政府端:不能記錄公鑰與私鑰的對應的關係,相當於不能記錄「銀行帳號、所有人身分、以及私人密碼的對應與連結」。
人民端:每個人所持有的這組政府公鑰,只能用於公共事務、更不能開心的四處宣傳「這組公鑰就是我本人」;當一組公鑰用來從事的私人事務過多時,也許就會讓他人掌握其中的部份資訊。
所以,「區塊鏈投票」不是不可行,而是還有一些問題尚待解決:
若實施了區塊鏈投票,那麼目前區塊鏈節點透過運算建立共識、承認寫入資訊的速度,是不是能比其他開票方式來得快?假設它的速度是即時的,那麼即時公開的資訊會不會影響投票結果?
佈建的成本仍然太高。
如果政府想將個人資料寫在掌控範圍裡,而且政府知道公鑰X對應的私鑰Y就是Z這個人,那麼投票結果就等於是記名的;而且政府也知道Z的投票結果、以及Z使用公鑰進行了哪些公共事務。如果Z又拿著X公鑰去收款、轉帳,政府也會清楚知道Z做過哪些事情。
在「1. 政府希望透過區塊鏈掌控個人資料,2. 政府利用這些個資進行身份驗證,3. 驗證之後才允許投票」的步驟前提之下,區塊鏈技術用於投票是不可行的。
區塊鏈個資與人權的衝突
以前述的歐盟GDPR來說,如果資料主體(所有者)要求移除資料,但區塊鏈因為本身的特性而無法移除資訊,所以頂多將某人資料註記為「要求不再記錄」,但之前寫入的資料則是會一直保留在鏈上的。
區塊鏈本來就是不應該記錄個人資料的。如果在上面記錄了個人資料,就等於違反了GDPR的原則。
GDPR並不反對區塊鏈技術,但反對區塊鏈與「被遺忘權」的牴觸。如果記錄的是某個私鑰「有沒有投票」,那就沒有問題;但如果記錄了某個私鑰「票投給誰」,那絕對是有問題的。
因為,如果有人提出要求,希望移除自己的投票結果,那是不可能的;如果把人們的真實身份資料都記在區塊鏈上,那更可能是民主社會的危機。
根據台灣的個人資料保護法第11條條文:
個人資料蒐集之特定目的消失或期限屆滿時,應主動或依當事人之請求,刪除、停止處理或利用該個人資料。但因執行職務或業務所必須或經當事人書面同意者,不在此限。
也就是說,我們依法是可以要求刪除資料的;但一旦記錄在區塊鏈上,那這些資料是無法修改、無法移除的。
如果記錄了個人的資料,包括像是整容的病歷、哪一天搬家去哪裡、不小心和鄰居有爭議並進行調解等等,這些資料都有可能都被記錄在區塊鏈中:整容前後的照片、搬家前後的住址、調解的原因與結果……;請想看看,這會是多恐怖的未來?
請各位讀者多思考區塊鏈的目的,以及它基本上不是拿來「辨識個人」,而是辨識「公私鑰的組合」。一個人可以有很多公私鑰、可以用不同的公私鑰做不同的用途;這是區塊鏈自由之所在,但也是各國執法者頭痛之所在。
愛沙尼亞的資訊基礎建設與政策規劃
許多人在談到線上投票或區塊鏈應用時,經常會以歐洲國家愛沙尼亞(Estonia)的「電子化國民」來當例子。事實上,愛沙尼亞整個國家都建立在「X-Road」架構上、也有完整的網路國家政策,包括完整的配套措施、網路政策、以及安全政策等等,同時也符合歐盟對「資料透明度」的要求。
事實上,愛沙尼亞國民並不是只有一組「eID」;若要從事公共事務,他們還可以透過Mobile ID來登入,而這些應用的背後都是完整的規劃。從一個嬰兒出生開始,戶政系統的記錄、投票、就學、醫療、跨境等各種應用,都是透過「跨部會的資料串連與分享」。
這些網路應用,都建構在強大的資訊基礎建設與相關政策之上,並且經過長期累積的成果。
但以台灣的狀況而言,不論公私部門,即使在同一間辦公室裡,從這張桌子到隔壁桌的資訊都不流通;還沒先搞清楚應用的目的,就先被個人資料保護法和資通訊安全管理法給嚇死了,怎麼做進一步的規劃?
歐盟的電子化政府
再來看看歐盟的電子化政府。他們長期規劃的基礎,是從民眾的「生活事件」(Life Events)出發,並且進行長期規劃。
筆者在整理歐盟第一階段(2012-2015)電子化政府行動綱領時,特別注意到他們在所謂「個人資料透明度」的等級上,是以五個等級來判斷一個電子化政府服務的「透明」與「成熟」程度:
成熟度0:民眾完全無法掌握個人資料被誰查詢、或是查詢目的。
成熟度1:民眾只能掌握自己的資料是否被查詢過。
成熟度2:民眾可以掌握自己的資料是否被查詢過、在什麼時候被查詢過。
成熟度3:民眾可以掌握自己的資料是否被查詢過,以及在什麼時間、被誰查詢過。
成熟度4:民眾可以掌握自己的資料是否被查詢過,以及在什麼時間、被誰、以什麼目的被查詢過。
歐盟清楚知道,所謂「透明度」並不是只有政府政務處理程序的透明度,而是人民也可以掌握到自己的資訊為什麼、什麼時候、被誰使用或查閱過。
同樣回到台灣的個人資料保護法,在第8、9、10條中規定民眾可以調閱、刪除、或是更新資料,但必須由人民主動提出申請,而非政府主動進行、或是告知民眾相關的資訊。
你有沒有想過,自己參加了某個單位辦的活動時,或許填寫過問卷和個人資料,那麼這些資料最後都到哪裡去了呢?如果我要求更新或刪除資料,應該如何處理?
歐盟在擬定電子化政府綱領時,每兩年就會主動重新檢視內容,以期更貼近民眾的生活需求;因為只有自民眾的生活出發,才能讓民眾「有感」。
在第二階段(2016-2020)的歐盟電子化政府行動綱領裡,更強調跨境資料的流通、以及電子文件的有效性;所以他們也很努力進行相關規劃,包括eID、電子簽證等事項。
在2017年時,歐盟更決定從民眾需求角度來提供婚姻、撫育子女、舊屋翻新等各種相關服務,而不是以政府部門的業務執行方便為出發點。
結語
台灣政府一直希望汲取國外電子化政府的經驗,以便儘快提供令人滿意的數位政府服務。然而很可惜的,政府一直沒有先瞭解民眾迫切需要的改變是什麼、並且從民眾角度出發來設計最適合的服務,往往只以政府部門方便做事的角度出發;雖然端出了五花八門的大拼盤,但民眾滿意度仍然低迷不振。
我們知道投票、開票過程都需要改善,但只有區塊鏈技術可以應用嗎?還是可以透過其他技術來解決?
如果我們選擇了電子投票,就必須面對投票的隱密與安全問題,而這些是目前的技術可以處理或應對的嗎?如果實體和線上投票並行,要怎麼避免重覆投票?在過渡階段中,要如何減低民眾的不信任與挫折感?
這些方面仍有許多問題要釐清與耙梳,而不能因為某種應用看似方便,就草率的使用這個方案;這甚至是只部份大聲量網路使用者的意見,而非全部利害關係人的意見。
各方當然都可以提出自己的聲音,但仍須從政府、民眾、技術、環境等觀點一一評量,才有再更進一步討論的價值與可行性。