Author

Topic: Scalabilità bitcoin e "troncatura della blockchain" domanda per esperti! (Read 6881 times)

legendary
Activity: 1260
Merit: 1003

Capito! SVP consente quindi di "snellire" la blockchain perdendo la completezza (campo commento) ma mantenendo l'integrità.
Grazie BitNow

Questo è fondamentale per capire la tecnologia Blockchain che sta alla base di Bitcoin.

Se voglio trasferire valore: una Blockchain snella è più che sufficiente.
Se voglio un libro mastro (utilizzare la Blockchain come libro mastro dove registrare informazioni utili: identità, indirizzi, energia, materia, altro...): una Blockchain completa è quello che mi serve.

Quando si parla di Bitcoin si da per scontato che il valore delle transazioni è ciò che ci interessa: questo è limitativo.

Bisogna separare cosa trasferire sulla Blockchain dalla tecnologia Blockchain stessa: la Blockchain è una tecnologia per trasportare cose (valore, informazioni, energia, materia, altro...).

Focalizzarsi sulla Blockchain come tecnologia per trasferire valore è limitativo.

Ethereum fa già questo.

Per qualsiasi dubbio o informazione non si faccia problemi a chiedere.


Cordiali saluti.
newbie
Activity: 13
Merit: 0


Non l'integrità.

Si può concludere che non è possibile in alcun modo "snellire" la blockchain senza intaccare la completezza delle informazioni sulla Blockchain.

L'integrità è riferita ad una cosa (un'informazione, un valore, una materia, altro...), Bitcoin è una tecnologia che permette di trasferire valore.

"Snellendo" la Blockchain (il DB distribuito che sta alla base della tecnologia Bitcoin) è ancora possibile transferire valore, di conseguenza l'integrità è intatta, tuttavia non tutte le informazioni (tipo il campo commento) vengono mantenute se si "snellisce" la Blockchain.

Da questo se ne evince che, in caso di "snellimento" della Blockchain la completezza delle informazioni viene meno mentre l'integrità resta.

Per qualsiasi dubbio o informazione non si faccia problemi a chiedere.


Cordiali saluti.

Capito! SVP consente quindi di "snellire" la blockchain perdendo la completezza (campo commento) ma mantenendo l'integrità.
Grazie BitNow
newbie
Activity: 13
Merit: 0

Comunque io continuo a non capire il problema della dimensione della blockchain

1) adesso c'è un'opzione (pruning) per cui chi vuole può buttare via quasi tutti i blocchi

2) l'unico problema è il sync iniziale, ma appunto si fa una volta sola

3) i problemi più grossi oggi sono legati alla potenza computazionale richiesta per verificare le transazioni, sono legati alla quantità di banda necessaria per scambiarsi i blocchi e le transazioni, sono legati allo spazio occupato in RAM dal database dell'UTXO e dalla mempool, tutti questi fattori incidono in maniera davvero determinante sulle prestazioni di un full node.

Invece 60 GB per conservare i dati cosa saranno mai oggi? Con poche decine di euro ti prendi un hard disk esterno di 2 TB e sei a posto per anni (e inoltre non è più obbligatorio ripeto mantenere copia di tutta la chain per far girare un full node!)

Sicuramente i problemi di cui parli tu sono prioritari.

Il problema della dimensione della blockchain lo vedo in prospettiva futura. Se Bitcoin diventasse un moneta di massa e non di nicchia com'è adesso, le dimensioni dei blocchi dovranno inevitabilmente aumentare, e la  blockchain "ingrasserebbe" ad un ritmo vertiginoso.
A quel punto sempre meno utenti avranno l'ardire di scaricarla tutta, impedendo di fatto la sua diffusione.
legendary
Activity: 1260
Merit: 1003


Spero sia chiaro: dipende dall'obbiettivo che si vuole raggiungere (completezza delle informazioni o meno)




Grazie BitNow, non conoscevo l'esistenza del protocollo SVP.
In ogni caso mi pare si possa concludere che non è possibile in alcun modo "snellire" la blockchain senza intaccare profondamente l'integrità del sistema-bitcoin.



Non l'integrità.

Si può concludere che non è possibile in alcun modo "snellire" la blockchain senza intaccare la completezza delle informazioni sulla Blockchain.

L'integrità è riferita ad una cosa (un'informazione, un valore, una materia, altro...), Bitcoin è una tecnologia che permette di trasferire valore.

"Snellendo" la Blockchain (il DB distribuito che sta alla base della tecnologia Bitcoin) è ancora possibile transferire valore, di conseguenza l'integrità è intatta, tuttavia non tutte le informazioni (tipo il campo commento) vengono mantenute se si "snellisce" la Blockchain.

Da questo se ne evince che, in caso di "snellimento" della Blockchain la completezza delle informazioni viene meno mentre l'integrità resta.

Per qualsiasi dubbio o informazione non si faccia problemi a chiedere.


Cordiali saluti.
newbie
Activity: 13
Merit: 0


La differenza tra un genesis block sintetico e il genesis block della chain attuale è sostanziale.

CUT



Grazie arulbero, sei stato chiarissimo.
newbie
Activity: 13
Merit: 0


Spero sia chiaro: dipende dall'obbiettivo che si vuole raggiungere (completezza delle informazioni o meno)




Grazie BitNow, non conoscevo l'esistenza del protocollo SVP.
In ogni caso mi pare si possa concludere che non è possibile in alcun modo "snellire" la blockchain senza intaccare profondamente l'integrità del sistema-bitcoin.

legendary
Activity: 1915
Merit: 2074
Idea: un eventuale genesis block dovrebbe nascere dalle transazioni contenute nella blockchain fino a quel momento. Ci vorrebbero delle regole per determinare tale blocco calcolando tutte le tarnsazioni, chi non si fida si scarica la catena da zero e lo calcola.
Rimane il problema che le informazioni contenute tipo le colored coin e ethernitywall e simili sarebbero perse da chi parte dal genesis block a meno che non decida di scaricare l'intera chain.

Comunque io continuo a non capire il problema della dimensione della blockchain

1) adesso c'è un'opzione (pruning) per cui chi vuole può buttare via quasi tutti i blocchi

2) l'unico problema è il sync iniziale, ma appunto si fa una volta sola

3) i problemi più grossi oggi sono legati alla potenza computazionale richiesta per verificare le transazioni, sono legati alla quantità di banda necessaria per scambiarsi i blocchi e le transazioni, sono legati allo spazio occupato in RAM dal database dell'UTXO e dalla mempool, tutti questi fattori incidono in maniera davvero determinante sulle prestazioni di un full node.

Invece 60 GB per conservare i dati cosa saranno mai oggi? Con poche decine di euro ti prendi un hard disk esterno di 2 TB e sei a posto per anni (e inoltre non è più obbligatorio ripeto mantenere copia di tutta la chain per far girare un full node!)
legendary
Activity: 2506
Merit: 1120
Idea: un eventuale genesis block dovrebbe nascere dalle transazioni contenute nella blockchain fino a quel momento. Ci vorrebbero delle regole per determinare tale blocco calcolando tutte le tarnsazioni, chi non si fida si scarica la catena da zero e lo calcola.
Rimane il problema che le informazioni contenute tipo le colored coin e ethernitywall e simili sarebbero perse da chi parte dal genesis block a meno che non decida di scaricare l'intera chain.
legendary
Activity: 1915
Merit: 2074
[...] un genesis block sarebbe una soluzione assai più sbrigativa, per chi volesse entrare e provare a tenere un full-node. Scarica solo quello che gli serve e si fida del genesis block.

Del resto, se esistesse un genesis block accettato da tutti coloro che in quel momento si occupano di conservare la blockchain, perché non dovrei fidarmi? Se adesso un nuovo utente volesse entrare e scaricare la blockchain, non si deve già fidare della "bontà " della blockchain stessa?

La risposta alla tua domanda è no, un nuovo utente che adesso deve entrare nella rete non si limita a scaricare la blockchain, quindi non si fida proprio di nessuno!

Il nuovo utente che utilizza Bitcoin Core deve, prima di poter utilizzare i dati della "propria" blockchain per effettuare transazioni o per conoscere semplicemente il bilancio del proprio wallet, compiere le seguenti due operazioni su questi dati:

1) controllare che la propria blockchain sia corretta, cioè che dalla prima transazione del primo blocco all'ultima transazione dell'ultimo blocco siano state rispettate tutte le regole condivise del protocollo bitcoin

