<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mukhtar-kinetic-network-00" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Kinetic Network">The Kinetic Network Protocol</title>
    <seriesInfo name="Internet-Draft" value="draft-mukhtar-kinetic-network-00"/>
    <author initials="S." surname="Mukhtar" fullname="Saif Mukhtar">
      <organization/>
      <address>
        <email>saifmukhtar20@gmail.com</email>
        <uri>https://saifmukhtar.dev</uri>
      </address>
    </author>
    <date year="2026" month="June" day="24"/>
    <area>Internet</area>
    <keyword>naming</keyword>
    <keyword>decentralized systems</keyword>
    <keyword>verifiable delay functions</keyword>
    <keyword>service discovery</keyword>
    <abstract>
      <?line 61?>

<t>This document specifies the Kinetic Network Protocol, a decentralized naming
and ownership protocol for binding human-readable names to cryptographic
identity keys without a central registry, blockchain, or monetary renewal
system.  Kinetic uses a commit-reveal flow, verifiable delay functions (VDFs),
signed heartbeat records, and redundant Distributed Hash Table (DHT) storage to
make name acquisition sequential, verifiable, and resistant to front-running,
mass registration, and stale-state capture.  This document defines the
protocol model, required records, validation rules, and security
considerations for interoperable Kinetic network implementations.</t>
    </abstract>
  </front>
  <middle>
    <?line 73?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Human-readable names are useful only when users can discover and remember
them.  In open networks, however, a free human-readable namespace is vulnerable
to front-running, dictionary registration, and long-term squatting.  Existing
systems commonly introduce recurring fees, centralized registries, or external
identity verification to control these attacks.</t>
      <t>Kinetic takes a different approach.  It treats name ownership as a locally
verifiable cryptographic state.  A registrant proves a name claim by completing
a sequential VDF computation bound to a commitment, an external randomness
beacon value, and the registrant's public key.  Ownership remains live through
signed heartbeat records.  If heartbeats stop, the name becomes increasingly
available for challenge according to deterministic reclamation rules.</t>
      <t>Kinetic is not a Domain Name System (DNS) replacement.  It does not directly
map names to addresses.  The network protocol specified here maps a name to an
owner identity key.  Higher-layer documents can define identity documents,
service manifests, content routing, and application semantics.</t>
      <t>This Internet-Draft is an individual contribution and is intended to start
discussion on the protocol design, wire formats, threat model, and
interoperability requirements.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" 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>
      <t>The following terms are used throughout this document:</t>
      <dl>
        <dt>Name:</dt>
        <dd>
          <t>A human-readable Kinetic name, such as "example.kin".</t>
        </dd>
        <dt>Owner key:</dt>
        <dd>
          <t>A public key that controls a Kinetic name.  This document assumes Ed25519
<xref target="RFC8032"/> unless another signature algorithm is explicitly negotiated by a
future specification.</t>
        </dd>
        <dt>Commitment:</dt>
        <dd>
          <t>A digest that hides the requested name until the corresponding VDF has been
computed.</t>
        </dd>
        <dt>Reveal:</dt>
        <dd>
          <t>A signed record that discloses the name, commitment inputs, VDF output, VDF
proof, and owner key.</t>
        </dd>
        <dt>Heartbeat:</dt>
        <dd>
          <t>A signed freshness assertion from the owner key that keeps the name active.</t>
        </dd>
        <dt>Lease record:</dt>
        <dd>
          <t>The complete verifiable ownership payload for a name, including reveal
material and the most recent valid heartbeat.</t>
        </dd>
        <dt>Challenge:</dt>
        <dd>
          <t>A VDF-backed attempt to claim an inactive or expired name.</t>
        </dd>
        <dt>Beacon:</dt>
        <dd>
          <t>A publicly verifiable randomness source.  This document uses drand as the
initial beacon profile.</t>
        </dd>
        <dt>DHT:</dt>
        <dd>
          <t>A Kademlia-like distributed hash table used as an untrusted storage and
retrieval substrate.</t>
        </dd>
      </dl>
    </section>
    <section anchor="protocol-overview">
      <name>Protocol Overview</name>
      <t>The Kinetic lifecycle has four phases:</t>
      <ol spacing="normal" type="1"><li>
          <t>Commit: the claimant creates a hidden commitment to the name, beacon round,
salt, and owner key.</t>
        </li>
        <li>
          <t>Delay: the claimant evaluates a VDF over the commitment.</t>
        </li>
        <li>
          <t>Reveal: the claimant publishes a signed lease record containing the VDF
output and proof.</t>
        </li>
        <li>
          <t>Maintain: the owner publishes signed heartbeats.  If heartbeats stop, other
participants can attempt deterministic challenge and reclamation.</t>
        </li>
      </ol>
      <t>The DHT is not trusted to decide ownership.  It only transports records.
Clients and peers decide validity by applying the deterministic validation
rules in this document.</t>
    </section>
    <section anchor="cryptographic-primitives">
      <name>Cryptographic Primitives</name>
      <section anchor="hash-function">
        <name>Hash Function</name>
        <t>Implementations MUST use SHA-256 as the default digest algorithm for commitment
