# CLIP
###### William, 03/17 report
由snow birdge提供的產品,遵守W3c提出的DID以及VC標準,並且使用區塊鏈技術,將個人資料加密後儲存於區塊鏈上,並且提供一個簽證平台,讓使用者可以在平台上申請簽證

### CLIP由以下4字組成
C: Credential(由issier發行,由holder持有)
L: License(牌照? 不確定是什麼)
I: Identity(DID)
P: Proof(加密資訊: 採用的演算法、數位簽章)
### 特色/優勢:
1. web3.0,使用者的身分和個資不再被少數中央網站和應用系統所控制
2. 去中心化身分: 由使用者自己掌握自己的身分資料,並且可以自由選擇要分享給誰(數位身分自主權)
3. 符合W3C標準: 採用「零知識證明」和「選擇性揭露」等區塊鏈提供的加密技術,也提供API供查驗系統整合,具有機器自動判讀和校驗的能力。
4. 底層技術採用Indicio國際聯盟鏈,Indicio國際聯盟鏈是Indicio這家公司基於hyperledge indy節點架設的聯盟鏈,hyperledge indy是一個由hyperledger foundation(背後為linux foundation)負責的開源項目,是一個專攻於DID的區塊鏈開源項目
5. 其他
* SSI 數位身分自主權.
* 可自訂各種憑證格式.
* 符合W3C可驗憑證標準.
* 個資只留於持證者皮夾.
* 機器可讀可驗證.
* 使用二維碼交換憑證.
* 採用Indicio國際聯盟鏈
### 系統架構:
CLIP 採用 Linux 基金會所屬的區塊鏈專案 Hyperledger Indy 做為系統核心,再根據垂直應用的特性和流程進行優化,讓發證者、持證者和查驗者可以很容易地使用 DID 和可驗憑證技術,從傳統的中央式個資管理模式提升到區塊鏈的去中化作業模式。
* W3C 可驗憑證資料模型
CLIP 符合 W3C 所制定的可驗憑證資料模型,採用 Camenisch-Lysyanskaya 電子簽章法來簽發憑證,因此憑證具有「選擇性揭露」(Selective Disclosure)、「資訊推斷」(Predicate) 等個資保護特性。除了發證者的公鑰、憑證機碼、定義以及註銷紀錄儲存在區塊鏈之外,憑證內容完全不寫入區塊鏈,只能有持證者主動提供給他人查驗,充分達到數位身分自主權(Self-Sovereign Identity)的目標。CLIP使用 Indicio 聯盟鏈,節點遍布世界各地,發證者無須建置節點和花費管理成本。
* CLIP 管理後台
發證者透過 CLIP 的管理後台自訂憑證的欄位和內容定義,本系統也提供發證者上傳 Logo 以及設定發證者資訊的功能,讓查驗者直覺辨識發證者。發證者可以設定自動發證模式,在接收到持證者的申請時,自動依據輸入的資料發出憑證,這項功能很適合會員招募時簽發會員憑證之用。
CLIP 管理後台也提供企業整合方案,可以連結企業資料庫自動讀取資料的發證作業。此外,查驗者也可透過管理後台自訂查驗規則。
* CLIP 證件皮夾 APP
CLIP提供一個通用性的「證件皮夾」;也就是DID區塊鏈所需的Wallet。它就像現實世界裡的證件夾一樣,可以儲存各種和個人身分相聯結的數位證件、證明、憑證、執照、紀錄… 等。CLIP 證件皮夾內儲存持證者的私鑰等私密資料,以及經由 CLIP 平台所下載的各種個人憑證。證件皮夾透過掃描一個通訊二維碼 (QR Code)的方式和發證者及查驗者交換憑證檔 (Credential)和證明檔 (Proof)。
* RESTful API
CLIP除了提供立即可用的管理後台和證件皮夾之外,也可協助政府和企業進行客製化。本系統已經具備完整的 RESTful API 用以系統整合。
### 應用案例:
1. 醫療平台

優勢:
* 對使用者,自己的隱私資料只有自己知道,相對於中心化的儲存方式,更有隱私,另外因為已經數位化,使用上更為方便
* 對研究發展,使用區塊鏈技術可以讓民眾提供去識別化的個資供研究也有利於AI,同時從產業端直接將加密貨幣回饋到個人身上
2. 會員管理

優勢:
* 企業招募會員後簽發身分憑證儲存在會員端,中央系統不再需要儲存會員個資,不用管理使用者帳號和密碼。
* 會員資料由會員帶著走,行銷資訊以人為橋樑流通,更安全也更多元。
3. 憑證查驗

