diff --git a/index.html b/index.html index 30c435094..00fd29c91 100644 --- a/index.html +++ b/index.html @@ -2942,8 +2942,8 @@

Zero-Knowledge Proofs

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 @@

Zero-Knowledge Proofs

-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.

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 @@

Zero-Knowledge Proofs

The next example utilizes the verifiable credential above to generate a new derived verifiable credential with a privacy-preserving proof. The derived verifiable credential is then placed in a -verifiable presentation, which further proves that the entire assertion -is valid. There are three requirements of most verifiable presentations -when they are to be used in zero-knowledge systems: +verifiable presentation, so that the verifiable credential +discloses only the claims and additional credential metadata that the +holder intended. To do this, all of the following requirements are +expected to be met: