mashbean 黃豆泥
mashbean.eth
豆泥的以太坊地址:mashbean.eth
狀態:未簽名
0x6a482e31e5a83ef7ba9c9795463e6c5e41ead623a84d95641b506380dc55b88a
已簽名表示這篇文章已建立獨特的身分證字號(內容雜湊,contentHash)並且由豆泥簽署認證,簽署是採用以太坊區塊鏈的豆泥專用地址(signer.mashbean.eth)。只要內容一經修改,就會需要重新驗證換發新的身分證字號。但豆泥不是每天都在公所上班,所以偶爾會慢一點認證。

數位皮夾支援「零知識證明」成就達成 🏆
今天完成了我心中數位身分服務的聖杯,也是我去年在數發部的未竟之功,就是成功讓數位皮夾支援「零知識證明」(Zero Knowledge Proof)了,而且實裝成功。(請給我一百個讚!)
更棒的是,原本我以為零知識證明的驗證服務,由於密碼學挑戰的運算難度,很難部署在 Cloudflare 上面。沒想到就掙扎了一陣,竟然成功做到了,而且壓在「免費額度」內,只能再次讚嘆 Cloudflare 容器服務的偉大,不需要自己跑 Docker 之類的。
因此我可以很有自信的說,零知識證明已進入商用化的階段,而且可以「免費部署」,只是比較難一鍵部署,但一鍵部署應該是沒問題,夠簡單了吧。
這是「有備而來」實驗的一部分,目標是透過開放原始碼,打造理想的數位皮夾,並且進行數位身分政策的研究倡議,零知識證明(以下簡稱 ZKP)可說是最難攻克的一環,解決了以後,很有機會打破「身分監管派」與「言論自由派」的對立現狀。
*
說了這麼多,零知識證明什么個什?讓我用簡單、也很迫切需要的案例說明,線上年齡驗證,當然你也可以想像成是社群站台前的檢查。
現在很多國家已經立法強制上年齡驗證,包含英國與澳洲,「身分監管派」大力叫好,他們認為這樣可以保護兒童;而「言論自由派」罵翻不斷,他們認為這會侵犯隱私。這是因為年齡驗證的過程,有可能洩漏個資,此時就是零知識證明派上用場的時候啦。
在現在一般銀行線上開戶 KYC 的過程來說,你需要上傳身分證證明自己。如果組成人網站也要提供身分,那你就得提供證件上面的所有資料相對方,這樣對方可能就把你的「個資」+「性癖」連結在一起,然後拿走你的名字都不會知道。
而現在台灣數發部提供的「數位憑證皮夾」,支援了選擇性揭露(Selective Disclosure)的功能,皮夾的系統幫你把證件的每一個欄位都獨立出來,讓你可以把提供上面的出生日期,而不用提供其他資料,就可以證明你成年,這樣你的名字才不會連帶起來。
但更在乎隱私的人會想說,我連生日都不想給,那怎麼辦?這時候就是 ZKP 派上用場的時候了。ZKP 透過各種神秘可證的密碼學裝置,讓你可以不用洩漏生日,就可以回答是否成年(比如否大於 18 歲),你可以在我做好的示範網頁看到流程,設計上是設定一個機敏,然後就可以用持有的卡片來驗證。
*
不過目前實務上有兩個困難。
一個是 ZKP 由於需要大量的運算,所以無論是手機或驗證端(比如我的電腦、或架設的伺服器)都需要不少資源。與「選擇性揭露」相比,運算所需要等待的時間從數秒到數十秒都有可能,因此要客戶、公民等這段時間,他們可能已經沒耐性了。
使用者體驗設計是 ZKP 接下來必須克服的難題,真是令人躍躍欲試呢。
二來是目前官方已經發布的卡片,如門號驗證卡、駕照驗證卡、工商憑證驗證卡等等的,都沒有出生日期,因此沒辦法直觀的做成年齡驗證;另一個問題是,這幾張卡好像有限定使用場景(對的,我還在等作業要點來驗證這件事),不過我自己做實驗的過程中是還違反太多限制,其實駕照的話,可以從「失效日期」往回推出一個人的生日,因為駕照會在你 75 歲生日時到期。
為了解決這個問題,其實我自己設計了一個「數位身分證」(本來取名叫做 New-new-eID,但不少人跟我說這樣取名不太吉利)。這個身分證是從 MyData 把身分證資料抓下之後,自己用行動自然人憑證簽發的,細節之後會專文分享流程。在這邊姑且簡稱之,有了身分證資料,其實就可以證明很多事情了,包含成年與否、是否為台灣人、甚至是否為本人。
而 ZKP 就很適合回答這些問題,而且最大化的保護隱私。
*
去年職時,其實有點難想像我可以獨力完成 ZKP 驗證實驗。這一年來,數位身分的基礎設施其實完善很多,其中一個就是 ZKP 快速成熟。這次我使用的是以太坊基金會 ZKID 小組開源的模組(尤其感謝 EF 的 Vivian、Moven、Nicole 與 Zoey),與此同時,Google Wallet 的小組也開源了自己的 ZKP 模組 Longfellow,之後有時間再來做測試。
如果總算我都可以把通往隱私數位身分的最後一里路打通,我可以合理推測,各國會慢慢導入 ZKP 服務,因為這種強隱私的使用情境,會與剛剛提到的選擇性揭露不太一樣。有點想想想對比,之後再寫一篇文章分析。
總之,今天的兩大里程碑分別是:
當然,以上兩項都已開放原始碼,無論是誰都可以免費取用。
如果對於數位皮夾支援 ZKP 的開發歷程與實驗數據有興趣的朋友,歡迎點開我的「難題:有備而來」系列文章,今天就到這邊嚕。