aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-08 13:54:07 +0000
committertv <tv@krebsco.de>2026-11-08 15:04:04 +0100
commit5fe7653a2e86bfbee0bcbe536bb74287ab47498f (patch)
tree88bffac257742671dd9103ceff5304c88aa74b82 /docs
parent1769f30038c62c999cfb91be0868c740fb1c0eba (diff)
rules: a carried remake record taken from the coordinator its snapshot names
Review finding 7, second part: a record carried into a new epoch whole (proposal and decision in one change) was taken from any member, for any remake ID. A member could write a forged record, decision included, for a fresh ID in a single change. The snapshot's epoch metadata now names the remake's coordinator, as the quorum built it. The carried-record exception holds only in a later epoch, only for the remake that made it, and only from the coordinator its snapshot names, where there is no record yet. Wire version 43: the snapshot, and so the epoch ID, changes. The review suggested carrying the record inside the snapshot instead. The snapshot can't hold the decision, which names the snapshot's own hash. So the snapshot vouches for who may carry the record instead.
Diffstat (limited to 'docs')
-rw-r--r--docs/access.md3
1 files changed, 2 insertions, 1 deletions
diff --git a/docs/access.md b/docs/access.md
index eb9efc9..093ebaf 100644
--- a/docs/access.md
+++ b/docs/access.md
@@ -226,7 +226,8 @@ stays as it is, wherever it comes from later (a joining node catching up, say).
change only (the genesis change, a remake's snapshot).
* A remake's record and its proposal by whichever member proposes, where there are
none; its decision by the coordinator its proposal names; an abort asked for by any
- member. Replacing or removing a record or its proposal, by a user who may write
+ member. The record of the remake that made an epoch, carried into it whole, by the
+ coordinator its snapshot names, where there is none. Replacing or removing a record or its proposal, by a user who may write
there.
* What holds the members' entries, votes and remake records (`_continuum/members`,
`_continuum/votes`, `_continuum/remakes`) made by whichever member first writes in