Transmutation of coded texts decipherable using an interpretation "key".
It can be:
Hashing is a form of cryptography where the output (digest) has a fixed dimension determined by an algorithm.
Ethereum uses hasing algprithm Keccack256 (256 bit) similar to SHA256 (used by Bitcoin).
Asymmetric cryptography is base on the fact that the content of a communication can be crypted by a public key, known by everyone, but decryptable only by the corresponding private key. Public key and private key, therefore, must be generated in pairs, but the private one must be keept secret. The public key is generated FROM the private key, through an algorithm (ECDSA in the Bitcoin case, Schnorr algorithm adopted from the Taproot fork since Novembre 2021), but it's impossible to do the opposite, to get private key from the public one.
The content of the message is encrypted from the sender using the public key of the recipient. The message will be decryptable ONLY using the recipient's private key, who will have to keep it secret ensuring not to lose it.
This allow to execute a communication without requesting a secure channel for the initial exchange of the secret decrypting keys (as happens in the symmetric cryptography).
Because the computational weight of asymmetric cryptography, it is usally leveraged only for small blocks of data, generally the tranfer of a symmetric cipher key (for example a session key, like the Jason Web Token). This symmetric key, then, is used to cipher longer messages.
The message is encrypted and the resulting digest is also encrypted (namely signed) with the private key. This produces a digital sign. This sign can be verified by everyone in the network using the associated public key, based on the same correlation concept that binds the private key to the public key through the cipher algorithm. If network nodes notice that the sign is invalid, then the relate message is rejected.
If private key is lost, the Bitcoin network won't be able to recognize in any other way the ownership of the money: the relative amount of money will be unusable by anyone and, so, will have to be considered definely lost. There have been cases of patrimonial lost in the first years of operation of the cryptocurrency: for example, in 2013, a user complained the lost of 7.500 bitcoins, at the time worth 7,5 millions dollars, caused by the fact he accidentally getting rid of an hard disc containing his private key
Schnorr algorithm is a more advanced alternative of the public key creation algorithm ECDS (Elliptic Curve Digital Signature Algorithm), aforedmentioned. The Bitcoin creator got it from open source library Open SSL.
It's been patented until 2008, so its exploiting on an open source system was not possible in the moment of the creation of Bitcoin.
Le firme Schnorr hanno uno schema semplice, ma decisamente più sicuro, in virtù della loro linearità. Questo consente una migliore ottimizzazione delle transazioni multisignature. Quando si crea un indirizzo multisignature, chiunque ne invii fondi non ha bisogno di sapere quali condizioni siano impostate per spendere gli input. Chi invia potrebbe non sapere neanche che sta inviando fondi a un setup multisig – l'unica peculiarità dell'indirizzo è il fatto che inizia con un “3”.
Tuttavia, la natura delle condizioni viene rivelata quando si spostano i fondi. Supponiamo di aver usato una configurazione 2-di-3 insieme a Alice e Bob. Per spendere, diciamo, 5 BTC, tutti e tre dobbiamo fornire le chiavi pubbliche e le firme valide. Quando si spostano 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 si crea un multisig più grande (ad es., 8-di-10), si occupa parecchio spazio sulla blockchain, il che comporta un maggiore fee.
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 e rendendo 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 si è neanche in grado di distinguere tra transazioni individuali e multisig.
Le firme di Schnorr potrebbero essere integrate nel codice attraverso un soft fork (vedi capitolo (“Fork”), ovvero un cambiamento che non dividerebbe il network. Taproot integra questa funzionalità come una delle sue maggiori novità.
L’aggiornamento Taproot è entrato in funzione il 14 Novembre 2021(https://www.ilsole24ore.com/art/con-upgrading-tecnico-taproot-bitcoin-entra-una-nuova-era-AEtsxCx).
Il termine “Multisig” significa multi-signature, e descrive un tipo specifico di firma digitale che consente a due o più utenti di firmare documenti come un gruppo. Di conseguenza, una multi-signature viene prodotta attraverso la combinazione di diverse firme uniche. Per usare una semplice analogia, possiamo immaginare una cassetta di sicurezza con due lucchetti e due chiavi. Alice possiede la prima chiave e Bob possiede la seconda. L’unico modo per aprire la cassetta è fornire entrambe le chiavi contemporaneamente, quindi uno dei proprietari non può aprire la cassetta senza il consenso dell’altro. In pratica, è possibile accedere ai fondi all’interno di un indirizzo multi-signature solo usando 2 o più firme. Di conseguenza, l’uso di uno wallet multisig permette agli utenti di creare un ulteriore livello di sicurezza per i propri soldi.
Generalmente, i bitcoin vengono conservati in un indirizzo single-key standard, quindi chiunque possieda la corrispondente chiave privata è in grado di accedere ai fondi. Questo significa che serve solo una chiave per firmare le transazioni e che chi ha la chiave privata può trasferire le monete quando vuole, senza necessità di un’autorizzazione da altri. Sebbene gestire un indirizzo single-key sia più veloce e più semplice rispetto a uno multisig, presenta una serie di problemi, soprattutto per quanto riguarda la sicurezza. Avendo una sola chiave, i fondi sono protetti da un singolo punto di vulnerabilità, e per questa ragione gli hacker continuano a sviluppare nuove tecniche di phishing per cercare di rubare i fondi degli utenti di criptovalute.
Inoltre, gli indirizzi single-key non sono l’opzione più adatta per le società che hanno a che fare con le criptovalute. Supponiamo che i fondi di una grande impresa siano conservati all’interno di un indirizzo standard, con una singola chiave privata corrispondente. Questo implicherebbe che la chiave privata verrebbe affidata a una singola persona o a diverse persone allo stesso tempo. Un metodo chiaramente non molto sicuro.
A differenza dei single-key, i fondi archiviati in un indirizzo multisig possono essere spostati solo quando vengono fornite firme multiple (generate attraverso l’uso di diverse chiavi private).
In base a come è configurato l’indirizzo multisig, potrebbe richiedere una diversa combinazione di chiavi: la più comune è 2-of-3, in cui 2 sono sufficienti per accedere ai fondi di un indirizzo a 3-firme. Tuttavia, esistono molte altre variazioni, come 2-of-2, 3-of-3, 3-of-4, ecc. Usando uno wallet multisig, gli utenti sono in grado di prevenire i problemi causati dalla perdita o dal furto di una chiave privata. Quindi, anche se una delle chiavi è compromessa, i fondi rimangono al sicuro.
Supponiamo che Alice crei un indirizzo multisig 2-of-3 e che conservi ciascuna chiave privata in un posto o un dispositivo diverso (ad es. cellulare, laptop e tablet). Anche se il suo cellulare venisse rubato, il ladro non riuscirebbe ad accedere ai suoi fondi usando solo 1 delle 3 chiavi.
Creando uno wallet multisig che richiede due chiavi, Alice è in grado di stabilire un meccanismo di autenticazione a due fattori per accedere ai suoi fondi. Per esempio, potrebbe conservare una chiave privata nel proprio laptop e una nel proprio cellulare (o persino su un pezzo di carta). Così facendo avrebbe la garanzia che solo qualcuno che può accedere a entrambe le chiavi può effettuare una transazione.
Tuttavia, è bene tenere presente che usare la tecnologia multisig per l’autenticazione a due fattori può risultare pericoloso, soprattutto nel caso di un indirizzo multisig 2-of-2. Se una delle chiavi viene persa, non sarà possibile accedere ai fondi. Quindi, usare una configurazione 2-of-3 o un servizio 2FA di terzi che offre codici di backup sarebbe più sicuro. Nel caso degli account su piattaforme di exchange, è fortemente raccomandato l’uso di Google Authenticator.
Creare uno wallet multisig 2-of-3 permette di effettuare una transazione escrow tra due parti (Alice and Bob) che include una terza parte (Charlie) come giudice fidato nel caso di controversia.
In tale scenario, innanzitutto Alice depositerebbe i fondi, i quali verrebbero bloccati (nessun utente potrebbe accedervi da solo). In seguito, se Bob fornisce i beni o i servizi come concordato, le due parti possono usare le proprie chiavi per firmare e completare la transazione.
Charlie, il giudice, dovrebbe intervenire solo nel caso di una disputa. A questo punto potrebbe usare la sua chiave per creare una firma da fornire a Alice o Bob, in base alla decisione di Charlie.
Un consiglio di amministrazione potrebbe usare uno wallet multisig per controllare l’accesso ai fondi della compagnia. Per esempio, configurando uno wallet 4-of-6 e fornendo a ciascuno una chiave, nessun membro del consiglio sarebbe in grado di usare i fondi impropriamente. Di conseguenza, solo le decisioni che sono state concordate dalla maggioranza potrebbero essere eseguite.