1
0
mirror of https://github.com/bitcoinbook/bitcoinbook synced 2025-04-17 15:56:21 +00:00
bitcoinbook/ch01_intro.adoc
2025-03-09 19:42:09 +01:00

340 lines
37 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[role="pagenumrestart"]
[[ch01_intro_cos_è_bitcoin]]
== Introduzione
Bitcoin((("Bitcoin", "operational overview", id="bitcoin-operational-overview"))) è un insieme di concetti e tecnologie che formano le basi di un ecosistema di moneta digitale. Le unità di valuta chiamate bitcoin sono usate per conservare e trasmettere valore tra i partecipanti al network di Bitcoin. Gli utenti Bitcoin operano tra di loro attraverso il protocollo Bitcoin principalmente tramite internet, anche se possono essere usate anche altre reti di trasporto. L'architettura a strati del protocollo Bitcoin, disponibile come software open source, è compatibile con una vasta gamma di dispositivi, dai laptop agli smartphone, rendendo la tecnologia facilmente accessibile a tutti.
[TIP]
====
In questo libro, lunità di valuta è chiamata “bitcoin”((("bitcoins", "defined"))) (con la _b_ minuscola), mentre il sistema si chiama “Bitcoin” (con la _B_ maiuscola).
====
Gli utenti possono trasferire bitcoin sul network Bitcoin per fare praticamente tutto ciò che è possibile fare con le valute tradizionali, come acquistare e vendere beni, inviare denaro a persone o organizzazioni o concedere credito. I bitcoin possono essere acquistati, venduti e scambiati con altre valute presso appositi cambi di valuta, i cosiddetti exchange. Bitcoin è considerato da molti la forma di denaro perfetta per internet, poiché è veloce, sicuro e senza confini.
A differenza delle valute tradizionali, Bitcoin è interamente virtuale. Non esistono monete fisiche né monete digitali individuali. Le monete sono implicite nelle transazioni che trasferiscono valore da chi spende a chi riceve. Gli utenti di Bitcoin controllano chiavi che permettono loro di dimostrare la proprietà di bitcoin nella rete Bitcoin. Con queste chiavi possono firmare transazioni per sbloccare il valore e spenderlo trasferendolo a un nuovo proprietario. Le chiavi sono spesso conservate in un portafoglio digitale sul computer o sullo smartphone dellutente. Il possesso della chiave necessaria per firmare una transazione è lunico requisito per spendere bitcoin, mettendo il controllo dei bitcoin interamente nelle mani di ogni utente.
Bitcoin è un sistema peer-to-peer distribuito. Pertanto, non esiste un server centrale o un punto di controllo. Le unità di bitcoin vengono create attraverso un processo((("bitcoins", "mining")))((("mining"))) chiamato "mining," che consiste nell'eseguire ripetutamente un'operazione computazionale che fa riferimento a un elenco di transazioni Bitcoin recenti. Qualsiasi partecipante alla rete Bitcoin può operare come miner, usando i propri dispositivi informatici per contribuire a garantire la sicurezza delle transazioni. In media, ogni 10 minuti, un miner di Bitcoin può aggiungere sicurezza alle transazioni precedenti e viene ricompensato sia con nuovi bitcoin sia con le commissioni, d'ora in poi fees, pagate dalle transazioni recenti. In sostanza, il mining di Bitcoin decentralizza le funzioni di una banca centrale relative all'emissione di valuta e alla compensazione, e rende superflua la necessità di una banca centrale.
//-- Math for following paragraph --
//total_btc = 0
//for i in range(0, 10_000_000):
// total_btc += (50 / (2**int(i/210000)) )
// if total_btc / 21e6 > 0.99:
// print(i)
// break
Il protocollo Bitcoin include algoritmi integrati che regolano la funzione di mining in tutta la rete. La difficoltà del compito computazionale che i miner devono eseguire viene regolata dinamicamente, in modo che, in media, qualcuno riesca a completarlo ogni 10 minuti, indipendentemente dal numero di miner (e dalla potenza di calcolo) che stanno competendo in quel momento. Inoltre, il protocollo riduce periodicamente il numero di nuovi bitcoin creati, limitando il totale dei bitcoin che verranno mai emessi a una quantità fissa appena inferiore a 21 milioni di monete. Il risultato è che il numero di bitcoin in circolazione segue una curva facilmente prevedibile, in cui la metà dei bitcoin rimanenti viene aggiunta alla circolazione ogni quattro anni. Al blocco 1.411.200 circa, previsto intorno al 2035, sarà stato emesso il 99% di tutti i bitcoin che potranno mai esistere. A causa del tasso di emissione decrescente di Bitcoin, nel lungo termine la valuta Bitcoin è deflazionistica. Inoltre, nessuno può obbligarti ad accettare bitcoin creati in più rispetto a quelli previsti.
Dietro le quinte, Bitcoin è anche il nome del protocollo, di una rete peer-to-peer e di un'innovazione nel campo del calcolo distribuito. Bitcoin si basa su decenni di ricerche in crittografia e sistemi distribuiti e incorpora almeno quattro innovazioni chiave, unite in una combinazione unica e potente. Bitcoin si compone di:
* Una rete peer-to-peer decentralizzata (il protocollo Bitcoin)
* Un registro pubblico delle transazioni (la blockchain)
* Un insieme di regole per la validazione indipendente delle transazioni e l'emissione di valuta (regole di consenso)
* Un meccanismo per raggiungere un consenso decentralizzato globale sulla validità della blockchain (algoritmo di proof-of-work)
Come sviluppatore, vedo (Andreas vede) Bitcoin come una sorta di "denaro di internet", una rete per propagare valore e garantire la proprietà di beni digitali attraverso il calcolo distribuito. C'è molto di più in Bitcoin di quanto possa sembrare a ((("Bitcoin", "operational overview", startref="bitcoin-operational-overview"))) prima vista.
In questo capitolo inizieremo spiegando alcuni dei concetti e termini principali, ottenendo il software necessario e utilizzando Bitcoin per transazioni semplici. Nei capitoli seguenti, inizieremo a svelare gli strati di tecnologia che rendono possibile Bitcoin e vedremo come funzionano la rete e il protocollo Bitcoin.
.Monete Digitali Prima di Bitcoin
****
L'emergere ((("digital currencies, history of")))((("history", "of digital currencies", secondary-sortas="digital currencies")))((("cryptography"))) di una moneta digitale valida è strettamente legato agli sviluppi della crittografia. Questo non sorprende, se si considerano le sfide fondamentali legate alla rappresentazione digitale del valore scambiabile con beni e servizi
Tre domande essenziali che chiunque accetti denaro digitale deve porsi sono:
* Posso fidarmi che il denaro sia autentico e non contraffatto?
* Posso fidarmi che il denaro digitale possa essere speso una sola volta (il cosiddetto problema della “doppia spesa”)?
* Posso essere sicuro che nessun altro possa rivendicare questo denaro come proprio e non mio?
Gli emittenti di denaro cartaceo sono costantemente impegnati nella lotta alla contraffazione utilizzando carte e tecnologie di stampa sempre più sofisticate. Il denaro fisico risolve facilmente il problema della doppia spesa perché la stessa banconota non può essere in due posti contemporaneamente. Naturalmente, il denaro convenzionale viene spesso anche conservato e trasmesso digitalmente. In questi casi, i problemi di contraffazione e doppia spesa vengono risolti gestendo tutte le transazioni elettroniche tramite autorità centrali che hanno una visione globale della valuta in circolazione. Nel caso del denaro digitale, che non può sfruttare inchiostri speciali o strisce olografiche, è la crittografia a fornire la base per fidarsi della legittimità della rivendicazione di valore da parte di un utente. In particolare, le firme digitali crittografiche consentono a un utente di firmare un asset digitale o una transazione, dimostrando la proprietà di quell'asset. Con un'architettura appropriata, le firme digitali possono anche essere utilizzate per affrontare il problema della doppia spesa.
Quando la crittografia ha iniziato a diventare più accessibile e compresa verso la fine degli anni '80, molti ricercatori hanno iniziato a tentare di utilizzarla per creare valute digitali. Questi primi progetti di valute digitali emettevano denaro digitale, solitamente garantito da una valuta nazionale o da metalli preziosi come l'oro.
Sebbene queste prime valute digitali funzionassero, erano centralizzate e, di conseguenza, vulnerabili agli attacchi di governi e hacker. Le valute digitali iniziali utilizzavano un centro di smistamento centrale per regolare tutte le transazioni a intervalli regolari, proprio come un sistema bancario tradizionale. Sfortunatamente, nella maggior parte dei casi, queste nuove valute digitali furono prese di mira da governi preoccupati e alla fine eliminate attraverso procedimenti legali. Alcune fallirono in modo spettacolare quando la società madre fallì improvvisamente.
Per essere robuste contro l'intervento di antagonisti, siano essi governi legittimi o elementi criminali, era necessaria una valuta digitale decentralizzata, in grado di evitare un unico punto di attacco. Bitcoin è un sistema di questo tipo, decentralizzato per design, e privo di qualsiasi autorità centrale o punto di controllo che possa essere attaccato o corrotto.
****
=== Storia di Bitcoin
Bitcoin è stato((("Bitcoin", "history of")))((("history", "of Bitcoin", secondary-sortas="Bitcoin")))((("Nakamoto, Satoshi"))) descritto per la prima volta nel 2008 con la pubblicazione di un documento intitolato "Bitcoin: A Peer-to-Peer Electronic Cash System,"footnote:[https://oreil.ly/KUaBM["Bitcoin: A Peer-to-Peer Electronic Cash System"],Satoshi Nakamoto.] scritto sotto lo pseudonimo di Satoshi Nakamoto (vedi <<satoshi_whitepaper>>). Nakamoto ha combinato diverse invenzioni precedenti, come le firme digitali e Hashcash, per creare un sistema di moneta elettronica completamente decentralizzato che non dipende da un'autorità centrale per l'emissione di valuta, la validazione o la validazione delle transazioni. Un'innovazione chiave è stata l'uso di un sistema di calcolo distribuito (chiamato algoritmo di "proof-of-work") per condurre una sorta di lotteria globale ogni 10 minuti, in media, permettendo alla rete decentralizzata di raggiungere un _consenso_ sullo stato delle transazioni. Questo risolve elegantemente il problema della doppia spesa (double-spend), in cui un'unità di valuta può essere spesa due volte. In precedenza, il problema del double-spend era una debolezza delle valute digitali e veniva affrontato facendo passare tutte le transazioni attraverso un centro di smistamento centrale.
La rete Bitcoin è nata nel 2009, basandosi su un'implementazione iniziale pubblicata da Nakamoto e successivamente migliorata da numerosi programmatori. Nel tempo, il numero e la potenza delle macchine impegnate nel mining,((("proof-of-work algorithm", seealso="mining"))) l'algoritmo di proof-of-work che garantisce la sicurezza e la resilienza di Bitcoin, sono cresciuti in modo esponenziale. Oggi, la capacità computazionale complessiva di queste macchine supera quella di tutti i supercomputer più potenti del mondo messi insieme.
Satoshi Nakamoto si è ritirato dalla scena pubblica nell'aprile del 2011, affidando lo sviluppo del codice e della rete a una comunità di volontari attiva e dinamica. L'identità di Nakamoto, che potrebbe essere una singola persona o un gruppo, rimane ancora un mistero. Tuttavia, né lui né nessun altro ha il controllo esclusivo sul sistema Bitcoin, che si basa su principi matematici trasparenti, codice open source e il consenso dei partecipanti. Questa invenzione rivoluzionaria ha già dato vita a nuove discipline scientifiche nei campi del calcolo distribuito, dell'economia e dell'econometria.
.Una soluzione ad un problema di calcolo distribuito
****
L'invenzione di Satoshi Nakamoto ((("Byzantine Generals&#x27; Problem")))((("distributed computing problem")))rappresenta anche una soluzione pratica e innovativa ad un problema del calcolo distribuito noto come il "Problema dei Generali Bizantini". In breve, il problema consiste nel cercare di far concordare più partecipanti, privi di un leader, su una linea d'azione comune, scambiandosi informazioni attraverso una rete potenzialmente compromessa. La soluzione proposta da Satoshi Nakamoto, che utilizza il concetto di proof-of-work per raggiungere il consenso _senza un'autorità centrale fidata_, rappresenta un progresso rivoluzionario nel settore del calcolo distribuito.
****
=== Iniziare con Bitcoin
Bitcoin è((("Bitcoin", "wallets", see="wallets")))((("wallets", "explained"))) un protocollo che si può usare tramite un'app che lo supporta. Un "wallet Bitcoin" è l'interfaccia utente più comune per il sistema Bitcoin, proprio come un browser web è l'interfaccia più comune per il protocollo HTTP. Esistono molte implementazioni e marchi di wallet Bitcoin, proprio come esistono vari browser web (es. Chrome, Safari, Firefox). E proprio come abbiamo tutti i nostri browser preferiti, anche i wallet Bitcoin variano per qualità, prestazioni, sicurezza, privacy e affidabilità. Esiste anche un'implementazione di riferimento del protocollo Bitcoin, chiamata 'Bitcoin Core', che include un wallet ed è basata sull'originale creato da Satoshi Nakamoto.
==== Scegliere un Wallet Bitcoin
I wallet Bitcoin ((("wallets", "choosing")))((("selecting", "wallets")))((("choosing", see="selecting")))sono tra le applicazioni più attivamente sviluppate nell'ecosistema Bitcoin. C'è una forte competizione, e mentre probabilmente un nuovo wallet è in fase di sviluppo proprio ora, molti wallet creati l'anno scorso non sono più mantenuti attivamente. Molti wallet si concentrano su piattaforme o usi specifici, e alcuni sono più adatti per i principianti, mentre altri sono ricchi di funzionalità per utenti avanzati. La scelta di un wallet è molto soggettiva e dipende dall'uso e dall'esperienza dell'utente. Pertanto, sarebbe inutile consigliare un marchio o wallet specifico. Tuttavia, possiamo classificare i wallet Bitcoin in base alla piattaforma e alla funzione, fornendo maggiore chiarezza su tutti i tipi di wallet che esistono. È utile provare diversi wallet fino a trovare quello che meglio si adatta alle proprie esigenze.
===== Tipi di wallet Bitcoin
I wallet Bitcoin ((("wallets", "types of", id="wallet-type")))possono essere classificati come segue, in base alla piattaforma:
Wallet desktop:: I ((("desktop wallets")))wallet desktop sono stati i primi tipi di wallet Bitcoin creati come implementazione di riferimento. Molti utenti utilizzano wallet desktop per le funzionalità, l'autonomia e il controllo che offrono. Tuttavia, l'esecuzione su sistemi operativi di uso generale come Windows e macOS ha alcuni svantaggi di sicurezza, poiché queste piattaforme sono spesso insicure e mal configurate.
Wallet mobile:: I ((("mobile wallets")))wallet per mobile sono i wallet Bitcoin più comuni. Funzionando su sistemi operativi per smartphone come iOS di Apple e Android, questi wallet sono spesso una scelta eccellente per i nuovi utenti. Molti sono progettati per semplicità e facilità d'uso, ma esistono anche wallet mobili avanzati per utenti esperti. Per evitare di scaricare e memorizzare grandi quantità di dati, la maggior parte dei wallet recupera informazioni da server remoti, riducendo la privacy, poiché divulga a terzi informazioni sui tuoi indirizzi Bitcoin e sui saldi.
Wallet web:: I wallet web Web ((("web wallets")))sono accessibili tramite browser web e memorizzano il wallet dell'utente su un server di proprietà di una terza parte. Questo è simile alla webmail, in quanto dipende interamente da un server di terze parti. Alcuni di questi servizi operano utilizzando codice lato client che gira nel browser dell'utente, mantenendo il controllo delle chiavi Bitcoin in mano all'utente, sebbene la dipendenza dal server comprometta ancora la privacy. La maggior parte di questi wallet, tuttavia, prende il controllo delle chiavi Bitcoin dagli utenti in cambio di una maggiore facilità d'uso. Non è consigliabile memorizzare grandi quantità di bitcoin su sistemi di terze parti.
Dispositivi di firma hardware:: I dispositivi di firma hardware((("hardware signing devices"))) sono dispositivi che possono memorizzare le chiavi e firmare transazioni utilizzando hardware e firmware specializzati. Di solito si collegano a un wallet desktop, mobile o web tramite cavo USB, comunicazione a corto raggio (NFC) o una fotocamera con codici QR. Gestendo tutte le operazioni relative a Bitcoin sull'hardware specializzato, questi wallet sono meno vulnerabili a molti tipi di attacchi. I dispositivi di firma hardware sono spesso chiamati "hardware wallet",ma tale nome non è completamente giusto: per inviare e ricevere transazioni devono essere abbinati a un wallet completo,e la sicurezza e la privacy offerte dal wallet abbinato giocano un ruolo fondamentale nel determinare quanta sicurezza e privacy l'utente ottiene quando utilizza il dispositivo di firma hardware.
===== Client Full Node contro Client Leggero
Un altro modo per classificare i wallet Bitcoin è in base al loro grado di autonomia e a come interagiscono con la rete Bitcoin:
Client full node:: Un client full node ((("full nodes"))) un programma che convalida l'intera cronologia delle transazioni Bitcoin (ogni transazione mai fatta da ogni singolo utente). Facoltativamente, i full node possono anche memorizzare le transazioni precedentemente convalidate e fornire dati ad altri programmi Bitcoin, sia sullo stesso computer che tramite internet. Un full node richiede risorse informatiche sostanziali—più o meno come guardare un video in streaming di un'ora ogni giorno per tutte le transazioni Bitcoin—ma offre completa autonomia agli utenti.
Client leggero::
Un client leggero,((("lightweight clients")))((("simplified-payment-verification (SPV) clients")))((("SPV (simplified-payment-verification) clients"))) noto anche come client di verifica semplificata dei pagamenti (SPV), si collega a un full node o a un altro server remoto per ricevere e inviare informazioni sulle transazioni Bitcoin, ma memorizza il wallet dell'utente localmente, convalida parzialmente le transazioni ricevute e crea in modo indipendente le transazioni in uscita.
Client API di Terze Parti:: Un client API di terze parti ((("third-party API clients")))è un client che interagisce con Bitcoin tramite un sistema di API di terze parti, piuttosto che collegarsi direttamente alla rete Bitcoin. Il wallet può essere memorizzato dall'utente o su server di terze parti, ma il client si affida al server remoto per fornirgli informazioni accurate e proteggere la((("wallets", "types of", startref="wallet-type"))) privacy dell'utente.
[TIP]
====
Bitcoin ((("Bitcoin", "as peer-to-peer network", secondary-sortas="peer-to-peer network")))((("peer-to-peer networks, Bitcoin as")))((("peers")))((("clients")))is a peer-to-peer (P2P) network. Full nodes are the _peers:_
each peer individually validates every confirmed transaction and can
provide data to its user with complete authority. Lightweight wallets
and other software are _clients:_ each client depends on one or more peers
to provide it with valid data. Bitcoin clients can perform secondary
validation on some of the data they receive and make connections to
multiple peers to reduce their dependence on the integrity of a single
peer, but the security of a client ultimately relies on the integrity of
its peers.
====
===== Chi controlla le chiavi
Un aspetto ((("wallets", "key control")))((("keys, control of")))((("bitcoins", "key control"))) molto importante da considerare è _chi controlla le chiavi_. Come vedremo nei capitoli successivi, l'accesso ai bitcoin è gestito tramite "chiavi private," che possono essere paragonate a PIN molto lunghi. Se sei lunico a controllare queste chiavi private, hai il pieno controllo sui tuoi bitcoin. Al contrario, se non hai il controllo delle chiavi private, i tuoi bitcoin sono gestiti da una terza parte che detiene i tuoi fondi per conto tuo. I software per la gestione delle chiavi si suddividono in due categorie principali: i _wallet_, in cui sei tu a controllare le chiavi private, e i conti presso custodi, dove una terza parte controlla le chiavi. Per sottolineare questo concetto, io (Andreas) ho coniato la frase: _Chiavi tue, monete tue. Chiavi non tue, monete non tue_.
Data questa categorizzazione, a loro volta i wallet Bitcoin possono essere raccolti in una manciata di gruppi principali. I tre più comuni sono: i wallet desktop full node (dove tu controlli le chiavi private), i wallet "leggeri" per smartphone (dove tu controlli le chiavi private) e i conti web gestiti da terze parti (dove tu non controlli le chiavi private). I confini tra queste categorie possono a volte essere sfumati, poiché il software può funzionare su più piattaforme e interagire con la rete in modi diversi.
==== Avvio rapido
Alice non è unesperta di tecnologia e ha sentito parlare di Bitcoin solo di recente dal suo amico Joe. Durante una festa, Joe ha spiegato Bitcoin con entusiasmo a tutti i presenti, offrendo una dimostrazione pratica del suo utilizzo. Alice, incuriosita, gli ha chiesto come iniziare a usare Bitcoin. Joe le ha consigliato un wallet per smartphone, ideale per i principianti, suggerendole alcuni dei suoi preferiti. Alice ha scaricato uno dei wallet consigliati e lo ha installato sul suo telefono.
Quando Alice apre lapp del wallet per la prima volta, deve selezionare lopzione per creare un nuovo wallet Bitcoin. Il wallet scelto è un((("wallets", "noncustodial")))((("noncustodial wallets"))) wallet non custodial, il che significa che Alice (e solo lei) ha il controllo delle sue chiavi private. Per questo motivo, Alice deve prendersi la responsabilità di fare un backup delle chiavi: perderle significherebbe perdere laccesso ai suoi bitcoin. Per facilitare ciò, lapplicazione genera un _codice di recupero_ che può essere utilizzato per ripristinare il wallet in caso di problemi.
[[recovery_code_intro]]
==== Codici di Recupero
La maggior parte dei((("wallets", "recovery codes", id="wallet-recovery")))((("recovery codes", id="recovery-code")))((("backing up", "recovery codes", see="recovery codes"))) moderni wallet Bitcoin noncustodial forniscono un codice di recupero che serviranno agli utenti per il backup.
Il codice di recupero di solito è composto da numeri, lettere o parole selezionate in modo casuale dal software, ed è usato come base per le chiavi che sono generate dal wallet.
Vedi <<recovery_code_sample>> per alcuni esempi
++++
<table id="recovery_code_sample">
<caption>Sample recovery codes</caption>
<thead>
<tr>
<th>Wallet</th>
<th>Codice di recupero</th>
</tr>
</thead>
<tbody>
<tr>
<td><p>BlueWallet</p></td>
<td><p>(1) media (2) suspect (3) effort (4) dish (5) album (6) shaft (7) price (8) junk (9) pizza (10) situate (11) oyster (12) rib</p></td>
</tr>
<tr>
<td><p>Electrum</p></td>
<td><p>nephew dog crane clever quantum crazy purse traffic repeat fruit old clutch</p></td>
</tr>
<tr>
<td><p>Muun</p></td>
<td><p>LAFV TZUN V27E NU4D WPF4 BRJ4 ELLP BNFL</p></td>
</tr>
</tbody>
</table>
++++
[TIP]
====
Un codice di recupero è ((("mnemonic phrases", see="recovery codes")))((("seed phrases", see="recovery codes")))talvolta chiamato mnemonico o frase mnemonica ((("mnemonic phrases", see="recovery codes")))((("seed phrases", see="recovery codes"))), un nome che suggerisce che la frase dovrebbe essere memorizzata. Tuttavia, scriverla su carta richiede meno sforzo ed è generalmente più affidabile della memoria della maggior parte delle persone, quindi è preferibile. Un'altra denominazione alternativa è frase seed, perché fornisce l'input ("seed") (seed, ovvero seme) alla funzione che genera tutte le chiavi del wallet.
====
Se qualcosa dovesse accadere al wallet di Alice, lei potrebbe scaricare
nuovamente il software del wallet e inserire il codice di recupero per
ricostruire il database del wallet contenente tutte le transazioni onchain
che ha inviato o ricevuto. Tuttavia, il recupero tramite codice di recupero
da solo non ripristinerà eventuali dati aggiuntivi che Alice aveva inserito
nel suo wallet, come le etichette associate a particolari indirizzi o transazioni.
Sebbene perdere questi metadati non sia grave quanto perdere laccesso ai fondi,
può comunque avere una certa importanza. Immagina di dover consultare un vecchio
estratto conto bancario o della carta di credito e di trovare i nomi di tutti i
soggetti a cui hai effettuato pagamenti (o da cui hai ricevuto pagamenti) cancellati.
Per evitare la perdita dei metadati, molti wallet offrono una funzionalità di backup
aggiuntiva oltre ai codici di recupero.
Per alcuni wallet, questa funzione di backup aggiuntiva è oggi ancora più importante
rispetto al passato. Molti pagamenti in Bitcoin ((("offchain technology")))vengono
ora effettuati _offchain_, cioè non registrando tutte le transazioni nella blockchain
pubblica. Questo riduce i costi per gli utenti e migliora la privacy, tra gli altri
vantaggi, ma significa anche che un meccanismo di recupero basato esclusivamente sui
dati onchain non può garantire il ripristino di tutti i bitcoin dellutente. Per le
applicazioni che supportano transazioni offchain, è fondamentale eseguire frequenti
backup del database del wallet.
Va sottolineato che, quando si ricevono fondi su un nuovo wallet mobile per la prima
volta, molti wallet richiedono spesso di verificare nuovamente che il codice di
recupero sia stato salvato in modo sicuro. Questo può variare da un semplice avviso
fino alla richiesta di reinserire manualmente il codice di recupero.
[WARNING]
====
Although many legitimate wallets will prompt you to re-enter
your recovery code, there are also many malware applications that mimic the
design of a wallet, insist you enter your recovery code, and then
relay any entered code to the malware developer so they can steal
your funds. This is the equivalent of phishing websites that try to
trick you into giving them your bank passphrase. For most wallet
applications, the only times they will ask for your recovery code are during
the initial set up (before you have received any bitcoins) and during
recovery (after you lost access to your original wallet). If the application
asks for your recovery code any other time, consult with an expert to
ensure you aren't ((("wallets", "recovery codes", startref="wallet-recovery")))((("recovery codes", startref="recovery-code")))being phished.
====
==== Indirizzi Bitcoin
Alice è ((("addresses", "explained")))ora pronta a iniziare a usare il suo nuovo wallet Bitcoin.
Lapplicazione del wallet ha generato casualmente una chiave privata (descritta in maggior dettaglio in <<private_keys>>) che verrà utilizzata per creare gli indirizzi Bitcoin collegati al suo wallet. A questo punto, i suoi indirizzi Bitcoin non sono noti alla rete Bitcoin né “registrati” in alcuna parte del sistema Bitcoin. I suoi indirizzi Bitcoin sono semplicemente numeri che corrispondono alla sua chiave privata, che lei può utilizzare per controllare laccesso ai fondi. Gli indirizzi vengono generati in modo indipendente dal suo wallet, senza alcun riferimento o registrazione presso alcun servizio.
[TIP]
====
There
are a variety ((("invoices")))of Bitcoin addresses and invoice formats. Addresses and
invoices can be shared with other Bitcoin users
who can use them to send bitcoins directly to your wallet. You can share
an address or invoice with other people without worrying about the
security of your bitcoins. Unlike a bank account number, nobody who
learns one of your Bitcoin addresses can withdraw money from your wallet--you
must initiate all spends. However, if you give two people the same
address, they will be able to see how many bitcoins the other person sent
you. If you post your address publicly, everyone will be able to see
how much bitcoin other people sent to that address. To protect your privacy, you
should generate a new invoice with a new address each time you request a
payment.
====
==== Ricevere Bitcoin
Alice((("bitcoins", "receiving")))((("receiving bitcoins"))) usa il pulsante _Ricevi_, che mostra un codice QR, mostrato in <<wallet_receive>>.
[role="width-50"]
[[wallet_receive]]
Figura 1. Alice usa la schermata “Ricevi” sul suo wallet Bitcoin e mostra il suo indirizzo in formato codice QR.
image::images/mbc3_0101.png["Wallet receive screen with QR code displayed. Image derived from Bitcoin Design Guide CC-BY"]
Il codice QR è il quadrato con un motivo di punti bianchi e neri mostrato sopra che funge da codice a barre, contenendo le stesse informazioni in un formato che può essere scansionato dalla fotocamera dello smartphone di Joe.
[WARNING]
====
Any funds sent to the addresses in this book will be lost. If you want
to test sending bitcoins, please consider donating it to a
bitcoin-accepting charity.
====
[[getting_first_bitcoin]]
==== Comprare i tuoi primi Bitcoin
Il primo compito ((("bitcoins", "acquiring", id="bitcoin-acquire")))((("acquiring bitcoins", id="acquire-bitcoin")))per i nuovi utenti è acquistare alcuni bitcoin.
Le transazioni sulla rete Bitcoin sono irreversibili. La maggior parte delle reti di pagamento elettronico, come carte di credito, carte di debito, PayPal e bonifici bancari, sono invece reversibili. Per chi vende bitcoin, questa differenza introduce un rischio molto elevato: l'acquirente potrebbe annullare il pagamento elettronico dopo aver ricevuto i bitcoin, truffando di fatto il venditore. Per ridurre questo rischio, le aziende che accettano pagamenti elettronici tradizionali in cambio di bitcoin di solito richiedono agli acquirenti di sottoporsi a verifiche di identità e controlli di solvibilità, che possono richiedere diversi giorni o settimane.
Ecco alcuni metodi per acquistare bitcoin se sei un nuovo utente:
*Trova un amico che possiede bitcoin e acquistane direttamente da lui o da lei. Molti utenti Bitcoin iniziano in questo modo. Questo metodo è il meno complicato. Un modo per incontrare persone con bitcoin è partecipare a un meetup Bitcoin locale elencato su pass:[<a href="https://meetup.com" class="orm:hideurl">Meetup.com</a>].
*Guadagna bitcoin vendendo un prodotto o un servizio in cambio di bitcoin. Se sei un programmatore, vendi le tue competenze di programmazione. Se sei un parrucchiere, taglia i capelli in cambio di bitcoin.
*Usa un ATM Bitcoin nella tua città. Un ATM Bitcoin è una macchina che accetta contanti e invia bitcoin al tuo wallet Bitcoin.
*Usa ((("bitcoins", "currency exchanges")))((("currency exchanges")))un exchange di criptovalute collegato al tuo conto bancario. Molti Paesi hanno ormai exchange di criptovalute che offrono un mercato per acquirenti e venditori, consentendo loro di scambiare bitcoin con valuta locale. I servizi di elencazione dei tassi di cambio, come BitcoinAverage, spesso mostrano una lista di exchange Bitcoin per ogni valuta.
[TIP]
====
One of the advantages of
Bitcoin over other payment systems is that, when used correctly, it
affords users much more privacy. Acquiring, holding, and spending
bitcoin does not require you to divulge sensitive and personally
identifiable information to third parties. However, where bitcoin
touches traditional systems, such as currency exchanges, national and
international regulations often apply. In order to exchange bitcoin for
your national currency, you will often be required to provide proof of
identity and banking information. Users should be aware that once a
Bitcoin address is attached to an identity, other associated Bitcoin
transactions may also become easy to identify and track--including
transactions made earlier. This is one reason
many users choose to maintain dedicated exchange accounts independent from
their wallets.
====
Alice si è avvicinata a Bitcoin grazie ad un amico, quindi ha un modo semplice per acquistare i suoi primi bitcoin.
In seguito, vedremo come compra i bitcoin dal suo amico Joe e come Joe le manda i bitcoin sul suo((("bitcoins", "acquiring", startref="bitcoin-acquire")))((("acquiring bitcoins", startref="acquire-bitcoin")) wallet.
[[bitcoin_price]]
==== Trovare il prezzo attuale di bitcoin
Prima che ((("bitcoins", "exchange rate", id="bitcoin-exchange-rate")))((("exchange rate", id="exchange-rate")))((("current price of bitcoins", id="current-price")))Alice possa acquistare dei bitcoin da Joe, devono concordare il tasso di cambio tra bitcoin e dollari statunitensi. Questo porta a una domanda comune tra chi si avvicina per la prima volta a Bitcoin: "Chi determina il prezzo di bitcoin?" La risposta breve è che il prezzo è stabilito dai mercati.
Bitcoin, come la maggior parte delle altre valute, ha un tasso di cambio fluttuante. Ciò significa che il valore di bitcoin varia in base alla domanda e allofferta nei diversi mercati in cui viene scambiato. Ad esempio, il "prezzo" di bitcoin in dollari statunitensi viene calcolato in ciascun mercato sulla base dellultima operazione di scambio tra bitcoin e dollari. Di conseguenza, il prezzo tende a fluttuare leggermente più volte al secondo. Un servizio di monitoraggio aggrega i prezzi di diversi mercati e calcola una media ponderata in base al volume, rappresentando così il tasso di cambio generale per una coppia di valute (ad esempio, BTC/USD).
Esistono centinaia di applicazioni e siti web che forniscono il tasso di cambio attuale del mercato.
Ecco alcuni dei più popolari:
https://bitcoinaverage.com[Bitcoin Average]:: A site that provides a simple view of the volume-weighted average for each currency.
https://coincap.io[CoinCap]:: A service listing the market capitalization and exchange rates of hundreds of cryptocurrencies, including bitcoins.
https://oreil.ly/ACieC[Chicago Mercantile Exchange Bitcoin Reference Rate]:: A reference rate that can be used for institutional and contractual reference, provided as part of investment data feeds by the CME.
Oltre a questi vari siti e applicazioni, alcuni wallet Bitcoin convertono automaticamente gli importi tra bitcoin e altre valute.
[[sending_receiving]]
==== Inviare e ricevere bitcoin
Alice ((("bitcoins", "spending", id="bitcoin-send")))((("spending bitcoins", id="send-bitcoin")))((("bitcoins", "receiving", id="bitcoin-receive")))((("receiving bitcoins", id="receive-bitcoin")))has
decided to buy 0.001 bitcoins. After she and Joe check the exchange rate,
she gives Joe an appropriate amount of cash, opens her mobile wallet
application, and selects Receive. This
displays a QR code with Alice's first Bitcoin address.
Joe then selects Send on his smartphone wallet and opens the QR code
scanner. This allows Joe to scan the barcode with his smartphone camera
so that he doesn't have to type in Alice's Bitcoin address, which is
quite long.
Joe now has Alice's Bitcoin address set as the recipient. Joe enters the amount as 0.001 bitcoins (BTC); see <<wallet-send>>. Some wallets may
show the amount in a different denomination: 0.001 BTC is 1 millibitcoin
(mBTC) or 100,000 satoshis (sats).
Some wallets may also suggest Joe enter a label for this transaction; if
so, Joe enters "Alice". Weeks or months from now, this will help Joe
remember why he sent these 0.001 bitcoins. Some wallets may also prompt
Joe about fees. Depending on the wallet and how the transaction is
being sent, the wallet may ask Joe to either enter a transaction fee rate or
prompt him with a suggested fee (or fee rate). The higher the transaction fee, the
faster the transaction will be confirmed (see <<confirmations>>).
[[wallet-send]]
.Schermata di invio di un wallet Bitcoin.
image::images/mbc3_0102.png["Wallet send screen. Image derived from Bitcoin Design Guide CC-BY"]
Joe, nell'atto di inviare denaro, controlla attentamente di aver inserito l'importo corretto e gli errori sono irreversibili. Dopo aver ricontrollato l'indirizzo e l'importo, preme Invia per trasmettere la transazione. Il mobile wallet Bitcoin di Joe crea una transazione che assegna 0.001 BTC all'indirizzo fornito da Alice, prelevando i fondi dal wallet di Joe e firmando la transazione con le sue chiavi private. Questo comunica alla rete Bitcoin che Joe ha autorizzato un trasferimento di valore verso il nuovo indirizzo di Alice.
Man mano che la transazione viene trasmessa tramite il protocollo peer-to-peer, si propaga rapidamente nella rete Bitcoin. Dopo pochi secondi, la maggior parte dei nodi ben collegati riceve la transazione e vede per la prima volta l'indirizzo di Alice.
Nel frattempo, il wallet di Alice è costantemente "in ascolto" delle nuove transazioni sulla rete Bitcoin, cercando quelle che corrispondono agli indirizzi che contiene. Pochi secondi dopo l'invio della transazione da parte di Joe, il wallet di Alice segnalerà la ricezione di 0.001 BTC.
[[confirmations]]
.Conferme
****
At first, ((("bitcoins", "clearing transactions")))((("clearing transactions")))((("transactions", "clearing")))((("confirmations")))Alice's address will show the transaction from Joe as "Unconfirmed." This means that the transaction has been propagated to the network but has not yet been recorded in the Bitcoin transaction journal, known as the blockchain. To be confirmed, a transaction must be included in a block and added to the blockchain, which happens every 10 minutes, on average. In traditional financial terms this is known as _clearing_. For more details on propagation, validation, and clearing (confirmation) of bitcoin transactions, see <<mining>>.
****
Alice is now the proud owner of 0.001 BTC that she can spend. Over the next few days, Alice buys more bitcoin using an ATM and((("bitcoins", "spending", startref="bitcoin-send")))((("spending bitcoins", startref="send-bitcoin")))((("bitcoins", "receiving", startref="bitcoin-receive")))((("receiving bitcoins", startref="receive-bitcoin"))) an exchange. In the next chapter we will look at her first purchase with Bitcoin, and examine the underlying transaction and propagation technologies in more detail.