Author

Topic: Mining pow sulle transazioni (Read 3624 times)

newbie
Activity: 14
Merit: 0
June 03, 2017, 09:51:28 AM
#34
ottima soluzione in merito
legendary
Activity: 3808
Merit: 2044
April 06, 2017, 07:16:48 AM
#33
Ciao, non ho seguito la discussione (avevo letto qualcosa nel thread da cui è originata ma non ho poi avuto tempo) quindi chiedo scusa se non c'entra nulla o se è stato già segnalato:

https://bitcointalksearch.org/topic/dagcoin-a-cryptocurrency-without-blocks-1177633

(un progetto di criptocurrency con PoW sulle singole transazioni)


Grazie della segnalazione. Per ora ho dato un'occhiata veloce al thread e ho visto uno scontro piuttosto acceso, per il fatto che il sistema non sarebbe puramente distribuito ma richiederebbe degli elementi centralizzati. Dovrei comunque approfondire meglio.
hero member
Activity: 669
Merit: 500
April 05, 2017, 07:30:55 PM
#32
Ciao, non ho seguito la discussione (avevo letto qualcosa nel thread da cui è originata ma non ho poi avuto tempo) quindi chiedo scusa se non c'entra nulla o se è stato già segnalato:

https://bitcointalksearch.org/topic/dagcoin-a-cryptocurrency-without-blocks-1177633

(un progetto di criptocurrency con PoW sulle singole transazioni)

legendary
Activity: 2506
Merit: 1120
April 05, 2017, 08:17:26 AM
#31
E se per evitare che i miner inseriscano transazioni fasulle per far credere che il blocco e' stretto (tanto se lo minano loro e le fee le recuperano) si proponesse che le fee del blocco x vadano a chi mina il blocco x+1?

non so, bisogna capire come verrebbe percepito dal miner il fatto di non avere un incentivo diretto ad includere transazioni nel suo blocco, ma doversi affidare al lavoro degli altri "concorrenti". Mi sembra una questione distinta da quella di cui si discuteva, comunque.
Hai ragione, è che le sparo quando mi maturano ... non serve aprire altri 3d.
legendary
Activity: 3808
Merit: 2044
April 05, 2017, 08:14:35 AM
#30
E se per evitare che i miner inseriscano transazioni fasulle per far credere che il blocco e' stretto (tanto se lo minano loro e le fee le recuperano) si proponesse che le fee del blocco x vadano a chi mina il blocco x+1?

non so, bisogna capire come verrebbe percepito dal miner il fatto di non avere un incentivo diretto ad includere transazioni nel suo blocco, ma doversi affidare al lavoro degli altri "concorrenti". Mi sembra una questione distinta da quella di cui si discuteva, comunque.
legendary
Activity: 2506
Merit: 1120
April 04, 2017, 01:52:53 PM
#29
E se per evitare che i miner inseriscano transazioni fasulle per far credere che il blocco e' stretto (tanto se lo minano loro e le fee le recuperano) si proponesse che le fee del blocco x vadano a chi mina il blocco x+1?
legendary
Activity: 3808
Merit: 2044
April 04, 2017, 07:42:04 AM
#28
a) p2pool è uno dei progetti che mi ha affascinato maggiormente, in poche parole è una pool p2p che crea una catena a difficoltà ridotta e tutti concorrono a minare il blocco, il pow dimostrato serve solo all'interno della pool per decidere la distribuzione del premio e delle fee che ricevi appena uno dei peer mina il blocco, se hai visto sono delle transazioni di generazione con decine di address che prendono piccole quantità.
Ti segno qualche link ...
Una transazione: https://blockchain.info/it/tx/f332f4c26f43439789f37b6c7d2849c79128a0d1609e1b12fa26ac608a6839de
Pool:
https://blockchain.info/it/blocks/P2Pool
Un blocco
https://blockchain.info/block-height/460239
il blocco:
https://blockchain.info/it/block/0000000000000000016f72d06a779ea328fde4adb5479e2ffaa5dce5adce7358

mi sa che non ho capito: parli di una catena a difficoltà ridotta usata solo internamente, ma quella transazione e quel blocco sono veri, cioè stanno nella blockchain, quindi hanno risolto un pow reale, non uno fittizio usato nella pool. Mi sono perso qualcosa Huh
I blocchi sono reali, hai i link per verificare. Se sei interessato a p2pool prova a vedere https://en.bitcoin.it/wiki/P2Pool io non lo uso dal 2013 ...