construction, DHT key derivation, and record identifiers unless a future
version of this specification defines an algorithm agility mechanism.</t>
        <t>All signed structured records MUST be canonicalized before signing.  JSON
encodings MUST use the JSON Canonicalization Scheme (JCS) <xref target="RFC8785"/>.</t>
      </section>
      <section anchor="signatures">
        <name>Signatures</name>
        <t>The initial signature profile for Kinetic is Ed25519 <xref target="RFC8032"/>.
Implementations conforming to this document MUST support Ed25519 signatures.</t>
        <t>Signatures bind the owner key to each reveal, heartbeat, and challenge response.
A record with an invalid signature MUST be rejected and MUST NOT be stored or
forwarded as a valid Kinetic record.</t>
      </section>
      <section anchor="randomness-beacon">
        <name>Randomness Beacon</name>
        <t>Kinetic uses an external beacon to prevent precomputation and to provide a
clockless ordering input.  The initial beacon profile is drand <xref target="drand"/>.</t>
        <t>Implementations MUST verify beacon signatures before accepting a beacon round
as an input to a commitment or heartbeat.  Implementations MUST reject records
that reference unavailable, malformed, or unverifiable beacon data.</t>
      </section>
      <section anchor="verifiable-delay-function">
        <name>Verifiable Delay Function</name>
        <t>Kinetic requires a VDF with the following properties:</t>
        <ul spacing="normal">
          <li>
            <t>Evaluation requires a configured number of sequential steps.</t>
          </li>
          <li>
            <t>Verification is substantially faster than evaluation.</t>
          </li>
          <li>
            <t>The proof binds the output to the input and difficulty parameter.</t>
          </li>
          <li>
            <t>Parallel hardware does not substantially reduce wall-clock evaluation time
for a single challenge.</t>
          </li>
        </ul>
        <t>The initial VDF construction is based on repeated squaring in a group of
unknown order with a Wesolowski-style proof <xref target="Wesolowski"/>.  A future revision
of this document is expected to define an exact VDF ciphersuite registry.</t>
      </section>
    </section>
    <section anchor="name-registration">
      <name>Name Registration</name>
      <section anchor="commitment-construction">
        <name>Commitment Construction</name>
        <t>To register a name, the claimant first obtains a valid beacon value for round
<tt>r1</tt> and generates a salt with at least 256 bits of entropy.</t>
        <t>The claimant computes:</t>
        <artwork><![CDATA[
commitment = SHA256("KINETIC-COMMIT-v1" ||
                    name ||
                    salt ||
                    beacon_round ||
                    beacon_randomness ||
                    owner_public_key)
]]></artwork>
        <t>The domain separation string is REQUIRED.  Implementations MUST NOT reuse this
commitment construction for unrelated protocol purposes.</t>
        <t>The claimant uses the commitment as the VDF input.  The VDF difficulty is
derived from the name and the active network parameter set.</t>
      </section>
      <section anchor="difficulty-function">
        <name>Difficulty Function</name>
        <t>The VDF difficulty function is intended to make short, high-value names more
expensive to claim than longer names while preserving deterministic validation.</t>
        <t>This version defines the following abstract interface:</t>
        <artwork><![CDATA[
difficulty = Difficulty(name, beacon_round, parameter_set)
]]></artwork>
        <t>All validators MUST compute the same difficulty for a given name, beacon round,
and parameter set.  A future revision of this document MUST define exact
constants before this protocol can be considered stable for deployment.</t>
      </section>
      <section anchor="reveal-record">
        <name>Reveal Record</name>
        <t>After the VDF completes, the claimant publishes a reveal record:</t>
        <sourcecode type="json"><![CDATA[
{
  "type": "kinetic.reveal.v1",
  "name": "example.kin",
  "salt": "base64url...",
  "beacon_round": 1234567,
  "beacon_randomness": "base64url...",
  "owner_public_key": "ed25519:base64url...",
  "vdf": {
    "suite": "vdf-wesolowski-classgroup-v1",
    "difficulty": 10000000,
    "input": "base64url...",
    "output": "base64url...",
    "proof": "base64url..."
  },
  "signature": "base64url..."
}
]]></sourcecode>
        <t>The signature covers the canonicalized reveal record with the <tt>signature</tt>
member omitted.</t>
        <t>A validator MUST reject a reveal record unless all of the following are true:</t>
        <ul spacing="normal">
          <li>
            <t>The name is syntactically valid.</t>
          </li>
          <li>
            <t>The beacon round and beacon randomness are valid.</t>
          </li>
          <li>
            <t>The commitment recomputed from the record fields equals the VDF input.</t>
          </li>
          <li>
            <t>The VDF proof verifies for the input, output, suite, and difficulty.</t>
          </li>
          <li>
            <t>The difficulty equals the deterministic difficulty for the name and round.</t>
          </li>
          <li>
            <t>The signature verifies under the owner public key.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="heartbeats-and-liveness">
      <name>Heartbeats and Liveness</name>
      <t>An active owner maintains a name by publishing heartbeat records.  A heartbeat
