Nel diagramma di panoramica mostrato , vediamo che il sistema bitcoin consiste di utenti con portafogli contenenti chiavi, transazioni che si propagano in rete lavoro, e i minatori che producono (attraverso il calcolo competitivo) il consenso blockchain, che è il registro autorevole di tutte le transazioni. Ogni esempio in questo capitolo si basa su una transazione effettiva effettuata sul bitcoin rete, simulando le interazioni tra gli utenti (Joe, Alice, Bob e Gopesh) inviando fondi da un portafoglio all'altro. Durante il monitoraggio di una transazione tramite la rete bitcoin alla blockchain, utilizzeremo un sito blockchain explorer per visualizzare izzare ogni passo. Un blockchain explorer è un'applicazione web che funziona come un bitcoin motore di ricerca, in quanto permette di cercare indirizzi, transazioni e blocchi e vedere le relazioni e i flussi tra di loro.
Comprare una tazza di caffè
Alice, introdotta nel capitolo precedente, è una nuova utente che l'ha appena acquisita per prima bitcoin. In "Ottenere il tuo primo Bitcoin" a pagina 10, Alice ha incontrato il suo amico Joe per scambiare del denaro con bitcoin. La transazione creata da Joe ha finanziato il portafoglio di Alice con 0,10 BTC. Ora Alice farà la sua prima transazione al dettaglio, comprando una tazza di caffè al bar di Bob a Palo Alto, in California. Bob's Cafe ha recentemente iniziato ad accettare pagamenti in bitcoin aggiungendo un'opzione bitcoin a proprio sistema di punti vendita. I prezzi al Bob's Cafe sono elencati nella valuta locale (US dollari), ma alla cassa i clienti hanno la possibilità di pagare in dollari o bitcoin. Alice ordina una tazza di caffè e Bob la inserisce nella cassa, comelo fa per tutte le transazioni. Il sistema del punto vendita converte automaticamente il totale prezzo da dollari USA a bitcoin al tasso di mercato prevalente e visualizza il prezzo in entrambe le valute:
$1,50 USD
0,015 BTC
Bob dice: "Sono un dollaro e cinquanta, o quindici millibit". Il sistema del punto vendita di Bob creerà automaticamente anche uno speciale codice QR contenente una richiesta di pagamento. A differenza di un codice QR che contiene semplicemente un indirizzo bitcoin di destinazione, un pagamento richiesta è un URL codificato QR che contiene un indirizzo di destinazione, un importo di pagamento, e una descrizione generica come "Bob's Cafe". Ciò consente un'applicazione portafoglio bitcoin per precompilare le informazioni utilizzate per inviare il pagamento mostrando un leggibile dall'uomo descrizione all'utente. Puoi scansionare il codice QR con un'applicazione portafoglio bitcoin per guarda cosa vedrebbe Alice
Costruire una transazione
L'applicazione portafoglio di Alice contiene tutta la logica per selezionare gli input appropriati e
output per costruire una transazione secondo le specifiche di Alice. Alice deve solo specificare a
destinazione e un importo, e il resto avviene nell'applicazione del portafoglio senza di lei
vedendo i dettagli. È importante sottolineare che un'applicazione portafoglio può costruire transazioni anche se è completamente offline. Come scrivere un assegno a casa e poi mandarlo in banca
in una busta, la transazione non ha bisogno di essere costruita e firmata mentre con‐
connesso alla rete bitcoin.
Ottenere gli input giusti
L'applicazione del portafoglio di Alice dovrà prima trovare input in grado di pagare l'importo che lei
vuole inviare a Bob. La maggior parte dei portafogli tiene traccia di tutti gli output disponibili appartenenti a indirizzi nel portafoglio. Pertanto, il portafoglio di Alice conterrebbe una copia della transazione3
0,015 BTC
Bob dice: "Sono un dollaro e cinquanta, o quindici millibit". Il sistema del punto vendita di Bob creerà automaticamente anche uno speciale codice QR contenente una richiesta di pagamento. A differenza di un codice QR che contiene semplicemente un indirizzo bitcoin di destinazione, un pagamento richiesta è un URL codificato QR che contiene un indirizzo di destinazione, un importo di pagamento, e una descrizione generica come "Bob's Cafe". Ciò consente un'applicazione portafoglio bitcoin per precompilare le informazioni utilizzate per inviare il pagamento mostrando un leggibile dall'uomo descrizione all'utente. Puoi scansionare il codice QR con un'applicazione portafoglio bitcoin per guarda cosa vedrebbe Alice
Costruire una transazione
output per costruire una transazione secondo le specifiche di Alice. Alice deve solo specificare a
destinazione e un importo, e il resto avviene nell'applicazione del portafoglio senza di lei
vedendo i dettagli. È importante sottolineare che un'applicazione portafoglio può costruire transazioni anche se è completamente offline. Come scrivere un assegno a casa e poi mandarlo in banca
in una busta, la transazione non ha bisogno di essere costruita e firmata mentre con‐
connesso alla rete bitcoin.
vuole inviare a Bob. La maggior parte dei portafogli tiene traccia di tutti gli output disponibili appartenenti a indirizzi nel portafoglio. Pertanto, il portafoglio di Alice conterrebbe una copia della transazione3
l'output della transazione di Joe, che è stato creato in cambio di contanti (vedi "Ottieni
ting Your First Bitcoin” Un'applicazione di portafoglio bitcoin che viene eseguita come client fullnode contiene in realtà una copia di ogni output non speso di ogni transazionenella blockchain. Ciò consente a un portafoglio di costruire input di transazione everificare rapidamente che le transazioni in entrata abbiano input corretti. Tuttavia, poiché a il client full-node occupa molto spazio su disco, la maggior parte dei portafogli utente esegue client "leggeri" che tengono traccia solo degli output non spesi dell'utente.
Se l'applicazione del portafoglio non conserva una copia degli output delle transazioni non spesi,può interrogare la rete bitcoin per recuperare queste informazioni utilizzando una varietà di API disponibile da diversi provider o richiedendo un nodo completo utilizzando un'applicazione pro‐chiamata all'interfaccia di gramming (API). mostra una richiesta API, costruita come