It is said that the entire network much reach a consensus before a transaction can take place.
Must a full network consensus be required to verify a proof of work result?
That's only one of the set of consensus rules.
Here are the consensus rules nicely organized in the Bitcoin code:
github.com/bitcoin/bitcoin/tree/master/src/consensusThink of the "
Bitcoin Network" as a number of nodes that follow the same set of rules, thus there's a "
consensus" since they are following those exact rules.
If a node isn't following a rule, like for example; if its mining and broadcasting larger than 4WU blocks to its peers,
Then its peers will reject it and will ban that node from connecting to them, in doing so, it wont be part of the network.
As for the protocol, a node wont "
quack" like a Bitcoin node without following it since it what makes a node a Bitcoin node.
If a transaction violates the rules of the bitcoin protocol, such transaction is treated as void and is ignored.
This could also fall under 'policies' which is just the "
standards", not a set of strict rules to follow unlike consensus and nodes can set their own standards.
Like consensus, policies are also well organized and commented:
github.com/bitcoin/bitcoin/tree/master/src/policyFor example: if someone is trying to spend a SegWit Output with uncompressed public key (
which is "non-standard" | SCRIPT_VERIFY_WITNESS_PUBKEYTYPE).
Then that someone wont be able to broadcast that transaction to nodes with default policies.
But since it's not breaking any protocol, it can be broadcasted to a node or a miner that set their node to accept such transaction.
When a miner added it to their block, that block is still valid since it doesn't break any consensus rules.
Here's one example of that scenario:
https://blockstream.info/tx/fd02fd81790a05ea2ab07bbcf5cdcb2cfd21f3f5676a5c0e8f7f5ca2ac75e694?expandSee that the input is P2SH-P2WPKH but with an uncompressed public key, the block where it's included is valid even though the transaction is non-standard.