[Keytrans] Re: Keytrans@IETF 126 : Call for agenda topics
Guy Fischman <gfischman@gmail.com> Thu, 30 July 2026 18:57 UTC
Return-Path: <gfischman@gmail.com>
X-Original-To: keytrans@mail2.ietf.org
Delivered-To: keytrans@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 70D51121388CE for <keytrans@mail2.ietf.org>; Thu, 30 Jul 2026 11:57:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1785437877; bh=A8RkhGP0m4s6XjSMBuYz99TYzS19+iiYf+SCeApDAAI=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=o6qpWtysVd38qzrNgzoFa0PSXdbRbOQsgOObNPM7Bp+8vWdJikFIh1TM/Lw4oQ2Vc 1b+f81PQxO85ECc1p3qTzo6gxlvKjoLVjReH/ldXYiDVmuVuuNTw0WDgntyRQ3EH/9 7a6woS06/6NrITEbSp5PO578dB32fuj0cWaIR7BI=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.088
X-Spam-Level:
X-Spam-Status: No, score=-2.088 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2FGoz1nKW-Uo for <keytrans@mail2.ietf.org>; Thu, 30 Jul 2026 11:57:56 -0700 (PDT)
Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 6F071121388BB for <keytrans@ietf.org>; Thu, 30 Jul 2026 11:57:56 -0700 (PDT)
Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-47362928f65so51861f8f.2 for <keytrans@ietf.org>; Thu, 30 Jul 2026 11:57:56 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1785437875; cv=none; d=google.com; s=arc-20260327; b=ThGjjfCsNnljQcdo14YrRK63j2Hy72uOVqMXSRvTOLzOnUpWc2hSCIOrf2bnQsktRx tvz+MTuanBThYHBywBbAIkoKGCAKRtfy4K7HWrNFu4ar7wN8F/EZEMx4hF6yaYbXbgwX WuSMSKJLN3WIUrZMYJAWKI19wyvCJO6bKf0Yre6Ve5+js/FNUYeQEUOWvN+50eHL86Ta dkzq2rdGSrO9YwowlOoZcriNNGe90WRruRHnd4e3ePQNBnn2qklREBUz+Kcx8WkuCvEU qPJzh6tap8FzejnTcftephQcHFWcn8RUV5tTKmpB7M/ROib4u4loMRguPBTdhmklC8FT 3Mfg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=qtm9B2LNBeVgjr/HCvjQs3U9Xh5WSqi9wNI9WWUlg8Y=; fh=dlXMr+1m9VP/HbfFWGxRWEfeUVia9nuccr1XQOrmynM=; b=jO7C9X0bUsgVxqPwleyz33FdEPEplaPNuPdfi1jSzoCqAPQQyBSbe0pd5RvjFVZOwS vdO4IGjW3BVGLYQ2JV84YF/hA8pnP0dML1lj0X8gMtPNv8kMvl9+aC7KBDI60ATHhh+a MwiA5jBixaC95X3I7OmAO7DyeMtYnjTKE1K97KVQ3oKQZcBPHv50gN1ui1KfJcbRKjkf 34X07jbmQvpOnv3I8dg61AF6vpPQNKI93FZ5kACk8kEy0BDLYqhHIye9qw7zvXo+tEO9 /aRXOwX5quQ1KTfKQAQcVyCUF1gH3M20/+E6VKoQRSoL7T6xmR7S/Xtfz9t5iS9FyBA4 T3/A==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785437875; x=1786042675; darn=ietf.org; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=qtm9B2LNBeVgjr/HCvjQs3U9Xh5WSqi9wNI9WWUlg8Y=; b=B65Z7pvLZKBP6gam5SULamFv+rxVZpfuEuivvV0T42Lgr4YMLXPHaeUOKdzbTmmyIg KKcYvN85jTf+gW2KV3IPAP3qDYsWA/IGVCKXwv9JuX5SbCFkppbA25BcDCXF67jxooof ZBwLbh3vk1uAyW3AbzUiZXBIqYSHQ1eRpoZHBfbFTWl/2jqg0wljeqj4LYuHyAwFkcFH JEPfPQ0SN+VahHfA0KnzbGDEUsYXgfZiOQtQZQQ857RM26Ih2bZdwXSQGIO6VfeqHFYC Pdv8vyovDigr9Jh4+7FCWOq5VPSf+wxJsKbIXYL/ZdM3Mnf4/JTgpK86GraGdP0Cno+K KtAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785437875; x=1786042675; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=qtm9B2LNBeVgjr/HCvjQs3U9Xh5WSqi9wNI9WWUlg8Y=; b=K+BWZoDUY2jbCKXZQ3DQKU/Q8bk3lA9nGYrU5g1o25LrYAFfZEshWvRU/mK9vh+GyA fOTvfUyUxXvueU1nnpbsq/Mz39+2yx0RcAqn6Tc2APUR0LwGiiYMVqUXsP5WNEjySCWx /Marl7xdn2piB4AN/8gGB+1ZD4VFXEsDluWK/2ebTqNehCNc8c1f1D13SpAF7p1KOplW MOjZBQh7K8WGqkktLHQD8SwsgVqdPolvyVYLFPvKsbvApOM5KvkdirY70weoilPJVtE3 otphBg1rIA/VyJ89Gga6VzjPQh0VKr+OYOnpJjQC5uFSZKCe4OarmSsSE21GH42tJhtD 8Hyg==
X-Forwarded-Encrypted: i=1; AHgh+RptiVNN5dqN2ANcrj2VGhMxeYhFpwMYjURjZbq0riv6u2H3WgVx7Ylr9vUvKJ6Bu+PPWCBukSx/IQ==@ietf.org
X-Gm-Message-State: AOJu0YwPe+kZP1zRJxqpPzF2Bk9NMvJu6RrrK25nGovYPPq130iESkiy m/DNT6N8XAdiLWZOBP/xnlNYq2Wt04Uvzg3kbrrkfqz0pooT9eJSkdmJmQ9w/K00teeU+A9zLum ZC29WNBgPFrudPHfHPOVQ0twXBTiAwQ==
X-Gm-Gg: AR+sD10w8Sa7XhbNNEfL+sOctNHaxMdtZNWfG3hINl2oDMubWcRAUlyNlDxPy5i3yiV bZXei/xQzJfr0LFT1QHIvMkFWEnFG+9aWS4wAai1KmfuWxEbd5bhzNSaJqOJ+9SfDzGgkmz1Ior y1bR7F7q9hui12DK82G0Wembohlh42+1El8TmNbzxEUTPKHBg8uW0wdMbaa/lSnABVG8IFMs6H4 smtSCFuynntpib1VUT0AHWTKglbJ+8xI7sQ6KihVQ/RtUySnb3mz3/xEe8QXk/15SmV3G54sBrz A8Pe0qf9r5jTNW4ZetHKd/j04xXWNiNc369PL4Nlvmv1smad/KZH/9/wjtRh22XQ27NfAyw8fE3 QkRm/lCw7TCqThVqrHDTsr8WFwTzLAc7tohGlazspWuaYjfiEv/pbrgDGBw==
X-Received: by 2002:a05:6000:4a14:b0:47f:6fd1:d399 with SMTP id ffacd0b85a97d-47fc820882cmr5507433f8f.51.1785437875175; Thu, 30 Jul 2026 11:57:55 -0700 (PDT)
MIME-Version: 1.0
References: <CAA1-vB0H9ytS8Af-E7rL3-2XjDFKKiP5AgXL=NVJSvCzc+5VQQ@mail.gmail.com> <CAPeSryro49=BNuocgU+ULDh0W++4VuHpywivxicdu5GQFAyHjQ@mail.gmail.com> <CAPeSrypab7TR1=CwAfGiJVWH3Sy+D6d=93vmq69BQVyoa1-evg@mail.gmail.com> <CAMzqgozkOYVAw8P0G=Q-MwBHEDgjm8TRgDUWvm3Mr-SFn+unvw@mail.gmail.com> <CAKbydOUo9tXhFR31f-p2QGwQNGKk2uwrBxiEaHJyUk6pUsYr6w@mail.gmail.com> <CAPeSryqe9Vf=cNMQauZfV8yN6JRn4_HVEsF-THupzxNtxpHrGQ@mail.gmail.com>
In-Reply-To: <CAPeSryqe9Vf=cNMQauZfV8yN6JRn4_HVEsF-THupzxNtxpHrGQ@mail.gmail.com>
From: Guy Fischman <gfischman@gmail.com>
Date: Thu, 30 Jul 2026 20:57:44 +0200
X-Gm-Features: AUfX_mxa4nUmSFLKD0doTFpk80yfR1XvEhrC8XieQgmQsFMCjhwzdvyJBw9o8F0
Message-ID: <CAKbydOWZ2hhUz+_qNq159hMz2D-e+wg5TUAEzEyCX7yxQMse9g@mail.gmail.com>
To: Felix Linker <linkerfelix@gmail.com>
Content-Type: multipart/alternative; boundary="00000000000051865d0657d8a6e6"
Message-ID-Hash: QUAFY2KF5PXWO4DNSLCXYYRBR5DOECH3
X-Message-ID-Hash: QUAFY2KF5PXWO4DNSLCXYYRBR5DOECH3
X-MailFrom: gfischman@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Orie <orie@or13.io>, Prachi Jain <prachi.jain1288@gmail.com>, keytrans@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Keytrans] Re: Keytrans@IETF 126 : Call for agenda topics
List-Id: Key Transparency <keytrans.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/keytrans/OoMIUveJROexvLMvtMGLHw8m44s>
List-Archive: <https://mailarchive.ietf.org/arch/browse/keytrans>
List-Help: <mailto:keytrans-request@ietf.org?subject=help>
List-Owner: <mailto:keytrans-owner@ietf.org>
List-Post: <mailto:keytrans@ietf.org>
List-Subscribe: <mailto:keytrans-join@ietf.org>
List-Unsubscribe: <mailto:keytrans-leave@ietf.org>
Hey Felix, CIL.
On Thu, Jul 30, 2026 at 8:26 PM Felix Linker <linkerfelix@gmail.com> wrote:
> Hey guy,
>
> Some questions/comments inline.
>
> Quick general note: I don't actually care which wire format we use. TLS is
> a natural choice as the draft already uses that framework.
>
> Cheers,
> Felix
>
> Am Do., 30. Juli 2026 um 19:09 Uhr schrieb Guy Fischman <
> gfischman@gmail.com>:
>
>> Sadly I wasn't able to attend the call. Here are my thoughts on the
>> points Felix raised:
>>
>> - It's true that mandating TLS makes iterop easier (and makes it
>> possible using only the spec), though I would claim only slightly easier.
>> It also comes with some non-negligible costs, notably:
>> - TLS extensibility has to be designed into the structure. Protobuf
>> gives it by default. The protocol has churned wire surface through
>> revisions and isn't yet final.
>>
>> What is TLS extensibility?
>
Read as "With TLS, extensibility has to be designed into the structure."
The extension point would need to be defined in the spec.
>
>> - Stranding existing deployments or requiring a translation layer -
>> Signal uses protobuf, and Whatsapp does too (but based on pre-KT SEEMless).
>>
>> I don't see the argument of stranding existing deployments. Even after
> agreeing on a default wire format, existing deployments can stick to their
> wire format. The only downside I see is that such deployments would miss
> free interoperability with new implementations that happen to use the same
> wire format. Debatable how likely that is.
>
That's what I mean by stranding.
>
> If we don't agree on any wire format, we risk requiring n^2
> interoperability layers.
>
Not n^2 since every node doesn't need to interop with every other (e.g.
server to server). Each consumer needs a layer for each log it consumes.
But it is more than with a specified transport.
> Also, couldn't you handle KT messages inside Signal/WhatsApp as opaque and
> just give the heap of bits to the KT library that you're using? I suspect
> the part of your codebase that handles KT will be mostly distinct from the
> parts of your codebase that handle other aspects.
>
I'm not saying it's impossible, only that it adds a layer of complexity and
thus a hurdle to adoption. I also suspect there is a TOCTOU-type risk in
what I understand you're suggesting, if the part of the codebase enforcing
an ACL on the basis of KT isn't itself reading the KT structure. I haven't
given this enough thought to land on a strong opinion of how big this risk
is.
>
>> - It's contrary to the architecture's "reuse-your-existing-transport"
>> design, which may slow adoption.
>> - On the other side of making interop easier - gRPC reflection,
>> that I was able to implement due to the transport-agnostic stance,
>> facilitates interop, and would be lost by mandating TLS.
>>
>> Can you elaborate? I quickly googled gRPC reflection, but couldn't make
> enough sense of it.
>
It's a service the server exposes that serves its own protobuf schema at
runtime, so a client runs grpcurl -describe and discovers every RPC and
message shape without ever obtaining a .proto out of band
>
>> - -> On balance I would lean toward keeping the current agnostic
>> stance.
>> - Simplifying PrefixProof - Agree. I believe this would reduce proof
>> sizes along with simplifying.
>> - Agree, and to make a bit more concrete - don't specify the order,
>> rather eliminate the dependence on it. Carry the log entry position
>> alongside each timestamp, prefix proof, and prefix root. Eight bytes per
>> entry, and the whole class of ambiguity disappears, including the dedup
>> rules ("only added the first time," "omitted when the user is expected to
>> have retained it") that currently make the expected count a function of
>> client state.
>>
>> -Guy
>>
>> On Tue, Jul 28, 2026 at 2:34 PM Orie <orie@or13.io> wrote:
>>
>>> Hi,
>>>
>>> I support making TLS mandatory.
>>> I don't have enough info on the other points raised to be helpful.
>>>
>>> Regards,
>>>
>>> OS
>>>
>>> On Tue, Jul 28, 2026 at 6:31 AM Felix Linker <linkerfelix@gmail.com>
>>> wrote:
>>>
>>>> Hi everyone,
>>>>
>>>> As there was little time for discussion at the end of the meeting, I
>>>> wanted to raise my three suggestions for the protocol document on list and
>>>> here what other people say. Here they are:
>>>>
>>>> - We should make one wire format mandatory. Currently, the draft
>>>> allows implementers to freely choose the wire format. I would make TLS
>>>> mandatory. If people want to use a different wire format, they of course
>>>> still can, but fixing TLS allows us to at least hope that different
>>>> implementations interoperate.
>>>> - I suggest simplifying the PrefixProof structure as follows:
>>>> Represent prefix trees as a list of leafs with their depth. Either store
>>>> the node's hash value (can be omitted for an empty leaf) or store the VRF
>>>> output and the commitment. The reconstruction algorithm can then simply do
>>>> a DFS search over the prefix tree and initialize it along the way. With the
>>>> current wire format, one must merge prefix trees first with the binary
>>>> ladder, then initiate leafs from the prefix search results, then fill in
>>>> node values.
>>>> - I implemented this new wire format for testing purposes, and
>>>> my code for constructing prefix trees indeed becomes much simpler:
>>>> https://github.com/felixlinker/keytrans-verification/blob/ca4157ae8aaaae0b0e5b4b4e0e9d6d08524786a1/pkg/trees/prefix/prefix.go#L471
>>>> - Previously, this was the code to first merge binary ladder
>>>> results into the prefix tree:
>>>> https://github.com/felixlinker/keytrans-verification/blob/3c4bb83d7dbcf47a4091d54653a5b6a2dcc84a8f/pkg/proofs/proofs.go#L102
>>>> and this is the code to construct the prefix tree:
>>>> https://github.com/felixlinker/keytrans-verification/blob/3c4bb83d7dbcf47a4091d54653a5b6a2dcc84a8f/pkg/trees/prefix/prefix.go#L536
>>>> - I suggest describing the wire format more explicitly. For
>>>> example, Section 12.3, specifying the combined tree proof, only says: "The
>>>> timestamps field contains the timestamps of specific log entries [...].
>>>> There is no explicit indication as to which log entry the elements
>>>> correspond to, as they are provided in the order that the algorithm the
>>>> user is executing would request them." Such language makes the draft hard
>>>> to implement because one now needs to consider the entire document to
>>>> understand how to parse the data structure. I think this one will be quite
>>>> hard to address. I cannot come up with the right language right now,
>>>> because I'm not sure what actually holds about, e.g., the combined tree
>>>> proof in all cases. But maybe that's a sign that such text is needed.
>>>>
>>>>
>>>> Curious to hear what the rest thinks!
>>>>
>>>> Best,
>>>> Felix
>>>>
>>>> Am Do., 16. Juli 2026 um 10:14 Uhr schrieb Felix Linker <
>>>> linkerfelix@gmail.com>:
>>>>
>>>>> Hi Prachi and fellow keytrans enthusiasts,
>>>>>
>>>>> We made progress implementing a client. The client is still very much
>>>>> WIP, but I believe (with an asterisk) that it should be able to verify
>>>>> greatest version queries.
>>>>>
>>>>> The code for that can be found here:
>>>>> https://github.com/felixlinker/keytrans-verification/blob/felixlinker/client-state/pkg/client/client.go#L98
>>>>> Development currently happens on that branch.
>>>>>
>>>>> I could not test whether the client works yet because I'm not aware of
>>>>> a server implementation that generates search responses for search
>>>>> requests. Maybe my understanding here is wrong, I asked both Guy and
>>>>> Brendan for this. Would be great to have test vectors. My implementation of
>>>>> a prefix and log tree is tested, but only "against itself," i.e., I check
>>>>> that my implementation satisfies certain invariants.
>>>>>
>>>>> We also prove that our go implementation is memory safe. We haven't
>>>>> gone much further than that in our mechanized proofs because I would first
>>>>> like to test whether the client implementation actually works. It is much
>>>>> cheaper to test than to prove, so I want to do that first.
>>>>>
>>>>> The asterisk that I mentioned above is that I took the liberty to
>>>>> change the server response format slightly so that proofs are easier to
>>>>> parse. I could, at the meeting, present my experience implementing the
>>>>> client. My life would be much simpler if the change in wire format were
>>>>> part of the draft, and I find there are certain parts of the draft which
>>>>> are hard to implement and get right.
>>>>>
>>>>> Best,
>>>>> Felix
>>>>>
>>>>>
>>>>> Am Di., 14. Juli 2026 um 16:50 Uhr schrieb Prachi Jain <
>>>>> prachi.jain1288@gmail.com>:
>>>>>
>>>>>> Hello KEYTRANS enthusiasts,
>>>>>>
>>>>>> Please share any topics, discussion items, or anything else you'd
>>>>>> like to cover during our time at IETF 126. We have an hour allocated to us.
>>>>>>
>>>>>>
>>>>>> -Chairs
>>>>>> --
>>>>>> Keytrans mailing list -- keytrans@ietf.org
>>>>>> To unsubscribe send an email to keytrans-leave@ietf.org
>>>>>>
>>>>> --
>>>> Keytrans mailing list -- keytrans@ietf.org
>>>> To unsubscribe send an email to keytrans-leave@ietf.org
>>>>
>>> --
>>> Keytrans mailing list -- keytrans@ietf.org
>>> To unsubscribe send an email to keytrans-leave@ietf.org
>>>
>>
- [Keytrans] Keytrans@IETF 126 : Call for agenda to… Prachi Jain
- [Keytrans] Re: Keytrans@IETF 126 : Call for agend… Felix Linker
- [Keytrans] Re: Keytrans@IETF 126 : Call for agend… Prachi Jain
- [Keytrans] Re: Keytrans@IETF 126 : Call for agend… Felix Linker
- [Keytrans] Re: Keytrans@IETF 126 : Call for agend… Orie
- [Keytrans] Re: Keytrans@IETF 126 : Call for agend… Guy Fischman
- [Keytrans] Re: Keytrans@IETF 126 : Call for agend… Orie
- [Keytrans] Re: Keytrans@IETF 126 : Call for agend… Felix Linker
- [Keytrans] Re: Keytrans@IETF 126 : Call for agend… Orie
- [Keytrans] Re: Keytrans@IETF 126 : Call for agend… Andrew Gallagher
- [Keytrans] Re: Keytrans@IETF 126 : Call for agend… Felix Linker
- [Keytrans] Re: Keytrans@IETF 126 : Call for agend… Guy Fischman
- [Keytrans] Re: Keytrans@IETF 126 : Call for agend… Konrad Kohbrok
- [Keytrans] Re: Keytrans@IETF 126 : Call for agend… Felix Linker
- [Keytrans] Re: Keytrans@IETF 126 : Call for agend… Brendan McMillion
- [Keytrans] Re: Keytrans@IETF 126 : Call for agend… Brendan McMillion
- [Keytrans] Re: Keytrans@IETF 126 : Call for agend… Felix Linker
- [Keytrans] Re: Keytrans@IETF 126 : Call for agend… Guy Fischman
- [Keytrans] Re: Keytrans@IETF 126 : Call for agend… Prachi Jain