<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.0.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC9458 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9458.xml">
<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
]>


<rfc ipr="trust200902" docName="draft-bakshi-vdt-verifiable-delay-token-00" category="exp" submissionType="IETF">
  <front>
    <title abbrev="VDT">Verifiable Delay Tokens for Privacy-Preserving Time Enforcement</title>

    <author initials="" surname="C-DAC Pune" fullname="Puneet Bakshi">
      <organization>C-DAC</organization>
      <address>
        <postal>
          <city>Pune</city>
        </postal>
        <email>puneetb@cdac.in</email>
      </address>
    </author>

    <date year="2026" month="January" day="10"/>

    <area>Security</area>
    <workgroup>CFRG</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 38?>

<t>This document specifies a protocol for the issuance and verification of
Verifiable Delay Tokens (VDT) that proves that a minimum amount of wall
time has elapsed since the issuance of the VDT. The protocol does not
rely on trusted or synchronized time sources and instead uses Verifiable
Delay Functions (VDFs). The protocol supports time-based access control,
anti-abuse and privacy-preserving mechanisms by letting the verifier
enforce a waiting period, mitigating the abuse without learning client
identity. The protocol ensures unlinkability between token issuance and
redemption and does not require the verifier to be aware of the client
identifiers, network addresses or any long-lived state. VDTs compose well
with the existing Internet protocols such as HTTP-based systems and
Oblivious HTTP.</t>



    </abstract>



  </front>

  <middle>


<?line 53?>

<section anchor="introduction"><name>Introduction</name>

<section anchor="motivation"><name>Motivation</name>

<t>Many Internet services require time-based access control to enforce rate
limits, mitigate abuse or require clients to wait before retrying access
to a resource. For example, after repeated failed authentications (HTTP
401), too many requests (HTTP 429) and challenge-based defenses
(CAPTCHA) against automated abuse by bots.</t>

<t>Typical existing mitigation techniques require the following from
clients and verifier.</t>

<t><list style="symbols">
  <t>Let verifier identify clients across multiple requests.</t>
  <t>Let verifier maintain state of the clients.</t>
  <t>Let client trust the clock maintained by verifier.</t>
  <t>Let the logical connection between client and verifier be maintained
during the delay.</t>
</list></t>

<t>These requirements introduce privacy challenges. The ability of verifier
to identify clients across multiple requests enables linkability of
multiple requests and trackability of client behavior over time.
Maintaining state of the clients at verifier enables correlation across
requests and increases complexity. The full reliance on the clock
maintained by verifier can lead to time manipulation by verifier. A
continuous logical connection requires continuous stable connection and
increases the verifier load and the latency.</t>

<t>Hence, at present, there is a lack of a standardized mechanism to let a
client prove to a verifier that a minimum amount of real time has
elapsed without revealing client identity, without relying on trusted
clock and without maintaining continuous logical connection with the
verifier during the delay period.</t>

<t>This document aims to address this gap.</t>

</section>
<section anchor="verifiable-delay-functions-as-a-time-primitive"><name>Verifiable Delay Functions as a Time Primitive</name>

<t>A Verifiable Delay Function (VDF) is a cryptographic primitive that
requires a prescribed sequential time for the computation even with
massive parallelism and produces a result which can be verified
efficiently. The VDF properties makes it apt for enforcing elapsed real
time.</t>

<t><list style="symbols">
  <t>Sequentiality: The computation time relies on the elapsed real time
rather than the computational power.</t>
  <t>Efficient Verifiability: Any verifier can verify the correctness of
the result efficiently.</t>
  <t>Clock Indepdendence: Time sources need not be synchronized or trusted.</t>
</list></t>

<t>Note that VDFs enable a bound on elapsed time rather than computational
power which makes it different from the Proof-of-Work constructions.</t>

</section>
<section anchor="overview-of-verifiable-delay-tokens"><name>Overview of Verifiable Delay Tokens</name>

<t>Verifiable Delay Token (VDT) aims to bind the challenge issued by an
issuer to the result of the VDF and later be presented to a verifier as
a proof of the elapsed time. At a broad level, the protocol works as
follows.</t>

<t><list style="numbers" type="1">
  <t>A client requests a delay challenge from an issuer without revealing
its identity.</t>
  <t>The issuer provides VDF parameters and a challenge value without
tracking the client.</t>
  <t>The client computes the VDF without the need of being online or to
interact.</t>
  <t>The client constructs the VDT and presents it to the verifier.</t>
  <t>The verifier efficiently verifies that the required delay has
elapsed without requiring to re-compute the VDF, without trusting
the timestamps and without the need to know when the computation was
started.</t>
</list></t>

<t>The protocol ensures the following.</t>

<t><list style="numbers" type="1">
  <t>The issuer does not learn who redeemed the token, at what time and
using which of the issued challenges.</t>
  <t>The verifier does not learn when and to whom the token was issued.</t>
  <t>The client does not reveal a identifier during issuance and
redemption of the token.</t>
</list></t>

<t>Note that issuer and verifier <bcp14>MAY</bcp14> be distinct entities enabling
deployment models which preserves unlinkability between issuance and
redemption.</t>

</section>
<section anchor="design-goals"><name>Design Goals</name>

<t>The protocol aims to meet the following design goals.</t>

<t><list style="symbols">
  <t>Elapsed time enforcement: Ensure that a minimum amount of elapsed real
time.</t>
  <t>Privacy Preservation: Ensure unlinkability between issuance and
redemption by avoiding inclusion of client identifiers.</t>
  <t>Zero-trust on Clock Sources: Avoid any trust on the synchronized or
trusted clock sources.</t>
  <t>Offline Delay Computation: Let delay computation be done without the
need of an online interaction.</t>
  <t>Efficient Verification: Ensure that the verifier be able to verify the
token efficiently.</t>
  <t>Composability: Let the integration of the protocol with the existing
Internet protocols be easy.</t>
</list></t>

</section>
<section anchor="non-goals"><name>Non-Goals</name>

<t>Following details are intentionally kept of scope from this document.</t>

<t><list style="symbols">
  <t>Who the client is, how it is authenticated and what it is authorized
to do.</t>
  <t>What are the fees for tokens, economic incentives, pricing or payment
mechanisms.</t>
  <t>What, if any, hardware attestation or trusted execution environments
are used.</t>
  <t>Fairness guarantees across heterogenous client devices such as a
mobile phone, a laptop or a GPU cluster.</t>
  <t>Application-specific access control policies.</t>
</list></t>

</section>
<section anchor="applicability"><name>Applicability</name>

<t>VDTs are intended to be used in scenarios where a verifier wants to
enforce a time delay without the need of tracking clients or to maintain
persistent state. Some of the applications are listed below.</t>

<t><list style="symbols">
  <t>Privacy-preserving rate limiting such as permit 100 requests per IP
per hour.</t>
  <t>Challenge-response systems without CAPTCHAs which could have otherwise
track users.</t>
  <t>Deferred access to sensitive resources even if access is allowed such
as in case of repeated password reset attempts.</t>
  <t>Abuse mitigation in anonymous or oblivious transport systems in which
the traditional defense mechanisms fail because of anonymized client
identities.</t>
</list></t>

</section>
<section anchor="requirements-language"><name>Requirements Language</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

<t>The following terms are used throughout this document.</t>

<t><list style="symbols">
  <t>Verifiable Delay Function (VDF):</t>
</list></t>

<t>A VDF is a cryptographic function that requires a certain sequential
computation to complete, making it unable to parallelize the computation
effectively while yet enabling efficient verification of the outcome
using publicly available data. A VDF is defined by algorithms for setup,
evaluation, and verification and by a parameter that controls the
desired delay.</t>

<t><list style="symbols">
  <t>Verifiable Delay Token (VDT):</t>
</list></t>

<t>A VDT is a cryptographic token created from the result and proof
produced by a VDF computation, and the metadata necessary for
verification. A valid VDT serves as a proof that a minimum amount of
time has elapsed since the challenge issuance without revealing client
identity or requiring trusted clocks.</t>

<t><list style="symbols">
  <t>Client:</t>
</list></t>

<t>A Client is the entity that initiates a delay challenge, completes the
VDF evaluation, and provides a VDT for validation. The client is not
required to authenticate itself, be a trusted entity and reveal its
identifier.</t>

<t><list style="symbols">
  <t>Issuer:</t>
</list></t>

<t>An Issuer is the entity that issues delay challenges, VDF parameters and
challenge seed. The Issuer <bcp14>MAY</bcp14> apply necessary policies to challenge
issuance, is not involved in delay computation and is not required to
learn about token redemption.</t>

<t><list style="symbols">
  <t>Verifier:</t>
</list></t>

<t>A Verifier is an entity that validates VDT and determines whether the
delay requirement has been met. A Verifier is not required to maintain a
per-client state. The verification of the VDF computation given the
proof and the output is an efficient operation.</t>

<t><list style="symbols">
  <t>Relay:</t>
</list></t>

<t>A Relay is an optional entity that transfers protocol messages among
Clients, Issuers and Verifiers. Relay does not have access to plaintext
content of the message. Relays are used to provide network-level privacy
and are assumed to be honest-but curious.</t>

<t><list style="symbols">
  <t>Challenge:</t>
</list></t>

<t>A Challenge is a set of parameters issued by an Issuer in Challenge
Response message. It defines the input and difficulty for a VDF
computation. At minimum, a Challenge contains a challenge seed and a
delay parameter.</t>

