pub struct LogConsistencyProof {
pub log_id: String,
pub first_tree_size: u64,
pub second_tree_size: u64,
pub consistency_path: Vec<String>,
pub log_checkpoint: LogCheckpoint,
}Expand description
A consistency-mode GET /log/proof response (RFC-ACDP-0012 §8.2):
the RFC 6962 §2.1.2 proof PROOF(first, D[second]) that the tree at
first_tree_size is a prefix of the tree at second_tree_size —
the history-rewrite detector. The verifier supplies its own
retained root for first_tree_size (that retained root is the
whole point, §9.2).
Distinct shape from LogInclusion (the schema $comment is
explicit); closed for the same reason — arithmetic evidence has no
extension surface.
Fields§
§log_id: StringThe log instantiation. Consistency proofs exist only within one
log_id (§7.4).
first_tree_size: u64The earlier (retained) tree size.
second_tree_size: u64The later tree size. MUST equal log_checkpoint.tree_size.
consistency_path: Vec<String>PROOF(first, D[second]), each element "sha256:<hex>"; empty
when first == second.
log_checkpoint: LogCheckpointA checkpoint at second_tree_size (§8.2), verified per §9.3.
Implementations§
Source§impl LogConsistencyProof
impl LogConsistencyProof
Sourcepub fn from_value(value: &Value) -> Result<Self, AcdpError>
pub fn from_value(value: &Value) -> Result<Self, AcdpError>
Parse a consistency proof from a GET /log/proof
consistency-mode response, enforcing the closed schema and the
embedded checkpoint’s §9.3 step 1 form.
Sourcepub fn verify_against_first_root(
&self,
first_root_hash: &str,
) -> Result<(), AcdpError>
pub fn verify_against_first_root( &self, first_root_hash: &str, ) -> Result<(), AcdpError>
§9.2 — verify the proof between the verifier’s retained
earlier root (first_root_hash, wire form) and the embedded
later checkpoint’s root, plus the shape bindings (log_ids
equal, second_tree_size == log_checkpoint.tree_size).
Checkpoint signature verification (§9.3) is separate.
A failure here between two signature-valid checkpoints of one
log_id is not a soft error: it is cryptographic evidence that
the registry rewrote logged history, and consumers SHOULD retain
both checkpoints and the failing path as evidence (§9.2, §15).