Contenuto del corso
5️⃣ Bitcoin in 5 step
Cinque lezioni introduttive a Bitcoin per capire come mai è una rivoluzione mai vista prima d'ora
0/5
💡 Cos’è Bitcoin
Da dove nasce, perché esiste e quale problema risolve. In questa sezione capisci davvero cosa rappresenta Bitcoin: non una moneta digitale qualunque, ma un protocollo che cambia il modo in cui pensiamo al denaro, alla fiducia e alla libertà economica.
0/6
💰 Asset
Perché ha valore, cosa lo rende diverso da tutto il resto e come si comporta nel tempo. Analizziamo la sua scarsità, l’halving, la domanda crescente e il motivo per cui viene considerato la riserva di valore del futuro.
0/2
💳 Acquisto
Come comprare in modo sicuro, semplice e consapevole. Dalla scelta delle piattaforme alla strategia di accumulo (DCA), impari a entrare nel mondo Bitcoin senza errori e con un piano chiaro.
0/7
🔐 Custodia
La parte più importante: tenere al sicuro ciò che possiedi. Wallet, seed phrase, chiavi private, sicurezza fisica e digitale. Qui impari come diventare davvero sovrano del tuo denaro.
0/5
💵 Vendita
Quando e come vendere, senza farsi fregare. Capisci le implicazioni fiscali, le strategie di uscita e i metodi migliori per convertire o spendere senza compromettere la privacy o la sicurezza.
0/4
🧩 Curiosità Tecniche
Approfondimenti per chi vuole capire come funziona davvero: blocchi, transazioni, nodi, firme crittografiche e consenso. Spiegati in modo semplice, senza tecnicismi inutili.
0/4
📇 Guide e Tutorial ai Wallet
Qua trovi tutte le guide ai principali wallet Bitcoin
0/2
Bailout Academy

#6 | 🌱 Da un solo seme… infiniti wallet

La tua seed da 12 parole è solo l’inizio. In questo episodio scopriamo come, da quella piccola frase, Bitcoin genera migliaia di indirizzi.


🧬 BIP32: la nascita degli HD Wallet

Nell’episodio 5 abbiamo ottenuto un seed binario da 512 bit tramite PBKDF2-HMAC-SHA512.

Ora entra in gioco lo standard BIP32, che introduce il concetto di:

HD Wallet = Hierarchical Deterministic Wallet

Un HD wallet è un portafoglio in grado di:

  • generare infinite chiavi private e indirizzi,
  • partendo da una sola master key,
  • in modo deterministico (cioè prevedibile e ripetibile) a partire da un seme

🧩 Come si genera la master key?