<t><list style="symbols">
  <t>The Challenge Seed:</t>
</list></t>

<t>The Challenge Seed is a fresh, unpredictable value generated by the
Issuer and used as input to the VDF. Challenge seeds <bcp14>MUST</bcp14> have a high
probability of being unique and <bcp14>MUST NOT</bcp14> be used in more than one
Challenge.</t>

<t><list style="symbols">
  <t>Delay Parameter:</t>
</list></t>

<t>The Delay Parameter indicates the intended length of the VDF
computation. It does not indicate an absolute value and its
interpretation is VDF-specific.</t>

<t><list style="symbols">
  <t>VDF Output:</t>
</list></t>

<t>The VDF Output is the deterministic value obtained by computing the VDF
on a given input and delay parameter.</t>

<t><list style="symbols">
  <t>VDF Proof:</t>
</list></t>

<t>VDF Proof is a cryptographic object that enables efficient verification
of the VDF Output with respect to the input value and delay parameter.</t>

<t><list style="symbols">
  <t>Context Binding:</t>
</list></t>

<t>Context Binding is an optional mechanism that binds a Verifier-defined
scope, purpose or request such as reattempt post failed-authentication,
resource identifier, a service domain to a VDT. If used, context binding
is included in the VDF input.</t>

<t><list style="symbols">
  <t>Validity Window:</t>
</list></t>

<t>A Validity Window is an optional constraint that restricts the usage of
a VDT within time duration indicated by validity window. Validity
windows do not require synchronized clocks and are used to reduce replay
attack risk.</t>

<t><list style="symbols">
  <t>Unlinkability:</t>
</list></t>

<t>Unlinkability is the inability of an observer to correlate protocol
events such as Challenge Issuance and Token Redemption to the same
Client.</t>

<t><list style="symbols">
  <t>Replay:</t>
</list></t>

<t>A Replay of a VDT occurs when the same VDT which was used and accepted
earlier to obtain access is used again to obtain the access again.</t>

<t><list style="symbols">
  <t>Stateless Verification:</t>
</list></t>

<t>Stateless Verification is the verification that does not require the
Verifier to keep long-lived session or per-client state beyond what is
required to prevent token reuse.</t>

<t><list style="symbols">
  <t>Domain Separation:</t>
</list></t>

<t>A Domain Separation is a cryptographic technique used to ensure that
inputs and outputs from different protocols or contexts cannot be reused
across protocol boundaries.</t>

</section>
</section>
<section anchor="background-and-design-rationale"><name>Background and Design Rationale</name>

<t>This section presents the existing mechanisms for time-based access
control, why they are not sufficient to meet the goals mentioned in
Section 1 and how VDF can be useful as the basis of the protocol.</t>

<section anchor="server-enforced-timers"><name>Server-Enforced Timers</name>

<t>One of the existing approaches to implement time-based access control is
to let the server trust the timestamp in the Client's request and
maintain a state with the Client. The server accepts the Client's
request only if it is at least required time duration later than the
earlier request from the same client. Such mechanisms have several
privacy limitations. Maintaining a Client state across multiple requests
creates Client linkability across multiple requests typically through IP
addresses, cookies or authenticated sessions. This requires server to
maintain per-client state for at least the duration of the delay
interval. This also requires the server to trust the clock source of the
server's time source. A server can easily correlate a Challenge Request
message with the corresponding Challenge Response message. A server
enforced timer may be acceptable in deployments where revealing client
identification is acceptable, however, it is incompatible in deployments
where privacy-preserving and anonymous access control is a requirement.</t>

</section>
<section anchor="client-side-timers-and-delayed-requests"><name>Client-Side Timers and Delayed Requests</name>

<t>Other approach is to let the server trust the Client in which case the
Server will simply accept the request received from Client assuming it
is sent only after a requisite time delay. In this case, a malicious
Client can easily reduce or avoid the requisite delay unless a trusted
Client hardware or server-side verification is used.</t>

</section>
<section anchor="proof-of-work-mechanisms"><name>Proof-of-Work Mechanisms</name>

<t>Proof-of-Work (PoW) schemes require Clients to perform a specific
computational work to gain access to a resource. The time to compute PoW
is related to the computational power and not the elapsed time. PoW is
related to the computational power and not the elapsed time, can often
be computed faster using parallel techniques, varies widely across
heterogenous devices leading to unfairness and can impose unnecessary
energy consumption. Hence, a PoW is not suitable for scenarios where
minimum real-time delay is a requirement. This distinction between PoW
and VDF is discussed in foundational work on VDFs <xref target="BONEH-VDF"/>.</t>

</section>
<section anchor="token-expiry-and-credential-based-approaches"><name>Token Expiry and Credential-Based Approaches</name>

<t>Another approach is to encode the expiry timestamp in the token itself.
This approach requires Verifier to trust the time source of its clock
and of the Client, and binds a token to an identifiable Client. Such
mechanisms are not suitable for privacy-preserving unlinkable time-based
access because a token is associated with an identifiable Client which
can easily link between challenge issuance and token redemption
messages, and synchronization between Clients and Verifier.</t>

</section>
<section anchor="limitations-of-existing-delay-mechanisms"><name>Limitations of Existing Delay Mechanisms</name>

<t>Existing mechanisms are insufficient to ensure the enforcement of
real-world elapsed time, absence of trusted time sources, absence of
client identifier, stateless verification and offline delay computation.
This document introduces a standardized mechanism which satisfies all of
these requirements simultaneously.</t>

</section>
<section anchor="verifiable-delay-functions-as-a-building-block"><name>Verifiable Delay Functions as a Building Block</name>

<t>VDFs provide a cryptographic mechanism for enforcing elapsed time
through sequential computation such that an adversary cannot compute
significantly faster even with massive parallelism. VDFs have some nice
properties which are useful for the protocol. The sequential computation
of the VDF is directly proportional to the delay parameter. The
verification of the VDF is an efficient operation and is significantly
faster compared to its computation. The output of the VDF is uniquely
determined by its input and parameters. VDF does not require any trusted
or synchronized time clock.</t>

</section>
<section anchor="tokens-derived-from-delay-proofs"><name>Tokens Derived from Delay Proofs</name>

<t>The VDTs introduced in this document are cryptographic objects derived
from the computations of the VDF. Binding VDF proofs to the tokens
enables stateless verification, unlinkability between challenge issuance
and token redemption and composition with existing Internet protocols.
The abstraction of a VDT over VDF enables Verifiers to find whether the
required time duration has elapsed without requiring to know when, where
or how the VDF computation was done.</t>

</section>
<section anchor="separation-of-issuer-and-verifier"><name>Separation of Issuer and Verifier</name>

<t>The protocol allows the Issuer which issues the challenge and the
Verifier which verifies the token derived from that challenge to be
separate entities. This separation is intentional to enable
privacy-preserving deployments where the Issuer is not required to know
when or where a token is redeemed and the Verifier is not required to
know when or under which condition the corresponding challenge was
issued.</t>

</section>
</section>
<section anchor="assumptions-threat-model-and-goals"><name>Assumptions, Threat Model and Goals</name>

<t>This section presents the assumptions, the threat model and the security
and privacy goals.</t>

<section anchor="trust-and-privacy-assumptions"><name>Trust and Privacy Assumptions</name>

<t>The protocol makes the following trust assumptions.</t>

<t><list style="symbols">
  <t>The Issuer is trusted to select delay parameters in accordance with
the local policy and to generate fresh unpredictable challenge seeds.</t>
  <t>The Verifier is trusted to correctly verify the VDT and produce the
verification results.</t>
  <t>The Relay, if used, is honest-but-curious and does not tamper protocol
messages.</t>
  <t>The Client is not trusted and may try to avoid or shorten delay
computation.</t>
</list></t>

<t>The protocol does not require synchronized clocks, trusted client
hardware or trusted time sources.</t>

<t>The protocol makes the following privacy assumptions.</t>

<t><list style="symbols">
  <t>No collusion between Issuer and Verifier.</t>
  <t>No inclusion of Client identifiers in the challenge requests and token
redemption requests.</t>
  <t>Network metadata is suitably hidden by the oblivious transport or the
optional Relays.</t>
</list></t>

<t>Any compromise in these assumptions can diminish the privacy guarantees.</t>

</section>
<section anchor="threat-model"><name>Threat Model</name>

<t>The protocol assumes the presence of following adversaries.</t>

<t><list style="symbols">
  <t>Malicious Client, which may attempt to forge a VDT, shorten the VDF
computation time, replay the earlier VDT or redeem a VDT in the wrong
context.</t>
  <t>Malicious Issuer, which may attempt to reuse challenge seeds, issue
challenges with insufficient delay parameters or include identifying
information into the challenge.</t>
  <t>Malicious Verifier, which may attempt to gain additional information
that compromise Client's privacy, correlate multiple token redemption
requests or enforce incorrect access policies.</t>
  <t>Malicious Network Entities, which may observe, block, replay or delay
protocol messages.</t>
</list></t>

<t>The protocol assumes the presence of secure network communication.</t>

<t>The protocol keeps the following threats out of scope.</t>

<t><list style="symbols">
  <t>Collusion between the Issuer and the Verifier.</t>
  <t>Side-channel attacks on client hardware.</t>
  <t>Covert channels in Client's delay computation.</t>
  <t>Denial-of-Service attacks that go beyond standard mitigation</t>
  <t>The enforcement of absolute wall-clock time guarantees.</t>
