introduzione a bitcoin - mariapilot.noblogs.org · la moneta per prima cosa cerchiamo di capire...

21
INTRODUZIONE A BITCOIN Filippo Merli 1

Upload: doanphuc

Post on 15-Feb-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

INTRODUZIONE A BITCOIN

Filippo Merli

1

INTRODUZIONE

Questo documento si rivolge a chi intende investire in bitcoin, magari perché attirato dalla veloceascesa del valore, e vuole capire come funziona il protocollo senza perdersi tra centinaia di link.

Lo scopo di questo documento permettere al lettore di capire cosa è e come funzione bitcoinsenza dare per scontata alcuna conoscenza tecnica del lettore.

Inoltre “introduzione a bitcoin” vuole essere il più sintetica possibile, la pretesa è quella di dare unidea precisa di bitcoin portando via il minor tempo possibile al lettore.

Il mio proposito è quello di approfondire via via la guida con appendici tecniche che riprendono gliargomenti trattati, infatti questa è solo la prima bozza.

Alcuni concetti possono risultare ostici appena li si incontra ma proseguendo la lettura saràfacile comprenderli quindi consiglio al lettore che si trovi spaesato di fronte a certi argomenti dinon demordere e di continuare la lettura non soffermandosi troppo su concetti che potrannoessere compresi solo proseguendo nella lettura.

Introduzione a bitcoin è stata scritta nei ritagli di tempo quindi non escludo che vi siano moltierrori garmmaticali e paragrafi da migliorare, per qualsiasi consiglio potete scrivermi [email protected].

Un ringraziamento speciale va alla community italiana bitcoin, che mi è stata di grande aiutosoprattutto nella fase iniziale del mio approccio al mondo dei bitcoin.

28/11/2013

2

PANORAMICA

Questa guida è suddivisa in tre parti ed ognuna è indispensabile.

Nella prima parte verrà spiegato cosa è una moneta, e si cercherà di confrontare bitcoin con levalute FIAT e l’oro.(Questa è forse la parte che necessita più di tutte di qualche correzione e diessere ampliata)

Nella seconda parte vengono introdotti, molto approssimativamente, alcuni concetti di crittografiafondamentali per capire il funzionamento del protocollo bitcoin.

Nella terza parte finalmente viene spiegato come funziona il protocollo bitcoin, inizialmente inmodo molto semplice e discorsivo per abituare il lettore all’idea di moneta matematica, dopo sicerca di essere più specifici, senza comunque scendere nel dettaglio, in modo che il lettorepossa farsi un idea approssimativa del funzionamento del protocollo.

Infine si può trovare una bozza dell’appendice numero 1 che illustra più nello specifico ilfunzionamento del protocollo.

3

INDICE

La moneta pg5

Crittografia pg8

Bitcoin pg12

Appendice 1 pg17

4

LA MONETA

Per prima cosa cerchiamo di capire cosa è una moneta.

Gli scambi sono alla base della società, l’uomo come singolo interagisce con il mondo e con ipropri simili attraverso scambi, la società è una rete di uomini che interagiscono.

In un mondo dove le risorse sono limitate e quindi esiste il concetto di proprietà, lo scambio dibeni e servizi assume un ruolo importante all’interno della società.

La moneta nasce dalla necessità di ottimizzare questi scambi, in particolare di avere un beneche sia richiesto e quindi riconosciuto da tutti. (questo bene facilita li scambi e permette di avereun indice dei prezzi inoltre può essere accumulato)

Ma come è possibile che un bene sia richiesto da tutti?Semplice, immaginiamo un bene che è scarso, non si deteriora, e per qualche sua qualità èrichiesto da abbastanza persone:

1) ho 10 mele che rischiano di andare a male, ma non ho bisogno di nienteFare marcire le mele sarebbe uno spreco.

Perché non scambiarle per un po di quel bene che non si deteriora?

Almeno tra 10 giorni potrò rifilarlo a qualche idiota, che sarà disposto a darmi 10 melein cambio solo perché luccica.

2)la richiesta dell’oro aumenta, sempre più persone fanno questo ragionamento, si entrain un circolo, con l’oro posso comprare tutto, le mele non vanno più a male, perscambiare mele con uova non dovrò più cercare per tre ore chi ha le uova e vuole lemele,si può facilmente calcolare il valore di qualsiasi cosa facendo riferimento all’oro,sono tutti più contenti.

