Why does Kaspa commit coinbase payload bytes from all mergeset blocks?
Kaspa commits the coinbase payload bytes from every block in a block's mergeset — not just the selected parent — because those payloads carry data that matters for reward construction even when their transactions aren't accepted. In Kaspa's blockDAG, multiple miners' blocks can be included together in a single block's mergeset. Even when a block isn't the selected parent (meaning its coinbase transaction isn't added to the accepted transaction list), its payload still contains fields like payout destination data that Kaspa's reward logic depends on, as well as miner metadata such as software version or pool identity. Committing all of these payloads means that Layer 2 applications and zero-knowledge systems can verify the full picture of miner activity across the DAG, not just along the selected chain.