2) assicurarsi che la propria blockchain sia tra quelle presenti in rete quella che metta insieme i blocchi che nel loro insieme hanno richiesto più lavoro da parte dei miner per validarli; se il nuovo utente scopre che ci sono altri nodi nella rete che hanno una versione piú "costosa" della blockchain, allora è capitato su una diramazione non valida, è come se a un certo punto avesse sbagliato snodo nell'assemblare la catena e deve quindi provvedere a tornare indietro, cioè deve sostituire alcuni blocchi (per come è concepita la blockchain, una sua riorganizzazione prevede nella pratica solo il cambio degli ultimi blocchi, questo è il motivo per cui nel caso di grosse transazioni si raccomanda di attendere almeno 6 conferme); per non farla troppo lunga la riorganizzazione della blockchain è dovuta al fatto che in un sistema decentralizzato, se due blocchi vengono minati quasi contemporaneamente, l'ordine con cui vengono minati non è subito noto (ad alcuni nodi arriverà prima un blocco, ad altri l'altro); la blockchain ha proprio lo scopo di fissare un ordine temporale al susseguirsi delle transazioni, e riesce a farlo, nonostante i nodi siano dislocati in punti diversi del pianeta, giocando su una temporanea flessibilità della sua parte finale che viene risolta grazie a un discorso probabilistico.


arulbero paragona un simile genesis block ad un estratto conto, cioè ad uno strumento abitualmente usato da tutti, che dopo un certo lasso di tempo si "dimentica" delle vecchie transazioni. Questo non crea "crisi di fiducia" perché le operazioni che hanno portato a quel saldo sono state conosciute e verificate da tutti!

Un genesis block "modificato arbitrariamente" comporterebbe che tutti i full-node fosse d'accordo tra loro per modificare i saldi: ma ciò sarebbe impossibile!
E se fosse possibile, perché non potrebbero già farlo con la blockchain stessa?

La differenza tra un genesis block sintetico e il genesis block della chain attuale è sostanziale.

Quando è stato creato il genesis block 7 anni fa, non c'erano bitcoin. Quel genesis block rappresenta semplicemente un punto da cui partire; sottolineo "punto", nel senso che non aveva "dimensione", cioè in pratica non c'era nulla su cui si poteva imbrogliare. Quel piccolo punto è inserito nel codice di Bitcoin Core e puoi considerarlo a tutti gli effetti come facente parte delle regole del bitcoin.

Creando un nuovo genesis block adesso (a parte che bisognerebbe cambiare alcune regole del protocollo) si otterrebbe al posto di un semplice punto una complessa figura che descrive la distribuzione attuale di 16 milioni di Bitcoin (su 21 milioni).  Non è proprio la stessa cosa.

Facciamo un paragone con la matematica.
In geometria per esempio si parte da un minimo numero di assiomi (regole condivise dalla comunità dei matematici) e poi da lí si costruiscono tutti i teoremi. Se uno cambia anche un solo assioma, si costruisce una geometria diversa (tipo quella non euclidea).

Gli assiomi di Euclide sono come il genesis block di Satoshi (+ le regole del protocollo). Se adesso la comunità dei matematici dicesse: va bene, ormai gli assiomi non ci servono più, nè molte dimostrazioni in cui ormai crediamo, prendiamo solo i risultati dei teoremi più importanti, e partiamo da quelli, decidiamo ad esempio che un certo insieme variegato di teoremi come quello di Pitagora (o anche teorema più evoluti) sono la nostra nuova base di partenza, e facciamo il pruning delle dimostrazioni (che sono il collegamento logico fra assiomi e risultati dei teoremi attuali), mi pare che avremmo perso moltissimo. O no?
legendary
Activity: 1260
Merit: 1003

Certo che, come dice picchio, un genesis block sarebbe una soluzione assai più sbrigativa, per chi volesse entrare e provare a tenere un full-node. Scarica solo quello che gli serve e si fida del genesis block.


Questo è SPV!

Un conto è tenere tutte le informazioni per se (campo commento delle transazioni).

Un  conto è verificare solo le transazioni (campo ammontare delle transazioni).

Se vuoi verificare solo le transazioni (quantità di bitcoin scambiati) fidarsi di altri blocchi va bene: protocollo SPV
Link: https://en.bitcoin.it/wiki/Thin_Client_Security

Se si vogliono tutte le informazion (quantià e campo commento) fidarsi degli altri blocchi non và più bene perchè ci danno solo le quantità (nel protocollo SPV).

Spero sia chiaro: dipende dall'obbiettivo che si vuole raggiungere (completezza delle informazioni o meno)


Non puoi ridurre la dimensione della Blockchain mantenedo la completezza delle informazioni.

Puoi ridurre la dimensione mantenendo inalterata la sicurezza (no double-spending), ma non puoi ridurre la dimensione e mantere la completezza (tutte le informazioni).

Il processo di riduzione della blockchain si chiama SPV (Simplified Protocol Verification - protocollo di semplificazione delle verifiche, BitcoinJ è basata su questo protocollo).
https://en.bitcoin.it/wiki/Thin_Client_Security

Sicurezza della Blockchain e Completezza delle informazioni sono due obbiettivi diversi.



Cordiali saluti.
newbie
Activity: 13
Merit: 0
Ringrazio alrubero per la minuziosa descrizione del pruning, di cui non conoscevo l'esistenza. Mi pare sia già un gran bel passo avanti!

Certo che, come dice picchio, un genesis block sarebbe una soluzione assai più sbrigativa, per chi volesse entrare e provare a tenere un full-node. Scarica solo quello che gli serve e si fida del genesis block.

Del resto, se esistesse un genesis block accettato da tutti coloro che in quel momento si occupano di conservare la blockchain, perché non dovrei fidarmi? Se adesso un nuovo utente volesse entrare e scaricare la blockchain, non si deve già fidare della "bontà " della blockchain stessa?

Un genesis block generato periodicamente da un programma che tutti possono verificare, non perderebbe, a mio avviso, di autorità. E sicuramente, per quanto pesante, sarebbe assai più leggero dei blocchi obosleti che sostituirebbe, essendo per sua natura un saldo e quindi una sintesi.


arulbero paragona un simile genesis block ad un estratto conto, cioè ad uno strumento abitualmente usato da tutti, che dopo un certo lasso di tempo si "dimentica" delle vecchie transazioni. Questo non crea "crisi di fiducia" perché le operazioni che hanno portato a quel saldo sono state conosciute e verificate da tutti!

Un genesis block "modificato arbitrariamente" comporterebbe che tutti i full-node fossero d'accordo tra loro per modificare i saldi: ma ciò sarebbe impossibile!
E se fosse possibile, perché non potrebbero già farlo con la blockchain stessa?

Lo so, sono un gatto attaccato agli zebedei...chiedo scusa! Grin
newbie
Activity: 13
Merit: 0


Un bitcoin è una chiave privata che identifica una transazione: se non ho memoria che quella transazione sia mai avvenuta posso ricreare quella transazione, perchè nessun nodo si ricorda della sua esistenza, di fatto spendendo gli stessi bitcoin 2 volte (da qui la definizione di "double-spend").

Per questo motivo non è possibile troncare la Blockchain.

Per qualsiasi dubbio o informazione non si faccia problemi a chiedere.


Cordiali saluti.


Grazie per la sua risposta.

Secondo lei un genesis-block tipo quello ipotizzato da "picchio", con tutti i saldi aggiornati ad una certa data ecc, esporrebbe la rete bitcoin ad attacchi di doppia spesa?

Buonasera
legendary
Activity: 1915
Merit: 2074
Consideriamo il funzionamento del pruning attuale:

Quote
Wallet: Pruning

With 0.12 it is possible to use wallet functionality in pruned mode. This can reduce the disk usage from currently around 60 GB to around 2 GB.

However, rescans as well as the RPCs importwallet, importaddress, importprivkey are disabled.

To enable block pruning set prune= on the command line or in bitcoin.conf, where N is the number of MiB to allot for raw block & undo data.

A value of 0 disables pruning. The minimal value above 0 is 550. Your wallet is as secure with high values as it is with low ones. Higher values merely ensure that your node will not shut down upon blockchain reorganizations of more than 2 days - which are unlikely to happen in practice. In future releases, a higher value may also help the network as a whole: stored blocks could be served to other nodes.

Una funzionalità che si perde con il pruning è quindi la possibilità di importare delle chiavi private nel nostro wallet.

Osservazione:

in un wallet odierno non compare solo il bilancio (che può - o è già così? Huh - essere ricavato immagino anche direttamente dal database degli UTXO) ma in esso compare anche la storia di tutte le transazioni in entrata e in uscita che hanno interessato i suoi indirizzi. Nel momento in cui si importa una chiave privata, il wallet deve rifare la scansione di tutti i blocchi per ricostruire la storia delle transazioni riguardanti il nuovo indirizzo importato, e chiaramente in caso di pruning questa operazione non è più possibile.

Qualora si operasse un pruning definitivo come quello di cui si sta discutendo in questo thread, perderemmo quindi la storia delle nostre transazioni, almeno di tutte quelle avvenute prima del taglio, pur conservando in maniera corretta il bilancio.
Sarebbe un po' come succede adesso con gli estratti conto, dopo un certo lasso di tempo non è più possibile conoscere lo storico dei movimenti effettuati sul conto, ma almeno siamo sicuri che il bilancio attuale tiene conto di tutte le entrate e le uscite passate, anche quelle ormai dimenticate.
legendary
Activity: 1260
Merit: 1003
Qui c'è un interessante articolo sul segregated witness che è l'argomento che si sta discutendo di più in questo periodo:
https://news.bitcoin.com/segregated-witness-concept-turning-point-bitcoin/

Tradurrei l'articolo sul mio blog ma sono troppo occupato con lo sviluppo al momento.

Il concetto Sicurezza della Blockchain e Completezza delle informazioni sono due obbiettivi diversi è centrale nello Segregated Witness.


Cordiali saluti.
legendary
Activity: 1260
Merit: 1003
Forse si puo' salvare capra e cavoli creando un superblocco che contiene tutte le transazioni con i timestamp al solo fine di avere un punto di partenza, la "vecchia" chani si potrebbe mettere a disposizione per chi vuole controllare in un servizio tipo ipfs che dovrebbe conservare i files ... credo che anche i client faranno meno fatica se possono partire dallo stesso punto per verificare una transazione, poi ogni x blocchi si ricrea il mega blocco e si riparte considerando archiviato il periodo precedente.
Rimane il fatto che non puoi dirottare un treno come BTC in corsa e questo è al tempo stesso la sua forza e la sua debolezza ...

EDIT: mi sa che il superblocco sarebbe grande quanto la chain ...


Ma a questo punto tanto vale lasciare le cose come sono, se uno non vuole sprecare spazio utilizza l'opzione di pruning; con il tempo sai quanti superblocchi e quindi nuovi (e arbitrari) punti di partenza bisognerebbe introdurre; mi sembrano più gli svantaggi che i vantaggi.

Non puoi ridurre la dimensione della Blockchain mantenedo la completezza delle informazioni.

Puoi ridurre la dimensione mantenendo inalterata la sicurezza (no double-spending), ma non puoi ridurre la dimensione e mantere la completezza (tutte le informazioni).

Il processo di riduzione della blockchain si chiama SPV (Simplified Protocol Verification - protocollo di semplificazione delle verifiche, BitcoinJ è basata su questo protocollo).
https://en.bitcoin.it/wiki/Thin_Client_Security

Sicurezza della Blockchain e Completezza delle informazioni sono due obbiettivi diversi.

Per qualsiasi dubbio o informazione non si faccia problemi a chiedere.


Cordiali saluti.

legendary
Activity: 1915
Merit: 2074
Forse si puo' salvare capra e cavoli creando un superblocco che contiene tutte le transazioni con i timestamp al solo fine di avere un punto di partenza, la "vecchia" chani si potrebbe mettere a disposizione per chi vuole controllare in un servizio tipo ipfs che dovrebbe conservare i files ... credo che anche i client faranno meno fatica se possono partire dallo stesso punto per verificare una transazione, poi ogni x blocchi si ricrea il mega blocco e si riparte considerando archiviato il periodo precedente.
Rimane il fatto che non puoi dirottare un treno come BTC in corsa e questo è al tempo stesso la sua forza e la sua debolezza ...

EDIT: mi sa che il superblocco sarebbe grande quanto la chain ...


Ma a questo punto tanto vale lasciare le cose come sono, se uno non vuole sprecare spazio utilizza l'opzione di pruning; con il tempo sai quanti superblocchi e quindi nuovi (e arbitrari) punti di partenza bisognerebbe introdurre; mi sembrano più gli svantaggi che i vantaggi.
legendary
Activity: 1260
Merit: 1003

Non era una gara, ho semplicemente dato una mia risposta a un newbie che chiedeva informazioni (penso sia meglio ricevere 2 risposte che una sola  Wink)

...omissis...


La sua risposta aveva senso: il pruning è qualcosa che snellisce la blockchain lasciandone inalterate le propietà di completezza.

L'utente absolute beginner poteva essere anche lo stesso utente picchio che si fa le domande e si da le risposte da solo per indirizzare la discussione dove meglio ha agibilità.

"La solitudine è una brutta bestia!"

La mia domanda:

Facciamo a gara a chi ce l'ha più grosso?!?


Era d'obbligo.

Continuate la discussione le informazioni gratuite sono sempre utili.

"W il software Open-Source!"


Cordiali saluti.
legendary
Activity: 2506
Merit: 1120
Forse si puo' salvare capra e cavoli creando un superblocco che contiene tutte le transazioni con i timestamp al solo fine di avere un punto di partenza, la "vecchia" chani si potrebbe mettere a disposizione per chi vuole controllare in un servizio tipo ipfs che dovrebbe conservare i files ... credo che anche i client faranno meno fatica se possono partire dallo stesso punto per verificare una transazione, poi ogni x blocchi si ricrea il mega blocco e si riparte considerando archiviato il periodo precedente.
Rimane il fatto che non puoi dirottare un treno come BTC in corsa e questo è al tempo stesso la sua forza e la sua debolezza ...

EDIT: mi sa che il superblocco sarebbe grande quanto la chain ...
legendary
Activity: 1915
Merit: 2074
In pratica ha detto quello che ho detto io ma in 2 punti anzichè 1.


Se tronco la Blockchain di Bitcoin posso spendere i bitcoin che non sono più visibili.

Questa operazione si chiama "double-spend".
https://bitcoin.org/en/glossary/double-spend

...omissis...

Per essere una moneta bitcoin ha bisogno di non essere passibile di double spend.


Facciamo a gara a chi ce l'ha più grosso?!?

Cordiali saluti.

Non era una gara, ho semplicemente dato una mia risposta a un newbie che chiedeva informazioni (penso sia meglio ricevere 2 risposte che una sola  Wink)

Nella mia risposta non ho parlato di double spending. Io non penso che la troncatura della blockchain possa portare alla double spending (che di fatto è possibile sempre solo in casi particolari e su tempi brevissimi, di solito le double spending sono a 0 conferme, è impossibile ingannare la rete costruendo un ramo alternativo della chain a meno che non si abbia il 51% di capacità computazionale).

Altra considerazione, è possibile sicuramente operare un taglio "sensato" della chain; la domanda del nuovo utente sul senso di mantenere informazioni vecchie e obsolete era dal mio punto di vista molto ben posta, e in fondo aveva quasi ragione, almeno dal mio punto di vista: se si raccogliessero tutte le informazioni aggiornate al blocco 100000 per esempio (incluso il database degli UTXO) e si troncasse lì la chain, partendo da un unico nuovo grande genesis block come suggeriva l'utente picchio qualche post fa, non sarebbe affatto possibile la double spending; di fatto ci troveremmo all'incirca nella stessa situazione di adesso; questo però non si fa perchè bisognerebbe cambiare le regole, e abbiamo visto anche di recente com'è difficile introdurre delle modifiche in corsa in un meccanismo delicato che ormai è avviato (e meno si tocca meglio è).

Ovvio che se invece si operasse un taglio della chain senza contromisura alcuna, allora sorgerebbero molti problemi, ma non certo di double spending, al contrario molti bitcoin semplicemente sparirebbero e non potrebbero essere più spesi dai loro proprietari (non puoi spendere dei bitcoin - o meglio degli UTXO - di cui la rete ha perso traccia).

Cos'è che non va allora in generale nel taglio della chain?

Secondo me, e ripeto la mia risposta, in ogni tipologia di pruning definitivo (anche quello "sensato" temperato mediante l'introduzione ad esempio di un nuovo grande blocco di partenza che facesse la sintesi della storia passata), coloro che entreranno nel mondo bitcoin dopo il taglio dovrebbero dare per scontato una serie di informazioni, fidandosi di altri che hanno avuto invece la possibilità di verificare queste informazioni in prima persona. Si dovrebbero confrontare nel migliore dei casi solo con una sintesi, non avrebbero più la possibilità di verificare che quel nuovo (e per certi aspetti arbitrario) punto di partenza sia stato correttamente impostato secondo le regole di base del protocollo (e non mi pare poco). Quindi invece di avere un unico solidissimo genesis block su cui si fonda tutto l'impianto, ne avremmo al suo posto uno nuovo un po' più debole; dopo x blocchi probabilmente si provvederebbe a rimpiazzare un'altra volta il nuovo punto di partenza con uno più recente (la sintesi della sintesi), creando in questo modo una successione di punti di partenza sempre più deboli, dove il senso della storia originale rischia di andare perduto e con esso la fondatezza e l'autorevolezza delle certificazioni operate dalla blockchain (un notaio che certifica in base al sentito dire e non controlla in prima persona non fornisce una grande garanzia).

Anche adesso è possibile utilizzare un full node con pruning attivato, ma non si tratta di un pruning definitivo, un conto è scaricare e controllare tutta la blockchain e poi eliminarne una parte dal proprio hard disk (sapendo che in caso di necessità sarà sempre possibile riscaricarla dal primo blocco), un altro è non averla mai potuta scaricare e verificare.
legendary
Activity: 1260
Merit: 1003
Buonasera a tutti,

scusate se mi intrometto in questa discussione molto tecnica e assai interessante.
Sono nuovo del forum...non credo che a nessuno interessi il mio nome proprio, quindi mi presento con il mio nick: Absolute Beginner. Dal nick avete già capito che sono ignorante come una bestia, quindi vi chiedo di perdonare eventuali strafalcioni.

Ho riflettuto molto sulla natura della blockchain e vorrei chiedere a voi esperti, tornando all'argomento principale del thread: è possibile cancellare dalla blockchain le informazioni ormai obsolete?

La blockchain serve a tenere traccia delle transazioni, giusto? Ma a cosa serve sapere che un determinato bitcoin è appartenuto al signor Mario Rossi se nel frattempo sono passati anni, il bitcoin in questione ha cambiato decine di proprietari e Mario Rossi possiede un saldo pari a zero su quello specifico indirizzo?

La mia logica mi spinge a credere che basterebbe un programmino, distribuito a tutti i nodi, che con una precisa cadenza (ad esempio annuale), analizzi tutti i blocchi più vecchi di una certa data eliminando tutti i "rami secchi", transazioni antiche che hanno lasciato indirizzi con saldo pari a zero, magari seppellite da decine di transazioni successive. Automaticamente tutte le blockchain del mondo verrebbero alleggerite restando comunque tutte perfettamente uguali, conservando solo le informazioni attualmente utili.

Dove sbaglio?

La possibilità di tagliare i blocchi molto vecchi della blockchain c'è già dalla versione 0.11.0 di Bitcoin Core (opzione pruning).

Il problema di base però è:  quando un nuovo peer si collega alla rete, come fa a conoscere la distribuzione attuale dei bitcoin? (ovvero: quali sono gli indirizzi a saldo diverso da zero? dove sono allocati i bitcoin prodotti finora? esplicitamente questo non c'è scritto da nessuna parte!)

Il concetto che sta alla base di questo sistema è che ciascuno deve essere messo nella condizione di poter verificare di persona la validità dei pagamenti che riceve, e se io voglio verificare la validità di un pagamento che ricevo adesso devo sapere se l'indirizzo che mi ha inviato i btc possedeva effettivamente quei btc al momento dell'invio.  

Per fare questa verifica in modo sicuro ho un solo modo: almeno una volta nella vita devo scaricare tutta la blockchain, ricostruendo sin dal primo blocco la storia dei passaggi di proprietà di tutti i btc. In tal modo potrò ricostruire la distribuzione attuale dei saldi degli indirizzi (ho un po' semplificato); se invece non faccio la ricostruzione personalmente dovrò fidarmi della ricostruzione fatta da qualcun altro (e questo è un male, soprattutto se lo fanno tantissime persone).

Con l'opzione pruning, man mano che arrivano nuovi blocchi posso eliminare dal mio hard disk i blocchi più vecchi per risparmiare spazio; questo è possibile dal momento che mi tengo (oltre ai blocchi delle transazioni) sempre un database, che mi sono costruito e aggiorno dinamicamente, in cui registro la distribuzione dei saldi diversi da 0 degli indirizzi (tecnicamente si chiama UTXO, insieme degli output non spesi delle transazioni).

Quindi per rispondere alla tua domanda, è possibile eliminare i blocchi molto vecchi ma:

1) solo dopo aver almeno una volta scaricato tutti i blocchi, a partire dal numero 1, in modo da poter conoscere con sicurezza dove stanno tutti i saldi diversi da 0

2) se tutti attivassero l'opzione pruning, quando un nuovo nodo entra nella rete (oppure a un vecchio nodo si rompe l'hard disk) come fa questo a controllare tutta la blockchain? Da chi scarica i blocchi più vecchi se tutti li hanno eliminati dal loro pc? Ricorda che tutti devono essere messi nella condizione di poter verificare in maniera autonoma la validità dei pagamenti ricostruendo la distribuzione dei saldi (per conoscere la quale bisogna studiare tutta la storia passata delle transazioni).

Il sistema Bitcoin è un sistema "trustless", ovvero non c'è bisogno di fiducia (è affidabile proprio perchè ciascuno può non fidarsi degli altri e fare da sè il lavoro di controllo e verifica delle transazioni e dei blocchi). Quindi non è possibile tagliare i blocchi più vecchi in modo definitivo, sarebbe come dire che tutti quelli che non hanno avuto l'opportunità di controllare la blockchain in passato non ce l'avranno mai più e dovranno fidarsi almeno un po' di chi invece ha potuto effettuare questo controllo in prima persona.

In pratica ha detto quello che ho detto io ma in 2 punti anzichè 1.


Se tronco la Blockchain di Bitcoin posso spendere i bitcoin che non sono più visibili.

Questa operazione si chiama "double-spend".
https://bitcoin.org/en/glossary/double-spend

...omissis...

Per essere una moneta bitcoin ha bisogno di non essere passibile di double spend.


Facciamo a gara a chi ce l'ha più grosso?!?


Cordiali saluti.
legendary
Activity: 2506
Merit: 1120
Ma non si diceva che uno degli aspetti più interessanti della blockchain era anche la possibilità di registrare "per sempre" delle informazioni?
 
Eh, in effetti, non ci avevo pensato ... la moglie ubriaca e la botte piena è chiedere troppo ...
legendary
Activity: 1915
Merit: 2074
...
 è possibile cancellare dalla blockchain le informazioni ormai obsolete?
...
A "naso" direi che si potrebbe generare un nuovo genesis block che contiene tutti i saldi degli indirizzi attivi e forzare i client ad accettare tale blocco come nuovo genesis e quindi ripartire con una chain nuova.
Non so però quanto potrebbe essere grosso questo blocco e non credo sia previsto dal protocollo quindi ci vorrebbe un bel fork.
Credo che ethereal abbia fatto una cosa simile allo start-up ... ma probabilmente erano molti meno gli indirizzi attivi.
Forse gbianchi e' in grado di stimare la dimensione di un tale blocco.

Al momento l'UTXO è sopra 1 GB  --> http://statoshi.info/dashboard/db/unspent-transaction-output-set

e a occhio dovrebbe contenere le informazioni minime necessarie per conoscere lo stato attuale della distribuzione dei saldi diversi da 0.
Ma non si diceva che uno degli aspetti più interessanti della blockchain era anche la possibilità di registrare "per sempre" delle informazioni?
Un conto è consentire il pruning, un altro è forzare tutti a tagliare.

 
legendary
Activity: 2506
Merit: 1120
...
 è possibile cancellare dalla blockchain le informazioni ormai obsolete?
...
A "naso" direi che si potrebbe generare un nuovo genesis block che contiene tutti i saldi degli indirizzi attivi e forzare i client ad accettare tale blocco come nuovo genesis e quindi ripartire con una chain nuova.
Non so però quanto potrebbe essere grosso questo blocco e non credo sia previsto dal protocollo quindi ci vorrebbe un bel fork.
Credo che ethereal abbia fatto una cosa simile allo start-up ... ma probabilmente erano molti meno gli indirizzi attivi.
Forse gbianchi e' in grado di stimare la dimensione di un tale blocco.
legendary
Activity: 1915
Merit: 2074
Buonasera a tutti,

scusate se mi intrometto in questa discussione molto tecnica e assai interessante.
Sono nuovo del forum...non credo che a nessuno interessi il mio nome proprio, quindi mi presento con il mio nick: Absolute Beginner. Dal nick avete già capito che sono ignorante come una bestia, quindi vi chiedo di perdonare eventuali strafalcioni.

Ho riflettuto molto sulla natura della blockchain e vorrei chiedere a voi esperti, tornando all'argomento principale del thread: è possibile cancellare dalla blockchain le informazioni ormai obsolete?

La blockchain serve a tenere traccia delle transazioni, giusto? Ma a cosa serve sapere che un determinato bitcoin è appartenuto al signor Mario Rossi se nel frattempo sono passati anni, il bitcoin in questione ha cambiato decine di proprietari e Mario Rossi possiede un saldo pari a zero su quello specifico indirizzo?

La mia logica mi spinge a credere che basterebbe un programmino, distribuito a tutti i nodi, che con una precisa cadenza (ad esempio annuale), analizzi tutti i blocchi più vecchi di una certa data eliminando tutti i "rami secchi", transazioni antiche che hanno lasciato indirizzi con saldo pari a zero, magari seppellite da decine di transazioni successive. Automaticamente tutte le blockchain del mondo verrebbero alleggerite restando comunque tutte perfettamente uguali, conservando solo le informazioni attualmente utili.

Dove sbaglio?

La possibilità di tagliare i blocchi molto vecchi della blockchain c'è già dalla versione 0.11.0 di Bitcoin Core (opzione pruning).

Il problema di base però è:  quando un nuovo peer si collega alla rete, come fa a conoscere la distribuzione attuale dei bitcoin? (ovvero: quali sono gli indirizzi a saldo diverso da zero? dove sono allocati i bitcoin prodotti finora? esplicitamente questo non c'è scritto da nessuna parte!)

Il concetto che sta alla base di questo sistema è che ciascuno deve essere messo nella condizione di poter verificare di persona la validità dei pagamenti che riceve, e se io voglio verificare la validità di un pagamento che ricevo adesso devo sapere se l'indirizzo che mi ha inviato i btc possedeva effettivamente quei btc al momento dell'invio.  

Per fare questa verifica in modo sicuro ho un solo modo: almeno una volta nella vita devo scaricare tutta la blockchain, ricostruendo sin dal primo blocco la storia dei passaggi di proprietà di tutti i btc. In tal modo potrò ricostruire la distribuzione attuale dei saldi degli indirizzi (ho un po' semplificato); se invece non faccio la ricostruzione personalmente dovrò fidarmi della ricostruzione fatta da qualcun altro (e questo è un male, soprattutto se lo fanno tantissime persone).

Con l'opzione pruning, man mano che arrivano nuovi blocchi posso eliminare dal mio hard disk i blocchi più vecchi per risparmiare spazio; questo è possibile dal momento che mi tengo (oltre ai blocchi delle transazioni) sempre un database, che mi sono costruito e aggiorno dinamicamente, in cui registro la distribuzione dei saldi diversi da 0 degli indirizzi (tecnicamente si chiama UTXO, insieme degli output non spesi delle transazioni).

Quindi per rispondere alla tua domanda, è possibile eliminare i blocchi molto vecchi ma:

1) solo dopo aver almeno una volta scaricato tutti i blocchi, a partire dal numero 1, in modo da poter conoscere con sicurezza dove stanno tutti i saldi diversi da 0

2) se tutti attivassero l'opzione pruning, quando un nuovo nodo entra nella rete (oppure a un vecchio nodo si rompe l'hard disk) come fa questo a controllare tutta la blockchain? Da chi scarica i blocchi più vecchi se tutti li hanno eliminati dal loro pc? Ricorda che tutti devono essere messi nella condizione di poter verificare in maniera autonoma la validità dei pagamenti ricostruendo la distribuzione dei saldi (per conoscere la quale bisogna studiare tutta la storia passata delle transazioni).