is a signed statement over the name, owner key, current beacon round, and a
monotonic nonce.</t>
      <sourcecode type="json"><![CDATA[
{
  "type": "kinetic.heartbeat.v1",
  "name": "example.kin",
  "owner_public_key": "ed25519:base64url...",
  "beacon_round": 1234600,
  "nonce": 42,
  "signature": "base64url..."
}
]]></sourcecode>
      <t>A validator MUST reject a heartbeat unless:</t>
      <ul spacing="normal">
        <li>
          <t>The signature verifies under the current owner key.</t>
        </li>
        <li>
          <t>The heartbeat name matches the associated lease record.</t>
        </li>
        <li>
          <t>The beacon round is valid and not older than the previous accepted heartbeat
for the same lease record.</t>
        </li>
        <li>
          <t>The nonce is greater than the previous accepted nonce for the same lease
record.</t>
        </li>
      </ul>
      <t>This document does not require a heartbeat every beacon round.  Exact heartbeat
intervals are deployment parameters and MUST be included in the active
parameter set.</t>
    </section>
    <section anchor="reclamation-and-challenges">
      <name>Reclamation and Challenges</name>
      <t>If a valid heartbeat has not been observed for a name within the configured
active interval, the name becomes inactive.  Inactive names can be challenged by
computing a challenge VDF whose difficulty is derived from the elapsed beacon
rounds since the last valid heartbeat.</t>
      <t>The challenge difficulty function has the abstract form:</t>
      <artwork><![CDATA[
challenge_difficulty =
  ChallengeDifficulty(name, last_heartbeat_round, current_round, parameter_set)
]]></artwork>
      <t>The function SHOULD make very recent inactive names expensive to challenge and
older inactive names less expensive to reclaim.  The function MUST be
deterministic.</t>
      <t>A successful challenge does not by itself prove that the old owner has lost the
name.  A deployment MAY define a challenge response window during which the
previous owner can publish a fresh heartbeat to invalidate the challenge.</t>
    </section>
    <section anchor="dht-storage-and-retrieval">
      <name>DHT Storage and Retrieval</name>
      <t>Kinetic uses a DHT as an untrusted data transport.  A node receiving a Kinetic
record MUST validate the record before storing or forwarding it as a valid
record.</t>
      <t>To reduce single-key censorship risk, a lease record SHOULD be stored at
multiple deterministic keys:</t>
      <artwork><![CDATA[
dht_key_i = SHA256("KINETIC-DHT-v1" || name || i)
]]></artwork>
      <t>where <tt>i</tt> is an integer in the range <tt>0..M-1</tt>.  The replication count <tt>M</tt> is a
deployment parameter.  Clients SHOULD query multiple keys and take the union of
returned records before applying local validation and selection.</t>
    </section>
    <section anchor="record-selection">
      <name>Record Selection</name>
      <t>When a client obtains multiple valid lease records for the same name, it MUST
select a single winning record deterministically.</t>
      <t>This document defines the following provisional ordering:</t>
      <ol spacing="normal" type="1"><li>
          <t>Prefer the valid record with the earliest beacon round used in the initial
reveal.</t>
        </li>
        <li>
          <t>If two records use the same reveal beacon round, prefer the record whose
VDF output has the smallest XOR distance to the next valid beacon
randomness value after the reveal round.</t>
        </li>
        <li>
          <t>If records remain tied, prefer the lexicographically smallest canonical
record digest.</t>
        </li>
      </ol>
      <t>This ordering is intended to remove network latency as a deciding factor.  A
future version of this document should analyze whether earliest-round
selection creates undesirable long-range behavior and whether checkpointing or
bounded history rules are needed.</t>
    </section>
    <section anchor="light-client-resolution">
      <name>Light Client Resolution</name>
      <t>A light client need not participate in the DHT.  It MAY obtain records from one
or more untrusted HTTPS gateways.  Gateways are data transports only.  They do
not decide ownership and need not be trusted.</t>
      <t>A light client resolving a name SHOULD:</t>
      <ol spacing="normal" type="1"><li>
          <t>Query at least three independently operated gateways.</t>
        </li>
        <li>
          <t>Request records for all deterministic DHT keys for the target name.</t>
        </li>
        <li>
          <t>Validate all returned records locally.</t>
        </li>
        <li>
          <t>Apply the deterministic record selection algorithm.</t>
        </li>
        <li>
          <t>Return the selected owner key or report that no valid record was found.</t>
        </li>
      </ol>
      <t>A gateway can censor by omission, but it cannot forge valid records without the
