Skip to content

Commit

Permalink
Merge pull request #305 from arichiv/patch-1
Browse files Browse the repository at this point in the history
SHA: 3530525
Reason: push, by dvorak42

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
  • Loading branch information
dvorak42 and github-actions[bot] committed Jul 18, 2024
1 parent c427459 commit a90c52c
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<link href="https://www.w3.org/StyleSheets/TR/2021/cg-draft" rel="stylesheet">
<meta content="Bikeshed version 82ce88815, updated Thu Sep 7 16:33:55 2023 -0700" name="generator">
<link href="https://wicg.github.io/trust-token-api/" rel="canonical">
<meta content="ae07cb54ee14b9c74c378cf0cd1a8bed06e4c535" name="document-revision">
<meta content="35305251347e60ffa8f1101721d1edad66e849d4" name="document-revision">
<style>/* Boilerplate: style-autolinks */
.css.css, .property.property, .descriptor.descriptor {
color: var(--a-normal-text);
Expand Down Expand Up @@ -647,7 +647,7 @@
<div class="head">
<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>
<h1 class="p-name no-ref" id="title">Private State Token API</h1>
<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>
<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>
<div data-fill-with="spec-metadata">
<dl>
<dt>This version:
Expand Down Expand Up @@ -765,7 +765,8 @@ <h2 class="no-num no-toc no-ref" id="contents">Table of Contents</h2>
<a href="#security"><span class="secno">14</span> <span class="content">Security Considerations</span></a>
<ol class="toc">
<li><a href="#token-exhaustion"><span class="secno">14.1</span> <span class="content">Preventing Token Exhaustion</span></a>
<li><a href="#preventing-double-spend"><span class="secno">14.2</span> <span class="content">Preventing Double Spending</span></a>
<li><a href="#issuer-exhaustion"><span class="secno">14.2</span> <span class="content">Preventing Issuer Exhaustion</span></a>
<li><a href="#preventing-double-spend"><span class="secno">14.3</span> <span class="content">Preventing Double Spending</span></a>
</ol>
<li>
<a href="#iana-considerations"><span class="secno">15</span> <span class="content">IANA Considerations</span></a>
Expand Down Expand Up @@ -1861,7 +1862,10 @@ <h3 class="heading settled" data-level="14.1" id="token-exhaustion"><span class=
operations. In the context of a given origin, two redemptions are allowed initially. However,
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,
usually 48 hours, have elapsed since the first redemption.</p>
<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>
<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>
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
to ensure their preferred <var>issuer</var>s are available.
<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>
<p>Issuers can verify that each token is seen only once, because every redemption
is sent to the same token issuer. This means that even if a malicious piece of
malware exfiltrates all of a user’s tokens, the tokens will run out over time.
Expand Down Expand Up @@ -2578,7 +2582,7 @@ <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">I
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};
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};
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};
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};
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};
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};
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};
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};
Expand All @@ -2591,7 +2595,7 @@ <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">I
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};
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};
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};
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};
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};
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};
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};
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};
Expand Down Expand Up @@ -2638,7 +2642,7 @@ <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">I
window.dfnpanelData['redeemresponse'] = {"dfnID": "redeemresponse", "url": "#redeemresponse", "dfnText": "RedeemResponse", "refSections": [{"refs": [{"id": "ref-for-redeemresponse"}], "title": "10.1. Handling Redeem Responses"}], "external": false};
window.dfnpanelData['pstfinalize'] = {"dfnID": "pstfinalize", "url": "#pstfinalize", "dfnText": "PSTFinalize", "refSections": [{"refs": [{"id": "ref-for-pstfinalize"}], "title": "5. Algorithms"}], "external": false};
window.dfnpanelData['pstevaluate'] = {"dfnID": "pstevaluate", "url": "#pstevaluate", "dfnText": "PSTEvaluate", "refSections": [{"refs": [{"id": "ref-for-pstevaluate"}], "title": "4. VOPRF Methods"}], "external": false};
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};
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};
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};
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};
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};
Expand Down

0 comments on commit a90c52c

Please sign in to comment.