Il sistema Bitcoin è un sistema "trustless", ovvero non c'è bisogno di fiducia (è affidabile proprio perchè ciascuno può non fidarsi degli altri e fare da sè il lavoro di controllo e verifica delle transazioni e dei blocchi). Quindi non è possibile tagliare i blocchi più vecchi in modo definitivo, sarebbe come dire che tutti quelli che non hanno avuto l'opportunità di controllare la blockchain in passato non ce l'avranno mai più e dovranno fidarsi almeno un po' di chi invece ha potuto effettuare questo controllo in prima persona.
legendary
Activity: 1260
Merit: 1003
Buonasera a tutti,

scusate se mi intrometto in questa discussione molto tecnica e assai interessante.
Sono nuovo del forum...non credo che a nessuno interessi il mio nome proprio, quindi mi presento con il mio nick: Absolute Beginner. Dal nick avete già capito che sono ignorante come una bestia, quindi vi chiedo di perdonare eventuali strafalcioni.

Ho riflettuto molto sulla natura della blockchain e vorrei chiedere a voi esperti, tornando all'argomento principale del thread: è possibile cancellare dalla blockchain le informazioni ormai obsolete?

La blockchain serve a tenere traccia delle transazioni, giusto? Ma a cosa serve sapere che un determinato bitcoin è appartenuto al signor Mario Rossi se nel frattempo sono passati anni, il bitcoin in questione ha cambiato decine di proprietari e Mario Rossi possiede un saldo pari a zero su quello specifico indirizzo?