採用可驗憑證系統可把證明文件資料編譯成機器可讀的憑證檔,發證者執行電子簽章後發給持證者。持證者根據查驗規則,取出憑證部分的資訊簽發證明檔給查驗者,查驗者的資訊系統連結區塊鏈取得密鑰和憑證格式等參數自動校驗資料真偽,並取得機器可讀資料做後續處理。
證明檔為機器可讀可驗證,可以完全自動作業。
查驗者僅需存取同一個區塊鏈即可查驗眾多發證者、各種不同的證明文件。
若查驗者須瀏覽紙本證明圖樣,可驗憑證亦可帶入圖檔存取點讓查驗者取得圖檔和驗證真偽。
優勢:
* 政府和企業不再需要自建區塊鏈和應用,透過CLIP簽發跨國可驗證的證明文件既方便又簡單.
* 底層技術採用聯盟鏈,發證單位不需要節點建置和管理成本。
### API/開發文檔:
待收到後補充
### 備註1
### DID規範 by w3c
https://www.w3.org/TR/did-core/
簡單來說,就是一個去中心的身分驗證識別號,比如一組公私鑰的公鑰就可以當作DID,只是大多數DID對格式會有要求如下

### 備註2
### Veribiable Credential規範 by w3c
https://www.w3.org/TR/vc-data-model/
### FLOW

### example VC1
#### issuer發給holder

```json
{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://www.w3.org/2018/credentials/examples/v1",
"https://w3id.org/security/suites/ed25519-2020/v1"
],
"id": "http://example.edu/credentials/3732",
"type": [
"VerifiableCredential",
"UniversityDegreeCredential"
],
"issuer": "https://example.edu/issuers/565049",
"issuanceDate": "2010-01-01T00:00:00Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "BachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "Ed25519Signature2020",
"created": "2022-02-25T14:58:43Z",
"verificationMethod": "https://example.edu/issuers/565049#key-1",
"proofPurpose": "assertionMethod",
"proofValue": "zeEdUoM7m9cY8ZyTpey83yBKeBcmcvbyrEQzJ19rD2UXArU2U1jPGoEt
rRvGYppdiK37GU4NBeoPakxpWhAvsVSt"
}
}
```
以下是這個 JSON 文件中每個欄位的中文詳細說明:
"@context":
一個 JSON-LD 陣列,它描述了這個文件所使用的 JSON-LD 上下文。本例中使用了三個上下文:Verifiable Credentials 1.0 上下文、示例上下文和 Ed25519Signature2020 安全套件上下文。1
"id":
這個憑證的唯一識別符,可以是任何 URL,用於區分不同的憑證。
"type": 一個 JSON 陣列,用於描述這個 JSON 文件所代表的資料的類型。本例中這個憑證的類型是 VerifiableCredential 和 UniversityDegreeCredential,表示它是一個可驗證的大學學位憑證。
"issuer":
這個憑證的發行者,是一個 URL。本例中,這個憑證的發行者是 https://example.edu/issuers/565049。
"issuanceDate":
憑證的發行日期,表示憑證何時被創建。本例中,憑證的發行日期是 2010 年 1 月 1 日 00:00:00。
"credentialSubject":
這個 JSON 物件包含與憑證主體相關的數據。本例中憑證主體的 ID 是 did:example:ebfeb1f712ebc6f1c276e12ec21,表示這是一個去中心化身份識別符,憑證主體還有一個 degree 子物件,包含學位類型和名稱。
"proof":
一個 JSON 物件,包含用於證明憑證真實性的證明信息。本例中,這個證明使用了 Ed25519Signature2020 安全套件,其驗證方法是使用 https://example.edu/issuers/565049#key-1 的密鑰,該證明的目的是證明憑證的真實性,證明的值是一個 base64 編碼的 Ed25519 簽名值。
### example VC2
#### holder出示給verifier
基本欄位同example VC1,
不同的地方是HOLDER會對整份文件做簽章並放在PROOF欄位裡