</list></t>

</section>
<section anchor="securities-and-privacy-goals"><name>Securities and Privacy Goals</name>

<t>The protocol aims to achieve the following goals under the stated
assumptions.</t>

<t><list style="symbols">
  <t>Manifest the minimum elapsed time through sequential computation.</t>
  <t>Prevent token forgery via fabricating a valid token or shortening the
delay computation.</t>
  <t>Enable stateless verification.</t>
  <t>Preserve Client's anonymity and unlinkability across multiple
requests.</t>
  <t>Avoid reliance on local system time, synchronized clocks or Client
identifiers.</t>
</list></t>

</section>
</section>
<section anchor="vdt-protocol"><name>VDT Protocol</name>

<t>This section presents the participants, their interactions, underlying
assumptions, threat model and the security and privacy goals in the VDT
protocol.</t>

<section anchor="participant-entities"><name>Participant Entities</name>

<t>The protocol involves the following entities.</t>

<t><list style="symbols">
  <t>Client: Entity which for time-controlled access to a resource,
requests a delay challenge from the Issuer, computes VDF, constructs
VDT and presents the VDT to the Verifier.</t>
  <t>Issuer: Entity which generates and issues delay challenges and
associated parameters to the Clients.</t>
  <t>Verifier: Entity which receives VDTs from Clients and determines
whether the required delay has elapsed.</t>
  <t>Relay (Optional): Entity which forwards protocol messages among
Clients, Issuers and Verifiers without requiring access to the
plaintext content.</t>
</list></t>

<t>Note that the Issuer and the Verifier <bcp14>MAY</bcp14> be the same or the distinct
entities. If distinct, the protocol supports unlinkability between the
challenge issuance and the token redemption.</t>

</section>
<section anchor="protocol-phases"><name>Protocol Phases</name>

<t>The protocol primarily consists of the three phases in sequence,
Challenge Issuance, Delay Computation and Token Redemption. The 
Challenge Issuance phase does not require participation of the
Verifier and the Delay Computation phase does not require
participation of the Issuer. If a Relay is used, the messages <bcp14>MAY</bcp14> be
forwarded by it without modification.</t>

<t><list style="numbers" type="1">
  <t>Challenge Issuance Phase</t>
</list></t>

<t>In this phase, the Client sends a Challenge Request to the Issuer and
the Issuer responds with the Challenge Response to the Client. The
Challenge Response contains a challenge seed, a delay parameter, VDF
parameters and Issuer metadata. requests delay parameters from the
Issuer. The Issuer <bcp14>MUST NOT</bcp14> include in Challenge Response, the
information which can be used later to identify the Client at
redemption. The Issuer <bcp14>MAY</bcp14> enforce suitable access policy such as
rate-limitation but such policy is kept out of scope for this document.
Figure 1 illustrates the Challenge Issuance phase. Figures in this
document are illustrative and non-normative.</t>

<figure anchor="challenge-issuance-phase-fig" title="Challenge Issuance Phase">
  <artwork name="" type="" align="left">
+--------+                               +--------+
| Client |                               | Issuer |
+--------+                               +--------+
     |                                        |
     | Challenge Request                      |
     |---------------------------------------&gt;|
     |                                        |  (No client identity required)
     |                                        |
     |                                        |--+
     |                                        |  | Generate fresh challenge_seed
     |                                        |  | Select delay_parameter
     |                                        |  | Select VDF parameters
     |                                        |&lt;-+
     |                                        |
     |          Challenge Response            |
     |&lt;---------------------------------------|
     |                                        |  (No per-client state retained)
</artwork>

</figure>

<t><list style="numbers" type="1">
  <t>Delay Computation Phase</t>
</list></t>

<t>In this phase, the Client computes the VDF locally and offline using the
delay parameter and VDF parameters received from the Issuer and produces
a VDF output and a corresponding proof. The time taken for the
computation of the VDF is proportional the delay parameter even with
massive use of parallelism. A VDT is computed containing the challenge
seed, the delay parameter, the VDF parameters, the VDF output and the
VDF proof. For VDT Format refer section 7. Client <bcp14>MAY</bcp14> not be connected
with the Issuer or the Verifier during this phase. Figure 2 illustrates
the Delay Computation Phase.</t>

<figure anchor="delay-computation-phase-fig" title="Delay Computation Phase">
  <artwork name="" type="" align="left">
  +--------+
  | Client |
  +--------+
       |
       | Construct VDF input from:
       | challenge_seed, delay_parameter,
       | context, domain_sep
       |
       | Sequential VDF evaluation begins
       |
       |--+ 
       |  | Eval VDF (sequential steps)
       |&lt;-+
       | 
       |--+ 
       |  | Produce vdf_output
       |&lt;-+
       |  
       |--+ 
       |  | Produce vdf_proof
       |&lt;-+
       |  
       | (No network interaction
       |  during delay period)
       |
</artwork>

</figure>

<t><list style="numbers" type="1">
  <t>Token Redemption Phase</t>
</list></t>

<t>In this phase, the Client send a Token Redemption Request containing the
VDT to a Verifier. The Verifier validates the token version, the Issuer,
the VDF proof, the context, and the freshness included in the VDT. The
Verifier returns a Verification Result which <bcp14>MAY</bcp14> grant access to a
resource. The Client <bcp14>MUST NOT</bcp14> include information which can identify the
Client. Figure 3 illustrates the token redemption phase.</t>

<figure anchor="token-redemption-phase-fig" title="Token Redemption Phase">
  <artwork name="" type="" align="left">
 Client                Verifier
   |                      |
   | Token                |
   | Redemption Request   |
   | (VDT)                |
   |---------------------&gt;|
   |                      |
   |                      |---+
   |                      |   | Verification Steps:
   |                      |   | 1. Check token_version
   |                      |   | 2. Validate issuer_id
   |                      |   | 3. Verify VDF proof
   |                      |   | 4. Check context binding
   |                      |   | 5. Check replay/validity window
   |                      |&lt;--+
   |                      |
   |                      |---+
   |                      |   | Decision:
   |                      |   | if valid -&gt; Accepted
   |                      |   | if invalid -&gt; Rejected
   |                      |&lt;--+
   |                      |
   |&lt;---------------------|
   | Response             |
   | (Accepted/Rejected)  |
   |                      |
</artwork>

</figure>

</section>
<section anchor="binding-context-with-vdt"><name>Binding Context with VDT</name>

<t>A VDT <bcp14>MAY</bcp14> optionally be associated with a context defined by the
Verifier. The context is defined by the Verifier and shared with the
Issuer out-of-band. Later, if required, the context is given to the
Client by the Issuer in Challenge Issuance phase. Binding context to a
VDT allows a Verifier to restrict usage of the token to a specific
scope. If context is used, the Client <bcp14>MUST</bcp14> include the context value in
the VDF input and the Verifier <bcp14>MUST</bcp14> reject tokens computed without the
expected context. Note that binding context with token does not affect
unlinkability between Challenge Issuance and Token Redemption.</t>

</section>
<section anchor="freshness-and-reuse-of-the-vdt"><name>Freshness and Reuse of the VDT</name>

<t>VDTs are intended to be a limited-use tokens which is guaranteed by the
protocol through token validity window and nonce-based challenge seeds.
More details on this are covered in section 8.</t>

</section>
<section anchor="privacy-properties"><name>Privacy Properties</name>

<t>The protocol is designed with the following privacy properties.</t>

<t><list style="symbols">
  <t>The Issuer is not able to determine when or where a token is redeemed.</t>
  <t>The Verifier is not able to determine when or why a token was issued.</t>
  <t>The Client does not convey the client identifier in Challenge Issuance
and Token Redemption.</t>
</list></t>

</section>
<section anchor="error-handling"><name>Error Handling</name>

<t>The failure responses in the protocol <bcp14>MUST NOT</bcp14> reveal whether the token
was previously redeemed or is partially valid.</t>

</section>
<section anchor="extensibility"><name>Extensibility</name>

<t>The protocol is designed to support extensions. Extensions <bcp14>MUST</bcp14> preserve
the security and privacy properties defined in this document. Some of
the envisaged future extensions are listed below.</t>

<t><list style="symbols">
  <t>Multiple VDF algorithms.</t>
  <t>Multiple token encodings such as CBOR, JSON, binary TLV, compact byte
strings.</t>
  <t>Multiple transport protocols such as HTTP, OHTTP.</t>
</list></t>

</section>
</section>
<section anchor="vdf-requirements-and-constructions"><name>VDF Requirements and Constructions</name>

<t>VDT protocol relies on the cryptographic primitive VDF. Although the
protocol does not mandate a specific VDF construction, consistent with
the approach taken in other cryptographic protocol specifications RFC
9180, it is expected that the construction <bcp14>MUST</bcp14> have certain properties.
This section presents the VDF and their expected properties.</t>

<section anchor="vdf"><name>VDF</name>

<t>A VDF is a cryptographic primitive that requires a prescribed number of
sequential steps for the computation even with massive parallel
processing capability but the result can be verified efficiently. A VDF
is defined by the following three associated algorithms.</t>

<t><list style="symbols">
  <t>Setup: This algorithm takes security and difficulty parameters and