La mia logica mi spinge a credere che basterebbe un programmino, distribuito a tutti i nodi, che con una precisa cadenza (ad esempio annuale), analizzi tutti i blocchi più vecchi di una certa data eliminando tutti i "rami secchi", transazioni antiche che hanno lasciato indirizzi con saldo pari a zero, magari seppellite da decine di transazioni successive. Automaticamente tutte le blockchain del mondo verrebbero alleggerite restando comunque tutte perfettamente uguali, conservando solo le informazioni attualmente utili.

Dove sbaglio?

A.B.

PS: Lo so che Bitcoin ha ben altri problemi che le dimensioni della blockchain, ma anche una blockchain che "ingrassa" all'infinito non credo sia totalmente irrilevante.

Quotando me stesso:

Se tronco la Blockchain di Bitcoin posso spendere i bitcoin che non sono più visibili.

Questa operazione si chiama "double-spend".
https://bitcoin.org/en/glossary/double-spend

...omissis...

Per essere una moneta bitcoin ha bisogno di non essere passibile di double spend.


Un bitcoin è una chiave privata che identifica una transazione: se non ho memoria che quella transazione sia mai avvenuta posso ricreare quella transazione, perchè nessun nodo si ricorda della sua esistenza, di fatto spendendo gli stessi bitcoin 2 volte (da qui la definizione di "double-spend").

Per questo motivo non è possibile troncare la Blockchain.

Per qualsiasi dubbio o informazione non si faccia problemi a chiedere.


Cordiali saluti.
newbie
Activity: 13
Merit: 0
Buonasera a tutti,

scusate se mi intrometto in questa discussione molto tecnica e assai interessante.
Sono nuovo del forum...non credo che a nessuno interessi il mio nome proprio, quindi mi presento con il mio nick: Absolute Beginner. Dal nick avete già capito che sono ignorante come una bestia, quindi vi chiedo di perdonare eventuali strafalcioni.

Ho riflettuto molto sulla natura della blockchain e vorrei chiedere a voi esperti, tornando all'argomento principale del thread: è possibile cancellare dalla blockchain le informazioni ormai obsolete?

La blockchain serve a tenere traccia delle transazioni, giusto? Ma a cosa serve sapere che un determinato bitcoin è appartenuto al signor Mario Rossi se nel frattempo sono passati anni, il bitcoin in questione ha cambiato decine di proprietari e Mario Rossi possiede un saldo pari a zero su quello specifico indirizzo?

La mia logica mi spinge a credere che basterebbe un programmino, distribuito a tutti i nodi, che con una precisa cadenza (ad esempio annuale), analizzi tutti i blocchi più vecchi di una certa data eliminando tutti i "rami secchi", transazioni antiche che hanno lasciato indirizzi con saldo pari a zero, magari seppellite da decine di transazioni successive. Automaticamente tutte le blockchain del mondo verrebbero alleggerite restando comunque tutte perfettamente uguali, conservando solo le informazioni attualmente utili.

Dove sbaglio?

A.B.

PS: Lo so che Bitcoin ha ben altri problemi che le dimensioni della blockchain, ma anche una blockchain che "ingrassa" all'infinito non credo sia totalmente irrilevante.
legendary
Activity: 1915
Merit: 2074
Lasciare invece così com'è e far decidere ai singoli se tenere un full node oppure utilizzare la funzione "pruned" (che già si può fare)?

Sicuramente meglio "pruned" che niente!

Alla funzione di propagazione delle transazioni non avevo pensato ma non mi pare aumenti la sicurezza, piuttosto l'usabilità e le funzionalità migliorano ma la sicurezza dipende ancora solo dal miner (almeno per come lo interpreto, spero di ricredermi), in ogni caso con miner intendo un full node che plasma le transazioni non un miner "stupido" che fa solo sha. Quindi preferirei una rete con 1000 miner e 20 full node che 20 miner e basta ... 20 miner sarebbe tutto in mano a questi 20 figuri. Da paura!
Altro ruolo indispensabile dei full node e' sicuramente la diffusione dei blocchi p2p che è importante sia per chi entra o e' rimasto indietro che per chi deve dare dei servizi ma di nuovo non riesco a vedere l'aumento della sicurezza e la determinazione della storia ... come nella realtà la storia la fa chi vince gli altri son fork sterili.

La sicurezza del sistema si basa sul fatto che le transazioni che arrivano ai miner e i blocchi successivamente formati a partire da essi e reimmessi nella rete siano controllati, verificati e accettati dal maggior numero di full node possibili.

Se ci fossero anche solo 20 miner (e ti dirò che se hai letto l'articolo di Mike Hearn probabilmente siamo già in una situazione del genere) ma oltre ad essi ci fossero diverse migliaia di full node, nessun miner potrebbe imbrogliare, poichè la stragrande maggioranza della rete, avendo tutta la blockchain a disposizione, bloccherebbe sul nascere qualsiasi tentativo di double spending o qualunque altra violazione del protocollo bitcoin.

In una rete a forte prevalenza di full node il "potere" è concentrato nei nodi a scapito dei minatori, a riguardo ecco un articolo di HostFat  http://www.rischiocalcolato.it/2015/07/bitcoin-oirgini-crisi-transazioni.html :

Quote
Le regole del network sono imposte dai nodi, che hanno costi inferiori a quelli dei minatori. Il costo di installazione e gestione dei nodi è proporzionale all’uso che ha il mercato, se il mercato è piccolo, il costo di gestione di questi singoli nodi sarà ancora più basso, viceversa se il mercato si amplia indefinitivamente, può andare ad alzarsi.

Il minatore, che deve sottostare alle regole dei nodi, è un “umile” (ormai si fa per dire) servitore, che rispetta queste regole e in base ad esse emette il blocco, puntando sul fatto che tale venga accettato dalla totalità del network, o comunque da quella maggioranza del network che “da valore ai bitcoin che è andato a creare”.

E’ l’ultima ruota del carro, il suo potere decisionale è molto limitato, ed è del tutto focalizzato nel accontentare il volere del mercato, del cliente … visto che tale è ciò che va a dare valore al premio che riceve.
legendary
Activity: 1250
Merit: 1004
pool.sexy
Lasciare invece così com'è e far decidere ai singoli se tenere un full node oppure utilizzare la funzione "pruned" (che già si può fare)?
legendary
Activity: 2506
Merit: 1120
... mi pare strano che ci sia ancora qualche miner casalingo che fa un lavoro significativo.

Un full node che osserva il traffico mi pare inutile ai fini della sicurezza ... servono se ci fai dei servizi sopra e hai bisogno di conoscere le transazioni.

Non sono d'accordo. Sono i full node che filtrano le transazioni, le propagano fino ai miner e che in seguito controllano i blocchi e li propagano determinando quindi la blockchain. Chiaro che il lavoro dei miner è indispensabile, ma meno sono i full node, meno sicura è la rete.
Un sistema con 10 grossi miner e 5000 full node sarebbe sempre più sicuro di un sistema con 1000 miner e 20 full node.
Alla funzione di propagazione delle transazioni non avevo pensato ma non mi pare aumenti la sicurezza, piuttosto l'usabilità e le funzionalità migliorano ma la sicurezza dipende ancora solo dal miner (almeno per come lo interpreto, spero di ricredermi), in ogni caso con miner intendo un full node che plasma le transazioni non un miner "stupido" che fa solo sha. Quindi preferirei una rete con 1000 miner e 20 full node che 20 miner e basta ... 20 miner sarebbe tutto in mano a questi 20 figuri. Da paura!
Altro ruolo indispensabile dei full node e' sicuramente la diffusione dei blocchi p2p che è importante sia per chi entra o e' rimasto indietro che per chi deve dare dei servizi ma di nuovo non riesco a vedere l'aumento della sicurezza e la determinazione della storia ... come nella realtà la storia la fa chi vince gli altri son fork sterili.
legendary
Activity: 1915
Merit: 2074
... mi pare strano che ci sia ancora qualche miner casalingo che fa un lavoro significativo.

Un full node che osserva il traffico mi pare inutile ai fini della sicurezza ... servono se ci fai dei servizi sopra e hai bisogno di conoscere le transazioni.

Non sono d'accordo. Sono i full node che filtrano le transazioni, le propagano fino ai miner e che in seguito controllano i blocchi e li propagano determinando quindi la blockchain. Chiaro che il lavoro dei miner è indispensabile, ma meno sono i full node, meno sicura è la rete.
Un sistema con 10 grossi miner e 5000 full node sarebbe sempre più sicuro di un sistema con 1000 miner e 20 full node.
legendary
Activity: 2506
Merit: 1120
...

Inoltre chi comanda sono i miner e non hanno interesse a venire estromessi.
Pensavo che a comandare fossero i full node, non i miner. Sono loro alla fine che "animano" la rete, facendovi circolare le transazioni corrette e riconoscendo o meno la validità dei vari blocchi (e stabilendo qual è la blockchain corretta).


Diciamo che sono le mining pool, non seguo l'andamento ma a pensarci mi pare strano che ci sia ancora qualche miner casalingo che fa un lavoro significativo. Mi immagino qualche "edificio" con svariati miner ...

Se vengono spenti ci lasciano a difficoltà abissali che per tornare a minare 10 minuti ci vorranno anni ... e poi saremmo a rischio di attacco double spending.
Consola il fatto che nessuno puo' impedire a qualcuno di iniziare a minare. ...
Un full node che osserva il traffico mi pare inutile ai fini della sicurezza ... servono se ci fai dei servizi sopra e hai bisogno di conoscere le transazioni.
legendary
Activity: 1915
Merit: 2074
Da qualche parte ho letto che bitcoin ha la pow e se si cambia non si chiamano piu' bitcoin... ossia bitcoin2 o altro. Se non si riesce a modificare per accettare blocchi piu' grossi dubito si riesca a fare una modifica cosi' sostanziale.
...
Nel bene e nel male mi sa che è una strada difficilmente percorribile a meno di un fork della chain.

Sì, ovviamente si tratterebbe di un hard fork (retrocompatibile con il passato, basta porre pesoA = 1 e pesoB = 0 per i blocchi vecchi)


Inoltre chi comanda sono i miner e non hanno interesse a venire estromessi.
Pensavo che a comandare fossero i full node, non i miner. Sono loro alla fine che "animano" la rete, facendovi circolare le transazioni corrette e riconoscendo o meno la validità dei vari blocchi (e stabilendo qual è la blockchain corretta).

legendary
Activity: 2506
Merit: 1120
Mi è tornata in mente questa discussione
https://bitcointalksearch.org/topic/m.10783703
con picchio su come modificare il mining per rendere il sistema più decentralizzato.

L'idea di base è quella di affiancare alla soglia A classica sotto la quale deve stare l'hash del blocco da minare un'altra soglia B legata ai singoli indirizzi.

...
Da notare infine che mentre la soglia complessiva rimane un dato puramente tecnico (che si autoaggiusta per ottenere i 10 minuti di media), i pesi A e B sono invece un dato più "politico" (quanto peso dare alla proof of work rispetto alla proof of stake e viceversa)

Che ne pensate?
Da qualche parte ho letto che bitcoin ha la pow e se si cambia non si chiamano piu' bitcoin... ossia bitcoin2 o altro. Se non si riesce a modificare per accettare blocchi piu' grossi dubito si riesca a fare una modifica cosi' sostanziale. Inoltre chi comanda sono i miner e non hanno interesse a venire estromessi.
Nel bene e nel male mi sa che è una strada difficilmente percorribile a meno di un fork della chain.
legendary
Activity: 1915
Merit: 2074
Mi è tornata in mente questa discussione
https://bitcointalksearch.org/topic/m.10783703
con picchio su come modificare il mining per rendere il sistema più decentralizzato.

L'idea di base è quella di affiancare alla soglia A classica sotto la quale deve stare l'hash del blocco da minare un'altra soglia B legata ai singoli indirizzi.

Modificare un blocco in modo che il suo hash sia sotto una certa soglia A è il task attuale che favorisce solo la potenza computazionale dei miner più attrezzati e quindi favorisce decisamente l'accentramento.

Per bilanciare questa propensione all'accentramento è necessario aggiungere una misura legata ai singoli indirizzi che distribuisca la probabilità tra i nodi della rete, diminuendo il vantaggio competitivo dei miner più grossi senza per questo rendere facile per un singolo nodo minare più blocchi consecutivi (senza intaccare insomma la sicurezza del sistema, sicurezza che si basa sul fatto che il singolo nodo è sempre più debole del resto della rete e quindi non la può ingannare, se non per un lasso di tempo brevissimo).

Quindi aggiungerei una misura di questo tipo:

la differenza tra l'indirizzo (al quale andrebbe la ricompensa nel caso il blocco fosse minato) e l'indirizzo generato dalla chiave privata costituita dall'hash del blocco precedente deve essere sotto un'altra soglia B.

Riassumendo:

soglia finale = soglia A + soglia B

Ovviamente la formula va ulteriormente perfezionata, introducendo dei pesi opportuni

soglia finale = pesoA * sogliaA + pesoB * sogliaB

Alcune osservazioni:

- aumentando il pesoB, la probabilità che un singolo nodo anche poco dotato computazionalmente possa vincere nella gara per minare il blocco aumenta (potendosi permettere una sogliaA computazionale più alta e quindi più facile da raggiungere, a patto naturalmente di avere un buon indirizzo con cui competere, una buona carta insomma con cui giocarsi la mano)

- l'indirizzo da inserire nella coinbase deve avere un output non speso da almeno x blocchi  (in sostanza ricevere una transazione bitcoin vorrebbe dire ottenere un invito a partecipare al processo di mining, spendere quel UTXO significherebbe cedere quell'invito a qualcun altro); per ovviare al fatto che un grosso miner produca una infinità di indirizzi su cui distribuire i propri bitcoin solo per aumentare le sue chance di vittoria, si potrebbe tenere conto dei bitcoin-day relativi all'UTXO, cioè anche di quanti bitcoin sono posseduti da quell'indirizzo, non solo dall'età

