-
Notifications
You must be signed in to change notification settings - Fork 164
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove timestamp from checkpoint #1887
Comments
Fixes sigstore#1887. Verified that checkpoints are still verifiable with and without timestamps (since timestamps are just a part of the existing OtherContent, this is not a breaking change). Looking over all of the Sigstore org, no project is relying on the timestamp. Signed-off-by: Hayden Blauzvern <hblauzvern@google.com>
In addition to my ❤️ on the top level comment, I feel like a little info on why I think this is a great proposal would be helpful for the community. We have a fledgling witness network that verifies that logs are evolving correctly in an append-only manner. Witnesses work individually, and then post witnessed signatures to a central location where all signatures on the same checkpoint are merged. The problem with including timestamp information in the checkpoint is that two witnesses may attest to the same logical tree state, but because of the timestamp, the checkpoint is not byte-equivalent and thus their signatures cannot be merged. This makes it much harder for clients to get log state in a way that has been independently verified by multiple third parties. Another factor to consider is that we have recently updated the witnesses to include the timestamp at which the witnessing event took place (transparency-dev/witness#41). This witness timestamp information may provide whatever functionality was originally being sought with original inclusion of a Timestamp in the checkpoint body. As an example of what a witnessed checkpoint looks like (generated by https://github.com/transparency-dev/distributor/blob/main/cmd/client/client.go):
From this, clients can determine the following about witness signing events:
|
* Remove timestamp from checkpoint Fixes #1887. Verified that checkpoints are still verifiable with and without timestamps (since timestamps are just a part of the existing OtherContent, this is not a breaking change). Looking over all of the Sigstore org, no project is relying on the timestamp. Signed-off-by: Hayden Blauzvern <hblauzvern@google.com> * Remove commented out line Signed-off-by: Hayden Blauzvern <hblauzvern@google.com> --------- Signed-off-by: Hayden Blauzvern <hblauzvern@google.com>
Description
We currently include the timestamp when the checkpoint was generated:
Note the first line is the log identifier, the second is the log size, then the root hash, then extra data (the timestamp), then a new line and then the checkpoint signature.
No checkpoint verifier relies on the timestamp. It could be used to convey checkpoint freshness, that the checkpoint represents the latest snapshot of the log. However:
I propose that we remove the timestamp from the checkpoint. We'll need to confirm that this is not a breaking change, that old clients can verify checkpoints without the timestamp present.
cc @mhutchinson
The text was updated successfully, but these errors were encountered: