Pages:
Author

Topic: Mining pow sulle transazioni - page 2. (Read 3624 times)

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.
Pages:
Jump to: