Criptovalute per manichini: Bitcoin e oltre
Pubblicato: 2022-03-11Bitcoin ha creato molto scalpore su Internet. È stato ridicolizzato, attaccato e alla fine è stato accettato ed è diventato parte della nostra vita. Tuttavia, Bitcoin non è solo. In questo momento, ci sono oltre 700 implementazioni di AltCoin, che utilizzano principi simili e vari algoritmi di criptovaluta.
Quindi, di cosa hai bisogno per creare qualcosa come Bitcoin?
Senza cercare di capire la tua motivazione personale per creare un sistema decentralizzato e anonimo per lo scambio di denaro/informazioni (ma sperando comunque che rientri nell'ambito delle attività morali e legali), analizziamo prima i requisiti di base per il nostro nuovo sistema di pagamento:
- Tutte le transazioni devono essere effettuate su Internet
- Non vogliamo avere un'autorità centrale che elaborerà le transazioni
- Gli utenti dovrebbero essere anonimi e identificati solo dalla loro identità virtuale
- Un singolo utente può avere tutte le identità virtuali che desidera
- L'offerta di valore (nuove bollette virtuali) deve essere aggiunta in modo controllato
Condivisione decentralizzata delle informazioni su Internet
Soddisfare i primi due requisiti dal nostro elenco, eliminando un'autorità centrale per lo scambio di informazioni su Internet, è già possibile. Ciò di cui hai bisogno è una rete peer-to-peer (P2P) .
La condivisione delle informazioni nelle reti P2P è simile alla condivisione delle informazioni tra amici e familiari. Se condividi informazioni con almeno un membro della rete, alla fine queste informazioni raggiungeranno tutti gli altri membri della rete. L'unica differenza è che nelle reti digitali queste informazioni non verranno alterate in alcun modo.
Probabilmente hai sentito parlare di BitTorrent, uno dei più popolari sistemi di condivisione di file P2P (consegna dei contenuti). Un'altra popolare applicazione per la condivisione P2P è Skype, così come altri sistemi di chat.
La conclusione è che puoi implementare o utilizzare uno dei protocolli P2P open source esistenti per supportare la tua nuova criptovaluta, che chiameremo Topcoin .
Algoritmo di hashing
Per comprendere le identità digitali, dobbiamo capire come funziona l'hashing crittografico . L'hashing è il processo di mappatura di dati digitali di qualsiasi dimensione arbitraria su dati di dimensione fissa. In parole più semplici, l'hashing è un processo per prendere alcune informazioni che sono leggibili e creare qualcosa che non ha alcun senso.
Puoi confrontare l'hashing con l'ottenere risposte dai politici. Le informazioni che fornisci loro sono chiare e comprensibili, mentre l'output che forniscono sembra un flusso casuale di parole.
Ci sono alcuni requisiti necessari per un buon algoritmo di hashing:
- La lunghezza dell'output dell'algoritmo di hash deve essere fissata (un buon valore è 256 byte)
- Anche il più piccolo cambiamento nei dati di input deve produrre una differenza significativa nell'output
- Lo stesso input produrrà sempre lo stesso output
- Non deve esserci alcun modo per invertire il valore di output per calcolare l'input
- Il calcolo del valore HASH non dovrebbe essere ad alta intensità di calcolo e dovrebbe essere veloce
Se dai un'occhiata alle semplici statistiche, avremo un numero limitato (ma enorme) di possibili valori HASH, semplicemente perché la nostra lunghezza HASH è limitata. Tuttavia, il nostro algoritmo di hashing (chiamiamolo Politician256) dovrebbe essere abbastanza affidabile da produrre solo valori hash duplicati per input diversi con la stessa frequenza con cui una scimmia in uno zoo riesce a digitare correttamente Amleto su una macchina da scrivere!
Se pensi che Amleto sia solo un nome o una parola, per favore smetti di leggere ora, o leggi il Teorema della scimmia infinita.
Firma digitale
Quando firmi un documento, tutto ciò che devi fare è aggiungere la tua firma al testo di un documento. Una firma digitale è simile: devi solo aggiungere i tuoi dati personali al documento che stai firmando.
Se capisci che l'algoritmo di hashing aderisce alla regola per cui anche la più piccola modifica nei dati di input deve produrre una differenza significativa nell'output , allora è ovvio che il valore HASH creato per il documento originale sarà diverso dal valore HASH creato per il documento con la firma apposta.
Una combinazione del documento originale e del valore HASH prodotto per il documento con i dati personali allegati è un documento firmato digitalmente .
Ed è così che arriviamo alla tua identità virtuale , che è definita come i dati che hai aggiunto al documento prima di creare quel valore HASH.
Successivamente, devi assicurarti che la tua firma non possa essere copiata e che nessuno possa eseguire alcuna transazione per tuo conto. Il modo migliore per assicurarsi che la tua firma sia protetta, è conservarla tu stesso e fornire un metodo diverso per consentire a qualcun altro di convalidare il documento firmato. Ancora una volta, possiamo ricorrere alla tecnologia e agli algoritmi che sono prontamente disponibili. Quello che dobbiamo usare è la crittografia a chiave pubblica nota anche come crittografia asimmetrica .
Per farlo funzionare, devi creare una chiave privata e una chiave pubblica . Queste due chiavi saranno in una sorta di correlazione matematica e dipenderanno l'una dall'altra. L'algoritmo che utilizzerai per creare queste chiavi assicurerà che ogni chiave privata avrà una chiave pubblica diversa. Come suggeriscono i loro nomi, una chiave privata è un'informazione che conserverai solo per te, mentre una chiave pubblica è un'informazione che condividerai.
Se utilizzi la tua chiave privata (la tua identità) e il documento originale come valori di input per l' algoritmo di firma per creare un valore HASH, supponendo che tu abbia mantenuto segreta la tua chiave, puoi essere certo che nessun altro può produrre lo stesso valore HASH per quel documento .
Se qualcuno ha bisogno di convalidare la tua firma, utilizzerà il documento originale, il valore HASH che hai prodotto e la tua chiave pubblica come input per l' algoritmo di verifica della firma per verificare che questi valori corrispondano.
Come inviare Bitcoin/Denaro
Supponendo che tu abbia implementato la comunicazione P2P, i meccanismi per la creazione di identità digitali (chiavi private e pubbliche) e fornito modalità agli utenti per firmare documenti utilizzando le loro chiavi private, sei pronto per iniziare a inviare informazioni ai tuoi colleghi.
Dal momento che non abbiamo un'autorità centrale che convaliderà quanti soldi hai, il sistema dovrà chiedertelo ogni volta e quindi controllare se hai mentito o meno. Pertanto, il record della transazione potrebbe contenere le seguenti informazioni:
- Ho 100 Topcoin
- Voglio inviare 10 monete al mio farmacista per il farmaco ( includeresti la chiave pubblica del tuo farmacista qui )
- Voglio dare una moneta come commissione di transazione al sistema ( ci torneremo più avanti )
- Voglio mantenere le restanti 89 monete
L'unica cosa che resta da fare è firmare digitalmente il record della transazione con la tua chiave privata e trasmettere il record della transazione ai tuoi peer nella rete. A quel punto, tutti riceveranno l'informazione che qualcuno (la tua identità virtuale) sta inviando denaro a qualcun altro (l'identità virtuale del tuo farmacista).
Il tuo lavoro è finito. Tuttavia, i tuoi farmaci non saranno pagati fino a quando l'intera rete non sarà d'accordo sul fatto che avevi davvero 100 monete e quindi potresti eseguire questa transazione. Solo dopo che la transazione è stata convalidata, il farmacista riceverà i fondi e ti invierà il farmaco.

Minatori di criptovaluta: una nuova razza di agenti
I minatori sono noti per essere persone che lavorano sodo e, a mio parere, sono pesantemente sottopagate. Nel mondo digitale delle criptovalute, i miner svolgono un ruolo molto simile, tranne che in questo caso fanno il lavoro ad alta intensità di calcolo invece di scavare mucchi di terra. A differenza dei veri minatori, alcuni minatori di criptovaluta hanno guadagnato una piccola fortuna negli ultimi cinque anni, ma molti altri hanno perso una fortuna in questa impresa rischiosa.
I miner sono il componente centrale del sistema e il loro scopo principale è confermare la validità di ogni singola transazione richiesta dagli utenti.
Per confermare la validità della tua transazione (o una combinazione di più transazioni richieste da pochi altri utenti), i miner faranno due cose.
In primo luogo, faranno affidamento sul fatto che "tutti sanno tutto", il che significa che ogni transazione eseguita nel sistema viene copiata e disponibile per qualsiasi peer nella rete. Esamineranno la cronologia delle tue transazioni per verificare che avevi effettivamente 100 monete per cominciare. Una volta confermato il saldo del tuo account, genereranno un valore HASH specifico. Questo valore hash deve avere un formato specifico; deve iniziare con un certo numero di zeri .
Ci sono due input per calcolare questo valore HASH:
- Dati del record di transazione
- Prova di lavoro del minatore
Considerando che anche il più piccolo cambiamento nei dati di input deve produrre una differenza significativa nel valore HASH di output , i miner hanno un compito molto difficile. Devono trovare un valore specifico per una variabile di prova di lavoro che produca un HASH che inizia con zeri. Se il tuo sistema richiede un minimo di 40 zeri in ogni transazione convalidata, il miner dovrà calcolare circa 2^40 diversi valori HASH per trovare la corretta prova di lavoro .
Una volta che un miner trova il valore corretto per la prova di lavoro, ha diritto a una commissione di transazione (la singola moneta che eri disposto a pagare), che può essere aggiunta come parte della transazione convalidata. Ogni transazione convalidata viene trasmessa ai peer nella rete e archiviata in uno specifico formato di database noto come Blockchain .
Ma cosa succede se il numero di miner aumenta e il loro hardware diventa molto più efficiente? I bitcoin venivano estratti su CPU, quindi GPU e FPGA, ma alla fine i minatori hanno iniziato a progettare i propri chip ASIC, che erano di gran lunga più potenti di queste prime soluzioni. All'aumentare dell'hash rate, aumenta anche la difficoltà di mining, garantendo così l'equilibrio. Quando viene introdotta più potenza di hashing nella rete, la difficoltà aumenta e viceversa; se molti miner decidono di staccare la spina perché la loro operazione non è più redditizia, la difficoltà viene riadattata per adattarsi al nuovo hash rate.
Blockchain for Dummies: il registro globale delle criptovalute
La blockchain contiene la cronologia di tutte le transazioni eseguite nel sistema. Ogni transazione convalidata, o batch di transazioni, diventa un altro anello della catena. Ogni singola società di sviluppo blockchain si affida a questo registro pubblico.
Quindi, la blockchain di Bitcoin è, essenzialmente, un registro pubblico in cui le transazioni sono elencate in ordine cronologico.
Il primo anello della blockchain di Bitcoin si chiama Genesis Block
Per saperne di più su come funziona la blockchain, suggerisco di leggere Blockchain Technology Explained: Powering Bitcoin, di Nermin Hajdarbegovic.
Non c'è limite al numero di minatori attivi nel tuo sistema. Ciò significa che è possibile che due o più miner convalidino la stessa transazione. Se ciò accade, il sistema verificherà lo sforzo totale investito da ciascun miner per convalidare la transazione semplicemente contando gli zeri. Il minatore che ha investito di più (trovato più zeri iniziali) prevarrà e il suo blocco sarà accettato.
Controllo dell'offerta di denaro
La prima regola del sistema Bitcoin è che possono essere generati un massimo di 21.000.000 di Bitcoin. Questo numero non è stato ancora raggiunto e, secondo le tendenze attuali, si pensa che questo numero sarà raggiunto entro l'anno 2140.
Ciò potrebbe farti dubitare dell'utilità di un tale sistema, perché 21 milioni di unità non suonano molto. Tuttavia, il sistema Bitcoin supporta valori frazionari fino all'ottavo decimale (0,00000001). Questa unità più piccola di un bitcoin è chiamata Satoshi , in onore di Satoshi Nakamoto, lo sviluppatore anonimo dietro il protocollo Bitcoin.
Nuove monete vengono create come ricompensa per i minatori per la convalida delle transazioni. Questa ricompensa non è la commissione di transazione che hai specificato quando hai creato un record di transazione, ma è definita dal sistema. L'importo della ricompensa diminuisce nel tempo e alla fine verrà azzerato una volta raggiunto il numero totale di monete emesse (21 milioni). Quando ciò accade, le commissioni di transazione svolgeranno un ruolo molto più importante poiché i minatori potrebbero scegliere di dare la priorità alle transazioni più preziose per la convalida.
Oltre a fissare il limite massimo del numero massimo di monete, il sistema Bitcoin utilizza anche un modo interessante per limitare la produzione giornaliera di nuove monete. Calibrando il numero minimo di zeri iniziali necessari per un calcolo della prova di lavoro, il tempo necessario per convalidare la transazione e ottenere una ricompensa di nuove monete, è sempre impostato a circa 10 minuti. Se il tempo tra l'aggiunta di nuovi blocchi alla blockchain diminuisce, il sistema potrebbe richiedere che il proof-of-work generi 45 o 50 zeri iniziali.
Quindi, limitando la velocità e il numero di nuove monete che possono essere generate, il sistema Bitcoin controlla efficacemente l'offerta di moneta.
Inizia a "stampare" la tua valuta
Come puoi vedere, creare la tua versione di Bitcoin non è così difficile. Utilizzando la tecnologia esistente, implementata in modo innovativo, hai tutto ciò che ti serve per una criptovaluta.
- Tutte le transazioni vengono effettuate su Internet utilizzando la comunicazione P2P, eliminando così la necessità di un'autorità centrale
- Gli utenti possono eseguire transazioni anonime utilizzando la crittografia asincrona e sono identificati solo dalla loro combinazione chiave privata/chiave pubblica
- Hai implementato un libro mastro globale convalidato di tutte le transazioni che è stato copiato in modo sicuro su ogni peer nella rete
- Hai un'offerta di moneta sicura, automatizzata e controllata, che assicura la stabilità della tua valuta senza la necessità di un'autorità centrale
Un'ultima cosa degna di nota è che, nella sua essenza, la criptovaluta è un modo per trasferire valore/informazioni anonime da un utente a un altro in una rete peer-to-peer distribuita .
Prendi in considerazione la possibilità di sostituire le monete nel record della transazione con dati casuali che potrebbero anche essere crittografati utilizzando la crittografia asincrona in modo che solo il mittente e il destinatario possano decifrarli. Ora pensa ad applicarlo a qualcosa come Internet Of Things !
Un certo numero di pesi massimi della tecnologia stanno già esplorando l'uso della tecnologia blockchain nelle piattaforme IoT, ma questa non è l'unica potenziale applicazione di questa tecnologia relativamente nuova.
Se non vedi alcun motivo per creare una tua valuta alternativa (a parte uno scherzo), potresti provare a utilizzare lo stesso approccio o un approccio simile per qualcos'altro, come l'autenticazione distribuita, la creazione di valute virtuali utilizzate nei giochi, i social network e altre applicazioni, oppure potresti procedere alla creazione di un nuovo programma fedeltà per la tua attività di e-commerce, che premierà i clienti abituali con token virtuali che potrebbero essere riscattati in seguito.