diff --git a/index.html b/index.html index 30c435094..00fd29c91 100644 --- a/index.html +++ b/index.html @@ -2942,8 +2942,8 @@
A zero-knowledge proof is a cryptographic method where an entity can prove to another entity that they know a certain value without disclosing the actual -value. A real-world example is proving that an accredited university has granted -a degree to you without revealing your identity or any other personally +value. A real-world example is proving that an accredited university has +granted a degree to you without revealing your identity or any other personally identifiable information contained on the degree.
@@ -2975,45 +2975,50 @@
-This specification describes a data model that supports zero-knowledge proof -mechanisms. The examples below highlight how the data model can be used to -issue, present, and verify zero-knowledge verifiable credentials. +This specification describes a data model that supports selective disclosure +with the use of zero-knowledge proof mechanisms. The examples below highlight +how the data model can be used to issue, present, and verify zero-knowledge +verifiable credentials.
-To use zero-knowledge verifiable credentials the issuer must -issue a verifiable credential in a manner that enables the holder -to present the information to a verifier in a privacy-enhancing manner. +For a holder to use a zero-knowledge verifiable presentation, +they need an issuer to have issued a verifiable credential in a manner +that enables the holder to derive a proof from the originally issued +verifiable credential, so that the holder can present the +information to a verifier in a privacy-enhancing manner. This implies that the holder can prove the validity of the issuer's signature without revealing the values that were signed, or when only revealing certain selected values. The standard practice is to do so by proving knowledge of the signature, without revealing the signature itself. There are two requirements for verifiable credentials when they are to be -used in zero-knowledge proof systems. The verifiable credential MUST -contain a: +used in zero-knowledge proof systems.
credentialSchema
-property, that can be used by all parties to perform various
-cryptographic operations in zero-knowledge.
+The verifiable credential MUST contain a Proof, using the
+proof property, so that the holder can derive a
+verifiable presentation that reveals only the information than the
+holder intends to reveal.
proof property, that can be used to derive
-verifiable presentations that present information contained in the
-original verifiable credential in zero-knowledge. The zero-knowledge
-verifiable presentation must not reveal any information not intended to
-be revealed by the holder.
+If a credential definition is being used, the credential
+definition MUST be defined in the credentialSchema property,
+so that it can be used by all parties to perform various cryptographic
+operations in zero-knowledge.
The following example shows one method of using verifiable credentials in -zero-knowledge. It makes use of a CL Signature, which allows the presentation of -the verifiable credential in a way that supports the privacy of the +zero-knowledge. It makes use of a Camenisch-Lysyanskaya Signature +[[?CL-SIGNATURES]], which allows the presentation of the verifiable +credential in a way that supports the privacy of the holder and subject through the use of selective disclosure of the -verifiable credential values. +verifiable credential values. Some other cryptographic systems which rely +upon zero-knowledge proofs to selectively disclose attributes can be found in the +[[?LDP-REGISTRY]] as well.
@@ -3046,7 +3051,6 @@-Zero-Knowledge Proofs
} }
The example above provides the verifiable credential definition by using
the credentialSchema property and a specific proof that is
@@ -3057,17 +3061,18 @@
credentialSchema
-property. This allows the derived verifiable credential to
-reference the credential definition used to generate the derived proof.
+Each derived verifiable credential within a verifiable
+presentation MUST contain all information necessary to verify the
+verifiable credential, either by including it directly within the
+credential, or by referencing the necessary information.
proof
-property to enable the verifier to ascertain that all derived
+The verifiable presentation SHOULD contain a proof
+property to enable the verifier to check that all derived
verifiable credentials in the verifiable presentation were issued
to the same holder without leaking personally identifiable information
that the holder did not intend to share.