作者concise (js餡鍋)
看板NTU
標題Re: [校園] 選舉疏失與相關後續處理
時間Fri May 30 14:14:07 2014
※ 引述《windhong (登登)》之銘言:
: ※ 引述《a5378623 (黑雲)》之銘言:
: : 公開原始碼的用意,除了找義工免費幫你修正外,更重要的是讓整個機制公開透明,進而
: : 讓大眾「監督」選舉流程。
: : 不要說你忘記,就算你在「當天早上」修正完有記得修改,這也和黑箱沒有兩樣。你以為
: : 誰會有時間,24小時盯著你的網頁看你有沒有偷偷修改內容?
: : 說到底,投票系統「根本就應該提早完成,並且經過學代監督」而不能概括授權。
: : 這其實和服貿很像,立法院同意行政院去簽服貿,不代表可以隨便簽,甚至是讓你「任意
: : 修改服貿內容」,這是絕對不允許的!擅自修改內容這樣的行為,比30秒黑箱更過分!!
: 公開原始碼基本上是為了debug,讓大家檢視這個程式有沒有問題,
: 甚至在公開的程式原始碼基礎上,進一步發展新的功能。
: 開源能做的,是透過熱心的參與者,
: 確保程式1. 功能是否正常 2. 安全性是否無虞。
這就是開源的美好之處,透明公開化,讓對事物有興趣的人們能夠去檢驗、修改之。
: 但如果要確保程式不影響選舉的公平公正,除了程式本身的漏洞之外,
: 還要再處理一個環節:就是確保投票過程中,選務程式版本一致,
: 也就是投票開始前、投票中、結束後需要檢查程式沒有被更動。
: 因此,只要有人能夠確認這點,那麼這個部份才沒有問題,
在此小魯想要對這點提醒一下,
今天我們能看到的 5/28 這種簡化版的電子投票運作方式,
是「不可能」對外人『證明』某一段時間 server 一直在跑的程式
確實就是哪一個版本的程式碼,真的一模一樣完全沒有任何的加料、修改。
這件事永遠都只可能是內部參與的人才能夠確實掌握而已。所以不用考慮怎證明了。
因為不能證明,其實也不用太認真去考慮怎樣說明了,
因為就算講了,人們也可以不去相信。(當然良心上來講都是該意思意思地解釋一下)
於是,對於「公平公正」,真正的重點不應該是擺在程式的版本上。
這種系統在開發上來講,至少需要有兩個階段、兩個性質完全不一樣的元件的開發。
一個元件就類似是我們今天可在 GitHub 看到的,那些基本的處理 user input 的功能,
另一個重要的元件是來自密碼學家所研究提出之安全的投票協議。(我們還沒有)
重點應該先放在把程式想要實作的那個核心的「數位化投票」的協議邏輯給做好。
這核心的演算法,相較於各種 front-end (只是一些資料的處理 for user/server) 來說
是很單純、少量的(雖然較難懂),這一部分特別需要讓熱心參與的人仔細地好好檢視。
雖然比較辛苦,但只要這個核心在「open」的情況下讓人們檢驗、判定無虞、
提供了一些最基本的應能夠被「證明」的特性以後,我們撰寫的別的部分的程式碼當中
那些 user front-end 、 service front-end 等各種細節的 bugs 就算不小心發生了,
也不會對系統運作造成嚴重的影響。這樣子的系統才夠 robust ,亦是應該努力的方向。
附註一下最後敘述到的所謂「嚴重的」影響,係指:
* 發生了不合理的錯誤,人們無法立即或事後發現,並且嚴格地證明之。
* 系統發生的某個錯誤,無法被侷限在最小損害範圍內。
(一張票的錯誤、一個人預期外的行為,不該影響其他人的選票、或者系統的運作)
* etc.
這種程度的情況。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.25.100
※ 文章網址: http://www.ptt.cc/bbs/NTU/M.1401430449.A.E6D.html
※ 編輯: concise (140.112.25.100), 05/30/2014 14:29:43
→ windhong:嗯,沒辦法就server的讀寫紀錄做檢查嗎? 05/30 14:52
→ windhong:我只懂個大概輪廓,並不是專業,對技術問題並不理解 05/30 14:58
嗯,當然可以檢查!
但是,普通的 server logging 是給開發人員、背後辛苦的工程師看的,
他們檢查記錄可以用來確認系統運行是不是出錯了,用來決定是不是要修正什麼地方。
他們當然也完全可以明白、確信這個系統究竟是否為完全公正、公平的。
但這些記錄對於我們來說沒有任何意義;若 server 端有能力自行偽造記錄,
該記錄就不能夠用來向我們這些沒有辦法直接接觸到伺服器的外人「證明」什麼。
如果要讓某筆 data 對外人有意義,就要有數位簽章之類的欄位在上面,
用以證明某一筆資料真的就是產生自某一個選民與該伺服器互動的結果。
為了要達到這件可證明性又要同時維持投票人的匿名性,神奇的密碼學就派上了用場。
不過,如果人們比較不 care 「公平公正的證明性」。
把一切全權交給舉辦方,完全信賴他們的話,而舉辦方也完全公正主持,
這樣的世界當然是更簡單美好的,要做出這樣子的選舉機制,一切也都會變得比較簡單。
※ 編輯: concise (140.112.25.100), 05/30/2014 15:14:38
→ windhong:感謝說明! 05/30 15:13
→ windhong:不過您補充的第四段基本上是不可能的@@ 05/30 15:23
推 tbbhwinh:推詳細 05/30 16:00