How does Kaspa decide which transactions from parallel blocks count as accepted?
Kaspa accepts every transaction from a block and its merge set except those that conflict with a transaction that already appeared earlier in the GHOSTDAG ordering. When Kaspa's blockDAG absorbs parallel blocks, it is possible that two blocks each contain a transaction spending the same coin — a double-spend attempt. GHOSTDAG assigns a consistent ordering to all blocks across the network, so Kaspa simply keeps whichever conflicting transaction comes first in that ordering and drops the later one. Only the surviving, non-conflicting transactions are included in the Accepted Transactions Merkle Root. For a beginner, this matters because it shows how Kaspa handles the tricky part of running a DAG — letting parallel blocks coexist without accidentally confirming contradictory transactions.