結構化資料與證明

JWT vs LD-Proof 應用程式原理

 

5/31/2021

傳統

  • 先有程式, 再有資料
  • 資料結構定義在程式或資料庫裡
  • 資料加密跟解密
  • 後考慮個資問題
  • 資料(加鹽)放在集中式電腦的硬碟裡

 

  • 利用伺服器, 部署程式

未來

  • 先有資料, 再有或甚至沒有程式
  • 資料結構定義在網路上
  • 資料天生加密
  • 加密方法支援零知識證明
  • 資料含(加密與簽章) 放在去中心化免費雲端或區塊鏈礦工的電腦硬碟裡
  • 無伺服器 (serverless)
  • 或邏輯都寫在智能合約裡

VC 

A Verifiable Credential

(可確認的證明) 

 

例如: 

  • 數位員工 ID
  • 數位出生證明
  • 數位學歷證明
  • 身份識別辨認(認證)
  • 數位錢包擁有者
  • IoT 的 ID

可確認證明

  • 一組個 Claims (宣告) 或  Statements (陳述)
  • 證明是誰說的, 誰就簽章 => Proof (= signature 簽名) = signed VC

(驗證方, 還可加入 challenge)

signed VP (verifiable presentation + challenge + 簽名)

  • verify 確認 (用簽名 + 簽名者的公鑰 + 宣告) = true 既可證明, 該宣告是正確無誤

整個 VC 的系統概念

圖片所有權 -> https://www.idaptive.com/blog/self-sovereign-identity-distant-dream-immediate-possibility/

VC 標準

Verifiable Credentials Implementation Guidelines 1.0

https://w3c.github.io/vc-imp-guide

VC 的格式

JWT 比較簡單, 但 LD-Proofs 有彈性

線上測試 (欄位說明)

JWT 支援各式語言

  • .NET,
  • Java, Groovy
  • Javascript, Node.js
  • Ruby, Python
  • Elixir, Erlang
  • Perl
  • Go
  • Haskell
  • Rust, D, clojure, Haxe, Lua, Scala
  • Swift, Object-C, C, C++
  • PHP

Linked Data Proofs

(相較  JWT, 各有優缺點, 雖皆可用 ZKP, 但 JWT 比較有限制)

DID

(Decentralized ID, 分散式 身分證(明))

W3C CCG 與  DID 標準

(自主式 ID, 控制權完全在使用者端

self-sovereign identity)

Verification Key

(證明用 鑰匙 = "驗證密鑰"

Ed25519VerificationKey2020 為例, 說明程式流程)

Linked Data

(利用 HTTP 或 URIs 現有 Web 技術, 來分享與查詢資料)

W3C JSON-LD 標準 v1.1

https://www.w3.org/TR/json-ld11/

 

JSON-LD 簡介 (英文)

LD-Playground

Linked Data 格式

Turtle

RDF/XML (FOAF)

N-Triples

JSON-LD

Q & A

demo

Made with Slides.com