picchio (OP)
Legendary
Offline
Activity: 2506
Merit: 1120
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 29, 2017, 04:37:04 PM Last edit: March 31, 2017, 03:24:43 PM by picchio |
|
EDIT 20170331: https://bitcointalk.org/index.php?topic=1847216.msg18405473#msg18405473 modifica che potrebbe rendere sicura la rete ... Attenzione! Questa soluzione puo' essere rischiosa in quanto chiunque sarebbe in grado, con poco sforzo, di ricreare la blockchain ricomponendo le varie transazioni a piacere. Il pow va pertanto fatto per sigillare il blocco e se ogni blocco ha pow interno non aumenta la sicurezza della blockchain. EDIT 20170331: a meno che il pow non sia legato al numero di blocco e quindi o in quel blocco o da nessuna parte
Rispondendo ad un post su altro 3d ( https://bitcointalk.org/index.php?topic=313900.msg18370755#msg18370755) ho intuito che si potrebbe consentire a chi vuole/puo' di associare pow alle singole transazioni in modo da alleggerire il peso per i miner e quindi consentire una distribuzione più globale della pow e rendere meno centralizzato il mining bitcoin. Provo a riassumere: - le transazioni rimangono come ora. - ad ogni transazione viene aggiunto un nonce che si ottimizza al fine di creare un hash piu' basso possibile. - la somma delle potenze di calcolo necessarie per creare ogni singolo hash transazione viene "scontata" alla potenza di calcolo relativa alla difficoltà della rete - le fee e le revenue del blocco vengono divise proporzionalmente Provo ad elencare pro e contro ... aggiorniamo se necessario Vantaggi - tutti possono contribuire al mining aumentando la sicurezza della rete - le transazioni in mempool possono diventare interessanti se incapsulate in un miniblocco con hash sufficientemente basso e pertanto recuperate - qualcuno potrebbe occuparsi di fare questo lavoro per chi non ha potenza di calcolo - chi non vuole paga la fee adeguata e la transazione rimane interessante per i miner anche se non da sconti rispetto alla difficoltà Svantaggi - forse la difficoltà attuale della rete è talmente alta che sarebbe una goccia nel mare? - pericolo di attacco alla rete (uno si prepara le n transazioni che servono e fa un bouble spending broadcastandole opportunamente - credo si possa risolvere ...) - richiede un hard fork della rete NB: questo discorso è solamente un esercizio e non vuole essere null'altro che una discussione didattica. Se servirà meglio, se già affrontata postare link. Grazie.
|
Waves mi piaceva ora non più.
|
|
|
jack0m
Legendary
Offline
Activity: 3738
Merit: 2030
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 29, 2017, 05:17:04 PM Last edit: March 29, 2017, 05:33:28 PM by jack0m |
|
ok grazie, Rispondendo ad un post su altro 3d ( https://bitcointalk.org/index.php?topic=313900.msg18370755#msg18370755) ho intuito che si potrebbe consentire a chi vuole/puo' di associare pow alle singole transazioni in modo da alleggerire il peso per i miner e quindi consentire una distribuzione più globale della pow e rendere meno centralizzato il mining bitcoin. Provo a riassumere: - le transazioni rimangono come ora. - ad ogni transazione viene aggiunto un nonce che si ottimizza al fine di creare un hash piu' basso possibile. in che senso, cioè non c'è un target di difficoltà? Si provano hash per 10 minuti e si pubblica la più bassa che si è trovata? - la somma delle potenze di calcolo necessarie per creare ogni singolo hash transazione viene "scontata" alla potenza di calcolo relativa alla difficoltà della rete
su questo punto continuo a non capire cosa intendi. La difficoltà D del blocco è proporzionale a T * H, dove T è il tempo medio per trovare il blocco (10 min) e H l'hashrate complessiva della rete. Come calcoli la porzione di hashrate da scontare per le transazioni? [...] - qualcuno potrebbe occuparsi di fare questo lavoro per chi non ha potenza di calcolo
e che incentivo avrebbe? Perché dovrebbe preferire di usare così la propria potenza di calcolo piuttosto che per fare direttamente mining del blocco (anche in pool)? [...] - forse la difficoltà attuale della rete è talmente alta che sarebbe una goccia nel mare? - pericolo di attacco alla rete (uno si prepara le n transazioni che servono e fa un bouble spending broadcastandole opportunamente - credo si possa risolvere ...)
su questi punti ci devo tornare quando mi è chiaro come funziona lo "sconto" sulla hash del blocco (vedi sopra)
|
Money is a hoax. Debt is slavery. Consumerism is toxic.
|
|
|
picchio (OP)
Legendary
Offline
Activity: 2506
Merit: 1120
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 29, 2017, 06:30:27 PM |
|
Non riesco a quotare meglio ... una domanda alla volta, sorry Rispondendo ad un post su altro 3d ( https://bitcointalk.org/index.php?topic=313900.msg18370755#msg18370755) ho intuito che si potrebbe consentire a chi vuole/puo' di associare pow alle singole transazioni in modo da alleggerire il peso per i miner e quindi consentire una distribuzione più globale della pow e rendere meno centralizzato il mining bitcoin. Provo a riassumere: - le transazioni rimangono come ora. - ad ogni transazione viene aggiunto un nonce che si ottimizza al fine di creare un hash piu' basso possibile. in che senso, cioè non c'è un target di difficoltà? Si provano hash per 10 minuti e si pubblica la più bassa che si è trovata? Si, ma se non basta continui a provare sulla stessa transazione. Fino a quando non ti passa in un blocco ...
|
Waves mi piaceva ora non più.
|
|
|
picchio (OP)
Legendary
Offline
Activity: 2506
Merit: 1120
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 29, 2017, 07:04:20 PM |
|
... - la somma delle potenze di calcolo necessarie per creare ogni singolo hash transazione viene "scontata" alla potenza di calcolo relativa alla difficoltà della rete
su questo punto continuo a non capire cosa intendi. La difficoltà D del blocco è proporzionale a T * H, dove T è il tempo medio per trovare il blocco (10 min) e H l'hashrate complessiva della rete. Come calcoli la porzione di hashrate da scontare per le transazioni? Semplificando: se ci vogliono "mediamente" 1000 hash per minare un blocco e tu hai una transazione con un hash che vale 10 hai l'1% delle revenue e il miner basta che trovi un hash che vale 990, si prende il 99% delle fee e delle revenue. Se ci sono 100 transazioni che valgono 10 mini il blocco senza nessuna specifica sull'hash perché la somma dei calcoli fatti equivale ai 1000 hash della difficoltà. Non prendi nulla ma mini il blocco. Ovviamente le 100 transazioni devono stare nel blocco (non superare il MByte o quello che sarà) Il calcolo matematico/statistico non lo so fare ma credo sia possibile farlo. Il problema maggiore credo sia che attualmente la difficoltà sta a 475,705,205,062, in ogni blocco ci sono meno di 2000 transazioni quindi per minarne uno bisognerebbe avere una difficoltà media di 475705205062/2000.=237.852.602 che è comunque una difficoltà elevatissima. Mi sa che il contributo che puo' dare un utente è pari ad una goccia nell'oceano ... e tutto questo porterebbe ad un aumento della difficoltà dove gli utenti avrebbero sempre poco potere. D'altronde esistono già le mining pool che aggregano hashrate.
|
Waves mi piaceva ora non più.
|
|
|
picchio (OP)
Legendary
Offline
Activity: 2506
Merit: 1120
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 29, 2017, 07:12:05 PM |
|
... [...] - qualcuno potrebbe occuparsi di fare questo lavoro per chi non ha potenza di calcolo
e che incentivo avrebbe? Perché dovrebbe preferire di usare così la propria potenza di calcolo piuttosto che per fare direttamente mining del blocco (anche in pool)? Per agevolare una transazione che magari e' rimasta ferma per mancanza di fee, magari a pagamento e poi anche solo per gioco indipendente in quanto non dipendi da nessuno. Poi considera che se per caso azzecchi un hash basso lo puoi inserire in un blocco e se non passa lo metti in quello successivo (non hai blocchi orfani). Al momento se hai una difficoltà 1000 e fai 999 non basta, in questo caso ti tieni la transazione e la broadcasti al blocco successivo.
|
Waves mi piaceva ora non più.
|
|
|
jack0m
Legendary
Offline
Activity: 3738
Merit: 2030
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 29, 2017, 10:38:21 PM |
|
... - la somma delle potenze di calcolo necessarie per creare ogni singolo hash transazione viene "scontata" alla potenza di calcolo relativa alla difficoltà della rete
su questo punto continuo a non capire cosa intendi. La difficoltà D del blocco è proporzionale a T * H, dove T è il tempo medio per trovare il blocco (10 min) e H l'hashrate complessiva della rete. Come calcoli la porzione di hashrate da scontare per le transazioni? Semplificando: se ci vogliono "mediamente" 1000 hash per minare un blocco e tu hai una transazione con un hash che vale 10 hai l'1% delle revenue e il miner basta che trovi un hash che vale 990, si prende il 99% delle fee e delle revenue. Se ci sono 100 transazioni che valgono 10 mini il blocco senza nessuna specifica sull'hash perché la somma dei calcoli fatti equivale ai 1000 hash della difficoltà. Non prendi nulla ma mini il blocco. Ovviamente le 100 transazioni devono stare nel blocco (non superare il MByte o quello che sarà) Il calcolo matematico/statistico non lo so fare ma credo sia possibile farlo. [...] provo a riformulare: supponiamo che il target del blocco al momento sia: 0000000000FFFFFFF... (10 zeri esadecimali iniziali); la transazione trova una hash con 6 zeri iniziali, quindi contribuisce per circa lo 0,0015% al PoW del blocco (2^-16); 2000 transazioni con lo stesso valore medio della hash arriverebbero al 3% dell'hash del blocco. Ho capito bene? Ma ha senso sommare i PoW calcolati su problemi diversi e indipendenti tra loro?
|
Money is a hoax. Debt is slavery. Consumerism is toxic.
|
|
|
HostFat
Moderator
Legendary
Offline
Activity: 4256
Merit: 1208
I support freedom of choice
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 29, 2017, 10:58:55 PM |
|
Rispondendo ad un post su altro 3d ( https://bitcointalk.org/index.php?topic=313900.msg18370755#msg18370755) ho intuito che si potrebbe consentire a chi vuole/puo' di associare pow alle singole transazioni in modo da alleggerire il peso per i miner e quindi consentire una distribuzione più globale della pow e rendere meno centralizzato il mining bitcoin. A proposito di questo, potete dare un occhiata a questa altcoin, che fa proprio questo: Raiblocks: https://bitcointalk.org/index.php?topic=1388839.0Fra i problemi di raiblocks, che ancora non è stato risolto, perchè ancora non si è presentato, come viene deciso quanto deve essere difficile questo pow nelle singole tx? Attualmente l'idea sarebbe di fare una votazione via POS, cioè che i principali stake holder decidessero qual'è il pow minimo per fare una tx.
|
|
|
|
picchio (OP)
Legendary
Offline
Activity: 2506
Merit: 1120
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 29, 2017, 11:01:25 PM |
|
... provo a riformulare: supponiamo che il target del blocco al momento sia: 0000000000FFFFFFF... (10 zeri esadecimali iniziali); la transazione trova una hash con 6 zeri iniziali, quindi contribuisce per circa lo 0,0015% al PoW del blocco (2^-16); 2000 transazioni con lo stesso valore medio della hash arriverebbero al 3% dell'hash del blocco. Ho capito bene? Ma ha senso sommare i PoW calcolati su problemi diversi e indipendenti tra loro?
Non so se il calcolo che hai fatto sia corretto dal punto di vista statistico. La probabilità mi ha insegnato che è un casino essere sicuri dei calcoli (per me), ma ammettiamo che sia corretto in quanto "fila". Direi che hai capito cosa intendo. Se ha senso? Io direi di si in quanto l'algoritmo sarebbe lo stesso e il lavoro è lavoro sia che lo compia in italiano sia che lo compia un cinese (che paga meno l'energia ma questo è un altro discorso). Ovviamente va calcolato due volte l'hash sha256, forse qualche differenza la troviamo per il calcolo del primo hash in quanto le lunghezze dei dati non credo possano essere uguali e quindi presumo influisca sulla velocità di calcolo. Al massimo si fa in modo che siano almeno simili e non significativi, per il secondo hash direi che i calcoli da fare sono gli stessi. Magari si cambia algoritmo in modo da rendere inutili gli asics e si da un peso diverso ai due calcoli, mi sembra piu' pericoloso come approccio.
|
Waves mi piaceva ora non più.
|
|
|
jack0m
Legendary
Offline
Activity: 3738
Merit: 2030
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 29, 2017, 11:12:16 PM Last edit: March 29, 2017, 11:30:36 PM by jack0m |
|
... [...] - qualcuno potrebbe occuparsi di fare questo lavoro per chi non ha potenza di calcolo
e che incentivo avrebbe? Perché dovrebbe preferire di usare così la propria potenza di calcolo piuttosto che per fare direttamente mining del blocco (anche in pool)? Per agevolare una transazione che magari e' rimasta ferma per mancanza di fee, magari a pagamento e poi anche solo per gioco indipendente in quanto non dipendi da nessuno. Poi considera che se per caso azzecchi un hash basso lo puoi inserire in un blocco e se non passa lo metti in quello successivo (non hai blocchi orfani). Al momento se hai una difficoltà 1000 e fai 999 non basta, in questo caso ti tieni la transazione e la broadcasti al blocco successivo. mmm... ma così annulli il presupposto che garantisce che in media l'intervallo di tempo tra due blocchi si mantiene stabilmente sui 10 min: cioè che dopo ogni blocco il mining di quello successivo riparte da zero, e tutto il lavoro svolto fin lì dai miner deve essere buttato... Così invece mi posso tenere da parte una transazione, anzi magari N transazioni fittizie da 1 satoshi, e continuare con calma a provare hash per giorni, o al limite mesi, mentre il resto dei miner "corretti" ha ogni volta 10 min di tempo per scovare la hash del blocco. Se provo per un tempo abbastanza lungo, alla fine posso ritrovarmi con N transazioni ognuna con hash inferiore a quella richiesta per l'intero blocco, facendo un filotto di N blocchi che sputtana il meccanismo che regola la difficoltà: all'aggiustamento successivo avrebbe un'impennata per compensare il flood di blocchi, destabilizzando la rete. EDIT: cosa ancora più grave, se N > 3 (6 per i più esigenti) potrei sfruttare il trick per fare double spending, annullando una mia transazione più vecchia!
|
Money is a hoax. Debt is slavery. Consumerism is toxic.
|
|
|
jack0m
Legendary
Offline
Activity: 3738
Merit: 2030
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 29, 2017, 11:27:07 PM |
|
Rispondendo ad un post su altro 3d ( https://bitcointalk.org/index.php?topic=313900.msg18370755#msg18370755) ho intuito che si potrebbe consentire a chi vuole/puo' di associare pow alle singole transazioni in modo da alleggerire il peso per i miner e quindi consentire una distribuzione più globale della pow e rendere meno centralizzato il mining bitcoin. A proposito di questo, potete dare un occhiata a questa altcoin, che fa proprio questo: Raiblocks: https://bitcointalk.org/index.php?topic=1388839.0Fra i problemi di raiblocks, che ancora non è stato risolto, perchè ancora non si è presentato, come viene deciso quanto deve essere difficile questo pow nelle singole tx? Attualmente l'idea sarebbe di fare una votazione via POS, cioè che i principali stake holder decidessero qual'è il pow minimo per fare una tx. ma ho capito bene o le coin sono tutte preminate e distribuite dai dev? Magari domani me lo guardo meglio, ora è meglio se vado a dormire ![Wink](https://bitcointalk.org/Smileys/default/wink.gif)
|
Money is a hoax. Debt is slavery. Consumerism is toxic.
|
|
|
HostFat
Moderator
Legendary
Offline
Activity: 4256
Merit: 1208
I support freedom of choice
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 29, 2017, 11:32:37 PM |
|
ma ho capito bene o le coin sono tutte preminate e distribuite dai dev? Magari domani me lo guardo meglio, ora è meglio se vado a dormire ![Wink](https://bitcointalk.org/Smileys/default/wink.gif) Si, ma non è il punto importante della vostra discussione direi. La distribuzione, e il metodo di verifica e antispam del network non sono strettamente collegate.
|
|
|
|
picchio (OP)
Legendary
Offline
Activity: 2506
Merit: 1120
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 29, 2017, 11:46:11 PM |
|
... mmm... ma così annulli il presupposto che garantisce che in media l'intervallo di tempo tra due blocchi si mantiene stabilmente sui 10 min: cioè che dopo ogni blocco il mining di quello successivo riparte da zero, e tutto il lavoro svolto fin lì dai miner deve essere buttato... Così invece mi posso tenere da parte una transazione, anzi magari N transazioni fittizie da 1 satoshi, e continuare con calma a provare hash per giorni, o al limite mesi, mentre il resto dei miner "corretti" ha ogni volta 10 min di tempo per scovare la hash del blocco. Se provo per un tempo abbastanza lungo, alla fine posso ritrovarmi con N transazioni ognuna con hash inferiore a quella richiesta per l'intero blocco, facendo un filotto di N blocchi che sputtana il meccanismo che regola la difficoltà: all'aggiustamento successivo avrebbe un'impennata per compensare il flood di blocchi, destabilizzando la rete.
Vero. Questo era uno dei difetti, forse si puo' risolvere con la data (non ricordo se una transazione ha la data, forse si...) e poi non si accettano transazioni con date troppo diverse. EDIT: cosa ancora più grave, se N > 3 (6 per i più esigenti) potrei sfruttare il trick per fare double spending, annullando una mia transazione più vecchia!
EDIT: mia cazzata: Se la transazione è nel blocco non la annulli a meno di riscrivere la chain per intero. EDIT 2: Diciamo che considerando la data il problema è minore...
|
Waves mi piaceva ora non più.
|
|
|
picchio (OP)
Legendary
Offline
Activity: 2506
Merit: 1120
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 30, 2017, 06:10:45 AM |
|
Attenzione! Questa soluzione puo' essere rischiosa in quanto chiunque sarebbe in grado, con poco sforzo, di ricreare la blockchain ricomponendo le varie transazioni a piacere. Il pow va pertanto fatto per sigillare il blocco e se ogni blocco ha pow interno non aumenta la sicurezza della blockchain.
|
Waves mi piaceva ora non più.
|
|
|
jack0m
Legendary
Offline
Activity: 3738
Merit: 2030
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 30, 2017, 07:56:04 AM |
|
Attenzione! Questa soluzione puo' essere rischiosa in quanto chiunque sarebbe in grado, con poco sforzo, di ricreare la blockchain ricomponendo le varie transazioni a piacere. Il pow va pertanto fatto per sigillare il blocco e se ogni blocco ha pow interno non aumenta la sicurezza della blockchain.
infatti, il problema è proprio quello: il meccanismo che rende proibitivo alterare la blockchain sta nel pow del blocco. Se con hash delle transazioni abbastanza piccole vinci un bonus sulla hash del blocco in cui le includi, tutto quello che devi fare è macinare con calma le hash di 6 transazioni, una delle quali fa double spending, le altre anche fittizie da 1 satoshi, e distribuendole in 6 blocchi consecutivi puoi cancellare una vecchia transazione anche dopo che aveva avuto 6 conferme!
|
Money is a hoax. Debt is slavery. Consumerism is toxic.
|
|
|
picchio (OP)
Legendary
Offline
Activity: 2506
Merit: 1120
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 30, 2017, 08:53:19 AM |
|
Attenzione! Questa soluzione puo' essere rischiosa in quanto chiunque sarebbe in grado, con poco sforzo, di ricreare la blockchain ricomponendo le varie transazioni a piacere. Il pow va pertanto fatto per sigillare il blocco e se ogni blocco ha pow interno non aumenta la sicurezza della blockchain.
infatti, il problema è proprio quello: il meccanismo che rende proibitivo alterare la blockchain sta nel pow del blocco. Se con hash delle transazioni abbastanza piccole vinci un bonus sulla hash del blocco in cui le includi, tutto quello che devi fare è macinare con calma le hash di 6 transazioni, una delle quali fa double spending, le altre anche fittizie da 1 satoshi, e distribuendole in 6 blocchi consecutivi puoi cancellare una vecchia transazione anche dopo che aveva avuto 6 conferme! Non solo, se immagini un sistema che abbia solo transazioni che composte azzerano la difficoltà del blocco puoi immaginare n sacchetti con m(n) granelli, rovesci tutto e ricomponi come vuoi senza problemi, ovvio che qualche granello lo lasci indietro e chiunque potrebbe farlo senza nessuna potenza di calcolo. Sarebbe il caos assoluto. Inutile e pericoloso. Peccato :-( EDIT: grazie per avermi dato modo di evolvere il ragionamento con domande pertinenti e che mi hanno permesso di arrivare ad una conclusione che magari mi avrebbe fatto dedicare alla cosa ore e ore ...
|
Waves mi piaceva ora non più.
|
|
|
jack0m
Legendary
Offline
Activity: 3738
Merit: 2030
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 30, 2017, 10:05:07 AM |
|
EDIT: grazie per avermi dato modo di evolvere il ragionamento con domande pertinenti e che mi hanno permesso di arrivare ad una conclusione che magari mi avrebbe fatto dedicare alla cosa ore e ore ...
bè grazie e te per la discussione interessante, che mi ha fatto apprezzare ancora di più il meccanismo così accuratamente studiato e ben oliato su cui poggia la blockchain ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif)
|
Money is a hoax. Debt is slavery. Consumerism is toxic.
|
|
|
picchio (OP)
Legendary
Offline
Activity: 2506
Merit: 1120
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 31, 2017, 03:18:56 PM |
|
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?
|
Waves mi piaceva ora non più.
|
|
|
jack0m
Legendary
Offline
Activity: 3738
Merit: 2030
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 31, 2017, 10:15:22 PM |
|
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](https://bitcointalk.org/Smileys/default/cheesy.gif) 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.
|
Money is a hoax. Debt is slavery. Consumerism is toxic.
|
|
|
picchio (OP)
Legendary
Offline
Activity: 2506
Merit: 1120
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 01, 2017, 12:13:44 AM |
|
Il discorso e' puramente didattico non credo possa dare risvolti utili. @jack0m ti rispondo senza quotare ... spero si capisca ... L'utente normale si scorda di poter dare un contributo significativo, come minimo ci vogliono hw dedicati asics per poter fare hash interessanti. Eventualmente potrebbe essere un modo differente per minare. Paga le fee che deve e non riceve premi. .. 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.
Credo di aver capito ... infatti ... Il problema ora è che io poteri pianificare un fork se non indico la dipendenza dal blocco precedente (hash), ossia, il calcolo va ricominciato ogni volta che si genera un blocco perdendo eventuali hash bassi trovati e rendendo il sistema poco utile. Considera comunque che non posso sapere a quanto ammonterà la velocità tra 6 mesi ma comunque non va bene poter dire genericamente il blocco x, va indicato un hash del blocco prima o ... Si potrebbe pensare che la transazione possa essere inserita in uno degli "n" blocchi successivi all'hash a cui fa riferimento (es per 6 blocchi). Consentirebbe di calcolare e broadcastare con relativa calma ma non di pianificare golpe. Potrebbe servire per far collaborare varie mining pool in modo trasparente e fiduciario senza rischi. Chiunque potrebbe dare un contributo senza affidarsi ad una mining pool anche se ha potenze relativamente limitate. In sostanza posso creare una transazione sia inserendo fee che lavorando pow (o entrambi), se ho fretta pago le fee che devo, se voglio guadagnare e non ho fretta posso minare una transazione che tuttiele farm hanno interesse ad includere. Per il fatto che magari perdo l'hash della vita considera che anche ora non è mica detto che la tua miningpool mini qualcosa per giorni ... e se non continui a produrre non guadagni nulla (almeno una volta era cosi'). Con questo sistema consenti a tutte le mining pool di collaborare tra loro senza conflitti di interessi, dividono fee e revenue ma hanno anche meno lavoro. Sono combattuto, a tratti sembra una buona idea, a tratti na strunzata ...
|
Waves mi piaceva ora non più.
|
|
|
jack0m
Legendary
Offline
Activity: 3738
Merit: 2030
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 02, 2017, 10:13:36 PM |
|
Ah, mi ero perso l'ultimo update ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) Ho letto un po' in fretta, su due piedi direi che legando la transazione alla hash del blocco corrente, il pow della transazione diventerebbe sempre più simile a quello del blocco, quindi effettivamente più sicuro in termini di rischio double spending. Bisognerebbe però valutare bene come cambia in funzione di "n", che rappresenta un fattore di elasticità in più rispetto al pow puro del blocco. Il caso limite è quando n=1, in quel caso minare il blocco o la transazione sarebbe indifferente, quindi c'è da chiedersi perché si dovrebbe scegliere quest'ultima piuttosto che il mining tradizionale. All'aumentare di n, si darebbe qualche possibilità in più di partecipare al mining ad utenti non in grado di competere con miner professionisti, ma bisogna stare attenti a non fornire a questi ultimi una "finestra" sufficiente (con un hw abbastanza potente) a perpetrare con successo l'attacco double spending.
|
Money is a hoax. Debt is slavery. Consumerism is toxic.
|
|
|
|