produces public parameters consisting of an evaluation key and a
verification key.</t>
  <t>Eval: This algorithm takes an input value and the evaluation key to
produce an output value and a proof. This requires a sequential
computation and the computation time is directly proportional to the
difficulty parameter.</t>
  <t>Verify: This algorithm takes the input value, the proof, the output
value and the verification key and efficiently produces a Boolean
value indicating whether the output value matches the result of the
Eval algorithm when given input value and the evaluation key.</t>
</list></t>

<t>VDF is used in the VDT protocol to cryptographically ensure minimum
elapsed time between the Challenge Issuance and the Token Redemption
events.</t>

</section>
<section anchor="vdf-properties"><name>VDF Properties</name>

<t>A VDF used in the protocol <bcp14>MUST</bcp14> have the following properties. These
properties are formalized in existing VDF constructions <xref target="BONEH-VDF"/>,
<xref target="WESOLOWSKI"/>, <xref target="PIETRZAK"/>.</t>

<t><list style="numbers" type="1">
  <t>Sequentiality: The computation of the VDF <bcp14>MUST</bcp14> require a number of
sequential steps proportional to the delay parameter. It <bcp14>SHOULD NOT</bcp14>
be possible for an adversary to be able to compute the result more
efficiently through parallelism. This property enables the
enforcement based on the elapsed time and not the computational
resources.</t>
  <t>Efficient Verification: The verification of the VDF output <bcp14>MUST</bcp14> be
efficient. This property enables scalable verification.</t>
  <t>Determinism and Uniqueness: Output of the VDF <bcp14>MUST</bcp14> be unique for a
given input and a set of parameters. This property enables the
deterministic verification.</t>
  <t>Public Verifiability: The verification <bcp14>MUST</bcp14> be possible using only
public information without the need to access any secret information
maintained by the Issuer or the Client.</t>
  <t>Parametrized Delay: The delay parameter of the VDF <bcp14>MUST</bcp14> be tunable
to let the Issuer change the intended minimum elapsed time as
required. The specific mapping of the delay parameter to the
wall-clock time is deployments-specific and is kept out of scope of
this document.</t>
  <t>Security Assumptions: ONLY the VDF constructions which rely on
well-studied underlying cryptographic hardness assumptions <bcp14>MUST</bcp14> be
used and the constructions which use proprietary or undisclosed
trapdoors are <bcp14>NOT RECOMMENDED</bcp14>.</t>
</list></t>

</section>
<section anchor="vdf-constructions"><name>VDF Constructions</name>

<t>This document does not endorse any specific VDF construction. Any VDF
construction with properties mentioned in Section X.X <bcp14>MAY</bcp14> be used. The
two constructions (there could be more) with these properties are
Wesolowski-style VDFs and Pietrzak-style VDFs.</t>

<t>All cryptographic operations <bcp14>MUST</bcp14> use domain separation information to
mitigate the risk of cross-protocol or cross-context attacks. This
prevents the possibility of using a cryptographic value from one context
in another context across multiple protocol instances just because both
the instances share the same underlying primitive.</t>

<t>The inputs to the VDF <bcp14>MUST</bcp14> be created from the challenge parameters
provided by the Issuer. A VDF input <bcp14>MUST</bcp14> include a challenge seed
provided by the Issuer, context information (if used) and domain
separation information.</t>

<figure><artwork><![CDATA[
vdf_input = Hash("VDT-VDF-Input" ||
                  challenge_seed ||
                  encode(delay_parameter) ||
                  context_binding
            )
]]></artwork></figure>

<t>The VDF output consists of a computed output value and an associated
proof that allows for efficient verification. Both the output and the
associated proof <bcp14>MUST</bcp14> be included in the token.</t>

<t>The protocol is intended to be generic in the use of VDF constructions
and implementations <bcp14>SHOULD</bcp14> support the use of new VDF constructions
without breaking interoperability. Tokens computed with unsupported or
deprecated parameters <bcp14>MUST</bcp14> be rejected by Issuers and Verifiers.</t>

</section>
</section>
<section anchor="verifiable-delay-token"><name>Verifiable Delay Token</name>

<t>This section defines the VDT structure which consists of not only the
result of a completed VDF computation but also the metadata to enable
efficient and stateless verification. The structure is independent of
both the transport and the encoding methods. A VDT binds the challenge
seed, delay parameter, optional context provided by an Issuer with a VDF
computation and proof provided by a Client. A token <bcp14>MUST NOT</bcp14> contain any
type of client identifier, network address or value that can be used to
establish a connection across Challenge Issuance and Token Redemption.</t>

<section anchor="token-structure"><name>Token Structure</name>

<t>A VDT consists of the following fields.</t>

<t><list style="numbers" type="1">
  <t>token_version: An identifier indicating the token format. This field
<bcp14>MUST</bcp14> be present. Verifiers <bcp14>MUST</bcp14> reject tokens that have unsupported
versions.</t>
  <t>issuer_id: An identifier indicating the Issuer which generated the
challenge included in the token. This field <bcp14>MUST</bcp14> be present. This
<bcp14>MUST</bcp14> be verifier-recognizable value and <bcp14>MAY</bcp14> be publicly available.</t>
  <t>challenge_seed: A value provided by the Issuer and used in the VDF
computation by Client. This field <bcp14>MUST</bcp14> be present. This <bcp14>MUST</bcp14> be
highly random, <bcp14>SHOULD NOT</bcp14> be predictable and <bcp14>MUST NOT</bcp14> be reused
across challenges.</t>
  <t>delay_parameter: A value provided by the Issuer and used in the VDF
computation by Client such that the computation time is proportional
to this parameter. This field <bcp14>MUST</bcp14> be present. Verifier <bcp14>MUST</bcp14>
validate that the value is acceptable for the intended use.</t>
  <t>vdf_output: The value produced by VDF computation by Client and used
by Verifier to validate the token. This field <bcp14>MUST</bcp14> be present. This
output value <bcp14>MUST</bcp14> be uniquely computed from a challenge seed, a
delay parameter and an optional context.</t>
  <t>vdf_proof: A cryptographic proof produced by VDF computation by
Client and used by Verifier to validate the token. This field <bcp14>MUST</bcp14>
be present. This proof <bcp14>MUST</bcp14> be uniquely computed from a challenge
seed, a delay parameter and an optional context.</t>
  <t>context_binding (optional): A value provided by the Issuer which is
used in the VDF computation. This field <bcp14>MAY</bcp14> be present. If present
in the token, the value <bcp14>MUST</bcp14> be used in VDF computation. If the
intended use requires context binding, the verifier <bcp14>MUST</bcp14> reject
tokens missing this field.</t>
  <t>validity_window (optional): A value indicating expire time beyond
which the token is deemed invalid. This field <bcp14>MAY</bcp14> be present. If
present in the token, it <bcp14>MUST NOT</bcp14> require synchronized clocks
between the Issuer and the Verifier. This field <bcp14>SHOULD</bcp14> be used only
to limit the token usage within a certain time.</t>
</list></t>

<figure><artwork><![CDATA[
VerifiableDelayToken {
    uint8    token_version;
    opaque   issuer_id;
    opaque   challenge_seed;
    uint64   delay_parameter;
    opaque   vdf_output;
    opaque   vdf_proof;
    opaque   context_binding;     // OPTIONAL
    opaque   validity_window;     // OPTIONAL
}
]]></artwork></figure>

</section>
<section anchor="token-construction"><name>Token Construction</name>

<t>The VDT is created by a Client. The Client computes a VDF with the
inputs of a challenge seed, a delay parameter, an optional context and a
protocol-specific domain separation string. The VDF output value, VDF
proof and the metadata are embedded into the token.</t>

</section>
<section anchor="token-verification"><name>Token Verification</name>

<t>The Verifier verifies the VDT by validating the following.</t>

<t><list style="numbers" type="1">
  <t>Token version is supported.</t>
  <t>Issuer identifier is recognized and trusted.</t>
  <t>Challenge seed and delay parameter.</t>
  <t>Context against the expected use.</t>
  <t>VDF proof verifies correctly against the output.</t>
  <t>The token is not expired and is not used earlier.</t>
</list></t>

<t>The Verifier <bcp14>MUST</bcp14> reject the token if any of these checks fail.</t>

</section>
<section anchor="privacy-properties-of-the-token-format"><name>Privacy Properties of the Token Format</name>

<t>The token format ensures privacy by the following facts.</t>

<t><list style="symbols">
  <t>No inclusion of Client identifiers.</t>
  <t>No inclusion of timestamps.</t>
  <t>No inclusion of network identifiers.</t>
  <t>Unlinkability across Challenge Issuance and Token Redemption across
protocol instances.</t>
</list></t>

<t>Specific implementations of the protocol <bcp14>MUST NOT</bcp14> include any additional
fields that compromise these properties.</t>

</section>
<section anchor="token-encoding"><name>Token Encoding</name>

<t>The token format is generic in the use of token encoding. The encodings
<bcp14>MUST</bcp14> be able to encode individual fields with clear boundaries.
Implementations <bcp14>MAY</bcp14> use CBOR, Binary HTTP or other compact binary
encoding formats. However, since text-based encodings such as JSON have
limitations related to size and parsing, they are <bcp14>NOT RECOMMENDED</bcp14>.</t>

</section>
<section anchor="extensibility-1"><name>Extensibility</name>

