Skip to content

Commit d0567d2

Browse files
brentzundelawoiemspornyOR13TallTed
authored
Update section on Presentations to include guidance on usage.
Co-authored-by: Oliver Terbu <[email protected]> Co-authored-by: Manu Sporny <[email protected]> Co-authored-by: Orie Steele <[email protected]> Co-authored-by: Ted Thibodeau Jr <[email protected]>
1 parent 2c78c0c commit d0567d2

File tree

1 file changed

+46
-60
lines changed

1 file changed

+46
-60
lines changed

index.html

Lines changed: 46 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -789,13 +789,11 @@ <h3>Presentations</h3>
789789
</p>
790790

791791
<p>
792-
A <a>verifiable presentation</a> expresses data from one or more
793-
<a>verifiable credentials</a>, and is packaged in such a way that the
794-
authorship of the data is <a>verifiable</a>. If <a>verifiable credentials</a>
795-
are presented directly, they become <a>verifiable presentations</a>. Data
796-
formats derived from <a>verifiable credentials</a> that are cryptographically
797-
<a>verifiable</a>, but do not of themselves contain
798-
<a>verifiable credentials</a>, might also be <a>verifiable presentations</a>.
792+
A <a>verifiable presentation</a> can express data from multiple
793+
<a>verifiable credentials</a> and contain arbitrary additional data encoded as
794+
JSON-LD. They are used by a <a>holder</a> to present <a>claims</a> to a
795+
<a>verifier</a>. It is also possible to present <a>verifiable credentials</a>
796+
directly.
799797
</p>
800798

801799
<p>
@@ -1881,65 +1879,68 @@ <h3>Status</h3>
18811879
<h3>Presentations</h3>
18821880

18831881
<p>
1884-
<a>Presentations</a> MAY be used to combine and present <a>credentials</a>.
1885-
They can be packaged in such a way that the authorship of the data is
1886-
<a>verifiable</a>. The data in a <a>presentation</a> is often all about the same
1887-
<a>subject</a>, but there is no limit to the number of <a>subjects</a> or
1888-
<a>issuers</a> in the data. The aggregation of information from multiple
1889-
<a>verifiable credentials</a> is a typical use of
1890-
<a>verifiable presentations</a>.
1882+
<a>Verifiable presentations</a> MAY be used to aggregate information from
1883+
multiple <a>verifiable credentials</a>.
18911884
</p>
18921885
<p>
1893-
<a>Verifiable presentations</a> SHOULD be extremely short-lived, and
1894-
bound to a challenge provided by a <a>verifier</a>. Details for accomplishing
1895-
this depend on the securing mechanism, the transport protocol, and
1896-
<a>verifier</a> policies. Unless additional requirements are defined by the
1897-
particular securing mechanism or embedding protocol, a <a>verifier</a> cannot
1898-
generally assume that the <a>verifiable presentation</a> has any correlation
1899-
with the presented <a>verifiable credentials</a>.
1886+
<a>Verifiable presentations</a> SHOULD be extremely short-lived, and bound to a
1887+
challenge provided by a <a>verifier</a>. Details for accomplishing this depend
1888+
on the securing mechanism, the transport protocol, and <a>verifier</a> policies.
1889+
Unless additional requirements are defined by the particular securing mechanism
1890+
or embedding protocol, a <a>verifier</a> cannot generally assume that the
1891+
<a>verifiable presentation</a> has any correlation with the presented
1892+
<a>verifiable credentials</a>.
19001893
</p>
19011894
<p>
1902-
A <a>verifiable presentation</a> is typically composed of the following
1903-
properties:
1895+
The following properties are defined for a <a>verifiable presentation</a>:
19041896
</p>
19051897

