Logbot

#g0v.tw
AUTO⬇
  • 05:21:11 g0vtelegrambot <> Hello
  • 06:11:06 🅣 gugod M3tf@: hi
  • 06:33:51 ⓢ acechen 還有「新竹物流」(不知道算不算)
  • 08:34:25 🅣 M3tf@ Hi
  • 13:57:46 ⓢ linroex 想問一下大家,我最近在規劃學校學生會的電子投票,我們遇到一個問題是如果有投票者投完之後跑來,堅持他投給A候選人,可是機器卻顯示B候選人,我們該怎處理比較好O_O 因為選舉本身的匿名性,我們其實無從判斷他到底投給誰
  • 13:57:51 ⓢ linroex 不知道在這裡問合不合適XD
  • 14:04:47 🅣 mmis1000 怎麼確認投票者身份的啊?
  • 14:07:02 🅣 mmis1000 如果已經盡到防止被冒名投票的義務,那無視就好了?
  • 14:14:17 🅣 othree 選舉是匿名的話,他怎麼知道他的票是錯的
  • 14:16:47 🅣 mmis1000 在伺服器無法直接知道這張票是誰的的情況下,證明這張票是你的,理論上可能吧?
  • 14:17:02 🅣 mmis1000 不過一般應該不會做到這麼複雜?
  • 14:19:17 🅣 othree 理論上可能,可是這就像是你的密碼沒加密一樣
  • 14:19:47 🅣 othree 使用者看的到他自己的票,他不會懷疑系統實際上是非匿名的嗎
  • 14:21:27 ⓢ dirty 這是已經發生了, 還是假設的問題?
  • 14:23:28 ⓢ dirty 我覺得就是投完後給一個亂碼, 自己之後想查的話, 可以把這個亂碼記下來, 但不提供線上確認的服務
  • 14:25:01 ⓢ ronnywang 之前有跟朋友技術討論過這些問題,我自己是覺得電子投票要能做到匿名但是又讓投票者可信真的很難做到
  • 14:25:42 ⓢ ttcat 區塊鍊?lol
  • 14:26:18 🅣 mmis1000 就算是實體投票都一堆爭議了
  • 15:23:08 ⓢ lanf0n 原問題的情況就怪怪的吧......如果是匿名的話系統上跟投票者 *應該* 查不到才對啊....
  • 15:25:33 ⓢ lanf0n 另外問一下 ls 有類似 jsdoc 的 document generator 嗎QQ
  • 15:31:36 ⓢ ronnywang 實體投票除非自己蓋錯,要不然你蓋幾號你很確定那張投票紙上就是你的選項。但是電子投票你無法確定你投了A時,實際上後面票被記在B上面這種事不會發生,除非放棄匿名性讓之後可以查到自己的投票記錄
  • 15:33:03 🅣 mmis1000 匿名性是別人查不到吧,並沒有說到自己查不到?
  • 15:34:33 🅣 mmis1000 不過無論怎樣,都很難確定主辦方是否監守自盜
  • 15:35:18 🅣 mmis1000 畢竟沒有實體,被竄改也死無對證
  • 15:40:11 🅣 S_ean 票名 = hash(學號 + salt₁ + 身份證);
  • 15:40:11 g0vtelegrambot <S_ean>
  • 15:40:11 🅣 S_ean 修改用密碼 = hash(學號 + salt₂ + 身份證);
  • 15:40:11 g0vtelegrambot <S_ean>
  • 15:40:11 🅣 S_ean salt 設計成只有程式能讀;
  • 15:40:12 🅣 S_ean 不能線上修改,只能直接去找管理員;
  • 15:40:12 🅣 S_ean 密碼在完成投票後顯示,不可再持續;
  • 15:40:13 g0vtelegrambot <S_ean>
  • 15:40:13 🅣 S_ean 這樣有漏洞嗎?
  • 15:41:03 🅣 mmis1000 有,這樣票是誰投的,管理員就能輕鬆看到了
  • 15:41:36 kcwu 技術上(密碼學)應該可以讓自己能 verify, 不過一般人不容易理解, 沒辦法信任
  • 15:41:48 🅣 mmis1000 票名至少有一個,必須是user掌握,而且管理員看不到
  • 15:42:18 🅣 S_ean 用 user 的 PGP key 簽吧 (誤
  • 15:42:48 🅣 seadog007 如果有人逼你查給他看呢?
  • 15:43:19 🅣 seadog007 傳統投票沒這問題
  • 15:43:20 🅣 othree 完全匿名化的 raw data 送他
  • 15:45:48 🅣 mmis1000 seadog007: 查詢限實體站點啊
  • 15:46:18 🅣 mmis1000 有種就跟去警察背後找碴
  • 15:47:07 ⓢ ronnywang 只是如果個別查都可以查到自己投誰沒問題,但是最後加總的地方搞鬼呢 XD
  • 15:48:48 🅣 mmis1000 所以還是需要公正第三方認證啊
  • 15:48:55 kcwu 完全匿名化的 raw data 公布, 大家可以查自己的票有沒有在裡面, 也可以自行加總
  • 15:49:33 🅣 mmis1000 問題在於,要怎麼知道有沒有多出票
  • 15:49:37 kcwu (我不想處理被迫查票的 case)
  • 15:49:39 ⓢ ronnywang 但是如果再參入一些幽靈票進去,這些幽靈票也是匿名的
  • 15:49:50 🅣 S_ean 即使顯示結果,提供 API 、票數圖表
  • 15:49:51 g0vtelegrambot <S_ean>
  • 15:49:51 🅣 S_ean 投票後可以查自己投的有沒有加票數
  • 15:51:18 ⓢ ronnywang 即時顯示結果也滿可怕的,這時間點只有一個人投票,然後即時結果的票就變了,我就知道他投誰了
  • 15:51:33 🅣 mmis1000 只要是線上投票,都要處理管理員自己灌票的狀況
  • 15:52:03 🅣 mmis1000 但是幾乎無解
  • 15:52:33 🅣 mmis1000 除非真的搞成btc那樣
  • 15:54:16 kcwu 還要公布誰有來投票, 以學生會的例子比較簡單, 用學號. 如果是身分證號的話就不太可行, 一般人沒辦法查那個號碼是不是 valid
  • 15:54:18 🅣 seadog007 blockchain驗證喔
  • 15:56:35 🅣 mmis1000 所以線上投票需要
  • 15:56:36 🅣 mmis1000 別人無法知道那張票是你的
  • 15:56:36 🅣 mmis1000 你可以查到你自己投給誰
  • 15:57:04 🅣 mmis1000 主辦能知道那些人有投票
  • 15:57:05 🅣 mmis1000 主辦無法自己灌票
  • 15:57:33 🅣 mmis1000 其實也才4個條件
  • 15:57:48 🅣 mmis1000 但是全部符合好像很難
  • 15:58:13 kcwu 大家知道誰有投票, 如果 group 不是太大, 就能讓主辦不能灌票.
  • 15:59:11 ⓢ ronnywang 傳統投票還有一個要求叫秘密投票,就是我無法跟別人證明我投給了誰(所以投票所內禁止亮票,禁止攝影) ,這是為了防止賄選可以用證明自己投了誰來拿錢... 這點電子投票可能完全只能放棄
  • 16:01:18 🅣 mmis1000 不能查的話,就無法確認主辦有沒有在票動手腳了
  • 16:01:33 🅣 mmis1000 這跟第四點衝突
  • 16:01:35 kcwu 在投票時, user 要輸入選項及一個 random token. 開票時, 要公布 token 跟選項的 list. 還有有投票的名單.
  • 16:02:33 🅣 mmis1000 但是能線上查又有亮票問題
  • 16:02:57 kcwu 每個人可以 download full list, offline query
  • 16:04:48 🅣 mmis1000 有人可以證明符合以上全部條件,在邏輯上有沒有衝突嗎?
  • 16:10:34 🅣 seadog007 mmis1000: 定點查
  • 16:11:49 🅣 seadog007 然後定點投票?
  • 16:11:56 ⓢ ronnywang 定點查的話,我把我的 random token 給別人查呢?
  • 16:12:34 🅣 seadog007 g0vircbot: 這也是個問題
  • 16:12:49 🅣 seadog007 除非有方法驗證是本人
  • 16:13:49 🅣 seadog007 可是生物特徵資料庫數據太少了
  • 16:14:05 ⓢ ronnywang down full list, offline query 聽起來不錯,讓 admin 擁有的資訊跟大眾擁有的越接近能惡搞的就越少
  • 16:15:37 kcwu 如果是在開票之後被迫, 你可以謊報別人的 token; btw, 我不喜歡定點查, 天知道那台電腦有沒有問題/被監視
  • 16:16:38 ⓢ ronnywang 但是要如何防止 admin log 每一張票的投票時間,再搭配報到時間的時間差來推算出原投票者投了誰
  • 16:19:43 kcwu 這題聽起來密碼學要上場了
  • 16:20:10 ⓢ ttcat 更重要的問題是如何防止 admin log 每一個使用者的 token 跟他投票的紀錄直接就可以知道是誰投票給誰了。
  • 16:22:19 🅣 mmis1000 無法,你只能信任網站
  • 16:23:19 🅣 mmis1000 真要這則做,投票時明碼側錄就好了,根本沒必要這麼麻煩
  • 16:26:19 🅣 mmis1000 這些討論的前提是,就算資料庫整個被幹走,你都無法知道到底誰投誰,並不考慮程式碼自己被動手腳的狀況
  • 16:26:55 ⓢ ronnywang 我倒覺得邪惡的 admin 也是討論內的範圍耶 XD
  • 16:27:28 ⓢ ttcat 我覺得不是誒,這個討論的前提是不信任 admin 的情況吧。否則的話只要 admin 不 log 就不會有問題了啊。
  • 16:27:34 🅣 mmis1000 把admin討論進去應該又更複雜了吧
  • 16:28:05 ⓢ ronnywang 像 kcwu 提到的投票時,input 只有 random token 和投給誰兩個,主要目的就是 admin 只會記錄到 random token 但是不知道這個人是誰
  • 16:28:53 ⓢ ttcat 事實上還是會知道是誰誒
  • 16:29:12 kcwu 邪惡 admin 要 auth, 所以會知道是誰
  • 16:29:34 🅣 mmis1000 時間差攻擊一般有解?
  • 16:30:05 ⓢ ttcat 分成兩部分處理呢?第一個部分只有投票過程,每一個 user 有一個自己才知道的 token 不用 sumit,然後在本地端用這個 token 跟投票選項算出一個亂數的驗證密碼上傳。這一份投票 list 也是所有 client 都有一份 copy,所以投票過程無法竄改。也沒人知道誰投給誰,admin 只知道誰有來投票。
  • 16:30:06 ⓢ ↵ 第二部分就是要開票的時候,用分散的方式,user 把自己本機的 token 交給自己信任的人 or 單位集中(不限方式)然後去公開,完整公開後大家都可以下載計算總票數。
  • 16:31:01 ⓢ ttcat P2P 的方式去公開的話就可以用公用網路的 ip 無法 trace back 誰丟出了這個 token
  • 16:31:10 ⓢ ronnywang 不然就是投開票所當地一切設備都不准連上網路,最後投完票結果的資料只能通過一顆 16MB 的隨身碟把 full list 帶出來,其他東西和設備一律燒燬,然後這個 full list 是完整公開的 XD
  • 16:32:07 ⓢ ronnywang 確保 admin 跟大眾得到的資訊是一模一樣的,admin 無法多 log 東西
  • 16:32:24 kcwu ttcat: user 送給雙方不同 token 就麻煩了
  • 16:34:56 ⓢ ttcat @kcwu 應該是用公鑰私鑰的方式?client 產生的 token 跟他 submit 到 vote list 的那個紀錄是相對的可驗證的。然後一的 key 只有對應一張票可以被解鎖。這樣就算一個 user/單位 收集很多 key 同時公開也無所謂。
  • 16:35:19 🅣 seadog007 g0vircbot: 那怎麼知道誰有投
  • 16:36:19 🅣 othree 可以投票用另外一套機制,驗證有投票資格就好
  • 16:38:49 ⓢ ttcat 第一部分è¦�投票那邊就è¦�驗證使用者 => 通é�Žäº†æ‰�å�¯ä»¥æŠ•ç¥¨ï¼Œæ‰€ä»¥ç¬¬ä¸€éƒ¨åˆ†ç„¡è«–如何都「å�¯ä»¥ã€�知é�“誰有來投票,所以è¦�匿å��的話,就è¦�用 admin 無法解開的密碼瞞ä½�第一部分的這個 admin 投票內容。也為了防止 admin 竄改,自己å�‡é€ è©² user 的投票çµ�果,所以è¦�把 list open 讓æ¯�個使用者都有備份,å�¯ä»¥é‡�複驗證。user 用自己æ‰�知é�“çš„ç
  • 16:38:50 🅣 gugod 目前一般實體的投開票也算是匿名。在打開票匭之後,投票人也無法在事後識別自己的票是哪一張
  • 16:38:50 🅣 gugod
  • 16:39:49 🅣 seadog007 gugod: 但是票在那裡可以查
  • 16:39:53 ⓢ ronnywang 只是實體的使用者可以確定他的票是他投的結果,不會被邪惡 admin 修改
  • 16:40:17 ⓢ ronnywang 除非有壞人在投票時直接在票箱丟入紅墨水
  • 16:40:19 🅣 seadog007 電子容易被黑箱 所以要使用者自己查
  • 16:41:04 🅣 gugod 所以變成要實做的是 blockchain / bitcoin ?
  • 16:41:06 ⓢ ttcat 不過第二部分開票的地方就會遇到一樣的問題。如果我把我剛剛要瞞 admin m 用的那把 key 上傳到某個地方,那台 server go evil 的話,他就會知道我是誰、我的 key 是什麼、我投給了誰。所以才說如果用開放分散式的開票方式,這樣基本上不會有一個中心伺服器也無法紀錄是哪些 ip 進來丟 key。
  • 16:43:49 🅣 gugod 用 bitcoin 實做投票 => 每個選項建一個錢包。轉帳 0.01B 過去便等於投票。加上額外的機制去拒絕 0.01B 以上或多次的轉帳。
  • 16:44:18 ⓢ ttcat 我不曉得 blockchain 實際上程式是長怎樣誒,只聽過概念 XD
  • 16:44:19 🅣 gugod (假設 bitcoin 驗證真身的機制是可以理解而被信任的..... XD)
  • 16:44:49 ⓢ ttcat (聽說是任何一個區塊被修改整個鍊都會長得不一樣?)
  • 16:46:24 ⓢ ronnywang 就我了解 bitcoin 的交易記錄是公開的,也就是帳號A給帳號B多少錢都是絕對可以查的到,他的匿名性是做在你不知道帳號A和帳號B對應到現實上的誰?
  • 16:47:58 kcwu bitcoin 的匿名性其實要許多條件才能辦到, 而且是不是可靠還很難說(research topic).
  • 16:48:57 ⓢ ttcat 電子的匿名性太難了
  • 16:49:19 ⓢ ronnywang 匿名不難,難的是又要匿名又要一人只能投一次 XD
  • 16:49:20 🅣 othree bitcoin 記得佔有超過某個比例的運算量就會被操控了
  • 16:49:34 🅣 gugod ttcat: 交易記錄的驗證是的把整串交易歷史的 hash。所以一般不那麼容易偽造。有個說法是要很多錢包一起偽造。
  • 16:50:34 🅣 gugod 單一實體人如果對應到整個網絡中的 50% 就有較高的可能去偽造交易歷史
  • 16:51:19 🅣 gugod ronneywang: 帳號A /B 對應到現實中 A’ B’ ==> 這部份是要公開的,還是 A B 本人知道就好?
  • 16:51:25 ⓢ ttcat 我剛剛又想到如果真的要追查特定人投票給誰,admin 還是可以在開票之後再從 open 的 key 去追回去誰投給誰。
  • 16:51:29 ⓢ ttcat orz...
  • 16:51:56 ⓢ ronnywang 假設 A1, A2, A3, A4 ... 是投票人 B1, B2, B3 ... 是候選人
  • 16:52:14 ⓢ ronnywang 那 A 對應到現實的誰應該只有 A 本人能知道,而 B 則沒差
  • 16:53:59 ⓢ ronnywang 一開始 A1, A2 ... A2300萬 每人發0.01bitcoin ,然後他們自行把錢轉給 B1, B2 ... 等候選人,最後看誰錢多的贏,這應該是 bitcoin 模式吧
  • 16:59:50 🅣 seadog007 othree: 51%
  • 17:00:25 kcwu bitcoin 可以交易到其他人手上, 可以分割合併, 所以轉手很就很難追. 選票要做的話, 就是就要一堆人沒事跟人 exchange 選票(透過程式自動化)
  • 17:01:36 ⓢ ttcat 對,這是一開始想像的,但是剛剛在想的是說,一定會去驗證 A1, A2 … A2300,的帳戶有沒有 0.01,驗證有才讓他們轉帳。這個驗證的過程是不是會有人紀錄誰是誰?或是預先發錢的那的地方?單位?是不是有辦法 trace 哪個帳號對應誰?
  • 17:01:56 ⓢ ttcat @kcwu 交換選票是好主意 XD
  • 17:03:37 * kcwu 不覺得一般人有辦法理解+相信+實作 bitcoin model
  • 17:03:50 🅣 gugod [不考慮 bitcoin 的話] =>如果投票資料是集中處理,那也許就是定時公開累積性的資料進行驗證。 匿名性一樣定義為「本人可以識別自已的票,但難以識別他人的票」。
  • 17:05:20 🅣 gugod 「累積性的資料」指的是中途得票分佈之類的...
  • 17:05:47 ⓢ ronnywang 但是選票如果能交換的話,我就直接把我的票賣給賄選者就好了
  • 17:07:05 🅣 gugod 這樣子應該可以用 public/secret 處理匿名識別。
  • 17:07:05 kcwu 規定只有候選人能 1:0 交易, 其他人只能 1:1 交易
  • 17:07:55 * kcwu btw, slack 跟 telegram 都可以看到 irc 的 action 嗎?
  • 17:08:20 🅣 gugod 但這樣也不容易識別 admin 灌票
  • 17:09:20 🅣 gugod kcwu: telegram 的狀況: https://ipfs.pics/QmRD5YytLTUYmxp11MUY9YkEtfmwoVbEAHg71D2WECPFZx
  • 17:09:22 kcwu g0vtelegrambot's url: [A picture hosted on the permanent web]
  • 17:09:35 🅣 gugod 好像算是「可以看見 action」那一邊 😆
  • 17:12:35 🅣 gugod 之前提 bitcoin 主要也只是他有個「群眾驟證」的過程(雖然對使用都來說是不明顯的)
  • 17:13:23 kcwu ronnywang: slack 上可以看到我的 action 嗎?
  • 17:13:39 ⓢ ronnywang Slack上看不到
  • 17:16:22 kcwu ok, issue created https://github.com/g0v/slack-irc-plugin/issues/5
  • 17:16:24 kcwu kcwu's url: [slack 上看不到 irc 的 action · Issue #5 · g0v/slack-irc-plugin · GitHub]
  • 19:22:10 ⓢ ttcat @tkirby: 投稿數據視覺化還順利嗎 XD
  • 20:57:44 ⓢ ipa @yhsiang: @mrorz 如果可以的話,每個講題的 permalink 希望早一點可以出現,這樣貼議程宣傳可以加在文末 <https://github.com/g0v/summit.g0v.tw/issues/165>
  • 20:57:45 kcwu slackbot5's url: [每一個 talk 的 permalink · Issue #165 · g0v/summit.g0v.tw · GitHub]
  • 21:33:27 ⓢ caasi linroex: 想起以前看過這些討論 <https://g0v.hackpad.com/LiquidFeedback--ggBlvqzmtcW>
  • 21:33:30 kcwu slackbot5's url: [LiquidFeedback 堅持「公開透明」就一定與「秘密投票」原則衝突嗎? - g0v.hackpad.com]
  • 21:41:17 ⓢ caasi linroex: 還有這篇! <http://blog.clifflu.net/blog/2013/06/%E8%AD%AF%E6%96%87-%E5%A7%94%E4%BB%BB%E6%8A%95%E7%A5%A8%E9%81%8B%E4%BD%9C%E5%8E%9F%E7%90%86/>
  • 21:41:18 kcwu slackbot5's url: [[譯文] 委任投票運作原理 | clifflu 又架 blog 了 O.o/]
  • 22:19:27 🅣 seadog007 請問一下 g0v的英文要怎麼念XD g zero v
  • 22:19:28 🅣 seadog007 這樣嗎
  • 22:19:49 ⓢ yhsiang "gov zero"
  • 22:20:11 🅣 seadog007 好喔w
  • 22:40:06 ⓢ ipa seadog007: <https://blend.io/etblue/jingle>
  • 22:40:09 kcwu slackbot5's url: [Jingle made with GarageBand by ETBlue : Blend]
  • 22:54:50 ⓢ etblue XDDDD
  • 23:14:28 ⓢ linroex 感謝大家XD 本來是有想要做完全線上投票,但後來覺得太多問題無法顧到,所以這次是打算先用實體投票但背後用電腦計票
  • 23:14:38 ⓢ linroex 是尚未發生的問題,只是有先想到這個可能性
  • 23:15:45 ⓢ linroex 我們打算的做法是讓大家先認證身份,拿授權碼,之後用授權碼去投票,授權碼跟身份是分開的,這樣可以保障匿名性。投完票之後會列印出實體單據,投票者只能看不能帶走,他會自動跳進票箱做備援驗證用
  • 23:16:58 ⓢ linroex 至於本來提出的問題,我後來想到或許用不對稱金鑰可以解決,只有投票人可以解開他的票並檢視他投給誰,所以他今天如果有質疑,他可以用他的key把票解開來證明系統有錯(用實體收據+系統記錄相互驗證)
  • 23:17:34 ⓢ linroex 這個驗證可以交給電腦處理,這樣就可以避免「人」會知道投票者投給誰的問題
  • 23:18:00 ⓢ linroex 不過最後問題就變成是... 計票程式的程式碼誰來驗證XD
  • 23:18:50 ⓢ linroex 然後來讀一下大大的文章,感謝大家的幫忙XD
  • 23:28:14 🅣 S_ean 看有沒有公正單位讓你們只能用 git push code 上去,在 push 時發無法取消的公告/發信給訂閱者
  • 23:28:14 🅣 S_ean 這樣應該可以證明開發者的公正
  • 23:31:28 🅣 gugod 應該有把投票變成是一種協定的發想吧。讓發票、收票、計票都是不同團體來進行之類的。
  • 23:40:47 ⓢ linroex 我覺得協定是不錯的方向
  • 23:40:58 ⓢ linroex 不然電子投票要達到現有投票各項特性真的很難

Date: