跳到主要內容

ArcBlock 如何運用 AWS QLDB 建構去中心化身分解決方案

Robert Mao, Founder / ArcBlock
AWSDIDOCAPQLDB

作者: Robert Mao,ArcBlock 創辦人

插畫: Moon Cao,ArcBlock UX 設計師

身分技術正從中心化身分解決方案演進為去中心化身分解決方案。去中心化身分是一項新興技術,能將身分控制權交還給使用者,讓他們自行決定要與第三方分享哪些資訊。

身分模型

ArcBlock 成立於 2017 年,致力於建構一種全新的去中心化應用程式平台,簡化 dApps、DID 與 Blockchain 應用程式的開發。我們實作了遵循 W3C Credentials Community Group 與 DIF 建議的 DID 協定;它在我們的架構中扮演關鍵角色,也是整個平台的基礎。ArcBlock 於 2019 年成為 AWS Partner Network (APN) 會員,並運用 EC2、QLDB、OpenSearch 等多項 AWS 服務,打造包括本文所討論的去中心化身分技術在內的底層基礎架構。

DID

(圖:典型 DID 及其資訊架構)

身為開發平台,ArcBlock 讓任何人都能輕鬆實作並部署具備 DID 能力的應用程式。我們也打造了一整套可直接使用的工具與框架,例如 DID Wallet(協助使用者管理數位身分、憑證、NFT 與其他數位資產的行動與 Web 錢包應用程式)、DID Connect(用於促進驗證、可驗證憑證的出示與驗證、加密貨幣支付、數位資產交換等功能的可擴充協定/框架與 SDK)。開發者能取得充分運用去中心化身分技術來建構應用程式所需的一切。

什麼是去中心化身分

去中心化識別碼(DID)是個人、組織、IoT 裝置等對象的自主數位識別碼。隨著我們日益頻繁地使用各種線上服務並向其提供個人資訊,往往也更容易遭遇資料外洩與隱私損失。以標準為基礎的去中心化身分系統,能為個人資訊與私人資料提供更完善的隱私保障與控制權。

DID 由帶有密碼學簽章的私鑰保護,因此只有私鑰擁有者才能證明自己擁有並控制該 DID。一個人可以(也建議)依需求擁有多個 DID,使其更難在不同服務的多項活動中遭到跨域追蹤。例如,同一個人可以擁有一個與金融帳戶相關的 DID,並另有一個完全獨立、與社群網路相關的 DID。

每個 DID 通常會連結一系列由其他 DID 發行的 Verifiable Credentials (VC),用來證明該 DID 的特定主張(例如所在地、年齡、學位、疫苗接種證明等)。這些憑證由發行者以密碼學方式簽署,因此可在不依賴簽署者並兼顧隱私的情況下獨立驗證;其設計也讓憑證能在原始情境之外被解讀,並包含可獨立重建與解讀該情境的機制。DID 擁有者會自行保存這些憑證,而非依賴特定供應商。

DID 與 Verfiable Credentials

(圖:DID 與 VC 運作方式的高階概覽)

Verifiable Data Registry (VDR) 是資料以可驗證方式註冊的各種方法之統稱。原則上,VDR 不一定要採用區塊鏈、雲端、網路或其他特定形式,但最常見的 VDR 是以區塊鏈或帳本實作。在 ArcBlock 的解決方案中,我們運用 QLDB,為 DID 架構實作以區塊鏈協定為基礎的高效能 VDR。

DID 為何如此重要?

DID 技術對個人使用者與組織都能帶來效益。DID 讓終端使用者擁有並控制自己的身分,並以高度安全的方式保護隱私。對企業組織而言,EU GDPR (General Data Protection Regulation) 等法規強化了身分標準,要求採用現代化的身分解決方案;DID 可讓組織進行電子資料驗證,並提升透明度與可稽核性。

如今,許多人以 verifiable credentials (VCs) 一詞指稱附帶此類密碼學證明的數位憑證。許多「企業區塊鏈」使用案例都可視為 verifiable credentials 的典型應用。W3C 文件「Verifiable Credentials Use Cases」列出了橫跨教育、零售、金融、醫療、法定身分、IoT 裝置等 7 個領域、超過 30 種典型使用案例。由於近期 COVID-19 疫情在全球廣泛流行,「免疫證明」的需求及其技術要求隨之出現,而 DID 與 VC 看來是其中一項極具潛力的技術解決方案。

「去中心化數位身分(DDID)不只是一個技術流行語:它有望將目前中心化的實體與數位身分生態系,徹底重構為去中心化且民主化的架構。」

-- Prepare For Decentralized Digital Identity: Security SWOT, January 21, 2020, Forrester Research

ArcBlock 如何運用 QLDB 實作 DID

ArcBlock 建構了一套針對 dApps 最佳化的高效能區塊鏈協定,內建支援代幣經濟、NFT (Non-fungible Token)、DID (Decentralized Identities) 等功能。Amazon QLDB 為區塊鏈 Layer 2 擴充解決方案提供透明、不可變且可透過密碼學驗證的帳本後端,同時也是符合我們需求、極具成本效益的託管服務。

下方高階架構圖展示 ArcBlock 平台的分層架構。我們運用 W3C 對 DID 與 VC 的建議及最佳實務,將其設計為整個架構的基礎——我們將 DID 作為一種「原生識別碼」,系統中的每個物件,例如使用者、區塊鏈帳戶、智慧合約等,都擁有 DID。

ArcBlock 平台高階概覽

(圖:ArcBlock 平台高階概覽)

雖然 Amazon QLDB 本身內建密碼學驗證能力,但去中心化身分與 Verifiable Credentials 技術需要具備可攜性、平台獨立性,以及不同供應商之間的互通性,因此我們在 QLDB 之上獨立實作 DID 與 VC 層級的驗證。ArcBlock 的 Open Chain Access Protocol (OCAP) 層是一套中介層協定,負責封裝底層帳本與儲存空間,並提供通用、高階的區塊鏈協定與工具(例如交易、智慧合約、區塊瀏覽器、錢包等)。

在下方架構圖所示的 ArcBlock 平台架構中,我們運用 Amazon QLDB,將其作為原始交易的「State Storage」。來自應用程式的所有交易,包括源自「wallet」的終端使用者交易,都會先儲存於 Amazon QLDB;交易執行後,區塊鏈的「states」也會更新並儲存在 Amazon QLDB。同時,系統使用 Amazon QLDB streams 將交易串流至 Amazon Kinesis,進一步建立索引,並將資料儲存於 Amazon 的 Elastic Search,以支援快速且複雜的搜尋與查詢。Amazon Lambda 則為流程中的事件資料處理提供彈性。我們使用高效能 Remote Procedure Call (RPC) 框架 gRPC 建構這些交易協定,並支援 GraphQL 作為標準查詢語言。

ArcBlock 在 AWS QLDB 上的系統架構

(圖:系統架構)

DID 是此架構的基礎,因此所有區塊鏈交易自然都會與 DID 綁定。我們也在區塊鏈系統中定義 FT (Fungible Tokens) 與 NFT (Non-fungible Tokens) 等高階數位資產,全部以 DID 作為識別碼,並運用 VC (verifiable credentials) 作為可變資料格式。以 DID 作為全系統唯一識別碼後,即使不同元件由不同供應商開發,也更容易彼此整合。

ABT Node 是「Blocklets」的容器與執行環境;Blocklets 是一套高度可重複使用的軟體元件框架。ArcBlock 的所有應用程式與元件,包括區塊鏈協定實作本身,都是 Blocklets;它們由在 Amazon EC2 執行個體內運作的 ABT Node 管理。在正式環境中,可使用 Amazon Elastic Load Balancing 在多個 ABT Node 執行個體之間進行負載平衡。我們也使用 Amazon SNS,針對使用者訂閱的特定事件傳送推播通知,例如加密貨幣付款完成,或即將分享重要個人資料時,讓使用者能收到通知並獲得即時體驗。

值得注意的是,我們在運用 Amazon QLDB 內部資料驗證能力的同時,也獨立於 Amazon QLDB 本身建構密碼學驗證。這讓我們的 DID 與 VC 能與其他系統互通,而且客戶不必了解 Amazon QLDB 驗證的運作方式。由於 Amazon QLDB 的內建驗證能力,state storage 中的交易與狀態資料也具備額外的可驗證性。

今天即可使用

由 Amazon QLDB 驅動的 ArcBlock 平台能釋放區塊鏈技術的完整潛力,為我們的 SAAS 雲端客戶帶來 smart-contracts、tokens、NFT、DAO 等最具附加價值的功能。

完整且可運作的解決方案現已投入正式環境,今天即可使用。請造訪 ArcBlock 網站,進一步了解示範、範例與開發者文件等資訊。值得注意的是,ArcBlock 的所有網站與服務都已採用上述 DID 技術,並以 dApps 形式運作。AWS 客戶可以輕鬆將所需元件下載至本機,或從 AWS Marketplace 啟動執行個體,立即開始使用 DID 建構應用程式。

參考資料

本頁涉及

產品

  • OCAP active

    一個用統一介面查詢鏈上資料的協定,不必每條鏈配一個客戶端。ArcBlock 持有相關專利。

術語

  • DID

    DID 是一種數位身分標識。它幫助持有者和驗證方確認某個身分由誰控制,也讓一項聲明有明確的關聯對象。帳戶、登入和授權各自仍有自己的角色。