code wiki / _hdl_build / nx_trust_plurality_gate.nx

nx_trust_plurality_gate.nx

buildroot/runtime/_hdl_build/nx_trust_plurality_gate.nx

4495 B91 linesdepth 7pulls 8 transitivereach 0 importersview sourcekind gate/prooftopic trust
docsdependenciesstructsconstsfunctions

about

nx_trust_plurality_gate.nx -- proves the sev-9 fix to the SPORE trust bootstrap (debt 1786068026). DEFECT: tc_admit_root counted agreement WITH SOURCE 0. Two colluding sources presenting identical poison at indices 0-1 reached K=2 and were admitted while an honest majority was never consulted. The soundness gate used the same measure, so it could never fire on it. The existing nx_trust_corroborate_test covers 4-honest, 1-source and 1-poison. It never covers a poisoned MINORITY holding index 0 against an honest MAJORITY -- the one arrangement that breaks it. A TEST THAT ONLY EXERCISES THE ARRANGEMENTS THE AUTHOR IMAGINED IS A RESTATEMENT OF THE AUTHOR'S ASSUMPTIONS, NOT A CHECK ON THEM. license_tier: ORIGINAL expect_exit: 0

dependencies 3 imports · 0 importers

nx_gate_verdict.nx nx_trust_corroborate.nx nx_trust_store_corroborated.nx nx_trust_plurality_gate.nx

imports: nx_gate_verdict.nxnx_trust_corroborate.nxnx_trust_store_corroborated.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main gv_ctr sys_mmap nxa_die sys_write sys_exit nxa_lock_take nxa_lock_addr sys_write ↻ nxa_lock_give nxa_lock_addr ↻ nxa_report_overrun sys_write ↻ nxa_dump_printable sys_write ↻ nxa_dump_sizes sys_write ↻ gv_head gv_puts sys_write ↻ tg_fill tc_admit_root sys_mmap ↻ tc_fingerprint sha256_digest sys_mmap ↻ sha256_init sys_mmap ↻ sha256_seed_allocated sha256_k sha256_update sha256_compress_ni_blocks blk_set_byte sha256_compress sha256_compress_ni blk_word sha256_final blk_set_byte ↻ sha256_compress ↻ sha256_destroy

structs

none

consts

16const TG_STRIDE: i64 = 48
17const TG_DER: i64 = 32
18const TG_TRUE: i64 = 170
19const TG_POISON: i64 = 187
20const TG_K: i64 = 2

functions

22func tg_fill(d: *u8, off: i64, n: i64, v: i64) -> i64
called by 1: main
28func main() -> i64