Una delle funzioni più basilari all'interno della tecnologia blockchain è legata alla casualità o semplicemente "casuale" come è tecnicamente noto.
LIl motivo della sua importanza è piuttosto semplice: senza la casualità non esisterebbe la crittografia asimmetrica che rende possibile lo schema di sicurezza delle criptovalute. In effetti, senza casualità, i computer, Internet e persino il tuo cellulare sarebbero molto diversi da come sono oggi e, molto probabilmente, sarebbero anche dispositivi insicuri.
Ma com'è possibile? Perché la casualità è così importante nel mondo digitale e delle criptovalute? Questo e altro puoi scoprire di seguito.
Gli inizi della casualità nel mondo digitale
La casualità è stata usata dall'umanità per molto tempo. Dal lancio di dadi, ossa o lettura di carte per conoscere il tuo futuro ad altri usi rituali. Tuttavia, fu solo nel Medioevo (XVI secolo), quando fu formalmente studiata la casualità.
Infatti, uno degli usi principali della casualità era legato allo studio del numero pi e della forma casuale e infinita dei suoi numeri decimali. I matematici interessati a questo fatto iniziarono a vedere come questo fenomeno si ripetesse in altri spazi.
Ma, all'inizio del XX secolo, con l'avvento dei fondamenti matematici di probabilità e algoritmici, l'utilità della casualità è cresciuta in modo esponenziale. Ad esempio, la casualità è elementare per gli studi di fisica, in particolare la fisica quantistica. In informatica l'uso della casualità è elementare per la costruzione di algoritmi, chip e, naturalmente, crittografia, una delle tecnologie base nella creazione del mondo digitale e della sua sicurezza.
Casualità e sua importanza
Ora, perché è così importante generare numeri casuali? Che utilità ha tutto questo nella tecnologia blockchain? Bene, la verità è che generare un numero casuale è qualcosa di molto comune e necessario quando si tratta di sicurezza informatica.
Ad esempio, ogni volta che ti connetti a un Web su Internet utilizzando una connessione HTTPS (Secure HTTP Connection), ciò che accade è che il tuo computer/cellulare si connette al server Web e si scambiano messaggi per creare una connessione protetta tra questi due computer. Questo processo è possibile grazie all'uso di numeri casuali e alla loro implementazione nella crittografia che protegge le nostre comunicazioni digitali.
Naturalmente, questo è solo un esempio dell'importanza della casualità nel nostro mondo digitale. La casualità è presente in cose semplici come la tua carta di credito/debito (creando i token di autenticazione che autorizzano le spese che fai), la connessione wireless del tuo cellulare (le connessioni 2G, 3G e 5G utilizzano la crittografia asimmetrica).
Casualità in Blockchain
Ora, essendo blockchain una tecnologia digitale progettata per fornire sicurezza ai suoi utenti, la casualità è presente. Possiamo vedere l'uso della casualità nella blockchain in uno dei punti base di questa tecnologia: crittografia eperché la crittografia asimmetrica utilizzata dalle criptovalute è costruita grazie all'utilizzo di numeri casuali. Ad esempio, quando si crea una chiave Bitcoin utilizzando lo schema ECDSA e la curva secp256k1, ciò che fa un portafoglio Bitcoin è scegliere un numero casuale (un numero molto grande) e utilizzare quel numero all'interno di questa formulazione matematica:
y^2 = x^3 + ascia + b
Assicurarsi che la casualità sia abbastanza "caotica e unica" è qualcosa che i computer possono fare abbastanza bene. E allo stesso tempo, possono eseguire i calcoli necessari per risolvere questa formulazione in brevissimo tempo, dandoci accesso a una delle forme di crittografia più sicure conosciute fino ad oggi.
Tutto questo per un unico scopo: creare due chiavi (pubblica e privata) per gestire i nostri BTC in sicurezza in una rete trustless e con la certezza che i nostri BTC sono protetti da principi computazionali e matematici ampiamente testati.
L'evoluzione della casualità blockchain
Naturalmente, anche la tecnologia blockchain si evolve, così come il suo uso della casualità. Sapendo che i computer non possono rappresentare un vero generatore casuale (caos e ordine non possono coesistere nello stesso algoritmo), una di quelle evoluzioni della casualità blockchain è quella di utilizzare la stessa blockchain per garantire la generazione di "numeri casuali" in modo che possano essere utilizzati in spazi diversi.
Spieghiamo un po':
Per i computer è quasi impossibile rappresentare veri numeri casuali. Uno sviluppatore può creare un algoritmo di generazione di numeri casuali. Ma questo generatore seguirà dei "parametri" prestabiliti (un algoritmo), che alla fine potranno essere studiati con mezzi matematici e probabilistici. Ciò significa che questi algoritmi di generazione di numeri casuali (o pseudo-casuali) possono essere analizzati e violati, dando origine ai noti attacchi ai generatori di numeri casuali.
Con questo in mente, molti sviluppatori blockchain stanno cercando di trasformare i dati all'interno di queste reti in generatori di casualità, che possono essere utilizzati in altre applicazioni.
Ma come è possibile? Bene, alcuni di questi modelli sono:
blocco hash
Uno dei mezzi per raggiungere questo obiettivo è Block-hashing, in cui gli hash di blocchi, transazioni o loro combinazioni vengono utilizzati come fonte di casualità. Poiché l'hash è deterministico, tutti otterranno lo stesso risultato. Un blocco, una volta aggiunto alla blockchain, vi rimarrà per sempre, quindi tutti potranno verificare la correttezza dei numeri generati.
Tuttavia, questo metodo presenta un serio problema di sicurezza: gli hash possono essere manipolati dai minatori. Sebbene questo problema sia piccolo e rilevabile, all'interno di un generatore di numeri casuali sicuro è intollerabile. Per questo motivo, questo sistema viene utilizzato pochissimo.
Oracoli
Un altro possibile modo per generare casualità nella blockchain per applicazioni di terze parti è tramite gli oracoli. Progetti come Provable, Uniswap TWAP o Chainlink VRF sono solo alcuni esempi di questo sistema.
L'operazione è semplice. Questi sistemi raccolgono dati da fonti esterne, li elaborano all'interno della loro rete e generano un enorme pool di dati casuali. Questi dati possono quindi essere utilizzati dagli utenti del sistema. La cosa migliore è che questo sistema non è solo decentralizzato, ma utilizza un gran numero di fonti casuali in parallelo. Inoltre, tutto questo lavoro è accompagnato da un test crittografico per verificare i dati casuali generati.
Indubbiamente, la casualità gioca un ruolo fondamentale nel nostro mondo digitale e nella blockchain. Grazie ad esso possiamo avere mezzi per comunicare in sicurezza su Internet. E, allo stesso tempo, ci permette di creare una tecnologia che ci aiuti a migliorare questa capacità. Pertanto, la blockchain diventa un esempio di ciò che la casualità ci consente di ottenere e ci offre strumenti per continuare a migliorare questi sistemi da cui dipendono la nostra privacy e sicurezza nel mondo digitale.