<t>The token format is extensible. The future specifications <bcp14>MAY</bcp14> define new
fields. If the token contains an unknown optional field, it <bcp14>MUST</bcp14> be
ignored by default unless explicitly required. Semantics of the fields
<bcp14>MUST NOT</bcp14> be changed by new token versions.</t>

</section>
</section>
<section anchor="protocol-messages-wire-level-flows"><name>Protocol Messages (Wire-Level Flows)</name>

<t>This document defines the VDT protocol using following messages.</t>

<!-- Omit the leading {:vspace} for a compact definition list,
     i.e., to start definitions on same line as the term -->

<texttable title="Protocol Messages">
      <ttcol align='left'>Message</ttcol>
      <ttcol align='left'>Direction</ttcol>
      <ttcol align='left'>Purpose</ttcol>
      <c>Challenge Request</c>
      <c>Client   -&gt; Issuer</c>
      <c>Request challenge seed and delay parameter</c>
      <c>Challenge Response</c>
      <c>Issuer   -&gt; Client</c>
      <c>Provide VDF challenge</c>
      <c>Token Redemption Request</c>
      <c>Client   -&gt; Verifier</c>
      <c>Provide VDT</c>
      <c>Verification Response</c>
      <c>Verifier -&gt; Client</c>
      <c>Verifier's decision on acceptance or rejection</c>
</texttable>

<section anchor="challenge-request"><name>Challenge Request</name>

<t>The Challenge Request message is sent by the Client to the Issuer to
request parameters required for delay computation.</t>

<t>This message <bcp14>MAY</bcp14> include the following parameters.</t>

<t><list style="symbols">
  <t>supported_vdfs: A list of VDF constructions supported by the Client.</t>
  <t>delay_hint (Optional): A value indicating the desired delay range.
Issuers <bcp14>MAY</bcp14> ignore this parameter.</t>
  <t>context_request (Optional): A Boolean value indicating a request to
include context the Challenge Response message.</t>
</list></t>

<t>Any information which can be used to identify the client such as client
identifier <bcp14>MUST NOT</bcp14> be included in this message.</t>

<t>Issuer <bcp14>MUST</bcp14> treat Challenge Request message as unauthenticated and <bcp14>MAY</bcp14>
apply policy such as rate-limitation.</t>

</section>
<section anchor="challenge-response"><name>Challenge Response</name>

<t>The Challenge Response message is sent by the Issuer to the Client to
provide the parameters required for delay computation. This message is
sent in response to an earlier received Challenge Request message.</t>

<t>This message <bcp14>MUST</bcp14> include the following parameters.</t>

<t><list style="symbols">
  <t>Issuer_id: A value indicating the Issuer.</t>
  <t>challenge_seed: A fresh, unpredictable value.</t>
  <t>delay_parameter: A value indicating the required delay for the VDF.</t>
  <t>vdf_parameters: A set of values required for the VDF computation.</t>
</list></t>

<t>This message <bcp14>MAY</bcp14> optionally include the following additional parameters.</t>

<t><list style="symbols">
  <t>context_binding: A value related to the context which is to be
included in the VDF input.</t>
  <t>validity_window: A time indicating the expiration time of the token.</t>
</list></t>

<t>Issuer <bcp14>MUST</bcp14> not include any information which can either identify the
client or can be used to correlate between the Challenge Request and the
Challenge Response messages, <bcp14>MUST</bcp14> ensure that the challenge_seed is
never reused and <bcp14>MUST</bcp14> ensure that the parameters provided are consistent
with the selected VDF construction.</t>

</section>
<section anchor="delay-computation-by-client"><name>Delay Computation (by Client)</name>

<t>After receiving the Challenge Response message, the Client computes the
VDF using challenge_seed, delay_parameter and optional context_binding
to generate vdf_output and vdf_proof. The Client constructs a VDT with
the structure mentioned in Section 7. The client <bcp14>MAY</bcp14> be offline during
the computation.</t>

</section>
<section anchor="token-redemption-request"><name>Token Redemption Request</name>

<t>The Token Redemption Request message is sent by the Client to the
Verifier to prove that a certain duration of the time has elapsed since
the challenge was issued.</t>

<t>This message <bcp14>MUST</bcp14> include the following parameters.</t>

<t><list style="symbols">
  <t>verifiable_delay_token: A VDT.</t>
</list></t>

<t>This message <bcp14>MAY</bcp14> optionally include the following additional parameters.</t>

<t><list style="symbols">
  <t>requested_resource: A value indicating the resource to be accessed.</t>
  <t>context_confirmation: A Boolean value indicating a request to bind
context.</t>
</list></t>

<t>Verifier <bcp14>MUST</bcp14> treat Token Redemption Request message as unauthenticated,
<bcp14>MUST NOT</bcp14> require the Client to include information which can be used to
identify clients and <bcp14>MUST</bcp14> perform the validation steps defined in
Section 8.</t>

</section>
<section anchor="verification-response"><name>Verification Response</name>

<t>The Verification Response message is sent by the Verifier to the Client
to provide the verification result. This message is sent in response to
an earlier received Token Redemption Request message.</t>

<t>This message <bcp14>MUST</bcp14> include the following parameters.</t>

<t><list style="symbols">
  <t>result: A Boolean value indicating whether the token is valid
considering the delay requirement in the token.</t>
</list></t>

<t>Verifier <bcp14>MUST NOT</bcp14> reveal whether the token was previously redeemed, <bcp14>MUST
NOT</bcp14> reveal whether the token is partially valid and <bcp14>SHOULD</bcp14> minimize the
response size.</t>

</section>
<section anchor="replay-protection"><name>Replay Protection</name>

<t>The protocol prevents against replay attacks by the following
mechanisms.</t>

<t><list style="symbols">
  <t>Token uniqueness via challenge_seed</t>
  <t>Token usage period via validity_window</t>
  <t>Replay detection via Verifier checks.</t>
</list></t>

</section>
<section anchor="transport-independence"><name>Transport Independence</name>

<t>The protocol messages are agnostic to the underlying transport
mechanism. Messages <bcp14>MAY</bcp14> be conveyed over HTTP, OHTTP or other secure
transports. The underlying transport mechanism <bcp14>MUST</bcp14> preserve message
integrity.</t>

</section>
<section anchor="error-handling-1"><name>Error Handling</name>

<t>The protocol messages can error out because of reasons such as
unsupported VDF construction, invalid parameters, expired or reused
token. Implementations <bcp14>MUST</bcp14> consider all errors as critical.</t>

</section>
</section>
<section anchor="privacy-considerations"><name>Privacy Considerations</name>

<t>This section presents the privacy properties of the protocol. The
protocol aims to enable time-based access control without leaking client
identification, cross-request linkability and unnecessary disclosure of
information. The privacy analysis in this section follows the guidance
in RFC 6973. Protection against traffic analysis is out of scope of the
protocol.</t>

<t><list style="symbols">
  <t>Absence of Client Identifiers</t>
</list></t>

<t>The protocol does not require Clients to include client identity,
network address, device identity or issuance timestamp either in
Challenge Request message or Token Redemption Request message. The
protocol also does not require authentication or session establishment
of Client with either the Issuer or the Verifier which prevents Issuer
to correlate issued challenge seed with the Client and also prevent
Verifier to correlate received token with the Client.</t>

<t><list style="symbols">
  <t>Unlinkability Between Issuance and Redemption</t>
</list></t>

<t>The protocol does not require the Issuer to learn about either the delay
computation or the token redemption and the Verifier to learn about the
challenge issuance. The token contains only the challenge seed which
uniquely identify the issuance transaction but the challenge seed does
not reveal client identity. Assuming that the Issuer and the Verifier do
not collude, the Challenge Request message and the Token Redemption
Request message cannot be linked.</t>

<t><list style="symbols">
  <t>Minimal Information Disclosure</t>
</list></t>

<t>The protocol messages reveal only the strictly necessary required
information. Challenge Response message conveys the delay parameter, the
VDF parameters and the issuer metadata required for verification. Token
Redemption Request message conveys the VDF computed output value and a
proof. None of the messages include issuance or redemption timestamps.
This avoids revealing behavioral patterns of Client.</t>

<t><list style="symbols">
  <t>Resistance to Cross-Token Correlation</t>
</list></t>

<t>The protocol ensures the resistance to any correlation among VDTs by
ensuring that no two VDTs can be derived from the same challenge seed
and each challenge seed generates a cryptographically unique VDT.
Implementations <bcp14>MUST</bcp14> avoid introducing additional information that could
enable such correlation.</t>

<t><list style="symbols">
  <t>Context Binding and Privacy</t>
</list></t>

<t>The protocol introduced the usage of optional context to allow a
Verifier to restrict token usage to a specific scope such as for a
particular resource or a particular service. Though the use of context
binding does not aim to introduce client identifier, overly specific or
Client derived context values could reduce Client anonymity. Verifiers
<bcp14>SHOULD</bcp14> ensure that context values are appropriate and does not reveal
Client identity.</t>

<t><list style="symbols">
  <t>Use of Relays and Oblivious Transports</t>
</list></t>

<t>The protocol can be deployed over privacy-preserving transports such as
OHTTP that hide Client network metadata. These transports ensure that
neither Issuers nor Verifiers learn Client network address and Relays
cannot access cryptographic content. Deployments that do not use such
privacy-preserving transports may expose network addressees and have to
take appropriate measures to prevent revealing Client identity.</t>

