How attesters behave depending on PTC presence, proposer payload, and block type
| PTC | Proposer Has P_N | Builds | Attesters Have P_N | Attesters Vote | Reason |
|---|---|---|---|---|---|
| Present | Yes | FULL | Yes | Yes | PTC + proposer aligned on FULL, attesters follow |
| Present | Yes | FULL | No | No | Attesters can't validate block (need payload_states) |
| Present | Yes | EMPTY | Yes | No | PTC wins tiebreaker → FULL; proposer's block not on FULL branch |
| Present | Yes | EMPTY | No | Yes | Attesters' FC has no FULL option, follows EMPTY to proposer |
| Present | No | FULL | — | Impossible | Can't build FULL without payload |
| Present | No | EMPTY | Yes | No | PTC wins tiebreaker → FULL; proposer's block not on FULL branch |
| Present | No | EMPTY | No | Yes | Attesters' FC has no FULL option, follows EMPTY to proposer |
| Not Present | Yes | FULL | Yes | Yes | Proposer overrides PTC; attesters with payload can validate |
| Not Present | Yes | FULL | No | No | Attesters can't validate block (need payload_states) |
| Not Present | Yes | EMPTY | Yes | Yes | PTC + proposer aligned on EMPTY, attesters follow |
| Not Present | Yes | EMPTY | No | Yes | PTC + proposer aligned on EMPTY, attesters follow |
| Not Present | No | FULL | — | Impossible | Can't build FULL without payload |
| Not Present | No | EMPTY | Yes | Yes | PTC + proposer aligned on EMPTY, attesters follow |
| Not Present | No | EMPTY | No | Yes | PTC + proposer aligned on EMPTY, attesters follow |
payload_states)payload_states)