Ok quindi una volta che la trx ha raggiunto tutti i nodi non è possibile fare doublespend corretto?
No,
e' sempre possibile fare doublespend. Sempre!!!!! anche dopo che la transazione e' stata inclusa in un blocco. Ci sono innumerevoli modi per fare doublespend, modi a cui io non riesco nemmeno a pensare. L'esempio che ti ho fatto prima e' solo il modo piu' semplice e il primo che mi viene in mente, in un ambiente dove tutto e' perfetto e dove tutti i nodi sono onesti e collegati tra loro.
Nei bitcoin l'unica certeza che hai e' che la catena di blocchi con piu' hashpower vince. Ma in realtà non puoi nemmeno sapere qual'e' la catena di blocchi con piu' hashpower, sai solo quello che vedi, ma non e' detto che vedi tutto. Ci sono varie situazioni in cui la rete si potrebbe splittare o in cui i nodi sono disonesti. Tieni conto che non e' che hai un nodo=un utente. Un utente puo creare centinaia, migliaia, milioni di nodi. da un momento all'altro, e non puoi aspettarti che sia onesto.
Vai a leggere cosa si intende per
Sybil Attack, forse hai difficoltà a capire perche' non sai cos'e' un'attacco sybil.
Se un nodo ha una transazione nella sua mempool e un'altro nodo ha una transazione diversa che spende lo stesso utxo ma con output differenti, chi ha ragione? Entrambi. Non se ne esce. I nodi sono tutti uguali(decentralizzazione), quindi in caso di conflitto ci vuole un sistema in cui sia possibile decidere chi ha ragione. Quel sistema sono i blocchi. La transazione inclusa in un blocco e' quella buona.
Ora facciamo finta che io trovo un blocco con dentro la mia transazione, e tu trovi un blocco con dentro la tua transazione, chi di noi ha ragione? Bisogna aspettare e vedere chi trova il blocco successivo se lo trova sulla mia catena ho ragione io e il tuo blocco diventa orfano, se lo trova sulla tua catena hai ragione tu e il mio blocco diventa orfano.
Un miner, o una pool, o un consorzio di piu' miner/pool con il 51% di hashpower, pero', potrebbe minare una terza catena, piu' lunga di quelle che conosciamo noi, e, per vari motivi(ad esempio uno split di rete, o selfish mining) noi potremmo non saperlo.
Nel momento in cui ci viene trasmessa la sua catena, questa e' piu' lunga(con piu' hashpower), di quelle che conosciamo noi, quindi i nostri nodi considereranno la sua catena come valida e scarteranno la catena che stavano seguendo fino a quel momento e le nostre tx finirebbero nel cestino.
Ok ma supponi che il sistema non concepisca le fee, ogni transazione viene comunque lavorata dal nodo in ordine di arrivo
In una rete mesh, con nodi che si collegano e scollegano, nodi lenti nel validare e propagare, nodi disonesti, l'ordine di arrivo non e' prevedibile, e nemmeno corretto.
per poter provare a fare double spend ho il tempo solo di propagazione della trx ai nodi e non quel tempo piu il tempo di preparazione del blocco?
per te che sei un signor nessuno, con poche risorse tendenzialmente si, ma come ti ho detto prima ci sono mille modi per fregare una rete che si basa solo sull'ordine di arrivo. Ordine che poi in una rete decentralizzata, non ha, realmente, senso considerare.
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ì.
quale delle due opzioni?
nessuna delle due. Tendenzialmente la seconda, ovvero, dopo che la transazione viene inclusa in un blocco, hai la certezza che per rimuoverla e fare doublespend, debba essere fatto del lavoro, che richiede energia, risorse e soprattutto
tempoCorretto perchè ci sono questi meccanismi CPFP, ma supponi che il sistema sia all'inizio dove come ti dicevo prima le fee non ci sono tutte le trx vengono lavorate in ordine di arrivo al nodo, a quel punto B, anche se il suo wallet riporta il nuovo bilancio potrà spenderla solamente quando ci saranno le conferme ovvero inclusa in un blocco - 1 conferma, e per esserne certo max 6.
l'ordine lo stabilisce chi trova il blocco. Nemmeno dopo 6 conferme puoi esserne certo al 100% poi solo dedurre che sarebbe economicamente sconveniente fare il doublespend di una tx con 6 conferme, in quanto richiederebbe di trovare 7 blocchi, e quindi richiederebbe un sacco di lavoro con conseguente spesa di tempo ed energie.
Noooooo nn deprimerti, sono concetti non banali se uno ci ragiona in fondo e normale che ci siano delle incomprensioni
si, ma ci sono persone molto piu' competenti di me nell'insegnamento, e forse ti conviene pagare un insegnante che sappia fare un discorso con un filo logico.
Sapere come funzionano i bitcoin, e' molto molto diverso dal saperlo spiegare in modo che gli altri capiscano.