<?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.43 (Ruby 4.0.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-mls-ratchet-tree-options-02" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.35.0 -->
  <front>
    <title abbrev="Ratchet tree options in MLS">Ways to convey the Ratchet Tree in Messaging Layer Security</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-mls-ratchet-tree-options-02"/>
    <author initials="R." surname="Mahy" fullname="Rohan Mahy">
      <organization>Rohan Mahy Consulting Services</organization>
      <address>
        <email>rohan.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="November" day="01"/>
    <area>Security</area>
    <workgroup>Messaging Layer Security</workgroup>
    <keyword>ratchet_tree</keyword>
    <keyword>GroupInfo</keyword>
    <keyword>PartialGroupInfo</keyword>
    <abstract>
      <?line 37?>

<t>The Messaging Layer Security (MLS) protocol needs to share its
<tt>ratchet_tree</tt> object to welcome new clients into a group and in
external joins. While the protocol only defines a mechanism for sharing
the entire tree, most implementations use various optimizations to avoid
sending this structure repeatedly in large groups. This document describes
a way to convey these improvements in a standardized way and to
convey the parts of a GroupInfo object that are not visible to an
intermediary server.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://messaginglayersecurity.rocks/mls-ratchet-tree-options/draft-ietf-mls-ratchet-tree-options.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-mls-ratchet-tree-options/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Messaging Layer Security Working Group mailing list (<eref target="mailto:mls@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/mls/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/mls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/mlswg/mls-ratchet-tree-options"/>.</t>
    </note>
  </front>
  <middle>
    <?line 48?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>In the Messaging Layer Security (MLS) protocol <xref target="RFC9420"/>, the members of
a group are organized into a ratchet tree, the full representation of which
is described in the <tt>ratchet_tree</tt> extension. The protocol specifies that
the full <tt>ratchet_tree</tt> can be included in Welcome messages or shared
externally, but describes no concrete way to convey it externally.
Likewise, when non-member clients want to join a group, they can do so using
an external commit. They require the GroupInfo and the <tt>ratchet_tree</tt>.</t>
      <t>Many MLS implementations allow external commits to get the GroupInfo from a
central server. In the MIMI architecture <xref target="I-D.ietf-mimi-arch"/>, this server
is called the hub, and for brevity we will use that term generically to refer
to any central server that provides either GroupInfo or <tt>ratchet_tree</tt>
objects to new members (i.e. welcomed clients or externally joining clients).</t>
      <t>When all handshake messages (commits and proposals) are sent as
<tt>PublicMessage</tt>s (or <tt>SemiPrivateMessage</tt>s
<xref target="I-D.mahy-mls-semiprivatemessage"/>),
the hub can construct its own version of the <tt>ratchet_tree</tt> and most of the
GroupInfo object as proposals and commits arrive.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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>This document assumes familiarity with terms and structs from the MLS specification (<xref target="RFC9420"/>).</t>
    </section>
    <section anchor="conveying-the-ratchet-tree">
      <name>Conveying the Ratchet Tree</name>
      <t>The ratchet tree can be conveyed inline in its entirety. Alternatively,
this document describes how it can be referred to via an HTTPS URI, or
signaled that it is communicated out-of-band or reconstructed by the distribution service.</t>
      <sourcecode type="tls"><![CDATA[
enum {
  reserved(0),
  full(1),
  httpsUrl(2),
  outOfBand(3),
  distributionService(4),
  (255)
} RatchetTreeRepresentation;

struct {
  RatchetTreeRepresentation representation;
  select (representation) {
    case full:
      optional<Node> ratchet_tree<V>;
    case httpsUrl:
      /* an HTTPS URL */
      opaque ratchet_tree_url<V>;
    case outOfBand:
      struct {};
    case distributionService:
      struct {};
  };
} RatchetTreeOption;
]]></sourcecode>
      <ul spacing="normal">
        <li>
          <t><tt>full</tt> indicates that the complete <tt>ratchet_tree</tt> extension is included in
the RatchetTreeOption object.</t>
        </li>
        <li>
          <t><tt>httpsUri</tt> indicates that the <tt>ratchet_tree</tt> can be downloaded from a</t>
        </li>
        <li>
          <t><tt>httpsUrl</tt> indicates that the <tt>ratchet_tree</tt> can be downloaded from a
URL using the <tt>https:</tt> scheme.</t>
        </li>
        <li>
          <t><tt>outOfBand</tt> indicates that the <tt>ratchet_tree</tt> is communicated or
reconstructed via an unspecified out-of-band application protocol.</t>
        </li>
        <li>
          <t><tt>distributionService</tt> indicates that the <tt>ratchet_tree</tt> is reconstructed
by the Distribution Service (DS) from the handshake in the group. This is not
possible if any handshake messages are sent as an MLS <tt>PrivateMessage</tt>.</t>
        </li>
      </ul>
      <section anchor="conveying-the-ratchet-tree-using-https">
        <name>Conveying the ratchet tree using HTTPS</name>
        <t>This document defines a new MLS GroupContext extension <tt>ratchet_tree_source_domains</tt>.
When present, it contains a list of at least one domain name.</t>
        <sourcecode type="tls"><![CDATA[
struct {
    opaque domain<V>;
} Domain;

struct {
    Domain domains<V>
} DomainList;

DomainList ratchet_tree_source_domains;
]]></sourcecode>
        <t>When this extension is included in the GroupContext of a group, the URL where the <tt>ratchet_tree</tt> is fetched <bcp14>MUST</bcp14> come from one of the domains in the <tt>ratchet_tree_source_domains.domains</tt> list.</t>
      </section>
    </section>
    <section anchor="conveying-the-groupinfo">
      <name>Conveying the GroupInfo</name>
      <t>In some systems the GroupInfo is sent to a hub with a full <tt>ratchet_tree</tt>
extension always included with every commit. This is used in systems where
the hub may or may not track the membership of the group, but does not keep
the entire <tt>ratchet_tree</tt> data structure. As group size increases, the size
of the <tt>ratchet_tree</tt> extension in the GroupInfo scales roughly linearly.
Even using <tt>basic</tt> credentials, this object gets large quickly. If <tt>x509</tt>
credentials are used, the size increases much more rapidly, and if a
post-quantum ciphersuite (for example <xref target="I-D.ietf-mls-pq-ciphersuites"/>) is
used, the size will increase even more rapidly with each new member.</t>
      <t>In some systems that require unencrypted handshake messages, the hub tracks
commits as they are sent and constructs changes to the <tt>ratchet_tree</tt> as
each handshake is accepted. The hub could also recreate most of the fields
of a GroupInfo, with the exception of the GroupInfo signature and the
GroupInfo extensions, by inspecting those same unencrypted handshake
messages . This document defines a <tt>PartialGroupInfo</tt> struct that contains
these missing fields. <tt>PartialGroupInfo</tt> can be included with a commit and
any referenced proposals to reconstruct a GroupInfo and <tt>ratchet_tree</tt> from
the GroupInfo and <tt>ratchet_tree</tt> included in the previous epoch.</t>
      <sourcecode type="tls"><![CDATA[
enum {
  no_ratchet_tree(0),
  present(1),
  removed(2),
  added(3),
  (255)
} RatchetTreePresence;

struct {
  RatchetTreePresence ratchet_tree_presence;
  /* GroupInfo extensions excluding ratchet_tree */
  Extension group_info_extensions<V>;
  opaque signature<V>;
} PartialGroupInfo;
]]></sourcecode>
      <t>The value of <tt>ratchet_tree_presence</tt> is defined as follows:</t>
      <ul spacing="normal">
        <li>
          <t><tt>no_ratchet_tree</tt>: the <tt>ratchet_tree</tt> extension appears in neither the
current nor previous epochs.</t>
        </li>
        <li>
          <t><tt>present</tt>: there is a <tt>ratchet_tree</tt> extension in both the current and
previous epochs.</t>
        </li>
        <li>
          <t><tt>removed</tt>: there was a <tt>ratchet_tree</tt> extension in the previous epoch
but none in the current epoch.</t>
        </li>
        <li>
          <t><tt>added</tt>: there is a <tt>ratchet_tree</tt> extension in the current epoch
but there was none in the previous epoch.</t>
        </li>
      </ul>
      <t>The <tt>group_info_extensions</tt> object is the list of GroupInfo
extensions, omitting any <tt>ratchet_tree</tt> extension (if present). The only
other GroupInfo extension defined in the base protocol is <tt>external_pub</tt>,
the group's public key for external joiners whose private key is held by the
entire group. The <tt>group_info_extensions</tt> is often an empty list. If a
PartialGroupInfo is received with a <tt>ratchet_tree</tt> extension, the entire message
is rejected.</t>
      <t>The <tt>signature</tt> in the PartialGroupInfo is the signature produced by the
committer (represented by its leaf index in the GroupInfo as the <tt>signer</tt>), as
described in <xref section="12.4.3" sectionFormat="of" target="RFC9420"/>. The <tt>signature</tt> only covers
GroupInfo extensions that are actually included in the full GroupInfo.
For implementations that support PartialGroupInfo, if the <tt>ratchet_tree</tt>
extension is ever present in the signed GroupInfo, it <bcp14>MUST</bcp14> be the last element
in the extension list.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The Security Considerations of the MLS protocol <xref target="RFC9420"/> and the MLS architecture <xref target="RFC9750"/> apply.</t>
      <t>The integrity of the ratchet tree is assured using the MLS <tt>GroupContext.tree_hash</tt> (see <xref section="7.8" sectionFormat="of" target="RFC9420"/>).
The tree hash allows the receiver to verify that the ratchet tree is valid whether it is transmitted in the <tt>ratchet_tree</tt> extension or out-of-band.</t>
      <t>In some systems such as the MIMI protocol <xref target="I-D.ietf-mimi-protocol"/>, the DS receives a GroupInfo with each tentative commit message.
The DS cannot verify the correctness of a GroupInfo because it does not have the <tt>GroupInfo.extensions</tt>.
This is no different with a partial GroupInfo message.
In both partial and full GroupInfo presentations, given a specific <tt>GroupInfo.signature</tt>, the DS can merely verify that the extensions and the signature are consistent with each other and with the GroupContext.</t>
      <t>When the <tt>ratchet_tree_source_domains</tt> is set, the client will only download the ratchet tree from one of the domains in that list.
This prevents an intermediate protocol from providing an unauthorized domain to clients fetching the ratchet tree over HTTPS.
A malicious server could otherwise give the domain of a proxy, so that it could infer when clients are joining various groups, or build a social graph of users in the same group.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests the addition of new values under the heading of "Messaging Layer Security".
Each registration is organized under the relevant registry Type.</t>
      <t>RFC EDITOR: Please replace XXXX throughout with the RFC number assigned to this document.</t>
      <section anchor="mlspartialgroupinfo-mls-wire-format">
        <name>mls_partial_group_info MLS Wire Format</name>
        <t>This document registers the <tt>mls_partial_group_info</tt> MLS Wire Format, using the template below:</t>
        <ul spacing="normal">
          <li>
            <t>Value: 0x0010 (suggested)</t>
          </li>
          <li>
            <t>Name: mls_partial_group_info</t>
          </li>
          <li>
            <t>Recommended: Y</t>
          </li>
          <li>
            <t>Reference: RFC XXXX</t>
          </li>
        </ul>
      </section>
      <section anchor="ratchettreesourcedomains-mls-extension-type">
        <name>ratchet_tree_source_domains MLS Extension Type</name>
        <t>This document registers the <tt>ratchet_tree_source_domains</tt> MLS Extension Type, using the template below:</t>
        <ul spacing="normal">
          <li>
            <t>Value: 0x000A (suggested)</t>
          </li>
          <li>
            <t>Name: ratchet_tree_source_domains</t>
          </li>
          <li>
            <t>Messages: GC</t>
          </li>
          <li>
            <t>Recommended: Y</t>
          </li>
          <li>
            <t>Reference: RFC XXXX</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9420" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9420.xml">
          <front>
            <title>The Messaging Layer Security (MLS) Protocol</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="R. Robert" initials="R." surname="Robert"/>
            <author fullname="J. Millican" initials="J." surname="Millican"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="K. Cohn-Gordon" initials="K." surname="Cohn-Gordon"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>Messaging applications are increasingly making use of end-to-end security mechanisms to ensure that messages are only accessible to the communicating endpoints, and not to any servers involved in delivering messages. Establishing keys to provide such protections is challenging for group chat settings, in which more than two clients need to agree on a key but may not be online at the same time. In this document, we specify a key establishment protocol that provides efficient asynchronous group key establishment with forward secrecy (FS) and post-compromise security (PCS) for groups in size ranging from two to thousands.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9420"/>
          <seriesInfo name="DOI" value="10.17487/RFC9420"/>
        </reference>
        <reference anchor="RFC2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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="RFC9750">
          <front>
            <title>The Messaging Layer Security (MLS) Architecture</title>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="S. Inguva" initials="S." surname="Inguva"/>
            <author fullname="A. Duric" initials="A." surname="Duric"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>The Messaging Layer Security (MLS) protocol (RFC 9420) provides a group key agreement protocol for messaging applications. MLS is designed to protect against eavesdropping, tampering, and message forgery, and to provide forward secrecy (FS) and post-compromise security (PCS).</t>
              <t>This document describes the architecture for using MLS in a general secure group messaging infrastructure and defines the security goals for MLS. It provides guidance on building a group messaging system and discusses security and privacy trade-offs offered by multiple security mechanisms that are part of the MLS protocol (e.g., frequency of public encryption key rotation). The document also provides guidance for parts of the infrastructure that are not standardized by MLS and are instead left to the application.</t>
              <t>While the recommendations of this document are not mandatory to follow in order to interoperate at the protocol level, they affect the overall security guarantees that are achieved by a messaging application. This is especially true in the case of active adversaries that are able to compromise clients, the Delivery Service (DS), or the Authentication Service (AS).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9750"/>
          <seriesInfo name="DOI" value="10.17487/RFC9750"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-mimi-arch">
          <front>
            <title>An Architecture for More Instant Messaging Interoperability (MIMI)</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   The More Instant Messaging Interoperability (MIMI) working group is
   defining a suite of protocols that allow messaging providers to
   interoperate with one another.  This document lays out an overall
   architecture enumerating the MIMI protocols and how they work
   together to enable an overall messaging experience.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mimi-arch-03"/>
        </reference>
        <reference anchor="I-D.mahy-mls-semiprivatemessage">
          <front>
            <title>Semi-Private Messages in the Messaging Layer Security (MLS) Protocol</title>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
              <organization>Rohan Mahy Consulting Services</organization>
            </author>
            <date day="19" month="April" year="2026"/>
            <abstract>
              <t>   This document defines a SemiPrivateMessage for the Messaging Layer
   Security (MLS) protocol.  It allows members to share otherwise
   private commits and proposals with a designated list of external
   receivers rather than send these handshakes in a PublicMessage.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mahy-mls-semiprivatemessage-07"/>
        </reference>
        <reference anchor="I-D.ietf-mls-pq-ciphersuites">
          <front>
            <title>ML-KEM and Hybrid Cipher Suites for Messaging Layer Security</title>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
         </author>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
         </author>
            <date day="21" month="July" year="2026"/>
            <abstract>
              <t>   This document registers new cipher suites for Messaging Layer
   Security (MLS) based on "post-quantum" algorithms, which are intended
   to be resilient to attack by quantum computers.  These cipher suites
   are constructed using the new Module-Lattice Key Encapsulation
   Mechanism (ML-KEM), optionally in combination with traditional
   elliptic curve KEMs, together with appropriate authenticated
   encryption, hash, and signature algorithms.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mls-pq-ciphersuites-06"/>
        </reference>
        <reference anchor="I-D.ietf-mimi-protocol">
          <front>
            <title>More Instant Messaging Interoperability (MIMI) using HTTPS and MLS</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="Matthew Hodgson" initials="M." surname="Hodgson">
              <organization>The Matrix.org Foundation C.I.C.</organization>
            </author>
            <author fullname="Konrad Kohbrok" initials="K." surname="Kohbrok">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
              <organization>Rohan Mahy Consulting Services</organization>
            </author>
            <author fullname="Travis Ralston" initials="T." surname="Ralston">
              <organization>The Matrix.org Foundation C.I.C.</organization>
            </author>
            <author fullname="Raphael Robert" initials="R." surname="Robert">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <date day="25" month="April" year="2026"/>
            <abstract>
              <t>   This document specifies the More Instant Messaging Interoperability
   (MIMI) transport protocol, which allows users of different messaging
   providers to interoperate in group chats (rooms), including to send
   and receive messages, share room policy, and add participants to and
   remove participants from rooms.  MIMI describes messages between
   providers, leaving most aspects of the provider-internal client-
   server communication up to the provider.  MIMI integrates the
   Messaging Layer Security (MLS) protocol to provide end-to-end
   security assurances, including authentication of protocol
   participants, confidentiality of messages exchanged within a room,
   and agreement on the state of the room.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mimi-protocol-06"/>
        </reference>
        <reference anchor="I-D.robert-mimi-delivery-service">
          <front>
            <title>MIMI Delivery Service</title>
            <author fullname="Raphael Robert" initials="R." surname="Robert">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <author fullname="Konrad Kohbrok" initials="K." surname="Kohbrok">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <date day="6" month="November" year="2023"/>
            <abstract>
              <t>   This document describes the MIMI Delivery Service.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-robert-mimi-delivery-service-06"/>
        </reference>
      </references>
    </references>
    <?line 269?>

<section anchor="change-log">
      <name>Change Log</name>
      <section anchor="changes-between-ietf-01-and-02">
        <name>Changes between ietf-...-01 and -02</name>
        <ul spacing="normal">
          <li>
            <t>Clarify how to build the PartialGroupInfo signature when the original GroupInfo included the ratchet_tree extension</t>
          </li>
          <li>
            <t>Added an IANA Wire Format registration (#2)</t>
          </li>
          <li>
            <t>Added a suggested value for the <tt>ratchet_tree_source-domains</tt> extension</t>
          </li>
        </ul>
      </section>
      <section anchor="changes-between-ietf-00-and-01">
        <name>Changes between ietf-...-00 and -01</name>
        <ul spacing="normal">
          <li>
            <t>Added note in Security Considerations with motivation for <tt>ratchet_tree_source_domain</tt> extension.</t>
          </li>
        </ul>
      </section>
      <section anchor="changes-between-draft-mahy-04-and-draft-ietf-00">
        <name>Changes between draft-mahy-...-04 and draft-ietf-...-00</name>
        <ul spacing="normal">
          <li>
            <t>No changes except for renaming the draft</t>
          </li>
        </ul>
      </section>
      <section anchor="changes-between-03-and-04">
        <name>Changes between -03 and -04</name>
        <ul spacing="normal">
          <li>
            <t>Added Security Considerations</t>
          </li>
          <li>
            <t>Removed unneeded tree_signature</t>
          </li>
        </ul>
      </section>
      <section anchor="changes-between-02-and-03">
        <name>Changes between -02 and -03</name>
        <ul spacing="normal">
          <li>
            <t>No changes except for the publication dates</t>
          </li>
        </ul>
      </section>
      <section anchor="changes-between-01-and-02">
        <name>Changes between -01 and -02</name>
        <ul spacing="normal">
          <li>
            <t>Added ratchet_tree_source_domains extension</t>
          </li>
        </ul>
      </section>
      <section anchor="changes-between-00-and-01">
        <name>Changes between -00 and -01</name>
        <ul spacing="normal">
          <li>
            <t>Removed ratchet tree patch options and notation.</t>
          </li>
          <li>
            <t>Added <tt>ratchet_tree_presence</tt> options for out-of-band, via HTTPS, and
reconstructed by the delivery service.</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The PartialGroupInfo was first introduced in
<xref target="I-D.robert-mimi-delivery-service"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
lUd+ZSR14v8qUPk9yywAAA==

-->

</rfc>