- nel momento in cui parte la gara per minare un nuovo blocco, anche i miner più grossi saranno limitati dal fatto di avere o meno un indirizzo che garantisca un basso valore della sogliaB (indirizzo che non può essere individuato in anticipo); qualora non avesse un "buon" indirizzo di partenza, sarebbe poi difficile per lui vincere la gara chiedendo aiuto all'esterno (la potenza computazionale la puoi anche chiedere all'esterno come si fa con le pool, ma l'indirizzo su cui riversare la ricompensa intera del blocco no; sarebbe anche rischiosa la pratica di comprare un "buon" indirizzo all'esterno, sia per questioni di tempistica, sia perchè se compri un indirizzo non puoi mai avere la sicurezza che il venditore abbia distrutto la chiave privata relativa)
 
- per quanto riguarda il valore complessivo della soglia, il sistema continuerebbe ad aggiornare quel valore dinamico ogni tot blocchi come avviene adesso in modo da perseguire l'obiettivo del tempo medio di 10 minuti; sicuramente però diventerebbe più imprevedibile di oggi il tempo di conferma di 1 blocco (inoltre va studiato con attenzione come evitare la possibilità concreta che nessuno riesca a minare il blocco)

Da notare infine che mentre la soglia complessiva rimane un dato puramente tecnico (che si autoaggiusta per ottenere i 10 minuti di media), i pesi A e B sono invece un dato più "politico" (quanto peso dare alla proof of work rispetto alla proof of stake e viceversa)

Che ne pensate?
legendary
Activity: 1260
Merit: 1003

La rete Bitcoin non ha come scopo nè aumentare il numero di file nè aumentarne la velocità di scambio; funziona esattamente al contrario di una rete di file sharing, poichè il "file" condiviso (la block chain) è uno solo e esso viene assemblato controllandolo pezzo per pezzo e replicandolo in N copie per N nodi, quindi al contrario del file sharing, qui invece di dividere per N il lavoro si moltiplica per N.

....


Pero' non reisco a spiegarmi. Non voglio battaglie filosofiche sulle definizioni... alla fine non serve a un tubo.

Io chiedo solo di pensare se non sia possibile migliorare il funzionamento di bitcoin, rendendolo piu' aderente al modello p2p
poi se si scopre che come e' e' gia' il massimo, oppure non si puo' fare niente, vabbe'.

Provo a spiegarmi con una proposta:

di solito in informatica quando un problema diventa molto, troppo complesso, lo si divide in "strati specializzati"
dove ognuno fa un lavoro ben specifico.

(ISO OSI, il padre , o forse nonno dell'attuale funzionamento di internet, con i suoi famosi 7 livelli, e' forse uno dei migliori esempi)

Non si potrebbe ad esempio pensare di dividere il problema bitcoin in diversi layer, cosa che a tutti gli effetti sta piu' o meno avvenendo
in pratica con la specializzazione dei nodi, e trasformare ogni layer in una rete p2p specifica ?

ossia:

1) layer blockchain, che con una rete p2p gestisce una sorta di filesysytem p2p per condividere la blockchain in modo poco pesante per tutti.

2) layer certificatori, la rete p2p dei certificatori (quel che adesso sono i miner/pool)

3) layer transazioni (quello degli utenti comuni) dove una rete p2p di utenti immette le transazioni in una p2p specializzata a smaltire le transazioni...

e cosi' via, in modo da suddividere il tutto in sottosistemi piu' specializzati, ove ognuno si possa rendere davvero p2p (perche fa una
sola funzione e quindi la puo' suddividere in modo bilanciato tra i vari partecipanti a quel layer)

e' solo una proposta, ma e' il genere di idee che mi piacerebbe si discutesse....


Ethereum fa proprio questo: suddivide il cosa si trasporta (valore, materia, informazioni, altro...) dalla tecnologia di trasporto (Blockchain, altro...)

Sono 3 paper da leggere:
White Paper: https://github.com/ethereum/wiki/wiki/White-Paper
Design Rationale: https://github.com/ethereum/wiki/wiki/Design-Rationale
Yellow Paper: http://gavwood.com/Paper.pdf

Se hai/ha voglia di parlare di questi concetti cominci traducendo questi 3 paper in italiano è il modo migliore per parlare di questi argomenti.

"Chi ha voglia può approfondire."


Cordilai saluti.
legendary
Activity: 2506
Merit: 1120
...

1) layer blockchain, che con una rete p2p gestisce una sorta di filesysytem p2p per condividere la blockchain in modo poco pesante per tutti.

2) layer certificatori, la rete p2p dei certificatori (quel che adesso sono i miner/pool)

3) layer transazioni (quello degli utenti comuni) dove una rete p2p di utenti immette le transazioni in una p2p specializzata a smaltire le transazioni...

e cosi' via, in modo da suddividere il tutto in sottosistemi piu' specializzati, ove ognuno si possa rendere davvero p2p (perche fa una
sola funzione e quindi la puo' suddividere in modo bilanciato tra i vari partecipanti a quel layer)

e' solo una proposta, ma e' il genere di idee che mi piacerebbe si discutesse....
A me pare sia gia' cosi'.
1) il client core scarica i blocchi da altri peer senza problema e forse esiste anche una versione della blockchain su torrent.
2) i miner possono essere anche "stupidi" nel senso che ricevono un pacchetto piccolo e calcolano l'sha e fanno solo quello
3) un qualunque client invia le transazioni che poi verranno forse assorbite dal sistema.

Quindi faccio fatica a capire cosa intendi ...
Mi è venuto in mente anche p2pool che ha presentato grosse novità qualche anno fa, ora ho perso di vista la cosa ma lui metteva una chain parallela al solo fine di dividere il premio del mining, magari si possono mettere anche delle transazioni ...
legendary
Activity: 1260
Merit: 1003
Fin qui Wikipedia ha funzionato bene come identificatore di definizioni:
"Peer-to-peer (P2P) o rete paritaria o paritetica, in informatica, è un'espressione che indica un'architettura logica di rete informatica in cui i nodi non sono gerarchizzati unicamente sotto forma di client o server fissi (clienti e serventi), ma sotto forma di nodi equivalenti o paritari (in inglese peer) che possono cioè fungere sia da cliente che da servente verso gli altri nodi terminali (host) della rete. Essa dunque è un caso particolare dell'architettura logica di rete client-server."

La cosa bella di questa definizione è che non c'è la parola sistema in essa: i nodi della rete non devono appartenere tutti allo stesso sistema.

Per il sistema Monetario Mondiale la BCE è un nodo P2P del sistema bancario europeo (al pari delle altre banche centrali europee) così come la Fed è un nodo P2P del sistema bancario statunitense (al pari delle altre banche nazionali statunitensi).

Se ora uniamo il Sistema Monetario Mondiale ($, €, Y, etc...) al Sistema Monetario Mondiale delle Valute Virtuali (BTC, LTC, DOGE, etc...) otteniamo l'unione di 2 sistemi P2P (basta un'interfaccia per unirli).

Questo sistema lo chiameremo Sistema Monetario Mondiale
(FIAT e Virtuale): in cui la BCE è un nodo paritario al pari di AntPool (paritario in 2 sistemi diversi ma il sistema padre è il sistema monetario nel suo insieme).

Sounds good?!?

Quello che intendo è: focalizzatevi sull'Industria FinTech non su di una sua specifica implementazione (Bitcoin) che al momento non gode nemmeno di ottima salute.

Questo mio ultimo consiglio è supportato anche dalla comunità Bitcoin, infatti se aprite gli occhi vedrete che in giro non si parla più di Bitcoin (che è una valuta virtuale) ma di Blockchan che è la tecnologia alla base dell'Industria FinTech di cui stiamo parlando.

Questo un interessante articolo sull'argomento (che cos'è la Blockchain?): http://www.coindesk.com/danger-blockchain-monoculture/

Per quanto riguarda Bitcoin farà la fine che farà...


Cordiali saluti.
legendary
Activity: 1915
Merit: 2074
Provo a spiegarmi con una proposta:

di solito in informatica quando un problema diventa molto, troppo complesso, lo si divide in "strati specializzati"
dove ognuno fa un lavoro ben specifico.

(ISO OSI, il padre , o forse nonno dell'attuale funzionamento di internet, con i suoi famosi 7 livelli, e' forse uno dei migliori esempi)

Non si potrebbe ad esempio pensare di dividere il problema bitcoin in diversi layer, cosa che a tutti gli effetti sta piu' o meno avvenendo
in pratica con la specializzazione dei nodi, e trasformare ogni layer in una rete p2p specifica ?

ossia:

1) layer blockchain, che con una rete p2p gestisce una sorta di filesysytem p2p per condividere la blockchain in modo poco pesante per tutti.

2) layer certificatori, la rete p2p dei certificatori (quel che adesso sono i miner/pool)

3) layer transazioni (quello degli utenti comuni) dove una rete p2p di utenti immette le transazioni in una p2p specializzata a smaltire le transazioni...

e cosi' via, in modo da suddividere il tutto in sottosistemi piu' specializzati, ove ognuno si possa rendere davvero p2p (perche fa una
sola funzione e quindi la puo' suddividere in modo bilanciato tra i vari partecipanti a quel layer)

e' solo una proposta, ma e' il genere di idee che mi piacerebbe si discutesse....

Questa idea mi sembra davvero interessante!

Penso che siamo d'accordo che il sistema, così com'è, ad oggi è riuscito a realizzare abbastanza bene il compito del layer 2), poichè tutti ci fidiamo delle certificazioni che produce.

La tua proposta va nella direzione di trasformare un sistema di certificazione che svolge male però altri compiti (come quello di gestione delle transazioni del layer 3) in un sistema multi strato affinchè il sistema Bitcoin diventi quello che finora non è mai stato, e cioè un mezzo di pagamento veramente alternativo a quelli attuali.

Basta capirsi  Wink

Secondo te la LN di cui parlava picchio va nella giusta direzione o tu pensi sia necessario cambiare in modo più radicale il protocollo Bitcoin?
legendary
Activity: 3192
Merit: 2726

La rete Bitcoin non ha come scopo nè aumentare il numero di file nè aumentarne la velocità di scambio; funziona esattamente al contrario di una rete di file sharing, poichè il "file" condiviso (la block chain) è uno solo e esso viene assemblato controllandolo pezzo per pezzo e replicandolo in N copie per N nodi, quindi al contrario del file sharing, qui invece di dividere per N il lavoro si moltiplica per N.

....


Pero' non reisco a spiegarmi. Non voglio battaglie filosofiche sulle definizioni... alla fine non serve a un tubo.

Io chiedo solo di pensare se non sia possibile migliorare il funzionamento di bitcoin, rendendolo piu' aderente al modello p2p
poi se si scopre che come e' e' gia' il massimo, oppure non si puo' fare niente, vabbe'.

Provo a spiegarmi con una proposta:

di solito in informatica quando un problema diventa molto, troppo complesso, lo si divide in "strati specializzati"
dove ognuno fa un lavoro ben specifico.

(ISO OSI, il padre , o forse nonno dell'attuale funzionamento di internet, con i suoi famosi 7 livelli, e' forse uno dei migliori esempi)

Non si potrebbe ad esempio pensare di dividere il problema bitcoin in diversi layer, cosa che a tutti gli effetti sta piu' o meno avvenendo
in pratica con la specializzazione dei nodi, e trasformare ogni layer in una rete p2p specifica ?

ossia:

1) layer blockchain, che con una rete p2p gestisce una sorta di filesysytem p2p per condividere la blockchain in modo poco pesante per tutti.

