mashbean 黃豆泥
mashbean.eth
豆泥的以太坊地址:mashbean.eth
狀態:未簽名
0x930eb3c429bdca28e4d59e914e9983b1e0ccc8dce771a7903037fc9a87e45fd3
已簽名表示這篇文章已建立獨特的身分證字號(內容雜湊,contentHash)並且由豆泥簽署認證,簽署是採用以太坊區塊鏈的豆泥專用地址(signer.mashbean.eth)。只要內容一經修改,就會需要重新驗證換發新的身分證字號。但豆泥不是每天都在公所上班,所以偶爾會慢一點認證。
完成數位皮夾「監測儀表板」與「請收下卡片」,意外發現官方羊羊卡、多莉卡、薯條卡?XD
暨完成可以一鍵部署的「請出示皮夾」之後,也順手開發了「請收下卡片」的發行模組,同樣可以一鍵部署,並且與你的既有資料庫聯動,同樣因為可以零嚕 Cloudflare,建置成本為 0。
本來有點興趣缺缺,懶得做「請收下皮夾」,因為這會牽涉到發行、信任清單、撤銷列表等等的模組,而且數發部官方的「數位憑證皮夾」 App 在沒有申請正式介接的情況下,是吃不到民間自行發行的卡片的,所以有點麻煩。(有備而來 App 倒是原生就可以吃,不過還在考慮會不會正式上線)
不過因為有臉友來敲,很真誠地想要解決一些職安服務的困難問題,我雖然建議他直接洽詢皮夾官方客服(這本來就是他們的工作!),不過也好奇要發卡的話,實務上需要多少成本。結果驗證下來,不算工錢(也不算 AI token)的話,可以壓到 0 元,就順手開源服務了。
不過這倒不是今天要分享的,走完這一輪,我發現官方釋出的資訊藏在各種地方,官網也沒有把所有我認為該揭露、該整合的資訊匯聚在一起,所以我就順手做完了,我做了一個:
數位憑證皮夾生態系「監測儀表板」
是不是可以得黑客松獎項了XD
這個儀表板日更,紀錄了API 健康度、信任清單、區塊鏈上的信任清單同步、撤銷清單,以及 Github 更新的時間還有回 Issue 的狀態。
*
先講有趣的,做完以後有一些有趣的發現。
撤銷清單透露了非常多有意思的資訊。
比如三大電信的門號驗證卡都有大量的撤銷紀錄,冠軍是台哥大,已經撤銷了 9,536 張卡片,中華加上遠傳只有台哥的一半不到,因此我們可以逆推,台哥大發卡量有多大(甚至月租卡也有發)。
駕照驗證卡抓不到撤銷清單。
然後意外抓到這咖股份有限公司(Jcard)發了一堆中新興村花漾卡,有門卡、會員卡、集點卡,不知道在玩什麼花樣?Jcard 背後有宏碁投資,感覺是數位皮夾特意找了實體場域來合作(?),然後資服業者是 Jcard。不過撤銷數字為 0,猜測還沒有正式服務上線。
雖然我對 Jcard 的印象只有沒什麼人在買的元宇宙 NFT,不過現在還有人在討論 NFT 嗎?
此外從撤銷清單可以發現,許多大學有在數位皮夾支援學位證書卡,包含台大、成大、台科大。我的母校中國醫大竟然也有發教職員數位證件卡,中國醫大何時這麼先進了我都不知道,真棒!
還有我沒什麼在關注,但可能已經上線的卡片還有工商憑證、教育部的助學補助系統登入識別證、中華電信企業分公司訪客卡。
最後是一批有點荒謬,且我覺得不應該存在在撤銷清單上的卡片,應該就是測試卡片,有羊羊卡(sheep)、多利卡(dolly)、餅乾卡(cookies)、薯條卡?(fires)。
數位憑證皮夾不是有測試版的沙盒系統嗎?為何這些看起來好笑的測試卡會出現在「正式」系統的撤銷清單上面,總感覺應該清一清。即便撤銷清單沒有公開(雖然我覺得應該要),且放在正式撤銷清單上無傷大雅,不過觀感上有點礙虐(台語)。
不然就很像軟體工程師犯了不小心把 STAGING 與 PROD 混在一起的低級錯誤。對…我自己就是從隕石系開發開始上手的,曾經也錯把 PROD 當成 STAGING 部署過,害我的夥伴渾身冒汗,也出過包,誰沒出過包。
且我記得數位皮夾有 IV&V(獨立驗證與確效)的廠商,現在不知道還有沒有,這上線前應該要抓龍一下?
*
再來來點認真的。
想了想這些公開資訊竟然還沒有一個公開網頁來呈現,我有點訝異,看了看反正不難,就順手把整包做掉了。
我希望官方網頁最好也要有,因為這是數位信任中,除了機器可驗證性,人類的可讀性很重要的一環,至少這些公開資料要部署在人類可讀的 gov . tw 上面。
比如說,官方信任清單中發行者的 did:key 金鑰需要完整呈現。因為皮夾在讀取發行者與驗證者互動的過程,需要知道互動對象是不是真的,目前官方皮夾 App 是用內部鎖住的方式來與這些「白名單」互動。
不過如果未來要做到跨國憑證的互相驗證,這種白名單制的維護成本就會數量級上升。隨便舉一個例子,歐盟明年所有會員國的皮夾就要上路了,而且他們的信任清單也都會公開(跟著既有的電子簽章),如果台灣的皮夾要吃歐盟的「請出示皮夾」,現在實務上是會出現警示,更不用說拿不到對方的卡片。
此外有了信任清單,撤銷清單就會跟著出現。比如你原本有駕照驗證卡,但因為酒駕被吊銷執照,撤銷清單上面就會出現這筆作廢的紀錄。撤銷清單很重要,因為驗證者不可能只從你的皮夾就相信你的駕照(證明曾經持有,不代表現在有效),還需要多一道確認有沒有撤銷的手續,租車業者才敢租車給你。
不過官方其實沒公布撤銷清單,沒有任何地方公告它們,我是從已簽發的卡片裡挖出來的。具體做法是每天走一次官方信任清單,向每個發行者索取它的 OID4VCI metadata 取得卡種,再逐一讀出每個卡種背後的撤銷清單並清點。
最後集成一個儀表板,夠貼心了吧。
所以 API 健康度、信任清單、撤銷清單是一套三板斧全家桶,三個東西一次揭露才會完整。另外,數發部目前的信任清單是有上區塊鏈保存的喔,目前只有上在 Arbitrum。儀表板也有去比對區塊鏈與官方中心化儲存的信任清單有沒有一致。
不過我的個人建議是,現在以太坊(Ethereum)主網已經很便宜了,其實不需要上在第二層的 Arbitrum,而且 EVM 一定相容,遷移過去只需要動動手指,我甚至可以自己寫一個智慧合約去抓官方資料,自己部署鏈上信任清單,也不需要花多少錢,但這樣就失去了「官方營運」的意義了。
*
大概就是這樣,做了儀表板以後有了許多有趣的發現。
最後是也放了監測 issue 的區塊。原因是想知道官方什麼時候會回應,因為真的有一些資安上的風險需要修正XD,不到很 critical,但不修掉心裡會不踏實,畢竟選擇性揭露現在不完全算真的選擇性揭露,感謝 Agent 抓出來,我自己也沒看出來。(詳情可以看 issue)
這算是公共程式精神的一次具體測試,要算是公共程式,必須真的有人維護原始碼,不然就是掛羊頭賣狗肉。
話說個人寫的 code 其實沒辦法貢獻到現在數發部的公共程式平台,因為資格上必須是政府機關、或者收受政府委託、補助的廠商,才能夠貢獻。所以我連登都登不進去。
本來想說,授權就使用有感染風格的 copyleft GPL 授權,在公共程式平台使用 GPL 不知道會發生什麼事,本來是如此期待的說。
今天大概就是這樣,補完了「免費一鍵發行卡片」、「監測儀表板」的功能,整個數位皮夾發現之旅就這樣走完了,我們下次見。
*