Subject: [MLS] Restructure of Section 5: Ratchet Trees of mls-protocol

From: Rohan Mahy <[email-masked]>
Date: Mon, 4 Oct 2021 06:34:50 -0700

Hi,

I'd like to suggest a restructure of Section 5 of the mls-protocol draft on
Ratchet Trees. I think it is important even for those who do not implement
the ratchet tree themselves but use (for example) an external library, to
have a good mental model of their operation.

Right now there are a lot of forward references and terms which are
mentioned but left undefined or unexplained until much later.
There are even some places where we have an apparently contradictory
sentence a few paragraphs later. I will send text for these (or a pull
request), but I wanted to propose a slightly different order of introducing
the key concepts inside the ratchet trees sections.

*Basic tree terminology (currently section 5.1)*
- Keep the first 5 paragraphs in the same order (start with introducing
nodes and leaves and end, up to left-balanced trees)
(move direct path and copath forward)
- Introduce node and leaf indexes

*Add a non-normative explanation "Overview of Ratchet Tree Operations" in a
new subsection*
- paragraphs 1,2,4,5 from current section 5.3 "Views of a Ratchet Tree"
- show examples of removing a node, adding a node, an update, and a commit
- explain which keying material is updated, and propagated where, without
explaining how yet.
- add a few more diagrams

*Rewrite "Ratchet tree nodes" (currently section 5.2) and rename it
"Ratchet tree data structures"*
- explain data structures which are associated with various nodes
- explain blank nodes
- explain direct paths and copaths
- explain unmerged nodes
- explain resolution

*Remove current Section 5.3*

*Current Section 5.4 "Ratchet Tree Evolution" and Section 5.5
"Synchronizing View of the Tree"*

How do people feel about this?
Thanks,
-rohan

*Rohan Mahy  *l  Vice President Engineering, Architecture

Chat: @rohan_wire on Wire

Wire <https://wire.com/en/download/> - Secure team messaging.

*Zeta Project Germany GmbH  *l  Rosenthaler Straße 40,
<https://maps.google.com/?q=Rosenthaler+Stra%C3%9Fe+40,%C2%A0+10178+Berlin,%C2%A0+Germany&entry=gmail&source=g>10178
Berlin,
<https://maps.google.com/?q=Rosenthaler+Stra%C3%9Fe+40,%C2%A0+10178+Berlin,%C2%A0+Germany&entry=gmail&source=g>
Germany
<https://maps.google.com/?q=Rosenthaler+Stra%C3%9Fe+40,%C2%A0+10178+Berlin,%C2%A0+Germany&entry=gmail&source=g>

Geschäftsführer/Managing Director: Morten J. Broegger

HRB 149847 beim Handelsregister Charlottenburg, Berlin

VAT-ID DE288748675

---

From: Richard Barnes <[email-masked]>
Date: Mon, 4 Oct 2021 17:22:21 -0400

Hi Rohan,

This restructuring sounds pretty good to me.  I'm not surprised that that
section is a little grizzled; it's one of the older sections, and has kind
of been tweaked as we went along without a coherent rewrite.  A PR would be
welcome.

That said, as we discussed on the interim call today, I would propose that
we go ahead and issue WGLC once the technical fixes are in, and handle
editorial / clarity stuff like this along with WGLC comments.

--RLB

On Mon, Oct 4, 2021 at 9:35 AM Rohan Mahy <rohan.mahy=
[email-masked]> wrote:

> Hi,
>
> I'd like to suggest a restructure of Section 5 of the mls-protocol draft
> on Ratchet Trees. I think it is important even for those who do not
> implement the ratchet tree themselves but use (for example) an external
> library, to have a good mental model of their operation.
>
> *Add a non-normative explanation "Overview of Ratchet Tree Operations" in
> a new subsection*
> _______________________________________________
> MLS mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/mls
>