In base a questo mi verrebbe da dire che non viene permesso l'avvio di 2 transazioni riguardante gli stessi soldi. La prima viene presa la seconda no anche se la seconda ha una fee piu alta.
Corretto.
Sarebbe interessante sapere se vengono avviate 2 transazioni nell stesso istante con gli stessi soldi con la stessa fee, magari indirizzati su 2 nodi diversi, come si comporta il sistema .
Ipotizzando che il tentativo di doppia spesa (perchè di questo si tratta) venga fatto come si deve, ovvero creando transazioni valide, ritrasmissibili e mandandole a nodi diversi, succede che una parte dei nodi della rete bitcoin avrà nel proprio pool di transazioni in attesa di essere incluse nel blocco la transazione "A", e altri la transazione "B". Questo perchè il client reference rifiuta la transazione B se ha già in pool la transazione A e viceversa, indipendentemente dalla fee. Tuttavia è relativamente semplice modificare il software affinchè, nel caso venga ricevuta una transazione valida con lo stesso input ma fee più alto, questa sostituisca la prima nel pool. E' opinione diffusa che diverse pool implementino un sistema del genere, di conseguenza è lecito affermare che la transazione con fee maggiore avrà più probabilità di essere quella che finirà nella blockchain.
Con un attacco ben svolto è possibile che chi dobbiamo pagare riceva la transazione onesta, ma che quella che finisce nella block chain sia una che rigira i bitcoin su uno dei nostri conti.
Ovviamente, appena una delle due transazioni viene inclusa in un blocco, l'altra diventa non valida e viene cancellata dai pool di tutti i nodi che accettano quel blocco, e la doppia spesa scompare. Questo è il motivo per cui accettare transazioni con 0 conferme è una cosa delicata da evitare se non c'è nessuna forma di garanzia.