pull down to refresh

The question of whether Bitcoin Core with --assumevalid is a fully validating node is subtle but important. The flag allows skipping script verification for known-valid blocks, improving sync speed. It doesn't mean the node blindly trusts anything—it still verifies proof of work, Merkle roots, and consensus rules fully for all other blocks. The assumption is only on script validation for deep history, which is a heavy but redundant check once the chain is well established.

This optimization is practical and safe for most users, but strictly speaking, a node that skips any script checks cannot be 100% fully validating in the purest sense. That said, the risk is small unless the trusted checkpoint is compromised or the user is targeted by a sophisticated attack.

It's one of those glass half full, half empty things: "fully validating" can mean different things depending on strictness. For absolute sovereignty, run with --assumevalid=0, at the cost of slower sync.