3)il prezzo dell’oro non è piu legato al suo luccicare, solo quattro gatti lo vogliono perchèluccica, ma alle sue proprietà che lo rendono una buona moneta.

5

Ora che si è capito cosa è la moneta si possono analizzare quali sono le proprietà fondametaliche deve avere.

Scarsità: la monete deve essere scarsa, nel Shara nessuno sarebbe cosi pazzo dascambiare qualsivoglia bene per della sabbia, in poche parole un bene che tutti possonoavere in quantità illimitata non può avere valore!

Divisibilità: se ho 10 mele che stanno per marcire, mi serve a poco che nel mercato ci sianostatue che valgono 10000 mele.

Valore iniziale: è fondamentale che abbia un valore iniziale, non importa che questo valore siariconosciuto da tutti, l’importante è che ci siano que quattri gatti disposti a comprarlo,questo permetterà l’innescarsi della spirale che porterà il bene ad essere moneta.

Una volta che un bene acquista lo status di moneta è difficile che venga soppiantato.

Di beni che soddisfano queste caratteristiche ne è pieno il mondo, alcuni le soddisfano meglio,alcuni le hanno soddisfatte solo in determinate epoche o aree geografiche: di alluminio è pieno ilmondo ma solo recentemente si è scoperto come estrarlo in maniera efficiente, un bene puòessere scarso in un luogo ma non nel resto del mondo.

Prorprio per il fatto che di beni di questo tipo ne esistono molti nella storia ci sono stati moltissimitipi di moneta, ma nei secoli quella che ha preso piede è stata l’oro.(soddisfava al meglio questecaratteristiche)

Dato che l’oro poteva essere problematico da trasportare e da dividere sono nate le banconote,le quali potevano essere cambiate in oro.

Con l’introduzione delle banconote l’oro stava relativamente* fermo e l’economia funzionava,quindi qualcuno ha pensato che si potesse scindere il legame tra banconote ed oro.

Ora la scarsità della monete è decisa da persone, le quali per i più svariati motivi* pensano chesia giusto variare la quantità di moneta, quando come si è visto prima questi motivi non rientranonelle funzioni di una moneta(le funzioni che si sono riportate sono quelle caratteristiche dellamoneta che nasce dal popolo per il popolo e che viene adottata attraverso un processo diselezione perché funziona).

Attraverso queste variazione di quantità si cerca di modificare il tasso di interesse per fareaumentare o diminuire gli investimenti , ma se aumentare o diminuire gli investimenti sia buono èun informazione che non si può conoscere se non attraverso il processo della concorrenza datoche è distribuita tra troppe persone.

6

Inoltre chi controlla la quantità di moneta troppo spesso tende ad aumentarla perchè li facomodo, i primi che ricevono la moneta godono di un certo vantaggio, ma gli ultimi a cui arrivavedono il potere di acquisto dei propri risparmi calare via via che la nuova moneta inizia a girare.(l’equazione è semplice se la quantità di moneta disponibile per comprare i beni cresce ma ibeni non crescono ci saranno più monete per comprare li stessi beni di conseguenza il potere diacquisto delle monete calerà)

La fiducia nelle valute FIAT cala vertiginosamente e anche il loro potere di acquisto, sembraproprio che ci si debba augurare un ritorno all’oro, ma c’è qualcosa che assolve alla funzione dimoneta in modo migliore e qui entrano in gioco i bitcoin.

I bitcoin hanno tutte le caratteristiche che sono richieste ad una moneta:

sono stati creati in modo tale che sia impossibile l’esistenza di più di 21 milioni di bc,quindi sono scarsi

sono facilmente divisibili, un bitcoin può essere diviso in un miliardo di parti.

c’è stato un gruppo di persone che riconoscendo nei bitcoin una certa qualità sono statedisposte ad acquistarli permettendo la nascita di quella spirale sopra descritta.

I vantaggi rispetto all’oro sono notevoli: non esiste più il problema del trasporto dato chedisponendo di una conessione ad internet è possibile inviarli in tutto il mondo in breve tempo,sono più facili da dividere dell’oro, non esiste la possibilità di falsificazione.

