feat: a machine answers for the past it wrote before it had a key - #103
Merged
Merged
Conversation
A history written before this machine had a key was folded into the chain either way, so what it signs now covers those bytes. What it did not have was anything answering for those segments on their own: a reader starting anywhere but the beginning had nothing to check them against, and the machine's own past was the one stretch of its history that stood on the say-so of a later signature. On the first write after the key exists, every closed segment of its own that nothing answers for gets a signature of its own, over the chain that segment really closes. The pass costs one reading of the history, once, because the round after it finds nothing left to sign. The place it belongs was already there: the loop that folds the unsigned past into the chain is holding exactly the tip each of those signatures has to attest. Only where nothing answers for it yet. A signature already in place attests a history, and writing another over it would bless bytes that history never covered — so one that stands is left exactly as it stands, whether it answers or not.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A history written before this machine had a key was folded into the chain either way, so what it signs now covers those bytes — but nothing answered for those segments on their own, and a reader starting anywhere but the beginning had nothing to check them against. On the first write after the key exists, every closed segment of its own that nothing answers for gets a signature over the chain that segment really closes; the pass costs one reading of the history, once. Only where nothing answers for it yet: a signature already in place attests a history, and writing another over it would bless bytes that history never covered, so one that stands is left as it stands.