★ Default bytes32(0) acceptable as valid root
A cross-chain & bridge factor in the v1.7.0 rubric. Measured per protocol on a s cadence.
Methodology how we score #
**What this measures** This factor checks whether a bridge inbox or Merkle proof verifier accepts the 32-byte default value (`bytes32(0)`) as a valid committed root. A correctly implemented verifier initialises its accepted-root mapping to a non-default sentinel and admits only roots that have passed through the validator submission and timing queue. Static analysis of the bridge inbox contract is the primary assessment method. This factor applies only to bridge-touching protocols; non-bridge protocols show this factor as N/A.
**Why it matters** The Nomad bridge $190M hack of August 2022 is the definitive instance of this failure mode. A routine upgrade inadvertently initialised the `confirmAt` mapping such that `bytes32(0)` was treated as a valid committed root, allowing any caller to submit a Merkle proof against the zero root and immediately pass verification — requiring zero cryptographic knowledge of the validator set. The attack required no exploiter sophistication; it was replicated by hundreds of independent copycats within hours of the first drain. Default-value trust is a recurring class of smart contract bugs where uninitialised or zero-default state transitions from "unset" to "implicitly valid," and bridges are especially exposed because the proof-submission path is permissionless by design.
**Green / Yellow / Red** Green is scored when the verifier explicitly rejects `bytes32(0)` and only admits roots that passed through the submission and timing queue. Yellow is scored when the check exists in production code but a prior upgrade or migration introduced a window during which zero roots were transiently valid. Red is scored when `bytes32(0)` is accepted as a valid root in the current deployed code.
**Common gray cases** Gray is applied when the bridge uses a closed-source or partially-verified verifier module and the root-acceptance logic cannot be confirmed through static analysis.
**Notable historical examples** No cross-hacked incidents are currently linked in the database for this factor.
**★ Critical factor** This factor alone is sufficient to trigger a D or F grade under rubric v1.7.0. Accepting the default zero value as a valid Merkle root entirely nullifies the bridge's proof system, enabling permissionless, unauthenticated asset extraction — as demonstrated by the $190M Nomad exploit.
Measurement what to look for #
Determine whether the bridge inbox accepts a default-value (bytes32(0)) Merkle root as a valid proof root (Nomad bug class).