<t><list style="symbols">
  <t>Token Reuse and Privacy Trade-offs</t>
</list></t>

<t>Verifiers may track token usage to prevent against replay attacks.
Verifiers <bcp14>SHOULD</bcp14> take appropriate measures so that replay detection does
not introduce unintended linkability, <bcp14>SHOULD</bcp14> avoid maintaining a
per-client state and <bcp14>SHOULD</bcp14> require minimum necessary information such
as reuse of challenge seed within a limited window.</t>

<t><list style="symbols">
  <t>Comparison with Alternative Mechanisms</t>
</list></t>

<t>The alternative time-based or abuse mitigation mechanisms such as
keeping server-side timers, proof-of-work or CAPTCHA systems have
privacy limitations. Server-side timers require client identification
and enable linkability. Proof-of-work is proportional to computational
power and the not the sequential computation and also enables
fingerprinting. CAPTCHA systems reveal interaction patterns and
tracking. The VDT protocol provides time enforcement while avoiding
these privacy limitations.</t>

<t><list style="symbols">
  <t>Residual Privacy Risks</t>
</list></t>

<t>Some of the privacy risks are deliberately kept out of scope as they are
specific to the deployment scenarios. For example, without the use of
privacy-preserving transports, network addresses may be observed which
may leak client identify. An adversary may observe redemption patterns
and perform side-channel based timing attacks. An adversarial Issuer and
an adversarial Verifier may collude to compromise unlinkabilty.
Deployments <bcp14>SHOULD</bcp14> take appropriate measures to avoid such privacy
risks.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>This section presents the security threats in the protocol and the
mechanism by which they are mitigated.</t>

<t><list style="symbols">
  <t>Correctness of Delay Enforcement</t>
</list></t>

<t>The protocol assumes that the selected VDF construction enforces
sequential computation and does not permit the computation to be done
significantly faster by means such as shortcut evaluation or parallel
speedup. This assumption is critical to the protocol because otherwise
an adversary may compute tokens faster than the intended delay. ONLY
those VDF constructions which are well-studied and publicly documented
should be used. The protocol does not aim to compensate performance
difference in different hardware. Since different hardware can have
different performance, the protocol provides only approximate delay
guarantees which indicate relative and not absolute wall-clock time.</t>

<t><list style="symbols">
  <t>Token Forgery</t>
</list></t>

<t>An adversary may attempt to generate a valid VDT without performing the
required delay computation. The protocol mitigates the token forgery
attacks by cryptographic security of the VDF which ensures that forging
a token by avoiding or reducing the required delay computation is
computationally infeasible. Verifier <bcp14>MUST</bcp14> reject tokens that fail
verification. If at any time, a VDF construction is found vulnerable to
forgery, tokens derived from that construction <bcp14>MUST</bcp14> be considered
insecure.</t>

<t><list style="symbols">
  <t>Replay Attacks</t>
</list></t>

<t>VDTs are bearer token and an adversary may replay it while it is still
valid. This behavior is inherent to bearer tokens and does not reduce
the security of delay enforcement. The protocol mitigates the replay
attacks by preventing token reuse through unique challenge_seed,
restricting usage time period through validity_window and binding token
to a specific context (resource, operation or request) through
context_binding.</t>

<t><list style="symbols">
  <t>Man-In-The-Middle Attacks</t>
</list></t>

<t>An adversary may observe, modify, replay or inject protocol messages as
they are communicated among Client, Issuer and Verifier. The security of
the protocol relies on the cryptographic validity of the token in the
message rather than the confidentiality of the message. Any modification
in the protocol messages makes the token invalid which results in failed
verification. Any forging of a VDT in a message without performing the
required delay computation is computationally infeasible. Any leakage of
protocol messages does not reveal client identifiers. An adversary may
tamper the challenge in the Challenge Response message which makes the
Client compute VDF over adversarial challenge which later will fail
verification in Verification Response message. This may result in
Denial-of-Service which is not a security breach and is inherent to
bearer tokens. To prevent this, Issuer <bcp14>SHOULD</bcp14> authenticate the challenge
in the Challenge Response message. But, even if an adversary tampers the
challenge, it cannot create a valid token, learn client identifier or
impersonate the Client. It is <bcp14>RECOMMENDED</bcp14> to use secure transport
mechanism such as TLS or OHTTP to reduce passive observation but it is
not required for cryptographic correctness.</t>

<t><list style="symbols">
  <t>Token Rebinding and Context Confusion</t>
</list></t>

<t>To prevent the usage of a token in a context different from the intended
one, the token <bcp14>MAY</bcp14> be bound to an application-defined context. If
present, the context value <bcp14>MUST</bcp14> be used in VDF computation. Verifiers
<bcp14>MUST</bcp14> reject tokens whose context does not match the expected value.
Context values <bcp14>SHOULD</bcp14> be canonicalized prior to inclusion.</t>

<t><list style="symbols">
  <t>Issuer Misbehavior</t>
</list></t>

<t>An adversarial Issuer may issue reused challenge seeds, weak parameters
or insufficient delay requirements. The protocol mitigates this by
ensuring that Verifiers <bcp14>MUST</bcp14> validate Issuer identifiers to find whether
the Issuer is trusted and <bcp14>SHOULD</bcp14> reject tokens which do not adhere to
expected parameter constraints. Verifiers <bcp14>SHOULD</bcp14> validate that delay
parameters meet locally configured minimum security thresholds.</t>

<t><list style="symbols">
  <t>Verifier Misbehavior</t>
</list></t>

<t>An adversarial Verifier may attempt to extract additional information by
requesting additional unnecessary information. Clients <bcp14>SHOULD</bcp14> treat
Verifiers as potentially untrusted entity, <bcp14>SHOULD</bcp14> avoid revealing any
additional information beyond what is mentioned in this document and <bcp14>MAY</bcp14>
decline to provide additional information not required for verification.
The protocol does not prevent an adversarial Verifier from applying
arbitrary access policies after token verification.</t>

<t><list style="symbols">
  <t>Denial-of-Service Considerations</t>
</list></t>

<t>Issuers may receive large number of Challenge Request messages and
Verifiers may receive large number of invalid or malformed Token
Redemption Request messages. This may result in denial-of-service
attacks. Implementations <bcp14>SHOULD</bcp14> use standard DoS mitigation techniques
such as rate limiting, request validation and bounded resource
allocation. Verifier <bcp14>SHOULD</bcp14> verify the token only after preliminary
validation of token structure is done.</t>

<t><list style="symbols">
  <t>Parameter Selection Risks</t>
</list></t>

<t>Improper selection of delay parameters can have an impact on the
security. A too small value may fail to prevent attacks and a too large
value may cause excessive consumption of Client resources. This document
does not specify parameter values as it largely depends on the intended
use case. Deployments <bcp14>MUST</bcp14> select parameters suitable for the intended
use case.</t>

<t><list style="symbols">
  <t>Side-Channel Considerations</t>
</list></t>

<t>The protocol does not explicitly address the side-channel attacks that
may arise from means such as timing differences in the verification
process, observable network behavior, computation patterns at the
Client. Deployments <bcp14>SHOULD</bcp14> take appropriate measures to prevent such
attacks.</t>

<t><list style="symbols">
  <t>Collusion Between Issuer and Verifier</t>
</list></t>

<t>An adversarial Issuer and an adversarial Verifier may collude to
correlate the Challenge Issuance Request message and Token Redemption
Request message. This compromises the unlinkability of Client across
these two messages. This protocol assumes non-collusion between Issuer
and Verifier. Deployments <bcp14>SHOULD</bcp14> take appropriate measures to prevent
such collusions.</t>

<t><list style="symbols">
  <t>Cryptographic Agility and Deprecation</t>
</list></t>

<t>It is possible that some of the secure VDF constructions may become
insecure in future because of change in cryptographic assumptions.
Deployments <bcp14>MUST</bcp14> support mechanisms to deprecate such insecure VDF
constructions and support to use the updated parameters. Verifiers
<bcp14>SHOULD</bcp14> reject tokens generated from deprecated parameters.</t>

</section>
<section anchor="deployment-considerations"><name>Deployment Considerations</name>

<t>This section discusses the practical considerations of implementing the
VDT protocol. These considerations do not affect protocol requirements
and are informative.</t>

<t><list style="symbols">
  <t>Parameter Selection</t>
</list></t>

<t>Choice of delay parameter directly impacts the security and resource
consumption. Shortening this value may reduce the strength to prevent
attacks and increasing this value has a direct effect on consumption of
Client resources. Deployments <bcp14>SHOULD</bcp14> select a balanced value which
balances these two aspects. This document does not recommend a specific
value since it largely depends on the operational constraints and Client
capabilities.</t>

<t><list style="symbols">
  <t>Client Resource Constraints</t>
</list></t>

<t>The protocol requires Clients to perform sequential computation for the
duration of the delay. Deployments <bcp14>SHOULD</bcp14> consider the Client device
resources such as battery consumption and thermal constraints for
selecting the suitable delay. Clients <bcp14>MAY</bcp14> abort the delay computation
and Issuers <bcp14>SHOULD</bcp14> avoid issuing challenges which may result in
unreasonable long delay computations for a typical Client device.</t>

<t><list style="symbols">
  <t>Issuer Load and Scalability</t>
</list></t>