Grazie alla lungimiranza degli ideatori, che hanno pensato un metodo per creare bitcoinaccessibile a chiunque ed hanno distribuito i primi bitcoin da loro creati, i bitcoin si sono diffusicon una certa equità tra chi ne ha saputo riconoscere le potenzialità.

Naturalmente molte persone si sono arricchite creando bc quando era facile o acqustandoliquando valevano poco, ma come si è visto sopra questo è un processo inevitabile per lacreazione di una moneta, chi entra prima ne trae vantaggio, se nessuno entra la moneta non sicrea, inoltre queste persone si sono prese un grosso rischio scommettendo sui bc.

7

CRITTOGRAFIA

Per capire come funziona il protocollo bitcoin, è indispensabile la conoscenza di alcuni concettidi crittografia.

Bitcoin sfrutta la crittografia a chiave assimmetrica in particolare ECDSA, e gli algoritmi di hashin particolare SHA­256 e RIPMED­150

Crittografia a chiave asimmetrica:

La crittografia nasce dall’esigenza comunicare in modo privato, si pensi alle informazioni militariche i generali dell’antichità dovevano scambiarsi attraverso lettere.

Nelle crittografia a chiave simmetrica per decifrare il crittogramma (messaggio cifrato), si usa lastessa chiave che viene usata per la cifratura, o una facilmente ricavabile da essa.L’esempio più banale per cifrare un testo è definire un numero che mette in relazione le letteredel messaggio e quelle del crittogramma, la funzione di cifratura è “la lettera nel crittogramma èquella che si trova dopo x posizioni nell’alfabeto rispetto a quella del messaggio”:

Cifratura:5 = chiave di cifraturaciao = messaggio da cifrare

c=h; i=n; a=f; o=thnft = messaggio cifrato

Decifratura:­(chiave cifratura) = chiave decifratura = ­5hnft = crittogramma

h=c; n=i; a=f; o=tciao = messaggio in chiaro

Il più grosso limite dei sitstemi a chiave pubblica è che, per essere sicuri che nessundelinquente sia in grado di leggere il nostro messaggio, bisogna scambiare la chiave in modosicuro.

L’enorme capacità di calcolo, resa disponibile dai calcolatori, ha permesso l’uso di algoritmi dicifratura a chiavi asimmetriche.Questi permettono di poter decifrare un messaggio attraverso l’uso di una chiave didecifratura (privata) che non è ricavabile dalla chiave di cifratura (pubblica), ma richiedonomolta potenza di calcolo per essere eseguiti (il giochino che si è fatto prima con ciao deveessere fatto da un pc se no ci si sta una vita!)

8

Creata una chiave privata (decifratura) è immediato ricavarne quella pubblica (cifratura) ma ilcontrario è difficilissimo.

Percio chiunque può generare un coppia di chiavi pubblica e privata, diffondere la pubblica ericevere messaggi che possono essere decifrati solo dalla privata.

9

Un messaggio può essere cifrato oltre che con la chiave pubblica anche con quella privata, inquesto caso il ruolo delle chiavi si inverte e uso la chiave privata per decifrare.Questo metodo non è molto utile per inviare messaggi segreti dato che la chiave pubblica èpubblica quindi chiunque può decifrare il messaggio.Ma un messaggio che viene decifrato da una chiave pubblica vuol dire che, per forza di cose, èstato cifrato con la chiave privata che corrisponde alla pubblica con cui lo decifro.

Bob puo prendere un messaggio e cifrarlo con la propria chiave privata, chi decifra il messaggiosa che il messaggio è stato cifrato da chi possiede la chiave privata: firma digitale.

Questo metodo è molto utile quando si vuole validare un messaggio, per esempio se devo diredi prendere 10 euro dal mio conto, posso fare un messaggio “prendi 10 euro dal mio conto”cifrarlo con la mia chiave privata in “numeri e lettere senza significato” ora la banca cerca lamia chiave pubblica (che io ho diffuso) e prova a decifrare il messaggio.Se il messaggio è stato cifrato con la chiave di qualcun altro non viene fuori nulla.Se il messaggio è stato cifrato con la mia chiave privata viene fuori “prendi 10 euro dal mioconto”.Ora la banca sa con certezza che io la ho autorizzata a prelevare 10 euro dal mio conto.

10

Algoritmi di Hash:

Un alogoritmo di Hash prende un numero e lo mischia in modo da ottenere un altro numero dilunghezza predefinita chiamato digest:

