Post
Topic
Board Discussioni avanzate e sviluppo
Re: Mining pow sulle transazioni
by
jack0m
on 31/03/2017, 22:15:22 UTC
Non mi arrendo ...
La rete potrebbe essere sicura se nella transazione ci fosse un riferimento al numero di blocco in modo che la stessa non possa essere inserita in un blocco differente da quello per il quale è stata pensata. Va rifatta la pow ad ogni nuovo blocco o mi preparo una transazione da broadcastare tra 10, 100 blocchi ma solo in quello specifico.
Qualunque miner potrebbe inserirla avendo uno sconto di difficoltà (target piu' basso). A naso direi che la cosa può essere considerata sicura ma il vantaggio sarebbe che in questo modo tutte le pool hanno un vantaggio di includere una transazione con basso hash perchè avrebbero uno sconto (sarebbe più facile minare il blocco). Potrei minare una transazione con un anticipo di 10 blocchi per essere sicuro di broadcastarla per tempo qualora trovassi l'hash fortunato. Dopo minerei una transazione su altri input e, se serve, su altro blocco.
Vedi/vedete qualche controindicazione?


Grande! Mai arrendersi Cheesy

Ma in questo caso, vedendola dal lato dell'utente normale, diciamo "onesto", quando vuole fare una transazione deve preoccuparsi anche lui (o al limite il client per lui) di decidere in quale esatto blocco inserirla? L'utente normale ovviamente vorrebbe vederla confermata già dal prossimo blocco, e non sarebbe particolarmente entusiasmante doversi prendere un margine di 10 blocchi, cioè quasi 2 ore (ma neanche un'ora, che poi si somma all'ora già necessaria ad ottenere le 6 conferme, rallentando il pagamento).
E comunque c'è sempre il rischio che rimanga in coda (per esempio perché il pc o dispositivo usato non ha molte risorse per calcolare l'hash, e quindi i miner gli danno una priorità più bassa). Allora l'utente dovrebbe rifare la transazione ad ogni nuovo blocco, finché non viene inclusa? Ok, potrebbe essere il client a farlo in automatico, se all'arrivo del blocco si accorge che la transazione manca. Però questo costringerebbe a rimanere collegati online finché non si ha la certezza che la transazione sia stata scritta nel blocco, mentre adesso, una volta che il client ha fatto il broadcast della transazione, posso anche disconnettermi ed essere abbastanza sicuro che continuerà a propagarsi nella rete.
Però se l'utente avesse anche fatto del pow, sarebbe ingiustamente penalizzante doverlo rifare da capo perché il miner non l'ha inclusa nel blocco: considera che la teoria dei giochi dietro al pow si basa sul concetto di incentivo (il reward che ottiene il miner giustifica le risorse consumate per il pow), ma nel caso dell'utente medio con risorse di calcolo ridicole rispetto a quelle dei miner, non avrebbe un vero incentivo a calcolare l'hash sulla transazione, che giustifichi il rischio di doverla ripetere ad ogni blocco. Per cui il sistema, anche se tecnicamente funzionante, tenderebbe a selezionare gli utenti con hw più potente e finirebbe per essere usato poco o nulla dagli utenti con hw ordinario, perché troppo gravoso. Almeno così mi immagino.

E comunque tutto ciò non toglie che, se voglio fare un double spending, posso pianificarlo in anticipo calcolando (sulla base delle mie risorse di calcolo) entro quanti blocchi posso essere ragionevolmente sicuro di aver trovato le hash abbastanza piccole per le 6 transazioni che mi servono. Magari ci vogliono mesi per avere un margine sufficiente, ma rimarrebbe comunque possibile.