區塊鏈與身份自主權

10 分鐘了解去中心化身份(DID)的概念與機制

李彥寬 Kevin Lee
BSOS Taiwan
Aug 5, 2021

--

身份的建立、紀錄及確認,是每個人在生活中無時無刻會遇到的情境:申辦信用卡需要身份證、租車需要駕照、看病需要健保卡、繳稅可使用自然人憑證…等等,這些都是身份應用的場景。除了實體的證件或卡片,網路世界也創造了大量的身份,每一個網路上的服務可能都伴隨著身份體系,非常零散,還好有身份提供者 (Identity Provider) 的出現,例如 Google 或 Facebook 提供身份驗證串接,讓其它的服務提供商可以快速串接,無需另外建立自己的使用者身份驗證及管理系統。

雖然現今的身份解決方案看起來已經很成熟,不過,依然存在不少可改善的空間。例如:不論實體與網路世界,時常會遇到重複驗證的問題,例如開辦不同銀行的帳戶,皆要進行類似的身份建立及審核流程,不同機構驗證身份後,儲存的使用者資訊重複且孤立,當資料有所變動時,使用者需至所有機構系統修改,造成個資難以有效率地維護。

去中心化身份 DID (Decentralized Identity) 是近年來開始被重視及討論的概念,其主張拋開身份提供者的框架,個資擁有權回歸使用者。想像人們透過自己的手機 App 管理個資,並透過生物辨識與加密技術保護敏感資訊。負責認證身份的個體 (Entity) 或組織 (Organization) 透過公私鑰簽章,將簽名註記在使用者身份上,等同核發認證的動作,使用者便可透過這些認證表彰身份。

舉例來說,監理站核發駕照資格給民眾,透過監理站的私鑰將駕照電子檔簽名後註記在民眾 DID 上,當民眾需租車時,將個資一鍵授權給租車行查詢,租車行確認該民眾有駕照資格,快速驗證身份完成租車。這個案例中監理站就是身份授與者,民眾就是身份擁有者,租車行則是服務供應商,跟傳統作法的差別在於身份的保管不在授與者身上,而在擁有者、也就是民眾身上。

要好好的保管及維護這些公鑰,以及紀錄身份數據,並且不回到中心機構代為保管的老路,實現使用者真正擁有自己的身份紀錄,在實踐上是非常困難的事。而區塊鏈技術的問世,正好給了 DID 一個非常好的技術實現框架。

我們能夠在區塊鏈上以智能合約的方式實現 DID 的實作。例如以太坊上主流的身份智能合約 ERC-725,使用者在鏈上發布身份智能合約後,接著使用者產生數個公私鑰對,其中私鑰由使用者自行保存於錢包;公鑰則上傳至身份合約中。由於身份合約的自主性,只有身份擁有者有權上傳這些公鑰。

接下來,服務提供者如何信任提交驗證請求的人,確實就是該身份的擁有者呢?這時候採用的機制是挑戰回傳機制 (Challenge & Response) ,在使用者提出服務請求時,服務供應商會針對該身份在鏈上合約中的某把公鑰進行挑戰,例如利用公鑰加密某一串數值;若使用者有辦法透過該公鑰對應的私鑰完成解密並回傳給服務供應商,便證明該使用者即是身份擁有者。

身份智能合約除了儲存公鑰外,還有一項重要的功能,就是認證 (Credencial Claim)。認證機構將認證內容簽名後,可註記在使用者的身份合約上,相當於授與了該身份某一項認證,例如監理站授與某身份駕駛執照。

身份的建立、認證及驗證,是 DID 最基礎的機制,而目前搭配區塊鏈技術,實作上也沒有太大的困難了,主要普及門檻還是在於生態及使用群體的建立。另外,透過 DID 自主身份,還可以延伸出許多跨組織的應用,例如:

  • KYC / AML
  • 證書證照
  • 資料授權
  • 權限控管
  • Single sign on 單一帳號登入的身份機制

DID 的價值主張與

DID 想解決的是目前大型機構壟斷個資的問題,還權於民,同時也帶來其它好處,例如:駭客無法透過一次攻破伺服器取得大量使用者個資,因為這些敏感資訊只存在於使用者手機上。

現行主流由大型機構扮演身份提供者,卻難以解決某些問題,像是跨國疫苗護照,或是無國籍的難民身份,難以找到單一機構處理,DID 或許是這些問題的解決方法之一。

然而,DID 存在使用者體驗的問題,使用者需自行保管大量私鑰,並在驗證與認證的過程中操作私鑰簽名,這有賴於更成熟的客戶端設計及私鑰保管技術。

我的身份由我自己宣示,並由他人認定。DID 的想法純粹且立意良善,也許未來某一天,我們都能掌控自己身份的主權。

--

--

李彥寬 Kevin Lee
BSOS Taiwan

BSOS Senior Backend Engineer. Capable of working with blockchain, big data, distributed computing, decentralized storage, and managing databases.