(2) N-Quadsデータの曖昧性を排除 (Canonicalization) 23 _:b0 type VerifiableCredential _:b0 issuer 政府 _:b0 credentialSubject xyz xyz type Person xyz name John Smith xyz isPatientOf _:b1 _:b1 type Vaccination _:b1 date 2022-04-04 _:b1 vaccine code#123 _:c14n0 date 2022-04-04 _:c14n0 type Vaccination _:c14n0 vaccine code#123 _:c14n1 type VerifiableCredential _:c14n1 credentialSubject xyz _:c14n1 issuer 政府 xyz type Person xyz isPatientOf _:c14n1 xyz name John Smith RDF Canonicalization 元の空白ノードのラベルや行の順序によらず 確定的に一意なラベルと順序が得られる
(2) N-Quadsデータの曖昧性を排除 (Canonicalization) 24 _:b0 type VerifiableCredential _:b0 issuer 政府 _:b0 credentialSubject xyz xyz type Person xyz name John Smith xyz isPatientOf _:b1 _:b1 type Vaccination _:b1 date 2022-04-04 _:b1 vaccine code#123 _:c14n0.c8xd... date 2022-04-04 _:c14n0.c8xd... type Vaccination _:c14n0.c8xd... vaccine code#123 _:c14n1.c8xd... type VerifiableCredential _:c14n1.c8xd... credentialSubject xyz _:c14n1.c8xd... issuer 政府 xyz type Person xyz isPatientOf _:c14n1.c8xd... xyz name John Smith RDF Canonicalization VC全体のハッシュ値を識別子に添えることで、 他のVCと結合された際にも区別できるようにする (悪いHolderによる不正への対策)
(3) CanonicalなN-QuadsデータをTermの配列に分解 25 _:c14n0.c8xd... date 2022-04-04 _:c14n0.c8xd... type Vaccination _:c14n0.c8xd... vaccine code#123 _:c14n1.c8xd... type VerifiableCredential _:c14n1.c8xd... credentialSubject xyz _:c14n1.c8xd... issuer 政府 xyz type Person xyz isPatientOf _:c14n1.c8xd... xyz name John Smith _:c14n0.c8xd... date 2022-04-04 Vaccination _:c14n0.c8xd... type John Smith xyz name ... ... ... 1 4 2 5 26 25 3 6 27
VP提示処理 30 結果が全然違うのでこのままだと検証できない _:b0 credentialSubject xyz xyz name John Smith xyz isPatientOf _:b1 _:b1 date 2022-04-04 _:b0 credentialSubject _:x0 _:x0 isPatientOf _:b1 _:b1 date 2022-04-04 _:c14n0.a date 2022-04-04 _:c14n1.a credentialSubject xyz xyz isPatientOf _:c14n0.a xyz name John Smith _:c14n0.x date 2022-04-04 _:c14n1.x isPatientOf _:c14n0.x _:c14n2.x credentialSubject _:c14n1.x Issuerが署名したときのエンコード Verifierが開示されたVCをエンコード canonicalize canonicalize term分解 term分解 _:c14n0.a date 2022-04-04 _:c14n1.a credentia.. xyz xyz isPatientOf _:c14n0.a xyz name John Smith _:c14n0.x date 2022-04-04 _:c14n1.x isPatientOf _:c14n0.x _:c14n2.x credentia.. _:c14n1.x
VP提示処理 33 _:b0 credentialSubject xyz xyz name John Smith xyz isPatientOf _:b1 _:b1 date 2022-04-04 _:b0 credentialSubject _:x0 _:x0 isPatientOf _:b1 _:b1 date 2022-04-04 _:c14n0.a date 2022-04-04 _:c14n1.a credentialSubject xyz xyz isPatientOf _:c14n0.a xyz name John Smith _:c14n0 date 2022-04-04 _:c14n1 isPatientOf _:c14n0 _:c14n2 credentialSubject _:c14n1 Issuerが署名したときのエンコード HolderがVerifierになったつもりで開示VCをエンコード canonicalize canonicalize
VP提示処理 38 _:b0 credentialSubject xyz xyz name John Smith xyz isPatientOf _:b1 _:b1 date 2022-04-04 _:b0 credentialSubject _:x0 _:x0 isPatientOf _:b1 _:b1 date 2022-04-04 _:c14n0.a date 2022-04-04 _:c14n1.a credentialSubject xyz xyz isPatientOf _:c14n0.a xyz name John Smith _:c14n0 date 2022-04-04 _:c14n1 isPatientOf _:c14n0 _:c14n2 credentialSubject _:c14n1 Issuerが署名したときのエンコード HolderがVerifierになったつもりで開示VCをエンコード canonicalize canonicalize 識別表 from to _:c14n0 _:c14n0.a _:c14n1 xyz _:c14n2 _:c14n1.a
VP提示処理 39 _:b0 credentialSubject xyz xyz name John Smith xyz isPatientOf _:b1 _:b1 date 2022-04-04 _:b0 credentialSubject _:x0 _:x0 isPatientOf _:b1 _:b1 date 2022-04-04 _:c14n0.a date 2022-04-04 _:c14n1.a credentialSubject xyz xyz isPatientOf _:c14n0.a xyz name John Smith _:c14n0.a date 2022-04-04 xyz isPatientOf _:c14n0.a _:c14n1.a credentialSubject xyz Issuerが署名したときのエンコード HolderがVerifierになったつもりで開示VCをエンコード canonicalize canonicalize 識別表 from to _:c14n0 _:c14n0.a _:c14n1 xyz _:c14n2 _:c14n1.a
VP提示処理 40 _:b0 credentialSubject xyz xyz name John Smith xyz isPatientOf _:b1 _:b1 date 2022-04-04 _:b0 credentialSubject _:x0 _:x0 isPatientOf _:b1 _:b1 date 2022-04-04 _:c14n0.a date 2022-04-04 _:c14n1.a credentialSubject xyz xyz isPatientOf _:c14n0.a xyz name John Smith _:c14n0.a date 2022-04-04 xyz isPatientOf _:c14n0.a _:c14n1.a credentialSubject xyz Issuerが署名したときのエンコード HolderがVerifierになったつもりで開示VCをエンコード canonicalize canonicalize
VP提示処理 42 _:b0 credentialSubject xyz xyz name John Smith xyz isPatientOf _:b1 _:b1 date 2022-04-04 _:b0 credentialSubject _:x0 _:x0 isPatientOf _:b1 _:b1 date 2022-04-04 _:c14n0.a date 2022-04-04 _:c14n1.a credentialSubject xyz xyz isPatientOf _:c14n0.a xyz name John Smith _:c14n0 date 2022-04-04 _:c14n1 isPatientOf _:c14n0 _:c14n2 credentialSubject _:c14n1 Issuerが署名したときのエンコード Verifierが開示されたVCをエンコード canonicalize canonicalize term分解 _:c14n0.a date 2022-04-04 _:c14n1.a credentia.. xyz xyz isPatientOf _:c14n0.a xyz name John Smith
VP提示処理 43 _:b0 credentialSubject xyz xyz name John Smith xyz isPatientOf _:b1 _:b1 date 2022-04-04 _:b0 credentialSubject _:x0 _:x0 isPatientOf _:b1 _:b1 date 2022-04-04 _:c14n0.a date 2022-04-04 _:c14n1.a credentialSubject xyz xyz isPatientOf _:c14n0.a xyz name John Smith _:c14n0 date 2022-04-04 _:c14n1 isPatientOf _:c14n0 _:c14n2 credentialSubject _:c14n1 Issuerが署名したときのエンコード Verifierが開示されたVCをエンコード canonicalize canonicalize term分解 _:c14n0.a date 2022-04-04 _:c14n1.a credentia.. xyz xyz isPatientOf _:c14n0.a xyz name John Smith 復元表 from to 0 0 1 2 2 1 総行数 = 4