ok me lo guardo con calma appena ho tempo, grazie
legendary
Activity: 2506
Merit: 1120
April 04, 2017, 06:39:33 AM
#27
a) p2pool è uno dei progetti che mi ha affascinato maggiormente, in poche parole è una pool p2p che crea una catena a difficoltà ridotta e tutti concorrono a minare il blocco, il pow dimostrato serve solo all'interno della pool per decidere la distribuzione del premio e delle fee che ricevi appena uno dei peer mina il blocco, se hai visto sono delle transazioni di generazione con decine di address che prendono piccole quantità.
Ti segno qualche link ...
Una transazione: https://blockchain.info/it/tx/f332f4c26f43439789f37b6c7d2849c79128a0d1609e1b12fa26ac608a6839de
Pool:
https://blockchain.info/it/blocks/P2Pool
Un blocco
https://blockchain.info/block-height/460239
il blocco:
https://blockchain.info/it/block/0000000000000000016f72d06a779ea328fde4adb5479e2ffaa5dce5adce7358

mi sa che non ho capito: parli di una catena a difficoltà ridotta usata solo internamente, ma quella transazione e quel blocco sono veri, cioè stanno nella blockchain, quindi hanno risolto un pow reale, non uno fittizio usato nella pool. Mi sono perso qualcosa Huh
I blocchi sono reali, hai i link per verificare. Se sei interessato a p2pool prova a vedere https://en.bitcoin.it/wiki/P2Pool io non lo uso dal 2013 ...
legendary
Activity: 3808
Merit: 2044
April 04, 2017, 04:36:51 AM
#26
a) p2pool è uno dei progetti che mi ha affascinato maggiormente, in poche parole è una pool p2p che crea una catena a difficoltà ridotta e tutti concorrono a minare il blocco, il pow dimostrato serve solo all'interno della pool per decidere la distribuzione del premio e delle fee che ricevi appena uno dei peer mina il blocco, se hai visto sono delle transazioni di generazione con decine di address che prendono piccole quantità.
Ti segno qualche link ...
Una transazione: https://blockchain.info/it/tx/f332f4c26f43439789f37b6c7d2849c79128a0d1609e1b12fa26ac608a6839de
Pool:
https://blockchain.info/it/blocks/P2Pool
Un blocco
https://blockchain.info/block-height/460239
il blocco:
https://blockchain.info/it/block/0000000000000000016f72d06a779ea328fde4adb5479e2ffaa5dce5adce7358

mi sa che non ho capito: parli di una catena a difficoltà ridotta usata solo internamente, ma quella transazione e quel blocco sono veri, cioè stanno nella blockchain, quindi hanno risolto un pow reale, non uno fittizio usato nella pool. Mi sono perso qualcosa Huh
legendary
Activity: 2506
Merit: 1120
April 04, 2017, 03:42:23 AM
#25
Non c'entra forse nulla
a) ... ai tempi bazzicavo p2pool e mi piaceva come concetto.
b) qualche tempo fa devo aver visto qualcosa su miniblocchi che alla fine magari e' simile a questo, appena riesco provo a cercare

ammetto di non saperne nulla...
a) p2pool è uno dei progetti che mi ha affascinato maggiormente, in poche parole è una pool p2p che crea una catena a difficoltà ridotta e tutti concorrono a minare il blocco, il pow dimostrato serve solo all'interno della pool per decidere la distribuzione del premio e delle fee che ricevi appena uno dei peer mina il blocco, se hai visto sono delle transazioni di generazione con decine di address che prendono piccole quantità.
Ti segno qualche link ...
Una transazione: https://blockchain.info/it/tx/f332f4c26f43439789f37b6c7d2849c79128a0d1609e1b12fa26ac608a6839de
Pool:
https://blockchain.info/it/blocks/P2Pool
Un blocco
https://blockchain.info/block-height/460239
il blocco:
https://blockchain.info/it/block/0000000000000000016f72d06a779ea328fde4adb5479e2ffaa5dce5adce7358

b) ho trovato qualcosa ma non sembra esattamente il discorso di questo 3d ...
legendary
Activity: 3808
Merit: 2044
April 04, 2017, 02:49:17 AM
#24
Non c'entra forse nulla
a) ... ai tempi bazzicavo p2pool e mi piaceva come concetto.
b) qualche tempo fa devo aver visto qualcosa su miniblocchi che alla fine magari e' simile a questo, appena riesco provo a cercare

ammetto di non saperne nulla...
legendary
Activity: 2506
Merit: 1120
April 03, 2017, 11:47:41 AM
#23
... A meno di casi rari di utenti con hashpower molto alta.
Potrebbe essere una nuova forma di mining pool ... condiviso. Oppure due farm che si alleano. O tutti insieme appassionatamente ...
Considera che per ricalcolare l'hash devi cambiare qualcosa e ad un certo punto cambi riferimento al blocco al posto del nonce e continui ... 

Non c'entra forse nulla
a) ... ai tempi bazzicavo p2pool e mi piaceva come concetto.
b) qualche tempo fa devo aver visto qualcosa su miniblocchi che alla fine magari e' simile a questo, appena riesco provo a cercare
legendary
Activity: 3808
Merit: 2044
April 03, 2017, 10:40:29 AM
#22
...
Alla fine: direi n=1 è l'unica via praticabile.
Direi anch'io, altrimenti è come abbassare la soglia del 50%+1 per il rischio double spending