<t>Issuers are primarily involved in generating delay challenges and are
not required to maintain persistent per-client state. Hence, Issuers can
use suitable mechanisms to scale horizontally. This document does not
recommend a specific such mechanism as it largely depends on the
particular deployment. Issuers <bcp14>MAY</bcp14> apply standard request filtering and
rate limiting to avoid denial-of-service attack.</t>

<t><list style="symbols">
  <t>Verifier Load and Verification Cost</t>
</list></t>

<t>Verifiers are primarily involved in verifying the received VDTs. The
verification process is assumed to be efficient. To prevent against
denial-of-service attacks, Verifiers <bcp14>SHOULD</bcp14> apply inexpensive structural
validation prior to cryptographic verification.</t>

<t><list style="symbols">
  <t>Replay Detection State</t>
</list></t>

<t>Verifiers may need to maintain state such as recently seen challenge
seed or token identifier to protect against replay attacks. Deployments
<bcp14>SHOULD</bcp14> minimize the duration for which such state is maintained to avoid
introducing the linkability. Stateless verification can be achieved to
prevent replay attacks by enforcing short token validity windows.</t>

<t><list style="symbols">
  <t>Trust and Governance of Issuers</t>
</list></t>

<t>When Issuers and Verifiers are different entities, Verifiers must decide
whether the issuer is a trusted entity. This can be done through static
out-of-band agreements and public key distribution.</t>

<t><list style="symbols">
  <t>Incremental Deployment</t>
</list></t>

<t>The protocol may be used along with existing alternative mechanisms. For
example, a service <bcp14>MAY</bcp14> offer CAPTCHA to some clients and VDT to other
clients, <bcp14>MAY</bcp14> use both CAPTCHA and VDT to prevent against rate-limiting
and <bcp14>MAY</bcp14> require VDTS only in certain cases such as repeated
authentication failures.</t>

<t><list style="symbols">
  <t>Deployment with Oblivious Transports</t>
</list></t>

<t>Using privacy-preserving transports such as OHTTP can provide stronger
privacy guarantees by hiding client network metadata. However, they may
introduce additional latency and infrastructure requirements.
Deployments that require such stronger privacy guarantees <bcp14>SHOULD</bcp14>
consider the associated overheads.</t>

<t><list style="symbols">
  <t>Failure Handling and User Experience</t>
</list></t>

<t>The protocol may generate error responses due to several reasons such as
invalid parameters, expired tokens or verification errors. Verifiers
<bcp14>SHOULD</bcp14> ensure that only minimal necessary information is provided
without any information which can leak client identity.</t>

<t><list style="symbols">
  <t>Monitoring and Abuse Evaluation</t>
</list></t>

<t>Any observatory or analytical system such as system monitoring or the
abuse mitigation effectiveness <bcp14>SHOULD</bcp14> be performed in a
privacy-preserved manner and <bcp14>MUST NOT</bcp14> either rely or leak any
information which can reveal client identity.</t>

</section>
<section anchor="composition-with-existing-protocols-http-ohttp-privacy-pass"><name>Composition with Existing Protocols (HTTP, OHTTP, Privacy Pass)</name>

<t>This section describes how VDT protocol may be used with existing
Internet protocols.</t>

<section anchor="composition-with-http"><name>Composition with HTTP</name>

<t>VDT protocol is designed to work naturally with HTTP-based systems.
Before processing an HTTP reqest, a Verifier <bcp14>MAY</bcp14> require the Client to
present a VDT. The Client <bcp14>MAY</bcp14> include the token in HTTP request header
or in a request body. For example, a Client <bcp14>MAY</bcp14> include the token in an
authorization header.</t>

<t>Alternatively, a Client <bcp14>MAY</bcp14> include the token in HTTP request body when
using non-idempotent methods. Specific HTTP header names or status code
are left to the future specifications or application profiles.</t>

</section>
<section anchor="stateless-access-control-in-http-services"><name>Stateless Access Control in HTTP Services</name>

<t>The protocol allows HTTP services to enforce time-based access control
without requiring to maintain per-client state. When a service receives
an HTTP request containing a VDT, it verifies the token (as mentioned in
Section X.X), takes a decision based on verification outcome and
discards the token along with an associated state. This lets HTTP
services enforce delays without tracking Clients across requests.</t>

</section>
<section anchor="composition-with-ohttp"><name>Composition with OHTTP</name>

<t>OHTTP and its properties are defined in <xref target="RFC9458"/>. The VDT protocol
works well with OHTTP as well. Challenge Request, Challenge Response,
Token Redemption Request and Verification Response <bcp14>MAY</bcp14> be encapsulated
in OHTTP messages and conveyed via an OHTTP Relay. OHTTP prevents
Issuers and Verifiers from learning client or network identifiers. OHTTP
is <bcp14>OPTIONAL</bcp14> but <bcp14>RECOMMENDED</bcp14> where network-layer privacy is required.
Figure 4 illustrates composition with OHTTP.</t>

<figure anchor="ohttp-composition-fig" title="Composition with OHTTP">
  <artwork name="" type="" align="left">
  +--------+     +-------+     +--------+     +----------+
  | Client |     | Relay |     | Issuer |     | Verifier |
  +--------+     +-------+     +--------+     +----------+
       |              |              |               |
       | Encapsulated |              |               |
       | Challenge    |              |               |
       | Request      |              |               |
       |-------------&gt;|              |               |
       |              |              |               |
       |              | Forward      |               |
       |              | encrypted    |               |
       |              | request      |               |
       |              |-------------&gt;|               |
       |              |              |               |
       |              |              |               |
       |              | Encapsulated |               |
       |              | Challenge    |               |
       |              | Response     |               |
       |              |&lt;-------------|               |
       |              |              |               |
       | Forward      |              |               |
       | Encrypted    |              |               |
       | Response     |              |               |
       |&lt;-------------|              |               |
       |              |              |               |
      Offline VDF     |              |               |
      computation     |              |               |
       |              |              |               |
       |              |              |               |
       | Encapsulated |              |               |
       | Token        |              |               |
       | Redemption   |              |               |
       |-------------&gt;|              |               |
       |              |              |               |
       |              | Forward      |               |
       |              | encrypted    |               |
       |              | token        |               |
       |              |-----------------------------&gt;|
       |              |              |               |
       |              |              |               |
       |              | Encapsulated |               |
       |              | Verification |               |
       |              | Result       |               |
       |              |&lt;-----------------------------|
       |              |              |               |
       | Forward      |              |               |
       | Encapsulated |              |               |
       | Verification |              |               |
       | Result       |              |               |
       |&lt;-------------|              |               |
       |              |              |               |
</artwork>

</figure>

</section>
<section anchor="composition-with-privacy-pass"><name>Composition with Privacy Pass</name>

<t>The VDT protocol is complementary to Privacy Pass. Privacy Pass can be
used to create anonymous and unlinkable tokens that prove that a client
has passed a challenge such as a CAPTCHA or a device attestation. VDT
protocol can be used to create tokens that a minimum amount of time has
elapsed. VDTs <bcp14>MAY</bcp14> be used as a time-delay requirement for the issuance
of a Privacy Pass token. Conversely, a privacy pass token <bcp14>MAY</bcp14> be used
for the challenge issuance. Deployments which use VDT protocol along
with Privacy Pass <bcp14>MAY</bcp14> enable different scenarios. A service may
implement an anonymous time-based abuse mitigation by requiring a Client
to present a VDT after first attempt without disclosing Client identity.
A service may implement a rate-limit anonymous API access by requiring a
Client to present a VDT through OHTTP. A service may implement
privacy-preserving delays by requiring a Client to present a VDT instead
of interactive CAPTCHA or solving puzzles. Figure 5 illustrates
composition with Privacy Pass.</t>

<figure anchor="privacy-pass-composition-fig" title="Composition with Privacy Pass">
  <artwork name="" type="" align="left">
  +--------+        +--------+        +-------------------+        +----------+
  | Client |        | Issuer |        | Privacy Pass      |        | Verifier |
  |        |        |        |        | Issuer            |        |          |
  +--------+        +--------+        +-------------------+        +----------+
       |                 |                      |                       |
       | Request delay   |                      |                       |
       | challenge       |                      |                       |
       |----------------&gt;|                      |                       |
       |                 |                      |                       |
       | Delay parameters|                      |                       |
       |&lt;----------------|                      |                       |
       |                 |                      |                       |
       |                 |                      |                       |
    Compute VDF          |                      |                       |
    (offline)            |                      |                       |
       |                 |                      |                       |
       |                 |                      |                       |
       | Request Privacy Pass token             |                       |
       | using completed VDT                    |                       |
       |---------------------------------------&gt;|                       |
       |                 |                      |                       |
       | Privacy Pass token                     |                       |
       |&lt;---------------------------------------|                       |
       |                 |                      |                       |
       |                 |                      |                       |
       | Request with Privacy Pass token        |                       |
       |---------------------------------------------------------------&gt;|
       |                 |                      |                       |
</artwork>

</figure>

</section>
<section anchor="interaction-with-transport-security"><name>Interaction with Transport Security</name>

<t>The VDT protocol assumes that the underlying transport provides
necessary integrity and confidentiality to the messages. HTTP-based
transports <bcp14>SHOULD</bcp14> use TLS. When network-layer privacy is required, OHTTP
<bcp14>SHOULD</bcp14> be used.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document does not require any immediate IANA actions. However,
future extensions <bcp14>MAY</bcp14> require some optional IANA actions.</t>

