文章
技术

全民公投系统设计 / 如何不可复制地证明自己是某国人?

thphd  ·  2021年4月1日 2047前站长

We believe the best way to increase awareness and participation of political activities in autocracy regimes like P.R.China is to increase its residents' ability to perform various democratic routines such as voting.

Voting is hard because traditionally:

  • it's expensive to verify every voters' identity.
  • it's impossible to prove that no fraud/mistake occurred in the process.
  • it's expensive to hide the voters' choices from public.

目前最大的困难是身份验证。我们必须实现一种身份验证机制,以确保在一次投票中:

  • 投票人必须(99%以上概率)是中华人民共和国公民。在未获许可的情况下,很难(1%以下概率)冒充其他公民的身份。
  • 同一个公民身份多次投票应可被区分并视为无效(类似于投票站在选民册上划线)
  • 第三方最多只能知道投票人进行了身份验证,但无法确定投票人究竟投了什么票(赞成/反对/弃权),从而无法追究投票人的责任。

投票流程初步设计如下:

  • 用户通过某种方式,公开地、不透露其他隐私地、不可复制地证实自己确实是某身份证号码的持有者,也即生成一个proof of identity.
  • 用户生成密钥对,将公钥与身份证号码一起公开,再用私钥对上述proof进行签名并公开,以证明该密钥对确实由该身份证号码持有者持有。
  • 用户利用私钥签名登陆投票网站,登陆时上传或告诉网站在哪里可以获取他的公钥、身份证号码和proof of identity。
  • 投票网站用自己的私钥,为每个用户签发proof of participation; 该proof of participation包含投票的标题和选项等信息,以及proof of identity
  • 用户持proof of participation,通过某种只可得知投票结果、不可得知每个人投票选项的算法进行投票。为方便起见,投票网站应直接实现此功能,而不借助eth等分布式平台。
  • 投票截止时间到达后,投票网站宣布投票结果。公开所有数据,任何人可独立验证所有proof

核心问题:如何不可复制地、不依赖官方合作地、不透露隐私地证明自己是某国人?

菜单
  1. thphd   2047前站长

    case study

    新品葱最知名的一次活动是全球华人学生晒毕业证封面支持理大。事后国内社交媒体有人评论说毕业证是可以买的,说明毕业证不是一个好的proof of education.

    仅出示毕业证封面:

    • 可复制;同一张毕业证可以拍很多张照片
    • 可伪造

    出示毕业证公章:

    • 可复制
    • 依赖官方合作

    出示毕业证全文:

    • 依赖官方合作
    • 透露隐私

    除此之外,因为留学生大部分没有入籍,proof of education不等但近似于proof of nationality.

  2. thphd   2047前站长

    护照

    生物识别护照(Biometric Passport,https://en.wikipedia.org/wiki/Biometric_passport)芯片内部是有私钥的,所以只要有对应的公钥,理论上我们可以用中华人民共和国护照+NFC读卡器,实现由第三方验证的全民公投。

    绝大部分国家的公钥都在ICAO的Pub key directory里面,包括中华人民共和国:https://en.wikipedia.org/wiki/International_Civil_Aviation_Organization_Public_Key_Directory

    https://download.pkd.icao.int/download

    其他国家的入境处,就是通过这些公钥,去验证各国护照内部的私钥,以防止伪造的。

    需要有NFC读取护照经验的网友帮忙。

  3. 狼狼醬 耶渣
    狼狼醬   私信可以,但我保留你亂罵的時候公開私信的權利。不算好的基督徒,深信左右都是膠的港獨。

    我建議這樣:選民登記系統以聲紋和其他個人資料生成一串不重複的字串,然後投票前向使用同一算法的驗證系統重新填入相同資料(即時錄音),如果是同一人的話,生成的字串就會一樣,於是就取得限時內的權限投票,傳送的時候不記錄字串。

    我的腦洞大概是這樣。可能迷霧通的付款方式會比較值得參考。

  4. 邹韬奋 外逃贪官CA
    邹韬奋   虽然韬光养晦,亦当奋起而争(拜登永不为奴:h.2047.one)