Pages:
Author

Topic: Gangsta, double spend con replace-by-fee - page 5. (Read 10040 times)

hero member
Activity: 588
Merit: 500
February 19, 2015, 05:11:56 AM
#4
Luke-Jr (eligius) nega.

Come hai verificato ?

Avevo fatto le double e la conferma era arrivata proprio quando il blocco, blockchain.info, me lo segnava trovato da eligius, non ho pero verificato se era davvero cosi dal sito stesso.

Sinceramente non ho piu le varie TX perchè erano di qualche giorno fa....

Le ultime prove che ho fatto e che erano sicuramente in double e mi sono state confermate sono questa:
https://blockchain.info/it/tx/372745eef33cbf99e1d1cf263d23eeb4b79b26bd7b5075d3b2c2cffa52a17f54
E questa:
https://blockchain.info/tx/0aea7e4ca748a91734153d0d0be287c3c93f99390c1474c3b3c455e1aaeac71d


La prima sempre blockchain la segna trovata da bw pool  mentre la seconda da BTC Guild.
Tra l'altro bw pool ha tutt'ora delle double in attesa  (https://blockchain.info/it/address/1JLRXD8rjRgQtTS9MvfQALfHgGWau9L9ky)


Aggiungo che l'altra cosa che ho notato è che comunque, anche con fee alta (1mBTC su alcune) prima che arrivino conferme possono volerci anche 4-5 ore.
Questo perchè immagino che creino abbastanza "confusione" all'interno della rete e dei vari btc.

Cosi come ho notato che cercando le TX su vari block explorer (chain.so, bitboat e blockchain) queste nell'arco delle 4-5 ore spariscono e riappaiono. In particolare blockchain.info vede entrambe le TX, mentre gli altri due explorer ne vedono e accettano solo una.
Ed a volte questa cambia (magari quindi prima bitboat vede la TX a 0 fee, poi sparisce, non vede nulla... e dopo un po vede l'altra).

Quindi sembra come (ma non ho approfondito poi piu di tanto dopo) che se mandi una TX con indirizzi di spam (usavo satoshidice) magari si propaga ma, dopo che rimane per troppo tempo nella mem dei miner, viene tolta e subentra l'altra.
hero member
Activity: 980
Merit: 1002
February 19, 2015, 04:43:48 AM
#3

Ho verificato che gli unici miner "grossi" che accettano e confermano il double sono quello d eligius.st e uno riconducibile a ghash (ma solo 1 appunto, gli altri 2-3 demoni sempre di ghash non l'accettano).

Quindi siamo sopra al 3% della rete ma confermo, veramente poca roba.

Luke-Jr (eligius) nega.

Come hai verificato ?
hero member
Activity: 588
Merit: 500
February 19, 2015, 03:36:03 AM
#2
Tendenzialmente queste transazioni vengono viste dall'intera rete come doppie spese, e quindi ignorate dalla maggioranza dei nodi (speculazioni parlano di un 3% dei miners che le accetterebbero, non ho fonte, non ricordo neanche dove l'avevo letto, ma non è un numero da prendere per buono, probabilmente si parla di molto meno).

Ho provato nei giorni scorsi proprio la patch e vari double-spend per delle prove.

Ho verificato che gli unici miner "grossi" che accettano e confermano il double sono quello d eligius.st e uno riconducibile a ghash (ma solo 1 appunto, gli altri 2-3 demoni sempre di ghash non l'accettano).

Quindi siamo sopra al 3% della rete ma confermo, veramente poca roba.
hero member
Activity: 980
Merit: 1002
February 18, 2015, 08:34:25 PM
#1
La patch replace-by-fee, scritta l'anno scorso da Peter Todd dietro bounty da parte di un privato, ma mai inserita nel codice ufficiale dal core team, permette di rimpiazzare transazioni effettuate con altre transazioni aventi gli stessi input, fintanto che queste transazioni non siano state confermate, a patto che la fee della tx di rimpiazzo sia maggiore della precedente.

Tendenzialmente queste transazioni vengono viste dall'intera rete come doppie spese, e quindi ignorate dalla maggioranza dei nodi (speculazioni parlano di un 3% dei miners che le accetterebbero, non ho fonte, non ricordo neanche dove l'avevo letto, ma non è un numero da prendere per buono, probabilmente si parla di molto meno).

Un esempio di indirizzo che ha effettuato delle doppie spese, è questo:



La prima transazione in ordine temporale è quella "buona", le altre due non sarebbero mai state accettate da un nodo normale, ma un nodo patchato replace-by-fee invece le salva, e propone per l'inclusione nel blocco quella con fee maggiore. Se al nodo stesso venissero nuovamente proposte da altri nodi transazioni con fee minore, il nodo risponderebbe così

Quote
2015-02-19 00:49:45 ERROR: AcceptToMemoryPool : rejecting replacement 3ac20d0e9eb83e4c25ebfaa23a09885e4cad35227eddda9f7892c048a81edd87, pays less fees than conflicting txs; 0.00 < 0.0017
2015-02-19 00:49:46 ERROR: AcceptToMemoryPool : rejecting replacement 3479d936a925fe196d3c693616c6a19777d2c6929b94c77a281f33364b2d03f3, pays less fees than conflicting txs; 0.00 < 0.0008

Intanto, ecco com'è andato a finire il double spend qui sopra:



Un miner della maggioranza, quindi, uno di quelli che non validano transazioni di rimpiazzo, ha minato il blocco, e lo ha fatto dopo aver rifiutato il relay delle altre due transazioni, i double spend.

Tutto bene, insomma, double spend ad oggi resta tagliato fuori dalla rete (una decina di tentativi, nessun successo). Resta assunto che le transazioni a zero conferme sono transazioni a zero lavoro, e vanno prese con le pinzette, come fa la stragrande maggioranza dei merchant. Oppure, ci sono servizi terzi che si pongono come trusted parties, che imho prenderanno sempre più piede.
Boh, vedremo.

Ciò detto per spiegare come (non) funziona: Introducing gangsta

Gangsta è una web app che aggiunge a qualunque client single-sig la feature di double spend nei confronti di nodi replace-by-fee.
A qualunque, sì, perché è una app stand-alone, nell'esempio la vediamo andare in supporto a Multibit:

Innanzitutto bisogna esportare le chiavi



Poi importarle in gangsta (è tutto client-side), potete pastare tutto il file senza problemi, il form è smart.


Chiavi importate, wallet sincronizzato. Ovviamente si appoggia a servizi di terze parti (blockr.io e blockchain), o sarei davvero troppo bravo per perdere tempo con queste cose.


Tornate su Multibit, fate la vostra transazione normalmente.


Tornate su gangsta, per velocità c'è un bottone di wallet sync, altrimenti c'è il polling ogni due minuti, tanto per restare sul pezzo.


Dopo che avrete visto la vostra transazione, potrete aprirla nell'editor e modificare gli outputs. Incrementate la fee o la transazione verrà rifiutata dal nodo, dopo aver fatto (fate in fretta, o finisce che la transazione viene inclusa e voi siete ancora lì che scrivete a mano l'indirizzo di rimpiazzo) premete il bottone verde. Premete sempre il bottone, ogni 108 minuti.


Una panoramica della transazione modificata e la possibilità di pusharla. Dunque, sia decodifica che push vengono fatti lato server, quindi se non riuscirete a fare la decodifica vuol dire che per qualche motivo il server è giù, o non riuscite a raggiungerlo, o sono passati più di 108 minuti da quando avete premuto il pulsante. Insomma, non potreste pushare la transazione, ma avreste l'hex.


Assumendo che non sia esploso tutto, comunque:


Dopo aver pushato la transazione si torna alle prime immagini, la transazione non verrà inclusa in alcun blocco, le possibilità che avvenga sono risibili, ma avrete fatto un tentativo di doppia spesa.

Se su blockchain.info non riuscite a vedere la transazione dovete disabilitare i filtri sull'indirizzo:



demo: http://gangsta.dassori.me
source: http://github.com/gdassori/gangsta

Non pastate chiavi importanti sull'app online, se volete provare fatevi un wallet con pochi mbtc, basteranno. Non appena ho tempo lo passo anche su testnet.

Ovviamente loggherò tutti i vostri tentativi di doppia spesa che passeranno attraverso il mio server, e forse li pubblicherò tipo pagina figa dove scorrono i dati, roba di gran classe.

Grin Grin Grin Grin Grin

Provatela e segnalatemi i bug!
Pages:
Jump to: