Come forse saprai,
Bitcoin applica i diritti di proprietà attraverso ciò che chiamiamo Elliptic Curve Digital Signature Algorithm (o ECDSA). L'algoritmo permette di prendere un numero (ossia, una
chiave privata) e derivare da esso una chiave pubblica.
La magia di questo passaggio sta nel fatto che, mentre è semplice per te ottenere la chiave pubblica da quella privata, l'inverso è impossibile. La tua chiave privata è il tuo passaporto per il network di Bitcoin. E' ciò che ti consente di generare un
indirizzo per ricevere
monete e di spenderle in seguito.
In questo articolo, parleremo dell'algoritmo di firma Schnorr, un'alternativa all'ECDSA che potrebbe introdurre dei cambiamenti interessanti in Bitcoin.
Le
firme digitali funzionano esattamente come i loro antenati su carta e penna, ma sono molto più sicure. Con un po' di tempo e impegno, chiunque può falsificare una firma su carta. Non puoi fare lo stesso con uno schema di firma digitale robusto, anche avendo centinaia di migliaia di anni a tua disposizione.
Ci sono diversi casi d'uso per le firme digitali. Uno dei più diffusi riguarda il dimostrare al mondo che hai scritto un particolare messaggio. Come menzionato, puoi creare una chiave pubblica partendo da una chiave privata (un numero enorme che dovresti tenere segreto). Per far ciò, basta eseguire qualche fantasia matematica sulla curva secp256k1. Dopodiché, puoi anche generare un indirizzo pubblico dalla tua chiave pubblica.
Nota che è completamente sicuro mostrare la tua chiave pubblica a chiunque. Puoi aggiungerla al tuo sito web o alla tua bio su Twitter per consentire agli altri di verificare la tua identità. Allo stesso modo, puoi condividere i tuoi indirizzi pubblici con gli altri per trasferire criptovalute.
La tua chiave privata ti permette di creare una firma digitale. Scrivendo un messaggio ed eseguendo un'operazione su di esso usando la tua chiave privata, crei un messaggio firmato. Chiunque può esaminarlo e confrontarlo con la tua chiave pubblica per verificare che sia stato davvero firmato da te.
Come si collega questo a Bitcoin? Ogni volta che effettui una transazione in
Bitcoin, stai firmando digitalmente un messaggio che dice
Sto inviando queste monete che sono state in precedenza inviate a me. Quindi, quando viene inviato agli altri
nodi sul network, questi possono controllare che la firma ECDSA corrisponda al messaggio. In caso negativo, i nodi lo rifiutano.
Le firme di Schnorr sono un tipo di schema diverso. Opera in modo simile all'Elliptic Curve Digital Signature Algorithm che usiamo attualmente, ma presenta una serie di vantaggi su di esso. Le firme di Schnorr sono in realtà meno recenti dell'ECDSA, cosa che porta molti a chiedersi per quale motivo non sono state integrate in Bitcoin dall'inizio.
Una possibile spiegazione è che Claus P. Schnorr – il creatore dello schema – le ha brevettate. I brevetti sono scaduti a inizio 2008, mesi prima della pubblicazione dello whitepaper di Bitcoin, ma lo schema era comunque privo di standardizzazione generale. Per questo motivo,
Satoshi Nakamoto ha optato per il più ampiamente accettato (e
open source) ECDSA.
Le firme di Schnorr sono piuttosto semplici in confronto ad altri schemi. Di conseguenza, sono più provatamente sicure rispetto alle loro alternative. Potrebbe non significare molto a prima vista, ma hanno un'altra potente caratteristica. la linearità.
In poche parole, questo rende lo schema particolarmente attraente per determinate attività – in particolare, per le transazioni
multisignature. Potresti sapere che Bitcoin supporta già le multisig, ma non nel migliore dei modi.
Quando crei un indirizzo multisignature, chiunque ti invii fondi non ha bisogno di sapere quali condizioni hai impostato per spendere gli input. Potrebbero non sapere neanche che stanno inviando fondi a un setup multisig – l'unica peculiarità dell'indirizzo è il fatto che inizia con un “3”.
Tuttavia, riveli la sua natura quando vuoi spostare i fondi. Supponiamo di aver usato una configurazione 2-di-3 insieme a Alice e Bob. Per spender, diciamo, 5 BTC, tutti e tre dobbiamo fornire le chiavi pubbliche e le firme valide. Quando sposti i fondi fuori dall'indirizzo, l'intero network può sapere cosa è successo esaminando la
blockchain.
Dal punto di vista della privacy, non è una buona notizia. Inoltre, se creiamo un multisig più grande (ad es., 8-di-10), stiamo occupando parecchio spazio sulla blockchain. Questo può essere costoso, in quanto risulterà in una transazione più lunga – ricorda che più byte ci sono nella tua transazione, più dovrai pagare per trasmetterla.
Le firme di Schnorr sono state presentate come una soluzione a questi problemi di privacy e
scalabilità. Consentono cose come l'
aggregazione delle firme, che combina le firme di diversi firmatari in una singola firma. La risultante “master signature” avrà la stessa lunghezza di una normale firma individuale, portando a un risparmio di spazio significativo.
Inoltre, le firme combinate rendono molto più difficile per un osservatore determinare chi ha firmato (o non ha firmato) una transazione. Negli schemi m-of-m (in cui tutti i partecipanti devono firmare per spendere i fondi), non riusciresti neanche a distinguere tra transazione individuali e multisig.
Essenzialmente, le firme di Schnorr sono un importante componente per ulteriori progressi. Una volta implementate, possono essere sfruttate per migliorare tecnologie in crypto come gli
atomic swap e il
Lightning Network.
Non ne siamo sicuri. Come per la maggior parte degli aggiornamenti al protocollo Bitcoin, potrebbe volerci del tempo prima che la comunità generale di utenti Bitcoin concordi sull'inclusione delle firme di Schnorr. I contributori a Bitcoin Core Pieter Wuille, Jonas Nick e Tim Ruffing hanno presentato una bozza della
Bitcoin Improvement Proposal (BIP), ma c'è ancora del lavoro da fare.
Blockstream ha già rilasciato un'implementazione –
MuSig. Consentendo l'aggregazione di firma e chiave, potrebbe costituire la base per lo schema di firme Schnorr di Bitcoin.
Le firme di Schnorr potrebbero essere integrate nel codice attraverso un
soft fork, ovvero un cambiamento che non dividerebbe il network. Invece, sarebbe un aggiornamento “opt-in”. Tuttavia, sarebbe fin troppo ottimistico supporre che le vedremo integrate nel prossimo futuro – potrebbero passare un paio d'anni prima di raggiungere il consenso.
Le firme di Schnorr sono uno degli obiettivi più attesi sull'attuale tabella di marcia di Bitcoin. Con un singolo aggiornamento, possono fornire vantaggi significativi in termini di privacy e
scalabilità. Cosa forse più interessante, creano anche le condizioni per ulteriori sviluppi in
smart contract Bitcoin e costrutti più avanzati come
Taproot.