owner key and VDF proof.  Querying multiple independent gateways reduces
omission risk.</t>
    </section>
    <section anchor="parameter-sets">
      <name>Parameter Sets</name>
      <t>Kinetic deployments require shared parameters, including:</t>
      <ul spacing="normal">
        <li>
          <t>name syntax rules;</t>
        </li>
        <li>
          <t>VDF ciphersuite;</t>
        </li>
        <li>
          <t>registration difficulty function;</t>
        </li>
        <li>
          <t>challenge difficulty function;</t>
        </li>
        <li>
          <t>heartbeat interval;</t>
        </li>
        <li>
          <t>challenge response window;</t>
        </li>
        <li>
          <t>DHT replication count; and</t>
        </li>
        <li>
          <t>accepted beacon network identifiers.</t>
        </li>
      </ul>
      <t>This draft intentionally marks the concrete parameter set as provisional.
Interoperable public deployments MUST NOT claim conformance to a final Kinetic
profile until these parameters are fully specified.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
      <t>A future version might request registries for Kinetic record types, VDF suites,
signature suites, beacon profiles, and well-known service identifiers.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Kinetic assumes that adversaries can observe, delay, replay, omit, and inject
DHT traffic.  Correct implementations MUST treat the network and gateways as
untrusted.</t>
      <t>Commitments are intended to prevent front-running.  The beacon value prevents
precomputation before the referenced round.  Binding the owner key into the
commitment prevents a third party from reusing another claimant's completed VDF
under a different key.</t>
      <t>The VDF difficulty is the primary Sybil-resistance mechanism.  If the VDF is
parallelizable, incorrectly parameterized, or too cheap for the target
deployment, attackers can register names at scale.  Public deployments require
empirical calibration, independent cryptographic review, and a clear upgrade
story.</t>
      <t>The DHT can be attacked through eclipse, spam, storage exhaustion, and
censorship by omission.  Implementations SHOULD validate before storing,
replicate records across deterministic independent keys, rate-limit invalid
traffic, and avoid treating any single gateway or peer as authoritative.</t>
      <t>Heartbeat loss can occur for benign reasons such as device failure, key loss,
network partition, or long-term offline use.  Challenge parameters that are too
aggressive can cause accidental loss of names.  Parameters that are too lenient
can preserve abandoned names indefinitely.</t>
      <t>Private keys control names.  A compromised owner key allows an attacker to
publish valid heartbeats and update higher-layer identity bindings.  Users need
secure key storage and recovery mechanisms.  Those recovery mechanisms are out
of scope for this document.</t>
      <t>Beacon dependence creates availability and governance questions.  If the
configured beacon becomes unavailable or distrusted, implementations need a
deterministic transition path.  This draft does not yet specify that path.</t>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>Kinetic records are public.  Heartbeat cadence can reveal that an owner is
online or offline.  Gateway queries can reveal user interest in specific names.
Clients concerned with privacy should query multiple names together, use
privacy-preserving transports where available, and avoid sending identifying
metadata to gateways.</t>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <t>Operators of gateways and DHT nodes should expect invalid traffic.  They should
apply strict parsing, bounded memory use, record-size limits, signature
verification before storage, and per-peer rate limits.</t>
      <t>Implementations should expose clear diagnostics for VDF verification failures,
beacon verification failures, stale heartbeats, and conflicting lease records.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8032">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </reference>
        <reference anchor="RFC8785">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
            <author fullname="B. Jordan" initials="B." surname="Jordan"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
              <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8785"/>
          <seriesInfo name="DOI" value="10.17487/RFC8785"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="Kademlia">
          <front>
            <title>Kademlia: A Peer-to-peer Information System Based on the XOR Metric</title>
            <author initials="P." surname="Maymounkov" fullname="Petar Maymounkov">
              <organization/>
            </author>
            <author initials="D." surname="Mazieres" fullname="David Mazieres">
              <organization/>
            </author>
            <date year="2002"/>
          </front>
        </reference>
        <reference anchor="Wesolowski">
          <front>
            <title>Efficient Verifiable Delay Functions</title>
            <author initials="B." surname="Wesolowski" fullname="Benjamin Wesolowski">
              <organization/>
            </author>
            <date year="2019"/>
          </front>
        </reference>
        <reference anchor="drand" target="https://drand.love/">
          <front>
            <title>drand: Distributed Randomness Beacon</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="KineticDocs" target="https://saifmukhtar.github.io/kinetic/">
          <front>
            <title>Kinetic Protocol Official Documentation</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 465?>

