Post
Topic
Board Italiano (Italian)
Re: Wallet e double spending
by
goddog
on 14/06/2018, 14:50:29 UTC
Ok, credevo che finche la transazione non venisse inclusa in un blocco e aggiunta alla blockchain, durante quel periodo, min 10 minuti,  si potesse procedere cmq con un double spend, mentre mi stai dicendo, se ho capito bene, che il periodo è solo quello di propagazione della transazione a tutti i nodi della rete, corretto?
Se i nodi facessero il broadcast delle tx non valide, un attaccante potrebbe sfruttare questa cosa per flooddare(ddossare) la rete con miliardi di tx che fanno doublespend dello stesso utxo.

Ad esempio se faccio una trx di 1 btc da A a B (supponiamo che i costi di fee siano a zero), A per poter spendere nuovamente 1 btc ha il temppo di propagazione della transazione a tutti i nodi della rete e non quel tempo piu il tempo di elaborazione del blocco dove questa transazione sarà inclusa.
NI se le fee sono zero, la tx probabilmente non sarà mai inclusa in un blocco. A puo' semplicemente aspettare che i nodi decidano che la tx vada in timeout(tempo a discrezione del singolo nodo, se non ricordo male sono circa 3 giorni) e quindi la cancellino dalla loro mempool.
Una volta che tutti i nodi si sono dimenticati della tx, A puo' fare doublespend dell'UTXO.
E' quello che ti dicevo anche prima quando parlavo dell'introduzione di RBF.

e A invii a B 5000 satoshi e la transazione viene propagata

Il risultato appena riportato rimarrà valido e quindi c'è una possibilità di double spending finche la transazione non si sarà propagata su tutti i nodi o finche la transazione non è inclusa in un blocco?
dovrebbe essere così.

Il dubbio è che finchè la trx non è confermata e quindi inclusa in un blocco, sicuramente B non potrà spendere quanto ricevuto, ma A potrà fare il furbo e provare a usare una somma già "teoricamente" spesa ma ancora non confermata?
questo e' sbagliato, B puo' spendere non appena vede la tx(tx1) ricevuta. Se la tx1  ha zero fee, B puo' spendere l'utxo non confermato facendo una nuova tx(tx2) e mettendo delle fee altissime in modo da convincere i miner ad includere nel blocco anche la tx1. Ovviamente B dovrebbe fare il broadcast sia della tx1 che della tx2, in modo da assicurarsi che la tx1 non vada in timeout e che i miner vedano entrambe le tx. E' quello che dicevo quando parlavo di CPFP.

Comincio a deprimermi, forse e' meglio se smetto di risponderti perche' mi sa che son proprio negato a spiegare le cose e ti creo solo piu' confusione.