19061898
<dl>
19071899
<dt><var>id</var></dt>
19081900
<dd>
1909-
The <code>id</code> <a>property</a> is optional and MAY be used to provide a
1910-
unique identifier for the <a>presentation</a>. For details related to the use of
1911-
this property, see Section <a href="#identifiers"></a>.
1901+
The <code>id</code> <a>property</a> is optional. It MAY be used to provide a
1902+
unique identifier for the <a>verifiable presentation</a>. If present, the
1903+
normative guidance in Section <a href="#identifiers"></a> MUST be followed.
19121904
</dd>
19131905
<dt><var>type</var></dt>
19141906
<dd>
1915-
The <code>type</code> <a>property</a> is required and expresses the
1916-
type of <a>presentation</a>, such as <code>VerifiablePresentation</code>. For
1917-
details related to the use of this property, see Section <a href="#types"></a>.
1907+
The <code>type</code> <a>property</a> MUST be present. It is used to express the
1908+
type of <a>verifiable presentation</a>. One value of this property MUST be
1909+
<code>VerifiablePresentation</code>, but additional types MAY be included. The
1910+
related normative guidance in Section <a href="#types"></a> MUST be followed.
19181911
</dd>
19191912
<dt><var>verifiableCredential</var></dt>
19201913
<dd>
1921-
If present, the value of the <code>verifiableCredential</code> <a>property</a>
1922-
MUST be constructed from one or more <a>verifiable credentials</a>, or of data
1914+
The <code>verifiableCredential</code> <a>property</a> MAY be present. The value
1915+
MUST be an array of one or more <a>verifiable credentials</a>, or of data
19231916
derived from <a>verifiable credentials</a> in a cryptographically
19241917
<a>verifiable</a> format.
19251918
</dd>
19261919
<dt><var>holder</var></dt>
19271920
<dd>
1928-
If present, the value of the <code>holder</code> <a>property</a>
1929-
is expected to be a <a>URL</a> for the entity that is generating the
1930-
<a>presentation</a>.
1921+
The <a>verifiable presentation</a> MAY include a <code>holder</code>
1922+
<a>property</a>. If present, the value MUST be either a <a>URL</a> or an object
1923+
containing an <code>id</code> <a>property</a>. It is RECOMMENDED that the
1924+
<a>URL</a> in the <code>holder</code> or its <code>id</code> be one which, if
1925+
dereferenced, results in a document containing machine-readable information
1926+
about the <a>holder</a> that can be used to <a>verify</a> the information
1927+
expressed in the <a>verifiable presentation</a>.
1928+
If the <code>holder</code> <a>property> is absent, information about the
1929+
<a>holder</a> is expected to either be obtained via the securing mechanism, or
1930+
to not pertain to the <a>validation</a> of the <a>verifiable presentation</a>.
19311931
</dd>
19321932
<dt><var>proof</var></dt>
19331933
<dd>
1934-
If present, the value of the <code>proof</code> <a>property</a> ensures that
1935-
the <a>presentation</a> is <a>verifiable</a>. For details related to the use of
1936-
this property, see Section <a href="#proofs-signatures"></a>.
1934+
The <a>verifiable presentation</a> MAY include a <code>proof</code>
1935+
<a>property</a>. If present, the value SHOULD be used to express a securing
1936+
mechanism such as [[?VC-DATA-INTEGRITY]]. A <a>verifiable presentation</a> MAY
1937+
be secured using an external proof such as [[?VC-JWT]]. For details related to
1938+
the use of this property, see Section <a href="#securing-verifiable-credentials"></a>.
19371939
</dd>
19381940
</dl>
19391941

19401942
<p>
1941-
The example below shows a <a>verifiable presentation</a> that embeds
1942-
<a>verifiable credentials</a>.
1943+
The example below shows a <a>verifiable presentation</a>:
19431944
</p>
19441945

19451946
<pre class="example nohighlight" title="Basic structure of a presentation">
@@ -1971,18 +1972,14 @@ <h4>Presentations Using Derived Credentials</h4>
19711972
<p>
19721973
Some zero-knowledge cryptography schemes might enable <a>holders</a> to
19731974
indirectly prove they hold <a>claims</a> from a <a>verifiable credential</a>
1974-
without revealing the <a>verifiable credential</a> itself. In these schemes, a
1975-
<a>claim</a> from a <a>verifiable credential</a> might be used to derive a
1976-
presented value, which is cryptographically asserted such that a <a>verifier</a>
1977-
can trust the value if they trust the <a>issuer</a>.
1975+
without revealing all claims in that <a>verifiable credential</a>. In these schemes,
1976+
a <a>verifiable credential</a> might be used to derive presentable data, which is
1977+
cryptographically asserted such that a <a>verifier</a> can trust the value if
1978+
they trust the <a>issuer</a>.
19781979
</p>
1979-
19801980
<p>
1981-
For example, a <a>verifiable credential</a> containing the <a>claim</a>
1982-
<code>date of birth</code> might be used to derive the presented value
1983-
<code>over the age of 15</code> in a manner that is cryptographically
1984-
<a>verifiable</a>. That is, a <a>verifier</a> can still trust the derived value
1985-
if they trust the <a>issuer</a>.
1981+
Some selective disclosure schemes can share a subset of <a>claims</a>
1982+
derived from a <a>verifiable credential</a>.
19861983
</p>
19871984

19881985
<p class="note">
@@ -1991,17 +1988,6 @@ <h4>Presentations Using Derived Credentials</h4>
19911988
Section <a href="#zero-knowledge-proofs"></a>.
19921989
</p>
19931990

1994-
<p>
1995-
Selective disclosure schemes using zero-knowledge proofs can use <a>claims</a>
1996-
expressed in this model to prove additional statements about those <a>claims</a>.
1997-
For example, a <a>claim</a> specifying a <a>subject's</a> date of birth can be
1998-
used as a predicate to prove the <a>subject's</a> age is within a given range,
1999-
and therefore prove the <a>subject</a> qualifies for age-related discounts,
2000-
without actually revealing the <a>subject's</a> birthdate. The <a>holder</a>
2001-
has the flexibility to use the <a>claim</a> in any way that is applicable to
2002-
the desired <a>verifiable presentation</a>.
2003-
</p>
2004-
20051991
<figure>
20061992
<img style="margin: auto; display: block; width: 50%;"
20071993
src="diagrams/claim-example-2.svg" alt="Pat has a property

0 commit comments

Comments
 (0)