BIP32 prende il seed da 512 bit e applica nuovamente, ma questa volta utilizzando il tuo seed da 512 bit ad una costante chiamata “Bitcoin seed” (per capire sostituisce quello che prima era la parola “mnemonic”. Ecco il HMAC-SHA512(Seed, “Bitcoin seed”)

L’output che si ottiene è diviso così:

  • primi 32 byte (256 bit) → master private key (cioè quella che usi effettivamente per firmare le transazioni)
  • ultimi 32 byte (256 bit) → chain code (un “codice” che viene utilizzato per generare le chiavi figlie)

Successivamente alla creazione della mia chiave padre (o madre) ho bisogno di generare le chiavi figlie, ovvero dalla mia chiave principale ne voglio tante altre a cascata.

Per questioni di privacy infatti su Bitcoin si utilizza un indirizzo di ricezione UNA SOLA VOLTA. Non è obbligatorio, ma è consigliato se voglio aumentare la mia privacy e far in modo di non essere tracciato. Gli indirizzi di ricezione sono quindi potenzialmente “usa e getta”. I wallet che utilizziamo ogni giorno integrano automaticamente questa funzione ed ogni volta che riceviamo una nuova transazione creano un nuovo indirizzo.

Ecco, questo indirizzo è generato sempre partendo dalle mie 12 parole, quindi il percorso di creazione dev’essere deterministico.

In BIP32, per generare una chiave figlia da una chiave padre (privata o pubblica), usiamo la funzione:

HMAC-SHA512(chain_code, chiave padre, #indice del figlio).
  • #indice del figlio = che numero è quella chiave pubblica: la prima (1), la seconda (2), la terza (3), ecc ecc….

Se derivassimo le chiavi figlie solo a partire dalla chiave privata, chiunque conosce una chiave privata figlia potrebbe risalire a quella master. Il chain code separa la derivazione da padre a figlio, rendendola unidirezionale e sicura.

Tutti questi passaggi ci portano alla nascita del nostro HD wallet.


Clicca sull’immagine e registrati con il codice “COSTANZA”

🌳 La struttura ad albero: percorsi e derivazioni

Da quella chiave padre si costruisce una gerarchia infinita di chiavi, usando dei percorsi standardizzati, detti derivation paths.

Ecco un esempio classico di come troverai una chiave scritta in forma completa:

m / 84' / 0' / 0' / 0 / 0

Ogni sezione ha un significato:

Valore Significato Descrizione
m Chiave padre (madre) La chiave dalla quale dipende tutto
84′ Purpose (BIP84) Tipo di indirizzo (es. Native SegWit = bc1q…)
0′ Coin type 0 = Bitcoin mainnet, 1 = Testnet, 60 = Ethereum, ecc…
0′ Account Puoi usare 0 per il personale, 1 per il business, 2 per spese, ecc…
0 Change 0=ricezione, 1=resto
0 Indice indirizzo Numero del singolo indirizzo derivato

Prima di capire meglio con un esempio cosa sono tutte queste voci, c’è da distinguere i due tipi di derivazione:

Tipo Notazione Accesso tramite…
🔐 Hardened con apostrofo (es. 0′) Solo con la chiave privata
🔓 Non-hardened senza apostrofo (es. 0) Anche con la xpub (chiave pubblica estesa)

Questo significa che:

✅ Con la chiave privata m → puoi derivare tutto (hardened + non)

✅ Con la xpub → puoi derivare solo i percorsi non-hardened

Ed è per questo che molte app, come Specter, BTCPay Server, BlueWallet, ecc… usano l’xpub per monitorare saldi, ricevere fondi e generare QR senza avere accesso ai BTC.

Vediamo qualche esempio:

ESEMPIO 1: m / 84' / 0' / 2' / 0 / 5
Sezione Valore Significato Spiegazione pratica
84′ Purpose BIP84 – Native SegWit Usi indirizzi bc1q… per risparmiare fee e migliorare privacy
0′ Coin Bitcoin mainnet Questo wallet opera sulla rete Bitcoin vera, non Testnet
2′ Account Account 2 – “Donazioni pubbliche” Stai separando i fondi personali da quelli pubblici
0 Change External – indirizzi visibili È un indirizzo che puoi pubblicare sul sito per ricevere BTC
5 Index Sesto indirizzo È il 6° indirizzo generato in quell’account

👉 Questo è un indirizzo che riceve donazioni, è in SegWit, appartiene al terzo account (2′ perchè ti ricordo che c’è anche 0), ed è pubblico.

ESEMPIO 2: m / 86' / 1' / 0' / 1 / 3
Sezione Valore Significato Spiegazione pratica
86′ Purpose BIP86 – Taproot (P2TR) Il wallet genera indirizzi bc1p… compatibili con Taproot
1′ Coin Testnet Bitcoin È su Bitcoin Testnet, utile per test, non veri fondi
0′ Account Account principale Primo account standard
1 Change Internal – indirizzi di resto Il wallet li usa in automatico per il “change” delle transazioni
3 Index Quarto indirizzo È il 4° indirizzo di resto usato in questo account

👉 Questo è un indirizzo non visibile all’utente, usato solo per il resto, in ambiente di test e con Taproot. Il wallet, quando fa un pagamento, usa un indirizzo della internal chain per ricevere il “resto” della transazione.


🔎 Scansione degli indirizzi

Poiché puoi generare milioni di indirizzi, ma non tutti sono “attivi”, i wallet fanno una scansione limitata (di solito i primi 20) per cercare fondi.

Su questo sito puoi vedere un esempio in tempo reale: https://coinb.in.

Mi spiego meglio, potresti avere un indirizzo di questo tipo: m / 84′ / 0′ / 2′ / 0 / 2487

Questo significa che quella chiave pubblica, che hai usato per ricevere, è alla posizione 2487. Questo potrebbe:

  1. Aver usato i 2486 indirizzi precedenti (I wallet Bitcoin, per ogni nuova transazione, generano un nuovo indirizzo per questioni di privacy)
  2. Essere stato deciso da te perchè volevi mettere i fondi proprio in quella posizione

Infatti potresti utilizzare questo sistema per nascondere dei fondi.

Quando importi una seed nel tuo wallet, nella tua app, questa scansionerà i primi 20 indirizzi e se non dovesse trovare nulla nei primi 20, darà per assodato che quella seed è vuota, non contiene alcun saldo (in realtà tu hai potresti aver messo i fondi così lontani da non essere trovati se non dopo un’analisi molto più profonda).

Il tuo wallet scansionerà:
- m / 86' / 1' / 0' / 1 / 0
- m / 86' / 1' / 0' / 1 / 1
- m / 86' / 1' / 0' / 1 / 2
- ecc ecc...

È importante notare che prima di questa evoluzione degli HD Wallet (che quindi si calcolano le chiavi in modo automatico) andava salvata OGNI chiave privata relativa alla propria chiave pubblica.

Ad oggi, il mio portafoglio, ogni volta che ricevo nuovi satoshicrea un nuovo indirizzo di ricezione, una nuova chiave pubblica. Questo viene fatto per motivi di privacy e non consentire il tracciamento.

In passato per OGNI indirizzo di ricezione, per ogni chiave pubblica diversa sulla quale ricevevo, dovevo salvarmi la relativa chiave privata.

Questo significa avere righe e righe di chiavi private ogni volta che ricevevo ed inviavo BTC.

0% Completo