Un esempio potrebbe essere:prendi un numero somma tutte le sue componenti e ripeti questo procedimento fino a quandonon trovi un numero composto solo da una cifra (questa è la prima cifra del digest), ora fai lastessa cosa ma moltiplica invece di sommare senza contare gli zeri(questa è la seconda cifra)

L’input è: 16328439

PRIMA CIFRA1+2+3+2+8+4+3+9 = 29 */sommo tutte le cifre 12+9 = 11 */sommo tutte le cifre21+1 = 2 */sommo tutte le cifre 32 è la prima cifra */mi fermo ho ottenuto una sola cifra

SECONDA CIFRA03681 * 2 * 3 * 2 * 8 * 4 * 3 * 9 = 1 */moltiplico tutte le cifre 1

441 * 3 * 6 * 8 = 1 */moltiplico tutte le cifre 2 tranne lo 0 6 1 * 4 * 4 = 1 */moltiplico tutte le cifre 3

1 * 6 = 6 */moltiplico tutte le cifre 46 è la seconda cifra */mi fermo ho ottenuto una sola cifra

Se si applica l’algoritmo definito sopra a 12328439 si ottiene come digest 26.

Un algoritmo di hash deve avere queste tre cartteristiche:

Un algoritmo di hash deve assicurare che sia molto difficile dato un digest trovare unnumero al quale se si applica l’algoritmo dia quel digest.

Dato un numero deve essere molto difficile trovarne un altro che abbia lo stesso digest.

Non è possibile creare ad ok due numeri in modo tale che abbiano lo stesso digest.

Queste caratteristiche non sono proprie dell’algoritmo definito sopra, ma non è cosi nei verialgoritmi di hash, che mischiano i numeri in modo molto più complesso.

11

BITCOIN

I bitcoin soddisfano le caratteristiche proprie di una moneta: sono scarsi, sono facilmentedivisibili, e sono facilmente trasferibili.

Ma come è possibile?Proviamo ad immaginare un registro, in questo registro sono annotati vari indirizzi, ad ogniindirizzo è associato un numero.

Chiunque puo creare un indirizzo basta sapere una formula matematica che è pubblica.

In questo registro vengono scritti messaggi che riportano gli scambi che avvengono tra gliindirizzi, per esempio:

il giorno 23/12/1990 il contenuto dell’indirizzo 1 viene versato nell’indirizzo2(4bc) enell’ndirizzo3(6bc).

Per poter scrivere in questo registro devo dimostrare di essere il proprietario, dell indirizzo dalquale parte il pagamento.

Questo può essere facilmente verificato da tutti. Quindi non posso scrivere dati falsi sul registro.

Posso però creare due registri validi dove in uno uso i miei soldi per pagare A e nell’altro perpagare B facendo vedere ad A il registro 1 e a B il registro 2, non è detto che A e B siano incontatto quindi potrei creare soldi dal nulla.

Per questo motivo devono esistere dei soggetti che controllano chi scrive sul registro.

Chi controlla e quindi approva i messaggi scrivendoli nel registro, fa un lavoro importante e perciò nei loro indirizzi vengono versati dei bc (questo è il modo in cui i bc vengono creati)

Chiunque puo fare il controllore.

12

Ora vediamo più nello specifico come è possibile tutto questo:

Gli indirizzi sono digest (hash) di chiavi pubbliche, per dimostare che il messaggio è stato scrittodal proprietario questo lo cifra con la propria chiave privata e allega al messaggio la chiavepubblica.

Per controllare la validità di un messaggio è sufficiente decifrare il messaggio con la chiavepubblica allegata e controllare che il digest della chiave pubblica allegata corrisponda all’indirizzodal quale provengono i fondi.Dopo di che controllo nel registro se quel particolare indirizzo contiene abbastanza bc.In questo modo ho una doppia sicurezza che il messaggio provenga dal proprietario:

1)I’indirizzo pubblico che è scritto nell registro è il digest di un numero, come si è vistoper trovare un numero che dia un certo digest a partire dal digest è impossibile, solochi ha creato il digest può sapere il numero da cui e derivato.