<section anchor="token-type-identifier-registry-optional"><name>Token Type Identifier Registry (Optional)</name>

<t>It is possible that in future, similar to VDTs, other type of tokens is
proposed and defined for different use cases. Future specifications <bcp14>MAY</bcp14>
define a token type identifier registry to identify the tokens. If such
a registry is created, it is <bcp14>RECOMMENDED</bcp14> that it includes a token type
identifier, a brief description of the token and a reference to the
defining specification. The registration policy for such a registry
<bcp14>SHOULD</bcp14> be <em>Specification Required</em>.</t>

</section>
<section anchor="http-header-fields-optional"><name>HTTP Header Fields (Optional)</name>

<t>This document does not introduce any new HTTP header fields. Future
specifications <bcp14>MAY</bcp14> introduce a new HTTP header field. Any future
specifications that introduce a new HTTP header field for transmitting
VDTs <bcp14>MUST</bcp14> be registered with IANA. This document does not request such
registration.</t>

</section>
<section anchor="media-types-optional"><name>Media Types (Optional)</name>

<t>This document does not introduce any new media types. Future
specifications <bcp14>MAY</bcp14> introduce new media types for encapsulating VDTs or
protocol messages. Any future specifications that introduce a new such
media type <bcp14>MUST</bcp14> be registered with IANA. This document does not request
such registration.</t>

</section>
<section anchor="cryptographic-algorithm-registries"><name>Cryptographic Algorithm Registries</name>

<t>This document does not introduce any modifications to cryptographic
algorithm registries. Cryptographic agility is achieved through protocol
negotiation and specific deployments rather than through central
registry.</t>

</section>
</section>
<section anchor="implementation-status"><name>Implementation Status</name>

<t>This section presents the implementation status of the VDT protocol.</t>

<t><list style="symbols">
  <t>Note to RFC Editor:</t>
</list></t>

<t>This section <bcp14>SHOULD</bcp14> be removed before publication. as an RFC. This
section describes the present known implementations of the VDT protocol
according to the RFC 7942 with the aim to present the interoperability
feasibility.</t>

<t><list style="symbols">
  <t>Reference Implementation</t>
</list></t>

<t>At the time of writing this document, a reference implementation of the
VDT protocol is under development. The reference implementation is
written in Python as a standalone library without HTTP or OHTTP
integration to demonstrate a proof-of-concept protocol level
implementation. The scope is limited to the challenge generation, VDF
computation, token construction, token verification and protocol
messages. Wesolowski VDF construction is used at the experimental level.
The primary goal of the prototype is to validate protocol feasibility
and parameter selection and not to optimize for performance or
production use.</t>

<t><list style="symbols">
  <t>Experimental Integration</t>
</list></t>

<t>An experimental integration is planned with other Internet protocols
such as HTTP-based deployment using a custom header, OHTTP encapsulation
for challenge issuance and token redemption and Privacy Pass with delay
challenges instead of interactive challenges. These integrations are
planned only to test the interoperability.</t>

<t><list style="symbols">
  <t>Security Considerations for Implementations</t>
</list></t>

<t>No formal review of the prototype is done so far. Parameters are
selected only for experimental purpose and no evaluation against attacks
has been done. The prototype <bcp14>SHOULD NOT</bcp14> be used in production
environments.</t>

<t><list style="symbols">
  <t>Future Implementations</t>
</list></t>

<t>Implementations in programming languages other than Python are expected
to be developed to support different deployments. Independent
implementations are encouraged and feedback from the implementations are
welcome.</t>

</section>
<section anchor="limitations"><name>Limitations</name>

<t>This section describes limitations of the VDT protocol. These
limitations are intrinsic to the problem and cryptographic primitives
and should not be considered as flaws in the protocol design.</t>

<t><list style="symbols">
  <t>Approximate Time Enforcement:</t>
</list></t>

<t>The protocol only enforces a minimum amount of sequential computation
which is directly related to the elapsed time and is not an indication
of the exact wall-clock duration. High performant hardware devices may
perform delay computation faster than the less performant ones. The
protocol does not guarantee fairness across heterogeneous hardware
devices and hence provides a relative time enforcement rather than an
absolute wall-clock guarantee.</t>

<t><list style="symbols">
  <t>No Absolute Time or Scheduling Guarantees:</t>
</list></t>

<t>The protocol does not provide guarantees about absolute timestamps,
timestamps synchronized with real-world clocks or about any time
completion beyond the minimum required delay requested. Deployments
which require exact or synchronized timestamps <bcp14>MUST</bcp14> rely on additional
mechanisms which are outside the scope of this document.</t>

<t><list style="symbols">
  <t>Resource Consumption on Clients:</t>
</list></t>

<t>The delay computation on Client may have an effect on battery life,
thermal limits or responsiveness on constrained devices. Clients may
abort computation at any time which results in unusable token. The
protocol does not provide device-aware parameter negotiation.</t>

<t><list style="symbols">
  <t>No Identity, Accountability, or Attribution:</t>
</list></t>

<t>One of the core goals of the protocol is not to reveal Client identity.
Hence, Verifiers cannot correlate tokens to Clients, per-client
personalized policies cannot be applied and abuse mitigation is limited
to time-based controls. If a deployment needs an identity-based control,
additional mechanisms <bcp14>MUST</bcp14> be used.</t>

<t><list style="symbols">
  <t>Limited Protection Against Sophisticated Adversaries:</t>
</list></t>

<t>The protocol does not aim to prevent against adversaries with
specialized hardware that significantly accelerates sequential
computation, side-channel attacks on Client computation, traffic
analysis at network level and collusion between Issuer and Verifier.
Mitigation against these threats are out of scope.</t>

<t><list style="symbols">
  <t>Dependence on VDF Maturity:</t>
</list></t>

<t>The security of the protocol depends on the properties of the selected
VDF construction. Future advances in cryptanalysis may weaken existing
VDF constructions and performance may vary across constructions. Though
the protocol does not fully eliminate this risk, it mitigates the risks
through cryptographic agility.</t>

<t><list style="symbols">
  <t>No Abuse Detection or Policy Definition:</t>
</list></t>

<t>The protocol explicitly does not define what constitutes an abuse, when
a delay should be required and what actions should be taken for token
acceptance or rejection. These decisions are left to the specific
deployments.</t>

<t><list style="symbols">
  <t>No Economic or Incentive Guarantees:</t>
</list></t>

<t>VDTs are not a payment mechanism and any economic interpretation of VDTs
is out of scope of this document. The protocol neither defines an
economic cost nor a pricing model.</t>

</section>
<section anchor="future-work"><name>Future Work</name>

<t>This section presents some of the possible future works of this
document. These works are out of scope for this document and do not
affect the VDT protocol defined herein.</t>

<t><list style="symbols">
  <t>VDF Profiles:</t>
</list></t>

<t>This protocol has limited itself to the required VDF properties and is
kept generic to various VDF constructions. One possible future work
could be to define VDF profiles for a specific set of VDF constructions,
recommended parameter ranges or performance characteristics.</t>

<t><list style="symbols">
  <t>Performance Evaluation and Benchmarking:</t>
</list></t>

<t>Another future work could be performance evaluation and benchmarking
across heterogeneous hardware of various metrics such as energy
consumption on constrained devices and verification costs. Deployment
environments can be benefitted from benchmarks in selecting the suitable
parameters.</t>

<t><list style="symbols">
  <t>Adaptive Delay Negotiation:</t>
</list></t>

<t>This protocol does not support adaptive negotiation which can issue
parameters such as delay_challenge based on Client's capabilities such
as hardware device. Future works may introduce such negotiation with the
caution to maintain privacy of Client identifiers.</t>

<t><list style="symbols">
  <t>Integration Profiles:</t>
</list></t>

<t>Though this document describes integration with HTTP, OHTTP and Privacy
Pass, it does not define normative bindings. Possible future work could
define normative bindings such as standard HTTP header fields or media
types and profiles for Privacy Pass integration.</t>

<t><list style="symbols">
  <t>Formal Security Analysis:</t>
</list></t>

<t>Another future work could be to do the formal security analysis of the
protocol.</t>

<t><list style="symbols">
  <t>Broader Applications:</t>
</list></t>

<t>Though this document primarily focuses on time-based access control, the
protocol can be extended to other broader applications such as delayed
revelation and staged access to a resource.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">

&RFC9458;
&RFC2119;
&RFC8174;


    </references>

    <references title='Informative References' anchor="sec-informative-references">

<reference anchor="BONEH-VDF" >
  <front>
    <title>Verifiable Delay Functions</title>
    <author initials="D." surname="Boneh">
      <organization></organization>
    </author>
    <date year="2018"/>
  </front>
</reference>
<reference anchor="WESOLOWSKI" >
  <front>
    <title>Efficient Verifiable Delay Functions</title>
    <author initials="B." surname="Wesolowski">
      <organization></organization>
    </author>
    <date year="2018"/>
  </front>
</reference>
<reference anchor="PIETRZAK" >
  <front>
    <title>Simple Verifiable Delay Functions</title>
    <author initials="K." surname="Pietrzak">
      <organization></organization>
    </author>
    <date year="2018"/>
  </front>
</reference>


    </references>

</references>



  </back>

<!-- ##markdown-source:
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

-->

</rfc>