<section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The protocol design discussed in this document draws on prior work in
Kademlia-style routing, verifiable delay functions, threshold randomness, and
self-authenticating records.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA5Vba5PbxrH9jl+BWn2I7SJpaS3JtlKpuiutHG2sV7Rr5+aT
NASG5HhBAMYAu6IV+bff048ZDEiuneuqRFxgnj3dp0/3NObzeda7vrJP8pOr
jc1/dLXtXZG/tv1t013nb7umb4qmOsnMctnZGzTba3KSlU1Rmy2NUHZm1c+3
w/WmN938WhrOa2k4v38fbU2Phqf3Tx/P7z+enz7MCjxYN93uSe7qVZO5tnuS
993g+9P797+/f5qZzhqMfFH3tsNAJ9m13WG08kmW5/Mc87p6zT9LW9i670zl
frNl7ne+t1vPb25s51bOLCuLRpXZ5auhLnrX1PLa2+7GFXjnfNGg7S7zvanL
96ZqasuLsVnraD5IAkvZWX+CP3zT9Z1d+eTJbps+yMzQb5qOF4r/5dggvbtc
5K9EQCf8VEV3adxq+sJujavwxuONivT0/v+s6emiaLbSaOgcmmz6vvVPvv46
aboo7Q3WUDfd1vTuxtIy3v3w7PTBg+/153cPvn0Yft7/5jT8/Pa7R0+yjA5j
2vO7hw8fh5+PH9ynnz+a0m4rZ57wUoIaxaf5Wf7W2m7eN/MW/+YXYcymzi/5
fPKnxuOw8HcP3fvfN+/yV7bvXCF7G+VH/8313yDHt5Cj2W2bob5ubk7iSxXn
WwsZHGmwP8o5jfKbs50c4WSMc3Pjyr3Xor8nUM5TevAv65uqufXXbiqD56uV
Kxz0Mf95VL5zVr4fgvL9N5t8ukimOFjgU1v/QgZw0Cau8sH39ABmWZfTBcqj
/Nx5yHs59DiFd3jSbGvrff7UmqKpZSzIcW37RMm466KCqXxNLRQOzpvC7+mB
4kSAkPwNC8VUOdoOWwiHVeGOWVJVXrt+MywXrvlaIQUTzwFc9H+5WWILpuiz
7GrjfF7q2LlvbQHJW8+6dReuzXKzhxwKKdhj3tzWtvMb1+Zt2AM0OF+6ukST
fDNsTT0HPpV8vHQomKzJi27X9s26M+3GFZkrMbjrdzmAy+e32Eoz9JhV58w7
u6ZD2M3yZdUU18XGuHqWY5ot4Ae736FFbW9NlQmmLaLI88FjQozUbLeux0Ju
LMZbQRFmf4B5+Rc/n//gv5xl3q1r7HdjTdcvrekxTwFg9RAJ9t7ZcqhLA0Gm
OvLC+E1+xcN+cf7i6svc901n1hbbzrbmWoSQm+LXwXnHhu7trwMJwFTposIc
3hHW9iS1VdfU2MRQ15DtDKNBD1U2rCfSBc0rO8f/9zYvTNsPnYVApidf2hUE
xOeexYPbNpDDDCNiadjbuNkbnHspoNQNldXte1sAWvtdBjvwOEJZg+fzd+SL
mhbPSA7hMNTL5W7bVjZqt1+Ilm5dWVY2y+4BBfuuKQc+jCx7cUyH4PPobFdD
BWisdvntxtb0oPPYcx0dlcpwa7dL22XYLenGRZ1jaXVYDrazaW6hGR1p+qqz
9qjatgYOEDK8Gapa9pUdHAnm5UWLSu4fDJzleg65bHP/62D6Hj2wmucf0YzM
Sf0x6yrvyakYLJ3E0HVkUCtL4k+NUedx9ByStx+JBcAUolGJShVyfmR7DY1b
0dl7KGLfm+KaziCcUg8lJZsp3WoFVIe2mBY6YooNyQ6KCLn0XtR4NH9DXWCd
pqp2WWJaE0vPWSsxzFkUD4bH4Dc8Iw9ZVMZt8+WO5AA1YdGYxEZy2Ca/G0R9
8iXcV0kbC2ZOmkUSj7LIu4jb2ZJxm1R6UBMj7BtX8xeft8OywloBRljpm7jD
jtgG9LuCw0enrhnWmzsRgkS1Gh97QoF2xnPxLpdoRnrs6gLi9NgkxGZuQFxY
amRDgLmqsvWawILGpOPHLktLKuRq0pqCpqvMNrHN5CChrHVDOHre0Mrz1zSx
soovzl9ffonebQW1JoHJ2ZaNlU4lEKDosaataUfYNmUJQAKkMqDYaNARQoJH
IYnAQtE5nit1rzNWmDwFfAz1wq3RfA4MxruAUWrIDFRjh/gW4KykFKbqVtb3
ZBdQbVJYnE3P9kjnC+2tgvp7nCEGKkhMjIiBNM/PiZeTyDApOS/wmgGaw8ZC
yE69aTTnGdzq0rLOQaG7PiO4GbynNkrUokRKSyoyg1fr+FhxVp70gIwoIC7G
zRLEdBXtVGGYN7sgVHzW1DckBcJYWsk5icYJSc/oNCDMnHi/z09e/XR5dTKT
f/PXb/j3u+f//Oni3fNz+n354uzly/hDWmT4481PL/U9/Rp7Pnvz6tXz1+fS
GU/zvUevzv59Ivs4efP26uLN67OXJ5AT9pl6HQJtyGxpxT+0nSWHCeSAkApI
GX+gz9Nnb/MHD7NPn5SLf/6c828i4/hNSC8HG4Gf7WpHBw17oyFgOOT6HDwh
OSufeSB8zTq5EFmtmgokgE0K1hT9SRkMmwjIZPEg/GQ/TzLi7Hv+Ifo3NJjl
fig2tKkT+9EQgi3AyE4wLSMJHZKMMaIMJoIuKCyTvaTjHbhuOP2BzPF5efro
0YPvQQ1FOohPIJ2hroidGtgwdpuT7hliABAJQkgwqy1psP1IJgESuoMJrxvA
Kh0EMNdguNXAHdSUxXCw/GcRW2X9pVvD6GTtG9inVyAFTvteSCJECn1lT4Pt
dYCOthFeSBi+gYyW1taYUuDclpjmHVM0mULBVSBVZiJLqxqvs4nAR9TH2WMc
HDmNjyPEH/wbU8Agm5XqTTgITPciIPRkRpAAv2GaD2nbjo0fnn7Lk8busqJr
a9txNcBqCggx8kvAutW10+BXLAR2aTblngmDNruqMSWDv9G9wT9UA4tMuCt2
AgRBb2BTcF7bxrPfIQEwVRv9Dp1bcCOyQ0hjvoTHJ8Pr4QlaZpbidBn6ZANC
JVrmgayGWSYRT6q81S7dyOhkEfgPXXGoukzGOTYi+yDuSUGcY6+ufhnHtHIV
TQfuLHOFYHleuWtOQUSqvSGq3fPkbLuG0Rs6R8kRynAo8yZcyiEhYkkQECyU
A6LeMq6OwdcNeRR7KwgRjLCCcyl2BeYghV1hZ3mLXxahXPYAWxS7eCJKTmIk
SkNOvWdOA9OA70p1FOIedVe33RGHmXGY503VH+rpKWbi4HhvItrPoFOx0hPp
FXsLE6L3N+ithjXtzufoN9xddb9K9JZBCdSBcRL9xJRyNS1eJNsVpniIKV6h
KTV/ktjJOMM+VbqLIzFy8TQt3gCmWhPYQNDYKQdKiBKz/ciIFOuhSYELBc1g
HlUAtUbzEwLEPoWIIKCq632kc9mzyjEp4T1bijN0ALY4cthL9kDVLghrusgx
hsqYpx14R/HxE7b8tnM4Q1gjHPy9exJZhtxIll1Mo6icfT3sIIdPn58+eqw2
RhTKDFUfAHt0BEwyo5pwGAf5FBKwkNAI4xDXuZskiFHFEEIGpgdBBJ+jnoPY
v1Chlexw4kli6EnHGZdi1kJ6thaHCYltIY0zOHHVGVnXkASlstslRbh1U2Ns
CYaWFpuy3E2iq39cvnmd2bpoCEMTGZFg6F3+bOyvabcCUSJi9388A0EW1/rt
d48+f17wGVwGh6qcK8DX6GgVwVi6CRNXd50668XBEeIIiCIq05+SJ166H1rS
yzhanJYo4rg2zr/sO6smB9Zs1I/MRruTcx2NSNy0BziehdOmlIx4B/Ev427D
MXT2F8QLhMEYK7BOekEYTPnLLsPObk1XKk6rpwoSkolExgdZtjGkkXROEtkp
fmJzLW2Mo0mbRodGYkOKMclaTVZQCokVFhNaDqqZNWhIc9wf0QmK4/r0if9l
fThqgewRd6G/T85EdBPBnG0pOoEMUvTPjMYehKx70Sx549GnA6iOTSxHEAwk
Y3LSWQ7hC2JiMbqcgUJUpGe25JTBUCdeXJcEqDJyGndmZ8dT0VAl+CDWln5C
slsObXrHXvOr/Ll4LQ5ax76k/W7NVl4PlLAhBEkCfyB3Cz3/SpekeEIAQ/7c
cCOg98qgITlB0pM4EfW7ksAMo5J9CDqqK1OnLNKnc6bshyuAmztyQ/DVGJPG
eIs/YCgV2EBX3lLYEGPm6TIoOwi53+KPOetcspi8d1siP8L0OPq3owUuptAi
+Y4Rm2nHy3ApgAjeMnmnlJIqM4ZcQ6VaiC8b6uuaQh/WdbXjJBc+9/2uCkL5
9Gl8Af2mLI3GAjAtR5CeBUiPqCTBhJg+O1UO19lCQSRl7a6FQ/eD62OeZcfO
jvMR75I0GevbGGdQxBt3DZk02t2O9HhCZlaug39rlj2naQLCpAkfFrhY24fu
wQc+6LWldJ4wKOJeKqSeiVCfkyNdOjh+bJ2ybk270/MZyZ5EL6Tav//+e5aY
7d/IF2OEL05+vHj9/Ori2Zyi5our+c2Dk/w//4mXFel/HEXc8Y7Xd8c72ed7
3t2ftRkB9o6G7DbeC8t/D+/xJe+Mt11KMslbMgtJqvSieD4PKYa7IIp8QmfF
/zqfSmqi4CsGpQ5oQ2oVUynt0LUU+u3LfwjhYDKech/SvxTd6e/EsrEG5jcc
8ml4J1Gcuk8NhmKeKyABtt8LPJ6Po43AeGSqcLmwn0DiKwG/gVOHS3brzVwU
VVJuWziMjOyr9px0DIEaYxulk7ESaXm7cWzHlrNiOI272GdIfAWSltwEJHgd
bowkUbMyhVXlTnb0t2TvX6TRjOjgbJTWe0hLNYhInS6m6VQr1H54CZ6kn4qN
EXKN3ddHIyam45NTOQJb+QFs8bwKVoxUwn450FA/zR2i7lH0QWxTrzqYk8ZM
bWnbqtkFEn9PQy38Q54Ye171GpSF1DXlAPzs7lBM76lC8oBEl//ioVmfYK0n
/a61J0/yE73pW0jrBTCFIsgTEhO9TtNP/ILQg16Q83j8cOiqxWIhb9JzQ4sH
p988fPT428mrCBnHR9gHDF6AkNQnh61vyhUafGLoOWHPQO3xdH47uiZIxnt2
ZHPdGhqPqkHrvC//6Ts29KPLowWyn7/rLTvAg5d491kkF1jcYZPPIzKOrJjv
nhSTJvHJ5GBHovQhdv2QyV1V3gDJJCN2NhrMhOjtqUkMw2BhrO8TeyaF7gbL
7OsqoBxRpx0QGsDE9zYyUWBKqaExIIYHo/egYSd9EgQONDzFVl0pwsYK9AvM
zlT7OK0D0QNhJcJNrdwrRo42i+k9Vp/ZHmcLwyRIksw2xcY9tJn4AN58GGw8
37gmvFXTTrIdheZsELGPuQ0a7SXBGF1CZWd1cC3Sb6uZk3hbstwFQOBr9CPX
S2fj08wl+Ru+YpOgIeSCBDhjKDjL6TaRWkywVC5Lsm0DLksqC06LwGHxZ+gz
xiV/CkD/P5A4AkqPxdZPeGV49vD0vzTPu21oFK3YT7SQPzztIMAkRSe9xuH4
GLemLzbqXYFmTSGZ9jTHdtTcyEEze6UzodiiqcoQ08j1ElxbM3iNJtO0moYV
0Zkem4vlR5OsOU/5hwNL28MhOaOqQftecUEIiDS2m0iZ7tl3k83yHThxjUSf
iXXckLlygBXd6+jq/Zho4OskypLL9dFI27IDukYuOV6X0gAxOQ6bvFjFmGFc
LuV8aSt0UYHQgtiVTTP0jOE66xi/ZmrcYR9HL371poDqEQLNZCoXqEZYGl3M
ZIKlkjUYUzUcbW/AiaekNj8gtaDSrbcBwjOWO2Vk6WjpfUWhzuHdAUN6nO0Y
m90o0Y6EkfIKIRAKPd+nrBF6E6V+QCBpHe/jCgKRVGv7I17Jd3phUXp7ydSa
1U0vR9xU0FNinSaRMzG3vfbsXiedONfsthpcxPlVLbOJn2FP7geYlfdUtpLI
NdgLQB+Rpq1WUhIh90vsXKpwG0Dyrhq+d7OZ3g+epRby6uzfMQo/ktSDvsJ7
3+blwDEbwoZio1VAavgyDymhOiApisG/o1Vg65oKNMrb0+TFPU4eX46XLzA7
vXrZz+Rxy/1rG8o9jTl43mDdlIxh1t2IDegwmTIKybylC9IXISGMxVBH2K2m
ITli7ZNUZDaiWROSN5KZmVP6FArkGy0Ecf6aSoUmNyWqc2PGEzC2hWa7tton
HFTlFsKpTU+O8L07kiqAaDRPEHICuVNtv+Xqig/uQyxY6O2aFVb2bujIP9xf
LF7NH3xQ7aRaj5AzK2BIff7hlfTPjgEs3WzplYdu7deBTCnuiWv1OE4mM6Np
h1piLUgSfrNOkvUh9RmuR7hOKC0rk3qyyhYaot7T4Cm/DA+z7F9U4gWd5lXF
NE9cj6BXeiZ+6rX0QlWCv0xmG7NvsItarll53smJETc+9HJHA2fOM1PMif2F
/LJeFL7lZCy3l7XuRwEwL+zNT2mZ3GzqwWpKkGMWjfrkahC+q79t4r7DDQfv
W6OEKddrx8WEZZAf4ZHHy/MI735L5o2lUQFyyRWJhY03mfZjP0m2yfrGMEFS
GiaGwSFuEXLNt5PYQFi81FnlvbPTdVb2oyvC3RiHK3FVMchSycgR8n1XOLcx
2T/Nv2C2JsnwUMqpLnaCC3zDx1V38AMNmcRZpqmF/TuusaZ20wwV8TZT7X6z
VJ7ChRjhbOeSfYy6Hm+KiVt6J/WSXCgoRry0GwNclkLGMBgoZXHdNtiGYFrG
JXBEAh2Bz04qwZg71daWHEXeQ/Sx3vRq1DAvxNmDGNZZXvErtSzqwu4oXr/2
NiggMEnuScnNiAmOxkZko6ltxoW5nU0Q/cXV1dvLfI2Bbs2Ogpe/60/hdxO8
93wHK6BF9V4Zl6PtXdYKLw4LXdpwsbs42E1HG1WnwTAqaKY2+U/GtJjspbIs
2isAkRSkpgIZrsmiTcTls8W9k0KXCdRQ6D2Fer1FHZFIiri1pIIU/+fgtKjz
AXBqQeWCr9fPCD6PBLCq76NOxXvVRfaIl0qjih1zG5vUFpBLhGugS0WmG3Wz
h05S9FCLaFUGTA/EIxJpabaOi99m+RKY4dge6Vyw6fUU7MbqbuIc4yLoOGPI
H86FDi3Ce3Io8STUTfssLIBdsxR1ROp/aXs/0o7R1fkYnviNIYc9xhZJ2Q2H
g6w3nCn5KKb1V7qEml5t0KO05PcYW6Y2f0inqcHIskL0MO22x+ToJWnZgXv/
KxPZr8ZATh1ALMIeb/Cjb5MaSK6hZBcGddua7jpk16lWFZo6CasIKROnt8gu
JqXfmhBJxR5vAiSXrXfewaGAbDpynoHghQvYWEnm7SQKpKrKgZ1BKD3l8784
e33G90djYfq+A5fQTlqaIlSix+RxQPgto0kXzT1UW08u+EOJ2q61Wn3GSuHl
EwJJI+iTvZtlLaa/tVU1l6u6UNc6PaB7UGSptz/YVlhEqAxkOzYlbcDwSsla
NXadybcOMyn9xb+UZ5QluJpSIlR3RWBMusnVTR0VAu+X7MshciW4UgBRKr5Q
i9jus+gCJgWEcmypFw6X95NyeiWukws8beizvWv+mLS34513GfMLT/VzlGlF
BBbABCa9hwrjQw/h1ztGBTJQ8m10c8WORIsrQ+r+Lz4m9RnFMskTpRX0khA8
egOlaReMBE90uVu6ah4++qDi5lgQIyQv5Eo9JzfoItr9Jnf6gCw5qyq5saak
M9/x9w2FuNa0e54o4f4z/RYgfEMRL1v1iwtwGzgjCjjfHhq1Ymlmt63riInl
lPJehs8fUvSefhFAYae91eQjREoVvEOLt6XNmMwkRVyaGdFlxlrdHFG4az2V
3rZmO4tlf/bjxkD5QulSloRwidM6clepAU+MJ6dB5CwLWDsGGqboGu/3/HK6
aSIBMDr0mVdU1BXi50xNTQVw08BVslmJou1CeBIcLw6PPxQkfsqfxbneaMFp
TDZTgkCNvgBkyAdZtgYQ5fStAe0w1CiXlqFmZVwFiJqxWVDvWZZcefZOZIhh
xk9YmtWqoiQDQo1FktFJsVlwiGu+m8ys1/TpACVOmDwYilHgmxjloC68ZrBp
VjbSsePjgKjVjqvVKEEh152UfaJgo9ZaVc+S5+J4y4HbWy5h05A1fP4SJjpj
4+1IHSa8yFBIJ2Vqahb0BVfIiezlyiQSHlpWl036OUP8ckE/iaMpf+LvlIi+
ZvwRlZTuJ9WqrFecuYr2L59cNBrc7r1j6YBVUX2GL+B81cqn5YVPtbRHlbKw
Y5mqlAZJDR5jOM1QMwKx32PnGBAoSwp1FJxDVjOpMiJ14WJdxv/ZgQdh9m6m
OTKJAuSrOIQdm1hBzMQk5sl2Nny7qDXY3FZqeXHSxd0uMtprF6gJfX4SDacw
KheGPw5SRflqVQzgLqIT0vumCyYwhjOcIgkOV/vTN2nC5Ig+UOGEVkOqAsbC
UqJXlsk/JwRa3YnGk3vJl/BFzpoDwhnNkmmPeVIEkARVkjJKasBGvPFWvKMS
DuLdGUzPSFzWJIEPJPymValib/tSlnd0rw89HGkAfasC9KYcng/7kaKhWFA4
Eg6O+qRRxvkiLi8pOBr1/E1PCHa3iNwhk4GAX8517uHvcsZXgG1kXtnkC7gE
zGFtMy3o7eT7awJoHeBIfd+4drJD8VWlM+u6IeUVRkjeeTKfYisgNRCZo2/l
s80EUbQsE6ZW0UeFlDVLc1v60SSV8tOxnBVEHitbruWLIXGae18h5fqdUkgo
TdJZnbml0JsUD9uQEKHOYvG9FIrFD6vu/nhWPm6CqCCpMQckHphy23PyW6Ro
hTi5uJ//A3WmA6hoQQAA

-->

</rfc>