2)anche se qualcuno fosse riuscito a trovare il numero dal quale proviene il digestquesto numero è una chiave pubblica, la chiave privata corrispondente (che puòconoscere solo chi ha creato l’indirizzo dato che non è possibile ricavare una chiaveprivata dalla pubblica) viene usata per cifrare il messaggio, se lo posso decifrare con lachiave pubblica vuol dire che il messaggio proviene dal proprietario dell’indirizzo.

Se voglio ricevere dei bc:

1)creo un chiave privata2)trovo la chiave pubblica che corrisponde alla privata (fare l’inverso non è possibile)3)applico l’algoritmo di hash alla chiave pubblica, e ottengo il digest (il mio indirizzo)4)comunico il digest (l’indirizzo) a chi mi deve pagare5)chi mi paga scrive nel registro che dal suo indirizzo vengono versati x bc nel mio (il digest)

Ora voglio spendere i miei soldi:

1)creo un messaggio: “dall’indirizzo nr(il mio digest) di x bc all’indirizzo z”2)cifro questo messaggio con la chiave privata creata al punto 1 di RICEVERE3)allego a questo messaggio la chiave pubblica creata al punto 2 di RICEVERE4)pubblico il tutto

Il registro non è altro che un file condiviso tra vari pc, nel registro non si possono inserire imessaggi che vengono pubblicati, infatti solo i controllori che creano blocchi di messaggi validipossono essere inseriti nel registro, questi controllori raccolgono i messaggi che vengonopubblicati li uniscono creando un blocco di messaggi validi e pubblicano il blocco di messaggi

13

validi, gli utenti raccolgonoi blocchi validi pubblicati dai controllori e li aggiungono al loro registroUn blocco per essere valido, deve contenere il digest del blocco precedente, i vari messaggi discambio pubblicati dagli utenti, un numero variabile.

Il digest del blocco precedente è presente perchè così ogni blocco è legato al precedente, infattiil registro può essere visto come una catena di blocchi o blockchain.

Il numero variabile è un numero che il controllore varia fino a quando il digest del blocco noninizia con un certo numero di zeri.

Il lavoro del controllore:1)calcola il digest dell’ultimo blocco conosciuto2)raccoglie i messaggi di pagamento pubblicati dagli utenti3)crea il blocco inserendo prima il digest poi i messaggi e infine il numero variabile4)il processo che segue viene ripetuto fino a quando il digest non inizia con tot 0

­clacola il digest del blocco così creato­controlla se inizia con un certo numero di 0­varia il numero variabile

5)pubblica il blocco così ottenuto

Cosa fa l’utente:1)riceve il blocco2)controlla che i messaggi di pagamento che contiene siano validi e compatibili con il registro3)calcola l’hash del blocco e controlla che inizi con il numero di 0 stabiliti4)aggiunge il blocco al suo registro o blockchain

14

Questo metodo assicura che il controllore per creare un blocco valido debba fare un certolavoro, infatti, dato un certo digest non è possibile risalire al numero che lo genera, l’unico modoper il controllore di creare il blocco in modo tale che il digest del blocco inizi contot zeri è applicare l’algoritmo di hash ad ogni blocco possibile variando il numero variabile.

Nell’esempio sopra il numero di zeri richiesto è pari a 2. Il controllore ha dovuto variare 4 volte ilnumero variabile e ha dovuto applicare 4 volte l’algoritmo di hash.

Essendo molto complessi gli algoritmi di hash per essere svolti richiedono un numero moltogrande di calcoli, è per questo che per il controllore è lungo e dispendioso creare blocchi validi.

Mentre per l’utente controllare la bontà di un blocco è molto più veloce dato che deve applicareuna sola volta l’algoritmo.

15

Quando un utente deve scegliere tra due catene sceglie sempre la più lunga.

Ora torniamo alla problematica che ha reso necessaria l’introduzione dei controllori:

Il controllore Ciccio potrebbe creare un blocco che contiene un messaggio di pagamento per x, eun altro che non lo contiene, pubblicare il blocco con il pagamento e poi iniziare a creare blocchia partire da quello che non lo contiene, per poi pubblicare la versione della catena piu lunga dovex non è stato pagato.

Per fare una cosa del genere il controllore dovrebbe essere più veloce di tutti gli altri controllorimessi insieme nel fare calcoli, infatti una volta pubblicato il blocco dove x viene pagato, devecreare un blocco dove x non viene pagato e a partire da quello creare blocchi più velocemente ditutti gli altri controllori messi insieme.