更多關於W3C對於VC的規範請參考w3c官方網站
https://www.w3.org/TR/vc-data-model/
### Indicio國際聯盟鏈
官網link:
https://indicio.tech/indicio-completes-hyperledger-indy-did-method-a-milestone-in-the-evolution-of-decentralized-identity-network-interoperability/
Indicio.tech 是位於美國的一家公益性公司,七月六日宣布全球有21家公司支持其所發起的去中心化身份(Decentralized ID)的區塊鏈網路。每家公司都負責管理一個區塊鏈節點並保管一份 Indicio 分散式帳本。Indicio 聯盟鏈將提供世界各地的公司和組織能夠在保障個資隱私的前提下,向人們、企業甚至物聯網證明其身份的真實性。
Indicio 聯盟鏈的節點分布在全球五大洲。台灣的雪喬公司(Snowbridge Inc.)也是Indicio的創始節點運營商之一。
Indicio Network 由三個區塊鏈網路組成,一個用於部署產品和服務的 MainNet,一個用於開發的 TestNet 和一個用於試點和產品演示的 DemoNet——所有三個網路都配備了最新的監控和服務工具。
Indicio Network 底層使用 Hyperledger Indy
### 備註3
### Hyperledger Indy
Hyperledger Indy 是一個由 Linux 基金會主導的開源區塊鏈項目,專為分散式身份管理和憑證應用而設計。Indy 基於可信任的分散式身份概念,旨在提供更安全、私密且自主的數位身份。Indy 基於以下幾個核心元素:
1. 分散式憑證和自主身份:Hyperledger Indy 允許機構創建和發行憑證,並使個人能夠控制自己的身份資料。使用者可以自主決定何時以及與誰分享這些資料。
2. DID (分散式身份識別碼):Indy 使用 DID 來作為唯一身份標識符,這些標識符在區塊鏈上註冊,但不包含任何與個人身份相關的資訊,從而保護使用者隱私。
3. 零知識證明:Indy 利用零知識證明技術,讓使用者能夠向機構證明自己具有某些資格或滿足特定條件,而不需要透露過多個人資料。
4. 可擴展性和互操作性:Indy 網絡可以與其他區塊鏈網絡或系統互操作,並支持擴展以滿足不同應用場景的需求。
應用:
數位身份認證:政府或企業可以利用 Indy 網絡發行數位身份,供民眾使用。
學歷和專業資格認證:學校、培訓機構或專業認證機構可以利用 Indy 發行數位化學歷和資格證書,方便持證者查驗和分享。
金融機構 KYC (了解你的客戶):金融機構可以利用 Indy 簡化客戶身份核查過程,提高安全性並保護客戶隱私。
醫療資料管理:醫療機構可以利用 Indy 管理患者的醫療資料,並在遵守隱私規定的前
關於hyperledger Indy的重要名詞:
* Actors:
Actors are entities capable of performing actions in the system. They can be people, organizations, or software agents (programs that perform tasks on behalf of users). In the context of decentralized identity management, actors can take on different roles, such as Issuer, Holder, Inspector, or Verifier.
* Self-Sovereign Identity (SSI):
SSI refers to a digital identity that is controlled and managed by the individual or organization it represents, rather than relying on a centralized authority. In the INDY ARM, Issuers create SSIs for various subjects, such as documents or things.
* DID Documents and DID Entities:
Decentralized Identifiers (DIDs) are unique identifiers used in the system. A DID Entity is a data structure containing key-value pairs, including the DID itself and other attributes. A DID Document is the JSON-LD (JSON-based Linked Data) serialization of a DID Entity.
* Edge and Cloud Agents:
Edge Agents are end-user applications that interact with the SSIs owned by an actor. They can be mobile or desktop apps. Cloud Agents are similar, but they are cloud or server-based applications. Both types of agents use wallets to manage SSIs.
* Indy Wallet:
The Indy Wallet is a component used to manage SSIs. It can be part of an Edge Agent App or implemented as a Cloud Wallet.
* Verifiable Data Registry (VDR):
The VDR is a distributed ledger technology that stores and manages DID Documents.
* Ledger Nodes:
Ledger Nodes are responsible for maintaining the VDR and processing transactions related to DID Documents.
* Credential Registry:
The Credential Registry is a repository for managing and interacting with Verified Credentials, which are digital proofs of claims made by one party about another party.
* DID Resolver:
The DID Resolver is a component that takes a DID as input and retrieves the associated DID Document from the VDR.
* peer DID
參與者(holder and issuer)之間直接創建和交換身份憑證,而不依賴於中心化的注冊機構或區塊鏈。
## source:
CLIP
https://clip.snowbridge.tw/
W3C
https://www.w3.org/TR/did-core/
https://www.w3.org/TR/vc-data-model/
indicio network
https://indicio.tech/indicio-networks/
hyperledger Indy
https://wiki.hyperledger.org/display/indy/Hyperledger+Indy