Caso Full Node/Wallet: il nodo/wallet all'inizio scarica e verifica tutta la blockchain facendosi una lista delle UTXO.
Nel momento in cui gli il wallet crea/genera una transazione verifica che l'input faccia parte delle UTXO in quel caso accetta la transazione la propaga a tutti i nodi della rete tra cui anche il nodo ricevente che aggiorna il suo bilancio ( caso in cui wallet ricevente sia un full node), bisogna attendere che la transazione venga minata e inclusa in un blocco al fine di essere considerata valida. Al nodo arriveranno cosi i nuovi blocchi che verificherà, aggiornera la UTXO e cosi via.....
Domanda se mi scollego dal mio wallet full e lo riaccendo dopo 2 giorni partirà da capo a scaricarsi la blockchain o solo la parte mancante?
Solo la parte mancante. Il database degli utxo si aggiorna in maniera incrementale, man mano che arrivano i blocchi. Quando il nodo è in funzione il database si trova in Ram, quando si spegne il nodo salva il database sull"hard disk e al riavvio parte da lì.
Caso SPV: il wallet scarica solo gli header della blockchain e verifica hash.
Nel caso in cui deve verificare una transazione chiede ad un full node di inviargli il ramo del merkle tree contenente quella transazione per ricostruire il merkle root.
Non capisco pero come possa accettare/scartare transazioni visto che a differenza di un nodo full non ha la lista delle UTXO.

Non si basa sugli utxo ma semplicemente sul numero di conferme (depth) della tx. E' una conferma a posteriori, in base a quello che succede dopo la comparsa della tx, di fatto il wallet SPV si fida del giudizio degli altri full nodi che accettano e propagano questi blocchi e ne aggiungono altri sopra quello contenente la tx. I full node fanno viceversa, controllano innanzitutto il passato della tx (height), solo quello ti può garantire al 100% la validità di una tx. La garanzia a posteriori data dal solo numero di conferme fornisce invece solo un'indicazione probabilistica (seppur importante). Ti avevo già quotato la risposta alla tua domanda:
SPV verifies transactions by reference to their depth in the blockchain instead of their height. Whereas a full blockchain node will construct a fully verified chain of thousands of blocks and transactions reaching down the blockchain (back in time) all the way to the genesis block, an SPV node will verify the chain of all blocks (but not all transactions) and link that chain to the transaction of interest.
For example, when examining a transaction in block 300,000, a full node links all 300,000 blocks down to the genesis block and builds a full database of UTXO, establishing the validity of the transaction by confirming that the UTXO remains unspent. An SPV node cannot validate whether the UTXO is unspent. Instead, the SPV node will establish a link between the transaction and the block that contains it, using a merkle path (see [merkle_trees]). Then, the SPV node waits until it sees the six blocks 300,001 through 300,006 piled on top of the block containing the transaction and verifies it by establishing its depth under blocks 300,006 to 300,001. The fact that other nodes on the network accepted block 300,000 and then did the necessary work to produce six more blocks on top of it is proof, by proxy, that the transaction was not a double-spend.