Si ricorda inoltre che ogni blocco è calcolato a partire da quello precedente il che comporta chese si vuole sostituire un blocco necessariamente vanno sostituiti anche tutti quelli che loseguono.

Quando un controllore crea un blocco valido vengono aggiunti dei bitcoin al suo indirizzo, questolo ripaga dal costo dei calcoli e assicura che i bc vengano distribuiti equamente.

16

APPENDICE 1

BLOCCHI:

Struttura blocco (il blockheader puo cambiare durante il calcolo):

numero magico vale sempre v0xD9B4BEF9 4bytesblocksize byte fino a fine blocco 4bytesblockheader 6 elementi 80bytes

numero.versione 4byteshash.blocco.preced 32byteshash.trans.in.blocco 32bytessecondi.dal.1970 4bytesdifficoltà 4bytesnonce 4bytes

contatore transazioni 1­9bytestransazioni lista transazioni(nn vuota)

Il minatore cambia il nonce finche l’hash del blocco non inizia con x zeri con x valore didifficoltà(target)

Il minatore inserisce sempre nella lista delle transazioni come prima transazione unatransazione senza indirizzo emettirore e con indirizzo ricevente il proprio indirizzo cosi vengonocreati bc.

Il numero di bc creati per blocco inizialmente era 50 e viene dimezzato ogni 210.000 blocchi(circa 4 anni) 1 ogni 10 minuti

Quando una transazione viene inviata nella rete i minatori la raccolgono e la inseriscono nelblocco che stanno provando a risolvere.

La difficoltà viene aggiornata ogni 2016 blocchi (circa due settimane), la nuova difficoltà vienecalcolta in base al tempo che è stato impiegato per calcolare 2016 blocchi.

Se siverifica un fork la catena che viene accettata è quella più lunga, la lunghezza non ècalcolata in base al numero dei blocchi ma in base alla potenza di calcolo necessaria per crearela catena.

Il timestamp (numero di secondi dal 1970) è considerato valido se è maggiore della media deltimestamp degli 11 blocchi precedenti, e minore del tempo network­adjusted + 2 ore, il tempo

17

network­adjusted è la media del timestamps di tutti i nodi a cui sei connesso.

TRANSAZIONI

Struttura:

versione numero versione 4bytescontatorein quanti indirizzi input 1­9bytesinput

previus txindexscriptSig

contatoreout quanti indirizzi out 1­9bytesoutput

valuescriptPubKey

lock_time 4bytes

nLockTime è un parametro che può essere aggiunto ad una transazione e specifica che per totsecondi la transazione non può essere inserita in un blocco

L’input è sempre riferito ad una transazione precedente, (se non c’è si fa riferimento allacoinbase) in particolare agli indirizzi di output di questa transazione

previustx: hash della transazione di riferimento

index: il numero dell’indirizzo di output della transazione di riferimento (0,1,2,3,...)che sarà quello di input di questa

scriptSig:chiave pubblica dell’indirizzo di input + firma ECDSA dell’ hash di unacompressione della transazione. (alcune flag indicano come la transazioneviene compressa e definiscono vari tipi di transazione)

L’outpout contiene istruzioni per l’invio dei bitcoin

value: numero di satoshi che vengono trasferiti

Tutti i bc contenuti nell’indirizzo di input devono essere inviati se value vale meno del totale di bcnell’input verranno considerati una tassa per il minatore!

18

PAYTOPUBKEYHASH

Quando si fa questo pagamento si fornisce solo l’HASH del destinatario quindi non si conosce lachiave pubblica, quando il destinatario andrà ad usare quelle monete dovrà fornire la chiavepubblica e lo script verificerà sempre se hash e chiave pubblica corrispondono, dopo di cheverificherà la firma.

PAYTOSCRIPTHASH

GENERATION:

19

INDIRIZZI

Gli indirizzi sono formati in modo da contenere al loro interno un codice di verifica in modo chenon sia possibile inviare bc ad un indirizzo formato male, gli ultimi 4 byte dell’indirizzo sono iprimi 4 dell’hash primi 21, quimdi basta prendere i primi 21 bytes applicarvi l’algoritmo di hash econfrontare i primi 4 bytes del risultato con gli ultimi dell’indirizzo.Questo evita che si possa sbagliare indirizzo quando si inviano bc.

20

21