Skip to content

Commit a90c52c

Browse files
dvorak42github-actions[bot]
andcommittedJul 18, 2024
Merge pull request #305 from arichiv/patch-1
SHA: 3530525 Reason: push, by dvorak42 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent c427459 commit a90c52c

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed
 

‎index.html

+11-7
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<link href="https://www.w3.org/StyleSheets/TR/2021/cg-draft" rel="stylesheet">
77
<meta content="Bikeshed version 82ce88815, updated Thu Sep 7 16:33:55 2023 -0700" name="generator">
88
<link href="https://wicg.github.io/trust-token-api/" rel="canonical">
9-
<meta content="ae07cb54ee14b9c74c378cf0cd1a8bed06e4c535" name="document-revision">
9+
<meta content="35305251347e60ffa8f1101721d1edad66e849d4" name="document-revision">
1010
<style>/* Boilerplate: style-autolinks */
1111
.css.css, .property.property, .descriptor.descriptor {
1212
color: var(--a-normal-text);
@@ -647,7 +647,7 @@
647647
<div class="head">
648648
<p data-fill-with="logo"><a class="logo" href="https://www.w3.org/"> <img alt="W3C" height="48" src="https://www.w3.org/StyleSheets/TR/2021/logos/W3C" width="72"> </a> </p>
649649
<h1 class="p-name no-ref" id="title">Private State Token API</h1>
650-
<p id="w3c-state"><a href="https://www.w3.org/standards/types#CG-DRAFT">Draft Community Group Report</a>, <time class="dt-updated" datetime="2024-06-18">18 June 2024</time></p>
650+
<p id="w3c-state"><a href="https://www.w3.org/standards/types#CG-DRAFT">Draft Community Group Report</a>, <time class="dt-updated" datetime="2024-07-18">18 July 2024</time></p>
651651
<div data-fill-with="spec-metadata">
652652
<dl>
653653
<dt>This version:
@@ -765,7 +765,8 @@ <h2 class="no-num no-toc no-ref" id="contents">Table of Contents</h2>
765765
<a href="#security"><span class="secno">14</span> <span class="content">Security Considerations</span></a>
766766
<ol class="toc">
767767
<li><a href="#token-exhaustion"><span class="secno">14.1</span> <span class="content">Preventing Token Exhaustion</span></a>
768-
<li><a href="#preventing-double-spend"><span class="secno">14.2</span> <span class="content">Preventing Double Spending</span></a>
768+
<li><a href="#issuer-exhaustion"><span class="secno">14.2</span> <span class="content">Preventing Issuer Exhaustion</span></a>
769+
<li><a href="#preventing-double-spend"><span class="secno">14.3</span> <span class="content">Preventing Double Spending</span></a>
769770
</ol>
770771
<li>
771772
<a href="#iana-considerations"><span class="secno">15</span> <span class="content">IANA Considerations</span></a>
@@ -1861,7 +1862,10 @@ <h3 class="heading settled" data-level="14.1" id="token-exhaustion"><span class=
18611862
operations. In the context of a given origin, two redemptions are allowed initially. However,
18621863
the third redemption is only allowed once more than an <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#implementation-defined" id="ref-for-implementation-defined⑤">implementation-defined</a> amount of time,
18631864
usually 48 hours, have elapsed since the first redemption.</p>
1864-
<h3 class="heading settled" data-level="14.2" id="preventing-double-spend"><span class="secno">14.2. </span><span class="content">Preventing Double Spending</span><a class="self-link" href="#preventing-double-spend"></a></h3>
1865+
<h3 class="heading settled" data-level="14.2" id="issuer-exhaustion"><span class="secno">14.2. </span><span class="content">Preventing Issuer Exhaustion</span><a class="self-link" href="#issuer-exhaustion"></a></h3>
1866+
Competing scripts might race to call <code>hasPrivateToken(issuer)</code> to ensure their <var>issuer</var> enters the <a data-link-type="dfn" href="#issuerassociations" id="ref-for-issuerassociations⑧">issuerAssociations</a> <a data-link-type="dfn" href="https://infra.spec.whatwg.org/#ordered-map" id="ref-for-ordered-map⑦">map</a> before the <var>issuer</var> of others given a limit of two per <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#concept-environment-top-level-origin" id="ref-for-concept-environment-top-level-origin⑥">top-level origin</a>. To control this process, the <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#concept-environment-top-level-origin" id="ref-for-concept-environment-top-level-origin⑦">top-level origin</a> could call <code>hasPrivateToken(issuer)</code> up to twice before any other JavaScript is included
1867+
to ensure their preferred <var>issuer</var>s are available.
1868+
<h3 class="heading settled" data-level="14.3" id="preventing-double-spend"><span class="secno">14.3. </span><span class="content">Preventing Double Spending</span><a class="self-link" href="#preventing-double-spend"></a></h3>
18651869
<p>Issuers can verify that each token is seen only once, because every redemption
18661870
is sent to the same token issuer. This means that even if a malicious piece of
18671871
malware exfiltrates all of a user’s tokens, the tokens will run out over time.
@@ -2578,7 +2582,7 @@ <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">I
25782582
window.dfnpanelData['e99bd18e'] = {"dfnID": "e99bd18e", "url": "https://html.spec.whatwg.org/multipage/webappapis.html#concept-relevant-global", "dfnText": "relevant global object", "refSections": [{"refs": [{"id": "ref-for-concept-relevant-global"}], "title": "11.1. Token Query"}, {"refs": [{"id": "ref-for-concept-relevant-global\u2460"}], "title": "11.2. Redemption Record Query"}], "external": true};
25792583
window.dfnpanelData['9c4c1e66'] = {"dfnID": "9c4c1e66", "url": "https://html.spec.whatwg.org/multipage/webappapis.html#relevant-settings-object", "dfnText": "relevant settings object", "refSections": [{"refs": [{"id": "ref-for-relevant-settings-object"}], "title": "11.1. Token Query"}, {"refs": [{"id": "ref-for-relevant-settings-object\u2460"}], "title": "11.2. Redemption Record Query"}], "external": true};
25802584
window.dfnpanelData['65181da8'] = {"dfnID": "65181da8", "url": "https://html.spec.whatwg.org/multipage/webappapis.html#secure-context", "dfnText": "secure context", "refSections": [{"refs": [{"id": "ref-for-secure-context"}], "title": "9.1. Creating An Issue Request"}, {"refs": [{"id": "ref-for-secure-context\u2460"}], "title": "10. Redeeming Tokens"}, {"refs": [{"id": "ref-for-secure-context\u2461"}], "title": "10.2. Redemption Records"}, {"refs": [{"id": "ref-for-secure-context\u2462"}], "title": "11.1. Token Query"}, {"refs": [{"id": "ref-for-secure-context\u2463"}], "title": "11.2. Redemption Record Query"}], "external": true};
2581-
window.dfnpanelData['c63519ed'] = {"dfnID": "c63519ed", "url": "https://html.spec.whatwg.org/multipage/webappapis.html#concept-environment-top-level-origin", "dfnText": "top-level origin", "refSections": [{"refs": [{"id": "ref-for-concept-environment-top-level-origin"}], "title": "9.1. Creating An Issue Request"}, {"refs": [{"id": "ref-for-concept-environment-top-level-origin\u2460"}], "title": "10. Redeeming Tokens"}, {"refs": [{"id": "ref-for-concept-environment-top-level-origin\u2461"}], "title": "10.1. Handling Redeem Responses"}, {"refs": [{"id": "ref-for-concept-environment-top-level-origin\u2462"}], "title": "10.2. Redemption Records"}, {"refs": [{"id": "ref-for-concept-environment-top-level-origin\u2463"}], "title": "11.1. Token Query"}, {"refs": [{"id": "ref-for-concept-environment-top-level-origin\u2464"}], "title": "11.2. Redemption Record Query"}], "external": true};
2585+
window.dfnpanelData['c63519ed'] = {"dfnID": "c63519ed", "url": "https://html.spec.whatwg.org/multipage/webappapis.html#concept-environment-top-level-origin", "dfnText": "top-level origin", "refSections": [{"refs": [{"id": "ref-for-concept-environment-top-level-origin"}], "title": "9.1. Creating An Issue Request"}, {"refs": [{"id": "ref-for-concept-environment-top-level-origin\u2460"}], "title": "10. Redeeming Tokens"}, {"refs": [{"id": "ref-for-concept-environment-top-level-origin\u2461"}], "title": "10.1. Handling Redeem Responses"}, {"refs": [{"id": "ref-for-concept-environment-top-level-origin\u2462"}], "title": "10.2. Redemption Records"}, {"refs": [{"id": "ref-for-concept-environment-top-level-origin\u2463"}], "title": "11.1. Token Query"}, {"refs": [{"id": "ref-for-concept-environment-top-level-origin\u2464"}], "title": "11.2. Redemption Record Query"}, {"refs": [{"id": "ref-for-concept-environment-top-level-origin\u2465"}, {"id": "ref-for-concept-environment-top-level-origin\u2466"}], "title": "14.2. Preventing Issuer Exhaustion"}], "external": true};
25822586
window.dfnpanelData['53275e46'] = {"dfnID": "53275e46", "url": "https://infra.spec.whatwg.org/#list-append", "dfnText": "append", "refSections": [{"refs": [{"id": "ref-for-list-append"}, {"id": "ref-for-list-append\u2460"}, {"id": "ref-for-list-append\u2461"}, {"id": "ref-for-list-append\u2462"}, {"id": "ref-for-list-append\u2463"}, {"id": "ref-for-list-append\u2464"}], "title": "5. Algorithms"}, {"refs": [{"id": "ref-for-list-append\u2465"}], "title": "10.2. Redemption Records"}], "external": true};
25832587
window.dfnpanelData['77b4c09a'] = {"dfnID": "77b4c09a", "url": "https://infra.spec.whatwg.org/#assert", "dfnText": "assert", "refSections": [{"refs": [{"id": "ref-for-assert"}], "title": "6.3. Modifications to http-network-or-cache fetch"}], "external": true};
25842588
window.dfnpanelData['3de9e659'] = {"dfnID": "3de9e659", "url": "https://infra.spec.whatwg.org/#byte-sequence", "dfnText": "byte sequence", "refSections": [{"refs": [{"id": "ref-for-byte-sequence"}, {"id": "ref-for-byte-sequence\u2460"}, {"id": "ref-for-byte-sequence\u2461"}, {"id": "ref-for-byte-sequence\u2462"}, {"id": "ref-for-byte-sequence\u2463"}, {"id": "ref-for-byte-sequence\u2464"}, {"id": "ref-for-byte-sequence\u2465"}, {"id": "ref-for-byte-sequence\u2466"}, {"id": "ref-for-byte-sequence\u2467"}, {"id": "ref-for-byte-sequence\u2468"}, {"id": "ref-for-byte-sequence\u2460\u24ea"}, {"id": "ref-for-byte-sequence\u2460\u2460"}, {"id": "ref-for-byte-sequence\u2460\u2461"}, {"id": "ref-for-byte-sequence\u2460\u2462"}, {"id": "ref-for-byte-sequence\u2460\u2463"}], "title": "5. Algorithms"}, {"refs": [{"id": "ref-for-byte-sequence\u2460\u2464"}], "title": "6.2. Modifications to request"}, {"refs": [{"id": "ref-for-byte-sequence\u2460\u2465"}], "title": "10.2. Redemption Records"}], "external": true};
@@ -2591,7 +2595,7 @@ <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">I
25912595
window.dfnpanelData['860300d4'] = {"dfnID": "860300d4", "url": "https://infra.spec.whatwg.org/#implementation-defined", "dfnText": "implementation-defined", "refSections": [{"refs": [{"id": "ref-for-implementation-defined"}], "title": "3.1. Issuer Key Fetching/Registration"}, {"refs": [{"id": "ref-for-implementation-defined\u2460"}], "title": "5. Algorithms"}, {"refs": [{"id": "ref-for-implementation-defined\u2461"}], "title": "9.1. Creating An Issue Request"}, {"refs": [{"id": "ref-for-implementation-defined\u2462"}], "title": "10. Redeeming Tokens"}, {"refs": [{"id": "ref-for-implementation-defined\u2463"}], "title": "13.3.1. Mitigation: Dynamic Issuance/Redemption Limits"}, {"refs": [{"id": "ref-for-implementation-defined\u2464"}], "title": "14.1. Preventing Token Exhaustion"}], "external": true};
25922596
window.dfnpanelData['36333997'] = {"dfnID": "36333997", "url": "https://infra.spec.whatwg.org/#byte-sequence-length", "dfnText": "length", "refSections": [{"refs": [{"id": "ref-for-byte-sequence-length"}], "title": "5. Algorithms"}], "external": true};
25932597
window.dfnpanelData['649608b9'] = {"dfnID": "649608b9", "url": "https://infra.spec.whatwg.org/#list", "dfnText": "list", "refSections": [{"refs": [{"id": "ref-for-list"}, {"id": "ref-for-list\u2460"}, {"id": "ref-for-list\u2461"}, {"id": "ref-for-list\u2462"}, {"id": "ref-for-list\u2463"}, {"id": "ref-for-list\u2464"}, {"id": "ref-for-list\u2465"}, {"id": "ref-for-list\u2466"}, {"id": "ref-for-list\u2467"}], "title": "5. Algorithms"}], "external": true};
2594-
window.dfnpanelData['3fca5a9e'] = {"dfnID": "3fca5a9e", "url": "https://infra.spec.whatwg.org/#ordered-map", "dfnText": "map", "refSections": [{"refs": [{"id": "ref-for-ordered-map"}], "title": "3. Issuer Public Keys"}, {"refs": [{"id": "ref-for-ordered-map\u2460"}, {"id": "ref-for-ordered-map\u2461"}, {"id": "ref-for-ordered-map\u2462"}, {"id": "ref-for-ordered-map\u2463"}, {"id": "ref-for-ordered-map\u2464"}], "title": "5. Algorithms"}, {"refs": [{"id": "ref-for-ordered-map\u2465"}], "title": "10.2. Redemption Records"}], "external": true};
2598+
window.dfnpanelData['3fca5a9e'] = {"dfnID": "3fca5a9e", "url": "https://infra.spec.whatwg.org/#ordered-map", "dfnText": "map", "refSections": [{"refs": [{"id": "ref-for-ordered-map"}], "title": "3. Issuer Public Keys"}, {"refs": [{"id": "ref-for-ordered-map\u2460"}, {"id": "ref-for-ordered-map\u2461"}, {"id": "ref-for-ordered-map\u2462"}, {"id": "ref-for-ordered-map\u2463"}, {"id": "ref-for-ordered-map\u2464"}], "title": "5. Algorithms"}, {"refs": [{"id": "ref-for-ordered-map\u2465"}], "title": "10.2. Redemption Records"}, {"refs": [{"id": "ref-for-ordered-map\u2466"}], "title": "14.2. Preventing Issuer Exhaustion"}], "external": true};
25952599
window.dfnpanelData['99c988d6'] = {"dfnID": "99c988d6", "url": "https://infra.spec.whatwg.org/#list-remove", "dfnText": "remove", "refSections": [{"refs": [{"id": "ref-for-list-remove"}, {"id": "ref-for-list-remove\u2460"}], "title": "5. Algorithms"}], "external": true};
25962600
window.dfnpanelData['0e6b2056'] = {"dfnID": "0e6b2056", "url": "https://infra.spec.whatwg.org/#map-set", "dfnText": "set", "refSections": [{"refs": [{"id": "ref-for-map-set"}, {"id": "ref-for-map-set\u2460"}], "title": "5. Algorithms"}, {"refs": [{"id": "ref-for-map-set\u2461"}], "title": "10.2. Redemption Records"}], "external": true};
25972601
window.dfnpanelData['0204d188'] = {"dfnID": "0204d188", "url": "https://infra.spec.whatwg.org/#list-size", "dfnText": "size", "refSections": [{"refs": [{"id": "ref-for-list-size"}, {"id": "ref-for-list-size\u2460"}, {"id": "ref-for-list-size\u2461"}], "title": "5. Algorithms"}], "external": true};
@@ -2638,7 +2642,7 @@ <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">I
26382642
window.dfnpanelData['redeemresponse'] = {"dfnID": "redeemresponse", "url": "#redeemresponse", "dfnText": "RedeemResponse", "refSections": [{"refs": [{"id": "ref-for-redeemresponse"}], "title": "10.1. Handling Redeem Responses"}], "external": false};
26392643
window.dfnpanelData['pstfinalize'] = {"dfnID": "pstfinalize", "url": "#pstfinalize", "dfnText": "PSTFinalize", "refSections": [{"refs": [{"id": "ref-for-pstfinalize"}], "title": "5. Algorithms"}], "external": false};
26402644
window.dfnpanelData['pstevaluate'] = {"dfnID": "pstevaluate", "url": "#pstevaluate", "dfnText": "PSTEvaluate", "refSections": [{"refs": [{"id": "ref-for-pstevaluate"}], "title": "4. VOPRF Methods"}], "external": false};
2641-
window.dfnpanelData['issuerassociations'] = {"dfnID": "issuerassociations", "url": "#issuerassociations", "dfnText": "issuerAssociations", "refSections": [{"refs": [{"id": "ref-for-issuerassociations"}, {"id": "ref-for-issuerassociations\u2460"}, {"id": "ref-for-issuerassociations\u2461"}, {"id": "ref-for-issuerassociations\u2462"}, {"id": "ref-for-issuerassociations\u2463"}, {"id": "ref-for-issuerassociations\u2464"}, {"id": "ref-for-issuerassociations\u2465"}, {"id": "ref-for-issuerassociations\u2466"}], "title": "5. Algorithms"}], "external": false};
2645+
window.dfnpanelData['issuerassociations'] = {"dfnID": "issuerassociations", "url": "#issuerassociations", "dfnText": "issuerAssociations", "refSections": [{"refs": [{"id": "ref-for-issuerassociations"}, {"id": "ref-for-issuerassociations\u2460"}, {"id": "ref-for-issuerassociations\u2461"}, {"id": "ref-for-issuerassociations\u2462"}, {"id": "ref-for-issuerassociations\u2463"}, {"id": "ref-for-issuerassociations\u2464"}, {"id": "ref-for-issuerassociations\u2465"}, {"id": "ref-for-issuerassociations\u2466"}], "title": "5. Algorithms"}, {"refs": [{"id": "ref-for-issuerassociations\u2467"}], "title": "14.2. Preventing Issuer Exhaustion"}], "external": false};
26422646
window.dfnpanelData['determine-whether-associating-an-issuer-would-exceed-the-top-level-limit'] = {"dfnID": "determine-whether-associating-an-issuer-would-exceed-the-top-level-limit", "url": "#determine-whether-associating-an-issuer-would-exceed-the-top-level-limit", "dfnText": "determine whether associating an issuer would exceed the top-level limit", "refSections": [{"refs": [{"id": "ref-for-determine-whether-associating-an-issuer-would-exceed-the-top-level-limit"}], "title": "9.1. Creating An Issue Request"}, {"refs": [{"id": "ref-for-determine-whether-associating-an-issuer-would-exceed-the-top-level-limit\u2460"}], "title": "10. Redeeming Tokens"}, {"refs": [{"id": "ref-for-determine-whether-associating-an-issuer-would-exceed-the-top-level-limit\u2461"}], "title": "11.1. Token Query"}], "external": false};
26432647
window.dfnpanelData['associate-the-issuer'] = {"dfnID": "associate-the-issuer", "url": "#associate-the-issuer", "dfnText": "associate the issuer", "refSections": [{"refs": [{"id": "ref-for-associate-the-issuer"}], "title": "9.1. Creating An Issue Request"}, {"refs": [{"id": "ref-for-associate-the-issuer\u2460"}], "title": "10. Redeeming Tokens"}, {"refs": [{"id": "ref-for-associate-the-issuer\u2461"}], "title": "11.1. Token Query"}], "external": false};
26442648
window.dfnpanelData['is-associated-with'] = {"dfnID": "is-associated-with", "url": "#is-associated-with", "dfnText": "is associated with", "refSections": [{"refs": [{"id": "ref-for-is-associated-with"}], "title": "11.2. Redemption Record Query"}], "external": false};

0 commit comments

Comments
 (0)