Perche' il la transazione minata sarebbe allettante per tutti i miner mentre ora devi minare il blocco intero per avere qualcosa. Certo che con n=1 dovresti broadcastare e i miner dovrebbero includerla nel blocco ricalcolando il tutto e forse non lo faranno volentieri (bo?), forse n=2, 6 divente interessante.
secondo me il problema è che con n=1 il guadagno per il miner sarebbe, come hai indicato fin dall'inizio tra gli svantaggi, "una goccia nel mare", per cui il criterio preferenziale di scelta delle transazioni da includere nel blocco rimarrebbero le fee, come ora. A meno di casi rari di utenti con hashpower molto alta.
legendary
Activity: 2506
Merit: 1120
April 02, 2017, 08:52:25 PM
#21
...
c'è da chiedersi perché si dovrebbe scegliere quest'ultima piuttosto che il mining tradizionale.
...
Perche' il la transazione minata sarebbe allettante per tutti i miner mentre ora devi minare il blocco intero per avere qualcosa. Certo che con n=1 dovresti broadcastare e i miner dovrebbero includerla nel blocco ricalcolando il tutto e forse non lo faranno volentieri (bo?), forse n=2, 6 divente interessante.

...
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.

Non vorrei sparare una cazzata ma per transazioni importanti credo che un minimo di conferme uno se le aspetta ... diciamo che se devo ricedere 1000 BTC per un castello mica faccio l'atto dopo dieci minuti ... o no?
Per transazioni minori non e' detto ne valga la pena, comunque se n aumenta il rischio sale ... c'e' da dire che se diventa pratica comune poi risulta piu' facile mantenere la catena piu' lunga ...
Alla fine: direi n=1 è l'unica via praticabile.
legendary
Activity: 3808
Merit: 2044
April 02, 2017, 05:13:36 PM
#20
Ah, mi ero perso l'ultimo update Smiley
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.
legendary
Activity: 2506
Merit: 1120
March 31, 2017, 07:13:44 PM
#19
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 ...


legendary
Activity: 3808
Merit: 2044
March 31, 2017, 05:15:22 PM
#18
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.
legendary
Activity: 2506
Merit: 1120
March 31, 2017, 10:18:56 AM
#17
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?
legendary
Activity: 3808
Merit: 2044
March 30, 2017, 05:05:07 AM
#16
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
legendary
Activity: 2506
Merit: 1120
March 30, 2017, 03:53:19 AM
#15
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 ...
legendary
Activity: 3808
Merit: 2044
March 30, 2017, 02:56:04 AM
#14
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!
legendary
Activity: 2506
Merit: 1120
March 30, 2017, 01:10:45 AM
#13
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.

legendary
Activity: 2506
Merit: 1120
March 29, 2017, 06:46:11 PM
#12
...
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...
staff
Activity: 4270
Merit: 1209
I support freedom of choice
March 29, 2017, 06:32:37 PM
#11
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
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.
legendary
Activity: 3808
Merit: 2044
March 29, 2017, 06:27:07 PM
#10
Rispondendo ad un post su altro 3d (https://bitcointalksearch.org/topic/m.18370755) 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://bitcointalksearch.org/topic/nano-ex-raiblocks-conferme-istantanee-no-fee-1388839

Fra 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
legendary
Activity: 3808
Merit: 2044
March 29, 2017, 06:12:16 PM
#9
...
[...]
- 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!
legendary
Activity: 2506
Merit: 1120
March 29, 2017, 06:01:25 PM
#8
...
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.
staff
Activity: 4270
Merit: 1209
I support freedom of choice
March 29, 2017, 05:58:55 PM
#7
Rispondendo ad un post su altro 3d (https://bitcointalksearch.org/topic/m.18370755) 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://bitcointalksearch.org/topic/nano-ex-raiblocks-conferme-istantanee-no-fee-1388839

Fra 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.
legendary
Activity: 3808
Merit: 2044
March 29, 2017, 05:38:21 PM
#6
...
- 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?
legendary
Activity: 2506
Merit: 1120
March 29, 2017, 02:12:05 PM
#5
...
[...]
- 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.
legendary
Activity: 2506
Merit: 1120
March 29, 2017, 02:04:20 PM
#4
...
- 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.
legendary
Activity: 2506
Merit: 1120
March 29, 2017, 01:30:27 PM
#3
Non riesco a quotare meglio ... una domanda alla volta, sorry


Rispondendo ad un post su altro 3d (https://bitcointalksearch.org/topic/m.18370755) 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
...
legendary
Activity: 3808
Merit: 2044
March 29, 2017, 12:17:04 PM
#2
ok grazie,

Rispondendo ad un post su altro 3d (https://bitcointalksearch.org/topic/m.18370755) 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)
legendary
Activity: 2506
Merit: 1120
March 29, 2017, 11:37:04 AM
#1
EDIT 20170331: https://bitcointalksearch.org/topic/m.18405473 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://bitcointalksearch.org/topic/m.18370755) 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.
Jump to: