{"id":"merkle-tree-hashes-raw-bytes","text":"The Merkle tree implementation avoids serialization canonicalization entirely by accepting caller-provided `bytes` and hashing them directly via `hashlib.sha256(data)`, making it immune to the JSON encoding ambiguity that affects the PBFT digest.","truth_value":"IN","source":"entries/2026/05/29/topic-json-canonicalization-risks.md","source_url":"","source_hash":"","justifications":[],"dependents":[],"metadata":{},"created_at":"","updated_at":"","reviewed_at":"","verified_at":"","retracted_at":"","explanation":{"steps":[{"node":"merkle-tree-hashes-raw-bytes","truth_value":"IN","reason":"premise"}]}}