2) layer certificatori, la rete p2p dei certificatori (quel che adesso sono i miner/pool)

3) layer transazioni (quello degli utenti comuni) dove una rete p2p di utenti immette le transazioni in una p2p specializzata a smaltire le transazioni...

e cosi' via, in modo da suddividere il tutto in sottosistemi piu' specializzati, ove ognuno si possa rendere davvero p2p (perche fa una
sola funzione e quindi la puo' suddividere in modo bilanciato tra i vari partecipanti a quel layer)

e' solo una proposta, ma e' il genere di idee che mi piacerebbe si discutesse....








legendary
Activity: 1915
Merit: 2074

Magari BTC puo' continuare su questa falsa riga e i servizi aggiuntivi verranno sfruttati meglio. I costi delle transazioni aumenteranno ma le stesse conterranno cifre elevate o informazioni che valgono tantissimo.


Se così fosse però risulterà allora chiaro che era irrealizzabile pensare che ogni minima transazione (esempio l'acquisto di un caffè) avesse lo stesso grado di attendibilità di un certificato di vendita di un immobile.

A dirlo così sembra ovvio, ma la maggior parte degli utilizzatori bitcoin pensa/spera ancora che fra x anni pagherà il caffè in bitcoin e che il piccolo negoziante controllerà l'attendibilità di quella transazione mediante un costosissimo full node risparmiando sulle "vessatorie" commissioni dei sistemi di pagamento attuali...

Non solo, per come funziona adesso il sistema bitcoin, una piccola transazione va solo ad aumentare il lavoro di controllo da fare anche sulle altre transazioni (se devo verificarte una grossa transazione e quest'ultima dovesse avere nella sua "storia" precedente proprio questa piccola transazione il lavoro aumenterà)

Mi sono imbattuto in https://chrispacia.wordpress.com/2015/12/23/lightning-network-skepticism/ e non ho ancora capito bene cosa faccia esattamente ma potrebbe aiutare a risolvere qualcosa: la blockchain diventa "il notaio" e quindi posso anche permettermi di pagare una transazione una cifra elevata purche' poi sia in grado di spalmarla su più lavori ...

Anche le colored coin usano la chain ma anche altri protocolli p2p per diffondere le info.
Grazie per il link, ne ho sentito parlare ma conosco pochissimo a riguardo.
legendary
Activity: 2506
Merit: 1120
...

Quando si capirà il valore di ciò che stiamo costruendo, allora si potranno affrontare e risolvere gli altri problemi nella giusta prospettiva. Ma finchè si riterrà di aver trovato un sistema magico per spostare valore gratis da un punto all'altro del pianeta (mentre i cattivi che gestiscono la valuta fiat ci fanno pagare per questo tipo di servizio) non andremo lontano.
Mi sono imbattuto in https://chrispacia.wordpress.com/2015/12/23/lightning-network-skepticism/ e non ho ancora capito bene cosa faccia esattamente ma potrebbe aiutare a risolvere qualcosa: la blockchain diventa "il notaio" e quindi posso anche permettermi di pagare una transazione una cifra elevata purche' poi sia in grado di spalmarla su più lavori ...

Anche le colored coin usano la chain ma anche altri protocolli p2p per diffondere le info.

Magari BTC puo' continuare su questa falsa riga e i servizi aggiuntivi verranno sfruttati meglio. I costi delle transazioni aumenteranno ma le stesse conterranno cifre elevate o informazioni che valgono tantissimo.
legendary
Activity: 1915
Merit: 2074
legendary
Activity: 3192
Merit: 2726
Definisci "peer".

La rete bitcoin è P2P. Se il tuo trade-off fra costo e necessità è giustificato, ci entri, altrimenti no.
Così a naso credo che la misura della soglia tecnica di ingresso alla rete resterà sempre e comunque più accessibile della soglia di ingresso ad altre reti di pagamento che soddisfino le stesse necessità.


a fare lo schizzinoso, bitcoin non rispetta piu' il criterio di definizione di peer to peer,
in quanto ci sono un sacco di nodi diversi come funzionalita' (i nodi full sono in proporzione 1/200 circa verso quelli non full, e vari altri tipi di nodi)
(peer to peer proprio per definizione e' invece nodo pari verso nodo pari)

ma da un punto di vista sostanziale mi interessa molto di piu' questa definizione:

"una rete p2p ha la caratteristica che piu' nodi si aggiungono e piu' diventa potente nel suo scopo"

questa definizione di peer2peer mi piacque moltissimo perche' spiegava bene la potenza tecnologica delle
reti di filesharing ad esempio, dove ogni nodo che si aggiunge rende piu' robusta e piu' "capace" di fare filesharing la rete,
quindi piu' potente. Quindi le reti di filesharing erano e sono un ottimo esempio di peer2peer riuscito.

BItcoin invece, strutturato come adesso, ha il difetto che ogni nodo che si aggiunge, aggiunge transazioni,
aggiunge quindi la necessita di broadcastarle (...perdonare il termine...) a piu' nodi (con un traffico di network che auqmenta in modo quasi quadratico),
aggiunge piu' criticita' nella gestione della blockchain, aggiunge piu' criticita' nella gestione dei limiti vari (dimesnione blocco, max tx per blocco... ecc.)

insomma bitcoin piu' cresce e piu' diventa fragile (ovviamente come e' strutturata adesso)

e la prova e' un esperimento immaginario:

se prendiamo una rete di filesharing peer2peer, e supponiamo che in una settimana il numero di utenti si moltiplichi per 10,
la rete diventa piu' potente, di un'ordine di grandezza piu' potente, avra' molti piu' files disponibili, sara' piu' veloce scaricarli,
tutto funzionera' molto meglio.

se prendiamo bitcoin e immaginiamo che in una settimana il numero di utenti si moltiplichi per 10,
il risultato praticamente certo e' il crollo totale.


ecco, questi sono in ultima anlisi i problemi tecnici da affrontare.

E come ho scritto da altre parti, sono assolutamente affrontabili, se se ne parla e si analizzano e si trovano
soluzioni tecniche per risolverli.

MA

c'e' la madre di tutti i problemi: molti attori nell'ecosistema bitcoin non ne vogliono sentir parlare, perche' temono che poi
si possa far perdere fiducia in BItcoin e quindi bitcoin possa perdere valore.

E' su tutto questo che vorrei invitare tutti a riflettere.







 
legendary
Activity: 1260
Merit: 1003
Dicevo a gbianchi, ma grazie del suo parere!

Non era un parere: era un ordine.

Grazie a Lei delle informazioni gratuite.


Cordiali saluti.



PS: questo articolo di oggi può essere correlato
Definizione di Blockchain
http://www.coindesk.com/blockchain-what-art-thou-buzzword/
hero member
Activity: 980
Merit: 1002
Definisci "peer".

La rete bitcoin è P2P. Se il tuo trade-off fra costo e necessità è giustificato, ci entri, altrimenti no.
Così a naso credo che la misura della soglia tecnica di ingresso alla rete resterà sempre e comunque più accessibile della soglia di ingresso ad altre reti di pagamento che soddisfino le stesse necessità.

Altrimenti, se non puoi permetterti di entarci, probabilmente non ne hai realmente bisogno, e ti sta bene che qualcuno lo faccia al posto tuo.
Anche l'email è P2P, se tutti manteniamo il nostro mail server. Eppure mantenere un server mail su un Raspberry è fattibile anche con una linea casalinga. Oibò, mantenere un mail server è fattibile anche con una connessione mobile.
Ma chi lo fa? Chi ne ha realmente bisogno, in genere.

Quindi comunque, dire che bitcoin non sia P2P, mi pare un assunto errato. Questo comunque non vuol dire che i problemi di cui parli non ci siano.

Adesso, parliamo di 200 transazioni al secondo. Mi spaventano tantissimo, come le valido 200 transazioni al secondo? E sopratutto, perché validare 200 transazioni al secondo, se a me magari ne interessa una al minuto?
E quale infrastruttura serve a un miner per validare 200 transazioni al secondo ? Non è affatto banale.

Ha provato a rispondere a questa domanda Conformal:
https://blog.conformal.com/btcsim-simulating-the-rise-of-bitcoin/

Quote
Aside from the obvious network and storage constraints of running a full Bitcoin node at large block sizes, it appears the Bitcoin network is capable of handling a substantially higher transaction volume than it does currently. The CPU time being dominated by ECDSA signature checks at high transaction rates suggests a clustered full node architecture could process credit-card-like transaction rates by using a load balancing / offload approach to ECDSA signature checking, e.g. a full node with a 10 machine cluster would top out at >2,000 tps.

The resources and know-how required to run a clustered node like this may impose a significant centralizing force on Bitcoin. Backpressure against the centralization of Bitcoin may well drive alternative solutions to having all transactions on-chain. Alternatively, it may end up that Bitcoin adoption grows slowly enough that the computing power of a single node grows quickly enough to avoid requiring a clustered full node architecture.


In ogni caso, senza parlare del "volume di VISA", Bitcoin è in grado di scalare, senza parlare di clusters, a 30~40 volte la capacità attuale, parlando di hardware (btcsim simula 270tps). Certamente c'è bisogno di una importante ottimizzazione del codice, che oggi per debita prudenza viene portata avanti con processi di review molto lunghi.

Questo, col tempo, taglia fuori i nodi "home made" e riduce sempre di più la decentralizzazione. E' un fatto. Ma chi dovrebbe volere l'intera storia di un sistema finanziario globale sul proprio disco rigido, se non per utilizzarla davvero?

Tuttavia, può scegliere di farlo. Il sistema è aperto.


L'aumento del blocco 2mb è una proposta triviale, che superato il dibattito politico, permette di dare un po' di respiro ad una rete che vede sempre più persone preoccuparasi del ritardo nelle transazioni, circostanza testimoniata da diversi post anche qui nel forum. Non risolve tutte le problematiche di scalabilità, ma permette di riprendere la discussione con minore urgenza.

A prescindere da questo, pero', la dimensione del blocco a 2mb resta ridotta, in un sistema che chiede di essere usato per notariato. Personalmente sono un sostenitore di un 2\4\8 con tempi prudenti, con 8mb che non arrivino prima del 2020. Un sistema le cui transazioni crescono, grazie alla ricerca su SegWit e al blocco di 8mb, di un potenziale 1500% in 4 anni, mi sembra una buona prospettiva.

Se a questo aggiungiamo i progetti di canali paralleli come LN, che comunque non saranno neanch'essi mantenuti da privati, ma serviranno finanziamenti (e quindi centri di potere) per aprirli:
https://chrispacia.wordpress.com/2015/12/23/lightning-network-skepticism/

e la possibilità che alcune transazioni finiscano su alt-chains pegged con la blockchain, alla fine non mi spaventano più tanto queste 200 transazioni al secondo.

legendary
Activity: 1915
Merit: 2074
Boh, sara' perche' sono vecchio e paranoico, ma io ho cominciato ad avere qualche sospetto quando e' nata la storia dei blocchi pieni.

Io la storia dei blocchi pieni la vedo con questa metafora:

c'e' il terremoto, un incendio in soffitta e l'interrato allagato, e in casa si discute di
quale sia il modo piu' elegante per svuotare la pattumiera piena (senza svuotarla)

i problemi di scalabilita' sono veramente importanti e strutturali, e credo meriterebbero molta piu' attenzione,
rispetto al problema vero ma molto piu' "gestibile" della dimensione del blocco.

Insomma, ricordatevi sempre che bitcoin non e' piu' p2p da parecchio tempo, e lo sara' sempre di meno, e sembra che a nessuno interessi veramente come problema.

Poi chi vivra' vedra'.

Come hai detto tu stesso prima: l'importante è essere coscienti di questo fatto, certo la mancanza di decentralizzazione è un grande difetto ma i pregi di questo sistema di pagamento rimangono molti.

Personalmente non sono molto preoccupato nè sorpreso del fatto che bitcoin non sia più p2p probabilmente perchè io sono arrivato in questo mondo abbastanza tardi, quando già il mining per esempio era fuori dalla portata del singolo utente medio, e quindi forse anche per questo non sono sorpreso di questa ulteriore "deriva" rispetto all'ideale iniziale (che ripeto io non ho vissuto in prima persona).

Ti dirò di più: sin dall'inizio, e ogni giorno di più, mi sono convinto che la prima grande barriera all'ingresso in generale nel mondo bitcoin (o anche più nello specifico nel sostegno alla rete bitcoin) non sia tanto o solo economica, ma sia costituita soprattutto dalle notevoli competenze richieste per entrare nei meccanismi del sistema.

Se penso a tutto il tempo speso per acquisire le conoscenze e le competenze adeguate per stare un po' dietro a questa nuova tecnologia (lettura post sul forum, articoli in rete, esperimenti in prima persona con Bitcoin Core e altri software) e per tenermi aggiornato, i 50 euro annui di corrente di cui si parlava qualche post fa mi fanno giusto ridere, la maggior parte di noi appassionati ha speso almeno 100 volte tanto in tempo e dedizione.

In conclusione non saranno i 100 o 200 euro l'anno (che pure sono soldi) a dissuadere una persona; secondo me la vera questione è che se uno movimenta solo l'equivalente di poche centinaia di euro all'anno in bitcoin, è palese che mantiene un full node solo per passione e non per tornaconto personale; se e quando invece la maggior parte dei tuoi movimenti finanziari si realizzeranno mediante bitcoin (e pure i tuoi risparmi saranno in gran parte in bitcoin) stai pur certo che qualche centinaio di euro li sborserai spontaneamente e ben volentieri come forma di tutela personale. Un altro luogo comune del bitcoin è che sia tutto gratis o quasi, le transazioni costano pochissimo... se si va a vedere qui -> https://blockchain.info/stats si noterà che attualmente il costo reale di una singola transazione è sui 10 dollari! Questo sì che mi preoccupa molto di più ... link alla discussione relativa: https://bitcointalksearch.org/topic/costo-medio-di-una-transazione-di-bitcoin-1019008
legendary
Activity: 1260
Merit: 1003

Insomma, ricordatevi sempre che bitcoin non e' piu' p2p da parecchio tempo, e lo sara' sempre di meno, e a nessuno sembra che interessi veramente come problema.


A nessuno interessa perchè non ci puoi ancora comprare il pane con bitcoin.

La priorità è diffondere le valute virtuali (anche a scapito della libertà), quando si comprerà il pane con bitcoin si potrà affrontare il problema della centralizzazione.

Questo articolo di oggi dice proprio quello che sto dicendo io:
"There will be both public and private chains and both will be successful."
Fonte: http://www.coindesk.com/gem-banks-blockchains/

Quello che conta non è Bitcoin, è il novo settore industriale FinTech (ed il fatto che la loro tecnologia sia Open Source).

#criptomonete #ValuteVirtuali #Blockchain #FinTech


Cordiali saluti.
legendary
Activity: 3192
Merit: 2726

Io la metterei giù così:

si tratta di una rete decentralizzata di pagamento che non è gestita da una autorità preposta a questo compito; ogni singolo utente ha la possibilità (a sue spese e se lo ritiene opportuno) di interfacciarsi con un proprio nodo a questa rete e quindi di entrarne a far parte, oppure può scegliere per le proprie transazioni di affidarsi a un nodo (intermediario) già esistente mantenuto da qualcun altro. Si tratta di una rete dinamica e a adesione volontaria, cioè si può entrarne a far parte/ se ne può uscire in modo assolutamente libero in ogni momento.


Boh, sara' perche' sono vecchio e paranoico, ma io ho cominciato ad avere qualche sospetto quando e' nata la storia dei blocchi pieni.

Io la storia dei blocchi pieni la vedo con questa metafora:

c'e' il terremoto, un incendio in soffitta e l'interrato allagato, e in casa si discute di
quale sia il modo piu' elegante per svuotare la pattumiera piena (senza svuotarla)

i problemi di scalabilita' sono veramente importanti e strutturali, e credo meriterebbero molta piu' attenzione,
rispetto al problema vero ma molto piu' "gestibile" della dimensione del blocco.

Insomma, ricordatevi sempre che bitcoin non e' piu' p2p da parecchio tempo, e lo sara' sempre di meno, e sembra che a nessuno interessi veramente come problema.

Poi chi vivra' vedra'.



legendary
Activity: 1260
Merit: 1003
Quello che non mi piace moltissimo e' che a tutt'oggi bitcoin viene ancora "spacciato" come una rete p2p:

nelle faq di bitcoin.org si legge:

Quote
Che cos'è Bitcoin?

Bitcoin è una rete di consenso che consente un sistema di pagamento ed è una forma di denaro completamente digitale. Si tratta della prima rete decentralizzata di pagamento peer-to-peer, gestita dai suoi utenti senza alcuna autorità centrale o intermediari. Dalla prospettiva di un utente, Bitcoin è per la maggior parte denaro liquido che circola in internet. Bitcoin può anche essere considerato come il più illustre triplo sistema di bloccaggio di accesso e contabilità esistente.


di fatto, ci stiamo allontanando sempre di piu' da questo modello, e la gente dovrebbe esserne cosciente,
poi se ne e' cosciente e gli va bene allora ok.


Io la metterei giù così:

si tratta di una rete decentralizzata di pagamento che non è gestita da una autorità preposta a questo compito; ogni singolo utente ha la possibilità (a sue spese e se lo ritiene opportuno) di interfacciarsi con un proprio nodo a questa rete e quindi di entrarne a far parte, oppure può scegliere per le proprie transazioni di affidarsi a un nodo (intermediario) già esistente mantenuto da qualcun altro. Si tratta di una rete dinamica e a adesione volontaria, cioè si può entrarne a far parte/ se ne può uscire in modo assolutamente libero in ogni momento.


L'unico modo per evitare la centralizzazione è il PoS (Proof of Stake - https://en.bitcoin.it/wiki/Proof_of_Stake - o similari...).

Con PoW (Proof of Work - https://en.bitcoin.it/wiki/Proof_of_work) si arriverà inevitabilmente alla centralizazzione, perchè le risorse richieste alla scalabilità del network sono troppo alte.

Con il PoW sono sicuro si potrebbe dimostrare che non è un algoritmo adatto per le masse: questo significa che se si vuole espanderne l'accettazione l'unica soluzione e cedere nella decentralizzazione.

PoS: grande user base + decentralizzazione (perchè risorse basse)
PoW: grande user base - decentralizzazione (perchè risorse alte)

"I miei 2 cents"


Cordiali saluti.
legendary
Activity: 1915
Merit: 2074
Quello che non mi piace moltissimo e' che a tutt'oggi bitcoin viene ancora "spacciato" come una rete p2p:

nelle faq di bitcoin.org si legge:

Quote
Che cos'è Bitcoin?

Bitcoin è una rete di consenso che consente un sistema di pagamento ed è una forma di denaro completamente digitale. Si tratta della prima rete decentralizzata di pagamento peer-to-peer, gestita dai suoi utenti senza alcuna autorità centrale o intermediari. Dalla prospettiva di un utente, Bitcoin è per la maggior parte denaro liquido che circola in internet. Bitcoin può anche essere considerato come il più illustre triplo sistema di bloccaggio di accesso e contabilità esistente.


di fatto, ci stiamo allontanando sempre di piu' da questo modello, e la gente dovrebbe esserne cosciente,
poi se ne e' cosciente e gli va bene allora ok.


Io la metterei giù così:

si tratta di una rete decentralizzata di pagamento che non è gestita da una autorità preposta a questo compito; ogni singolo utente ha la possibilità (a sue spese e se lo ritiene opportuno) di interfacciarsi con un proprio nodo a questa rete e quindi di entrarne a far parte, oppure può scegliere per le proprie transazioni di affidarsi a un nodo (intermediario) già esistente mantenuto da qualcun altro. Si tratta di una rete dinamica e a adesione volontaria, cioè si può entrarne a far parte/ se ne può uscire in modo assolutamente libero in ogni momento.
legendary
Activity: 1260
Merit: 1003

La mia conclusione è che la produzione e la gestione del denaro e dei suoi movimenti sono compiti ripetitivi e automatizzabili e come tali richiedono una sempre maggiore specializzazione e accentramento, inevitabilmente.
Il sistema Bitcoin non distingue tra un computer di potenza 1000 e 1000 computer di potenza 1, quindi per una questione di efficienza il sistema tende naturalmente a convergere a una rete di pochi nodi (tipo le banche con le monete fiat) che gestiscono e dirigono il traffico delle transazioni.



tutto questo e' vero, e in fondo a me puo' anche stare bene, ritengo che questo difetto (grande) sia ancora
compensato da una marea di pregi.

Quello che non mi piace moltissimo e' che a tutt'oggi bitcoin viene ancora "spacciato" come una rete p2p:

nelle faq di bitcoin.org si legge:

Quote
Che cos'è Bitcoin?

Bitcoin è una rete di consenso che consente un sistema di pagamento ed è una forma di denaro completamente digitale. Si tratta della prima rete decentralizzata di pagamento peer-to-peer, gestita dai suoi utenti senza alcuna autorità centrale o intermediari. Dalla prospettiva di un utente, Bitcoin è per la maggior parte denaro liquido che circola in internet. Bitcoin può anche essere considerato come il più illustre triplo sistema di bloccaggio di accesso e contabilità esistente.


di fatto, ci stiamo allontanando sempre di piu' da questo modello, e la gente dovrebbe esserne cosciente,
poi se ne e' cosciente e gli va bene allora ok.




Io non capisco perchè questa fissazione con la decentralizzazione: le criptomonete sono un nuovo modello economico (fintech) perchè il codice è Open-Source.

Non ha senso fissarsi di un modello prestabilito (decentralizzato Vs centralizzato): il bello delle criptomonete è che possono essere utilizzate per creare sistemi economici anche dalla persona media.

Se la persona media vuole crearsi un sistema economico centralizzato in cui lui ed il suo vicino si scambiano "mariorossicoin" è giusto che possa farlo.

Bitcoin è una criptomoneta... una delle tante, non ha senso fissarsi su di lei: le criptomonete (Open-Source) sono la rivoluzione non Bitcoin in sè!.


Cordiali saluti.
legendary
Activity: 3192
Merit: 2726

La mia conclusione è che la produzione e la gestione del denaro e dei suoi movimenti sono compiti ripetitivi e automatizzabili e come tali richiedono una sempre maggiore specializzazione e accentramento, inevitabilmente.
Il sistema Bitcoin non distingue tra un computer di potenza 1000 e 1000 computer di potenza 1, quindi per una questione di efficienza il sistema tende naturalmente a convergere a una rete di pochi nodi (tipo le banche con le monete fiat) che gestiscono e dirigono il traffico delle transazioni.



tutto questo e' vero, e in fondo a me puo' anche stare bene, ritengo che questo difetto (grande) sia ancora
compensato da una marea di pregi.

Quello che non mi piace moltissimo e' che a tutt'oggi bitcoin viene ancora "spacciato" come una rete p2p:

nelle faq di bitcoin.org si legge:

Quote
Che cos'è Bitcoin?

Bitcoin è una rete di consenso che consente un sistema di pagamento ed è una forma di denaro completamente digitale. Si tratta della prima rete decentralizzata di pagamento peer-to-peer, gestita dai suoi utenti senza alcuna autorità centrale o intermediari. Dalla prospettiva di un utente, Bitcoin è per la maggior parte denaro liquido che circola in internet. Bitcoin può anche essere considerato come il più illustre triplo sistema di bloccaggio di accesso e contabilità esistente.


di fatto, ci stiamo allontanando sempre di piu' da questo modello, e la gente dovrebbe esserne cosciente,
poi se ne e' cosciente e gli va bene allora ok.


legendary
Activity: 1915
Merit: 2074


In input di una transazione non ci va infatti l'address di partenza, ma ci va la TX e l'input number corrispondente a quella TX.
Quindi, attualmente, per spendere BTC di 5 anni fa il sistema deve conoscere la TX (e non l'address).



Purtroppo, la dimensione della blockchain e' solo uno degli aspetti del problema.

a parte la discussione ormai "di moda" sulla massima dimensione del blocco
(dico di moda perche' almeno questo e' un falso problema, ossia ci sono diverse soluzioni)
uno dei problemi piu' sottili che vedo e' l'allontanamento da un modello p2p della rete.

In realta', bitcoin non e' piu' una rete p2p ormai da tanto tempo, infatti mentre i full node sono
poco piu' di 5.000, stimo che ci siano piu' di 500.000 utenti, ossia un full node 100 o piu' utenti.

e si allontanera' sempre di piu' dall'essere p2p, semplicemente perche' il costo in risorse (e soldi)
per tenere un full node aumentera' sempre di piu' a fronte di nessuna ricompensa,
quindi il numero di full-node continera' a scendere, mentre il numero di utenti continua ad aumentare.

In pratica, presto arriveremo ad un full node ogni 1000 utenti, e via via sempre peggio.
Purtroppo, tempo che il modello p2p di bitcoin sia  insostenibile.

QUindi succedera' che solo chi ha una convenienza economica si sobbarchera' i costi di un full
node (quindi full-blockchain, full memory pool, full processor power per controllo transazioni real-time ecc..)
in pratica solo gli exchange, le mining pool e pochi altri potranno permettersi un full node.


Sicuramente il modello p2p, già abbandonato da tempo per quanto riguarda il mining, rappresenta sempre meno anche la situazione attuale dei full node.
A me tutto ciò sembra inevitabile per una mera questione di efficienza: replicare N volte lo stesso lavoro di controllo delle transazioni e dei blocchi, dove N è il numero dei nodi, non è un metodo efficiente di operare.

Provo ad allargare il discorso ad altri 2 esempi di decentralizzazione questa volta riuscita (almeno secondo me):

1) la costruzione condivisa di un'enciclopedia online come Wikipedia funziona in modo "decentralizzato" (almeno nella produzione dei contenuti) poichè si basa sul contributo personale e specifico (e pertanto non "automatizzabile") di diversi individui: in questo caso il modello distribuito ha un suo senso d'esistere e costituisce un valore aggiunto alla realizzazione dell'enciclopedia (a differenza per esempio di un'enciclopedia realizzata da pochi esperti, che proprio perchè pochi come numero possono coprire un'area limitata del sapere e hanno tempo/energia complessivi limitati da dedicare al compito di preparazione di una enciclopedia classica).

2) il software open source, che molto spesso ha una qualità ottima, sfrutta al meglio la sua specifica caratteristica di raccogliere e convogliare il contributo di moltissimi sviluppatori (è un catalizzatore di un lavoro "distribuito") e proprio per questo spesso è più sensibile anche alle richieste di miglioramenti dei suoi utilizzatori.

In entrambi questi esempi il ruolo della decentralizzazione è quello di raccogliere una ricchezza di capacità e talenti distribuiti nel pianeta per costruire un progetto condiviso che valorizza le capacità dei singoli. Questo è il vero senso della decentralizzazione.

Nel caso del bitcoin invece, poichè il lavoro da fare è "stupido" (minare e controllare la transazioni sono procedure automatizzate), la decentralizzazione rischia di diventare semplicemente spreco e l'individuo non è spinto nè dal riconoscimento individuale del proprio specifico lavoro (come succede quando si scrive una voce su Wikipedia) nè da quello meramente economico (come ha ricordato gbianchi, non c'è ricompensa per il lavoro dei full node).

Perchè a questo punto uno dovrebbe mantenere a sue spese (sempre crescenti!) un full node? Semplicemente perchè è "giusto"? Perchè così si migliora la sicurezza generale della rete? Senza riconoscimenti personali di qualche tipo non è un modello sostenibile.

La mia conclusione è che la produzione e la gestione del denaro e dei suoi movimenti sono compiti ripetitivi e automatizzabili e come tali richiedono una sempre maggiore specializzazione e accentramento, inevitabilmente.
Il sistema Bitcoin non distingue tra un computer di potenza 1000 e 1000 computer di potenza 1, quindi per una questione di efficienza il sistema tende naturalmente a convergere a una rete di pochi nodi (tipo le banche con le monete fiat) che gestiscono e dirigono il traffico delle transazioni.
legendary
Activity: 1260
Merit: 1003
Ciao a tutti, stavo ragionando sui problemi di scalabilità di bitcoin, in particolare rispetto alla costante crescita di dimensioni della blockchain.

Sarebbe stato possibile mettere dentro l'algoritmo che governa la rete bitcoin una sorta di "troncatura della blockchain" ogni 5 anni?
 
Mi spiego meglio: al 31 dicembre di ogni anno la rete cancella tutta la storia delle transazioni più vecchie di 5 anni, lasciando solo i saldi finali degli indirizzi in modo che (ovviamente) nessuno perda bitcoin, e "impostando un nuovo genesis block che parte 5 anni prima".

Sarebbe stato in qualche modo realizzabile?

Darebbe due vantaggi: limiterebbe le dimensioni della blockchain ad un valore finito, e garantirebbe maggiore anonimato in quanto basterebbe attendere 5 anni e i propri bitcoin non avrebbero più lo "storico dei proprietari precedenti".



Se tronco la Blockchain di Bitcoin posso spendere i bitcoin che non sono più visibili.

Questa operazione si chiama "double-spend".
https://bitcoin.org/en/glossary/double-spend

Una proprietà che deve avere una moneta è quella di essere un mezzo di scambio (https://it.wikipedia.org/wiki/Moneta): se posso spendere gli stessi gettoni (token) 2 volte (per 2 transazioni diverse - operazione di double-spend) il gettone (token) che ho utilizzato per la transazione perde la proprietà di essere utilizzato come mezzo di scambio.

Se il token che ho utilizzato per una transazione perde la proprietà di essere utilizzato come mezzo di scambio, il token non è una moneta.

Se il token è bitcoin, bitcoin non è una moneta.

Per essere una moneta bitcoin ha bisogno di non essere passibile di double spend.

Per questo motivo non è possibile troncare la Blockchain.

Per qualsiasi dubbio o informazione non si faccia problemi a chiedere.


Cordiali saluti.
legendary
Activity: 3192
Merit: 2726

Purtroppo sono d'accordo con te, il costo di gestione dei full node aumenta costantemente e per quanto il costo dei supporti di memoria cali rimangono i costi di elettricità e connettività, infatti anche utilizzando un semplice raspberry 2 con un disco fisso si consuma quasi 80KWh/anno pari a circa 16€ che vuol dire ammettendo che tutto il sistema basti per  5 anni che si spenderebbero 40€ di raspberry, 50 di disco da 1TB  e 80 di corrente pari a 34€ l'anno.



secondo i miei calcoli, e' gia' da tanto che non si riesce a gestire un full node con un raspberry.

un semplice dato di cui discutevo in un altro thread: raspberry pi 2 (il piu' recente) ha 1 GB di ram,  che deve contenere SO + software + memory pool.

La memory pool che gestisce il mio nodo e' spesso sopra i 5 GB, ossia se tieni un raspberry acceso 10 minuti come full node,
magari ce la fa anche, ma se lo vuoi usare per davvero, saluti.


legendary
Activity: 938
Merit: 1000

In realta', bitcoin non e' piu' una rete p2p ormai da tanto tempo, infatti mentre i full node sono
poco piu' di 5.000, stimo che ci siano piu' di 500.000 utenti, ossia un full node 100 o piu' utenti.

e si allontanera' sempre di piu' dall'essere p2p, semplicemente perche' il costo in risorse (e soldi)
per tenere un full node aumentera' sempre di piu' a fronte di nessuna ricompensa,p
quindi il numero di full-node continera' a scendere, mentre il numero di utenti continua ad aumentare.


Purtroppo sono d'accordo con te, il costo di gestione dei full node aumenta costantemente e per quanto il costo dei supporti di memoria cali rimangono i costi di elettricità e connettività, infatti anche utilizzando un semplice raspberry 2 con un disco fisso si consuma quasi 80KWh/anno pari a circa 16€ che vuol dire ammettendo che tutto il sistema basti per  5 anni che si spenderebbero 40€ di raspberry, 50 di disco da 1TB  e 80 di corrente pari a 34€ l'anno.

Una strada potrebbe essere quella di pensare ad un pos con full node integrato per i negozi (magari anche per chi usa payment processor tipo tinklit e simili) basato su un PC low cost con schermo  integrato o su un tablet con una SD sufficientemente capiente, però è sempre una soluzione volontaria e con costo a carico di chi lo vuole gestire.
Il pruning della blockchain si è già visto non essere efficace, oltre ai problemi legati a smartcontract e script vari.

Purtroppo quando bitcoin è stato pensato i wallet potevano gestire anche il mining e quindi il problema era stato previsto, ma la corsa ai THash/sec ha reso il sistema meno sicuro
legendary
Activity: 3192
Merit: 2726


In input di una transazione non ci va infatti l'address di partenza, ma ci va la TX e l'input number corrispondente a quella TX.
Quindi, attualmente, per spendere BTC di 5 anni fa il sistema deve conoscere la TX (e non l'address).



Purtroppo, la dimensione della blockchain e' solo uno degli aspetti del problema.

a parte la discussione ormai "di moda" sulla massima dimensione del blocco
(dico di moda perche' almeno questo e' un falso problema, ossia ci sono diverse soluzioni)
uno dei problemi piu' sottili che vedo e' l'allontanamento da un modello p2p della rete.

In realta', bitcoin non e' piu' una rete p2p ormai da tanto tempo, infatti mentre i full node sono
poco piu' di 5.000, stimo che ci siano piu' di 500.000 utenti, ossia un full node 100 o piu' utenti.

e si allontanera' sempre di piu' dall'essere p2p, semplicemente perche' il costo in risorse (e soldi)
per tenere un full node aumentera' sempre di piu' a fronte di nessuna ricompensa,
quindi il numero di full-node continera' a scendere, mentre il numero di utenti continua ad aumentare.

In pratica, presto arriveremo ad un full node ogni 1000 utenti, e via via sempre peggio.
Purtroppo, tempo che il modello p2p di bitcoin sia  insostenibile.

QUindi succedera' che solo chi ha una convenienza economica si sobbarchera' i costi di un full
node (quindi full-blockchain, full memory pool, full processor power per controllo transazioni real-time ecc..)
in pratica solo gli exchange, le mining pool e pochi altri potranno permettersi un full node.


hero member
Activity: 588
Merit: 500
Il problema fondamentale è che andrebbe riscritto anche l'intero sistema di transazioni attuali.
Voi parlate di salvare il saldo degli address di qualche anno prima... ma in realtà le TX non si basano sugli address ma sulla transazione stessa.

In input di una transazione non ci va infatti l'address di partenza, ma ci va la TX e l'input number corrispondente a quella TX.
Quindi, attualmente, per spendere BTC di 5 anni fa il sistema deve conoscere la TX (e non l'address).

Quindi si, sarebbe fattibile ma implicherebbe una fork in cui venga cambiato l'intero sistema di generare le transazioni... rendendo invalidi tutte quelle generate nel vecchio sistema e quindi implicherebbe un aggiornamento di tutti i wallet mondiali in modo forzato.
La vedo una proposta altamente improbabile se fatta solo per risparmiare qualche giga, visto che al giorno d'oggi dei Tera di spazio non costano nulla.
legendary
Activity: 2506
Merit: 1120
Si potrebbe introdurre un blocco di reset che riassume tutto il precedente ai soli fini di saldo degli address.
C'e' il problema degli script, contract e altre info che sono memorizzate nella blockchain confidando che rimangano li per il piu' lungo periodo di tempo possibile.
Inoltre il blocco sarebbe enorme e ridondante.
Temo non sia una grande idea.
hero member
Activity: 484
Merit: 500
Non ci avevo pensato ai blocchi, concordo è molto più significativo ragionare a tot blocchi che tot anni. Sempre che il concetto di troncatura sia realizzabile.
legendary
Activity: 1274
Merit: 1001
"shh, he's coding..."
Ho avanzato una proposta simile ieri su telegram. Anziché frazionare la chain ogni tot anni, lo farei ogni tot blocchi in quando i primi 5 anni di vita del bitcoin hanno un peso in MB dirreferente rispetto ai prossimi 5 anni.

E si, come detto da @picchio, anche secondo me sarebbe da fare un blocco iniziale ogni frazionatura contenente tutte le transazioni per ridistribuire i BTC ai leggittimi proprietari.

Secondo me è l'unico modo possibile e ci staranno sicuramente già pensando
legendary
Activity: 2506
Merit: 1120
Ciao a tutti, stavo ragionando sui problemi di scalabilità di bitcoin, in particolare rispetto alla costante crescita di dimensioni della blockchain.

Sarebbe stato possibile mettere dentro l'algoritmo che governa la rete bitcoin una sorta di "troncatura della blockchain" ogni 5 anni?
 
Mi spiego meglio: al 31 dicembre di ogni anno la rete cancella tutta la storia delle transazioni più vecchie di 5 anni, lasciando solo i saldi finali degli indirizzi in modo che (ovviamente) nessuno perda bitcoin, e "impostando un nuovo genesis block che parte 5 anni prima".

Sarebbe stato in qualche modo realizzabile?

Darebbe due vantaggi: limiterebbe le dimensioni della blockchain ad un valore finito, e garantirebbe maggiore anonimato in quanto basterebbe attendere 5 anni e i propri bitcoin non avrebbero più lo "storico dei proprietari precedenti".


DOvresti cancellare tutte le copie del mondo delle vecchie blockchain
Non funzionerebbe ugualmente per come sono gestiti i saldi a meno di non creare una genesis block con una transazione per ogni indirizzo non a zero e temo che sarebbe comunque una dimensione enorme del genesis block.
hero member
Activity: 484
Merit: 500
Ciao a tutti, stavo ragionando sui problemi di scalabilità di bitcoin, in particolare rispetto alla costante crescita di dimensioni della blockchain.

Sarebbe stato possibile mettere dentro l'algoritmo che governa la rete bitcoin una sorta di "troncatura della blockchain" ogni 5 anni?
 
Mi spiego meglio: al 31 dicembre di ogni anno la rete cancella tutta la storia delle transazioni più vecchie di 5 anni, lasciando solo i saldi finali degli indirizzi in modo che (ovviamente) nessuno perda bitcoin, e "impostando un nuovo genesis block che parte 5 anni prima".

Sarebbe stato in qualche modo realizzabile?

Darebbe due vantaggi: limiterebbe le dimensioni della blockchain ad un valore finito, e garantirebbe maggiore anonimato in quanto basterebbe attendere 5 anni e i propri bitcoin non avrebbero più lo "storico dei proprietari precedenti".

Jump to: