Invariants / DC-VAL-06
DC-VAL-06
DC derived enforcedEvery crypto-input, field-size, and structural check on the authority path rejects (produces Invalid) on wrong size or shape and never silently skips. The pattern if X.len() == K { check } else { skip } is forbidden in BLUE validation; size checks go through a helper that returns an error. No defined-but-unwired check and no tautological (value-compared-to-itself) guard may stand in for a real check.
- Source
Cardano ledger spec (mandatory witness/field checks); IDD fail-fast doctrine
Enforcement trace
Code
- crates/ade_ledger/src/block_validity/verdict.rs
- crates/ade_core/src/consensus/kes_check.rs
- crates/ade_testkit/src/validity/adversarial.rs
- crates/ade_ledger/src/tx_validity/witness.rs
- crates/ade_ledger/src/tx_validity/required_signers.rs
- crates/ade_ledger/src/conway.rs
- crates/ade_testkit/src/tx_validity/adversarial.rs
Tests 20
- expect_size_rejects_wrong_length
- praos_malformed_kes_sig_rejected
- no_mutation_is_ever_valid
- each_mutation_maps_to_expected_class
- wrong_size_signature_rejected
- wrong_size_vkey_rejected
- unresolvable_input_is_fail_fast
- unresolvable_collateral_input_is_fail_fast
- conway_conservation_full
- conservation_early_out_removed
- adversarial_imbalanced_via_deposit
- adversarial_imbalanced_via_withdrawal
- adversarial_unknown_cert_tag_rejects_as_decode
- adversarial_removed_tag_rejects_as_era_invalid
- adversarial_truncated_withdrawals_rejects_as_decode
- adversarial_state_dependent_unaccountable_rejects
- adversarial_no_false_accept
- adversarial_verdicts_replay_byte_identical
- trailing_bytes_after_cert_array_rejected
- huge_array_count_rejects_without_overallocating