diff --git a/it/01_0_Introduzione.md b/it/01_0_Introduzione.md
new file mode 100644
index 000000000..a1379e988
--- /dev/null
+++ b/it/01_0_Introduzione.md
@@ -0,0 +1,75 @@
+# Capitolo Uno: Introduzione all'apprendimento di Bitcoin Core (& Lightning) dalla linea di comando
+## Introduzione
+
+Le modalità di pagamento di beni e servizi sono cambiate radicalmente negli ultimi decenni. Mentre un tempo tutte le transazioni venivano effettuate in contanti o con assegni, oggi diversi metodi di pagamento elettronico sono la norma. Tuttavia, la maggior parte di questi pagamenti elettronici avviene ancora attraverso sistemi centralizzati, in cui le società di carte di credito, le banche o persino le istituzioni finanziarie basate su Internet come Paypal conservano lunghi elenchi di transazioni e individui e hanno il potere di censurare le transazioni che non gradiscono.
+
+Questi rischi di centralizzazione sono stati alcuni dei principali catalizzatori della creazione delle criptovalute, la prima e la più importante delle quali è Bitcoin. Bitcoin offre pseudonimato, rende difficile la correlazione delle transazioni; e rende praticamente impossibile la censura da parte di singole entità. Questi vantaggi l'hanno resa una delle valute con la crescita più rapida al mondo. Questa crescita, a sua volta, ha fatto sì che Bitcoin diventasse d'interesse per imprenditori e sviluppatori, desiderosi di creare nuovi servizi per la comunità Bitcoin.
+
+Se sei uno di questi imprenditori o sviluppatori, allora questo corso fa per te, perché si tratta di imparare a programmare Bitcoin. È un corso introduttivo che spiega tutte le sfumature e le caratteristiche di Bitcoin. Inoltre, adotta un approccio molto specifico, offrendo lezioni su come lavorare _direttamente_ con Bitcoin Core e con il server c-lightning utilizzando le loro interfacce RPC. (Remote Procedure Call)
+
+Perché non utilizzare alcune delle librerie più complete presenti in vari linguaggi di programmazione? Perché non crearne una propria da zero? Perché lavorare con le criptovalute è pericoloso. Non ci sono reti di sicurezza. Se accidentalmente pagate commissioni troppo alte o perdete una chiave di firma o create una transazione non valida o commettete una serie di potenziali errori, perderete le vostre monete per sempre. Gran parte della responsabilità ricade ovviamente su di voi come programmatori di criptovalute, ma può essere minimizzata lavorando con le interfacce per criptovalute più robuste, sicure e protette in circolazione, quelle create dagli stessi team di programmazione delle criptovalute: ``bitcoind`` e ``lightningd``.
+
+Gran parte di questo libro tratta quindi di come eseguire lo script di Bitcoin (e di Lightning) direttamente dalla riga di comando. Alcuni capitoli successivi trattano linguaggi di programmazione più sofisticati, ma continuano a interagire direttamente con i _demoni_ ``bitcoind`` e ``lightningd`` utilizzando RPC o interagendo con i file che creano. In questo modo si può salire sulle spalle dei giganti e utilizzare la loro tecnologia di fiducia per imparare a creare i propri sistemi di fiducia.
+
+## Livello di competenza richiesto
+
+Per la maggior parte di questo corso non è necessario essere particolarmente tecnici . Tutto ciò che serve è confidenza con i comandi di base sulla linea di comando UNIX. Se avete familiarità con comandi come `ssh`, `cd` e `ls`, il corso vi fornirà il resto.
+
+Una parte minoritaria di questo corso richiede conoscenze di programmazione e, se necessario, si consiglia di saltare queste sezioni, come illustrato nella sezione successiva.
+
+## Panoramica degli argomenti
+
+A grandi linee, questo libro è suddiviso nelle seguenti sezioni:
+
+| Part | Description | Skills |
+|-------|---------|---------|
+| **Parte Uno: Preparazione per Bitcoin** | Comprendere le basi di Bitcoin e configurare un server per l’uso. | Riga di comando |
+| **Parte Due: Utilizzo di Bitcoin-CLI** | Utilizzo di Bitcoin-CLI per la creazione di transazioni. | Riga di comando |
+| **Parte Tre: Bitcoin Scripting** | Espandere il tuo lavoro su Bitcoin utilizando gli script. | Concetti di programmazione |
+| **Parte Quattro: Utilizzo di Tor** | Migliorare la sicurezza del tuo nodo con Tor | Riga di comando |
+| **Parte Cinque: Programmazione con RPC** | Accesso a RPC da C e altri linguaggi. | Programmazione in C |
+| **Parte Sei: Utilizzo di Lightning-CLI** | Utilizzo di Lightning-CLI per la creazione di transazioni. | Riga di comando |
+| **Appendici** | Utilizzo di configurazioni Bitcoin meno comuni. | Riga di comando |
+
+## Come usare questo corso
+
+Da dove si comincia? Questo libro è stato pensato per essere letto in sequenza. Basta seguire i link "Cosa c'è dopo?" alla fine di ogni sezione e/o cliccare sui link delle singole sezioni in ogni pagina del capitolo. La migliore comprensione di questo corso si ottiene se si costruisce un server Bitcoin (come da Capitolo 2) e poi si esaminano tutti gli esempi nel corso del libro: provare gli esempi è un'eccellente metodologia di apprendimento.
+
+Se avete diversi livelli di abilità o volete imparare cose diverse, potete passare a parti diverse del libro:
+
+* Se si dispone già di un ambiente Bitcoin pronto per essere utilizzato, passa a [Capitolo Tre: Comprendere le Configurazioni di Bitcoin](03_0_Comprendere_le_Configurazioni_di_Bitcoin.md).
+* Se vi interessa solo lo scripting di Bitcoin, passate a [Capitolo Nove: Introduzione script di Bitcoin](09_0_Introduzione_script_di_Bitcoin.md).
+* Se volete solo leggere dell'uso dei linguaggi di programmazione, saltate a [Capitolo Sedici: Parlare con Bitcoind](16_0_Parlare_con_Bitcoind.md).
+* Se invece non volete fare programmazione, saltate assolutamente i capitoli 15-17 durante la lettura e forse anche i capitoli 9-13. Il resto del corso dovrebbe avere senso anche senza di essi.
+* Se siete interessati solo a Lightning, fate un salto su [Capitolo dicianove: Comprendere La Configurazione Lightning](19_0_Comprendere_La_Configurazione_Lightning.md).
+* Se volete leggere i nuovi contenuti principali aggiunti per la v2 del corso (2020), dopo la v1 (2017), leggete:
+ [Capitolo 3.5: Comprendere il Descriptor](03_5_Comprendere_il_Descriptor.md)
+ [Capitolo 4.6: Creare una Transazione Segwit](04_6_Creare_una_Transazione_Segwit.md)
+ [Capitolo 7: Ampliare le Transazioni Bitcoin con PSBTs](07_0_Ampliare_le_Transazioni_Bitcoin_con_PSBTs.md)
+ [Capitolo 9.5: Programmare una P2WPKH](09_5_Programmare_una_P2WPKH.md)
+ [Capitolo 10.5: Programmare uno Script Segwit](10_5_Programmare_uno_Script_Segwit.md)
+ [Capitolo 14: Usare Tor](14_0_Usare_Tor.md)
+ [Capitolo 15: Usare i2p](15_0_Usare_i2p.md)
+ [Capitolo 16: Parlare con Bitcoind](16_0_Parlare_con_Bitcoind.md)
+ [Capitolo 17: Programmare Bitcoin con Libwally](17_0_Programmare_Bitcoin_con_Libwally.md)
+ [Capitolo 18: Parlare a Bitcoind in Altri Linguaggi](18_0_Parlare_a_Bitcoind_in_Altri_Linguaggi.md)
+ [Capitolo 19: Comprendere la Configurazione Lightning](19_0_Comprendere_la_Configurazione_Lightning.md)
+ e
+ [Capitolo 20: Usare Lightning](20_0_Usare_Lightning.md)
+
+## Perché usare questo corso
+
+Ovviamente, state seguendo questo corso perché siete interessati a Bitcoin. Oltre a fornire le conoscenze di base, ha anche aiutato i lettori a partecipare (o a creare) progetti open-source e a trovare lavoro nella programmazione di Bitcoin. Alcuni stagisti di Blockchain Commons hanno imparato a conoscere Bitcoin grazie a questo corso, così come alcuni membri del nostro team di programmazione.
+
+## Come sostenere questo corso
+
+* Si prega di usare [Problemi](https://github.com/BlockchainCommons/Learning-Bitcoin-from-the-Command-Line/issues) per qualsiasi domanda. Blockchain Commons non ha un team di supporto attivo e quindi non possiamo rispondere a problemi o domande individuali, ma le esamineremo nel tempo e le utilizzeremo per migliorare le future iterazioni del corso.
+* Si prega di utilizzare [PRs](https://github.com/BlockchainCommons/Learning-Bitcoin-from-the-Command-Line/pulls) per correggere errori di battitura o comandi errati (o modificati). Per le modifiche tecniche o di riga di comando, è molto utile usare la sezione commenti della PR per spiegare perché si è agito in questo modo, in modo semplificare la comprensione della richiesta senza dover fare ricerche.
+* Per favore usa la nostra [Area di discussione della comunità](https://github.com/BlockchainCommons/Community/discussions) per parlare di carriere e competenze. Blockchain Commons offre occasionalmente degli stage, come discusso nel nostro repo della Comunità.
+* Per favore [Diventa mecenate](https://github.com/sponsors/BlockchainCommons) se questo corso ti è stato utile o se vuoi contribuire a formare la prossima generazione di programmatori blockchain.
+
+## Cosa c'è dopo?
+
+Se desiderate un'introduzione di base a Bitcoin, alla crittografia a chiave pubblica, all'ECC, alle blockchain e a Lightning, leggete il documento [Introduzione a Bitcoin](01_1_Introduzione_a_Bitcoin.md) interludio.
+
+Altrimenti, se siete pronti a immergervi nel corso, andate su [Configurare Bitcoin-Core VPS](02_0_Configurare_Bitcoin-Core_VPS.md).
diff --git a/it/01_1_Introduzione_a_Bitcoin.md b/it/01_1_Introduzione_a_Bitcoin.md
new file mode 100644
index 000000000..78ededa5b
--- /dev/null
+++ b/it/01_1_Introduzione_a_Bitcoin.md
@@ -0,0 +1,148 @@
+# Interludio: Introduzione a Bitcoin
+
+Prima di iniziare a programmare Bitcoin (e Lightning), è necessario avere una conoscenza di base di cosa sono e come funzionano. Questa sezione fornisce una panoramica. All'interno del documento troverete ulteriori definizioni; questa ha solo lo scopo di gettare le basi.
+
+## Riguardo a Bitcoin
+
+Bitcoin è un sistema programmatico che consente il trasferimento della valuta bitcoin. È abilitato da un sistema decentralizzato e peer-to-peer di nodi, che comprendono nodi completi, portafogli e minatori. Lavorando insieme, garantiscono che le transazioni in bitcoin siano veloci e non ripudiabili. Grazie alla natura decentralizzata del sistema, queste transazioni sono anche resistenti alla censura e, se ben utilizzate, possono offrire altri vantaggi come la pseudonimia e la non correlazione.
+
+Ovviamente Bitcoin è il cuore di questo libro, ha dato inizio a molti altri sistemi tra cui la blockchain e Lightning, entrambi sono descritti in dettaglio in questo tutorial. Sono escluse da questo tutorial molte altre criptovalute come Ethereum o Litecoin.
+
+**_Come vengono trasferite le monete?_** La valuta Bitcoin non è costituita da monete fisiche. È una serie infinita di riassegnazioni di proprietà. Quando una persona invia monete a un'altra, il trasferimento viene memorizzato come una transazione. È la transazione che registra effettivamente la proprietà del denaro, non un token locale nel portafoglio del proprietario o nel suo computer.
+
+**_A chi si possono inviare monete?_** La maggior parte delle transazioni in bitcoin prevede l'invio di monete a singole persone (o almeno a singoli indirizzi Bitcoin). Tuttavia, è possibile utilizzare metodologie più complesse per inviare bitcoin a gruppi di persone o a script. Queste metodologie hanno nomi come P2PKH, multisig e P2SH.
+
+**_Come sono archiviate le transazioni?_** Le transazioni vengono raggruppate in blocchi di dati più grandi, e poi scritti sul libro mastro della blockchain. Un blocco è costruito in modo tale da non poter essere sostituito o riscritto una volta che diversi blocchi sono stati costruiti sopra (dopo) di esso. Questo è ciò che rende le transazioni in bitcoin non ripudiabili: il libro mastro globale decentralizzato in cui tutto viene registrato è di fatto un database permanente e immutabile.
+
+Tuttavia, il processo di costruzione di questi blocchi è stocastico: è in qualche modo casuale, quindi non si può mai essere certi che una transazione sarà inserita in un blocco specifico. Teoricamente, e in rarissime circonstanze, potrebbero esseci dei cambiamenti nei blocchi, ma solo se sono _molto_ recenti. Quindi, le transazioni diventano non ripudiabili, permanenti e immutabili dopo pochissimo tempo.
+
+**_Come sono protette le transazioni?_** I fondi contenuti in una transazione Bitcoin sono bloccati da un puzzle crittografico. Questi puzzle sono progettati in modo da poter essere facilmente risolti dalla persona a cui sono stati inviati i fondi. Ciò avviene grazie alla potenza della crittografia a chiave pubblica. Tecnicamente, una transazione è protetta da una firma che dimostra che si è il proprietario della chiave pubblica a cui è stata inviata la transazione: Il rompicapo crittografico risolto è la prova di proprietà.
+
+I fondi sono ulteriormente protetti dall'uso degli hash. Le chiavi pubbliche non vengono memorizzate nella blockchain fino a quando i fondi non vengono spesi, ma solo gli hash delle chiavi pubbliche. Ciò significa che anche se dovesse arrivare un computer quantistico, le transazioni Bitcoin rimarrebbero protette da questo secondo livello di crittografia.
+
+**_Come vengono create le transazioni?_** Il cuore di ogni transazione Bitcoin è un linguaggio di scripting simile a FORTH che viene utilizzato per bloccare la transazione. Per spendere nuovamente il denaro, il destinatario fornisce allo script informazioni specifiche che dimostrano che è il destinatario previsto.
+
+Tuttavia, questi script Bitcoin rappresentano il livello più basso di funzionalità Bitcoin. Gran parte del lavoro di Bitcoin viene svolto attraverso il _demone_ Bitcoin `bitcoind`, che viene controllato attraverso comandi RPC. Molti inviano questi comandi RPC attraverso il programma `bitcoin-cli`, che fornisce un'interfaccia ancora più semplice. I non programmatori non si preoccupano di queste minuzie, ma utilizzano portafogli già programmati con interfacce più semplici.
+
+### Bitcoin - In breve
+
+Si potrebbe pensare a Bitcoin come _una sequenza di transazioni atomiche_. Ogni transazione è autenticata da un mittente con la soluzione di un precedente puzzle crittografico memorizzato come script. La nuova transazione viene bloccata dal destinatario con un nuovo enigma crittografico, anch'esso memorizzato come script. Ogni transazione è registrata in un libro mastro globale immutabile.
+
+## La crittografia a chiave pubblica
+
+La crittografia a chiave pubblica è un sistema matematico per proteggere i dati e dimostrarne la proprietà attraverso una coppia asimmetrica di chiavi collegate: la chiave pubblica e la chiave privata.
+
+È importante per Bitcoin (e per la maggior parte dei sistemi blockchain) perché è la base di gran parte della crittografia che protegge i fondi della criptovaluta. Una transazione Bitcoin viene tipicamente inviata a un indirizzo che è una chiave pubblica con hash. Il destinatario è quindi in grado di recuperare il denaro rivelando sia la chiave pubblica che la chiave privata.
+
+**_Cos'è una chiave pubblica?_** Una chiave pubblica è la chiave che viene data ad altre persone. In un tipico sistema a chiave pubblica, un utente genera una chiave pubblica e una chiave privata, poi dà la chiave pubblica a tutti. I destinatari possono criptare le informazioni con la chiave pubblica, ma non possono decifrarle con la stessa chiave pubblica a causa dell'asimmetria della coppia di chiavi.
+
+**_Cos'è una chiave privata?_** Una chiave privata è collegata a una chiave pubblica in una coppia di chiavi. In un tipico sistema a chiave pubblica, un utente tiene al sicuro la propria chiave privata e la usa per decifrare i messaggi che sono stati crittografati con la sua chiave pubblica prima di essergli inviati.
+
+**_Cos'è una firma?_** Un messaggio (o più comunemente un hash di un messaggio) può essere firmato con una chiave privata, creando una firma. Chiunque possieda la chiave pubblica corrispondente può quindi convalidare la firma, verificando che il firmatario possiede la chiave privata associata alla chiave pubblica in questione. _SegWit_ è un formato specifico per la memorizzazione di una firma sulla rete Bitcoin che incontreremo più avanti.
+
+**_Cos'è una funzione hash?_** Una funzione di hash è un algoritmo spesso utilizzato nella crittografia. È un modo per mappare una grande quantità arbitraria di dati in una piccola quantità fissa di dati. Le funzioni hash utilizzate in crittografia sono unidirezionali e resistenti alle collisioni, il che significa che un hash può essere collegato in modo affidabile ai dati originali, ma i dati originali non possono essere rigenerati dall'hash. Gli hash consentono quindi la trasmissione di piccole quantità di dati per rappresentare grandi quantità di dati, il che può essere importante per l'efficienza e i requisiti di archiviazione..
+
+Bitcoin sfrutta la capacità di un hash di mascherare i dati originali, il che consente di nascondere l'effettiva chiave pubblica dell'utente, rendendo le transazioni resistenti al calcolo quantistico.
+
+### Crittografia a chiave pubblica - In breve
+
+Un modo di descrivere la crittografia a chiave pubblica è: _Un modo per proteggere i dati in modo che solo una persona autorizzata possa accedervi e che la persona autorizzata possa dimostrare di avere tale accesso_.
+
+## Riguardo alle ECC
+
+ECC è l'acronimo di crittografia a curve ellittiche. È un campo specifico della crittografia a chiave pubblica che dipende da calcoli matematici eseguiti con curve ellittiche definite su campi finiti. È più complessa e più difficile da spiegare rispetto alla crittografia a chiave pubblica classica (che utilizzava numeri primi), ma presenta alcuni vantaggi.
+
+L'ECC non riceve molta attenzione in questo tutorial. Questo perché il tutorial è incentrato sull'integrazione con i server Bitcoin Core e Lightning, che si sono già occupati della crittografia. In effetti, l'intento di questo tutorial è quello di non farvi preoccupare affatto della crittografia, perché è qualcosa di cui volete _davvero_ che si occupino gli esperti.
+
+**_Cos'è una curva ellittica?_** Una curva ellittica è una curva geometrica che assume la forma `y``2` = `x``3`` + ax + b`. Una curva ellittica specifica viene scelta selezionando valori specifici di `a` e `b`. La curva deve quindi essere esaminata attentamente per determinare se funziona bene per la crittografia. Ad esempio, la curva secp256k1 utilizzata da Bitcoin è definita come `a=0` e `b=7`.
+
+Qualsiasi linea che interseca una curva ellittica lo farà in 1 o 3 punti... e questa è la base della crittografia a curva ellittica.
+
+**_Cosa sono i campi finiti?_** Un campo finito è un insieme finito di numeri, in cui tutte le addizioni, sottrazioni, moltiplicazioni e divisioni sono definite in modo che risultino anche altri numeri nello stesso campo finito. Un modo semplice per creare un campo finito è attraverso l'uso di una funzione modulo.
+
+**_Come viene definita una curva ellittica su un campo finito?_** Una curva ellittica definita su un campo finito ha tutti i punti sulla sua curva disegnati da uno specifico campo finito. Questo assume la forma: `y``2` `% field-size = (x``3`` + ax + b) % field-size` Il campo finito usato per secp256k1 è `2``256`` - 2``32`` - 2``9`` - 2``8`` - 2``7`` - 2``6`` - 2``4`` - 1`.
+
+**_Come vengono utilizzate le curve ellittiche in crittografia?_** Nella crittografia a curva ellittica, un utente seleziona un numero molto grande (256 bit) come chiave privata. Quindi aggiunge un punto base impostato sulla curva a se stessa tante volte. (Nel secp256k1, il punto base è `G = 04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8`, che fa precedere le due parti della tupla da uno "04" per indicare che il punto dati è in formato non compresso. Se preferisci una definizione geometrica diretta, questo è il punto "0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798,0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8") Il numero risultante è la chiave pubblica. È quindi possibile utilizzare varie formule matematiche per dimostrare la proprietà della chiave pubblica, data la chiave privata. Come ogni funzione crittografica, questa è una trappola: è facile passare dalla chiave privata alla chiave pubblica e in gran parte impossibile passare dalla chiave pubblica alla chiave privata.
+
+Questa particolare metodologia spiega anche perché i campi finiti vengono utilizzati nelle curve ellittiche: garantisce che la chiave privata non diventi troppo grande. Si noti che il campo finito per secp256k1 è leggermente inferiore a 256 bit, il che significa che tutte le chiavi pubbliche saranno lunghe 256 bit, proprio come lo sono le chiavi private.
+
+**_Quali sono i vantaggi della ECC?_** Il vantaggio principale dell’ECC è che consente la stessa sicurezza della classica crittografia a chiave pubblica con una chiave molto più piccola. Una chiave pubblica a curva ellittica da 256 bit corrisponde a una chiave pubblica tradizionale (RSA) da 3072 bit.
+
+### ECC - In breve
+
+Un modo di descrivere la ECC è: _un modo per abilitare la crittografia a chiave pubblica che utilizza chiavi molto piccole e matematiche molto oscure._
+
+## Cosa sono le Blockchain
+
+Blockchain è la generalizzazione della metodologia utilizzata da Bitcoin per creare un registro globale distribuito. Bitcoin è una blockchain come lo sono molte alt-coin, ognuna delle quali vive sulla propria rete e scrive sulla propria catena. Anche le sidechain come Liquid sono blockchain. Le blockchain non hanno nemmeno bisogno di avere nulla a che fare con le finanze. Ad esempio, ci sono state molte discussioni sull’utilizzo delle blockchain per proteggere le identità auto-sovrane.
+
+Sebbene sia necessario comprendere le basi del funzionamento di una blockchain per capire come funzionano le transazioni in Bitcoin, non sarà necessario andare oltre. Poiché le blockchain sono diventate una vasta categoria di tecnologia, è probabile che questi concetti di base siano applicabili a molti altri progetti in questo settore tecnologico in crescita. I comandi di programmazione appresi in questo libro sono specifici per Bitcoin (e Lightning).
+
+**_Perché si chiama catena?_** Ogni blocco nella blockchain memorizza un hash del blocco precedente. Questo collega il blocco attuale fino al "blocco genesi" originale attraverso una catena ininterrotta. È un modo per creare un ordine assoluto tra dati potenzialmente contrastanti. Ciò fornisce anche la sicurezza della blockchain, poiché ogni blocco è impilato sopra un vecchio blocco, rendendo più difficile ricreare il vecchio blocco a causa degli algoritmi di prova di lavoro (proof-of-work) utilizzati nella creazione dei blocchi. Una volta che diversi blocchi sono stati costruiti sopra un blocco nella catena, la catena stessa diventa essenzialmente irreversibile.
+
+**_Cos'è un Fork?_** Occasionalmente vengono creati due blocchi nello stesso periodo. Questo crea temporaneamente un fork di un blocco, dove i blocchi attuali potrebbero essere quelli "reali". Di tanto in tanto, una biFORCazione potrebbe espandersi fino a diventare lunga due blocchi, tre blocchi o anche quattro blocchi, ma abbastanza rapidamente un lato della biforcazione viene determinato come quello reale e l'altro rimane "orfano". Questo fa parte del processo stocastico di creazione dei blocchi e dimostra perché diversi blocchi devono essere costruiti sopra un blocco prima che possa essere considerato veramente affidabile e non ripudiabile.
+
+### Blockchain — In breve
+
+Un modo di descrivere la blockchain è: _una serie collegata di blocchi di dati immutabili, che vanno indietro nel tempo. Un altro modo è: _una serie collegata di blocchi per ordinare in modo assoluto i dati che potrebbero essere in conflitto _.
+
+## La Blockchain è adatta a me?
+
+Se volete effettuare transazioni in bitcoin, ovviamente la blockchain di Bitcoin fa al caso vostro. Tuttavia, più in generale, la blockchain è diventata una parola popolare, anche se non è una bachetta magica per tutti i problemi tecnici. Detto questo, ci sono molte situazioni specifiche in cui la blockchain è una tecnologia superiore.
+
+Le blockchain probabilmente saranno utili se:
+
+ * Gli utenti non si fidano l'uno dell'altro.
+ * Oppure: gli utenti sono oltre diversi confini.
+ * Gli utenti non si fidano delle autorità centralizzate.
+ * E: gli utenti vogliono controllare il proprio destino.
+ * Gli utenti desiderano una tecnologia trasparente.
+ * Gli utenti vogliono condividere qualcosa.
+ * E: gli utenti desiderano che ciò che viene condiviso venga registrato in modo permanente.
+ * Gli utenti desiderano transazioni definitive e veloci.
+ * Ma: gli utenti non hanno bisogno della definitività immediata della transazione.
+
+Probabilmente le blockchain _non_ saranno utili se:
+
+ * Gli utenti sono fidati:
+ * Ad esempio: le transazioni avvengono all'interno di un'azienda o di un'organizzazione.
+ * Ad esempio: le transazioni sono supervisionate da un'autorità centrale.
+ * È richiesta la segretezza:
+ * Ad esempio: le informazioni dovrebbero essere segrete.
+ * Ad esempio: le transazioni dovrebbero essere segrete.
+ * Ad esempio: gli operatori dovrebbero essere segreti.
+ * A meno che: una metodologia per la segretezza crittografica venga attentamente considerata, analizzata e testata.
+ * Gli utenti necessitano di una transazione definitiva immediata.
+ * es.: in meno di 10 minuti su una rete tipo Bitcoin, in meno di 2,5 minuti su una rete tipo Litecoin, in meno di 15 secondi su una rete tipo Ethereum
+
+Tieni presente che potrebbero esserci ancora soluzioni per alcune di queste situazioni all'interno dell'ecosistema Bitcoin. Ad esempio, i canali di pagamento stanno affrontando rapidamente le questioni relative alla liquidità e alla definitività dei pagamenti.
+
+## Riguardo a Lightning
+
+Lightning è un protocollo di livello 2 (Layer-2) che interagisce con Bitcoin per consentire agli utenti di scambiare i propri bitcoin "off-chain". Presenta sia vantaggi che svantaggi rispetto all’utilizzo di Bitcoin "on-chain".
+
+Lightning è anche l'obiettivo secondario di questo tutorial. Anche se si tratta principalmente di interagire direttamente con Bitcoin (e il `bitcoind`), presta una certa attenzione a Lightning perché è una tecnologia imminente che probabilmente diventerà un'alternativa popolare a Bitcoin nel prossimo futuro. Questo libro adotta lo stesso approccio a Lightning e Bitcoin: insegna come interagire direttamente dalla riga di comando con un daemon Lightning affidabile.
+
+A differenza di Bitcoin, in realtà esistono diverse varianti di Lightning. Questo tutorial utilizza l'implementazione [c-lightning](https://github.com/ElementsProject/lightning) conforme allo standard come server Lightning affidabile.
+
+**_Che cos'è un protocollo Layer-2?_** Un protocollo Bitcoin di layer-2 funziona su Bitcoin. In questo caso, Lightning funziona un livello sopra Bitcoin interagendo con Bitcoin attraverso contratti intelligenti.
+
+**_Che cos'è un canale Lightning?_** Un canale Lightning è una connessione tra due utenti Lightning. Ciascuno degli utenti blocca un certo numero di bitcoin sulla blockchain utilizzando entrambi una firma multi-sig. I due utenti possono quindi scambiare bitcoin attraverso il loro canale Lightning senza mai scrivere sulla blockchain di Bitcoin. Solo quando vogliono chiudere il loro canale regolano i conti in bitcoin, in base al conteggio finale delle monete.
+
+**_Che cos'è la Lightning Network?_** Mettendo insieme una serie di canali Lightning si crea "la rete Lightning". Questo permette a due utenti che non hanno creato un canale tra loro di scambiare bitcoin utilizzando Lightning: il protocollo forma una catena di Canali tra i due utenti, poi scambia le monete attraverso la catena utilizzando transazioni a tempo (time-locked).
+
+**_Quali sono i vantaggi di Lightning?_** Lightning consente transazioni più veloci con commissioni inferiori. Ciò crea la reale possibilità di micropagamenti in bitcoin. Offre anche una migliore privacy, poiché è off-chain e solo il primo e l'ultimo stato della transazione vengono scritti nell registro immutabile di Bitcoin.
+
+**_Quali sono gli svantaggi di Lightning?_** Lightning è ancora una tecnologia molto nuova e non è stata testata così approfonditamente come Bitcoin. Non è solo una questione di implementazione tecnologica, ma anche se il design stesso può essere modificato in modi inaspettati.
+
+### Lightning - In breve
+
+Un modo di descrivere Lightning è: _un modo per effettuare transazioni bitcoin utilizzando canali off-chain tra coppie di persone, in modo che solo lo stato iniziale e finale debba essere scritto sulla blockchain_.
+
+## Riepilogo: Presentazione di Bitcoin
+
+Bitcoin è un sistema peer-to-peer che consente il trasferimento di fondi attraverso transazioni bloccate con enigmi. Questi enigmi dipendono dalla crittografia a curva ellittica a chiave pubblica. Quando generalizzi le idee alla base di Bitcoin, ottieni blockchain, una tecnologia che attualmente sta crescendo e innovando. Quando espandi le idee dietro Bitcoin, ottieni protocolli di livello 2 come Lightning, che espandono il potenziale della valuta.
+
+## Cosa viene dopo?
+
+Prosegui nella "Preparatevi per Bitcoin" col [Capitolo 2: Configurare Bitcoin Core VPS](02_0_Configurare_Bitcoin-Core_VPS.md).
diff --git a/it/02_0_Configurare_Bitcoin-Core_VPS.md b/it/02_0_Configurare_Bitcoin-Core_VPS.md
new file mode 100644
index 000000000..fbfc90170
--- /dev/null
+++ b/it/02_0_Configurare_Bitcoin-Core_VPS.md
@@ -0,0 +1,26 @@
+# Capitolo Due: Instala Bitcoin-Core VPS
+
+Per iniziare con Bitcoin, è necessario configurare una macchina per avviare Bitcoin. Gli articoli di questo capitolo descrivono come fare, principalmente utilizzando un VPS (Virtual Private Server, Server Virtuale Privato).
+
+## Obiettivi di questo capitolo:
+
+Al finalizzare questo capitolo uno svilupatore potra:
+
+ * Decidere tra le cinque piu importanti tipologie di nodi Bitcoin
+ * Creare un Nodo Bitcoin per sviluppo
+ * Creare una blockchain temporanea di Bitcoin in locale
+
+Gli obiettivi di sostegno includono:
+
+ * Comprendere la configurazione della rete di base del VPS
+ * Decidere quali priorità di sicurezza implementare
+ * Comprendere la differenza tra nodi potati e non potati
+ * Comprendere la differenza tra nodi Mainnet, Testnet e Regtest
+ * Interpretare le basi del file di configurazione di Bitcoin
+
+## Indice
+
+In realtà non c'è bisogno di leggere l'intero capitolo. Decida se si desidera eseguire uno StackScript per impostare un nodo su un VPS Linode (§2.2); oppure si desidera avviare la configurazione in un ambiente diverso, ad esempio su una macchina AWS o su un Mac (Sezione 2.2). Quindi, vada alla sezione appropriata. Ulteriori informazioni sulle configurazioni suggerite sono disponibili anche nell' [Appendice 1](A1_0_Comprendere_Bitcoin_Standup.md).
+
+ * [Capitolo 2.1: Configurando Bitcoin Core VPS con Bitcoin StackScript](02_1_Configurare_Bitcoin-Core_VPS_con_StackScript.md)
+ * [Capitolo 2.2: Configurando Bitcoin Core sul proprio hardware con altri mezzi](02_2_Configurare_Bitcoin_Core_Altri_Mezzi.md)
diff --git a/it/02_1_Configurare_Bitcoin-Core_VPS_con_StackScript.md b/it/02_1_Configurare_Bitcoin-Core_VPS_con_StackScript.md
new file mode 100644
index 000000000..205593fec
--- /dev/null
+++ b/it/02_1_Configurare_Bitcoin-Core_VPS_con_StackScript.md
@@ -0,0 +1,288 @@
+# 2.1: Configurando Bitcoin-Core VPS con StackScript
+
+Questo documento spiega come configurare un VPS (Virtual Private Sever) per avviare un nodo Bitcoin su Linode.com, installato utilizzando uno StackScript automatizzato del [Progetto Bitcoin Standup](https://github.com/BlockchainCommons/Bitcoin-Standup-Scripts). Devi solo inserire alcuni comandi e avviare il tuo VPS. Quasi subito dopo l'avvio, scoprirai che il tuo nuovo nodo Bitcoin scarica i blocchi.
+
+> :warning: **Pericolo:** Non utilizzare un VPS per un portafoglio bitcoin con fondi reali significativi; Vedere [Perdere facilmente Bitcoin](http://blog.thestateofme.com/2012/03/03/lessons-to-be-learned-from-the-linode-bitcoin-incident/ ). È molto bello poter sperimentare con transazioni bitcoin reali su un nodo live senza vincolare un server proprio su una rete locale. È anche utile essere in grado di utilizzare un iPhone o un iPad per comunicare tramite SSH con il tuo VPS per svolgere alcune semplici attività bitcoin. Ma è necessario un livello di sicurezza più elevato per fondi significativi.
+
+* Se vuoi capire l'utilità di questo setup, leggi [Appendice 1: Comprendere Bitcoin Standup.md](A1_0_Comprendere_Bitcoin_Standup.md) mentre procedi con l'installazione.
+* Se invece vuole eseguire la configurazione su una macchina diversa da un VPS Linode, come una macchina AWS o un Mac, vai a [Capitolo 2.2: Configurare Bitcoin-Core con altri mezzi](02_2_Configurare_Bitcoin_Core_Altri_Mezzi.md)
+* Se hai già un nodo Bitcoin funzionando, vai a [Capitolo 3: Capire le configurazioni di Bitcoin](03_0_Comprendere_la_Configurazione_di_Bitcoin.md).
+
+
+## Iniziare con Linode
+
+Linode è un servizio di Cloud Hosting che offre server Linux veloci ed economici con archiviazione SSD. Li usiamo per questo tutorial principalmente perché i loro StackScripts basati su BASH offrono un modo semplice per configurare automaticamente un nodo Bitcoin senza problemi.
+
+### Configurando un account Linode
+
+Vai a questo link per creare un account Linode:
+
+```
+https://www.linode.com
+```
+
+Se preferisci, il seguente codice di riferimento ti darà circa un mese di utilizzo gratuito, ottimo per imparare Bitcoin:
+Dovrai fornire un indirizzo email e successivamente precaricare denaro da una carta di credito o PayPal per eventuali costi futuri.
+
+```
+https://www.linode.com/?r=23211828bc517e2cb36e0ca81b91cc8c0e1b2d96
+```
+
+Quando avrai finito, dovresti arrivare a [https://cloud.linode.com/dashboard](https://cloud.linode.com/dashboard).
+
+### Considera abilitare la autenticazione a 2 fattori (Two-Factor Authentication)
+
+Il tuo server non sara al sicuro se le persone riescono ad accedere al tuo account Linode, quindi valuta la possibilità di impostare l'autenticazione a due fattori per questo. Puoi trovare questa impostazione nella tua pagina [Il mio profilo: password e autenticazione](https://manager.linode.com/profile/auth). Se non lo fai adesso, imposta un promemoria e fallo più tardi.
+
+## Crea una immmagine Linode utilizando StackScript
+
+### Carica lo StackScript
+
+Scarica [Linode Standup Script](https://github.com/BlockchainCommons/Bitcoin-Standup-Scripts/blob/master/Scripts/LinodeStandUp.sh) da [Bitcoin Standup Scripts repo](https://github.com/BlockchainCommons/Bitcoin-Standup-Scripts). Questo script sostanzialmente automatizza tutte le istruzioni di configurazione di Bitcoin VPS. Se vuoi essere particolarmente prudente, leggilo attentamente. Se sei soddisfatto, puoi copiare StackScript nel tuo account andando alla [pagina StackScripts](https://cloud.linode.com/stackscripts?type=account) nel tuo account Linode account e scegliere [Crea Nuovo Stackscript](https://cloud.linode.com/stackscripts/create). Dategli un nome (noi usiamo `Bitcoin Standup`), poi copia e incolla lo script. Scegli Debian 10 come immagine di destinazione e "Salva"..
+
+### Configurazione iniziale
+
+Ora sei pronto per creare un Nodo basato su Stackscript.
+
+1. Nella pagina [Stackscripts page](https://cloud.linode.com/stackscripts?type=account), clicca i tre puntini "..." nella parte destra del tuo nuovo script e seleziona "Deploy New Linode".
+2. Inserisci un nome host breve e attinente
+ * **Nome host breve.** Scegli un nome per il tuo VPS. Ad esempio, "mybtctest".
+ * **Nome host completo.** Se hai intenzione di includere questo VPS come parte di una rete con record DNS completi, digita il nome host con il suo dominio. Ad esempio, "mybtctest.mydomain.com". Altrimenti, ripeti semplicemente il nome host breve e aggiungi ".local", ad esempio "mybtctest.local".
+3. Immettere la password per l'utente "standup".
+
+4. Scegli un tipo di installazione nelle opzioni avanzate.
+* **Tipo di installazione.** Probabilmente è "Mainnet" o "Pruned Mainnet" se stai impostando un nodo per l'utilizzo e "Testnet" o "Pruned Testnet" se stai solo giocando. La maggior parte di questo tutorial darà per scontato che tu abbia scelto "Pruned Testnet", ma dovresti comunque essere in grado di seguire altri tipi. Consulta la [Sinossi](#sinossi-tipi-di-installazione-di-bitcoin) per maggiori informazioni su queste opzioni. (Nota che se hai intenzione di provare i capitoli Lightning, probabilmente vorrai usare un nodo Unpruned, non potato, poiché lavorare con nodi Pruned su Lightning è incerto. Consulta [Capitolo 19](19_0_Comprendere_La_Configurazione_Lightning.md) per i dettagli.)
+
+
+
+
+* **Chiave pubblica X25519.** Questa è una chiave pubblica da aggiungere all'elenco dei client autorizzati di Tor. Se non la usi, chiunque ottenga il codice QR per il tuo nodo può accedervi. Otterrai questa chiave pubblica da qualsiasi client tu stia utilizzando per connetterti al tuo nodo. Ad esempio, se utilizzi [FullyNoded 2](https://github.com/BlockchainCommons/FullyNoded-2), puoi andare alle sue impostazioni e "Esporta chiave pubblica di autenticazione Tor V3" per utilizzarla qui.
+* **Chiave SSH.** Copia qui la chiave SSH del tuo computer locale; questo ti consente di accedere automaticamente tramite SSH all'account standup. Se non hai ancora impostato una chiave SSH sul tuo computer locale, ci sono delle buone istruzioni su [Github](https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/). Potresti anche voler aggiungere la tua chiave SSH nel tuo Linode LISH (Linode Interactive Shell) andando su "Linode Home Page / My Preferences / LISH Settings / LISH Keys". L'utilizzo di una chiave SSH ti darà un modo più semplice e sicuro per accedere al tuo server.
+* **IP consentiti tramite SSH.** Questo è un elenco separato da virgole di IP a cui sarà consentito l'accesso tramite SSH al VPS. Ad esempio "192.168.1.15,192.168.1.16". Se non inserisci alcun IP, _il tuo VPS non sarà molto sicuro_. Sarà costantemente bombardato da aggressori che cercheranno di entrare e potrebbero anche riuscirci.
+
+5. Select an Image
+ * **Target Image.** If you followed the instructions, this will only allow you to select "Debian 10" (though "Debian 9" did also work with previous versions of this Stackscript and might still).
+6. Choose a region for where the Linode will be located.
+
+*The remaining questions all have to do with the mechanics of the VPS deployment and should be left as they are with one exception: bump the Swap Disk from 256MB to 512MB, to ensure that you have enough memory to download the blockchain._
+
+Finally, you'll need to fill in a root password, which will be the password used for the root account.
+
+
+
+
+5. Seleziona un'immagine
+* **Immagine di destinazione.** Se hai seguito le istruzioni, questo ti consentirà di selezionare solo "Debian 10" (anche se "Debian 9" funzionava con le versioni precedenti di questo Stackscript, potrebbe ancora funzionare).
+6. Scegli una regione in cui verrà posizionato Linode.
+
+*Le domande rimanenti riguardano tutte la meccanica della distribuzione VPS e dovrebbero essere lasciate così come sono, con un'eccezione: aumenta lo Swap Disk da 256 MB a 512 MB, per assicurarti di avere abbastanza memoria per scaricare la blockchain._
+
+Infine, dovrai inserire una password di root, che sarà la password utilizzata per l'account root.
+
+### Scegli altre opzioni di Standup
+
+Blockchain Commons è attualmente impegnata ad ampliare i suoi Bitcoin Standup Scripts con opzioni per installare Lightning e altre app Bitcoin degne di nota. Dai un'occhiata a tutte le opzioni extra e vedi se sono cose con cui ti piacerebbe giocare. In particolare, se Lightning è un'opzione, ti consigliamo di installarla, perché renderà molto più semplici [Capitolo 19](19_0_Comprendere_La_Configurazione_Lightning.md) e [Capitolo 20](20_0_Usare_Lightning.md).
+
+
+### Scegli un piano Linode
+
+Dovrai scegliere un piano Linode.
+
+Un Linode da 4 GB sarà sufficiente per la maggior parte delle configurazioni, tra cui: Pruned Mainnet, Pruned Testnet e persino non-Pruned Testnet. Tutte utilizzano meno di 50 GB di spazio di archiviazione e 4 GB sono una quantità di memoria confortevole. Questa è la configurazione che suggeriamo. Costa $ 20 al mese.
+
+Se invece desideri avere una Mainnet non-Pruned in un VPS, dovrai installare un Linode con un disco superiore a 800 G (!), che attualmente è il Linode da 16 GB, che ha 320 G di spazio di archiviazione e 16 G di memoria e costa circa $ 80 al mese. Noi _non_ lo consigliamo.
+
+La seguente tabella mostra i requisiti minimi
+
+| Setup | Memory | Storage | Linnode |
+|-------|--------|---------|---------|
+| Mainnet | 2G | 280G | Linode 16GB |
+| Pruned Mainnet | 2G | ~5G | Linode 4GB |
+| Testnet | 2G | ~15G | Linode 4GB |
+| Pruned Testnet | 2G | ~5G | Linode 4GB |
+| Regtest | 2G | ~ | Linode 4GB |
+
+Nota, potrebbero esserci modi per ridurre entrambi i costi.
+
+* Per le macchine che suggeriamo come **Linode 4 GB**, potresti essere in grado di ridurle a un Linode 2 GB. Alcune versioni di Bitcoin Core hanno funzionato bene a quella dimensione, alcune hanno occasionalmente esaurito la memoria e poi si sono riprese, e alcune hanno esaurito continuamente la memoria. Ricordati di aumentare quello spazio di swap per massimizzare le probabilità che funzioni. Usalo a tuo rischio e pericolo.
+* Per la Mainnet non potata, che suggeriamo come **Linode 16 GB**, probabilmente puoi cavartela con un Linode 4 GB, ma aggiungi [Block Storage](https://cloud.linode.com/volumes) sufficiente per archiviare la blockchain. Questa è sicuramente una soluzione migliore a lungo termine poiché i requisiti di archiviazione della blockchain Bitcoin aumentano continuamente se non esegui il pruning, mentre i requisiti della CPU non lo fanno (o non lo fanno nella stessa misura). Uno storage da 320 GibiByte costerebbe 32 $ al mese, che combinato con un Linode da 4 GB è di 52 $ al mese, invece di 80 $, e cosa più importante, puoi continuare a farlo crescere. Non documentiamo completamente questa configurazione per due motivi (1) non suggeriamo la configurazione mainnet non potata, e quindi sospettiamo che sia una configurazione molto meno comune; e (2) non abbiamo testato come i volumi Linode si confrontano con i loro SSD intrinseci per prestazioni e utilizzo. Ma c'è una documentazione completa sulla pagina Block Storage. Dovresti configurare Linode, eseguire il suo stackscript, ma poi interromperlo per spostare eccessivamente lo storage blockchain su un volume appena commissionato prima di continuare.
+
+### Esegui la configurazione finale
+
+L'ultima cosa che devi fare è inserire una password di root. (Se hai dimenticato qualcosa, te lo diremo ora!)
+
+Fai clic su "Deploy" per inizializzare i dischi e preparare il tuo VPS. L'intera coda dovrebbe essere eseguita in meno di un minuto. Quando è terminata, dovresti vedere nella "Host Job Queue" i pulsanti verdi "Success" che indicano "Disk Create from StackScript - Setting password for root… done." e "Create Filesystem - 256MB Swap Image".
+
+Ora potresti voler cambiare il nome del tuo Linode VPS dal predefinito `linodexxxxxxxx`. Vai alla scheda Impostazioni e cambia l'etichetta in modo che sia più utile, come il nome host breve del tuo VPS. Ad esempio, potresti chiamarlo `bitcoin-testnet-pruned` per differenziarlo dagli altri VPS nel tuo account.
+
+## Accedi al tuo VPS
+
+Se guardi il tuo pannello di controllo Linode, dovresti vedere il nuovo computer avviarsi. Quando il lavoro avrà raggiunto il 100%, potrai effettuare l'accesso.
+
+Per prima cosa, ti servirà l'indirizzo IP. Fai clic sulla scheda "Linodes" e dovresti vedere un elenco del tuo VPS, il fatto che sia in esecuzione, il suo "piano", il suo indirizzo IP e altre informazioni.
+
+Vai alla tua console locale e accedi all'account `standup` utilizzando quell'indirizzo:
+
+
+
+
+```
+ssh standup@[IP-ADDRESS]
+```
+
+Per esempio:
+
+```
+ssh standup@192.168.33.11
+```
+
+Se hai configurato il tuo VPS per usare una chiave SSH, l'accesso dovrebbe essere automatico (potrebbe richiedere la tua password SSH per sbloccare la chiave). Se non hai configurato una chiave SSH, dovrai digitare la password user1.
+
+### Attendi qualche minuto
+
+Ecco un piccolo trucco: _il tuo StackScript è in esecuzione in questo momento_. Lo script BASH viene eseguito la prima volta che il VPS viene avviato. Ciò significa che il tuo VPS non è ancora pronto.
+
+Il tempo di esecuzione totale è di circa 10 minuti. Quindi, fai una pausa, prenditi un cafferino rilassati per qualche minuto. Ci sono due parti dello script che richiedono un po' di tempo: l'aggiornamento di tutti i pacchetti Debian e il download del codice Bitcoin. Non dovrebbero richiedere più di 5 minuti ciascuna, il che significa che se torni tra 10 minuti, probabilmente sarai pronto per partire.
+
+Se sei impaziente puoi andare avanti e digitare `sudo tail -f ~root/standup.log`, che visualizzerà l'avanzamento attuale dell'installazione, come descritto nella sezione successiva.
+
+## Verifica la tua installazione
+
+Saprai che stackscrpit è stato eseguito quando la `tail` di `standup.log` dice qualcosa del tipo:
+
+```
+/root/StackScript - Bitcoin is setup as a service and will automatically start if your VPS reboots and so is Tor
+/root/StackScript - You can manually stop Bitcoin with: sudo systemctl stop bitcoind.service
+/root/StackScript - You can manually start Bitcoin with: sudo systemctl start bitcoind.service
+```
+
+A quel punto, la tua directory home dovrebbe apparire così:
+
+```
+$ ls
+bitcoin-0.20.0-x86_64-linux-gnu.tar.gz laanwj-releases.asc SHA256SUMS.asc
+```
+
+Questi sono i vari file che sono stati utilizzati per installare Bitcoin sul tuo VPS. _Nessuno_ di loro è necessario. Li abbiamo lasciati solo nel caso in cui volessi fare delle verifiche aggiuntive. Altrimenti, puoi eliminarli:
+
+```
+$ rm *
+```
+
+Verifica la configurazione di Bitcoin
+
+Per garantire che la versione di Bitcoin scaricata sia valida, StackScript controlla sia la firma che il checksum SHA. Dovresti verificare che entrambi i test siano tornati corretti:
+
+```
+$ sudo grep VERIFICATION ~root/standup.log
+```
+
+
+Se vedi qualcosa di simile a quanto segue, tutto dovrebbe andare bene:
+
+```
+/root/StackScript - VERIFICATION SUCCESS / SIG: gpg: Good signature from "Wladimir J. van der Laan (Bitcoin Core binary release signing key) " [unknown]
+/root/StackScript - VERIFICATION SUCCESS / SHA: 35ec10f87b6bc1e44fd9cd1157e5dfa4```
+```
+However, if either of those two checks instead reads "VERIFICATION ERROR", then there's a problem. Since this is all scripted, it's possible that there's just been a minor change that has caused the script's checks not to work right. (This has happened a few times over the existence of the script that became Standup.) But, it's also possible that someone is trying to encourage you to run a fake copy of the Bitcoin daemon. So, _be very sure you know what happened before you make use of Bitcoin!_
+
+
+Tuttavia, se uno di quei due controlli invece dice "VERIFICATION ERROR", allora c'è un problema. Poiché tutto questo è scritto in uno script, è possibile che ci sia stata solo una piccola modifica che ha causato il malfunzionamento dei controlli dello script. (Questo è successo un paio di volte durante l'esistenza dello script che è diventato Standup.) Ma è anche possibile che qualcuno stia cercando di incoraggiarti a eseguire una copia falsa del Bitcoin daemon. Quindi, _assicurati di sapere cosa è successo prima di usare Bitcoin!_
+
+### Leggi i log
+
+Potresti anche voler leggere tutti i file di log di installazione, per assicurarti che non sia successo nulla di inaspettato durante l'installazione.
+
+È meglio guardare il file di log standard di StackScript, che contiene tutti gli output, inclusi gli errori:
+
+`$ sudo more ~root/standup.log`
+
+Nota che è del tutto normale vedere _alcuni_ errori, in particolare quando si esegue il rumorosissimo software gpg e quando varie cose provano ad accedere al dispositivo inesistente `/dev/tty`.
+
+Se invece vuoi guardare un set di informazioni più piccolo, tutti gli errori dovrebbero essere in:
+
+`$ sudo more ~root/standup.err`
+
+Questo continene ancora una discreta quantità di informazioni che non sono errori, ma è veloce da leggere.
+
+Se tutto sembra a posto, congratulazioni, hai un nodo Bitcoin funzionante usando Linode!
+
+## Cosa abbiamo fatto
+
+Sebbene l'immagine Debian 10 predefinita che stiamo usando per il tuo VPS sia stata modificata da Linode per essere relativamente sicura, il tuo nodo Bitcoin installato tramite Linode StackScript è impostato con un livello di sicurezza ancora più elevato. Potresti trovare questo limitante o non essere in grado di fare le cose che ti aspetti. Ecco alcune note a riguardo:
+
+### Servizi protetti
+
+L'installazione del tuo VPS Bitcoin è minima e non consente quasi nessuna comunicazione. Ciò avviene tramite il firewall semplice (`ufw`), che blocca tutto tranne le connessioni SSH. C'è anche un po' di sicurezza aggiuntiva possibile per le tue porte RFC, grazie ai servizi nascosti installati da Tor.
+
+
+**Regolazione di UFW.** Probabilmente dovresti lasciare UFW nella sua fase super protetta! Non vuoi usare una macchina Bitcoin per altri servizi, perché tutti aumentano la tua vulnerabilità! Se decidi diversamente, ci sono diverse [guide a UFW](https://www.digitalocean.com/community/tutorials/ufw-essentials-common-firewall-rules-and-commands) che ti permetteranno di aggiungere servizi. Come detto, non è complicato. Ad esempio, aggiungere servizi di posta richiederebbe solo l'apertura della porta di posta: `sudo ufw allow 25`. Ma non farlo.
+
+**Regolazione di Tor.** Potresti voler proteggere meglio servizi come SSH. Consulta [Capitolo 14: Usare Tor](14_0_Usare_Tor.md) per maggiori informazioni su Tor.
+
+### Shell protette
+
+Se hai definito "IP consentiti tramite SSH", l'accesso SSH (e SCP) al server è severamente limitato. `/etc/hosts.deny` non consente a nessuno di effettuare l'accesso. _Non consigliamo di cambiare questo_. `/etc/hosts.allow` consente quindi indirizzi IP specifici. Aggiungi semplicemente altri indirizzi IP in un elenco separato da virgole se hai bisogno di offrire più accesso.
+
+Ad esempio:
+
+```
+sshd: 127.0.0.1, 192.128.23.1
+```
+
+### Aggiornamenti automatici
+
+Debian è anche impostato per aggiornarsi automaticamente, per garantire che rimanga al passo con le patch di sicurezza più recenti.
+
+Se per qualche motivo volessi cambiare questa impostazione (_non lo consigliamo_), puoi fare così:
+
+```
+echo "unattended-upgrades unattended-upgrades/enable_auto_updates boolean false" | debconf-set-selections
+```
+
+_Se vuoi saperne di più su cosa fa lo stackscript di Bitcoin Standup, consulta [Appendice I: Comprendere Bitcoin Standup](A1_0_Comprendere_Bitcoin_Standup.md)._
+
+## Giocare con Bitcoin
+
+Quindi ora probabilmente vuoi giocare con Bitcoin!
+
+Ma aspetta, il tuo Bitcoin daemon sta probabilmente ancora scaricando blocchi. `bitcoin-cli getblockcount` ti dirà come stai andando al momento:
+
+```
+$ bitcoin-cli getblockcount
+1771352
+```
+
+Se è diverso ogni volta che digiti il comando, devi aspettare prima di lavorare con Bitcoin. Attualmente ci vogliono da 1 a 6 ore per una configurazione ridotta, a seconda della tua macchina.
+
+Ma una volta che si stabilizza su un numero, sei pronto per continuare!
+
+Tuttavia, potrebbe essere il momento di qualche altro caffè. Ma presto il tuo sistema sarà pronto per partire e sarai pronto per iniziare a sperimentare.
+
+
+
+
+
+## Riepilogo: Impostazione manuale di un VPS Bitcoin-Core
+
+Creare un VPS Bitcoin-Core con gli script Standup ha reso l'intero processo rapido, semplice e (si spera) indolore.
+
+## Cosa c'è dopo?
+
+Hai alcune opzioni per cosa c'è dopo:
+
+* Leggi [StackScript](https://github.com/BlockchainCommons/Bitcoin-Standup-Scripts/blob/master/Scripts/LinodeStandUp.sh) per comprendere la tua configurazione.
+* Leggi cosa fa StackScript in [Appendice 1](A1_0_Comprendere_Bitcoin_Standup.md).
+* Scegli una metodologia completamente alternativa in [Capitolo 2.2: Configurare Bitcoin Core Altri Mezzi](02_2_Configurare_Bitcoin_Core_Altri_Mezzi.md). * Passa a "bitcoin-cli" con [Capitolo 3: Comprendere le Configurazioni di Bitcoin](03_0_Comprendere_la_Configurazione_di_Bitcoin.md).
+
+## Sinossi: Tipi di installazione di Bitcoin
+
+**Mainnet.** Questo scaricherà l'intera blockchain di Bitnet. Sono 800 G di dati (e aumentano ogni giorno).
+
+**Pruned Mainnet.** Questo taglierà la blockchain che stai memorizzando fino agli ultimi 550 blocchi. Se non stai estraendo o eseguendo un altro servizio Bitcoin, questo dovrebbe essere più che sufficiente per la convalida.
+
+**Testnet.** Questo ti dà accesso a una blockchain Bitcoin alternativa in cui i Bitcoin non hanno effettivamente valore. È pensato per la sperimentazione e il test.
+
+**Pruned Testnet.** Questi sono solo gli ultimi 550 blocchi di Testnet... perché anche la blockchain di Testnet è piuttosto grande ora.
+
+**Private Regtest.** Questa è la modalità di test di regressione, che ti consente di eseguire un server Bitcoin completamente locale. Permette di effettuare test ancora più approfonditi. Non c'è bisogno di potatura qui, perché si partirà da zero. Questa è una configurazione molto diversa, e quindi è trattata in [Appendice 3](A3_0_Usare_Bitcoin_Regtest.md).
diff --git a/it/02_2_Configurare_Bitcoin_Core_Altri_Mezzi.md b/it/02_2_Configurare_Bitcoin_Core_Altri_Mezzi.md
new file mode 100644
index 000000000..715f42859
--- /dev/null
+++ b/it/02_2_Configurare_Bitcoin_Core_Altri_Mezzi.md
@@ -0,0 +1,19 @@
+# 2.2: Impostazione di una macchina Bitcoin-Core tramite altri mezzi
+
+La sezione precedente, [Capitolo 2.1: Configurare Bitcoin-Core VPS con StackScript](02_1_Configurare_Bitcoin-Core_VPS_con_StackScript.md), presupponeva che avresti creato un nodo completo su un VPS utilizzando uno Stackscript Linode. Tuttavia, puoi effettivamente installare Bitcoin-Core tramite qualsiasi altra metodologia di tua scelta e continuare a seguire i passaggi successivi di questo tutorial.
+
+Di seguito sono riportate alcune altre metodologie di configurazione di cui siamo a conoscenza:
+
+* *[Compilare Bitcoin dal Codice Fonte](A2_0_Compilare_Bitcoin_dal_Codice_Fonte.md).* Se preferisci compilare Bitcoin Core a mano, è trattato nell'Appendice 2.
+* *[Usare GordianServer-macOS](https://github.com/BlockchainCommons/GordianServer-macOS).* Se hai un Mac moderno, puoi usare l'app *GordianNode* di Blockchain Commons, basata su *BitcoinStandup*, per installare un nodo completo sul tuo Mac.
+* *[Usando altri script Bitcoin Standup](https://github.com/BlockchainCommons/Bitcoin-Standup-Scripts).* Blockchain Commons offre anche una versione dello script Linode che hai usato che può essere eseguito dalla riga di comando su qualsiasi macchina Debian o Ubuntu. Questo tende a essere lo script all'avanguardia, il che significa che è più probabile che presenti nuove funzioni, come l'installazione Lightning.
+* *[Impostazione di un nodo Bitcoin su AWS](https://wolfmcnally.com/115/developer-notes-setting-up-a-bitcoin-node-on-aws/).* @wolfmcnally ha scritto un tutorial passo dopo passo per l'impostazione di Bitcoin-Core con Amazon Web Services (AWS).
+* *[Impostazione di un nodo Bitcoin su un Raspberry Pi 3](https://medium.com/@meeDamian/bitcoin-full-node-on-rbp3-revised-88bb7c8ef1d1).* Damian Mee spiega come impostare un nodo completo headless su un Raspberry Pi 3.
+
+Assicurati di installare su una versione corrente del tuo sistema operativo, per evitare problemi in futuro. Al momento in cui scrivo, questo corso è stato testato su Debian 11.
+
+## Cosa c'è dopo?
+
+A meno che tu non voglia tornare a una delle altre metodologie per creare un nodo Bitcoin-Core, dovresti:
+
+* Passare a "bitcoin-cli" con [Capitolo 3: Comprendere la Configurazione di Bitcoin](03_0_Comprendere_la_Configurazione_di_Bitcoin.md).
diff --git a/it/03_0_Comprendere_la_Configurazione_di_Bitcoin.md b/it/03_0_Comprendere_la_Configurazione_di_Bitcoin.md
new file mode 100644
index 000000000..1b27b4da3
--- /dev/null
+++ b/it/03_0_Comprendere_la_Configurazione_di_Bitcoin.md
@@ -0,0 +1,31 @@
+# Capitolo tre: comprendere la configurazione di Bitcoin
+
+Ora sei pronto per iniziare a lavorare con l'interfaccia della riga di comando `bitcoin-cli`. Ma ciò richiede prima che tu comprenda la configurazione di Bitcoin e le caratteristiche del suo portafoglio, che è ciò che verrà spiegato in questo capitolo.
+
+Per questo e per i capitoli futuri, presumiamo che tu abbia un VPS con Bitcoin installato e che esegua `bitcoind`. Presumiamo inoltre che tu sia connesso a testnet, consentendo l'accesso ai bitcoin senza utilizzare fondi reali. Puoi farlo con Bitcoin Standup su Linode.com, secondo [Capitolo2.1: Configurare Bitcoin-Core VPS con StackScript](02_1_Configurare_Bitcoin-Core_VPS_con_StackScript.md), o tramite altri mezzi, secondo [Capitolo 2.2: Configurare Bitcoin Core Altri Mezzi.md](02_2_Configurare_Bitcoin_Core_Altri_Mezzi.md).
+
+## Obiettivi di questo capitolo
+
+Dopo aver letto questo capitolo, uno sviluppatore sarà in grado di:
+
+ * Dimostrare che il loro nodo Bitcoin è installato e aggiornato
+ * Creare un indirizzo per ricevere fondi Bitcoin
+ * Utilizzare i comandi di base del portafoglio
+ * Creare un indirizzo da un descrittore
+
+Gli obiettivi di supporto includono la capacità di:
+
+ * Comprendere il layout di base dei files di Bitcoin
+ * Utilizzare i comandi di base
+ * Comprendere cos'è un indirizzo Bitcoin
+ * Comprendere cos'è un portafoglio
+ * Scoprire come importare gli indirizzi
+
+## Sommario
+
+* [Capitolo 3.1: Verificare la configurazione Bitcoin](03_1_Verificare_la_configurazione_Bitcoin.md)
+* [Capitolo 3.2: Capire la configurazione di Bitcoin](03_2_Capire_la_configurazione_di_Bitcoin.md)
+* [Capitolo 3.3: Configurare la wallet](03_3_Configurare_la_wallet.md)
+ * [Interludio: Utilizzare Variabili nella Linea di Comando](03_3_Intermezzo_Utilizzare_Variabili_nella_Linea_di_Comando.md)
+* [Capitolo 3.4: Ricivere una Transazione](03_4_Ricivere_una_Transazione.md)
+* [Capitolo 3.5: Comprendere il Descriptor](03_5_Comprendere_il_Descriptor.md)
diff --git a/it/03_1_Verificare_la_configurazione_Bitcoin.md b/it/03_1_Verificare_la_configurazione_Bitcoin.md
new file mode 100644
index 000000000..bd7950101
--- /dev/null
+++ b/it/03_1_Verificare_la_configurazione_Bitcoin.md
@@ -0,0 +1,102 @@
+# 3.1: Verificare la configurazione di Bitcoin
+
+Prima di iniziare a giocare con Bitcoin, dovresti assicurarti che tutto sia impostato correttamente.
+
+## Crea i tuoi alias
+
+Suggeriamo di creare alcuni alias per facilitare l'utilizzo di Bitcoin.
+
+Puoi farlo inserendoli nel tuo `.bash_profile`, `.bashrc` o `.profile`.
+```
+cat >> ~/.bash_profile < :book: ***Cos'è l'altezza del blocco?*** L'altezza del blocco è la distanza alla quale un particolare blocco si trova dopo il blocco genesi. L'altezza del blocco corrente è l'altezza del blocco più recente aggiunto alla blockchain.
+
+Puoi farlo esaminando un blocknet explorer, come [Blockcypher Testnet explorer](https://live.blockcypher.com/btc-testnet/). Il suo numero più recente corrisponde al tuo `getblockcount`? Se è così, sei aggiornato.
+
+Se desideri un alias per visualizzare tutto in una volta, quanto segue attualmente funziona per Testnet, ma potrebbe scomparire in futuro:
+
+```
+$ echo "alias btcblock='echo \$(bitcoin-cli -testnet getblockcount)/\$(curl -s https://blockstream.info/testnet/api/blocks/tip/height)'" >> .bash_profile
+$ source .bash_profile
+$ btcblock
+1804372/1804372
+```
+> :link: **TESTNET vs MAINNET:** Ricorda che questo tutorial generalmente presuppone che tu stia utilizzando testnet. Se invece utilizzi la rete principale, puoi recuperare l'altezza del blocco corrente con: `curl -s https://blockchain.info/q/getblockcount`. Puoi sostituire la seconda metà dell'alias `btcblock` (dopo `/\$(`) con quella.
+
+Se non sei aggiornato, ma il tuo `getblockcount` sta aumentando, nessun problema. Il tempo totale di download può richiedere ancora piu tempo, a seconda della configurazione.
+
+## Opzionale: conosci i tuoi tipi di server
+
+> **TESTNET vs MAINNET:** quando configuri il tuo nodo, scegli di crearlo come nodo Mainnet, Testnet o Regtest. Anche se questo documento presuppone una configurazione di testnet, vale la pena capire come accedere e utilizzare gli altri tipi di configurazione, anche tutti sulla stessa macchina! Ma, se sei un utente alle prime armi, salta oltre, poiché non è necessario per una configurazione di base.
+
+Il tipo di configurazione è controllato principalmente tramite il file ~/.bitcoin/bitcoin.conf. Se stai utilizzando testnet, probabilmente contiene questa riga:
+```
+testnet=1
+```
+Se stai eseguendo regtest, probabilmente contiene questa riga:
+```
+regtest=1
+```
+Tuttavia, se desideri eseguire diversi tipi di nodi contemporaneamente, dovresti lasciare il flag testnet (o regtest) fuori dal file di configurazione. Puoi quindi scegliere se utilizzare la mainnet, la testnet o il regtest ogni volta che esegui bitcoind o bitcoin-cli.
+
+Ecco una serie di alias che renderebbero tutto più semplice creando un alias specifico per avviare e arrestare bitcoind, per andare alla directory bitcoin e per eseguire bitcoin-cli, per ciascuna rete principale (che non ha flag aggiuntivi), il testnet (che è -testnet) o il tuo regtest (che è -regtest).
+```
+cat >> ~/.bash_profile < :link: **TESTNET vs MAINNET:** Se stai utilizzando mainnet, allora _tutto_ verrà inserito nella directory principale `~/.bitcoin`. Queste varie configurazioni _si impilano_ in modo elegante, quindi se stai utilizzando mainnet, testnet e regtest, scoprirai che `~/.bitcoin` contiene il tuo file di configurazione e i tuoi dati mainnet, la directory `~/.bitcoin/testnet3` contiene i tuoi dati testnet e la directory "~/.bitcoin/regtest" contiene i tuoi dati regtest.
+
+## Conosci i comandi di Bitcoin-cli
+
+La maggior parte del tuo lavoro iniziale verrà svolto con il comando "bitcoin-cli", che offre un'interfaccia semplice per "bitcoind". Se desideri maggiori informazioni sul suo utilizzo, eseguilo semplicemente con l'argomento "aiuto". Senza altri argomenti, ti mostra tutti i comandi possibili:
+
+```
+$ bitcoin-cli help
+== Blockchain ==
+getbestblockhash
+getblock "blockhash" ( verbosity )
+getblockchaininfo
+getblockcount
+getblockfilter "blockhash" ( "filtertype" )
+getblockhash height
+getblockheader "blockhash" ( verbose )
+getblockstats hash_or_height ( stats )
+getchaintips
+getchaintxstats ( nblocks "blockhash" )
+getdifficulty
+getmempoolancestors "txid" ( verbose )
+getmempooldescendants "txid" ( verbose )
+getmempoolentry "txid"
+getmempoolinfo
+getrawmempool ( verbose )
+gettxout "txid" n ( include_mempool )
+gettxoutproof ["txid",...] ( "blockhash" )
+gettxoutsetinfo
+preciousblock "blockhash"
+pruneblockchain height
+savemempool
+scantxoutset "action" ( [scanobjects,...] )
+verifychain ( checklevel nblocks )
+verifytxoutproof "proof"
+
+== Control ==
+getmemoryinfo ( "mode" )
+getrpcinfo
+help ( "command" )
+logging ( ["include_category",...] ["exclude_category",...] )
+stop
+uptime
+
+== Generating ==
+generatetoaddress nblocks "address" ( maxtries )
+generatetodescriptor num_blocks "descriptor" ( maxtries )
+
+== Mining ==
+getblocktemplate ( "template_request" )
+getmininginfo
+getnetworkhashps ( nblocks height )
+prioritisetransaction "txid" ( dummy ) fee_delta
+submitblock "hexdata" ( "dummy" )
+submitheader "hexdata"
+
+== Network ==
+addnode "node" "command"
+clearbanned
+disconnectnode ( "address" nodeid )
+getaddednodeinfo ( "node" )
+getconnectioncount
+getnettotals
+getnetworkinfo
+getnodeaddresses ( count )
+getpeerinfo
+listbanned
+ping
+setban "subnet" "command" ( bantime absolute )
+setnetworkactive state
+
+== Rawtransactions ==
+analyzepsbt "psbt"
+combinepsbt ["psbt",...]
+combinerawtransaction ["hexstring",...]
+converttopsbt "hexstring" ( permitsigdata iswitness )
+createpsbt [{"txid":"hex","vout":n,"sequence":n},...] [{"address":amount},{"data":"hex"},...] ( locktime replaceable )
+createrawtransaction [{"txid":"hex","vout":n,"sequence":n},...] [{"address":amount},{"data":"hex"},...] ( locktime replaceable )
+decodepsbt "psbt"
+decoderawtransaction "hexstring" ( iswitness )
+decodescript "hexstring"
+finalizepsbt "psbt" ( extract )
+fundrawtransaction "hexstring" ( options iswitness )
+getrawtransaction "txid" ( verbose "blockhash" )
+joinpsbts ["psbt",...]
+sendrawtransaction "hexstring" ( maxfeerate )
+signrawtransactionwithkey "hexstring" ["privatekey",...] ( [{"txid":"hex","vout":n,"scriptPubKey":"hex","redeemScript":"hex","witnessScript":"hex","amount":amount},...] "sighashtype" )
+testmempoolaccept ["rawtx",...] ( maxfeerate )
+utxoupdatepsbt "psbt" ( ["",{"desc":"str","range":n or [n,n]},...] )
+
+== Util ==
+createmultisig nrequired ["key",...] ( "address_type" )
+deriveaddresses "descriptor" ( range )
+estimatesmartfee conf_target ( "estimate_mode" )
+getdescriptorinfo "descriptor"
+signmessagewithprivkey "privkey" "message"
+validateaddress "address"
+verifymessage "address" "signature" "message"
+
+== Wallet ==
+abandontransaction "txid"
+abortrescan
+addmultisigaddress nrequired ["key",...] ( "label" "address_type" )
+backupwallet "destination"
+bumpfee "txid" ( options )
+createwallet "wallet_name" ( disable_private_keys blank "passphrase" avoid_reuse )
+dumpprivkey "address"
+dumpwallet "filename"
+encryptwallet "passphrase"
+getaddressesbylabel "label"
+getaddressinfo "address"
+getbalance ( "dummy" minconf include_watchonly avoid_reuse )
+getbalances
+getnewaddress ( "label" "address_type" )
+getrawchangeaddress ( "address_type" )
+getreceivedbyaddress "address" ( minconf )
+getreceivedbylabel "label" ( minconf )
+gettransaction "txid" ( include_watchonly verbose )
+getunconfirmedbalance
+getwalletinfo
+importaddress "address" ( "label" rescan p2sh )
+importmulti "requests" ( "options" )
+importprivkey "privkey" ( "label" rescan )
+importprunedfunds "rawtransaction" "txoutproof"
+importpubkey "pubkey" ( "label" rescan )
+importwallet "filename"
+keypoolrefill ( newsize )
+listaddressgroupings
+listlabels ( "purpose" )
+listlockunspent
+listreceivedbyaddress ( minconf include_empty include_watchonly "address_filter" )
+listreceivedbylabel ( minconf include_empty include_watchonly )
+listsinceblock ( "blockhash" target_confirmations include_watchonly include_removed )
+listtransactions ( "label" count skip include_watchonly )
+listunspent ( minconf maxconf ["address",...] include_unsafe query_options )
+listwalletdir
+listwallets
+loadwallet "filename"
+lockunspent unlock ( [{"txid":"hex","vout":n},...] )
+removeprunedfunds "txid"
+rescanblockchain ( start_height stop_height )
+sendmany "" {"address":amount} ( minconf "comment" ["address",...] replaceable conf_target "estimate_mode" )
+sendtoaddress "address" amount ( "comment" "comment_to" subtractfeefromamount replaceable conf_target "estimate_mode" avoid_reuse )
+sethdseed ( newkeypool "seed" )
+setlabel "address" "label"
+settxfee amount
+setwalletflag "flag" ( value )
+signmessage "address" "message"
+signrawtransactionwithwallet "hexstring" ( [{"txid":"hex","vout":n,"scriptPubKey":"hex","redeemScript":"hex","witnessScript":"hex","amount":amount},...] "sighashtype" )
+unloadwallet ( "wallet_name" )
+walletcreatefundedpsbt [{"txid":"hex","vout":n,"sequence":n},...] [{"address":amount},{"data":"hex"},...] ( locktime options bip32derivs )
+walletlock
+walletpassphrase "passphrase" timeout
+walletpassphrasechange "oldpassphrase" "newpassphrase"
+walletprocesspsbt "psbt" ( sign "sighashtype" bip32derivs )
+
+== Zmq ==
+getzmqnotifications
+```
+Puoi anche scrivere `bitcoin-cli help [command]` per maggiori informazioni sul commando specifico. Per esempio:
+```
+$ bitcoin-cli help getmininginfo
+```
+Restituisce un oggetto json contenente informazioni relative al mining.
+Risultato:
+```
+{ (json object)
+ "blocks" : n, (numeric) The current block
+ "currentblockweight" : n, (numeric, optional) The block weight of the last assembled block (only present if a block was ever assembled)
+ "currentblocktx" : n, (numeric, optional) The number of block transactions of the last assembled block (only present if a block was ever assembled)
+ "difficulty" : n, (numeric) The current difficulty
+ "networkhashps" : n, (numeric) The network hashes per second
+ "pooledtx" : n, (numeric) The size of the mempool
+ "chain" : "str", (string) current network name (main, test, regtest)
+ "warnings" : "str" (string) any network and blockchain warnings
+}
+```
+Esempio:
+```
+> bitcoin-cli getmininginfo
+> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "getmininginfo", "params": []}' -H 'content-type: text/plain;' http://127.0.0.1:8332/
+```
+> :book: ***Cos'è RPC?*** `bitcoin-cli` è semplicemente una pratica interfaccia che ti consente di inviare comandi a `bitcoind`. Più specificamente, è un'interfaccia che ti consente di inviare comandi RPC (o Remote Procedure Protocol) a `bitcoind`. Spesso, il comando `bitcoin-cli` e il comando RPC hanno nomi e interfacce identici, ma alcuni comandi `bitcoin-cli` forniscono invece scorciatoie per richieste RPC più complesse. In generale, l'interfaccia `bitcoin-cli` è molto più pulita e semplice rispetto al tentativo di inviare comandi RPC manualmente, utilizzando "curl" o qualche altro metodo. Tuttavia, presenta anche dei limiti su ciò che puoi fare.
+
+## Opzionale: conoscere le informazioni su Bitcoin
+
+Una varietà di comandi `bitcoin-cli` può fornirti ulteriori informazioni sui tuoi dati bitcoin. Quelli più generali sono:
+
+`bitcoin-cli -getinfo` restituisce informazioni da diversi RPCs (user-friendly)
+
+```diff
+$ bitcoin-cli -getinfo
+
+! Chain: test
+Blocks: 1977694
+Headers: 1977694
+Verification progress: 0.9999993275374796
+Difficulty: 1
+
++ Network: in 0, out 8, total 8
+Version: 219900
+Time offset (s): 0
+Proxy: N/A
+Min tx relay fee rate (BTC/kvB): 0.00001000
+
+@@ Wallet: ""@@
+Keypool size: 1000
+Unlocked until: 0
+Transaction fee rate (-paytxfee) (BTC/kvB): 0.00000000
+
+# Balance: 0.02853102
+
+- Warnings: unknown new rules activated (versionbit 28)
+
+```
+
+Altri comandi per ottenere informazioni su blockchain, mining, rete, portafoglio ecc.
+```
+$ bitcoin-cli getblockchaininfo
+$ bitcoin-cli getmininginfo
+$ bitcoin-cli getnetworkinfo
+$ bitcoin-cli getnettotals
+$ bitcoin-cli getwalletinfo
+```
+Ad esempio `bitcoin-cli getnetworkinfo` ti fornisce una serie di informazioni sulla tua configurazione e sul suo accesso a varie reti:
+```
+$ bitcoin-cli getnetworkinfo
+{
+ "version": 200000,
+ "subversion": "/Satoshi:0.20.0/",
+ "protocolversion": 70015,
+ "localservices": "0000000000000408",
+ "localservicesnames": [
+ "WITNESS",
+ "NETWORK_LIMITED"
+ ],
+ "localrelay": true,
+ "timeoffset": 0,
+ "networkactive": true,
+ "connections": 10,
+ "networks": [
+ {
+ "name": "ipv4",
+ "limited": false,
+ "reachable": true,
+ "proxy": "",
+ "proxy_randomize_credentials": false
+ },
+ {
+ "name": "ipv6",
+ "limited": false,
+ "reachable": true,
+ "proxy": "",
+ "proxy_randomize_credentials": false
+ },
+ {
+ "name": "onion",
+ "limited": false,
+ "reachable": true,
+ "proxy": "127.0.0.1:9050",
+ "proxy_randomize_credentials": true
+ }
+ ],
+ "relayfee": 0.00001000,
+ "incrementalfee": 0.00001000,
+ "localaddresses": [
+ {
+ "address": "45.79.111.171",
+ "port": 18333,
+ "score": 1
+ },
+ {
+ "address": "2600:3c01::f03c:92ff:fecc:fdb7",
+ "port": 18333,
+ "score": 1
+ },
+ {
+ "address": "4wrr3ktm6gl4sojx.onion",
+ "port": 18333,
+ "score": 4
+ }
+ ],
+ "warnings": "Warning: unknown new rules activated (versionbit 28)"
+}
+```
+Sentiti libero di fare riferimento a uno di questi e di utilizzare `bitcoin-cli help` se desideri maggiori informazioni su cosa fanno.
+
+## Riepilogo: Capire la configurazione di Bitcoin
+
+La directory `~/.bitcoin` contiene tutti i tuoi file, mentre `bitcoin-cli help` contiene e una varietà di comandi che puoi utilizzare per ottenere maggiori informazioni su come funzionano la tua configurazione e Bitcoin.
+
+## Ora cosa facciamo?
+
+Continua "Comprendere la configurazione di Bitcoin" col [Capitolo 3.3: Configurare la Wallet](03_3_Configurare_la_Wallet.md).
diff --git a/it/03_3_Configurare_la_Wallet.md b/it/03_3_Configurare_la_Wallet.md
new file mode 100644
index 000000000..eeb33f1bb
--- /dev/null
+++ b/it/03_3_Configurare_la_Wallet.md
@@ -0,0 +1,176 @@
+# 3.3: Configurare la Wallet
+
+Ora sei pronto per iniziare a lavorare con Bitcoin. Per cominciare, dovrai creare una wallet, un portafoglio digitale per inviare e ricevere fondi.
+
+## Crea una wallet
+
+> :warning: **AVVERTIMENTO VERSIONE:** Le versioni più recenti di Bitcoin Core, a partire dalla v0.21.0, non creeranno più automaticamente un portafoglio predefinito all'avvio. Quindi, dovrai crearne uno manualmente. Ma se stai utilizzando una versione precedente di Bitcoin Core, è già stato creato un nuovo portafoglio per te, in quel caso puoi passare a [Creare un indirizzo](#Creare-un-indirizzo).
+
+La prima cosa che devi fare è creare un nuovo portafoglio, cosa che può essere fatta con il comando `bitcoin-cli createwallet`. Creando un nuovo portafoglio, creerai la tua coppia di chiavi pubblica-privata. La tua chiave pubblica è la fonte da cui verranno creati i tuoi indirizzi e la tua chiave privata è ciò che ti consentirà di spendere tutti i fondi che ricevi nei tuoi indirizzi. Bitcoin Core salverà automaticamente tali informazioni in un file `wallet.dat` nella tua directory `~/.bitcoin/testnet3/wallets`.
+
+Se controlli la directory `wallets`, vedrai che al momento è vuota.
+
+```
+$ ls ~/.bitcoin/testnet3/wallets
+$
+```
+Anche se Bitcoin Core non creerà un nuovo portafoglio per te, comunque caricherà all'avvio, per impostazione predefinita, una wallet senza nome (""). Quindi puoi trarne vantaggio creando un nuovo portafoglio senza nome.
+
+```
+$ bitcoin-cli -named createwallet wallet_name="" descriptors=false
+
+{
+ "name": "",
+ "warning": ""
+}
+```
+
+Ora, la tua directory `wallets` si è riempito.
+```
+$ ls ~/.bitcoin/testnet3/wallets
+database db.log wallet.dat
+```
+> :book: ***Cos'è una wallet Bitcoin?*** Un portafoglio Bitcoin è l'equivalente digitale di un portafoglio fisico sulla rete Bitcoin. Memorizza informazioni sulla quantità di bitcoin che possiedi e dove si trovano (indirizzi), nonché i modi in cui puoi utilizzarli per spenderli. Spendere denaro fisico è intuitivo, ma per spendere bitcoin gli utenti devono fornire la _chiave privata_ corretta. Lo spiegheremo in modo più dettagliato piu avanti nel corso, ma quello che dovresti sapere per ora è che questa dinamica della chiave pubblica-privata fa parte di ciò che rende Bitcoin sicuro e senza bisogno di fiducia in terzi. Le informazioni sulla tua coppia di chiavi vengono salvate nel file `wallet.dat`, oltre ai dati sulle preferenze e sulle transazioni. Nella maggior parte dei casi, non dovrai preoccuparti della chiave privata: `bitcoind` la utilizzerà quando sarà necessaria. Tuttavia, questo rende il file `wallet.dat` estremamente importante: se lo perdi, perdi le tue chiavi private e se perdi le chiavi private, perdi i tuoi fondi!
+
+Ottimo, ora hai un portafoglio Bitcoin. Ma un portafoglio sarà di scarsa utilità per ricevere bitcoin se prima non crei un indirizzo.
+
+> :warning: **AVVERTIMENTO VERSIONE:** A partire da Bitcoin Core v 23.0, i portafogli `Descriptor` sono diventati l'impostazione predefinita. È fantastico, perché i portafogli descrittori sono molto potenti, tranne per il fatto che attualmente non funzionano con multisig! Quindi li disattiviamo con l'argomento `descrptor=false`. Vedi [Capitolo 3.5: Comprendere il Descriptor](03_5_Comprendere_il_Descriptor.md) per ulteriori informazioni.
+
+## Creare un indirizzo
+
+La prossima cosa che devi fare è creare un indirizzo per ricevere i pagamenti. Questo viene fatto con il comando `bitcoin-cli getnewaddress`. Ricorda che se desideri maggiori informazioni su questo comando, devi digitare `bitcoin-cli help getnewaddress`. Attualmente esistono tre tipi di indirizzi: un tipo "legacy" , e due tipi SegWit, cioè "p2sh-segwit" e "bech32". Se non specifichi diversamente, otterrai il valore predefinito, che attualmente è "bech32".
+
+Tuttavia, nelle prossime sezioni utilizzeremo invece indirizzi "legacy", sia perché "bitcoin-cli" ha avuto alcuni problemi iniziali con le sue prime versioni degli indirizzi SegWit, sia perché altre persone potrebbero non essere in grado di inviare a indirizzi "bech32". È improbabile che tutto ciò costituisca un problema per te adesso, ma per il momento vogliamo iniziare con esempi di transazioni che sono (per lo più) garantiti per funzionare.
+
+Innanzitutto, riavvia `bitcoind` in modo che il tuo nuovo portafoglio senza nome ("") venga impostato come predefinito e caricato automaticamente.
+
+
+```
+$ bitcoin-cli stop
+Bitcoin Core stopping # wait a minute so it stops completely
+$ bitcoind -daemon
+Bitcoin Core starting # wait a minute so it starts completely
+```
+
+Ora puoi creare un indirizzo. Puoi richiedere un indirizzo `legacy` con il secondo argomento di `getnewaddress` o con l'argomento denominato `addresstype`.
+
+```
+$ bitcoin-cli getnewaddress -addresstype legacy
+moKVV6XEhfrITAnQCYq6ppT7AaliCOsZ1B
+```
+
+Tieni presente che questo indirizzo inizia con una "m" (o talvolta una "n") per indicare un indirizzo Legacy testnet. Sarebbe un "2" per un indirizzo P2SH o un "tb1" per un indirizzo Bech32.
+
+> :link: **TESTNET vs MAINNET:** L'indirizzo mainnet equivalente inizierebbe con "1" (per Legacy), "3" (per P2SH) o "bc1" (per Bech32).
+
+Prendi nota attentamente dell'indirizzo. Dovrai darlo a chi ti invierà i fondi.
+
+> :book: ***Che cos'è un indirizzo Bitcoin?*** Un indirizzo Bitcoin è letteralmente il luogo in cui ricevi denaro. È come un indirizzo email, ma per i fondi. Tecnicamente, è una chiave pubblica, che viene adattata a seconda dei diversi schemi di indirizzi. Tuttavia, a differenza di un indirizzo email, un indirizzo Bitcoin dovrebbe essere considerato monouso: usalo per ricevere fondi solo _una volta_. Quando desideri ricevere fondi da qualcun altro o in un altro momento, genera un nuovo indirizzo. Questo è suggerito in gran parte per migliorare la tua privacy. L'intera blockchain è immutabile, il che significa che gli esploratori possono osservare lunghe catene di transazioni nel tempo, consentendo di determinare statisticamente chi sei tu e i tuoi contatti, non importa quanto tu sia attento. Tuttavia, se continui a riutilizzare lo stesso indirizzo, la cosa diventa ancora più semplice. Creando il tuo primo indirizzo Bitcoin, hai anche iniziato a riempire il tuo portafoglio Bitcoin. Più precisamente, hai iniziato a riempire il file `wallet.dat` nella tua directory `~/.bitcoin/testnet3 /wallets`.
+
+Con un solo indirizzo in mano, puoi passare direttamente alla sezione successiva e iniziare a ricevere fondi. Tuttavia, prima di arrivare a questo, discuteremo brevemente degli altri tipi di indirizzi che incontrerai in futuro e parleremo di alcuni altri comandi della wallet che potresti voler utilizzare in futuro.
+
+### Conoscere i tuoi indirizzi Bitcoin
+
+Esistono tre tipi di indirizzi Bitcoin che puoi creare con il comando RPC `getnewaddress`. Qui utilizzerai un indirizzo "legacy" (P2PKH), mentre passerai a un indirizzo SegWit (P2SH-SegWit) o Bech32 nel [Capitolo 4.6: Creare una Transazione Segwit](04_6_Creare_una_Transazione_Segwit.md).
+
+Come notato sopra, la base di un indirizzo Bitcoin è una chiave pubblica: qualcuno invia fondi alla tua chiave pubblica e poi usi la tua chiave privata per riscattarla. Facile? Tranne che mettere la tua chiave pubblica là fuori non è del tutto sicuro. Al momento, se qualcuno ha la tua chiave pubblica, non può recuperare la tua chiave privata (e quindi i tuoi fondi); questa è la base della crittografia, che utilizza una funzione trap-door per garantire che si possa passare solo dalla chiave privata a quella pubblica e non viceversa. Ma il problema è che non sappiamo cosa ci riserverà il futuro. Solo che sappiamo che i sistemi di crittografia prima o poi vengono danneggiati dall'inarrestabile progresso della tecnologia, quindi è meglio non mettere chiavi pubbliche grezze in rete, per rendere le tue transazioni a prova di futuro.
+
+Le transazioni Bitcoin classiche hanno creato indirizzi P2PKH che hanno aggiunto un ulteriore passaggio crittografico per proteggere le chiavi pubbliche.
+
+> :book: ***Che cos'è un indirizzo Legacy (P2PKH)?*** Questo è un indirizzo Legacy del tipo utilizzato dalla prima rete Bitcoin. Lo useremo negli esempi per le prossime sezioni. Si chiama indirizzo _Pay to PubKey Hash_ (o P2PKH) perché l'indirizzo è un hash a 160 bit di una chiave pubblica. L'utilizzo di un hash della tua chiave pubblica come indirizzo crea un processo in due fasi in cui è necessario rivelare sia la chiave privata che quella pubblica per spendere i fondi, aumenta di conseguenza la sicurezza futura. Questo tipo di indirizzo rimane importante per ricevere fondi da persone con software wallet non aggiornato.
+
+Come descritto più dettagliatamente nel [Capitolo 4.6: Creare una Transazione Segwit](04_6_Creating_a_Segwit_Transaction.md), le guerre sulle dimensioni dei blocchi della fine degli anni 2010 hanno portato a un nuovo tipo di indirizzo: *SegWit*. Questo è il tipo di indirizzo preferito, oggi è completamente integrato in Bitcoin-Core, ma i dettagli li vedremo nel Capitolo 4.6.
+
+SegWit significa semplicemente "testimone separato" ed è un modo per separare le firme delle transazioni dal resto della transazione per ridurre le dimensioni e il costo della transazione. Alcuni indirizzi SegWit si insinueranno in alcuni dei nostri esempi precedenti al Capitolo 4.6 come indirizzi di devoluzione del resto, "change", che vedrai come indirizzi che iniziano con "tb". Questo va bene perché `bitcoin-cli` supporta interamente il loro utilizzo.
+
+Esistono due indirizzi di questo tipo:
+
+> :book: ***Che cos'è un indirizzo P2SH-SegWit (noto anche come Nested SegWit)?*** Questa è la prima generazione di SegWit. Avvolge l'indirizzo SegWit in un scripthash per garantire la compatibilità con le versioni precedenti. Il risultato crea transazioni più piccole di circa il 25% di Bytes in meno (con corrispondenti riduzioni delle commissioni di transazione).
+
+> :book: ***Cos'è un indirizzo Bech32 (noto anche come Native SegWit, alias P2WPKH)?*** Questa è la seconda generazione di SegWit. È completamente descritto in [BIP 173](https://en.bitcoin.it/wiki/BIP_0173). Crea transazioni ancora più piccole ma, soprattutto, presenta anche alcuni vantaggi nella creazione di indirizzi meno soggetti a errori umani e con una correzione implicita degli errori oltre a ciò. Bech32 *Non* è compatibile con le versioni precedenti come lo era P2SH-SegWit, quindi alcune persone potrebbero non essere in grado di inviar sats a qesti indirizzi.
+
+Esistono altri tipi di indirizzi Bitcoin, come P2PK (che paga a una semplice chiave pubblica ed è deprecato a causa della sua futura insicurezza) e P2SH (che paga a uno Script Hash e che viene utilizzato dal Nested SegWit di prima generazione indirizzi; lo affronteremo più approfonditamente tra qualche capitolo).
+
+
+## Facoltativo: firma un messaggio
+
+A volte dovrai dimostrare di verificare un indirizzo Bitcoin (o meglio, di verificare la chiave privata). Questo è importante perché fa sapere alle persone che stanno inviando fondi alla persona giusta. Questo può essere fatto creando una firma con il comando `bitcoin-cli signmessage`, nella forma `bitcoin-cli signmessage [indirizzo] [messaggio]`. Per esempio:
+
+```
+$ bitcoin-cli signmessage "moKVV6XEhfrBCE3QCYq6ppT7AaMF8KsZ1B" "Hello, World"
+HyIP0nzdcH12aNbQ2s2rUxLwzG832HxiO1vt8S/jw+W4Ia29lw6hyyaqYOsliYdxne70C6SZ5Utma6QY/trHZBI=
+```
+Riceverai la firma in cambio.
+
+> :book: ***Cos'è una firma?*** Una firma digitale è una combinazione di un messaggio e di una chiave privata che può poi essere sbloccata con una chiave pubblica. Poiché esiste una corrispondenza uno a uno tra gli elementi di una coppia di chiavi, lo sblocco con una chiave pubblica dimostra che il firmatario controllava la chiave privata corrispondente.
+
+Un'altra persona può quindi utilizzare il comando "bitcoin-cli verifymessage" per verificare la firma. Inserisce l'indirizzo in questione, la firma e il messaggio:
+
+```
+$ bitcoin-cli verifymessage "moKVV6XEhfrBCE3QCYq6ppT7AaMF8KsZ1B" "HyIP0nzdcH12aNbQ2s2rUxLwzG832HxiO1vt8S/jw+W4Ia29lw6hyyaqYOsliYdxne70C6SZ5Utma6QY/trHZBI=" "Hello, World"
+true
+```
+Se corrispondono tutti, l'altra persona sa che può trasferire in sicurezza i fondi alla persona che ha firmato il messaggio inviandolo all'indirizzo.
+
+Se qualche black hat stesse inventando firme, ciò produrrebbe invece un risultato negativo:
+```
+$ bitcoin-cli verifymessage "FAKEV6XEhfrBCE3QCYq6ppT7AaMF8KsZ1B" "HyIP0nzdcH12aNbQ2s2rUxLwzG832HxiO1vt8S/jw+W4Ia29lw6hyyaqYOsliYdxne70C6SZ5Utma6QY/trHZBI=" "Hello, World"
+error code: -3
+error message:
+Invalid address
+```
+
+## Opzionale: scarica il tuo portafoglio
+
+Potrebbe sembrare pericoloso avere tutte le tue insostituibili chiavi private in un unico file. Ecco a cosa serve `bitcoin-cli dumpwallet`. Ti consente di creare una copia del tuo wallet.dat:
+```
+$ bitcoin-cli dumpwallet ~/mywallet.txt
+```
+Il file `mywallet.txt` nella tua directory home conterrà un lungo elenco di chiavi private, indirizzi e altre informazioni. Intendiamoci, non vorresti MAI inserire questi dati in un semplice file di testo su una configurazione Bitcoin con fondi reali!
+
+È quindi possibile recuperarlo con `bitcoin-cli importwallet`.
+```
+$ bitcoin-cli importwallet ~/mywallet.txt
+```
+Ma nota che questo richiede un nodo non potato!
+```
+$ bitcoin-cli importwallet ~/mywallet.txt
+error code: -4
+error message:
+Importing wallets is disabled when blocks are pruned
+```
+
+## Facoltativo: visualizza le tue chiavi private
+
+A volte, potresti voler effettivamente guardare le chiavi private associate ai tuoi indirizzi Bitcoin. Forse vuoi poter firmare un messaggio o spendere bitcoin da una macchina diversa. Forse vuoi solo eseguire il backup di alcune importanti chiavi private. Puoi farlo anche con il tuo file di dump, poiché è leggibile dall'uomo.
+```
+$ bitcoin-cli dumpwallet ~/mywallet.txt
+{
+ "filename": "/home/standup/mywallet.txt"
+}
+```
+Più probabilmente, vuoi solo guardare la chiave privata associata a un indirizzo specifico. Questo può essere fatto con il comando "bitcoin-cli dumpprivkey".
+
+```
+$ bitcoin-cli dumpprivkey "moKVV6XEhfrBCE3QCYq6ppT7AaMF8KsZ1B"
+cTv75T4B3NsG92tdSxSfzhuaGrzrmc1rJjLKscoQZXqNRs5tpYhH
+```
+Puoi quindi salvare la chiave in un posto sicuro, preferibilmente in un posto non connesso a Internet.
+
+Puoi anche importare qualsiasi chiave privata, da dumpwallet o da un dump della chiave individuale, come segue:
+```
+$ bitcoin-cli importprivkey cW4s4MdW7BkUmqiKgYzSJdmvnzq8QDrf6gszPMC7eLmfcdoRHtHh
+```
+Ancora una volta, aspettatevi che ciò richieda un nodo non potato. Aspettatevi che ciò richieda un po' di tempo, poiché "bitcoind" deve rileggere tutte le transazioni passate, per vedere se ce ne sono di nuove a cui prestare attenzione.
+
+> :information_source: **NOTA:** Molti wallet moderni preferiscono [codici mnemonici](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) per generare i seed necessari per creare il privato chiavi. Questa metodologia non viene utilizzata "bitcoin-cli", quindi non sarai in grado di generare pratici elenchi di parole per ricordare le tue chiavi private.
+
+_Hai digitato quell'indirizzo Bitcoin e firmavi i messaggi e ora scaricavi le chiavi, è *troppo*. Se pensi che sia una seccatura, siamo d'accordo. Ed è anche soggetto a errori, un argomento che affronteremo nella sezione successiva._
+
+## Riepilogo: configurazione la wallet
+
+È necessario creare un indirizzo per ricevere fondi. Il tuo indirizzo è memorizzato in un wallet di cui puoi eseguire il backup. Puoi anche fare molto di più con un indirizzo, come scaricare la sua chiave privata o usarlo per firmare messaggi. Ma in realtà, creare quell'indirizzo è _tutto_ ciò che devi fare per ricevere fondi Bitcoin.
+
+## E ora?
+
+Prenditi un attimo e da un occhiata a le variabili nella linea di comando, qui: [Utilizzare Variabili nella Linea di Comando](03_3_Intermezzo_Utilizzare_Variabili_nella_Linea_di_Comando.md).
diff --git a/it/03_3_Intermezzo_Utilizzare_Variabili_nella_Linea_di_Comando.md b/it/03_3_Intermezzo_Utilizzare_Variabili_nella_Linea_di_Comando.md
new file mode 100644
index 000000000..d094ee269
--- /dev/null
+++ b/it/03_3_Intermezzo_Utilizzare_Variabili_nella_Linea_di_Comando.md
@@ -0,0 +1,40 @@
+# Interludio: utilizzare le variabili nella riga di comando
+
+La sezione precedente ha dimostrato una serie di comandi della riga di comando utilizzati senza offuscamenti o interferenze. Tuttavia, spesso non è il modo migliore per eseguire Bitcoin dalla riga di comando. Poiché hai a che fare con variabili lunghe, complesse e illeggibili, è facile commettere un errore se le stai copiando (o, satoshi forfend, se le stai digitando a mano). Poiché queste variabili possono fare la differenza tra ricevere e perdere denaro reale, non vuoi commettere errori. Per questi motivi, consigliamo vivamente di utilizzare variabili della riga di comando per salvare indirizzi, firme o altre lunghe stringhe di informazioni ogni volta che è ragionevole farlo.
+
+Se utilizzi `bash`, puoi salvare le informazioni in una variabile come questa:
+```
+$ VARIABLE=$(command)
+```
+Questa è una semplice sostituzione di comando, l'equivalente di ``VARIABILE=`comando` ``. Viene eseguito il comando tra parentesi, quindi assegnato alla VARIABILE.
+
+Per creare un nuovo indirizzo sarebbe quindi simile a questo:
+```
+$ unset NEW_ADDRESS_1
+$ NEW_ADDRESS_1=$(bitcoin-cli getnewaddress "" legacy)
+```
+Questo comando cancella la variabile `NEW_ADDRESS_1` per sicurezza, quindi la riempiono con i risultati del comando `bitcoin-cli getnewaddress`.
+
+Dalla tua Shell puoi utilizzare il comando `echo` per controllare il tuo (nuovo) indirizzo:
+
+```
+$ echo $NEW_ADDRESS_1
+mi25UrzHnvn3bpEfFCNqJhPWJn5b77a5NE
+```
+Poiché hai il tuo indirizzo in una variabile, ora puoi firmare facilmente un messaggio per quell'indirizzo, senza preoccuparti di digitarlo in modo errato. Ovviamente salverai anche quella firma in una variabile!
+```
+$ NEW_SIG_1=$(bitcoin-cli signmessage $NEW_ADDRESS_1 "Hello, World")
+$ echo $NEW_SIG_1
+IPYIzgj+Rg4bxDwCyoPiFiNNcxWHYxgVcklhmN8aB2XRRJqV731Xu9XkfZ6oxj+QGCRmTe80X81EpXtmGUpXOM4=
+```
+Per praticità nella tutorial utilizzeremo questo tipo di salvataggio delle informazioni nelle variabili.
+
+> :book: ***Quando non è pratico utilizzare le variabili della riga di comando?*** Le variabili della riga di comando non sono pratiche se è necessario utilizzare le informazioni in un posto diverso dalla riga di comando. Ad esempio, salvare la tua firma potrebbe non essere utile se devi semplicemente inviarla a qualcun altro tramite email. Inoltre, alcuni comandi futuri restituiranno oggetti JSON invece di semplici informazioni e le variabili non potranno essere utilizzate per acquisire tali informazioni... almeno non senza _poco_ lavoro in più.
+
+## Riepilogo: utilizzare le variabili nella riga di comando
+
+Le variabili di shell possono essere utilizzate per contenere lunghe _Bitcoin strings_, riducendo al minimo le possibilità di errori.
+
+## Cosa viene dopo?
+
+[Capitolo 3.4: Ricevere una Transazione](03_4_Ricevere_una_Transazione.md).
diff --git a/it/03_4_Ricevere_una_Transazione.md b/it/03_4_Ricevere_una_Transazione.md
new file mode 100644
index 000000000..24ac7aa1f
--- /dev/null
+++ b/it/03_4_Ricevere_una_Transazione.md
@@ -0,0 +1,324 @@
+# 3.4: Ricevere una Transazione
+
+Ora sei pronto per ricevere denaro al nuovo indirizzo che hai impostato.
+
+## Ottieni dei soldi
+
+Per fare qualcosa di più, devi ottenere dei soldi. Su testnet questo avviene tramite faucet. Dato che i soldi sono tutti finti, basta andare a un rubinetto, chiedere dei soldi e ti verranno inviati. Ti consigliamo di utilizzare il faucet su https://testnet-faucet.mempool.co/, https://bitcoinfaucet.uo1.net/ o https://testnet.coinfaucet.eu/en/. Se per qualche motivo non sono disponibili, cerca "bitcoin testnet faucet" e dovresti trovarne altri.
+
+Per utilizzare un faucet, di solito dovrai accedere a un URL e copiare e incollare il tuo indirizzo. Tieni presente che questo è uno di quei casi in cui non sarai in grado di utilizzare le variabili della riga di comando, ahimè. Successivamente, verrà creata una transazione che ti invierà denaro dal faucet.
+
+> :book: ***Cos'è una transazione?*** Una transazione è uno scambio di bitcoin. Il proprietario di alcuni bitcoin utilizza la sua chiave privata per accedere a quelle monete, quindi blocca la transazione utilizzando la chiave pubblica del destinatario.
+
+> :link: **TESTNET vs MAINNET:** Purtroppo, non ci sono faucet nella vita reale. Se giocassi sulla rete principale, dovresti andare ad acquistare effettivamente bitcoin presso uno scambio bitcoin o un bancomat, oppure dovresti trovare qualcuno che te li invii. La vita su Testnet è molto più semplice.
+
+## Verifica i tuoi soldi
+
+Dopo aver richiesto il tuo denaro, dovresti essere in grado di verificarlo con il comando `bitcoin-cli getbalance`:
+
+```
+$ getbalance bitcoin-cli
+0.00000000
+```
+Ma aspetta, non ci sono ancora?
+
+Benvenuti nel mondo della latenza Bitcoin. Il problema è che la tua transazione non è stata ancora registrata in un blocco!
+
+> :book: ***Cos'è un blocco?*** Le transazioni vengono trasmesse attraverso la rete e raccolte in blocchi dai minatori. Questi blocchi sono protetti con una prova di lavoro matematica, che dimostra che la potenza di calcolo è stata spesa come parte della creazione del blocco. È quella prova di lavoro (moltiplicata su molti blocchi, ciascuno costruito sopra l'ultimo) che alla fine mantiene Bitcoin sicuro.
+
+> :book: ***Cos'è un miner?*** Un miner è un partecipante nella rete Bitcoin che lavora per creare blocchi. È un lavoro retribuito: quando un minatore crea con successo un blocco, riceve una ricompensa una tantum più le commissioni per le transazioni nel suo blocco. L’estrazione mineraria è un grande business. I minatori tendono a funzionare su hardware speciale, accelerato in modi che rendono più probabile che siano in grado di creare blocchi. Tendono anche a far parte dei pool minerari, dove i minatori accettano tutti di condividere i premi quando uno di loro crea con successo un blocco.
+
+Fortunatamente, `bitcoin-cli getunconfirmedbalance` dovrebbe comunque mostrare il saldo aggiornato purché sia stata creata la transazione iniziale:
+```
+$ bitcoin-cli getunconfirmedbalance
+0.01010000
+```
+Se anche questo mostra ancora uno zero, probabilmente stai procedendo troppo velocemente attraverso questo tutorial. Aspetta un secondo. Le monete dovrebbero apparire non confermate, quindi passare rapidamente a confermate. Tieni presente che una moneta può passare dal saldo non confermato al saldo confermato quasi immediatamente, quindi assicurati di controllarli entrambi. Tuttavia, se il tuo `getbalance` e il tuo `getunconfirmedbalance` mostrano ancora zero entro dieci minuti, probabilmente c'è qualcosa che non va con il faucet e dovrai sceglierne un altro.
+
+### Aumenta la confidenza col tuo denaro
+
+Puoi utilizzare `bitcoin-cli getbalance "*" [n]`, dove sostituisci `[n]` con un numero intero, per vedere se un saldo confermato è profondo 'n' blocchi.
+
+> :book: ***Cos'è la profondità del blocco?*** Dopo che un blocco è stato costruito e confermato, un altro blocco viene costruito sopra di esso, e un altro... Poiché si tratta di un processo stocastico, c'è qualche possibilità di inversione quando un blocco è ancora nuovo. Pertanto, un blocco deve essere sepolto diversi blocchi in profondità in una catena prima che tu possa sentirti totalmente sicuro dei tuoi fondi. Ciascuno di questi blocchi tende ad essere costruito in una media di 10 minuti... quindi di solito ci vuole circa un'ora affinché una transazione confermata riceva sei blocchi di profondità, che è la misura della piena fiducia in Bitcoin.
+
+Quanto segue mostra che le nostre transazioni sono state confermate una volta, ma non due volte:
+```
+$ bitcoin-cli getbalance "*" 1
+0.01010000
+$ bitcoin-cli getbalance "*" 2
+0.00000000
+```
+Ovviamente, ogni dieci minuti circa questa profondità aumenterà.
+
+Naturalmente, sul testnet, nessuno è così preoccupato dell'affidabilità dei tuoi fondi. Potrai spendere i tuoi soldi non appena sarà confermato.
+
+## Verifica il tuo portafoglio
+
+Il comando `bitcoin-cli getwalletinfo` ti fornisce maggiori informazioni sul saldo del tuo portafoglio:
+
+```
+$ bitcoin-cli getwalletinfo
+{
+ "walletname": "",
+ "walletversion": 169900,
+ "balance": 0.01010000,
+ "unconfirmed_balance": 0.00000000,
+ "immature_balance": 0.00000000,
+ "txcount": 2,
+ "keypoololdest": 1592335137,
+ "keypoolsize": 999,
+ "hdseedid": "fdea8e2630f00d29a9d6ff2af7bf5b358d061078",
+ "keypoolsize_hd_internal": 1000,
+ "paytxfee": 0.00000000,
+ "private_keys_enabled": true,
+ "avoid_reuse": false,
+ "scanning": false
+}
+```
+
+## Scopri la ID della transazione
+
+I tuoi soldi sono entrati nel tuo portafoglio tramite una transazione. Puoi scoprire la ID della transazione (txid) con il comando "bitcoin-cli listtransactions":
+
+```
+$ bitcoin-cli listtransactions
+[
+ {
+ "address": "mi25UrzHnvn3bpEfFCNqJhPWJn5b77a5NE",
+ "category": "receive",
+ "amount": 0.01000000,
+ "label": "",
+ "vout": 1,
+ "confirmations": 1,
+ "blockhash": "00000000000001753b24411d0e4726212f6a53aeda481ceff058ffb49e1cd969",
+ "blockheight": 1772396,
+ "blockindex": 73,
+ "blocktime": 1592600085,
+ "txid": "8e2ab10cabe9ec04ed438086a80b1ac72558cc05bb206e48fc9a18b01b9282e9",
+ "walletconflicts": [
+ ],
+ "time": 1592599884,
+ "timereceived": 1592599884,
+ "bip125-replaceable": "no"
+ },
+ {
+ "address": "mi25UrzHnvn3bpEfFCNqJhPWJn5b77a5NE",
+ "category": "receive",
+ "amount": 0.00010000,
+ "label": "",
+ "vout": 0,
+ "confirmations": 1,
+ "blockhash": "00000000000001753b24411d0e4726212f6a53aeda481ceff058ffb49e1cd969",
+ "blockheight": 1772396,
+ "blockindex": 72,
+ "blocktime": 1592600085,
+ "txid": "ca4898d8f950df03d6bfaa00578bd0305d041d24788b630d0c4a32debcac9f36",
+ "walletconflicts": [
+ ],
+ "time": 1592599938,
+ "timereceived": 1592599938,
+ "bip125-replaceable": "no"
+ }
+]
+
+```
+Questo mostra due transazioni (`8e2ab10cabe9ec04ed438086a80b1ac72558cc05bb206e48fc9a18b01b9282e9`) e (`ca4898d8f950df03d6bfaa00578bd0305d041d24788b630d0c4a32debcac9 f36`) per un importo specifico (`0.01000000` e `0.00010000`), entrambi ricevuti ("receive") dallo stesso indirizzo nel nostro portafoglio (`mi25UrzHnvn3bpEfFCNqJhPWJn5b77a5NE`) . A proposito, questa è unapratica sconsigliata: dovresti usare un nuovo indirizzo per ogni singola transazione Bitcoin che ricevi. In questo caso ci siamo spazientiti perché il primo rubinetto sembrava non funzionare.
+
+Puoi accedere a informazioni simili con il comando `bitcoin-cli listunspent`, ma mostra solo le transazioni per i soldi che non hai speso. Questi sono chiamati UTXO e saranno di vitale importanza quando invierai denaro nel mondo Bitcoin:
+```
+$ bitcoin-cli listunspent
+[
+ {
+ "txid": "ca4898d8f950df03d6bfaa00578bd0305d041d24788b630d0c4a32debcac9f36",
+ "vout": 0,
+ "address": "mi25UrzHnvn3bpEfFCNqJhPWJn5b77a5NE",
+ "label": "",
+ "scriptPubKey": "76a9141b72503639a13f190bf79acf6d76255d772360b788ac",
+ "amount": 0.00010000,
+ "confirmations": 1,
+ "spendable": true,
+ "solvable": true,
+ "desc": "pkh([d6043800/0'/0'/1']02fd5740996d853ea51a6904cf03257fc11204b0179f344c49739ec5b20b39c9ba)#62rud39c",
+ "safe": true
+ },
+ {
+ "txid": "8e2ab10cabe9ec04ed438086a80b1ac72558cc05bb206e48fc9a18b01b9282e9",
+ "vout": 1,
+ "address": "mi25UrzHnvn3bpEfFCNqJhPWJn5b77a5NE",
+ "label": "",
+ "scriptPubKey": "76a9141b72503639a13f190bf79acf6d76255d772360b788ac",
+ "amount": 0.01000000,
+ "confirmations": 1,
+ "spendable": true,
+ "solvable": true,
+ "desc": "pkh([d6043800/0'/0'/1']02fd5740996d853ea51a6904cf03257fc11204b0179f344c49739ec5b20b39c9ba)#62rud39c",
+ "safe": true
+ }
+]
+```
+Tieni presente che i bitcoin non è un disordine di soldi buttati nelle tue tasche. Ogni singola transazione che ricevi o che invii viene inserita nel registro immutabile della blockchain, in un blocco. Puoi vedere queste singole transazioni quando guardi i tuoi soldi non spesi. Ciò significa che la spesa in bitcoin non è così anonima come potresti pensare. Sebbene gli indirizzi siano abbastanza privati, le transazioni possono essere esaminate mentre entrano ed escono dagli indirizzi. Ciò rende la privacy vulnerabile all’analisi statistica. Introduce inoltre una certa potenziale non fungibilità per i bitcoin, poiché è possibile risalire a una serie di transazioni, anche se non è possibile tracciare uno specifico "bitcoin".
+
+> :book: ***Perché tutti questi importi di bitcoin sono frazionati?*** I bitcoin vengono prodotti lentamente, quindi ce ne sono relativamente pochi in circolazione. Di conseguenza, ogni bitcoin sulla rete principale vale parecchio (~ $ 60.000 al momento in cui scriviamo). Ciò significa che le persone di solito lavorano in frazioni. In effetti, il 0.0101 nelle monete Testnet varrebbe circa $ 600 se fossero sulla rete principale. Per questo motivo, sono apparsi nomi per quantità minori di bitcoin, inclusi millibitcoin o mBTC (un millesimo di bitcoin), microbitcoin o bit o μBTC (un milionesimo di bitcoin) e `satoshi` (centomilionesimo di bitcoin). .
+
+## Esamina la tua transazione
+
+Puoi ottenere maggiori informazioni su una transazione con il comando `bitcoin-cli gettransaction`.:
+
+```
+$ bitcoin-cli gettransaction "8e2ab10cabe9ec04ed438086a80b1ac72558cc05bb206e48fc9a18b01b9282e9"
+{
+ "amount": 0.01000000,
+ "confirmations": 1,
+ "blockhash": "00000000000001753b24411d0e4726212f6a53aeda481ceff058ffb49e1cd969",
+ "blockheight": 1772396,
+ "blockindex": 73,
+ "blocktime": 1592600085,
+ "txid": "8e2ab10cabe9ec04ed438086a80b1ac72558cc05bb206e48fc9a18b01b9282e9",
+ "walletconflicts": [
+ ],
+ "time": 1592599884,
+ "timereceived": 1592599884,
+ "bip125-replaceable": "no",
+ "details": [
+ {
+ "address": "mi25UrzHnvn3bpEfFCNqJhPWJn5b77a5NE",
+ "category": "receive",
+ "amount": 0.01000000,
+ "label": "",
+ "vout": 1
+ }
+ ],
+ "hex": "0200000000010114d04977d1b0137adbf51dd5d79944b9465a2619f3fa7287eb69a779977bf5800100000017160014e85ba02862dbadabd6d204fcc8bb5d54658c7d4ffeffffff02df690f000000000017a9145c3bfb36b03f279967977ca9d1e35185e39917788740420f00000000001976a9141b72503639a13f190bf79acf6d76255d772360b788ac0247304402201e74bdfc330fc2e093a8eabe95b6c5633c8d6767249fa25baf62541a129359c202204d462bd932ee5c15c7f082ad7a6b5a41c68addc473786a0a9a232093fde8e1330121022897dfbf085ecc6ad7e22fc91593414a845659429a7bbb44e2e536258d2cbc0c270b1b00"
+}
+```
+Il comando `gettransaction` dettaglierà le transazioni presenti nel tuo portafoglio, come questa, che ci è stata inviata.
+
+Tieni presente che `gettransaction` ha due argomenti facoltativi:
+```
+$ bitcoin-cli help gettransaction
+gettransaction "txid" ( include_watchonly verbose )
+
+Get detailed information about in-wallet transaction
+
+Arguments:
+1. txid (string, required) The transaction id
+2. include_watchonly (boolean, optional, default=true for watch-only wallets, otherwise false) Whether to include watch-only addresses in balance calculation and details[]
+3. verbose (boolean, optional, default=false) Whether to include a `decoded` field containing the decoded transaction (equivalent to RPC decoderawtransaction)
+```
+Impostando questi due su true o false, possiamo scegliere di includere indirizzi watch only nell'output (cosa che non ci interessa) o guardare un risultato più dettagliato (cosa che facciamo).
+
+Ecco cosa esaminano invece questi dati quando impostiamo `include_watchonly` su `false` e `verbose` su `true`.
+```
+$ bitcoin-cli gettransaction "8e2ab10cabe9ec04ed438086a80b1ac72558cc05bb206e48fc9a18b01b9282e9" false true
+{
+ "amount": 0.01000000,
+ "confirmations": 3,
+ "blockhash": "00000000000001753b24411d0e4726212f6a53aeda481ceff058ffb49e1cd969",
+ "blockheight": 1772396,
+ "blockindex": 73,
+ "blocktime": 1592600085,
+ "txid": "8e2ab10cabe9ec04ed438086a80b1ac72558cc05bb206e48fc9a18b01b9282e9",
+ "walletconflicts": [
+ ],
+ "time": 1592599884,
+ "timereceived": 1592599884,
+ "bip125-replaceable": "no",
+ "details": [
+ {
+ "address": "mi25UrzHnvn3bpEfFCNqJhPWJn5b77a5NE",
+ "category": "receive",
+ "amount": 0.01000000,
+ "label": "",
+ "vout": 1
+ }
+ ],
+ "hex": "0200000000010114d04977d1b0137adbf51dd5d79944b9465a2619f3fa7287eb69a779977bf5800100000017160014e85ba02862dbadabd6d204fcc8bb5d54658c7d4ffeffffff02df690f000000000017a9145c3bfb36b03f279967977ca9d1e35185e39917788740420f00000000001976a9141b72503639a13f190bf79acf6d76255d772360b788ac0247304402201e74bdfc330fc2e093a8eabe95b6c5633c8d6767249fa25baf62541a129359c202204d462bd932ee5c15c7f082ad7a6b5a41c68addc473786a0a9a232093fde8e1330121022897dfbf085ecc6ad7e22fc91593414a845659429a7bbb44e2e536258d2cbc0c270b1b00",
+ "decoded": {
+ "txid": "8e2ab10cabe9ec04ed438086a80b1ac72558cc05bb206e48fc9a18b01b9282e9",
+ "hash": "d4ae2b009c43bfe9eba96dcd16e136ceba2842df3d76a67d689fae5975ce49cb",
+ "version": 2,
+ "size": 249,
+ "vsize": 168,
+ "weight": 669,
+ "locktime": 1772327,
+ "vin": [
+ {
+ "txid": "80f57b9779a769eb8772faf319265a46b94499d7d51df5db7a13b0d17749d014",
+ "vout": 1,
+ "scriptSig": {
+ "asm": "0014e85ba02862dbadabd6d204fcc8bb5d54658c7d4f",
+ "hex": "160014e85ba02862dbadabd6d204fcc8bb5d54658c7d4f"
+ },
+ "txinwitness": [
+ "304402201e74bdfc330fc2e093a8eabe95b6c5633c8d6767249fa25baf62541a129359c202204d462bd932ee5c15c7f082ad7a6b5a41c68addc473786a0a9a232093fde8e13301",
+ "022897dfbf085ecc6ad7e22fc91593414a845659429a7bbb44e2e536258d2cbc0c"
+ ],
+ "sequence": 4294967294
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.01010143,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "OP_HASH160 5c3bfb36b03f279967977ca9d1e35185e3991778 OP_EQUAL",
+ "hex": "a9145c3bfb36b03f279967977ca9d1e35185e399177887",
+ "reqSigs": 1,
+ "type": "scripthash",
+ "addresses": [
+ "2N1ev1WKevSsdmAvRqZf7JjvDg223tPrVCm"
+ ]
+ }
+ },
+ {
+ "value": 0.01000000,
+ "n": 1,
+ "scriptPubKey": {
+ "asm": "OP_DUP OP_HASH160 1b72503639a13f190bf79acf6d76255d772360b7 OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a9141b72503639a13f190bf79acf6d76255d772360b788ac",
+ "reqSigs": 1,
+ "type": "pubkeyhash",
+ "addresses": [
+ "mi25UrzHnvn3bpEfFCNqJhPWJn5b77a5NE"
+ ]
+ }
+ }
+ ]
+ }
+}
+```
+Ora puoi vedere tutte le informazioni sulla transazione, inclusi tutti gli input (`vin`) e tutti gli output (`vout`). Una delle cose interessanti da notare è che, sebbene abbiamo ricevuto 0,01 BTC nella transazione, un altro .01010143 è stato inviato a un altro indirizzo. Probabilmente si trattava di un indirizzo di cambio o resto, un concetto che verrà esplorato nella sezione successiva. È abbastanza tipico che una transazione abbia più input e/o più output.
+
+Esiste un altro comando, `getrawtransaction`, che ti consente di esaminare le transazioni che non sono nel tuo portafoglio. Tuttavia, richiede che tu abbia un nodo non potato e `txindex=1` nel tuo file `bitcoin.conf`. A meno che tu non abbia un serio bisogno di informazioni che non sono nel tuo portafoglio, probabilmente è meglio usare un Bitcoin Explorer per questo genere di cose...
+
+## Facoltativo: utilizza un Block Explorer
+
+Anche guardare le informazioni dettagliate di una transazione può essere un po’ intimidatorio. L'obiettivo principale di questo tutorial è insegnare come gestire le transazioni grezze dalla riga di comando, ma saremo felici di parlare di altri strumenti quando applicabili. Uno di questi strumenti è un block explorer, che puoi utilizzare per esaminare le transazioni da un browser web in un formato molto più intuitivo.
+
+Attualmente, il nostro block explorer preferito è [mempool.space](https://mempool.space).
+
+Ecco un'altra alternativa, [https://live.blockcypher.com/](https://live.blockcypher.com/).
+
+Puoi usarlo per cercare le transazioni per un indirizzo:
+
+[https://mempool.space/it/testnet/address/mi25UrzHnvn3bpEfFCNqJhPWJn5b77a5NE](https://mempool.space/it/testnet/address/mi25UrzHnvn3bpEfFCNqJhPWJn5b77a5NE)
+
+[https://live.blockcypher.com/btc-testnet/address/mi25UrzHnvn3bpEfFCNqJhPWJn5b77a5NE/](https://live.blockcypher.com/btc-testnet/address/mi25UrzHnvn3bpEfFCNqJhPWJn5b77a5NE/)
+
+Puoi anche usarlo per esaminare le singole transazioni:
+
+[https://mempool.space/it/testnet/tx/8e2ab10cabe9ec04ed438086a80b1ac72558cc05bb206e48fc9a18b01b9282e9](https://mempool.space/it/testnet/tx/8e2ab10cabe9ec04ed438086a80b1ac72558cc05bb206e48fc9a18b01b9282e9)
+
+[https://live.blockcypher.com/btc-testnet/tx/8e2ab10cabe9ec04ed438086a80b1ac72558cc05bb206e48fc9a18b01b9282e9/](https://live.blockcypher.com/btc-testnet/tx/8e2ab10cabe9ec04ed438086a80b1ac72558cc05bb206e48fc9a18b01b9282e9/)
+
+Un block explorer generalmente non fornisce più informazioni di quelle che una riga di comando esamina in una transazione grezza; fa semplicemente un buon lavoro nell'evidenziare le informazioni importanti e nel mettere insieme i pezzi del puzzle, comprese le commissioni di transazione dietro una transazione, un altro concetto che tratteremo nelle sezioni future.
+
+## Riepilogo: ricezione di una transazione
+
+I rubinetti ti daranno soldi sul testnet. Arrivano come transazioni grezze, che possono essere esaminate con `gettransaction` o un block explorer. Una volta ricevuta una transazione, puoi visualizzare il saldo nel tuo portafoglio.
+
+## Qual è il prossimo?
+
+Per un approfondimento su come vengono descritti gli indirizzi, in modo che possano essere trasferiti o creati in parti in una multisig, vedere [Capitolo 3.5: Comprendere il Descriptor](03_5_Comprendere_il_Descriptor.md).
+
+Ma se è approfondire un po troppo, salta e vai al [Capitolo 4: Inviare Transazioni Bitcoin](04_0_Inviare_Transazioni_Bitcoin.md).
diff --git a/it/03_5_Comprendere_il_Descriptor.md b/it/03_5_Comprendere_il_Descriptor.md
new file mode 100644
index 000000000..b926266a7
--- /dev/null
+++ b/it/03_5_Comprendere_il_Descriptor.md
@@ -0,0 +1,152 @@
+# 3.5: Comprendere il Descrittore
+
+> :information_source: **NOTA:** Questa sezione è stata aggiunta di recente al corso ed è una bozza iniziale che potrebbe essere ancora in attesa di revisione. Lettore avvertito.
+
+Potresti aver notato uno strano campo `desc:` nel comando `listunspent` della sezione precedente. Ecco di cosa si tratta (e come può essere utilizzato per trasferire indirizzi).
+
+> :avviso: **AVVERTIMENTO VERSIONE:** Questa è un'innovazione di Bitcoin Core v 0.17.0 che ha continuato ad essere ampliata attraverso Bitcoin Core 0.20.0. La maggior parte dei comandi in questa sezione provengono dalla versione 0.17.0, ma l'aggiornamento `importmulti` che supporta i descrittori proviene dalla versione 0.18.0.
+
+## Informazioni sul trasferimento degli indirizzi
+
+La maggior parte di questo corso presuppone che tu stia lavorando interamente da un singolo nodo in cui gestisci il tuo portafoglio, inviando e ricevendo pagamenti con gli indirizzi creati da quel portafoglio. Tuttavia, non è necessariamente così che funziona il piu ampio ecosistema Bitcoin. Lì, è più probabile che sposti indirizzi tra portafogli e addirittura configuri portafogli watchonly per sorvegliare i fondi controllati da portafogli diversi.
+
+È qui che entrano in gioco i descrittori. Sono molto utili se stai interagendo con software _diverso_ da Bitcoin Core e hai davvero bisogno di appoggiarti a questo tipo di funzione di compatibilità: vedi [Capitolo 6.1](06_1_Inviare_una_Transazione_a_un_Indirizzo_Multifirma.md) per un esempio reale di come sia utilizzare i descrittori.
+
+Lo spostamento degli indirizzi tra portafogli si concentrava su "xpub" e "xprv", e questi sono ancora supportati.
+
+> :book: ***Cos'è xprv?*** Una chiave privata estesa. Questa è la combinazione di una chiave privata e un codice a catena. È una chiave privata da cui può essere derivata un'intera sequenza di chiavi private figlie.
+
+> :book: ***Cos'è xpub?*** Una chiave pubblica estesa. Questa è la combinazione di una chiave pubblica e un codice a catena. È una chiave pubblica da cui può essere derivata un'intera sequenza di chiavi pubbliche figlie.
+
+Il fatto che tu possa avere una "intera sequenza di chiavi figlie" rivela il fatto che "xpub" e "xprv" non sono chiavi standard come abbiamo parlato finora. Sono invece chiavi gerarchiche che possono essere utilizzate per creare intere famiglie di chiavi, basate sull'idea degli HD Wallet.
+
+> :book: ***Che cos'è un portafoglio HD?*** La maggior parte dei portafogli moderni è basata su [BIP32: portafogli deterministici gerarchici](https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki). Si tratta di un progetto gerarchico in cui un singolo seme può essere utilizzato per generare un'intera sequenza di chiavi. L'intero portafoglio può quindi essere ripristinato da quel seme, invece di richiedere il ripristino di ogni singola chiave privata.
+
+> :book: ***Cos'è un derivation path?*** Quando disponi di chiavi gerarchiche, devi essere in grado di definire chiavi individuali come discendenti di un seme. Ad esempio, "[0]" è la chiave 0, "[0/1]" è il primo figlio della chiave 0, "[1/0/1]" è il primo nipote del figlio zero della chiave 0. Alcune chiavi contengono anche un `'` dopo il numero, per indicare che sono rinforzate, cosa che le protegge da un attacco specifico che può essere utilizzato per derivare un `'xprv` da un `'xpub`. Non devi preoccuparti dei dettagli, a parte il fatto che questi `'` ti causeranno problemi di formattazione quando lavori dalla riga di comando.
+
+> :information_source: **NOTA:** un derivation path definisce una chiave, il che significa che una chiave rappresenta un percorso di derivazione. Sono equivalenti. Nel caso di un descrittore, il percorso di derivazione consente a `bitcoind` di sapere da dove proviene la chiave che segue nel descrittore!
+
+"xpubs" e "xprvs" si sono rivelati insufficienti quando i tipi di chiavi pubbliche si sono moltiplicati sotto l'[espansione SegWit](04_6_Creare_una_Transazione_Segwit.md), ecco quindi la necessità di "output descriptors".
+
+> :book: ***Output descriptors? cosa sono?*** Una descrizione precisa di come derivare un indirizzo Bitcoin da una combinazione di una funzione e uno o più input per quella funzione.
+
+L'introduzione di funzioni nei descrittori è ciò che li rende potenti, perché possono essere utilizzati per trasferire tutti i tipi di indirizzi, dagli indirizzi Legacy con cui stiamo lavorando ora agli indirizzi Segwit e multisig che incontreremo più avanti. Una singola funzione corrisponde a un particolare tipo di indirizzo ed è correlata a regole specifiche per generare quell'indirizzo.
+
+## Cattura un descrittore
+
+I descrittori sono visibili in diversi comandi come `listunspent` e `getaddressinfo`:
+```
+$ bitcoin-cli getaddressinfo ms7ruzvL4atCu77n47dStMb3of6iScS8kZ
+{
+ "address": "ms7ruzvL4atCu77n47dStMb3of6iScS8kZ",
+ "scriptPubKey": "76a9147f437379bcc66c40745edc1891ea6b3830e1975d88ac",
+ "ismine": true,
+ "solvable": true,
+ "desc": "pkh([d6043800/0'/0'/18']03efdee34c0009fd175f3b20b5e5a5517fd5d16746f2e635b44617adafeaebc388)#4ahsl9pk",
+ "iswatchonly": false,
+ "isscript": false,
+ "iswitness": false,
+ "pubkey": "03efdee34c0009fd175f3b20b5e5a5517fd5d16746f2e635b44617adafeaebc388",
+ "iscompressed": true,
+ "ischange": false,
+ "timestamp": 1592335136,
+ "hdkeypath": "m/0'/0'/18'",
+ "hdseedid": "fdea8e2630f00d29a9d6ff2af7bf5b358d061078",
+ "hdmasterfingerprint": "d6043800",
+ "labels": [
+ ""
+ ]
+}
+```
+Qui il descriptor è questo `pkh([d6043800/0'/0'/18']03efdee34c0009fd175f3b20b5e5a5517fd5d16746f2e635b44617adafeaebc388)#4ahsl9pk`.
+
+## Comprendere il descriptor
+
+Un descrittore è suddiviso in più parti:
+```
+function([derivation-path]key)#checksum
+```
+Ecco cosa significa tutto ciò:
+* **Function.** La funzione utilizzata per creare un indirizzo da quella chiave. In questi casi si tratta di `pkh`, che è l'indirizzo legacy P2PKH standard che hai incontrato in [Capitolo 3.3: Configurare la Wallet](03_3_Configurare_la_Wallet.md). Allo stesso modo, un indirizzo SegWit P2WSH utilizzerebbe "wsh" e un indirizzo P2WPKH utilizzerebbe "wpkh".
+* **Derivation Path.** Descrive quale parte di un portafoglio HD viene esportata. In questo caso è un seme con l'impronta digitale `d6043800` e quindi il 18° figlio dello 0° figlio dello 0° figlio (`0'/0'/18'`) di quel seme. Potrebbe esserci anche un'ulteriore derivazione dopo la chiave: `function([derivation-path]key/more-derivation)#checksum`
+ * Vale la pena notare qui che se mai ottieni un percorso di derivazione senza impronta digitale, puoi inventarlo. È solo che se ce n'è una esistente, dovresti abbinarla, perché se mai dovessi tornare al dispositivo che ha creato l'impronta digitale, dovrai avere la stessa.
+* **key**. La chiave o le chiavi che vengono trasferite. Potrebbe trattarsi di qualcosa di tradizionale come "xpub" o "xprv", potrebbe essere semplicemente una chiave pubblica per un indirizzo come in questo caso, potrebbe essere un insieme di indirizzi per una firma multipla o potrebbe essere qualcos'altro. Questi sono i dati fondamentali: la funzione spiega cosa farne.
+* **#checksum**. I descrittori sono pensati per essere trasferibili dall'uomo. Questo checksum assicura che sia corretto.
+
+Vedi [Informazioni di Bitcoin Core sul supporto dei descrittori](https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md) per ulteriori informazioni.
+
+## Esamina un descrittore
+
+Puoi guardare un descrittore con l'RPC `getdescriptorinfo`:
+```
+$ bitcoin-cli getdescriptorinfo "pkh([d6043800/0'/0'/18']03efdee34c0009fd175f3b20b5e5a5517fd5d16746f2e635b44617adafeaebc388)#4ahsl9pk"
+{
+ "descriptor": "pkh([d6043800/0'/0'/18']03efdee34c0009fd175f3b20b5e5a5517fd5d16746f2e635b44617adafeaebc388)#4ahsl9pk",
+ "checksum": "4ahsl9pk",
+ "isrange": false,
+ "issolvable": true,
+ "hasprivatekeys": false
+}
+```
+Tieni presente che restituisce un checksum. Se ti viene mai fornito un descrittore senza checksum, puoi ottenerlo con questo comando:
+```
+$ bitcoin-cli getdescriptorinfo "pkh([d6043800/0'/0'/18']03efdee34c0009fd175f3b20b5e5a5517fd5d16746f2e635b44617adafeaebc388)"
+{
+ "descriptor": "pkh([d6043800/0'/0'/18']03efdee34c0009fd175f3b20b5e5a5517fd5d16746f2e635b44617adafeaebc388)#4ahsl9pk",
+ "checksum": "4ahsl9pk",
+ "isrange": false,
+ "issolvable": true,
+ "hasprivatekeys": false
+}
+```
+Oltre a fornirti il checksum, questo comando verifica anche la validità del descrittore e fornisce informazioni utili come se un descrittore contiene chiavi private.
+
+Uno dei poteri di un descrittore è quello di poter derivare un indirizzo in modo regolare. Questo viene fatto con l'RPC `deriveaddresses`.
+
+```
+$ bitcoin-cli deriveaddresses "pkh([d6043800/0'/0'/18']03efdee34c0009fd175f3b20b5e5a5517fd5d16746f2e635b44617adafeaebc388)#4ahsl9pk"
+[
+ "ms7ruzvL4atCu77n47dStMb3of6iScS8kZ"
+]
+```
+Noterai che ritorna all'indirizzo con cui abbiamo iniziato (come dovrebbe).
+
+## Importa un descrittore
+
+Ma la cosa veramente importante di un descrittore è che puoi portarlo su un'altra macchina (remota) e importarlo. Questo viene fatto con l'RPC `importmulti` utilizzando l'opzione `desc`:
+
+```
+remote$ bitcoin-cli importmulti '[{"desc": "pkh([d6043800/0'"'"'/0'"'"'/18'"'"']03efdee34c0009fd175f3b20b5e5a5517fd5d16746f2e635b44617adafeaebc388)#4ahsl9pk", "timestamp": "now", "watchonly": true}]'
+[
+ {
+ "success": true
+ }
+]
+```
+Innanzitutto noterai il nostro primo uso davvero brutto delle virgolette. Ogni `'` nel percorso di derivazione doveva essere sostituito con `'"'"'`. Aspettati solo di doverlo fare se stai manipolando un descrittore che contiene un percorso di derivazione. (L'altra opzione è scambiare `'` con una `h` per hardened, ma questo cambierà il tuo checksum, quindi se lo preferisci per la sua facilità d'uso, dovrai ottenere un nuovo checksum con `getdescriptorinfo` .)
+
+In secondo luogo, noterai che lo abbiamo contrassegnato come `watchonly`. Questo perché sappiamo che è una chiave pubblica, quindi non possiamo spendere con essa. Se non avessimo inserito questo flag, `importmulti` ci avrebbe detto qualcosa del tipo: `Mancano alcune chiavi private, gli output saranno considerati watchonly. Se ciò è intenzionale, specifica il flag watchonly.`.
+
+
+> :book: ***Che cos'è un indirizzo watch only?*** Un indirizzo di solo controllo ti consente di controllare le transazioni relative a un indirizzo (o a un'intera famiglia di indirizzi se hai utilizzato un `xpub`), ma non spendere fondi per quegli indirizzi.
+
+Utilizzando `getaddressesbylabel`, ora possiamo vedere che il nostro indirizzo è stato importato correttamente nel nostro computer remoto!
+```
+remote$ bitcoin-cli getaddressesbylabel ""
+{
+ "ms7ruzvL4atCu77n47dStMb3of6iScS8kZ": {
+ "purpose": "receive"
+ }
+}
+```
+## Sommario: Comprendere il Descrittore
+
+I descrittori ti consentono di passare chiavi pubbliche e private tra portafogli, ma soprattutto ti consentono di definire indirizzi in modo preciso e corretto e di derivare indirizzi di molti tipi diversi da un formato di descrizione standardizzato.
+
+> :fire: ***Qual è il potere dei descrittori?*** I descrittori ti permettono di importare ed esportare semi e chiavi. È fantastico se vuoi spostarti tra diversi portafogli. Come sviluppatore, ti consentono anche di creare il tipo preciso di indirizzi che ti interessa creare. Ad esempio, lo utilizziamo in [FullyNoded 2](https://github.com/BlockchainCommons/FullyNoded-2/blob/master/Docs/How-it-works.md) per generare un multi-sig da tre seed.
+
+Faremo un uso reale dei descrittori nel [Capitolo 7.3: Integrazione con Hardware Wallets](07_3_Integrazione_con_Hardware_Wallets.md), quando importeremo indirizzi da un portafoglio hardware.
+
+## Qual è il prossimo?
+
+Avanza attraverso "bitcoin-cli" con il [Capitolo 4: Inviare Transazioni Bitcoin](04_0_Inviare_Transazioni_Bitcoin.md).
diff --git a/it/04_0_Inviare_Transazioni_Bitcoin.md b/it/04_0_Inviare_Transazioni_Bitcoin.md
new file mode 100644
index 000000000..5ee8b56cf
--- /dev/null
+++ b/it/04_0_Inviare_Transazioni_Bitcoin.md
@@ -0,0 +1,30 @@
+# Capitolo quattro: Inviare transazioni Bitcoin
+
+Questo capitolo descrive tre diversi metodi per inviare bitcoin ai normali indirizzi P2PKH dalla riga di comando, utilizzando solo l'interfaccia bitcoin-cli.
+
+## Obiettivi di questo capitolo
+
+Dopo aver letto questo capitolo, uno sviluppatore sarà in grado di:
+
+ * Decidere come inviare denaro tramite Bitcoin
+ * Crea una transazione grezza "RAW"
+ * Utilizzare l'aritmetica per calcolare le fee, comissioni di transazione
+
+Gli obiettivi di supporto includono la capacità di:
+
+ * Comprendere le transazioni e le commissioni di transazione
+ * Comprendere le transazioni legacy e SegWit
+ * Utilizzare metodi di base per inviare denaro
+ * Utilizzare metodi di calcolo automatico delle commissioni per inviare denaro
+ * Comprendere i pericoli delle transazioni grezze
+
+## Sommario
+
+ * [Sezione 4.1: Inviare Monete Modo Semplice](04_1_Inviare_Monete_Modo_Semplice.md)
+ * [Sezione 4.2: Creare una Transazione Grezza](04_2_Creare_una_Transazione_Grezza.md)
+ * [Intermezzo: Usare JQ](04_2_Intermezzo_Usare_JQ.md)
+ * [Sezione 4.3: Creare una Transazione Grezza con Alias](04_3_Creare_una_Transazione_Grezza_con_Alias.md)
+ * [Sezione 4.4: Enviare Monete con Transazione Grezza](04_4_Enviare_Monete_con_Transazione_Grezza.md)
+ * [Intermezzo: Usare Curl](04_4_Intermezzo_Usare_Curl.md)
+ * [Sezione 4.5: Inviare Monete con Transazione Grezza Automatizzata](04_5_Inviare_Monete_con_Transazione_Grezza_Automatizzata.md)
+ * [Sezione 4.6: Creare una Transazione Segwit](04_6_Creare_una_Transazione_Segwit.md)
diff --git a/it/04_1_Inviare_Monete_Modo_Semplice.md b/it/04_1_Inviare_Monete_Modo_Semplice.md
new file mode 100644
index 000000000..5f77a4d87
--- /dev/null
+++ b/it/04_1_Inviare_Monete_Modo_Semplice.md
@@ -0,0 +1,106 @@
+# 4.1: Inviare monete in modo semplice
+
+Il comando `bitcoin-cli` offre tre modi principali per inviare monete: un comando semplice; una transazione grezza; e una transazione grezza con calcolo. Ogni modo ha i propri vantaggi e svantaggi. Questo primo metodo per inviare monete è anche il più semplice.
+
+## Imposta la commissione di transazione
+
+Prima di inviare denaro sulla rete Bitcoin, dovresti pensare a quali commissioni di transazione pagherai.
+
+> :book: ***Che cos'è una commissione di transazione?*** _Non esiste un pranzo gratis_. I minatori incorporano le transazioni nei blocchi perché sono pagati per farlo. Non solo vengono pagati dalla rete per effettuare il blocco, ma vengono anche pagati dagli utenti per includere le loro transazioni. Se non paghi una commissione, la tua transazione potrebbe rimanere bloccata... per sempre (o, fino a quando non verrà salvata da alcuni dei trucchi nel [Capitolo 5](05_0_Controllare_Transazioni_Bitcoin.md).
+
+Quando utilizzi metodi semplici e automatizzati per creare transazioni, come delineato qui e nel [Capitolo 4.5: Inviare Monete con Transazione Cruda Automatizzata](04_5_Inviare_Monete_con_Transazione_Cruda_Automatizzata.md), Bitcoin calcolerà le commissioni di transazione per te. Questo viene fatto utilizzando le commissioni variabili, in cui "bitcoind" osserva quanto tempo impiegano le transazioni per essere confermate e calcola automaticamente quanto spendere.
+
+Puoi contribuire a controllarlo inserendo valori razionali nel tuo `~/.bitcoin/bitcoin.conf`. I seguenti valori a basso costo garantirebbero che ci fosse una commissione di transazione minima di 10.000 satoshi per kByte di dati nella transazione e richiederebbero che le commissioni variabili raggiungano un buon importo per portare la transazione da qualche parte nei successivi sei blocchi.
+```
+mintxfee=0.0001
+txconfirmtarget=6
+```
+Tuttavia, partendo dal presupposto che non vuoi aspettare mentre lavori su un tutorial, abbiamo adottato i seguenti valori più alti:
+```
+mintxfee=0.001
+txconfirmtarget=1
+```
+Dovresti inserirli in `~/.bitcoin/bitcoin.conf`, nella sezione principale, verso l'inizio del file o, se vuoi essere sicuro di non usarlo mai altrove, nella sezione `[test]`.
+
+Per completare questo tutorial, siamo disposti a spendere 100.000 satoshi per kB su ogni transazione (circa $ 10!) e vogliamo portare ogni transazione al blocco successivo! (Per metterlo in prospettiva, una transazione tipica è compresa tra 0,25 kB e 1 kB, quindi in realtà pagherai più di $ 2,50 circa $ 10... se fossero soldi veri.)
+
+Dopo aver modificato il tuo file `bitcoin.conf`, ti consigliamo di terminare e riavviare bitcoind.
+
+
+```
+$ bitcoin-cli stop
+$ bitcoind -daemon
+```
+
+## Ottieni un indirizzo
+
+Hai bisogno di un posto dove inviare le tue monete. Di solito, qualcuno ti invia un indirizzo e magari ti dà una firma per dimostrare di possedere quell'indirizzo. In alternativa, potrebbero fornirti un codice QR da scansionare, in modo da non poter commettere errori durante la digitazione dell'indirizzo. Nel nostro caso, invieremo monete a `n2eMqTT929pb1RDNuqEnxdaLau1rxy3efi`, che è un indirizzo di ritorno per un vecchio faucet Tesetnet.
+
+> :book: ***Cos'è un codice QR?*** Un codice QR è semplicemente la codifica di un indirizzo Bitcoin. Molti portafogli genereranno codici QR per te, mentre alcuni siti convertiranno un indirizzo in un codice QR (da evitare). Ovviamente, dovresti accettare solo un codice QR da un sito di cui ti fidi assolutamente (nessuno). Potrebbero alterare il codice e ricevere i soldi destinati a te.
+
+## Invia le monete
+
+Ora sei pronto per inviare alcune monete. In realtà questo è abbastanza semplice tramite la riga di comando. Basta usare `bitcoin-cli sendtoaddress [address] [amount]`. Quindi, per inviare una piccola moneta all'indirizzo `n2eMqTT929pb1RDNuqEnxdaLau1rxy3efi` è sufficiente:
+```
+$ txid=$(bitcoin-cli sendtoaddress n2eMqTT929pb1RDNuqEnxdaLau1rxy3efi 0.001)
+$ echo $txid
+93250d0cacb0361b8e21030ac65bc4c2159a53de1075425d800b2d7a8ab13ba8
+```
+> 🙏 Per mantenere in vita i faucet testnet, prova a utilizzare l'indirizzo di ritorno dello stesso faucet che hai utilizzato nel capitolo precedente sulla ricezione delle transazioni.
+
+Assicurati che l'indirizzo che scrivi sia quello dove vuoi che vadano i soldi. Controlla due volte. Se commetti errori in Bitcoin, non puoi tornare indietro.
+
+Riceverai un txid indietro quando eseguirai questo comando.
+
+> ❕ Potresti ritrovarti con un codice di errore se non disponi di fondi sufficienti nel tuo portafoglio per inviare la transazione. A seconda del tuo saldo attuale `bitcoin-cli getbalance` potresti dover modificare l'importo da inviare per tenere conto dell'importo inviato insieme alla commissione di transazione. Se il tuo saldo attuale è 0,001, potresti provare a inviare 0,0001. In alternativa, sarebbe meglio sottrarre la commissione prevista indicata nel messaggio di errore dal saldo attuale. Questa è una buona pratica poiché molti portafogli si aspettano che tu calcoli il tuo importo + le commissioni quando prelevi, anche tra gli exchange più popolari.
+
+> :warning: **AVVERTENZA:** Il comando `bitcoin-cli` genera effettivamente comandi JSON-RPC quando comunica con bitcoind. Possono essere davvero schizzinosi. Questo è un esempio: se elenchi l'importo del bitcoin senza lo zero iniziale (cioè ".1" invece di "0.1"), `bitcoin-cli fallirà` con un messaggio misterioso.
+
+> :warning: **AVVERTENZA:** Anche se presti attenzione ai tuoi input, potresti visualizzare il messaggio `"Fee estimation failed. Fallbackfee is disabled." `(Stima della tariffa non riuscita. La tariffa di riserva è disabilitata). Fondamentalmente, ciò significa che il tuo `bitcoind` locale non dispone di informazioni sufficienti per stimare le commissioni. Non dovresti mai vederlo se hai aspettato che la tua blockchain si sincronizzi e configuri il tuo sistema con Bitcoin Standup. Ma se non sei completamente sincronizzato, potresti vedere questo. Potrebbe anche darsi che tu non stia utilizzando un `bitcoin.conf` standard: la voce `blocksonly=1` impedirà al tuo `bitcoind` di stimare le commissioni.
+
+## Esamina la tua transazione
+
+Puoi controllare la tua transazione utilizzando il tuo ID transazione:
+
+```
+{
+ "amount": -0.00100000,
+ "fee": -0.00022200,
+ "confirmations": 0,
+ "trusted": true,
+ "txid": "93250d0cacb0361b8e21030ac65bc4c2159a53de1075425d800b2d7a8ab13ba8",
+ "walletconflicts": [
+ ],
+ "time": 1592604194,
+ "timereceived": 1592604194,
+ "bip125-replaceable": "no",
+ "details": [
+ {
+ "address": "n2eMqTT929pb1RDNuqEnxdaLau1rxy3efi",
+ "category": "send",
+ "amount": -0.00100000,
+ "vout": 1,
+ "fee": -0.00022200,
+ "abandoned": false
+ }
+ ],
+ "hex": "0200000001e982921bb0189afc486e20bb05cc5825c71a0ba8868043ed04ece9ab0cb12a8e010000006a47304402200fc493a01c5c9d9574f7c321cee6880f7f1df847be71039e2d996f7f75c17b3d02203057f5baa48745ba7ab5f1d4eed11585bd8beab838b1ca03a4138516fe52b3b8012102fd5740996d853ea51a6904cf03257fc11204b0179f344c49739ec5b20b39c9bafeffffff02e8640d0000000000160014d37b6ae4a917bcc873f6395741155f565e2dc7c4a0860100000000001976a914e7c1345fc8f87c68170b3aa798a956c2fe6a9eff88ac780b1b00"
+}
+```
+Puoi vedere non solo l'importo trasferito (.001 BTC) ma anche una commissione di transazione (.000222 BTC), che è circa un quarto della commissione minima di .001 BTC/kB impostata, il che suggerisce che la transazione è stata di circa un dimensione di un quarto di kB.
+
+Mentre aspetti che questa transazione venga cancellata, noterai che `bitcoin-cli getbalance` mostra che tutti i tuoi soldi sono spariti (o, almeno, tutti i tuoi soldi da una singola transazione in entrata). Allo stesso modo, `bitcoin-cli listunspent` mostrerà che un'intera transazione è andata perduta, anche se era superiore a quello che volevi inviare. C'è una ragione per questo: ogni volta che ricevi soldi, devi mandarli tutti insieme, e devi fare un po' di ginnastica se vuoi davvero tenerne una parte! Ancora una volta, `sendtoaddress` si prende cura di tutto questo per te, il che significa che non devi preoccuparti di apportare modifiche finché non invii una transazione grezza. In questo caso, una nuova transazione apparirà con la tua modifica quando la tua spesa verrà incorporata in un blocco.
+
+## Riepilogo: inviare monete in modo semplice
+
+Per inviare monete nel modo più semplice, assicurati che le impostazioni predefinite della transazione siano logiche, ottieni un indirizzo e invia le monete lì. Ecco perché lo chiamano facile!
+
+> :fire: ***Qual è il potere di inviare monete in modo semplice?***
+
+> _I vantaggi._ È facile. Non devi preoccuparti di cose arcane come gli UTXO. Non è necessario calcolare manualmente le commissioni di transazione, quindi non è probabile che tu commetta errori che ti costeranno ingenti somme di denaro. Se il tuo unico obiettivo è sederti al computer e inviare denaro, questa è la strada da percorrere.
+
+> _Gli svantaggi._ Il livello è alto. Hai pochissimo controllo su ciò che sta accadendo e non puoi fare nulla di speciale. Se hai intenzione di scrivere un software Bitcoin più complesso o desideri una comprensione più profonda di come funziona Bitcoin, allora il modo più semplice è solo un noioso diversivo prima di arrivare alle cose vere.
+
+## Con cosa andiamo avanti?
+
+Andiamo avanti col'invio di transazioni Bitcoin con [inviare Monete con Transazione Grezza](04_4_inviare_Monete_con_Transazione_Grezza.md).
diff --git a/it/04_2_Creare_una_Transazione_Grezza.md b/it/04_2_Creare_una_Transazione_Grezza.md
new file mode 100644
index 000000000..86c58d288
--- /dev/null
+++ b/it/04_2_Creare_una_Transazione_Grezza.md
@@ -0,0 +1,279 @@
+# 4.2 Creazione di una transazione grezza
+
+Ora sei pronto per creare transazioni grezze (raw) su Bitcoin. Ciò ti consente di inviare denaro ma di elaborare le transazioni con la precisione che desideri. Questa prima sezione si concentra su una semplice transazione one-input, one-output. Questo tipo di transazione _non_ è in realtà così utile, perché raramente vorrai inviare tutto il tuo denaro a una persona (a meno che tu non lo stia semplicemente inoltrando, ad esempio se stai spostando denaro da un portafoglio a un altro). Pertanto, non etichettiamo questa sezione come un modo per inviare denaro. È solo un trampolino di lancio fondamentale per _inviare effettivamente_ denaro con una transazione grezza.
+
+## Comprendere la transazione Bitcoin
+
+Prima di immergerti nella creazione effettiva di transazioni grezze, dovresti assicurarti di comprendere come funziona una transazione Bitcoin. Riguarda tutto gli UTXO.
+
+> :book: ***Cos'è un UTXO?*** Quando ricevi denaro nel tuo portafoglio Bitcoin, appare come una transazione individuale. Ognuna di queste transazioni è chiamata *Unspent Transaction Output* (UTXO). Non importa se vari pagamenti sono stati effettuati allo stesso indirizzo o a più indirizzi: ogni transazione in entrata rimane distinta nel tuo portafoglio come UTXO.
+
+Quando crei una nuova transazione in uscita, raccogli uno o più UTXO, ognuno dei quali rappresenta una moneta che hai ricevuto. Li usi come input per una nuova transazione. Insieme, il loro importo deve essere uguale a quanto vuoi spendere _o più_. Quindi, generi uno o più output, che danno il denaro rappresentato dagli input a una o più persone. Questo crea nuovi UTXO per i destinatari, che possono quindi utilizzare _quelli_ per finanziare transazioni future.
+
+Ecco il trucco: _tutti gli UTXO che raccogli vengono spesi per intero!_ Ciò significa che se vuoi inviare solo una parte del denaro in un UTXO a qualcun altro, allora devi anche generare un output aggiuntivo che ti rispedisca il resto! Per ora, non ci preoccuperemo di questo, ma l'uso di un indirizzo di cambio sarà fondamentale quando passeremo dalla teoria alla pratica.
+
+## Elenca le tue transazioni non spese
+
+Per creare una nuova transazione raw (grezza), devi sapere quali UTXO hai a disposizione da spendere. Puoi determinare questa informazione con il comando `bitcoin-cli listunspent`:
+```
+$ bitcoin-cli listunspent
+[
+ {
+ "txid": "ca4898d8f950df03d6bfaa00578bd0305d041d24788b630d0c4a32debcac9f36",
+ "vout": 0,
+ "address": "mi25UrzHnvn3bpEfFCNqJhPWJn5b77a5NE",
+ "label": "",
+ "scriptPubKey": "76a9141b72503639a13f190bf79acf6d76255d772360b788ac",
+ "amount": 0.00010000,
+ "confirmations": 20,
+ "spendable": true,
+ "solvable": true,
+ "desc": "pkh([d6043800/0'/0'/1']02fd5740996d853ea51a6904cf03257fc11204b0179f344c49739ec5b20b39c9ba)#62rud39c",
+ "safe": true
+ },
+ {
+ "txid": "61f3b7016bf1ecc3987b8805207e79362e4de8026682e149107999b779426e3a",
+ "vout": 1,
+ "address": "mjehC2KHzXcBDcwTd4LhZ2GzyzrZ3Kd3ff",
+ "label": "",
+ "scriptPubKey": "76a9142d573900aa357a38afd741fbf24b075d263ea6e088ac",
+ "amount": 0.00050000,
+ "confirmations": 3,
+ "spendable": true,
+ "solvable": true,
+ "desc": "pkh([d6043800/0'/0'/3']0278608b54b8fb0d8379d3823d31f03a7c6ab0adffb07dd3811819fdfc34f8c132)#nhjc3f8y",
+ "safe": true
+ },
+ {
+ "txid": "91261eafae15ea53dedbea7c1db748c52bbc04a85859ffd0d839bda1421fda4c",
+ "vout": 0,
+ "address": "mjehC2KHzXcBDcwTd4LhZ2GzyzrZ3Kd3ff",
+ "label": "",
+ "scriptPubKey": "76a9142d573900aa357a38afd741fbf24b075d263ea6e088ac",
+ "amount": 0.00022000,
+ "confirmations": 3,
+ "spendable": true,
+ "solvable": true,
+ "desc": "pkh([d6043800/0'/0'/3']0278608b54b8fb0d8379d3823d31f03a7c6ab0adffb07dd3811819fdfc34f8c132)#nhjc3f8y",
+ "safe": true
+ }
+]
+
+```
+
+Questo elenco mostra tre UTXO diversi, del valore di 10000, 50000 e 22000 satoshi. Nota che ognuno ha il suo `txid` distinto e rimane distinto nel portafoglio, anche gli ultimi due, che sono stati inviati allo stesso indirizzo.
+
+Quando vuoi spendere un UTXO, non è sufficiente conoscere solo l'ID della transazione. Questo perché ogni transazione può avere più output! Ricordi quella prima moneta che il faucet ci ha inviato? Nella transazione, parte del denaro è andata a noi e parte a qualcun altro. Il `txid` si riferisce alla transazione complessiva, mentre un `vout` indica quale dei più output hai ricevuto. In questo elenco, ciascuna di queste transazioni è il `vout` 0 di una transazione precedente, ma _non deve essere necessariamente così_.
+
+Quindi, txid+vout=UTXO. Questa sarà la base di qualsiasi transazione raw.
+
+## Scrivi una transazione raw con un output
+
+Ora sei pronto a scrivere una semplice transazione raw di esempio che mostra come inviare l'intero UTXO a un'altra parte. Come notato, questo non è necessariamente un caso reale molto realistico.
+
+> :warning: **WARNING:** È molto facile perdere soldi con una transazione raw. Considera tutte le istruzioni sull'invio di bitcoin tramite transazioni raw come _molto_, _molto_ pericolose. Ogni volta che invii effettivamente denaro reale ad altre persone, dovresti invece utilizzare uno degli altri metodi spiegati in questo capitolo. Creare transazioni raw è estremamente utile se stai scrivendo programmi bitcoin, ma _solo_ quando stai scrivendo programmi bitcoin. (Ad esempio: scrivendo questo esempio per una versione di questo tutorial, abbiamo speso accidentalmente la transazione sbagliata, anche se aveva circa 10 volte tanto valore. Quasi tutto è andato perso dai minatori.)
+
+### Prepara la transazione grezza
+
+Per le best practice, inizieremo ogni transazione registrando attentamente i txid e i vout che spenderemo.
+
+In questo caso, spenderemo quella dal valore di 50000 satoshio perché è l'unica con un valore decente.
+```
+$ utxo_txid="61f3b7016bf1ecc3987b8805207e79362e4de8026682e149107999b779426e3a"
+$ utxo_vout="1"
+```
+
+Dovresti registrare in modo simile l'indirizzo del destinatario, per assicurarti di averlo scritto correttamente. Stiamo di nuovo inviando del denaro al faucet:
+```
+$ recipient="n2eMqTT929pb1RDNuqEnxdaLau1rxy3efi"
+```
+Come sempre, controlla attentamente le tue variabili per assicurarti che siano quelle che ti aspetti!
+
+```
+$ echo $utxo_txid
+61f3b7016bf1ecc3987b8805207e79362e4de8026682e149107999b779426e3a
+$ echo $utxo_vout
+1
+$ echo $recipient
+n2eMqTT929pb1RDNuqEnxdaLau1rxy3efi
+```
+Quel destinatario è particolarmente importante, perché se sbagli, i tuoi soldi sono _andati_! (E come abbiamo già visto, scegliere la transazione sbagliata può comportare la perdita di denaro!) Quindi controlla tutto tre volte.
+
+### Comprendi la commissione di transazione, la fee
+
+Ogni transazione ha una commissione associata. È _implicita_ quando invii una transazione raw: l'importo che pagherai come commissione è sempre uguale all'importo del tuo input meno l'importo del tuo output. Quindi, devi diminuire un po' il tuo output rispetto al tuo input per assicurarti che la tua transazione venga eseguita.
+
+> :warning: **ATTENZIONE:** Questa è la parte molto pericolosa delle transazioni raw!! Poiché spendi automaticamente tutto l'importo negli UTXO che utilizzi, è di fondamentale importanza assicurarti di sapere: (1) esattamente quali UTXO stai utilizzando; (2) esattamente quanti soldi contengono; (3) esattamente quanti soldi stai inviando; e (4) qual è la differenza. Se sbagli e usi l'UTXO sbagliato (con più soldi di quanto pensavi) o se invii troppo poco denaro, l'eccesso è perso. Per sempre. Non commettere questo errore! Conosci i tuoi input e output _precisamente_. O meglio, non usare transazioni raw se non come parte di un programma attentamente ponderato e verificato tre volte.
+
+> :book: ***Quanto dovresti spendere in fees?*** [Bitcoin Fees](https://bitcoinfees.net/) ha una bella valutazione in tempo reale. Dice che "la commissione di transazione più veloce ed economica è attualmente di 42 satoshi/byte" e che "per la dimensione media della transazione di 224 byte, ciò si traduce in una commissione di 9408 satoshi".
+
+Attualmente Bitcoin Fees suggerisce una commissione di transazione di circa 10000 satoshi, (0,0001 BTC). Sì, è per la mainnet, non per la testnet, ma vogliamo testare le cose in modo realistico, quindi è quello che useremo.
+
+In questo caso, significa prendere 50000 BTC nell'UTXO che siamo selezionati, ridurli di 10000 BTC per la fee e inviare i restanti 40000 BTC. (E questo è un esempio del perché i micropagamenti non funzionano sulla rete Bitcoin, perché una commissione di transazione di circa 1$ è piuttosto costosa quando si inviano 4$, figuriamoci se si stava cercando di effettuare un micropagamento di 0,50$. Ma è sempre per questo che abbiamo Lightning.)
+
+> :warning: **ATTENZIONE:** Più bassa è la commissione di transazione impostata, più tempo ci vorrà prima che la transazione venga incorporata in un blocco. Il sito [Bitcoin Fees](https://bitcoinfees.net/) elenca i tempi previsti, da circa 0 blocchi a 22 blocchi. Poiché i blocchi vengono creati in media ogni 10 minuti, questa è la differenza tra pochi minuti e poche ore! Quindi, scegli una commissione di transazione appropriata per ciò che stai inviando. Nota che non dovresti mai scendere sotto la commissione di inoltro minima, che è 10000 BTC.
+
+### Scrivi la transazione raw
+
+Ora sei pronto per creare la transazione raw. Per questo utilizza il comando `createrawtransaction`, che potrebbe sembrare un po' intimidatorio. Questo perché il comando `createrawtransaction` non ti protegge completamente dal `JSON RPC` che usa `bitcoin-cli`. Invece, inserirai un array `JSON` per elencare gli `UTXO` che stai spendendo e un oggetto `JSON` per elencare gli output.
+
+Ecco il formato standard:
+```
+$ bitcoin-cli createrawtransaction
+'''[
+ {
+ "txid": "'$your_txid'",
+ "vout": '$your_vout'
+ }
+]'''
+'''{
+ "'$your_recipient'": bitcoin_amount
+ }'''
+ ```
+Eh sì, ci sono tutti i tipi di virgolette folli lì, ma fidati che faranno la cosa giusta. Usa `'''` per contrassegnare l'inizio e la fine dell'array JSON e dell'oggetto JSON. Proteggi parole normali come `"this"`, ma non devi proteggere numeri normali: `0`. Se sono variabili, inserisci virgolette singole, come `"'$this_word'"` e `'$this_num'`. (Uffa. Ti ci abituerai.)
+
+Ecco un comando che crea una transazione raw per inviare il tuo $utxo al tuo $recipient
+ ```
+$ rawtxhex=$(bitcoin-cli createrawtransaction '''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout' } ]''' '''{ "'$recipient'": 0.0004 }''')
+$ echo $rawtxhex
+02000000013a6e4279b799791049e1826602e84d2e36797e2005887b98c3ecf16b01b7f3610100000000ffffffff01409c0000000000001976a914e7c1345fc8f87c68170b3aa798a956c2fe6a9eff88ac00000000
+```
+
+### Verifica la tua transazione raw
+
+Dovresti quindi verificare la tua transazione raw con `decoderawtransaction` per assicurarti che faccia la cosa giusta.
+```
+$ bitcoin-cli decoderawtransaction $rawtxhex
+{
+ "txid": "dcd2d8f0ec5581b806a1fbe00325e1680c4da67033761b478a26895380cc1298",
+ "hash": "dcd2d8f0ec5581b806a1fbe00325e1680c4da67033761b478a26895380cc1298",
+ "version": 2,
+ "size": 85,
+ "vsize": 85,
+ "weight": 340,
+ "locktime": 0,
+ "vin": [
+ {
+ "txid": "61f3b7016bf1ecc3987b8805207e79362e4de8026682e149107999b779426e3a",
+ "vout": 1,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967295
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.00040000,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "OP_DUP OP_HASH160 e7c1345fc8f87c68170b3aa798a956c2fe6a9eff OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a914e7c1345fc8f87c68170b3aa798a956c2fe6a9eff88ac",
+ "reqSigs": 1,
+ "type": "pubkeyhash",
+ "addresses": [
+ "n2eMqTT929pb1RDNuqEnxdaLau1rxy3efi"
+ ]
+ }
+ }
+ ]
+}
+```
+
+Controlla il `vin`. Stai spendendo la transazione giusta? Contiene l'importo di denaro previsto? (Controlla con `bitcoin-cli gettransaction` e assicurati di guardare il `vout` giusto.) Controlla il tuo `vout`. Stai inviando l'importo giusto? Va all'indirizzo giusto? Infine, fai i calcoli per assicurarti che il denaro sia in pareggio. Il valore dell'UTXO meno l'importo speso è uguale alla commissione di transazione prevista?
+
+> :information_source: **NOTA - SEQUENZA:** Potresti notare che ogni input ha un numero di sequenza, impostato qui su 4294967295, che è 0xFFFFFFFF. Questa è l'ultima frontiera delle transazioni Bitcoin, perché è un campo standard nelle transazioni che era originariamente destinato a uno scopo specifico, ma non è mai stato completamente implementato. Quindi ora c'è questo intero in giro nelle transazioni che potrebbe essere riutilizzato per altri usi. E, in effetti, lo è stato. Al momento in cui scrivo, ci sono tre diversi utilizzi per la variabile chiamata `nSequence` nel codice Bitcoin Core: abilita RBF, `nLockTime` e timelock relativi. Se non succede nulla di strano, `nSequence` verrà impostato su 4294967295. Impostandolo su un valore inferiore, si segnala che sta succedendo qualcosa di speciale.
+
+### Firma la transazione raw
+
+A oggi, la tua transazione raw è solo qualcosa di teorico: potresti inviarla, ma non ti è stato promesso nulla. Devi fare alcune cose per farla uscire sulla rete.
+
+Per prima cosa, devi firmare la tua transazione raw:
+
+```
+
+$ bitcoin-cli signrawtransactionwithwallet $rawtxhex
+{
+ "hex": "02000000013a6e4279b799791049e1826602e84d2e36797e2005887b98c3ecf16b01b7f361010000006a4730440220335d15a2a2ca3ce6a302ce041686739d4a38eb0599a5ea08305de71965268d05022015f77a33cf7d613015b2aba5beb03088033625505ad5d4d0624defdbea22262b01210278608b54b8fb0d8379d3823d31f03a7c6ab0adffb07dd3811819fdfc34f8c132ffffffff01409c0000000000001976a914e7c1345fc8f87c68170b3aa798a956c2fe6a9eff88ac00000000",
+ "complete": true
+}
+$ signedtx="02000000013a6e4279b799791049e1826602e84d2e36797e2005887b98c3ecf16b01b7f361010000006a4730440220335d15a2a2ca3ce6a302ce041686739d4a38eb0599a5ea08305de71965268d05022015f77a33cf7d613015b2aba5beb03088033625505ad5d4d0624defdbea22262b01210278608b54b8fb0d8379d3823d31f03a7c6ab0adffb07dd3811819fdfc34f8c132ffffffff01409c0000000000001976a914e7c1345fc8f87c68170b3aa798a956c2fe6a9eff88ac00000000"
+```
+Nota che abbiamo catturato manualmente l'esadecimale firmato, anziché cercare di analizzarlo dall'oggetto JSON. Un pacchetto software chiamato "JQ" potrebbe fare di meglio, come spiegheremo in un prossimo interludio.
+
+### Invia la transazione raw
+
+Ora hai una transazione raw pronta all'uso, ma non conta finché non la metti effettivamente in rete, cosa che fai con il comando `sendrawtransaction`. Riceverai un txid:
+
+```
+$ bitcoin-cli sendrawtransaction $signedtx
+a1fd550d1de727eccde6108c90d4ffec11ed83691e96e119d842b3f390e2f19a
+```
+
+Vedrai immediatamente che l'UTXO e il suo denaro sono stati rimossi dal tuo portafoglio:
+```
+$ bitcoin-cli listunspent
+[
+ {
+ "txid": "ca4898d8f950df03d6bfaa00578bd0305d041d24788b630d0c4a32debcac9f36",
+ "vout": 0,
+ "address": "mi25UrzHnvn3bpEfFCNqJhPWJn5b77a5NE",
+ "label": "",
+ "scriptPubKey": "76a9141b72503639a13f190bf79acf6d76255d772360b788ac",
+ "amount": 0.00010000,
+ "confirmations": 23,
+ "spendable": true,
+ "solvable": true,
+ "desc": "pkh([d6043800/0'/0'/1']02fd5740996d853ea51a6904cf03257fc11204b0179f344c49739ec5b20b39c9ba)#62rud39c",
+ "safe": true
+ },
+ {
+ "txid": "91261eafae15ea53dedbea7c1db748c52bbc04a85859ffd0d839bda1421fda4c",
+ "vout": 0,
+ "address": "mjehC2KHzXcBDcwTd4LhZ2GzyzrZ3Kd3ff",
+ "label": "",
+ "scriptPubKey": "76a9142d573900aa357a38afd741fbf24b075d263ea6e088ac",
+ "amount": 0.00022000,
+ "confirmations": 6,
+ "spendable": true,
+ "solvable": true,
+ "desc": "pkh([d6043800/0'/0'/3']0278608b54b8fb0d8379d3823d31f03a7c6ab0adffb07dd3811819fdfc34f8c132)#nhjc3f8y",
+ "safe": true
+ }
+]
+
+$ bitcoin-cli getbalance
+0.00032000
+```
+
+Presto `listtransactions` dovrebbe mostrare una transazione confermata della categoria `send`.
+```
+ {
+ "address": "n2eMqTT929pb1RDNuqEnxdaLau1rxy3efi",
+ "category": "send",
+ "amount": -0.00040000,
+ "vout": 0,
+ "fee": -0.00010000,
+ "confirmations": 1,
+ "trusted": true,
+ "txid": "a1fd550d1de727eccde6108c90d4ffec11ed83691e96e119d842b3f390e2f19a",
+ "walletconflicts": [
+ ],
+ "time": 1592608574,
+ "timereceived": 1592608574,
+ "bip125-replaceable": "no",
+ "abandoned": false
+ }
+```
+Puoi vedere che corrisponde all'indirizzo `txid` e `recipient`. Non solo mostra l'`importo` inviato, ma mostra anche la `commissione` della transazione. E ha già ricevuto una conferma, perché abbiamo offerto una commissione che lo avrebbe rapidamente inserito in un blocco.
+
+Congratulazioni! Ora sei più povero di qualche satoshi!
+
+## Riepilogo: creazione di una transazione raw
+
+Quando le monete entrano nel tuo portafoglio Bitcoin, rimangono come importi distinti, chiamati UTXO. Quando crei una transazione raw per inviare quel denaro, utilizzi uno o più UTXO per pagare (come fondere le monete d'oro e ricomporle a seconda del bisogno). Puoi quindi creare una transazione raw, firmarla e inviarla sulla rete Bitcoin. Tuttavia, questa è solo una base: di solito dovrai creare una transazione raw con più output per inviare effettivamente qualcosa sulla rete Bitcoin!
+
+## Cosa c'è dopo?
+
+Ne vale la pena impiegare qualche minuto per capire meglio come [usare JQ](04_2_Intermezzo_Usare_JQ.md).
diff --git a/it/04_2_Intermezzo_Usare_JQ.md b/it/04_2_Intermezzo_Usare_JQ.md
new file mode 100644
index 000000000..12bd0c822
--- /dev/null
+++ b/it/04_2_Intermezzo_Usare_JQ.md
@@ -0,0 +1,424 @@
+# Interludio: utilizzo di JQ
+
+La creazione di una transazione raw ha rivelato come i risultati più complessi di bitcoin-cli non possano essere facilmente salvati in variabili della riga di comando. La risposta è JQ, che consente di filtrare singoli elementi da dati JSON più complessi.
+
+## Installa JQ
+
+Per le versioni moderne di Debian, dovresti essere in grado di installare JQ usando `apt-get`:
+
+```
+# apt-get install jq
+```
+> :book: ***Che cos'è JQ?*** cito "`jq` è come `sed` per i dati `JSON`: puoi usarlo per suddividere, filtrare, mappare e trasformare i dati strutturati e giocare con il testo con la stessa facilità di `sed` , `awk`, `grep` e compagnia bella."
+
+Se funziona, il gioco è fatto!
+
+Altrimenti, puoi scaricare JQ da un [repository Github](https://stedolan.github.io/jq/). Basta scaricare un file binario per Linux, OS X o Windows, a seconda dei casi.
+
+Una volta scaricato il binario, puoi installarlo sul tuo sistema. Se stai lavorando su un VPS Debian come suggeriamo, la tua installazione sarà simile a questa:
+```
+$ mv jq-linux64 jq
+$ sudo /usr/bin/install -m 0755 -o root -g root -t /usr/local/bin jq
+```
+## Usa `JQ` per accedere al valore di un oggetto `JSON` tramite chiave
+
+**Esempio di utilizzo:** _Cattura l'esadecimale da una transazione grezza firmata._
+
+Nella sezione precedente, l'uso di "signrawtransaction" ha offerto un esempio di impossibilità di acquisire facilmente i dati in variabili a causa dell'uso dell'output JSON:
+```
+$ bitcoin-cli signrawtransactionwithwallet $rawtxhex
+{
+ "hex": "02000000013a6e4279b799791049e1826602e84d2e36797e2005887b98c3ecf16b01b7f361010000006a4730440220335d15a2a2ca3ce6a302ce041686739d4a38eb0599a5ea08305de71965268d05022015f77a33cf7d613015b2aba5beb03088033625505ad5d4d0624defdbea22262b01210278608b54b8fb0d8379d3823d31f03a7c6ab0adffb07dd3811819fdfc34f8c132ffffffff01409c0000000000001976a914e7c1345fc8f87c68170b3aa798a956c2fe6a9eff88ac00000000",
+ "complete": true
+}
+```
+Fortunatamente, JQ può facilmente acquisire dati di questo tipo!
+
+Per utilizzare JQ, esegui `jq` nel backend di una pipe `|` e utilizza sempre l'invocazione standard di `jq -r`. La `-r` dice a JQ di produrre un output grezzo, raw, che funzionerà per le variabili della riga di comando, mentre il `.` dice a jq di produrre l'output. Proteggiamo questo argomento in `' '` perché avremo bisogno di quella protezione in seguito quando le nostre chiamate a `'jq` diventeranno più complesse.
+
+Per acquisire un valore specifico da un oggetto JSON, elenca semplicemente la chiave dopo `.`:
+
+```
+$ bitcoin-cli signrawtransactionwithwallet $rawtxhex | jq -r '.hex'
+02000000013a6e4279b799791049e1826602e84d2e36797e2005887b98c3ecf16b01b7f361010000006a4730440220335d15a2a2ca3ce6a302ce041686739d4a38eb0599a5ea08305de71965268d05022015f77a33cf7d613015b2aba5beb03088033625505ad5d4d0624defdbea22262b01210278608b54b8fb0d8379d3823d31f03a7c6ab0adffb07dd3811819fdfc34f8c132ffffffff01409c0000000000001976a914e7c1345fc8f87c68170b3aa798a956c2fe6a9eff88ac00000000
+```
+Con questo strumento in mano, puoi acquisire informazioni dagli oggetti JSON alle variabili della riga di comando:
+```
+$ signedtx=$(bitcoin-cli signrawtransactionwithwallet $rawtxhex | jq -r '.hex')
+$ echo $signedtx
+02000000013a6e4279b799791049e1826602e84d2e36797e2005887b98c3ecf16b01b7f361010000006a4730440220335d15a2a2ca3ce6a302ce041686739d4a38eb0599a5ea08305de71965268d05022015f77a33cf7d613015b2aba5beb03088033625505ad5d4d0624defdbea22262b01210278608b54b8fb0d8379d3823d31f03a7c6ab0adffb07dd3811819fdfc34f8c132ffffffff01409c0000000000001976a914e7c1345fc8f87c68170b3aa798a956c2fe6a9eff88ac00000000
+```
+È quindi possibile utilizzare tali variabili facilmente e senza errori:
+```
+$ bitcoin-cli sendrawtransaction $signedtx
+3f9ccb6e16663e66dc119de1866610cc4f7a83079bfec2abf0598ed3adf10a78
+```
+## Utilizza JQ per accedere ai valori di singoli oggetti JSON in un array tramite chiave
+
+**Esempio di utilizzo:** _Cattura txid e vout per un UTXO selezionato._
+
+Ottenere dati da un oggetto JSON è semplice, ma cosa succede se l'oggetto JSON si trova in un array JSON? Il comando `listunspent` offre un ottimo esempio, perché solitamente conterrà un numero di transazioni diverse. E se volessi acquisire informazioni specifiche da _uno_ di essi?
+
+Quando lavori con un array JSON, la prima cosa che devi fare è dire a JQ a quale indice accedere. Ad esempio, potresti aver esaminato le tue transazioni in "listunspent" e aver deciso di voler lavorare con la seconda. Si usa `'.[1]'` per accedere al secondo elemento. `[ ]` dice che stiamo facendo riferimento a un array JSON e `1` dice che vogliamo il primo indice.
+```
+$ bitcoin-cli listunspent | jq -r '.[1]'
+{
+ "txid": "91261eafae15ea53dedbea7c1db748c52bbc04a85859ffd0d839bda1421fda4c",
+ "vout": 0,
+ "address": "mjehC2KHzXcBDcwTd4LhZ2GzyzrZ3Kd3ff",
+ "label": "",
+ "scriptPubKey": "76a9142d573900aa357a38afd741fbf24b075d263ea6e088ac",
+ "amount": 0.00022,
+ "confirmations": 9,
+ "spendable": true,
+ "solvable": true,
+ "desc": "pkh([d6043800/0'/0'/3']0278608b54b8fb0d8379d3823d31f03a7c6ab0adffb07dd3811819fdfc34f8c132)#nhjc3f8y",
+ "safe": true
+}
+```
+È quindi possibile acquisire un singolo valore dall'array selezionato (1)] utilizzando una pipe _all'interno_ degli argomenti JQ; e poi (2) richiedere successivamente il valore specifico, come nell'esempio precedente. Quanto segue catturerebbe il `txid` dal primo oggetto JSON nell'array JSON prodotto da `listunspent`:
+```
+$ bitcoin-cli listunspent | jq -r '.[1] | .txid'
+91261eafae15ea53dedbea7c1db748c52bbc04a85859ffd0d839bda1421fda4c
+```
+Notare attentamente come le virgolette ` ' ' ` stanno dappertutto nelle espressione JQ _inclusa_ la pipe `|` .
+
+Questo metodo può essere utilizzato per compilare le variabili per un UTXO che desideri utilizzare:
+```
+$ newtxid=$(bitcoin-cli listunspent | jq -r '.[1] | .txid')
+$ newvout=$(bitcoin-cli listunspent | jq -r '.[1] | .vout')
+$ echo $newtxid
+91261eafae15ea53dedbea7c1db748c52bbc04a85859ffd0d839bda1421fda4c
+$ echo $newvout
+0
+```
+Ecco! Ora potremmo creare una nuova transazione grezza utilizzando il nostro primo UTXO come input, senza dover digitare manualmente nessuna delle informazioni UTXO!
+
+## Utilizza JQ per accedere ai valori degli oggetti JSON corrispondenti in un array in base alla chiave
+
+**Esempio di utilizzo:** _Elenca il valore di tutti gli UTXO non spesi._
+
+Invece di accedere a un singolo valore specifico in un oggetto JSON specifico, potresti invece accedere a tutto un valore specifico in tutti gli oggetti JSON. Questo viene fatto con `.[]`, dove non è specificato alcun indice. Ad esempio, questo elencherebbe tutti i fondi non spesi:
+```
+$ bitcoin-cli listunspent | jq -r '.[] | .amount'
+0.0001
+0.00022
+```
+
+## Usa JQ per fare calcoli semplici tramite chiave
+
+**Esempio di utilizzo:** _Somma il valore di tutti gli UTXO non spesi._
+
+A questo punto, puoi iniziare a utilizzare l'output JQ per semplici calcoli. Ad esempio, sommando i valori delle transazioni non spese con un semplice script `awk` otterresti l'equivalente di `getbalance`:
+```
+$ bitcoin-cli listunspent | jq -r '.[] | .amount' | awk '{s+=$1} END {print s}'
+0.00032
+$ bitcoin-cli getbalance
+0.00032000
+```
+
+## Utilizza JQ per visualizzare più valori di oggetti JSON in un array tramite più chiavi
+
+**Esempio di utilizzo:** _Elenca le informazioni sull'utilizzo per tutti gli UTXO._
+
+JQ può facilmente acquisire singoli elementi da oggetti e array JSON e inserirli in variabili. Questo sarà il suo utilizzo principale nelle sezioni future. Tuttavia, può anche essere utilizzato per ridurre "enormi quantità" di informazioni prodotte da "bitcoin-cli" in "quantità ragionevoli" di informazioni.
+
+Ad esempio, potresti voler vedere un elenco di tutti i tuoi UTXO (`.[]`) e ottenere un elenco di tutte le loro informazioni più importanti (`.txid, .vout, .amount`):
+```
+$ bitcoin-cli listunspent | jq -r '.[] | .txid, .vout, .amount'
+ca4898d8f950df03d6bfaa00578bd0305d041d24788b630d0c4a32debcac9f36
+0
+0.0001
+91261eafae15ea53dedbea7c1db748c52bbc04a85859ffd0d839bda1421fda4c
+0
+0.00022
+```
+Ciò rende facile decidere quali UTXO spendere in una transazione grezza, ma non è molto carino.
+
+Fortunatamente, JQ ti permette anche di essere fantasioso. Puoi utilizzare `{}` per creare nuovi oggetti JSON (per analisi aggiuntive o per un output gradevole). Puoi anche definire il nome della nuova chiave per ciascuno dei tuoi valori. L'output risultante dovrebbe essere molto più intuitivo e meno soggetto a errori (anche se ovviamente meno utile per scaricare informazioni direttamente nelle variabili).
+
+L'esempio seguente mostra esattamente la stessa analisi di "listunspent", ma con ogni vecchio oggetto JSON ricostruito come un nuovo oggetto JSON abbreviato, con tutti i nuovi valori denominati con le loro vecchie chiavi:
+```
+$ bitcoin-cli listunspent | jq -r '.[] | { txid: .txid, vout: .vout, amount: .amount }'
+{
+ "txid": "ca4898d8f950df03d6bfaa00578bd0305d041d24788b630d0c4a32debcac9f36",
+ "vout": 0,
+ "amount": 0.0001
+}
+{
+ "txid": "91261eafae15ea53dedbea7c1db748c52bbc04a85859ffd0d839bda1421fda4c",
+ "vout": 0,
+ "amount": 0.00022
+}
+```
+Ovviamente potresti rinominare le tue nuove chiavi come ritieni opportuno. Non c'è niente di magico nei nomi originali scelti da Satoshi:
+```
+$ bitcoin-cli listunspent | jq -r '.[] | { tx: .txid, output: .vout, bitcoins: .amount }'
+{
+ "tx": "ca4898d8f950df03d6bfaa00578bd0305d041d24788b630d0c4a32debcac9f36",
+ "output": 0,
+ "bitcoins": 0.0001
+}
+{
+ "tx": "91261eafae15ea53dedbea7c1db748c52bbc04a85859ffd0d839bda1421fda4c",
+ "output": 0,
+ "bitcoins": 0.00022
+}
+```
+## Utilizza JQ per accedere agli oggetti JSON in base al valore cercato
+
+**Esempio di utilizzo:** _Cerca automaticamente gli UTXO utilizzati in una transazione._
+
+Le ricerche JQ finora sono state abbastanza semplici: si utilizza una chiave per cercare uno o più valori in un oggetto o array JSON. Ma cosa succede se invece desideri cercare un valore in un oggetto JSON... tramite un altro valore? Questo tipo di ricerca indiretta ha una reale applicabilità quando lavori con transazioni basate su UTXO esistenti. Ad esempio, può consentire di calcolare il valore totale degli UTXO utilizzati in una transazione, cosa di vitale importanza.
+
+Questo esempio utilizza la seguente transazione raw. Si noti che questa è una transazione grezza più complessa con due input e due output. Impareremo a realizzarli in alcune sezioni; per ora è necessario saper offrire esempi robusti. Nota che a differenza dei nostri esempi precedenti, questo ha due oggetti nell'array "vin" e due nell'array "vout".
+```
+$ bitcoin-cli decoderawtransaction $rawtxhex
+{
+ "txid": "6f83a0b78c598de01915554688592da1d7a3047eacacc8a9be39f5396bf0a07e",
+ "hash": "6f83a0b78c598de01915554688592da1d7a3047eacacc8a9be39f5396bf0a07e",
+ "size": 160,
+ "vsize": 160,
+ "version": 2,
+ "locktime": 0,
+ "vin": [
+ {
+ "txid": "d261b9494eb29084f668e1abd75d331fc2d6525dd206b2f5236753b5448ca12c",
+ "vout": 1,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967295
+ },
+ {
+ "txid": "c7c7f6371ec19330527325908a544bbf8401191645598301d24b54d37e209e7b",
+ "vout": 1,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967295
+ }
+ ],
+ "vout": [
+ {
+ "value": 1.00000000,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "OP_DUP OP_HASH160 cfc39be7ea3337c450a0c77a839ad0e160739058 OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a914cfc39be7ea3337c450a0c77a839ad0e16073905888ac",
+ "reqSigs": 1,
+ "type": "pubkeyhash",
+ "addresses": [
+ "mzTWVv2QSgBNqXx7RC56zEhaQPve8C8VS9"
+ ]
+ }
+ },
+ {
+ "value": 0.04500000,
+ "n": 1,
+ "scriptPubKey": {
+ "asm": "OP_DUP OP_HASH160 166692bda9f25ced145267bb44286e8ee3963d26 OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a914166692bda9f25ced145267bb44286e8ee3963d2688ac",
+ "reqSigs": 1,
+ "type": "pubkeyhash",
+ "addresses": [
+ "mhZQ3Bih6wi7jP1tpFZrCcyr4NsfCapiZP"
+ ]
+ }
+ }
+ ]
+}
+```
+
+### Recupera i valori
+
+Supponiamo di sapere esattamente come è costruita questa transazione: sappiamo che utilizza due UTXO come input. Per recuperare il txid per i due UTXO, potremmo usare `jq` per cercare il valore .vin della transazione, quindi fare riferimento all'array 0 di .vin, quindi al valore .txid di quell'array. Successivamente, potremmo fare lo stesso con il primo array, quindi lo stesso con i due valori .vout di .vin. Facile:
+
+```
+$ usedtxid1=$(bitcoin-cli decoderawtransaction $rawtxhex | jq -r '.vin | .[0] | .txid')
+$ echo $usedtxid1
+d261b9494eb29084f668e1abd75d331fc2d6525dd206b2f5236753b5448ca12c
+$ usedtxid2=$(bitcoin-cli decoderawtransaction $rawtxhex | jq -r '.vin | .[1] | .txid')
+$ echo $usedtxid2
+c7c7f6371ec19330527325908a544bbf8401191645598301d24b54d37e209e7b
+
+$ usedvout1=$(bitcoin-cli decoderawtransaction $rawtxhex | jq -r '.vin | .[0] | .vout')
+$ echo $usedvout1
+1
+$ usedvout2=$(bitcoin-cli decoderawtransaction $rawtxhex | jq -r '.vin | .[1] | .vout')
+$ echo $usedvout2
+1
+```
+Tuttavia, sarebbe meglio avere un caso generale che salvi _automaticamente_ tutti i txid dei nostri UTXO.
+
+Sappiamo già che possiamo accedere a tutti i file `.txid` utilizzando un valore di array `.[]`. Possiamo usarlo per creare una ricerca generale .txid:
+```
+$ usedtxid=($(bitcoin-cli decoderawtransaction $rawtxhex | jq -r '.vin | .[] | .txid'))
+$ echo ${usedtxid[0]}
+d261b9494eb29084f668e1abd75d331fc2d6525dd206b2f5236753b5448ca12c
+$ echo ${usedtxid[1]}
+c7c7f6371ec19330527325908a544bbf8401191645598301d24b54d37e209e7b
+
+$ usedvout=($(bitcoin-cli decoderawtransaction $rawtxhex | jq -r '.vin | .[] | .vout'))
+$ echo ${usedvout[0]}
+1
+$ echo ${usedvout[1]}
+1
+```
+L'unico vero trucco qui è il modo in cui abbiamo salvato le informazioni utilizzando la shell bash. Invece di salvare in una variabile con `$(command)`, abbiamo invece salvato in un array con `($(command))`. Siamo quindi riusciti ad accedere ai singoli elementi dell'array bash con una costruzione `${variable[n]}`. Potremmo invece accedere all'intero array con `${variable[@]}`. (Sì, nessuno ha mai detto che Bash fosse carino.)
+
+> :avviso: **ATTENZIONE:** Ricorda sempre che un UTXO è una transazione _più_ un vout. Abbiamo mancato il vout la prima volta che abbiamo scritto questo esempio JQ e ha smesso di funzionare quando ci siamo ritrovati in una situazione in cui ci erano stati inviati due `vout` dalla stessa transazione.
+
+### Recupera gli oggetti correlati
+
+Ora puoi utilizzare le informazioni "txid" e "vout" salvate per fare riferimento agli UTXO in "listunspent". Per trovare le informazioni sugli UTXO utilizzati dalla transazione grezza, è necessario esaminare l'intero array JSON (`[]`) delle transazioni non spese. Puoi quindi scegliere (`select`) singoli oggetti JSON che includono (`contains`) i txid. Si _poi_ si selezionano (`select`) le transazioni tra quelle che _anche_ contengono (`contain`) il vout corretto.
+
+L'uso di un altro livello di pipe è la metodologia standard di JQ: prendi una serie di dati, poi li riduci a tutte le transazioni rilevanti, quindi li riduci ai vout che sono stati effettivamente utilizzati da quelle transazioni. Tuttavia, gli argomenti `select` e `contains` sono qualcosa di nuovo. Mostrano parte della complessità di JSON che va oltre lo scopo di questo tutorial; per ora sappi solo che questa particolare invocazione funzionerà per catturare oggetti corrispondenti.
+
+Per iniziare in modo semplice, seleziona i due UTXO uno alla volta:
+```
+$ bitcoin-cli listunspent | jq -r '.[] | select (.txid | contains("'${usedtxid[0]}'")) | select(.vout | contains('${usedvout[0]}'))'
+{
+ "txid": "d261b9494eb29084f668e1abd75d331fc2d6525dd206b2f5236753b5448ca12c",
+ "vout": 1,
+ "address": "miSrC3FvkPPZgqqvCiQycq7io7wTSVsAFH",
+ "scriptPubKey": "76a91420219e4f3c6bc0f6524d538009e980091b3613e888ac",
+ "amount": 0.9,
+ "confirmations": 6,
+ "spendable": true,
+ "solvable": true
+}
+$ bitcoin-cli listunspent | jq -r '.[] | select (.txid | contains("'${usedtxid[1]}'")) | select(.vout | contains('${usedvout[1]}'))'
+{
+ "txid": "c7c7f6371ec19330527325908a544bbf8401191645598301d24b54d37e209e7b",
+ "vout": 1,
+ "address": "mzizSuAy8aL1ytFijds7pm4MuDPx5aYH5Q",
+ "scriptPubKey": "76a914d2b12da30320e81f2dfa416c5d9499d08f778f9888ac",
+ "amount": 0.4,
+ "confirmations": 5,
+ "spendable": true,
+ "solvable": true
+}
+```
+Un semplice bash for-loop potrebbe invece darti _tutti_ i tuoi UTXO:
+```
+$ for ((i=0; i<${#usedtxid[*]}; i++)); do txid=${usedtxid[i]}; vout=${usedvout[i]}; bitcoin-cli listunspent | jq -r '.[] | select (.txid | contains("'${txid}'")) | select(.vout | contains('$vout'))'; done;
+{
+ "txid": "d261b9494eb29084f668e1abd75d331fc2d6525dd206b2f5236753b5448ca12c",
+ "vout": 1,
+ "address": "miSrC3FvkPPZgqqvCiQycq7io7wTSVsAFH",
+ "scriptPubKey": "76a91420219e4f3c6bc0f6524d538009e980091b3613e888ac",
+ "amount": 0.9,
+ "confirmations": 7,
+ "spendable": true,
+ "solvable": true
+}
+{
+ "txid": "c7c7f6371ec19330527325908a544bbf8401191645598301d24b54d37e209e7b",
+ "vout": 1,
+ "address": "mzizSuAy8aL1ytFijds7pm4MuDPx5aYH5Q",
+ "scriptPubKey": "76a914d2b12da30320e81f2dfa416c5d9499d08f778f9888ac",
+ "amount": 0.4,
+ "confirmations": 6,
+ "spendable": true,
+ "solvable": true
+}
+
+```
+Nota che abbiamo utilizzato ancora un altro elemento brutto dell'array `${#usedtxid[*]}` per determinare la dimensione dell'array, quindi abbiamo effettuato l'accesso a ciascun valore nell'array `usedtxid` e a ciascun valore nell'array parallelo `usedvout`, inserendo trasformarli in variabili più semplici per un accesso meno brutto.
+
+## Usa JSON per calcoli semplici in base al valore
+
+**Esempio di utilizzo:** _Calcola automaticamente il valore degli UTXO utilizzati in una transazione._
+
+Ora puoi fare un ulteriore passo avanti e richiedere il .amount (o qualsiasi altro valore-chiave JSON) dagli UTXO che stai recuperando.
+
+Questo esempio ripete l'utilizzo degli array `$usedtxid` e `$usedvout` impostati come segue:
+```
+$ usedtxid=($(bitcoin-cli decoderawtransaction $rawtxhex | jq -r '.vin | .[] | .txid'))
+$ usedvout=($(bitcoin-cli decoderawtransaction $rawtxhex | jq -r '.vin | .[] | .vout'))
+```
+Lo stesso script "for" può essere utilizzato per scorrere questi array, ma con una pipe aggiunta nel JQ che restituisce il valore `amount` per ciascuno degli UTXO selezionati.
+```
+$ for ((i=0; i<${#usedtxid[*]}; i++)); do txid=${usedtxid[i]}; vout=${usedvout[i]}; bitcoin-cli listunspent | jq -r '.[] | select (.txid | contains("'${txid}'")) | select(.vout | contains('$vout')) | .amount'; done;
+0.9
+0.4
+```
+A questo punto puoi anche sommare gli .amounts con uno script `awk`, per vedere realmente quanti soldi ci sono negli UTXO che la transazione sta spendendo:
+```
+$ for ((i=0; i<${#usedtxid[*]}; i++)); do txid=${usedtxid[i]}; vout=${usedvout[i]}; bitcoin-cli listunspent | jq -r '.[] | select (.txid | contains("'${txid}'")) | select(.vout | contains('$vout')) | .amount'; done | awk '{s+=$1} END {print s}'
+1.3
+```
+Wow!
+
+## Usa JQ per calcoli complessi
+
+**Esempio di utilizzo:** _Calcola la commissione per una transazione._
+
+Per calcolare la commissione di transazione completa a questo punto è necessario solo un ulteriore calcolo: determinare quanti soldi passano attraverso il `.vout`. Questo è un semplice utilizzo di JQ in cui devi semplicemente usare `awk` per riassumere il `valore` di tutte le informazioni `vout`:
+```
+$ bitcoin-cli decoderawtransaction $rawtxhex | jq -r '.vout [] | .value' | awk '{s+=$1} END {print s}'
+1.045
+```
+Per completare il calcolo della commissione di transazione, sottrai l'importo .vout .(1.045) dall'importo .vin (1.3).
+
+Per fare ciò, dovrai installare `bc`:
+
+```
+$ sudo apt-get install bc
+```
+
+Mettendo tutto insieme si crea una calcolatrice completa in sole cinque righe di script:
+```
+$ usedtxid=($(bitcoin-cli decoderawtransaction $rawtxhex | jq -r '.vin | .[] | .txid'))
+$ usedvout=($(bitcoin-cli decoderawtransaction $rawtxhex | jq -r '.vin | .[] | .vout'))
+$ btcin=$(for ((i=0; i<${#usedtxid[*]}; i++)); do txid=${usedtxid[i]}; vout=${usedvout[i]}; bitcoin-cli listunspent | jq -r '.[] | select (.txid | contains("'${txid}'")) | select(.vout | contains('$vout')) | .amount'; done | awk '{s+=$1} END {print s}')
+$ btcout=$(bitcoin-cli decoderawtransaction $rawtxhex | jq -r '.vout [] | .value' | awk '{s+=$1} END {print s}')
+$ echo "$btcin-$btcout"| /usr/bin/bc
+.255
+```
+E questo è anche un buon esempio del motivo per cui ricontrolli le tue commissioni: avevamo intenzione di inviare una commissione di transazione di 5.000 satoshi, ma invece abbiamo inviato 255.000 satoshi. Ops!
+
+> :avviso: **ATTENZIONE:** La prima volta che abbiamo scritto questa lezione, abbiamo effettivamente calcolato male la nostra tariffa e non l'abbiamo vista finché non abbiamo eseguito il nostro calcolatore delle tariffe. È *così* facile sbagliare, poi i tuoi soldi sono finiti. (L'esempio sopra è in realtà tratto dalla nostra seconda iterazione della calcolatrice e quella volta abbiamo commesso l'errore di proposito.)
+
+Per ulteriori magie JSON (e se qualcosa non è chiaro), leggi il [Manuale JSON](https://stedolan.github.io/jq/manual/) e il [Cookbook JSON](https:// github.com/stedolan/jq/wiki/Cookbook). Utilizzeremo regolarmente JQ negli esempi futuri.
+
+## Crea alcuni nuovi alias
+
+Il codice JQ può essere un po' ingombrante, quindi dovresti considerare di aggiungere alcune invocazioni più lunghe e interessanti al tuo ~/.bash_profile.
+
+Ogni volta che stai esaminando una grande massa di informazioni in un oggetto JSON generato da un comando `bitcoin-cli`, valuta la possibilità di scrivere un alias per ridurlo a ciò che vuoi vedere.
+```
+alias btcunspent="bitcoin-cli listunspent | jq -r '.[] | { txid: .txid, vout: .vout, amount: .amount }'"
+```
+
+## Esegui lo script della commissione di transazione
+
+Lo [Script di calcolo della tariffa](src/04_2_i_txfee-calc.sh) è disponibile nella directory src-code. Puoi scaricarlo e salvarlo come `txfee-calc.sh`.
+
+> :avviso: **ATTENZIONE:** Questo script non è stato controllato in modo approfondito. Se hai intenzione di usarlo per verificare le commissioni di transazione reali, dovresti farlo solo come triplo controllo dopo aver già fatto tutti i conti da solo.
+
+Assicurati che le autorizzazioni sullo script siano corrette:
+```
+$ chmod 755 txfee-calc.sh
+```
+È quindi possibile eseguire lo script come segue:
+```
+$ ./txfee-calc.sh $rawtxhex
+.255
+```
+Potresti anche voler creare un alias:
+```
+alias btctxfee="~/txfee-calc.sh"
+```
+
+## Riepilogo: utilizzo di JQ
+
+JQ semplifica l'estrazione di informazioni da array e oggetti JSON. Può anche essere utilizzato negli script di shell per calcoli abbastanza complessi che ti semplificheranno la vita.
+
+## Cosa viene dopo?
+
+Continua a inviare Bitcoin" qui [Capitolo 4.3: Creare una Transazione Grezza con Alias](04_3_Creare_una_Transazione_Grezza_con_Alias.md).
+
diff --git a/it/04_3_Creare_una_Transazione_Grezza_con_Alias.md b/it/04_3_Creare_una_Transazione_Grezza_con_Alias.md
new file mode 100644
index 000000000..06304f989
--- /dev/null
+++ b/it/04_3_Creare_una_Transazione_Grezza_con_Alias.md
@@ -0,0 +1,99 @@
+# 4.3 Creare una transazione raw con alias
+
+A volte può essere scoraggiante capire l'ordine giusto per gli argomenti di un comando bitcoin-cli. Fortunatamente, puoi usare _Named Arguments_ come alternativa.
+
+> :avviso: **AVVERTIMENTO VERSIONE:** Questa è un'innovazione di Bitcoin Core v 0.14.0. Se hai utilizzato i nostri script di installazione, questo è ciò che dovresti avere, ma ricontrolla la tua versione in caso di problemi. C'è anche un bug nell'uso degli argomenti con nome da parte del comando `createrawtransaction` che sarà presumibilmente corretto nella versione 0.14.1.
+
+## Crea un alias
+
+Per utilizzare un alias devi eseguire `bitcoin-cli` con l'argomento `-named`. Se prevedi di farlo regolarmente, probabilmente vorrai creare un alias:
+```
+alias bitcoin-cli="bitcoin-cli -named"
+```
+Come al solito, è per la tua facilità d'uso, ma continueremo a utilizzare tutti i comandi per mantenerne la chiarezza.
+
+## Prova un alias
+
+Per sapere quali sono i nomi degli argomenti di un comando, consulta `bitcoin-cli help`. Elencherà gli argomenti nel loro ordine corretto, ma ora fornirà anche i nomi per ciascuno di essi.
+
+Ad esempio, `bitcoin-cli help getbalance` elenca questi argomenti:
+
+ 1. dummy [used to be account]
+ 2. minconf
+ 3. include_watchonly
+ 4. avoid_reuse
+
+Quanto segue mostra un utilizzo tradizionale e non intuitivo di "getbalance" utilizzando l'argomento di conferma minima:
+```
+$ bitcoin-cli getbalance "*" 1
+```
+Con gli argomenti con nome è piu chiaro vedere cosa stai facendo, e cosi riduci al minimo gli errori:
+```
+$ bitcoin-cli -named getbalance minconf=1
+```
+
+## Prova una transazione raw
+
+Ecco come apparirebbero i comandi per l'invio di una transazione grezza con argomenti denominati:
+
+```
+$ utxo_txid=$(bitcoin-cli listunspent | jq -r '.[0] | .txid')
+$ utxo_vout=$(bitcoin-cli listunspent | jq -r '.[0] | .vout')
+$ recipient="n2eMqTT929pb1RDNuqEnxdaLau1rxy3efi"
+
+$ rawtxhex=$(bitcoin-cli -named createrawtransaction inputs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout' } ]''' outputs='''{ "'$recipient'": 0.00001 }''')
+$ bitcoin-cli -named decoderawtransaction hexstring=$rawtxhex
+{
+ "txid": "2b59c31bc232c0399acee4c2a381b564b6fec295c21044fbcbb899ffa56c3da5",
+ "hash": "2b59c31bc232c0399acee4c2a381b564b6fec295c21044fbcbb899ffa56c3da5",
+ "version": 2,
+ "size": 85,
+ "vsize": 85,
+ "weight": 340,
+ "locktime": 0,
+ "vin": [
+ {
+ "txid": "ca4898d8f950df03d6bfaa00578bd0305d041d24788b630d0c4a32debcac9f36",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967295
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.00001000,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "OP_DUP OP_HASH160 e7c1345fc8f87c68170b3aa798a956c2fe6a9eff OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a914e7c1345fc8f87c68170b3aa798a956c2fe6a9eff88ac",
+ "reqSigs": 1,
+ "type": "pubkeyhash",
+ "addresses": [
+ "n2eMqTT929pb1RDNuqEnxdaLau1rxy3efi"
+ ]
+ }
+ }
+ ]
+}
+
+$ signedtx=$(bitcoin-cli -named signrawtransactionwithwallet hexstring=$rawtxhex | jq -r '.hex')
+$ bitcoin-cli -named sendrawtransaction hexstring=$signedtx
+e70dd2aa13422d12c222481c17ca21a57071f92ff86bdcffd7eaca71772ba172
+```
+Ecco! Hai inviato un'altra transazione grezza utilizzando alias `-named`, ma questa volta in modo piu chiaro e riducendo errori.
+
+> :warning: **AVVERTIMENTO VERSIONE:** È qui che si manifesta il bug in Bitcoin Core 0.14: l'argomento `inputs` per `createrawtransaction` è chiamato erroneamente `transactions`. Quindi, se utilizzi Bitcoin Core 0.14.0, sostituisci l'argomento denominato `inputs` con `transazioni` per questo e gli esempi futuri. Tuttavia, a partire da Bitcoin Core 0.14.1, questo codice dovrebbe funzionare come mostrato.
+> **UPDATE** Ormai siamo a luglio del 2024 e abbiamo la versione Bitcoin Core 27.0, funziona tutto.
+
+## Riepilogo: creazione di una transazione grezza con alias
+
+Eseguendo `bitcoin-cli` con il flag `-named`, puoi utilizzare alias anziché dipendere da argomenti ordinati. `bitcoin-cli help` qui vedrai sempre il nome giusto per ogni argomento. Ciò può comportare un codice più robusto, più facile da leggere e meno soggetto a errori.
+
+_Questi documenti utilizzeranno alias per tutti gli esempi futuri, per chiarezza e per stabilire le migliori pratiche. Tuttavia, mostrerà anche tutti gli argomenti nell'ordine corretto. Quindi, se preferisci non utilizzare argomenti con nome, rimuovi semplicemente il flag '-named' e tutti i "name=" e gli esempi dovrebbero continuare a funzionare correttamente._
+
+## Con cosa andiamo avanti?
+
+Continua a inviare bitcoin, guarda come farlo con una transazione raw qui: [Capitolo 4.4 Inviare Monete con Transazione Grezza](04_4_Inviare_Monete_con_Transazione_Grezza.md).
diff --git a/it/04_4_Intermezzo_Usare_Curl.md b/it/04_4_Intermezzo_Usare_Curl.md
new file mode 100644
index 000000000..19b308874
--- /dev/null
+++ b/it/04_4_Intermezzo_Usare_Curl.md
@@ -0,0 +1,321 @@
+# Interludio: Usare Curl
+
+`bitcoin-cli` è in definitiva solo un wrapper. È un modo per interfacciarsi con `bitcoind` dalla riga di comando, fornendo un accesso semplificato ai suoi numerosi comandi RPC. Naturalmente è possibile accedere direttamente a RPC. Ecco di cosa tratta questo interludio: connettersi direttamente a RPC con il comando `curl`.
+
+Non verrà utilizzato molto nei capitoli futuri, ma è un elemento importante che puoi vedere come un accesso alternativo a `bitcoind` se preferisci.
+
+## Capire CURL
+
+`curl`, abbreviazione di `vedi URL`, è uno strumento da riga di comando che ti consente di accedere direttamente agli URL in modo programmatico. È un modo semplice per interagire con server come `bitcoind` che ascoltano le porte su Internet e che parlano una varietà di protocolli. Curl è disponibile anche come libreria per molti linguaggi di programmazione, come C, Java, PHP e Python. Quindi, una volta che sai come lavorare con Curl, avrai una solida base per utilizzare molte API diverse.
+
+Per utilizzare `curl` con `bitcoind`, devi conoscere tre cose: il formato standard, il nome utente e la password e la porta corretta.
+
+### Capire il format
+
+I comandi `bitcoin-cli` sono tutti collegati ai comandi RPC in `bitcoind`. Ciò rende molto semplice la transizione dall'utilizzo di `bitcoin-cli` all'utilizzo di `curl`. Infatti, se guardi una qualsiasi delle pagine di aiuto di `bitcoin-cli`, vedrai che elencano non solo i comandi `bitcoin-cli`, ma anche i comandi paralleli `curl`. Ad esempio, ecco `bitcoin-cli help getmininginfo`:
+```
+$ bitcoin-cli aiuta a ottenere informazioni sul mining
+getmininginfo
+
+Restituisce un oggetto json contenente informazioni relative al mining.
+Risultato:
+
+{ (json object)
+ `blocks` : n, (numeric) The current block
+ `currentblockweight` : n, (numeric, optional) The block weight of the last assembled block (only present if a block was ever assembled)
+ `currentblocktx` : n, (numeric, optional) The number of block transactions of the last assembled block (only present if a block was ever assembled)
+ `difficulty` : n, (numeric) The current difficulty
+ `networkhashps` : n, (numeric) The network hashes per second
+ `pooledtx` : n, (numeric) The size of the mempool
+ `chain` : `str`, (string) current network name (main, test, regtest)
+ `warnings` : `str` (string) any network and blockchain warnings
+}
+
+Esempi:
+> bitcoin-cli getmininginfo
+> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id": "curltest", "method": "getmininginfo", "params": []}' -H 'content-type: text/plain;' http://127.0.0.1:8332/
+```
+Ecco il comando `curl`, alla fine della schermata di aiuto! Questo comando piuttosto lungo è composto da quattro parti principali: (1) il tuo nome utente; (2) un flag `--data-binary`; (3) un oggetto JSON che dice a `bitcoind` cosa fare, incluso un array di parametri JSON; e (4) un'intestazione HTTP che include l'URL `bitcoind`.
+
+Quando lavori con `curl`, la maggior parte degli argomenti di `curl` rimarranno gli stessi da comando a comando; in genere cambieranno solo le voci `method` e `params` nell'array JSON. Tuttavia, devi sapere come inserire il tuo nome utente e il tuo indirizzo URL per farlo funzionare in primo luogo!
+
+_Ogni volta che non sei sicuro su come eseguire il curling di un comando RPC, guarda la guida di bitcoin-cli e vai da lì._
+
+### Conosci il tuo nome utente
+
+Per parlare co'l porto `bitcoind`, hai bisogno di un nome utente e una password. Questi sono stati creati come parte della configurazione iniziale di Bitcoin e possono essere trovati in `~/.bitcoin/bitcoin.conf`.
+
+Ad esempio, ecco la nostra configurazione attuale:
+```
+$ cat ~/.bitcoin/bitcoin.conf
+server=1
+dbcache=1536
+par=1
+maxuploadtarget=137
+maxconnections=16
+rpcuser=StandUp
+rpcpassword=8eaf562eaf45c33c3328bc66008f2dd1
+rpcallowip=127.0.0.1
+debug=tor
+prune=550
+testnet=1
+mintxfee=0.001
+txconfirmtarget=1
+[test]
+rpcbind=127.0.0.1
+rpcport=18332
+[main]
+rpcbind=127.0.0.1
+rpcport=8332
+[regtest]
+rpcbind=127.0.0.1
+rpcport=18443
+```
+Il nostro nome utente è `StandUp` e la tua password è `8eaf562eaf45c33c3328bc66008f2dd1`.
+
+> **ATTENZIONE:** Chiaramente non è molto sicuro avere queste informazioni in un file di testo. A partire da Bitcoin Core 0.12, puoi invece omettere `rpcpassword` dal tuo file `bitcoin.conf` e fare in modo che `bitcoind` generi un nuovo cookie ogni volta che si avvia. Lo svantaggio è che rende più difficile l'uso dei comandi RPC da parte di altre applicazioni, come quelle descritte in questo capitolo. Quindi per ora ci atterremo alle semplici informazioni `rpcuser` e `rpcpassword`, ma per il software di produzione, considera il passaggio ai cookie.
+
+Il modo sicuro per RPC con `bitcoind` è il seguente:
+
+```
+$ curl --user StandUp --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getmininginfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/
+Enter host password for user 'bitcoinrpc':
+```
+Come notato, ti verrà richiesta la password.
+
+> :link: **TESTNET vs MAINNET:** Testnet utilizza un URL con porta 18332 e mainnet utilizza un URL con porta 8332. Dai un'occhiata al tuo `bitcoin.conf`, è tutto disposto lì.
+
+Il modo non sicuro per farlo è il seguente:
+```
+$ curl --user StandUp:8eaf562eaf45c33c3328bc66008f2dd1 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getmininginfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/
+```
+> **ATTENZIONE:** L'immissione della password sulla riga di comando potrebbe inserire la password nella tabella dei processi e/o salvarla in una cronologia. Questo è ancora meno consigliato che inserirlo in un file, tranne che per i test su testnet. Se vuoi farlo altrove, assicurati di sapere cosa stai facendo!
+
+### Conosere comandi e parametri
+
+Con tutto questo in mano, sei pronto per inviare comandi RPC standard con `curl`... ma devi ancora sapere come incorporare i due elementi che tendono a cambiare nel comando `curl`.
+
+Il primo è `metodo`, ovvero il metodo RPC utilizzato. In genere dovrebbe corrispondere ai nomi dei comandi che hai inserito in `bitcoin-cli` per anni.
+
+Il secondo è `params`, che è un array di parametri JSON. Questi sono gli stessi argomenti (o argomenti denominati) che hai utilizzato. Costituiscono anche la parte più confusa di `curl`, in gran parte perché sono un array strutturato anziché un semplice elenco.
+
+Ecco come appariranno alcuni array di parametri:
+
+ * `[]` - Un array vuoto
+ * `["000b4430a7a2ba60891b01b718747eaf9665cb93fbc0c619c99419b5b5cf3ad2"]` - Un array con dati
+ * `["'$signedhex'"]` - Un array con una variabile
+ * `[6, 9999999]` - Un array con due parametri
+ * `{}` - Un oggetto vuoto
+ * `[''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout' } ]'', ''{ "'$recipient'": 0.298, "'$changeaddress'": 1.0}'']` - Un array con un array contenente un oggetto e un oggetto semplice
+
+## Ottenere informazioni
+
+Ora puoi inviare il tuo primo comando `curl` accedendo all'RPC `getmininginfo`:
+```
+$ curl --user StandUp:8eaf562eaf45c33c3328bc66008f2dd1 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getmininginfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/
+{"result":{"blocks":1772428,"difficulty":10178811.40698772,"networkhashps":91963587385939.06,"pooledtx":61,"chain":"test","warnings":"Warning: unknown new rules activated (versionbit 28)"},"error":null,"id":"curltest"}
+```
+
+Tieni presente che abbiamo fornito il metodo, `getmininginfo`, e il parametro, '[]', ma tutto il resto era la riga di comando `curl` standard.
+
+> **ATTENZIONE:** Se ottieni un risultato come "Impossibile connettersi alla porta 127.0.0.1 8332: connessione rifiutata", assicurati che una riga come `rpcallowip=127.0.0.1` sia nel tuo ~/.bitcoin/bitcoin .conf. Se le cose continuano a non funzionare, assicurati di consentire l'accesso alla porta 18332 (o 8332) da localhost. La nostra configurazione standard del [Capitolo due: Configurare Bitcoin-Core VPS](02_0_Configurare_Bitcoin-Core_VPS.md) dovrebbe fare tutto questo.
+
+Il risultato è un altro array JSON, che sfortunatamente è brutto da leggere se usi `curl` manualmente. Fortunatamente, puoi ripulirlo semplicemente collegandolo tramite `jq`:
+```
+$ curl --user StandUp:8eaf562eaf45c33c3328bc66008f2dd1 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getmininginfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/ | jq -r '.'
+ % Total % Received % Xferd Average Speed Time Time Time Current
+ Dload Upload Total Spent Left Speed
+100 295 100 218 100 77 72666 25666 --:--:-- --:--:-- --:--:-- 98333
+{
+ "result": {
+ "blocks": 1772429,
+ "difficulty": 10178811.40698772,
+ "networkhashps": 90580030969896.44,
+ "pooledtx": 4,
+ "chain": "test",
+ "warnings": "Warning: unknown new rules activated (versionbit 28)"
+ },
+ "error": null,
+ "id": "curltest"
+}
+```
+Vedrai un po' di report sulla connettività man mano che i dati vengono scaricati, quindi quando i dati raggiungono `jq`, tutto verrà visualizzato in un formato con rientro corretto. (Negli esempi futuri ometteremo le informazioni di download.)
+
+## Maneggiare il tuo portafoglio
+
+Anche se accedi direttamente a `bitcoind`, avrai comunque accesso alle funzionalità del portafoglio, perché sono in gran parte archiviate in `bitcoind` stesso.
+
+### Cercare indirizzi
+
+Utilizza l'RPC `getaddressesbylabel` per elencare tutti i tuoi indirizzi attuali:
+```
+$ curl --user StandUp:8eaf562eaf45c33c3328bc66008f2dd1 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getaddressesbylabel", "params": [""] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/ | jq -r '.'
+{
+ "result": {
+ "mi25UrzHnvn3bpEfFCNqJhPWJn5b77a5NE": {
+ "purpose": "receive"
+ },
+ "mjehC2KHzXcBDcwTd4LhZ2GzyzrZ3Kd3ff": {
+ "purpose": "receive"
+ },
+ "moKVV6XEhfrBCE3QCYq6ppT7AaMF8KsZ1B": {
+ "purpose": "receive"
+ },
+ "mwJL7cRiW2bUnY81r1thSu3D4jtMmwyU6d": {
+ "purpose": "receive"
+ },
+ "tb1q5gnwrh7ss5mmqt0qfan85jdagmumnatcscwpk6": {
+ "purpose": "receive"
+ },
+ "tb1qmtucvjtga68kgrvkl7q05x4t9lylxhku7kqdpr": {
+ "purpose": "receive"
+ }
+ },
+ "error": null,
+ "id": "curltest"
+}
+```
+Questo è il nostro primo esempio di parametro reale, `""`. Questo è il parametro `label` richiesto per `getaddressesbylabel`, ma tutti i nostri indirizzi sono sotto l'etichetta predefinita, quindi qui non è stato richiesto nulla di speciale.
+
+Il risultato è un elenco di tutti gli indirizzi che sono stati utilizzati da questo portafoglio... alcuni dei quali presumibilmente contengono fondi.
+
+### Cercare i fondi
+
+Utilizza l'RPC `listunspent` per elencare i fondi che hai a disposizione:
+```
+$ curl --user StandUp:8eaf562eaf45c33c3328bc66008f2dd1 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "listunspent", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/ | jq -r '.'
+{
+ "result": [
+ {
+ "txid": "e7071092dee0b2ae584bf6c1ee3c22164304e3a17feea7a32c22db5603cd6a0d",
+ "vout": 1,
+ "address": "mk9ry5VVy8mrA8SygxSQQUDNSSXyGFot6h",
+ "scriptPubKey": "76a91432db726320e4ad170c9c1ee83cd4d8a243c3435988ac",
+ "amount": 0.0009,
+ "confirmations": 4,
+ "spendable": true,
+ "solvable": true,
+ "desc": "pkh([d6043800/0'/1'/2']02881697d252d8bf181d08c58de1f02aec088cd2d468fc5fd888c6e39909f7fabf)#p6k7dptk",
+ "safe": true
+ },
+ {
+ "txid": "91261eafae15ea53dedbea7c1db748c52bbc04a85859ffd0d839bda1421fda4c",
+ "vout": 0,
+ "address": "mjehC2KHzXcBDcwTd4LhZ2GzyzrZ3Kd3ff",
+ "label": "",
+ "scriptPubKey": "76a9142d573900aa357a38afd741fbf24b075d263ea6e088ac",
+ "amount": 0.00022,
+ "confirmations": 19,
+ "spendable": true,
+ "solvable": true,
+ "desc": "pkh([d6043800/0'/0'/3']0278608b54b8fb0d8379d3823d31f03a7c6ab0adffb07dd3811819fdfc34f8c132)#nhjc3f8y",
+ "safe": true
+ }
+ ],
+ "error": null,
+ "id": "curltest"
+}
+```
+Questo è quasi esattamente lo stesso output che ricevi quando digiti `bitcoin-cli listunspent`, mostrando quanto siano strettamente legate le due interfacce. Se non è necessaria alcuna pulizia o ulteriore aiuto, `bitcoin-cli` restituisce semplicemente l'RPC. Facile!
+
+### Crea un indirizzo
+
+Dopo aver saputo dove sono i tuoi fondi, il passo successivo nella creazione di una transazione è ottenere un cambio di indirizzo. A questo punto probabilmente hai capito come funziona e sai che per semplici comandi RPC, tutto ciò che devi fare è modificare il `metodo` è il comando `curl`:
+```
+$ curl --user StandUp:8eaf562eaf45c33c3328bc66008f2dd1 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getrawchangeaddress", "params": ["legacy"] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/ | jq -r '.'
+{
+ "result": "mrSqN37TPs89GcidSZTvXmMzjxoJZ6RKoz",
+ "error": null,
+ "id": "curltest"
+}
+```
+
+> **AVVERTENZA:** L'ordine dei parametri è importante quando si inviano comandi RPC utilizzando curl. C'è solo un argomento per `getrawchangeaddress`, ma considera il suo cugino stretto `getnewaddress`. Richiede due argomenti: prima etichetta, poi tipo. Se inviassimo lo stesso `"params": ["legacy"]` invece di `"params": ["", "legacy"]`, otterremmo un indirizzo `bech32` con l'etichetta `"legacy"` invece di un indirizzo `legacy`, quindi presta attenzione all'ordine!
+
+A questo punto, possiamo anche tornare alla nostra pratica standard di salvare i risultati in variabili con l'aiuto aggiuntivo di `jq`:
+
+```
+$ newaddress=$(curl --user StandUp:8eaf562eaf45c33c3328bc66008f2dd1 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getrawchangeaddress", "params": ["legacy"] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/ | jq -r '.result')
+$ echo $newaddress
+mqdfnjgWr2r3sCCeuTDfe8fJ1CnycF2e6R
+```
+Non è necessario preoccuparsi delle informazioni di download. Andrà su `STDERR` e verrà visualizzato sullo schermo, mentre i risultati andranno su `STDOUT` e verranno salvati nella tua variabile.
+
+## Crea una transazione
+
+Ora sei pronto per creare una transazione con `curl`.
+
+### Prepara le tue variabili
+
+Proprio come con `bitcoin-cli`, per creare una transazione eseguendo i comandi RPC, dovresti prima salvare le tue variabili. L'unico cambiamento qui è che 'curl' crea un oggetto JSON che include un valore-chiave `result`, quindi devi sempre reindirizzare il tag `.result` prima di fare qualsiasi altra cosa.
+
+Questo esempio imposta le nostre variabili per utilizzare 1,2985 BTC nei fondi elencati nella prima transazione non spesa sopra:
+
+```
+$ utxo_txid=$(curl --user StandUp:8eaf562eaf45c33c3328bc66008f2dd1 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "listunspent", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/ | jq -r '.result | .[0] | .txid')
+$ utxo_vout=$(curl --user StandUp:8eaf562eaf45c33c3328bc66008f2dd1 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "listunspent", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/ | jq -r '.result | .[0] | .vout')
+$ recipient=mwCwTceJvYV27KXBc3NJZys6CjsgsoeHmf
+$ changeaddress=$(curl --user StandUp:8eaf562eaf45c33c3328bc66008f2dd1 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getrawchangeaddress", "params": ["legacy"] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/ | jq -r '.result')
+
+$ echo $utxo_txid
+e7071092dee0b2ae584bf6c1ee3c22164304e3a17feea7a32c22db5603cd6a0d
+$ echo $utxo_vout
+1
+$ echo $recipient
+mwCwTceJvYV27KXBc3NJZys6CjsgsoeHmf
+$ echo $changeaddress
+n2jf3MzeFpFGa7wq8rXKVnVuv5FoNSJZ1N
+```
+### Crea la transazione
+
+La transazione creata con `curl` è molto simile alla transazione creata con `bitcoin-cli`, ma con alcune sottili differenze:
+```
+$ curl --user StandUp:8eaf562eaf45c33c3328bc66008f2dd1 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "createrawtransaction", "params": [''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout' } ]'', ''{ "'$recipient'": 0.0003, "'$changeaddress'": 0.0005}'']}' -H 'content-type: text/plain;' http://127.0.0.1:18332/ | jq -r '.'
+{
+ "result": "02000000010d6acd0356db222ca3a7ee7fa1e3044316223ceec1f64b58aeb2e0de921007e70100000000ffffffff0230750000000000001976a914ac19d3fd17710e6b9a331022fe92c693fdf6659588ac50c30000000000001976a9147021efec134057043386decfaa6a6aa4ee5f19eb88ac00000000",
+ "error": null,
+ "id": "curltest"
+}
+```
+
+Il cuore della transazione è, ovviamente, l'array JSON `params`, che stiamo sfruttando appieno per la prima volta.
+
+Tieni presente che l'intero `params` è alloggiato in `[]` per contrassegnare l'array dei parametri.
+
+Abbiamo anche variato le citazioni rispetto a come funzionavano le cose in `bitcoin-cli`, per iniziare e terminare ogni array e oggetto all'interno dell'array `params` con `''` invece del nostro tradizionale `'''`. Questo perché l'intero set di argomenti JSON è già racchiuso da un `'`. Come al solito, basta dare un'occhiata alla bizzarra citazione della shell e abituarsi.
+
+Tuttavia, c'è un'ultima cosa degna di nota in questo esempio, e può essere _esasperante_ se te la perdi. Quando hai eseguito un comando `createrawtransaction` con `bitcoin-cli`, l'array JSON degli input e l'oggetto JSON degli output erano parametri distinti, quindi erano separati da uno spazio. Ora, poiché fanno parte dell'array JSON `params`, sono separati da una virgola (`,`). Perdilo e otterrai un `errore di analisi` senza molte informazioni aggiuntive.
+
+> **ATTENZIONE:** Hai mai avuto problemi con il debug del tuo `curl`? Aggiungi l'argomento `--trace-ascii /tmp/foo`. Le informazioni complete su ciò che viene inviato al server verranno salvate in `/tmp/foo` (o qualunque nome di file fornisca).
+
+Dopo aver verificato che le cose funzionino, probabilmente vorrai salvare il codice esadecimale in una variabile:
+
+
+```
+$ hexcode=$(curl --user StandUp:8eaf562eaf45c33c3328bc66008f2dd1 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "createrawtransaction", "params": [''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout' } ]'', ''{ "'$recipient'": 0.0003, "'$changeaddress'": 0.0005}'']}' -H 'content-type: text/plain;' http://127.0.0.1:18332/ | jq -r '.result')
+```
+
+### Firma e invia
+
+Firmare e inviare la transazione utilizzando `curl` è un facile utilizzo dell'RPC `signrawtransactionwithwallet` e `sendrawtransaction`:
+
+```
+$ signedhex=$(curl --user StandUp:8eaf562eaf45c33c3328bc66008f2dd1 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "signrawtransactionwithwallet", "params": ["'$hexcode'"] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/ | jq -r '.result | .hex')
+
+$ curl --user StandUp:8eaf562eaf45c33c3328bc66008f2dd1 --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "sendrawtransaction", "params": ["'$signedhex'"] }' -H 'content-type: text/plain;' http://127.0.0.1:18332/ | jq -r '.'
+{
+ "result": "eb84c5008038d760805d4d9644ace67849542864220cb2685a1ea2c64176b82d",
+ "error": null,
+ "id": "curltest"
+}
+```
+## Riepilogo: accesso a Bitcoind con Curl
+
+Dopo aver terminato questa sezione, potresti pensare che accedere a `bitcoind` tramite `curl` sia molto simile ad accedervi tramite `bitcoin-cli`... ma più complicato. E avresti ragione. `bitcoin-cli` ha funzionalità RPC piuttosto complete, quindi tutto ciò che fai tramite `curl` probabilmente puoi farlo tramite `bitcoin-cli`. Ecco perché continueremo a concentrarci su `bitcoin-cli` dopo questa digressione.
+
+Ma ci sono ancora ragioni per cui dovresti usare `curl` invece di `bitcoin-cli`:
+
+_Qual è il potere di curl?_ Ovviamente, `curl` elimina un livello di indiretto. Invece di lavorare con `bitcoin-cli` che invia comandi RPC a `bitcoind`, invii questi comandi RPC direttamente. Ciò consente una programmazione più solida, perché non devi preoccuparti di quali cose inaspettate potrebbe fare `bitcoin-cli` o di come potrebbe cambiare nel tempo. Tuttavia, stai anche muovendo i primi passi verso l'utilizzo di un linguaggio di programmazione più completo rispetto alle scarse opzioni offerte da uno script di shell. Come vedrai negli ultimi capitoli di questo, potresti effettivamente vedere che le librerie curl sono altre funzioni per accedere ai comandi RPC in una varietà di linguaggi di programmazione: ma è ancora molto lontano.
+
+## Qual è il prossimo passo?
+Scopri un altro modo per "Inviare transazioni Bitcoin" qui: [Capitolo 4.5: InviareMonete con Transazione Grezza Automatizzata](04_5_Inviare_Monete_con_Transazione_Grezza_Automatizzata.md).
diff --git a/it/04_4_Inviare_Monete_con_Transazione_Grezza.md b/it/04_4_Inviare_Monete_con_Transazione_Grezza.md
new file mode 100644
index 000000000..8dddad99e
--- /dev/null
+++ b/it/04_4_Inviare_Monete_con_Transazione_Grezza.md
@@ -0,0 +1,197 @@
+
+# 4.4: Inviare monete con transazioni grezze
+
+Come notato all'inizio di questo capitolo, l'interfaccia `bitcoin-cli` offre tre modi principali per inviare monete. [Capitolo 4.1](04_1_Inviare_Monete_Modo_Semplice.md) ha parlato dell'invio nel primo modo, utilizzando il comando `sendtoaddress`. Da allora, abbiamo sviluppato dettagli su come inviare monete in un secondo modo, con transazioni grezze. [Capitolo 4.2](04_2_Creare_una_Transazione_Grezza.md) ha insegnato come creare una transazione non elaborata, nel [Interludio](04_2_Intermezzo_Usare_JQ.md) è stato spiegato JQ e nel[Capitolo 4.3](04_3_Creare_una_Transazione_Grezza_con_Alias.md) è stato spiegato come usare alias.
+
+Ora possiamo metterli insieme e inviare effettivamente fondi utilizzando una transazione grezza.
+
+## Crea un indirizzo di resto
+
+La nostra transazione grezza di esempio nella sezione §4.2 era molto semplicistica: abbiamo inviato l'intero UTXO a un nuovo indirizzo. Più frequentemente, vorrai inviare a qualcuno una somma di denaro che non corrisponde a un UTXO. Ma ricorderai che il denaro in eccesso da un UTXO che non viene inviato al destinatario diventa semplicemente una commissione di transazione. Quindi, come puoi inviare a qualcuno solo una parte di un UTXO, mantenendo il _resto_ per te?
+
+La soluzione è _inviare_ il resto dei fondi a un secondo indirizzo, un indirizzo di resto che hai creato nel tuo portafoglio appositamente per riceverli:
+
+```
+$ changeaddress=$(bitcoin-cli getrawchangeaddress legacy)
+$ echo $changeaddress
+mk9ry5VVy8mrA8SygxSQQUDNSSXyGFot6h
+```
+Tieni presente che utilizza una nuova funzione: `getrawchangeaddress`. È in gran parte uguale a `getnewaddress` ma è ottimizzato per l'uso come cambio di indirizzo in una transazione grezza, quindi non fa cose come inserire voci nella tua rubrica. Abbiamo nuovamente selezionato l'indirizzo "legacy", invece di utilizzare l'indirizzo predefinito "bech32", semplicemente per coerenza. Questa è una situazione in cui sarebbe stato del tutto sicuro generare un indirizzo Bech32 predefinito, semplicemente utilizzando `bitcoin-cli getrawchangeaddress`, perché verrebbe inviato e ricevuto da te sul tuo nodo Bitcoin Core che lo supporta pienamente. Ma sposteremo anche questo su Bech32 nel [Capitolo 4.6](04_6_Creare_una_Transazione_Segwit.md).
+
+Ora hai un indirizzo aggiuntivo nel tuo portafoglio, così puoi ricevere il resto da un UTXO! Per utilizzarlo, dovrai creare una transazione grezza con due output.
+
+## Scegli un numero sufficiente di UTXO
+
+La nostra transazione grezza di esempio era semplice anche per un altro aspetto: presupponeva che ci fosse abbastanza denaro in un singolo UTXO per coprire la transazione. Spesso sarà così, ma a volte vorrai creare transazioni che spendono più soldi di quelli che hai in un singolo UTXO. Per fare ciò, è necessario creare una transazione grezza con due (o più) input.
+
+## Scrivi una vera transazione grezza
+
+Per riassumere: la creazione di una vera transazione grezza per inviare monete a volte richiederà più input e quasi sempre richiederà più output, uno dei quali è un indirizzo di resto. Creeremo questo tipo di transazione più realistica qui, in un nuovo esempio che mostra un esempio di vita reale di invio di fondi tramite la seconda metodologia di Bitcoin, le transazioni grezze.
+
+Utilizzeremo il UTXO numero 0 e il numero 2:
+
+```
+$ bitcoin-cli listunspent
+[
+[
+ {
+ "txid": "0619fecf6b2668fab1308fbd7b291ac210932602a6ac6b8cc11c7ae22c43701e",
+ "vout": 1,
+ "address": "mwJL7cRiW2bUnY81r1thSu3D4jtMmwyU6d",
+ "label": "",
+ "scriptPubKey": "76a914ad1ed1c5971b2308f89c1362d4705d020a40e8e788ac",
+ "amount": 0.00899999,
+ "confirmations": 1,
+ "spendable": true,
+ "solvable": true,
+ "desc": "pkh([d6043800/0'/0'/4']03eae28c93035f95a620dd96e1822f2a96e0357263fa1f87606a5254d5b9e6698f)#wwnfx2sp",
+ "safe": true
+ },
+ {
+ "txid": "91261eafae15ea53dedbea7c1db748c52bbc04a85859ffd0d839bda1421fda4c",
+ "vout": 0,
+ "address": "mjehC2KHzXcBDcwTd4LhZ2GzyzrZ3Kd3ff",
+ "label": "",
+ "scriptPubKey": "76a9142d573900aa357a38afd741fbf24b075d263ea6e088ac",
+ "amount": 0.00022000,
+ "confirmations": 15,
+ "spendable": true,
+ "solvable": true,
+ "desc": "pkh([d6043800/0'/0'/3']0278608b54b8fb0d8379d3823d31f03a7c6ab0adffb07dd3811819fdfc34f8c132)#nhjc3f8y",
+ "safe": true
+ },
+ {
+ "txid": "0df23a9dba49e822bbc558f15516f33021a64a5c2e48962cec541e0bcc79854d",
+ "vout": 0,
+ "address": "mwJL7cRiW2bUnY81r1thSu3D4jtMmwyU6d",
+ "label": "",
+ "scriptPubKey": "76a914ad1ed1c5971b2308f89c1362d4705d020a40e8e788ac",
+ "amount": 0.00100000,
+ "confirmations": 1,
+ "spendable": true,
+ "solvable": true,
+ "desc": "pkh([d6043800/0'/0'/4']03eae28c93035f95a620dd96e1822f2a96e0357263fa1f87606a5254d5b9e6698f)#wwnfx2sp",
+ "safe": true
+ }
+]
+
+```
+Nel nostro esempio, invieremo .009 BTC, che è (appena) più grande di uno dei nostri UTXO. Ciò richiede la loro combinazione, quindi l'utilizzo del nostro indirizzo di resto per recuperare i fondi non spesi.
+
+### Imposta le tue variabili
+
+Abbiamo già le variabili `$changeaddress` e `$recipient` degli esempi precedenti:
+
+```
+$ echo $changeaddress
+mk9ry5VVy8mrA8SygxSQQUDNSSXyGFot6h
+$ echo $recipient
+n2eMqTT929pb1RDNuqEnxdaLau1rxy3efi
+```
+Dobbiamo anche registrare txid e vout per ciascuno dei nostri due UTXO. Dopo aver identificato gli UTXO che vogliamo spendere, possiamo utilizzare le nostre tecniche JQ per assicurarci che l'accesso ad essi sia privo di errori:
+```
+$ utxo_txid_1=$(bitcoin-cli listunspent | jq -r '.[0] | .txid')
+$ utxo_vout_1=$(bitcoin-cli listunspent | jq -r '.[0] | .vout')
+$ utxo_txid_2=$(bitcoin-cli listunspent | jq -r '.[2] | .txid')
+$ utxo_vout_2=$(bitcoin-cli listunspent | jq -r '.[2] | .vout')
+```
+
+### Scrivere la transazione
+
+Scrivere la transazione grezza effettiva è sorprendentemente semplice. Tutto quello che devi fare è includere un oggetto JSON aggiuntivo, separato da virgole nell'array JSON di input e un'ulteriore coppia chiave-valore separata da virgole nell'oggetto JSON di output.
+
+Ecco l'esempio. Nota gli input multipli dopo l'argomento 'inputs' e gli output multipli dopo l'argomento 'outputs'.
+```
+$ rawtxhex2=$(bitcoin-cli -named createrawtransaction inputs='''[ { "txid": "'$utxo_txid_1'", "vout": '$utxo_vout_1' }, { "txid": "'$utxo_txid_2'", "vout": '$utxo_vout_2' } ]''' outputs='''{ "'$recipient'": 0.009, "'$changeaddress'": 0.0009 }''')
+```
+Siamo stati _molto_ attenti fare i nostri calcoli finanziari. Questi due UTXO contengono 0,00999999 BTC. Dopo aver inviato 0,009 BTC, ci rimarranno 0,00099999 BTC. Abbiamo scelto 0,00009999 BTC come commissione di transazione. Per accogliere tale commissione, impostiamo il resto su .0009 BTC. Se avessimo sbagliato i nostri calcoli e invece avessimo impostato la modifica su .00009 BTC, quei BTC aggiuntivi andrebbero dritti ai minatori! Se ci fossimo dimenticati di apportare il resto, tutto l'eccesso sarebbe scomparso. Quindi, ancora una volta, _fai attenzione_.
+
+Fortunatamente, possiamo ricontrollare con l'alias `btctxfee` di JQ Interlude:
+
+```
+$ ./txfee-calc.sh $rawtxhex2
+.00009999
+```
+
+### Finire la transazione
+
+Ora puoi firmare, sigillare e consegnare la tua transazione, che sarà tua (e del faucet):
+
+```
+$ signedtx2=$(bitcoin-cli -named signrawtransactionwithwallet hexstring=$rawtxhex2 | jq -r '.hex')
+$ bitcoin-cli -named sendrawtransaction hexstring=$signedtx2
+e7071092dee0b2ae584bf6c1ee3c22164304e3a17feea7a32c22db5603cd6a0d
+```
+
+### Aspettare
+
+Come al solito, i tuoi soldi continueranno a fluire per un po': il resto non sarà disponibile fino a quando la transazione non verrà effettivamente confermata e ti verrà dato un nuovo UTXO.
+
+Ma, in 10 minuti o meno (probabilmente), avrai indietro i tuoi soldi rimanenti e sara di nuovo completamente spendibile. Per ora stiamo ancora aspettando:
+
+```
+$ bitcoin-cli listunspent
+[
+ {
+ "txid": "91261eafae15ea53dedbea7c1db748c52bbc04a85859ffd0d839bda1421fda4c",
+ "vout": 0,
+ "address": "mjehC2KHzXcBDcwTd4LhZ2GzyzrZ3Kd3ff",
+ "label": "",
+ "scriptPubKey": "76a9142d573900aa357a38afd741fbf24b075d263ea6e088ac",
+ "amount": 0.00022000,
+ "confirmations": 15,
+ "spendable": true,
+ "solvable": true,
+ "desc": "pkh([d6043800/0'/0'/3']0278608b54b8fb0d8379d3823d31f03a7c6ab0adffb07dd3811819fdfc34f8c132)#nhjc3f8y",
+ "safe": true
+ }
+]
+```
+E il resto prima o poi arriverà:
+```
+[
+ {
+ "txid": "e7071092dee0b2ae584bf6c1ee3c22164304e3a17feea7a32c22db5603cd6a0d",
+ "vout": 1,
+ "address": "mk9ry5VVy8mrA8SygxSQQUDNSSXyGFot6h",
+ "scriptPubKey": "76a91432db726320e4ad170c9c1ee83cd4d8a243c3435988ac",
+ "amount": 0.00090000,
+ "confirmations": 1,
+ "spendable": true,
+ "solvable": true,
+ "desc": "pkh([d6043800/0'/1'/2']02881697d252d8bf181d08c58de1f02aec088cd2d468fc5fd888c6e39909f7fabf)#p6k7dptk",
+ "safe": true
+ },
+ {
+ "txid": "91261eafae15ea53dedbea7c1db748c52bbc04a85859ffd0d839bda1421fda4c",
+ "vout": 0,
+ "address": "mjehC2KHzXcBDcwTd4LhZ2GzyzrZ3Kd3ff",
+ "label": "",
+ "scriptPubKey": "76a9142d573900aa357a38afd741fbf24b075d263ea6e088ac",
+ "amount": 0.00022000,
+ "confirmations": 16,
+ "spendable": true,
+ "solvable": true,
+ "desc": "pkh([d6043800/0'/0'/3']0278608b54b8fb0d8379d3823d31f03a7c6ab0adffb07dd3811819fdfc34f8c132)#nhjc3f8y",
+ "safe": true
+ }
+]
+```
+
+Questo potrebbe anche essere un buon momento per controllare con un blockchain explorer, in modo da poter vedere in modo più intuitivo come sono disposti gli input, gli output e le commissioni di transazione:[e7071092dee0b2ae584bf6c1ee3c22164304e3a17feea7a32c22db5603cd6a0d](https://live.blockcypher.com/btc-testnet/tx/e7071092dee0b2ae584bf6c1ee3c22164304e3a17feea7a32c22db5603cd6a0d/).
+
+## Riepilogo: invio di monete con transazioni grezze
+
+Per inviare monete con transazioni grezze, è necessario creare una transazione grezza con uno o più input (per avere fondi sufficienti) e uno o più output (per recuperare il resto). Quindi, puoi seguire la normale procedura di utilizzo di `createrawtransaction` con argomenti con nome e JQ, come illustrato nelle sezioni precedenti.
+
+> :fire: ***Qual è il potere di inviare monete con transazioni grezze?***
+
+> _I vantaggi._ Ti dà il massimo controllo. Se il tuo obiettivo è scrivere uno script o un programma Bitcoin più intricato, probabilmente utilizzerai transazioni grezze in modo da sapere esattamente cosa sta succedendo. Questa è anche la situazione _più sicura_ per utilizzare transazioni grezze, perché puoi assicurarti a livello di programmazione di non commettere errori.
+
+> _Gli svantaggi._ È facile perdere soldi. Non ci sono avvisi, protezioni e stop programmati a meno che tu non li scriva. È anche noioso. La formattazione è odiosa, anche utilizzando l'interfaccia `bitcoin-cli` facile da usare, e devi fare molte ricerche e calcoli a mano.
+
+## Qual è il prossimo?
+
+Vedere un altro modo alternativo per inserire comandi con [Curl](04_4_Intermezzo_Usare_Curl.md).
+
+Oppure, preferisci saltare quella che è francamente una digressione, imparare un altro modo per "Inviare transazioni Bitcoin" con [Capitolo 4.5: Inviare Monete con Transazione Grezza Automatizzata](04_5_Inviare_Monete_con_Transazione_Grezza_Automatizzata.md).
diff --git a/it/04_5_Inviare_Monete_con_Transazione_Grezza_Automatizzata.md b/it/04_5_Inviare_Monete_con_Transazione_Grezza_Automatizzata.md
new file mode 100644
index 000000000..8ee0b461c
--- /dev/null
+++ b/it/04_5_Inviare_Monete_con_Transazione_Grezza_Automatizzata.md
@@ -0,0 +1,178 @@
+# 4.5: Inviare monete con transazioni grezze automatizzate
+
+Questo capitolo illustra tre modi per inviare fondi tramite l'interfaccia CLI di Bitcoin. [Capitolo 4.1](04_1_Inviare_Monete_Modo_Semplice.md) ha descritto come farlo con un semplice comando e [Capitolo 4.4](04_4_Inviare_Monete_con_Transazione_Grezza.md) ha spiegato in dettaglio come utilizzare una transazione grezza più pericolosa. Questa sezione finale risolve la differenza mostrando come rendere le transazioni grezze più semplici e sicure.
+
+## Lascia che Bitcoin calcoli per te
+
+La metodologia per le transazioni grezze automatizzate è semplice: crei una transazione grezza, ma usi il comando "fundrawtransaction" per chiedere a bitcoind di eseguire i calcoli per te.
+
+Per utilizzare questo comando, dovrai assicurarti che il tuo file ~/.bitcoin/bitcoin.conf contenga variabili razionali per il calcolo delle commissioni di transazione. Consulta [Capitolo 4.1: Inviare Monete Modo Semplice](04_1_Inviare_Monete_Modo_Semplice.md) per ulteriori informazioni a riguardo.
+
+Per numeri molto conservativi, abbiamo suggerito di aggiungere quanto segue a `bitcoin.conf`:
+```
+mintxfee=0.0001
+txconfirmtarget=6
+```
+Per far avanzare il tutorial (e più in generale per spostare velocemente il denaro) abbiamo suggerito quanto segue:
+```
+mintxfee=0.001
+txconfirmtarget=1
+```
+
+## Crea una transazione grezza semplice semplice
+
+Per utilizzare `fundrawtransaction` devi prima creare una transazione semplice che elenchi _no_ input e _no_ cambi di indirizzo. Elencherai semplicemente il destinatario e l'importo che desideri inviargli, in questo caso `$recipient` e `0.00020000` BTC.
+```
+$ recipient=n2eMqTT929pb1RDNuqEnxdaLau1rxy3efi
+$ unfinishedtx=$(bitcoin-cli -named createrawtransaction inputs='''[]''' outputs='''{ "'$recipient'": 0.0002 }''')
+```
+
+## Finanzia la tua transazione semplice
+
+Quindi dici a 'bitcoin-cli' di finanziare quella transazione semplice:
+
+```
+$ bitcoin-cli -named fundrawtransaction hexstring=$unfinishedtx
+{
+ "hex": "02000000012db87641c6a21e5a68b20c226428544978e6ac44964d5d8060d7388000c584eb0100000000feffffff02204e0000000000001976a914e7c1345fc8f87c68170b3aa798a956c2fe6a9eff88ac781e0000000000001600140cc9cdcf45d4ea17f5227a7ead52367aad10a88400000000",
+ "fee": 0.00022200,
+ "changepos": 1
+}
+```
+Ciò fornisce molte informazioni utili, ma una volta che sei sicuro di come funziona, ti consigliamo di utilizzare JQ per salvare il tuo esadecimale in una variabile, come al solito:
+```
+$ rawtxhex3=$(bitcoin-cli -named fundrawtransaction hexstring=$unfinishedtx | jq -r '.hex')
+```
+## Verifica la tua transazione finanziata
+
+Sembra una magia, quindi le prime volte che usi `fundrawtransaction`, probabilmente vorrai verificarlo.
+
+L'esecuzione di `decoderawtransaction` mostrerà che la transazione grezza è ora strutturata correttamente, utilizzando uno o più dei tuoi UTXO e inviando i fondi in eccesso a un indirizzo di resto:
+
+```
+$ bitcoin-cli -named decoderawtransaction hexstring=$rawtxhex3
+{
+ "txid": "b3b4c2057dbfbef6690e975ede92fde805ddea13c730f58401939a52c9ac1b99",
+ "hash": "b3b4c2057dbfbef6690e975ede92fde805ddea13c730f58401939a52c9ac1b99",
+ "version": 2,
+ "size": 116,
+ "vsize": 116,
+ "weight": 464,
+ "locktime": 0,
+ "vin": [
+ {
+ "txid": "eb84c5008038d760805d4d9644ace67849542864220cb2685a1ea2c64176b82d",
+ "vout": 1,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967294
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.00020000,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "OP_DUP OP_HASH160 e7c1345fc8f87c68170b3aa798a956c2fe6a9eff OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a914e7c1345fc8f87c68170b3aa798a956c2fe6a9eff88ac",
+ "reqSigs": 1,
+ "type": "pubkeyhash",
+ "addresses": [
+ "n2eMqTT929pb1RDNuqEnxdaLau1rxy3efi"
+ ]
+ }
+ },
+ {
+ "value": 0.00007800,
+ "n": 1,
+ "scriptPubKey": {
+ "asm": "0 a782f4c6e1e75a5b24f3d675d6f11b5ebf3b2142",
+ "hex": "0014a782f4c6e1e75a5b24f3d675d6f11b5ebf3b2142",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1q57p0f3hpuad9kf8n6e6adugmt6lnkg2zzr592r"
+ ]
+ }
+ }
+ ]
+}
+```
+La cosa interessante qui è l'indirizzo di resto, che è il secondo "vout". Nota che è un indirizzo "tb1", il che significa che è Bech32; quando abbiamo dato a Bitcoin Core la totale capacità di gestire il nostro resto, lo ha fatto utilizzando il suo tipo di indirizzo predefinito, Bech32, e ha funzionato bene. Ecco perché il nostro indirizzo di resto non è un grosso problema, come vedrai nel [Capitolo 4.6](04_6_Creare_una_Transazione_Segwit.md) , ma ci sono alcuni trucchi per un utilizzo più ampio, di cui parleremo lì.
+
+Sebbene abbiamo visto la commissione nell'output di `fundrawtransaction`, non è visibile qui. Tuttavia, puoi verificarlo con lo script JQ `txfee-calc.sh` creato in [JQ Interludio](04_2_Intermezzo_Usare_JQ.md):
+```
+$ ~/txfee-calc.sh $rawtxhex3
+.000222
+```
+Infine, puoi utilizzare `getaddressinfo` per vedere che l'indirizzo di modifica generato appartiene davvero a te:
+
+```
+$ bitcoin-cli -named getaddressinfo address=tb1q57p0f3hpuad9kf8n6e6adugmt6lnkg2zzr592r
+{
+ "address": "tb1q57p0f3hpuad9kf8n6e6adugmt6lnkg2zzr592r",
+ "scriptPubKey": "0014a782f4c6e1e75a5b24f3d675d6f11b5ebf3b2142",
+ "ismine": true,
+ "solvable": true,
+ "desc": "wpkh([d6043800/0'/1'/10']038a2702938e548eaec28feb92c7e4722042cfd1ea16bec9fc274640dc5be05ec5)#zpv26nar",
+ "iswatchonly": false,
+ "isscript": false,
+ "iswitness": true,
+ "witness_version": 0,
+ "witness_program": "a782f4c6e1e75a5b24f3d675d6f11b5ebf3b2142",
+ "pubkey": "038a2702938e548eaec28feb92c7e4722042cfd1ea16bec9fc274640dc5be05ec5",
+ "ischange": true,
+ "timestamp": 1592335137,
+ "hdkeypath": "m/0'/1'/10'",
+ "hdseedid": "fdea8e2630f00d29a9d6ff2af7bf5b358d061078",
+ "hdmasterfingerprint": "d6043800",
+ "labels": [
+ ]
+}
+```
+Nota i risultati di `ismine`.
+
+## Invia la tua transazione finanziata
+
+A questo punto potrai firmare e inviare la transazione come di consueto.
+
+```
+$ signedtx3=$(bitcoin-cli -named signrawtransactionwithwallet hexstring=$rawtxhex3 | jq -r '.hex')
+$ bitcoin-cli -named sendrawtransaction hexstring=$signedtx3
+8b9dd66c999966462a3d88d6ac9405d09e2aa409c0aa830bdd08dbcbd34a36fa
+```
+In pochi minuti avrai indietro il resto:
+```
+$ bitcoin-cli listunspent
+[
+ {
+ "txid": "8b9dd66c999966462a3d88d6ac9405d09e2aa409c0aa830bdd08dbcbd34a36fa",
+ "vout": 1,
+ "address": "tb1q57p0f3hpuad9kf8n6e6adugmt6lnkg2zzr592r",
+ "scriptPubKey": "0014a782f4c6e1e75a5b24f3d675d6f11b5ebf3b2142",
+ "amount": 0.00007800,
+ "confirmations": 1,
+ "spendable": true,
+ "solvable": true,
+ "desc": "wpkh([d6043800/0'/1'/10']038a2702938e548eaec28feb92c7e4722042cfd1ea16bec9fc274640dc5be05ec5)#zpv26nar",
+ "safe": true
+ }
+]
+```
+
+## Riepilogo: invio di monete con transazioni grezze automatizzate
+
+Se devi inviare fondi con transazioni grezze, allora "fundrawtransaction" ti offre una bella alternativa in cui commissioni, input e output vengono calcolati per te, in modo da non perdere accidentalmente un sacco di soldi.
+
+> :fire: ***Qual è il potere di inviare monete con transazioni grezze automatizzate?***
+
+> _I vantaggi._ Fornisce un buon equilibrio. Se invii fondi manualmente e "sendtoaddress" non offre un controllo sufficiente per qualsiasi motivo, puoi ottenere alcuni dei vantaggi delle transazioni grezze senza i pericoli. Questa metodologia dovrebbe essere utilizzata quando possibile se si inviano transazioni grezze manualmente.
+
+> _Gli svantaggi._ È un miscuglio. Sebbene esistano alcune opzioni aggiuntive per il comando "fundrawtransaction" che non sono state menzionate qui, il tuo controllo è comunque limitato. Probabilmente non vorrai mai utilizzare questo metodo se stessi scrivendo un programma in cui l'obiettivo è sapere esattamente cosa sta succedendo.
+
+## Qual è il prossimo argomento?
+
+Completa il tuo "Invio di transazioni Bitcoin" con [Capitolo 4.6: Creare una Transazione Segwit](04_6_Creare_una_Transazione_Segwit.md).
+
diff --git a/it/04_6_Creare_una_Transazione_Segwit.md b/it/04_6_Creare_una_Transazione_Segwit.md
new file mode 100644
index 000000000..311fa0faa
--- /dev/null
+++ b/it/04_6_Creare_una_Transazione_Segwit.md
@@ -0,0 +1,302 @@
+# 4.6: Creazione di una transazione SegWit
+
+> :information_source: **NOTA:** Questa sezione è stata aggiunta di recente al corso ed è una bozza iniziale che potrebbe essere ancora in attesa di revisione. Lettore avvertito.
+
+C'era una volta, i cieli dei Bitcoin tremavano a causa delle guerre dei blocchi. Le tariffe erano alle stelle e gli utenti erano preoccupati per il ridimensionamento. Gli sviluppatori di Bitcoin Core erano riluttanti ad aumentare semplicemente la dimensione dei blocchi, ma sono giunti a un compromesso: SegWit, the Segregated Witness. Testimone Segregato è un modo elegante per dire "Firma Separata". Crea nuovi tipi di transazioni che rimuovono le firme alla fine della transazione. Combinando questo con dimensioni di blocchi aumentate che sono visibili solo ai nodi aggiornati, SegWit ha risolto i problemi di ridimensionamento per Bitcoin in quel momento (e ha anche risolto un brutto bug di malleabilità che in precedenza aveva reso impraticabile un ridimensionamento ancora migliore con protocolli di livello 2 come Lightning).
+
+L'inghippo? SegWit utilizza indirizzi diversi, alcuni dei quali sono compatibili con i nodi più vecchi e altri no.
+
+> :warning: **AVVERTIMENTO VERSIONE:** SegWit è stato introdotto in BitCoin 0.16.0 con quello che all'epoca veniva descritto come "supporto completo". Detto questo, all'epoca c'erano alcuni difetti nella sua integrazione con "bitcoin-cli" che impedivano il corretto funzionamento della firma sui nuovi indirizzi P2SH-SegWit. L'indirizzo Bech32 non compatibile con le versioni precedenti è stato introdotto anche in Bitcoin 0.16.0 ed è stato reso il tipo di indirizzo predefinito in Bitcoin 0.19.0. Tutte queste funzionalità ora dovrebbero funzionare completamente per quanto riguarda le funzioni `bitcoin-cli` (e quindi questo tutorial).
+
+> Il problema sta nell'interagire con il mondo esterno. Tutti dovrebbero essere in grado di inviare a un indirizzo P2SH-SegWit perché è stato appositamente creato per supportare la compatibilità con le versioni precedenti racchiudendo la funzionalità SegWit in uno script Bitcoin. Lo stesso non vale per gli indirizzi Bech32: se qualcuno ti dice che non è in grado di inviare al tuo indirizzo Bech32, ecco perché, e devi generare un indirizzo `legacy` o P2SH-SegWit per il loro utilizzo. (Molti siti, in particolare gli exchange, non possono nemmeno generare o ricevere indirizzi SegWit, in particolare indirizzi Bech32, ma questo è un problema completamente diverso e non influisce sul tuo utilizzo.)
+
+## Comprendere una transazione SegWit
+
+Nelle transazioni classiche, le informazioni sulla firma (testimone) venivano archiviate verso la metà della transazione, mentre nelle transazioni SegWit si trovano in fondo. Ciò va di pari passo con l'aumento delle dimensioni dei blocchi introdotti nell'aggiornamento SegWit. La dimensione del blocco è stata aumentata da 1M a un importo variabile in base al numero di transazioni SegWit presenti in un blocco, partendo da 1M (nessuna transazione SegWit) e arrivando fino a 4M (tutte le transazioni SegWit). Questa dimensione variabile è stata creata per accogliere i nodi classici, in modo che tutto rimanga compatibile con le versioni precedenti. Se un nodo classico vede una transazione SegWit, elimina le informazioni testimone (risultando in un blocco di dimensioni più piccole, sotto il vecchio limite di 1 milione), mentre se un nuovo nodo vede una transazione SegWit, mantiene le informazioni testimone (risultando in una transazione SegWit più grande blocco, fino al nuovo limite di 4M).
+
+Ecco il cosa e come delle transazioni SegWit. Non che tu abbia bisogno di sapere tutto cio per usarle. La maggior parte delle transazioni sulla rete Bitcoin ora sono SegWit. Sono ciò che utilizzerai nativamente per inviare e ricevere denaro. I dettagli a questo punto non sono più rilevanti dei particolari su come funziona la maggior parte di Bitcoin.
+
+
+## Crea un indirizzo SegWit
+
+Puoi creare un indirizzo SegWit allo stesso modo di qualsiasi altro indirizzo, con i comandi `getnewaddress` e `getrawchangeaddress`.
+
+Se devi creare un indirizzo per qualcuno che non può inviare ai nuovi indirizzi Bech32, utilizza il tipo di indirizzo `p2sh-segwit`:
+
+```
+$ bitcoin-cli -named getnewaddress address_type=p2sh-segwit
+2N5h2r4karVqN7uFtpcn8xnA3t5cbpszgyN
+```
+Se vedi un indirizzo con il prefisso "2" significa che hai fatto bene.
+
+> :link: **TESTNET vs MAINNET:** "3" per Mainnet.
+
+Tuttavia, se la persona con cui stai interagendo ha un cliente completo e aggiornato, sarà in grado di inviare a un indirizzo Bech32, che creerai utilizzando i comandi nel modo predefinito:
+
+```
+$ bitcoin-cli getnewaddress
+tb1q5gnwrh7ss5mmqt0qfan85jdagmumnatcscwpk6
+```
+Come abbiamo già visto, gli indirizzi di modifica generati da `bitcoin-cli` interagiscono bene con gli indirizzi Bech32, quindi non ha senso usare il flag `legacy` neanche lì:
+```
+$ bitcoin-cli getrawchangeaddress
+tb1q05wx5tyadm8qe83exdqdyqvqqzjt3m38vfu8ff
+```
+Qui, nota che il prefisso univoco "tb1" denotava Bech32.
+
+> :link: **TESTNET vs MAINNET:** "bc1" per mainnet.
+
+A `bitcoin-cli` non importa quale tipo di indirizzo stai utilizzando. Puoi eseguire un comando come `listaddressgroupings` e mescolerà liberamente indirizzi di diversi tipi:
+```
+$ bitcoin-cli listaddressgroupings
+[
+ [
+ [
+ "mfsiRhxbQxcD7HLS4PiAim99oeGyb9QY7m",
+ 0.01000000,
+ ""
+ ]
+ ],
+ [
+ [
+ "mi25UrzHnvn3bpEfFCNqJhPWJn5b77a5NE",
+ 0.00000000,
+ ""
+ ],
+ [
+ "tb1q6dak4e9fz77vsulk89t5z92l2e0zm37yvre4gt",
+ 0.00000000
+ ]
+ ],
+ [
+ [
+ "mjehC2KHzXcBDcwTd4LhZ2GzyzrZ3Kd3ff",
+ 0.00022000,
+ ""
+ ]
+ ],
+ [
+ [
+ "mk9ry5VVy8mrA8SygxSQQUDNSSXyGFot6h",
+ 0.00000000
+ ],
+ [
+ "mqjrdY5raxKzXQf5t2VvVvzhvFAgersu9B",
+ 0.00000000
+ ],
+ [
+ "mwJL7cRiW2bUnY81r1thSu3D4jtMmwyU6d",
+ 0.00000000,
+ ""
+ ],
+ [
+ "tb1q57p0f3hpuad9kf8n6e6adugmt6lnkg2zzr592r",
+ 0.00007800
+ ]
+ ],
+ [
+ [
+ "mpVLL7iqPr4d7BJkEG54mcdm7WmrAhaW6q",
+ 0.01000000,
+ ""
+ ]
+ ],
+ [
+ [
+ "tb1q5gnwrh7ss5mmqt0qfan85jdagmumnatcscwpk6",
+ 0.01000000,
+ ""
+ ]
+ ]
+]
+```
+
+## Invia una transazione SegWit nel modo più semplice
+
+Allora come si invia una transazione Segwit? Esattamente come qualsiasi altra transazione. Non importa se l'UTXO è SegWit, l'indirizzo è SegWit o una combinazione di questi. Puoi aspettarti che `bitcoin-cli` faccia la cosa giusta. Anche se puoi notare le differenze tramite gli indirizzi, non sono importanti per l'interazione con le cose a livello di "bitcoin-cli" o RPC. (E questo è uno dei vantaggi dell'utilizzo della riga di comando e dell'interfaccia RPC, come suggerito in questo tutorial: gli esperti hanno già svolto il duro lavoro per te, comprese cose come come inviare sia agli indirizzi legacy che a quelli Bech32. Utilizza tale funzionalità a proprio vantaggio.)
+
+Ecco un esempio di invio a un indirizzo SegWit, nel modo più semplice:
+
+```
+$ bitcoin-cli sendtoaddress tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx 0.005
+854a833b667049ac811b4cf1cad40fa7f8dce8b0f4c1018a58b84559b6e05f42
+```
+Se guardi la tua transazione, puoi vedere l'uso dell'indirizzo Bech32:
+```
+$ bitcoin-cli -named gettransaction txid="854a833b667049ac811b4cf1cad40fa7f8dce8b0f4c1018a58b84559b6e05f42" verbose=true
+{
+ "amount": -0.00500000,
+ "fee": -0.00036600,
+ "confirmations": 0,
+ "trusted": true,
+ "txid": "854a833b667049ac811b4cf1cad40fa7f8dce8b0f4c1018a58b84559b6e05f42",
+ "walletconflicts": [
+ ],
+ "time": 1592948795,
+ "timereceived": 1592948795,
+ "bip125-replaceable": "no",
+ "details": [
+ {
+ "address": "tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx",
+ "category": "send",
+ "amount": -0.00500000,
+ "vout": 1,
+ "fee": -0.00036600,
+ "abandoned": false
+ }
+ ],
+ "hex": "0200000002114d5a4c3b847bc796b2dc166ca7120607b874aa6904d4a43dd5f9e0ea79d4ba010000006a47304402200a3cc08b9778e7b616340d4cf7841180321d2fa019e43f25e7f710d9a628b55c02200541fc200a07f2eb073ad8554357777d5f1364c5a96afe5e77c6185d66a40fa7012103ee18c598bafc5fbea72d345329803a40ebfcf34014d0e96aac4f504d54e7042dfeffffffa71321e81ef039af490251379143f7247ad91613c26c8f3e3404184218361733000000006a47304402200dd80206b57beb5fa38a3c3578f4b0e40d56d4079116fd2a6fe28e5b8ece72310220298a8c3a1193ea805b27608ff67a2d8b01e347e33a4222edfba499bb1b64a31601210339c001b00dd607eeafd4c117cfcf86be8efbb0ca0a33700cffc0ae0c6ee69d7efeffffff026854160000000000160014d591091b8074a2375ed9985a9c4b18efecfd416520a1070000000000160014751e76e8199196d454941c45d1b3a323f1433bd6c60e1b00",
+ "decoded": {
+ "txid": "854a833b667049ac811b4cf1cad40fa7f8dce8b0f4c1018a58b84559b6e05f42",
+ "hash": "854a833b667049ac811b4cf1cad40fa7f8dce8b0f4c1018a58b84559b6e05f42",
+ "version": 2,
+ "size": 366,
+ "vsize": 366,
+ "weight": 1464,
+ "locktime": 1773254,
+ "vin": [
+ {
+ "txid": "bad479eae0f9d53da4d40469aa74b8070612a76c16dcb296c77b843b4c5a4d11",
+ "vout": 1,
+ "scriptSig": {
+ "asm": "304402200a3cc08b9778e7b616340d4cf7841180321d2fa019e43f25e7f710d9a628b55c02200541fc200a07f2eb073ad8554357777d5f1364c5a96afe5e77c6185d66a40fa7[ALL] 03ee18c598bafc5fbea72d345329803a40ebfcf34014d0e96aac4f504d54e7042d",
+ "hex": "47304402200a3cc08b9778e7b616340d4cf7841180321d2fa019e43f25e7f710d9a628b55c02200541fc200a07f2eb073ad8554357777d5f1364c5a96afe5e77c6185d66a40fa7012103ee18c598bafc5fbea72d345329803a40ebfcf34014d0e96aac4f504d54e7042d"
+ },
+ "sequence": 4294967294
+ },
+ {
+ "txid": "33173618421804343e8f6cc21316d97a24f7439137510249af39f01ee82113a7",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "304402200dd80206b57beb5fa38a3c3578f4b0e40d56d4079116fd2a6fe28e5b8ece72310220298a8c3a1193ea805b27608ff67a2d8b01e347e33a4222edfba499bb1b64a316[ALL] 0339c001b00dd607eeafd4c117cfcf86be8efbb0ca0a33700cffc0ae0c6ee69d7e",
+ "hex": "47304402200dd80206b57beb5fa38a3c3578f4b0e40d56d4079116fd2a6fe28e5b8ece72310220298a8c3a1193ea805b27608ff67a2d8b01e347e33a4222edfba499bb1b64a31601210339c001b00dd607eeafd4c117cfcf86be8efbb0ca0a33700cffc0ae0c6ee69d7e"
+ },
+ "sequence": 4294967294
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.01463400,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "0 d591091b8074a2375ed9985a9c4b18efecfd4165",
+ "hex": "0014d591091b8074a2375ed9985a9c4b18efecfd4165",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1q6kgsjxuqwj3rwhkenpdfcjccalk06st9z0k0kh"
+ ]
+ }
+ },
+ {
+ "value": 0.00500000,
+ "n": 1,
+ "scriptPubKey": {
+ "asm": "0 751e76e8199196d454941c45d1b3a323f1433bd6",
+ "hex": "0014751e76e8199196d454941c45d1b3a323f1433bd6",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx"
+ ]
+ }
+ }
+ ]
+ }
+}
+```
+Infatti, entrambi i `vouts` utilizzano indirizzi Bech32: Il destinatario e l'indirizzo di resto generato automaticamente.
+
+Ma quando torniamo indietro al nostro "vin", scopriamo che proviene da un indirizzo `legacy`. Ma perche non importa:
+```
+$ bitcoin-cli -named gettransaction txid="33173618421804343e8f6cc21316d97a24f7439137510249af39f01ee82113a7"
+{
+ "amount": 0.01000000,
+ "confirmations": 43,
+ "blockhash": "00000000000000e2365d2f814d1774b063d9a04356f482010cdfdd537b1a24bb",
+ "blockheight": 1773212,
+ "blockindex": 103,
+ "blocktime": 1592937103,
+ "txid": "33173618421804343e8f6cc21316d97a24f7439137510249af39f01ee82113a7",
+ "walletconflicts": [
+ ],
+ "time": 1592936845,
+ "timereceived": 1592936845,
+ "bip125-replaceable": "no",
+ "details": [
+ {
+ "address": "mpVLL7iqPr4d7BJkEG54mcdm7WmrAhaW6q",
+ "category": "receive",
+ "amount": 0.01000000,
+ "label": "",
+ "vout": 0
+ }
+ ],
+ "hex": "020000000001016a66efa334f06e2c54963e48d049a35d7a1bda44633b7464621cae302f35174a0100000017160014f17b16c6404e85165af6f123173e0705ba31ec25feffffff0240420f00000000001976a914626ab1ca41d98f597d18d1ff8151e31a40d4967288acd2125d000000000017a914d5e76abfe5362704ff6bbb000db9cdfa43cd2881870247304402203b3ba83f51c1895b5f639e9bfc40124715e2495ef2c79d4e49c0f8f70fbf2feb02203d50710abe3cf37df4d2a73680dadf3cecbe4f2b5d0b276dbe7711d0c2fa971a012102e64f83ee1c6548bcf44cb965ffdb803f30224459bd2e57a5df97cb41ba476b119b0e1b00"
+}
+```
+
+## Invia una transazione SegWit nel modo più difficile
+
+Allo stesso modo puoi finanziare una transazione con un indirizzo Bech32 senza alcuna differenza rispetto alle tecniche che hai imparato finora. Ecco come farlo esattamente con una transazione grezza completa:
+
+```
+$ changeaddress=$(bitcoin-cli getrawchangeaddress)
+$ echo $changeaddress
+tb1q4xje3mx9xn7f8khv7p69ekfn0q72kfs8x3ay4j
+$ bitcoin-cli listunspent
+[
+...
+ {
+ "txid": "003bfdca5578c0045a76768281f05d5e6f57774be399a76f387e2a0e99e4e452",
+ "vout": 0,
+ "address": "tb1q5gnwrh7ss5mmqt0qfan85jdagmumnatcscwpk6",
+ "label": "",
+ "scriptPubKey": "0014a226e1dfd08537b02de04f667a49bd46f9b9f578",
+ "amount": 0.01000000,
+ "confirmations": 5,
+ "spendable": true,
+ "solvable": true,
+ "desc": "wpkh([d6043800/0'/0'/5']0327dbe2d58d9ed2dbeca28cd26e18f48aa94c127fa6fb4b60e4188f6360317640)#hd66hknp",
+ "safe": true
+ }
+]
+$ recipient=tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx
+$ utxo_txid=$(bitcoin-cli listunspent | jq -r '.[2] | .txid')
+$ utxo_vout=$(bitcoin-cli listunspent | jq -r '.[2] | .vout')
+$ echo $utxo_txid $utxo_vout
+003bfdca5578c0045a76768281f05d5e6f57774be399a76f387e2a0e99e4e452 0
+$ rawtxhex=$(bitcoin-cli -named createrawtransaction inputs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout' } ]''' outputs='''{ "'$recipient'": 0.002, "'$changeaddress'": 0.007 }''')
+$ signedtx=$(bitcoin-cli -named signrawtransactionwithwallet hexstring=$rawtxhex | jq -r '.hex')
+$ bitcoin-cli -named sendrawtransaction hexstring=$signedtx
+e02568b706b21bcb56fcf9c4bb7ba63fdbdec1cf2866168c4f50bc0ad693f26c
+```
+Funziona tutto esattamente come gli altri tipi di transazioni!
+
+### Riconoscere il nuovo descrittore
+
+Se guardi il campo `desc`, noterai che l'indirizzo SegWit ha un descrittore di stile diverso da quelli incontrati in [Capitolo 3.5: Comprendere il Descriptor](03_5_Comprendere_il_Descriptor.md).
+
+Il descrittore legacy descritto nell [Capitolo 3.5] assomigliava a questo:
+
+`pkh([d6043800/0'/0'/18']03efdee34c0009fd175f3b20b5e5a5517fd5d16746f2e635b44617adafeaebc388)#4ahsl9pk`.
+
+Il nostro nuovo descrittore SegWit invece si presenta così:
+
+`wpkh([d6043800/0'/0'/5']0327dbe2d58d9ed2dbeca28cd26e18f48aa94c127fa6fb4b60e4188f6360317640)#hd66hknp"`.
+
+La cosa importante da notare è che la funzione è cambiata. In precedenza era `pkh`, che è un indirizzo a P2PKH hashed public-key standard. L'indirizzo SegWit è invece `wpkh`, il che significa che è un indirizzo SegWit nativo P2WPKH. Ciò sottolinea il :fuoco: ***potere dei descrittori***. Descrivono come creare un indirizzo da una chiave o altre informazioni, con le funzioni che definiscono in modo inequivocabile come creare l'indirizzo in base al suo tipo.
+
+## Riepilogo: creare una transazione SegWit
+
+Non c'è davvero alcuna complessità nella creazione di transazioni SegWit. Internamente sono strutturate in modo diverso rispetto alle transazioni legacy, ma dalla riga di comando non c'è differenza: basta utilizzare un indirizzo con un prefisso diverso. L'unica cosa a cui prestare attenzione è che alcune persone potrebbero non essere in grado di inviare a un indirizzo Bech32 se utilizzano software obsoleto.
+
+> :fire: ***Qual è il potere di inviare monete con SegWit?***
+
+> _I vantaggi._ Le transazioni SegWit sono più piccole e quindi saranno più economiche da inviare rispetto alle transazioni tradizionali a causa delle commissioni inferiori. Bech32 raddoppia questo vantaggio e crea anche indirizzi che sono più difficili da sbagliare durante la trascrizione, e questo è piuttosto importante, dato che l'errore dell'utente è uno dei modi più probabili per perdere i tuoi bitcoin.
+
+> _Gli svantaggi._ Gli indirizzi SegWit potrebbero non essere supportati dal software Bitcoin obsoleto. In particolare, le persone potrebbero non essere in grado di inviare sats al tuo indirizzo Bech32.
+
+## Qual è il prossimo tema?
+
+Prosegui verso "bitcoin-cli" con il [Capitolo 5: Controllare Transazioni Bitcoin](05_0_Controllare_Transazioni_Bitcoin.md).
diff --git a/it/05_0_Controllare_Transazioni_Bitcoin.md b/it/05_0_Controllare_Transazioni_Bitcoin.md
new file mode 100644
index 000000000..593de6360
--- /dev/null
+++ b/it/05_0_Controllare_Transazioni_Bitcoin.md
@@ -0,0 +1,23 @@
+# Capitolo cinque: Controllare le transazioni Bitcoin
+
+L'invio di una transazione non è sempre la fine della storia. Utilizzando i protocolli RBF (replace-by-fee) e CPFP (child-pays-for-parent), uno sviluppatore può continuare a controllare la transazione dopo che è stata inviata, per migliorare l'efficienza o recuperare transazioni bloccate. Questi metodi inizieranno a mettere in luce il vero potere di Bitcoin.
+
+## Obiettivi di questa sezione
+
+Dopo aver letto questo capitolo, uno sviluppatore sarà in grado di:
+
+ * Decidere se RBF o CPFP potrebbero aiutare in una transazione
+ * Creare una transazione sostitutiva utilizzando RBF
+ * Creare una nuova transazione utilizzando CPFP
+
+Gli obiettivi di supporto includono la capacità di:
+
+ * Comprendere la Mempool
+ * Comprendere la differenza tra RBF e CPFP
+ * Pianificare il potenziale di RBF
+
+## Sommario
+
+ * [Capitolo 5.1:Guardare le Transazioni Ferme](05_1_Guardare_le_Transazioni_Ferme.md)
+ * [Capitolo 5.2: Rinviare le Transazioni con RBF](05_2_Rinviare_le_Transazioni_con_RBF.md)
+ * [Capitolo 5.3: Pagare una Transaccion con CPFP](05_3_Pagare_una_Transaccion_con_CPFP.md)
diff --git a/it/05_1_Guardare_le_Transazioni_Ferme.md b/it/05_1_Guardare_le_Transazioni_Ferme.md
new file mode 100644
index 000000000..0f75f2103
--- /dev/null
+++ b/it/05_1_Guardare_le_Transazioni_Ferme.md
@@ -0,0 +1,60 @@
+# 5.1: Guardare le transazioni ferme
+
+A volte una transazione Bitcoin può fermarsi. Di solito è perché non c'erano commissioni di transazione sufficienti, ma può anche essere a causa di un problema tecnico della rete o del software.
+
+## Controllare le transazioni
+
+Dovresti _sempre_ vigilare per assicurarti che le tue transazioni vadano a buon fine. `bitcoin-cli listtransactions` mostrerà tutte le transazioni in entrata e in uscita, mentre `bitcoin-cli gettransaction` con un txid mostrerà una transazione specifica.
+
+Di seguito viene mostrata una transazione che non è stata inserita in un blocco. Puoi dirlo perché non ha conferme.
+
+```
+$ bitcoin-cli -named gettransaction txid=fa2ddf84a4a632586d435e10880a2921db6310dfbd6f0f8f583aa0feacb74c8e
+{
+ "amount": -0.00020000,
+ "fee": -0.00001000,
+ "confirmations": 0,
+ "trusted": true,
+ "txid": "fa2ddf84a4a632586d435e10880a2921db6310dfbd6f0f8f583aa0feacb74c8e",
+ "walletconflicts": [
+ ],
+ "time": 1592953220,
+ "timereceived": 1592953220,
+ "bip125-replaceable": "no",
+ "details": [
+ {
+ "address": "tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx",
+ "category": "send",
+ "amount": -0.00020000,
+ "vout": 0,
+ "fee": -0.00001000,
+ "abandoned": false
+ }
+ ],
+ "hex": "02000000014cda1f42a1bd39d8d0ff5958a804bc2bc548b71d7ceadbde53ea15aeaf1e2691000000006a473044022016a7a9f045a0f6a52129f48adb7da35c2f54a0741d6614e9d55b8a3bc3e1490a0220391e9085a3697bc790e94bb924d5310e16f23489d9c600864a32674e871f523c01210278608b54b8fb0d8379d3823d31f03a7c6ab0adffb07dd3811819fdfc34f8c132ffffffff02204e000000000000160014751e76e8199196d454941c45d1b3a323f1433bd6e8030000000000001600146c45d3afa8762086c4bd76d8a71ac7c976e1919600000000"
+```
+Una transazione può essere considerata bloccata o ferma se rimane in questo stato per un periodo di tempo prolungato. Non molti anni fa, potevi essere sicuro che ogni transazione sarebbe andata a buon fine _una volta..._. Ma non è più così a causa del crescente utilizzo di Bitcoin. Ora, se una transazione rimane bloccata troppo a lungo, uscirà dalla mempool e verrà persa dalla rete Bitcoin.
+
+> :book: ***Cos'è la mempool?*** Mempool (o Memory Pool) è una piscina (pool in inglese) che contiene tutte le transazioni non confermate su un nodo bitcoin. Sono le transazioni che un nodo ha ricevuto dalla rete p2p e che non sono ancora incluse in un blocco. Ogni nodo bitcoin può avere un insieme di transazioni leggermente diverso nel suo mempool: transazioni diverse potrebbero essersi propagate a un nodo specifico. Ciò dipende da quando il nodo è stato avviato l'ultima volta e anche dai suoi limiti su quanto è disposto a memorizzare. Quando un minatore effettua un blocco, utilizza le transazioni dal suo mempool. Quindi, quando un blocco viene verificato, tutti i minatori rimuovono le transazioni in esso contenute dai propri pool. A partire da Bitcoin 0.12, anche le transazioni non confermate possono scadere dai mempool se sono abbastanza vecchie, in genere 72 ore, e a partire dalla versione 0.14.0 il tempo di sfratto è stato aumentato a 2 settimane. I pool minerari potrebbero avere i propri meccanismi di gestione della mempool.
+
+Questo elenco di tutte le [transazioni non confermate](https://blockchain.info/unconfirmed-transactions) potrebbe non corrispondere al mempool di nessuna singola macchina, ma dovrebbe (principalmente) essere un superset di essi.
+
+## Decidere cosa fare
+
+Se la transazione rimane bloccata più a lungo del previsto, in genere puoi fare una di queste tre cose:
+
+**1. Attendi finché non viene cancellato.** Se hai inviato la transazione con una commissione bassa o media, alla fine dovrebbe andare a buon fine. Come mostrato su [Mempool Space](https://mempool.space), quelli con tariffe inferiori subiranno ritardi. (Dai un'occhiata alla transazione più a sinistra e guarda quanto tempo è rimasta in attesa e quanto ha pagato per la sua commissione.)
+
+**2. Attendi la scadenza.** Se hai inviato accidentalmente senza alcuna commissione di transazione o se vengono soddisfatti alcuni numeri o altre condizioni, la transazione potrebbe non andare mai a buon fine. Tuttavia, le tue monete non andranno perse. Finché non disponi di un portafoglio che rinvia intenzionalmente transazioni non confermate, dovrebbe essere cancellato dal mempool entro tre giorni circa, quindi puoi riprovare.
+
+**3. Come mitente utilizza RBF.** Se sei il mittente della transazione e hai aderito a RBF (Replace-By-Fee), puo riprovare con una commissione più alta. Vedere [Capitolo 5.2: Rinviare le Transazioni con RBF](05_2_Rinviare_le_Transazioni_con_RBF.md).
+
+**4. Come destinatario utilizza CPFP.** In alternativa, se sei il destinatario della transazione, puoi utilizzare CPFP (Child-pays-for-parent) per utilizzare la transazione non confermata come input per una nuova transazione. Vedi [Capitolo 5.3: 05_3 Pagare una Transaccion con CPFP](05_3_Pagare_una_Transaccion_con_CPFP.md).
+
+## Riepilogo: Guardare le transazioni ferme
+
+Questa è un'introduzione al potere delle transazioni Bitcoin. Se sai che una transazione è ferma, puoi decidere di liberarla con funzionalità come RBF o CPFP.
+
+## Cosa viene dopo?
+
+Continua "Controllo delle transazioni Bitcoin" con [Capitolo 5.2 Rinviare le Transazioni con RBF](05_2_Rinviare_le_Transazioni_con_RBF.md).
diff --git a/it/05_2_Rinviare_le_Transazioni_con_RBF.md b/it/05_2_Rinviare_le_Transazioni_con_RBF.md
new file mode 100644
index 000000000..61a6458cc
--- /dev/null
+++ b/it/05_2_Rinviare_le_Transazioni_con_RBF.md
@@ -0,0 +1,221 @@
+# 5.2: Nuovo invio di una transazione con RBF
+
+Se la tua transazione Bitcoin è ferma nella mempool e tu sei il mittente, puoi rinviarla nuovamente utilizzando RBF (replace-by-fee). Tuttavia, non è tutto ciò che RBF può fare: è generalmente una funzionalità potente e multiuso che consente ai mittenti Bitcoin di ricreare transazioni per una serie di motivi.
+
+> :warning: **AVVISO DI VERSIONE:** Questa è un'innovazione di _Bitcoin Core v 0.12.0_, che ha raggiunto la piena maturità nella wallet di Bitcoin Core con la versione v 0.14.0. Ovviamente, la maggior parte delle persone dovrebbe averlo già utilizzato.
+
+## Opzione di uso di RBF
+
+RBF è una funzionalità Bitcoin opzionale. Le transazioni sono idonee all'utilizzo di RBF solo se sono state create con uno speciale flag RBF. Questo viene fatto impostando nel UTXO della transazione un numero di `sequence` qualsiasi (che in genere vengono impostati automaticamente), in modo che sia maggiore di 0 e minore di 0xffffffff-1 (4294967294).
+
+Ciò si ottiene semplicemente aggiungendo una variabile `sequenza` alle tue entrate dell' UTXO:
+
+```
+$ rawtxhex=$(bitcoin-cli -named createrawtransaction inputs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout', "sequence": 1 } ]''' outputs='''{ "'$recipient'": 0.00007658, "'$changeaddress'": 0.00000001 }''')
+```
+Dovresti firmare e inviare la transazione come al solito:
+
+```
+$ signedtx=$(bitcoin-cli -named signrawtransactionwithwallet hexstring=$rawtxhex | jq -r '.hex')
+$ bitcoin-cli -named sendrawtransaction hexstring=$signedtx
+5b953a0bdfae0d11d20d195ea43ab7c31a5471d2385c258394f3bb9bb3089375
+```
+Ora, quando guardi la tua transazione, dovresti vedere qualcosa di nuovo: la riga `bip125-replaceable`, che prima era sempre contrassegnata con "no", ora è contrassegnata con `yes`:
+
+```
+$ bitcoin-cli -named gettransaction txid=5b953a0bdfae0d11d20d195ea43ab7c31a5471d2385c258394f3bb9bb3089375
+
+{
+ "amount": 0.00000000,
+ "fee": -0.00000141,
+ "confirmations": 0,
+ "trusted": true,
+ "txid": "5b953a0bdfae0d11d20d195ea43ab7c31a5471d2385c258394f3bb9bb3089375",
+ "walletconflicts": [
+ ],
+ "time": 1592954399,
+ "timereceived": 1592954399,
+ "bip125-replaceable": "yes",
+ "details": [
+ ],
+ "hex": "02000000000101fa364ad3cbdb08dd0b83aac009a42a9ed00594acd6883d2a466699996cd69d8b01000000000100000002ea1d000000000000160014d591091b8074a2375ed9985a9c4b18efecfd416501000000000000001600146c45d3afa8762086c4bd76d8a71ac7c976e1919602473044022077007dff4df9ce75430e3065c82321dca9f6bdcfd5812f8dc0daeb957d3dfd1602203a624d4e9720a06def613eeea67fbf13ce1fb6188d3b7e780ce6e40e859f275d0121038a2702938e548eaec28feb92c7e4722042cfd1ea16bec9fc274640dc5be05ec500000000"
+}
+```
+Il flag `bip125-replaceable` rimarrà `yes` finché la transazione non riceverà conferme. A quel punto non è più sostituibile.
+
+> :book: ***Devo fidarmi delle transazioni senza conferme?*** No, mai. Questo era vero prima della RBF ed era vero dopo la RBF. Le transazioni devono ricevere conferme prima di essere affidabili. Ciò è particolarmente vero se una transazione è contrassegnata come "bip125-replaceable", perché in tal caso può essere... sostituita.
+
+> :information_source: **NOTA — SEQUENCE:** Questo è il primo utilizzo del valore `nSequence` in Bitcoin. Puoi impostarlo tra 1 e 0xffffffff-2 (4294967293) e abilitare RBF, ma se non stai attento potresti imbatterti nell'uso parallelo di `nSequence` per i timelock relativi. Suggeriamo di impostarlo sempre su "1", che è ciò che fa Bitcoin Core, ma l'altra opzione è impostarlo su un valore compreso tra 0xf0000000 (4026531840) e 0xffffffff-2 (4294967293). Impostandolo su "1" rende effettivamente irrilevanti i relativi timelock, mentre impostandolo su 0xf0000000 o superiore li disattiva. Tutto ciò è spiegato ulteriormente nel [Capitolo 11.3: Usare CSV negli Scripts](11_3_Usare_CSV_negli_Scripts.md) dove si parla di `OP_CHECKSEQUENCEVERIFY`. Per ora, scegli semplicemente uno dei valori non in conflitto per "nSequence".
+
+### Facoltativo: aderire sempre a RBF
+
+Se preferisci, puoi _sempre_ optare per RBF. Fallo eseguendo il tuo `bitcoind` con il comando `-walletrbf`. Una volta fatto questo (e riavviato `bitcoind`), tutti gli UTXO dovrebbero avere un numero di sequenza inferiore e la transazione dovrebbe essere contrassegnata come `bip125-replaceable`.
+
+> :warning: **AVVISO DI VERSIONE:** Il flag walletrbf richiede Bitcoin Core v.0.14.0.
+
+
+## Scopri come funziona RBF
+
+La funzionalità RBF si basa su [BIP 125](https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki), che elenca le seguenti regole per l'utilizzo di RBF:
+
+> 1. Le transazioni originali segnalano la sostituibilità esplicitamente o tramite ereditarietà come descritto prima.
+
+Ciò significa che il numero di sequenza deve essere impostato su un valore inferiore a 0xffffffff-1. (4294967294), o lo stesso vale per le transazioni principali non confermate.
+
+> 2. L'operazione sostitutiva prevede una commissione in assoluto superiore a quella pagata con l'operazione originaria.
+> 3. La transazione sostitutiva non contiene nuovi input non confermati che non apparivano in precedenza nel mempool. (Gli input non confermati sono input che tentano di spendere output da transazioni attualmente non confermate.)
+> 4. La transazione sostitutiva deve pagare per la propria larghezza di banda in aggiunta all'importo pagato dalle transazioni originali pari o superiore alla tariffa stabilita dall'impostazione della tariffa di inoltro minima del nodo. Ad esempio, se la tariffa di inoltro minima è 1 satoshi/byte e la transazione sostitutiva è di 500 byte in totale, la sostituzione dovrà pagare una tariffa superiore di almeno 500 satoshi rispetto alla somma degli originali.
+> 5. Il numero di transazioni originali da sostituire e le transazioni discendenti che verranno eliminate dalla mempool non devono superare un totale di 100 transazioni.
+
+> :book: ***Che cos'è un BIP?*** Un BIP è una proposta di miglioramento di Bitcoin. È un suggerimento approfondito per una modifica al codice Bitcoin Core. Spesso, quando un BIP è stato sufficientemente discusso e aggiornato, diventerà parte effettiva del codice Bitcoin Core. Ad esempio, BIP 125 è stato implementato in Bitcoin Core 0.12.0.
+
+L’altra cosa da capire su RBF è che per utilizzarlo è necessario spendere due volte, riutilizzando uno o più degli stessi UTXO. Inviare semplicemente un'altra transazione con un UTXO diverso allo stesso destinatario non risolverà il problema (e probabilmente comporterà una perdita di denaro). Invece, devi creare intenzionalmente un conflitto, in cui lo stesso UTXO viene utilizzato in due transazioni diverse.
+
+Di fronte a questo conflitto, i miner sapranno utilizzare quello con la tariffa più alta e saranno incentivati a farlo da quella tariffa più alta.
+
+> :book: ***Che cos'è una doppia spesa?*** Una doppia spesa si verifica quando qualcuno invia gli stessi fondi elettronici a due persone diverse (o, alla stessa persona due volte, in due transazioni diverse). Questo è un problema centrale per qualsiasi sistema di denaro elettronica. In Bitcoin il problema viene risolto dal registro immutabile: una volta che una transazione è sufficientemente confermata, nessun minatore verificherà le transazioni che riutilizzano lo stesso UTXO. Tuttavia, è possibile spendere due volte _prima_ che una transazione venga confermata, motivo per cui desideri sempre una o più conferme prima di finalizzare una transazione. Nel caso di RBF, effettui una doppia spesa intenzionalmente perché una transazione iniziale si è bloccata e i minatori accettano la tua doppia spesa se soddisfi i criteri specifici stabiliti da BIP 125.
+
+> :warning: **WARNING:** Alcune prime discussioni su questa politica suggerivano che anche il numero `nSequence` fosse aumentato. Questo infatti era l'uso previsto di "nSequence" nella sua forma originale. Questo _non_ fa parte della politica pubblicata in BIP 125. Infatti, l'aumento del numero di sequenza può bloccare accidentalmente la transazione con un relativo blocco temporale, a meno che non si utilizzino numeri di sequenza nell'intervallo da 0xf0000000 (4026531840) a 0xffffffff-2 (4294967293) .
+
+## Sostituisci una transazione nel modo più difficile: manualmente
+
+Per creare manualmente una transazione RBF, tutto ciò che devi fare è creare una transazione grezza che: (1) sostituisce una precedente transazione grezza che ha aderito a RBF e che non è confermata; (2) riutilizza uno o più degli stessi UTXO; (3) aumenta le tariffe; e (4) paga la larghezza di banda minima di entrambe le transazioni [che può già essere gestita da (3)].
+
+L'esempio seguente riutilizza semplicemente le nostre variabili esistenti, ma diminuisce l'importo inviato al cambio di indirizzo, per aumentare la commissione dagli 0 BTC accidentali della transazione originale a 0,01 BTC eccessivamente generosi nella nuova transazione:
+
+```
+$ rawtxhex=$(bitcoin-cli -named createrawtransaction inputs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout', "sequence": 1 } ]''' outputs='''{ "'$recipient'": 0.000075, "'$changeaddress'": 0.00000001 }''')
+```
+Naturalmente dobbiamo firmarlo nuovamente e rispedirlo:
+```
+$ signedtx=$(bitcoin-cli -named signrawtransactionwithwallet hexstring=$rawtxhex | jq -r '.hex')
+$ bitcoin-cli -named sendrawtransaction hexstring=$signedtx
+c6de60427b28d8ec8102e49771e5d0348fc3ef6a5bf02eb864ec745105a6951b
+```
+Ora puoi guardare la tua transazione originale e vedere che presenta `walletconflicts`:
+```
+$ bitcoin-cli -named gettransaction txid=5b953a0bdfae0d11d20d195ea43ab7c31a5471d2385c258394f3bb9bb3089375
+{
+ "amount": 0.00000000,
+ "fee": -0.00000141,
+ "confirmations": 0,
+ "trusted": false,
+ "txid": "5b953a0bdfae0d11d20d195ea43ab7c31a5471d2385c258394f3bb9bb3089375",
+ "walletconflicts": [
+ "c6de60427b28d8ec8102e49771e5d0348fc3ef6a5bf02eb864ec745105a6951b"
+ ],
+ "time": 1592954399,
+ "timereceived": 1592954399,
+ "bip125-replaceable": "yes",
+ "details": [
+ ],
+ "hex": "02000000000101fa364ad3cbdb08dd0b83aac009a42a9ed00594acd6883d2a466699996cd69d8b01000000000100000002ea1d000000000000160014d591091b8074a2375ed9985a9c4b18efecfd416501000000000000001600146c45d3afa8762086c4bd76d8a71ac7c976e1919602473044022077007dff4df9ce75430e3065c82321dca9f6bdcfd5812f8dc0daeb957d3dfd1602203a624d4e9720a06def613eeea67fbf13ce1fb6188d3b7e780ce6e40e859f275d0121038a2702938e548eaec28feb92c7e4722042cfd1ea16bec9fc274640dc5be05ec500000000"
+}
+```
+Ciò rappresenta il fatto che due transazioni diverse stanno entrambe tentando di utilizzare lo stesso UTXO.
+
+Alla fine, la transazione con la commissione più alta dovrebbe essere accettata:
+
+```
+$ bitcoin-cli -named gettransaction txid=c6de60427b28d8ec8102e49771e5d0348fc3ef6a5bf02eb864ec745105a6951b
+{
+ "amount": 0.00000000,
+ "fee": -0.00000299,
+ "confirmations": 2,
+ "blockhash": "0000000000000055ac4b6578d7ffb83b0eccef383ca74500b00f59ddfaa1acab",
+ "blockheight": 1773266,
+ "blockindex": 9,
+ "blocktime": 1592955002,
+ "txid": "c6de60427b28d8ec8102e49771e5d0348fc3ef6a5bf02eb864ec745105a6951b",
+ "walletconflicts": [
+ "5b953a0bdfae0d11d20d195ea43ab7c31a5471d2385c258394f3bb9bb3089375"
+ ],
+ "time": 1592954467,
+ "timereceived": 1592954467,
+ "bip125-replaceable": "no",
+ "details": [
+ ],
+ "hex": "02000000000101fa364ad3cbdb08dd0b83aac009a42a9ed00594acd6883d2a466699996cd69d8b010000000001000000024c1d000000000000160014d591091b8074a2375ed9985a9c4b18efecfd416501000000000000001600146c45d3afa8762086c4bd76d8a71ac7c976e1919602473044022077dcdd98d85f6247450185c2b918a0f434d9b2e647330d741944ecae60d6ff790220424f85628cebe0ffe9fa11029b8240d08bdbfcc0c11f799483e63b437841b1cd0121038a2702938e548eaec28feb92c7e4722042cfd1ea16bec9fc274640dc5be05ec500000000"
+}
+```
+Nel frattempo, la transazione originale con la commissione più bassa inizia a raccogliere conferme negative, per mostrare la sua divergenza dalla blockchain:
+```
+$ bitcoin-cli -named gettransaction txid=5b953a0bdfae0d11d20d195ea43ab7c31a5471d2385c258394f3bb9bb3089375
+{
+ "amount": 0.00000000,
+ "fee": -0.00000141,
+ "confirmations": -2,
+ "trusted": false,
+ "txid": "5b953a0bdfae0d11d20d195ea43ab7c31a5471d2385c258394f3bb9bb3089375",
+ "walletconflicts": [
+ "c6de60427b28d8ec8102e49771e5d0348fc3ef6a5bf02eb864ec745105a6951b"
+ ],
+ "time": 1592954399,
+ "timereceived": 1592954399,
+ "bip125-replaceable": "yes",
+ "details": [
+ ],
+ "hex": "02000000000101fa364ad3cbdb08dd0b83aac009a42a9ed00594acd6883d2a466699996cd69d8b01000000000100000002ea1d000000000000160014d591091b8074a2375ed9985a9c4b18efecfd416501000000000000001600146c45d3afa8762086c4bd76d8a71ac7c976e1919602473044022077007dff4df9ce75430e3065c82321dca9f6bdcfd5812f8dc0daeb957d3dfd1602203a624d4e9720a06def613eeea67fbf13ce1fb6188d3b7e780ce6e40e859f275d0121038a2702938e548eaec28feb92c7e4722042cfd1ea16bec9fc274640dc5be05ec500000000"
+}
+```
+I nostri destinatari hanno i loro soldi e la transazione originale non riuscita alla fine uscirà dal mempool.
+
+## Sostituisci una transazione nel modo più semplice: con bumpfee
+
+Le transazioni raw sono molto potenti e puoi fare un sacco di cose interessanti combinandole con RBF. Tuttavia, a volte _tutto_ quello che vuoi fare è liberare una transazione che è rimasta in sospeso. Ora puoi farlo con un semplice comando, `bumpfee`.
+
+Ad esempio, per aumentare la commissione della transazione `4460175e8276d5a1935f6136e36868a0a3561532d44ddffb09b7cb878f76f927` dovresti eseguire:
+
+```
+$ bitcoin-cli -named bumpfee txid=4460175e8276d5a1935f6136e36868a0a3561532d44ddffb09b7cb878f76f927
+{
+ "txid": "75208c5c8cbd83081a0085cd050fc7a4064d87c7d73176ad9a7e3aee5e70095f",
+ "origfee": 0.00000000,
+ "fee": 0.00022600,
+ "errors": [
+ ]
+}
+```
+Il risultato è la generazione automatica di una nuova transazione con una commissione determinata dal file bitcoin.conf:
+```
+$ bitcoin-cli -named gettransaction txid=75208c5c8cbd83081a0085cd050fc7a4064d87c7d73176ad9a7e3aee5e70095f
+{
+ "amount": -0.10000000,
+ "fee": -0.00022600,
+ "confirmations": 0,
+ "trusted": false,
+ "txid": "75208c5c8cbd83081a0085cd050fc7a4064d87c7d73176ad9a7e3aee5e70095f",
+ "walletconflicts": [
+ "4460175e8276d5a1935f6136e36868a0a3561532d44ddffb09b7cb878f76f927"
+ ],
+ "time": 1491605676,
+ "timereceived": 1491605676,
+ "bip125-replaceable": "yes",
+ "replaces_txid": "4460175e8276d5a1935f6136e36868a0a3561532d44ddffb09b7cb878f76f927",
+ "details": [
+ {
+ "account": "",
+ "address": "n2eMqTT929pb1RDNuqEnxdaLau1rxy3efi",
+ "category": "send",
+ "amount": -0.10000000,
+ "vout": 0,
+ "fee": -0.00022600,
+ "abandoned": false
+ }
+ ],
+ "hex": "02000000014e843e22cb8ee522fbf4d8a0967a733685d2ad92697e63f52ce41bec8f7c8ac0020000006b48304502210094e54afafce093008172768d205d99ee2e9681b498326c077f0b6a845d9bbef702206d90256d5a2edee3cab1017b9b1c30b302530b0dd568e4af6f2d35380bbfaa280121029f39b2a19943fadbceb6697dbc859d4a53fcd3f9a8d2c8d523df2037e7c32a71010000000280969800000000001976a914e7c1345fc8f87c68170b3aa798a956c2fe6a9eff88ac38f25c05000000001976a914c101d8c34de7b8d83b3f8d75416ffaea871d664988ac00000000"
+}
+```
+> :warning: **AVVISO DI VERSIONE:** L'RPC `bumpfee` richiede Bitcoin Core v.0.14.0.
+
+## Riepilogo: Reinviare una transazione con RBF
+
+Se una transazione è ferma e non vuoi aspettare che scada del tutto, se hai aderito a RBF, puoi effettuare una doppia spesa utilizzando RBF per creare una transazione sostitutiva (o semplicemente utilizzare `bumpfee`).
+
+> :fire: ***Qual è il potere di RBF?*** Ovviamente, RBF è molto utile se hai creato una transazione con una commissione troppo bassa e hai bisogno di ottenere quei fondi. Tuttavia, la capacità di sostituire generalmente le transazioni non confermate con quelle aggiornate ha più potere di questo (ed è il motivo per cui potresti voler continuare a utilizzare RBF con transazioni raw, anche dopo l'avvento di `bumpfee`).
+
+> Ad esempio, potresti inviare una transazione e quindi, prima che venga confermata, combinarla con una seconda transazione. Ciò consente di comprimere più transazioni in una sola, riducendo le commissioni complessive. Potrebbe anche offrire vantaggi alla privacy. Ci sono anche altri motivi per utilizzare RBF, per contratti intelligenti o cut-through di transazione, come descritto nelle [Domande frequenti su Opt-in RBF](https://bitcoincore.org/en/faq/optin_rbf/).
+
+## Cosa c'è dopo?
+
+Continua con "Controllo delle transazioni Bitcoin" nel [Capitolo 5.3: Pagare una Transaccion con CPFP](05_3_Pagare_una_Transaccion_con_CPFP.md).
diff --git a/it/05_3_Pagare_una_Transaccion_con_CPFP.md b/it/05_3_Pagare_una_Transaccion_con_CPFP.md
new file mode 100644
index 000000000..8e85f9fb5
--- /dev/null
+++ b/it/05_3_Pagare_una_Transaccion_con_CPFP.md
@@ -0,0 +1,130 @@
+# 5.3: Pagare una transazione con CPFP
+
+Se la tua transazione Bitcoin è bloccata e sei il _destinatario_, puoi compensarla usando CPFP (child-pays-for-parent). Questa è un'alternativa alla possibilità del _mittente_ di farlo con RBF.
+
+> :warning: **AVVISO DI VERSIONE:** Questa è un'innovazione di Bitcoin Core v 0.13.0, il che significa che la maggior parte delle persone dovrebbe già usarla.
+
+## Capire come funziona CPFP
+
+RBF era tutto incentrato sul mittente. Ha sbagliato e ha dovuto aumentare la commissione, oppure voleva essere intelligente e combinare le transazioni per una serie di motivi. Era una potente funzionalità orientata al mittente. In un certo senso, CPFP è l'opposto di RBF, perché dà potere al destinatario che sa che i suoi soldi non sono ancora arrivati e vuole accelerare il processo. Tuttavia, è anche una funzionalità molto più semplice, con un'applicabilità meno ampia.
+
+Fondamentalmente, l'idea di CPFP è che un destinatario ha una transazione che vuole spendere e non è stata confermata in un blocco. Quindi, include quella transazione non confermata in una nuova transazione e paga una commissione sufficientemente alta da incoraggiare un miner a includere sia la transazione originale (madre) che la nuova transazione (figlia) in un blocco. Di conseguenza, le transazioni madre e figlia vengono cancellate simultaneamente.
+
+Va notato che CPFP non è una nuova funzionalità del protocollo, come RBF. È solo un nuovo schema di incentivazione che può essere utilizzato per la selezione delle transazioni da parte dei miner. Ciò significa anche che non è affidabile come una modifica del protocollo come RBF: potrebbero esserci motivi per cui la figlia non viene selezionata per essere inserita in un blocco e ciò impedirà alla madre di essere inserita in un blocco.
+
+## Spendi UTXO non confermati
+
+Finanziare di una transazione con CPFP è un processo molto semplice che utilizza i metodi con cui hai già familiarità:
+
+ 1. Trova `txid` e `vout` della transazione non confermata. Questa potrebbe essere la parte più complicata, poiché `bitcoin-cli` in genere cerca di proteggerti dalle transazioni non confermate. Il mittente potrebbe essere in grado di inviarti queste informazioni; anche solo con il `txid`, dovresti essere in grado di capire il `vout` in un blockchain explorer.
+
+Hai un'altra opzione: usa `bitcoin-cli getrawmempool`, che può essere usato per elencare il contenuto dell'intero mempool, dove si troveranno le transazioni non confermate. Potresti doverle esaminare più volte se il mempool è particolarmente occupato. Puoi quindi ottenere maggiori informazioni su una transazione specifica con `bitcoin-cli getrawtransaction` con il flag verbose impostato su `true`:
+
+ ```
+$ bitcoin-cli getrawmempool
+[
+ "95d51e813daeb9a861b2dcdddf1da8c198d06452bbbecfd827447881ff79e061"
+]
+
+$ bitcoin-cli getrawtransaction 95d51e813daeb9a861b2dcdddf1da8c198d06452bbbecfd827447881ff79e061 true
+{
+ "txid": "95d51e813daeb9a861b2dcdddf1da8c198d06452bbbecfd827447881ff79e061",
+ "hash": "9729e47b8aee776112a82cec46df7638d112ca51856c53e238a9b1f7af3be4ce",
+ "version": 2,
+ "size": 247,
+ "vsize": 166,
+ "weight": 661,
+ "locktime": 1773277,
+ "vin": [
+ {
+ "txid": "7a0178472300247d423ac4a04ff9165fa5b944104f6d6f9ebc557c6d207e7524",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "0014334f3a112df0f22e743ad97eec8195a00faa59a0",
+ "hex": "160014334f3a112df0f22e743ad97eec8195a00faa59a0"
+ },
+ "txinwitness": [
+ "304402207966aa87db340841d76d3c3596d8b4858e02aed1c02d87098dcedbc60721d8940220218aac9d728c9a485820b074804a8c5936fa3145ce68e24dcf477024b19e88ae01",
+ "03574b1328a5dc2d648498fc12523cdf708efd091c28722a422d122f8a0db8daa9"
+ ],
+ "sequence": 4294967294
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.01000000,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "OP_HASH160 f079f77f2ef0ef1187093379d128ec28d0b4bf76 OP_EQUAL",
+ "hex": "a914f079f77f2ef0ef1187093379d128ec28d0b4bf7687",
+ "reqSigs": 1,
+ "type": "scripthash",
+ "addresses": [
+ "2NFAkGiwnp8wvCodRBx3smJwxncuG3hndn5"
+ ]
+ }
+ },
+ {
+ "value": 0.02598722,
+ "n": 1,
+ "scriptPubKey": {
+ "asm": "OP_HASH160 8799be12fb9eae6644659d95b9602ddfbb4b2aff OP_EQUAL",
+ "hex": "a9148799be12fb9eae6644659d95b9602ddfbb4b2aff87",
+ "reqSigs": 1,
+ "type": "scripthash",
+ "addresses": [
+ "2N5cDPPuCTtYq13oXw8RfpY9dHJW8sL64U2"
+ ]
+ }
+ }
+ ],
+ "hex": "0200000000010124757e206d7c55bc9e6f6d4f1044b9a55f16f94fa0c43a427d2400234778017a0000000017160014334f3a112df0f22e743ad97eec8195a00faa59a0feffffff0240420f000000000017a914f079f77f2ef0ef1187093379d128ec28d0b4bf768742a727000000000017a9148799be12fb9eae6644659d95b9602ddfbb4b2aff870247304402207966aa87db340841d76d3c3596d8b4858e02aed1c02d87098dcedbc60721d8940220218aac9d728c9a485820b074804a8c5936fa3145ce68e24dcf477024b19e88ae012103574b1328a5dc2d648498fc12523cdf708efd091c28722a422d122f8a0db8daa9dd0e1b00"
+}
+```
+Guarda l'array `vout`. Trova l'oggetto che corrisponde al tuo indirizzo. (Qui, è l'unico.) Il valore `n` è il tuo `vout`. Ora hai tutto ciò che ti serve per creare una nuova transazione CPFP.
+
+```
+$ utxo_txid=2NFAkGiwnp8wvCodRBx3smJwxncuG3hndn5
+$ utxo_vout=0
+$ recipient2=$(bitcoin-cli getrawchangeaddress)
+```
+ 2. Crea una transazione raw usando la tua transazione non confermata come input.
+
+ 3. Raddoppia le commissioni di transazione (o di più).
+
+Quando esegui questi passaggi, il tutto dovrebbe apparire normale, nonostante tu stia lavorando con una transazione non confermata. Per verificare che tutto andasse bene, abbiamo persino esaminato i risultati della nostra firma prima di salvare le informazioni in una variabile:
+
+```
+$ rawtxhex=$(bitcoin-cli -named createrawtransaction inputs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout' } ]''' outputs='''{ "'$recipient2'": 0.03597 }''')
+
+$ bitcoin-cli -named signrawtransaction hexstring=$rawtxhex | jq -r '.hex'
+02000000012b137ef780666ba214842ff6ea2c3a0b36711bcaba839c3710f763e3d9687fed000000006a473044022003ca1f6797d781ef121ba7c2d1d41d763a815e9dad52aa8bc5ea61e4d521f68e022036b992e8e6bf2c44748219ca6e0056a88e8250f6fd0794dc69f79a2e8993671601210317b163ab8c8862e09c71767112b828abd3852e315441893fa0f535de4fa39b8dffffffff01905abd07000000001976a91450b1d90a130c4f3f1e5fbfa7320fd36b7265db0488ac00000000
+
+$ signedtx=$(bitcoin-cli -named signrawtransaction hexstring=$rawtxhex | jq -r '.hex')
+$ bitcoin-cli -named sendrawtransaction hexstring=$signedtx
+6a184a2f07fa30189f4831d6f041d52653a103b3883d2bec2f79187331fd7f0e
+```
+
+ 4. Non è necessario incrociare le dita. Hai verificato che i tuoi dati siano corretti. Da questo punto in poi, le cose sono fuori dal tuo controllo.
+
+Le tue transazioni potrebbero essere eseguite rapidamente. Potrebbero non esserlo. Tutto dipende dal fatto che i minatori che generano casualmente i blocchi correnti abbiano o meno la patch CPFP. Ma hai dato alle tue transazioni la migliore possibilità.
+
+Questo è tutto.
+
+### Fai attenzione alle sfumature
+
+Sebbene CPFP sia solitamente descritto come un destinatario che utilizza una nuova transazione per pagare una vecchia transazione che non è stata confermata, c'è una sfumatura in questo.
+
+Un _mittente_ potrebbe utilizzare CPFP per liberare una transazione se ricevesse il resto da essa. Utilizzerebbe semplicemente quel resto come input e l'uso risultante di CPFP libererebbe l'intera transazione. Tieni presente che farebbe meglio a utilizzare RBF finché fosse abilitato, poiché le commissioni totali sarebbero quindi inferiori.
+
+Un _destinatario_ potrebbe usare CPFP anche se non ha intenzione di spendere immediatamente i soldi, ad esempio se teme che i fondi non possano essere rispediti se la transazione scade. In questo caso, crea semplicemente una transazione secondaria che invia tutti i soldi (meno una commissione di transazione) a un indirizzo di resto. È quello che abbiamo fatto sopra nel nostro esempio.
+
+## Riepilogo: Pagare una transazione con CPFP
+
+Puoi sfruttare gli incentivi CPFP per liberare i fondi che ti sono stati inviati ma non sono stati confermati. Usa semplicemente la transazione non confermata come UTXO e paga una commissione di transazione superiore alla media.
+
+> :fire: ***Qual è il potere di CPFP?*** Principalmente, CPFP è utile solo per sbloccare i fondi quando sei il destinatario e il mittente non puo aiutare per qualsiasi motivo. Non ha le possibilità più potenti di RBF, ma è un modo alternativo per esercitare il controllo su una transazione dopo che è stata inserita nel mempool, ma prima che venga confermata in un blocco.
+
+## Cosa c'è dopo?
+
+Vai attraverso "bitcoin-cli" con [Capitolo 6: Ampliare le Transazioni Bitcoin con Multifirme](06_0_Ampliare_le_Transazioni_Bitcoin_con_Multifirme.md).
diff --git a/it/06_0_Ampliare_le_Transazioni_Bitcoin_con_Multifirme.md b/it/06_0_Ampliare_le_Transazioni_Bitcoin_con_Multifirme.md
new file mode 100644
index 000000000..13a4955b3
--- /dev/null
+++ b/it/06_0_Ampliare_le_Transazioni_Bitcoin_con_Multifirme.md
@@ -0,0 +1,21 @@
+# Capitolo sei: Ampliare le transazioni Bitcoin con Multisig
+
+Transazioni Bitcoin di base: (1) inviare fondi; (2) a un singolo destinatario P2PKH o SegWit; (3) da una singola macchina; (4) immediatamente. Tuttavia, tutte e quattro le parti di questa definizione possono essere ampliate utilizzando transazioni Bitcoin più complesse. Questo primo capitolo sulla "Espansione" mostra come cambiare i punti (2) e (3) inviando denaro a un indirizzo che rappresenta più destinatari (o almeno, più firmatari).
+
+## Obiettivi di questa sezione
+
+Dopo aver completato questo capitolo, uno sviluppatore sarà in grado di:
+
+* Creare indirizzi Bitcoin multifirma utilizzando i fondamenti di Bitcoin
+* Creare indirizzi Bitcoin multifirma utilizzando meccanismi più semplici
+
+Gli obiettivi di supporto includono la capacità di:
+
+* Comprendere come spendere i fondi inviati a un multifirma
+* Pianificare la potenza delle transazioni multifirma
+
+## Indice
+
+* [Capitolo 6.1: Inviare una Transazione a un Indirizzo Multifirma](06_1_Inviare_una_Transazione_a_un_Indirizzo_Multifirma.md)
+* [Capitolo 6.2: Spendere una Transazione con un Indirizzo Multifirma](06_2_Spendere_una_Transazione_con_un_Indirizzo_Multifirma.md)
+* [Capitolo 6.3: Inviare e Ricevere una Multifirma Automatizzata](06_3_Inviare_e_Ricevere_una_Multifirma_Automatizzata.md)
diff --git a/it/06_1_Inviare_una_Transazione_a_un_Indirizzo_Multifirma.md b/it/06_1_Inviare_una_Transazione_a_un_Indirizzo_Multifirma.md
new file mode 100644
index 000000000..6582b2c72
--- /dev/null
+++ b/it/06_1_Inviare_una_Transazione_a_un_Indirizzo_Multifirma.md
@@ -0,0 +1,206 @@
+# 6.1: Inviare di una transazione con un Multisig
+
+Il primo modo per variare la modalità di invio di una transazione di base è utilizzare un multisig. Ciò ti dà la possibilità di richiedere che più persone (o almeno più chiavi private) autorizzino l'uso dei fondi.
+
+## Come funziona il Multisig:
+
+In una tipica transazione P2PKH o SegWit, i bitcoin vengono inviati a un indirizzo basato sulla tua chiave pubblica, il che a sua volta significa che è necessaria la relativa chiave privata per sbloccare la transazione, risolvendo il puzzle crittografico e permettendoti di riutilizzare i fondi. Ma cosa succederebbe se potessi invece bloccare una transazione con chiavi private _multiple_? Ciò consentirebbe effettivamente di inviare fondi a un gruppo di persone, dove tutte queste persone devono accettare di riutilizzare i fondi.
+
+> :book: ***Cos'è una multifirma?*** Una multifirma è una metodologia che consente a più di una persona di creare congiuntamente una firma digitale. È una tecnica generale per l'uso crittografico delle chiavi che va ben oltre Bitcoin.
+
+Tecnicamente, un puzzle crittografico multifirma viene creato da Bitcoin utilizzando il comando `OP_CHECKMULTISIG` e in genere è incapsulato in un indirizzo P2SH. [Capitolo 10.4 Programmare una Multifirma](10_4_Programmare_una_Multifirma.md) spiegherà in dettaglio come funziona in modo più preciso. Per ora, tutto ciò che devi sapere è che puoi utilizzare il comando `bitcoin-cli` per creare indirizzi multifirma; i fondi possono essere inviati a questi indirizzi proprio come qualsiasi normale indirizzo P2PKH o Segwit, ma saranno necessarie più chiavi private per il riscatto dei fondi.
+
+> :book: ***Cos'è una transazione multifirma?*** Una transazione multifirma è una transazione Bitcoin che è stata inviata a un indirizzo multifirma, richiedendo quindi le firme di alcune persone del gruppo multifirma per riutilizzare i fondi.
+
+Le multifirme semplici richiedono che tutti i membri del gruppo firmino l'UTXO quando è speso. Tuttavia, è possibile una maggiore complessità. Le multifirme sono generalmente descritte come "m di n". Ciò significa che la transazione è bloccata con un gruppo di "n" chiavi, ma solo "m" di esse sono necessarie per sbloccare la transazione.
+
+> :book: ***Cos'è una multifirma m-di-n?*** In una multifirma, sono richieste "m" firme da un gruppo di "n" per formare la firma, dove "m ≤ n".
+
+## Crea un indirizzo multisig
+
+Per bloccare un UTXO con più chiavi private, devi prima creare un indirizzo multifirma. Gli esempi qui utilizzati mostrano la creazione (e l'utilizzo) di una multifirma 2 su 2.
+
+### Creare gli indirizzi
+
+Per creare un indirizzo multifirma, devi prima preparare gli indirizzi che il multisig combinerà. La best practice suggerisce di creare sempre nuovi indirizzi. Ciò significa che i partecipanti eseguiranno ciascuno il comando `getnewaddress` sul proprio computer:
+```
+machine1$ address1=$(bitcoin-cli getnewaddress)
+```
+e:
+```
+machine2$ address2=$(bitcoin-cli getnewaddress)
+```
+Successivamente, uno dei destinatari (o forse una terza parte) dovrà combinare gli indirizzi.
+
+#### Raccogli le chiavi pubbliche
+
+Tuttavia, non è possibile creare un multi-sig con gli indirizzi, poiché questi sono gli hash delle chiavi pubbliche: sono invece necessarie le chiavi pubbliche stesse.
+
+Queste informazioni sono facilmente disponibili con il comando "getaddressinfo".
+
+Sulla macchina remota, che qui presumiamo sia "macchina2", puoi ottenere le informazioni dall'elenco.
+```
+machine2$ bitcoin-cli -named getaddressinfo address=$address2
+{
+ "address": "tb1qr2tkjh8rs9xn5xaktf5phct0wxqufplawrfd9q",
+ "scriptPubKey": "00141a97695ce3814d3a1bb65a681be16f7181c487fd",
+ "ismine": true,
+ "solvable": true,
+ "desc": "wpkh([fe6f2292/0'/0'/1']02bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa3)#zc64l8dw",
+ "iswatchonly": false,
+ "isscript": false,
+ "iswitness": true,
+ "witness_version": 0,
+ "witness_program": "1a97695ce3814d3a1bb65a681be16f7181c487fd",
+ "pubkey": "02bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa3",
+ "ischange": false,
+ "timestamp": 1592957904,
+ "hdkeypath": "m/0'/0'/1'",
+ "hdseedid": "1dc70547f2b80e9bb5fde5f34fb3d85f8d8d1dab",
+ "hdmasterfingerprint": "fe6f2292",
+ "labels": [
+ ""
+ ]
+}
+```
+L'indirizzo `pubkey` (`02bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa3`) è ciò che è richiesto. Copialo sul tuo computer locale con qualunque mezzo ritieni più efficiente e _meno soggetto a errori_.
+
+Questo processo deve essere intrapreso per _ogni_ indirizzo da una macchina diversa da quella su cui viene costruito il multisig. Ovviamente, se qualche terza parte sta creando l'indirizzo, dovrai farlo per ogni indirizzo.
+
+> :avviso: **ATTENZIONE:** l'uso da parte di Bitcoin di hash di chiave pubblica come indirizzi, invece di chiavi pubbliche, rappresenta in realtà un ulteriore livello di sicurezza. Pertanto, l'invio di una chiave pubblica aumenta leggermente la vulnerabilità dell'indirizzo associato, per qualche possibilità futura di compromissione della curva ellittica. Non dovresti preoccuparti di dover inviare occasionalmente una chiave pubblica per un utilizzo come questo, ma dovresti essere consapevole che gli hash della chiave pubblica rappresentano la sicurezza e quindi le chiavi pubbliche effettive non dovrebbero essere inviate in giro, volenti o nolenti.
+
+Se uno degli indirizzi è stato creato sul tuo computer locale, che qui presumiamo sia `machine1`, puoi semplicemente scaricare l'indirizzo `pubkey` in una nuova variabile.
+```
+machine1$ pubkey1=$(bitcoin-cli -named getaddressinfo address=$address1 | jq -r '.pubkey')
+```
+
+### Crea l'indirizzo
+
+Ora è possibile creare un indirizzo multisig con il comando `createmultisig`:
+```
+machine1$ bitcoin-cli -named createmultisig nrequired=2 keys='''["'$pubkey1'","02bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa3"]'''
+{
+ "address": "2N8MytPW2ih27LctLjn6LfLFZZb1PFSsqBr",
+ "redeemScript": "522102da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d1912102bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa352ae",
+ "descriptor": "sh(multi(2,02da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d191,02bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa3))#0pazcr4y"
+}
+```
+> :warning: **AVVERTIMENTO VERSIONE:** Alcune versioni di `createmultisig` consentono l'immissione di chiavi o indirizzi pubblici, altre richiedono solo chiavi pubbliche. Attualmente, sembra che entrambi siano consentiti.
+
+Quando crei l'indirizzo multifirma, elenchi quante firme sono richieste con l'argomento `nrequired` (ovvero "m" in una multifirma "m-of-n"), quindi elenchi l'insieme totale di firme possibili con le `keys` argomento (che è "n"). Tieni presente che le voci "chiavi" probabilmente provengono da luoghi diversi. In questo caso, abbiamo incluso `$pubkey1` dal computer locale e `02bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa3` da un computer remoto.
+
+> :information_source: **NOTA — M-OF-N VS N-OF-N:** Questo esempio mostra la creazione di un semplice multisig 2 di 2. Se invece desideri creare una firma m-of-n dove "m < n", modifica il campo `nrequired` e/o il numero di firme nell'oggetto JSON `keys`. Per un multisig 1 su 2, imposteresti `nrequired=1` ed elencheresti anche due chiavi, mentre per un multisig 2 su 3, lasceresti `nrequired=2`, ma aggiungerai un'altra chiave pubblica all'elenco delle "chiavi".
+
+Se utilizzato correttamente, `createmultisig` restituisce tre risultati, tutti di fondamentale importanza.
+
+L'_indirizzo_ è ciò che darai alle persone che vogliono inviare fondi. Noterai che ha un nuovo prefisso "2", esattamente come gli indirizzi P2SH-SegWit. Questo perché, come loro, `createmultisig` sta in realtà creando un tipo di indirizzo totalmente nuovo chiamato indirizzo P2SH. Funziona esattamente come un indirizzo P2PKH standard per l'invio di fondi, ma poiché questo è stato creato per richiedere più indirizzi, dovrai fare un po' più di lavoro per spenderli.
+
+> :link: **TESTNET vs MAINNET:** Su testnet, il prefisso per gli indirizzi P2SH è "2", mentre su mainnet è "3".
+
+Il _redeemScript_ è ciò di cui hai bisogno per riscattare i fondi (insieme alle chiavi private per "m" degli "n" indirizzi). Questo script è un'altra caratteristica speciale degli indirizzi P2SH e verrà spiegato completamente nel [Capitolo 10.3 Eseguire un Script Bitcoin con P2SH](10_3_Eseguire_un_Script_Bitcoin_con_P2SH.md). Per ora, tieni presente che sono necessari alcuni dati per ottenere i tuoi soldi.
+
+Il _descrittore_ è la descrizione standardizzata di un indirizzo che abbiamo incontrato nel [Capitolo 3.5 Comprendere il Descriptor](03_5_Comprendere_il_Descriptor.md). Fornisce un modo per importare nuovamente questo indirizzo sull'altra macchina, utilizzando l'RPC "importmulti".
+
+> :book: ***Cos'è un indirizzo P2SH?*** P2SH sta per Pay-to-script-hash. Si tratta di un tipo di destinatario diverso da un indirizzo P2PKH standard o anche da un Bech32, utilizzato per fondi il cui riscatto si basa su script Bitcoin più complessi. `bitcoin-cli` utilizza l'incapsulamento P2SH per aiutare a standardizzare e semplificare i suoi multisig come `multisig P2SH`, proprio come P2SH-SegWit utilizzava P2SH per standardizzare i suoi indirizzi SegWit e renderli completamente compatibili con le versioni precedenti.
+
+> :avviso: **ATTENZIONE:** Gli indirizzi multisig P2SH, come quelli creati da `bitcoin-cli`, hanno un limite per "m" e "n" in multisig in base alla dimensione massima dello script di riscatto, che è attualmente 520 byte. In pratica, non lo raggiungerai a meno che tu non stia facendo qualcosa di eccessivo.
+
+### Salva il tuo lavoro
+
+Ecco un avvertimento importante: nulla del tuo multisig viene salvato nel tuo portafoglio utilizzando queste tecniche di base. Per riscattare successivamente il denaro inviato a questo indirizzo multifirma, dovrai conservare due informazioni cruciali:
+
+ * Un elenco degli indirizzi Bitcoin utilizzati nel multisig.
+ * L'output `redeemScript` di `createmultsig`.
+
+Tecnicamente, `redeemScript` può essere ricreato eseguendo nuovamente `createmultisig` con l'elenco completo delle chiavi pubbliche _nello stesso ordine_ e con il conteggio m-of-n corretto. Ma è meglio conservarlo e risparmiarti stress e dolore.
+
+### Guarda l'Ordine
+
+C'è una cosa di cui essere molto cauti: _l'ordine conta_. L'ordine delle chiavi utilizzate per creare un multi-sig crea un hash univoco, vale a dire se inserisci le chiavi in un ordine diverso, produrranno un indirizzo diverso, come mostrato:
+```
+$ bitcoin-cli -named createmultisig nrequired=2 keys='''["'$pubkey1'","'$pubkey2'"]'''
+{
+ "address": "2NFBQvz57UzKWDr2Vx5D667epVZifjGixkm",
+ "redeemScript": "52210342b306e410283065ffed38c3139a9bb8805b9f9fa6c16386e7ea96b1ba54da0321039cd6842869c1bfec13cfdbb7d8285bc4c501d413e6633e3ff75d9f13424d99b352ae",
+ "descriptor": "sh(multi(2,0342b306e410283065ffed38c3139a9bb8805b9f9fa6c16386e7ea96b1ba54da03,039cd6842869c1bfec13cfdbb7d8285bc4c501d413e6633e3ff75d9f13424d99b3))#8l6hvjsk"
+}
+$ bitcoin-cli -named createmultisig nrequired=2 keys='''["'$pubkey2'","'$pubkey1'"]'''
+{
+ "address": "2N5bC4Yc5Pqept1y8nPRqvWmFSejkVeRb1k",
+ "redeemScript": "5221039cd6842869c1bfec13cfdbb7d8285bc4c501d413e6633e3ff75d9f13424d99b3210342b306e410283065ffed38c3139a9bb8805b9f9fa6c16386e7ea96b1ba54da0352ae",
+ "descriptor": "sh(multi(2,039cd6842869c1bfec13cfdbb7d8285bc4c501d413e6633e3ff75d9f13424d99b3,0342b306e410283065ffed38c3139a9bb8805b9f9fa6c16386e7ea96b1ba54da03))#audl88kg"
+}
+```
+Più in particolare, ogni ordinamento crea un _redeemScript_ diverso. Ciò significa che se hai utilizzato queste tecniche di base e non sei riuscito a salvare il _redeemScript_ come ti è stato detto, dovrai passare attraverso un numero sempre crescente di varianti per trovare quella giusta quando provi a spendere i tuoi fondi!
+
+[BIP67](https://github.com/bitcoin/bips/blob/master/bip-0067.mediawiki) suggerisce un modo per ordinare lessicograficamente le chiavi, in modo che generino sempre le stesse multifirme. ColdCard ed Electrum sono tra i portafogli che già lo supportano. Naturalmente, questo può causare problemi di per sé se non si sa se un indirizzo multisig è stato creato con chiavi ordinate o non ordinate. Ancora una volta, il [descriptor](03_5_Comprendere_il_Descriptor.md) viene in soccorso. Se un multisig non è ordinato, viene creato con la funzione "multi" e se è ordinato viene creato con la funzione "sortedmulti".
+
+Se guardi il `descriptor` per il multisig che hai creato sopra, vedrai che Bitcoin Core attualmente non ordina i suoi multisig:
+```
+ "descrittore": "sh(multi(2,02da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d191,02bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e 78df82f33fa3))#0pazcr4y"
+```
+Tuttavia, se importa un indirizzo con tipo `sortedmulti`, farà la cosa giusta, che è il punto centrale dei descrittori!
+
+> :warning: **AVVISO VERSIONE:** Bitcoin Core comprende la funzione del descrittore `sortedmulti` dalla versione v 0.20.0 in poi. Prova ad accedere al descrittore su una versione precedente di Bitcoin Core e riceverai un errore come "È necessaria una funzione all'interno di P2WSH".
+
+## Inviare a un indirizzo multisig
+
+Se hai una multifirma in un comodo formato P2SH, come quello generato da `bitcoin-cli`, può essere inviata esattamente come un normale indirizzo.
+```
+$ utxo_txid=$(bitcoin-cli listunspent | jq -r '.[0] | .txid')
+$ utxo_vout=$(bitcoin-cli listunspent | jq -r '.[0] | .vout')
+$ recipient="2N8MytPW2ih27LctLjn6LfLFZZb1PFSsqBr"
+
+$ rawtxhex=$(bitcoin-cli -named createrawtransaction inputs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout' } ]''' outputs='''{ "'$recipient'": 0.000065}''')
+$ bitcoin-cli -named decoderawtransaction hexstring=$rawtxhex
+{
+ "txid": "b164388854f9701051809eed166d9f6cedba92327e4296bf8a265a5da94f6521",
+ "hash": "b164388854f9701051809eed166d9f6cedba92327e4296bf8a265a5da94f6521",
+ "version": 2,
+ "size": 83,
+ "vsize": 83,
+ "weight": 332,
+ "locktime": 0,
+ "vin": [
+ {
+ "txid": "c6de60427b28d8ec8102e49771e5d0348fc3ef6a5bf02eb864ec745105a6951b",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967295
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.00006500,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "OP_HASH160 a5d106eb8ee51b23cf60d8bd98bc285695f233f3 OP_EQUAL",
+ "hex": "a914a5d106eb8ee51b23cf60d8bd98bc285695f233f387",
+ "reqSigs": 1,
+ "type": "scripthash",
+ "addresses": [
+ "2N8MytPW2ih27LctLjn6LfLFZZb1PFSsqBr"
+ ]
+ }
+ }
+ ]
+}
+
+$ signedtx=$(bitcoin-cli -named signrawtransactionwithwallet hexstring=$rawtxhex | jq -r '.hex')
+$ bitcoin-cli -named sendrawtransaction hexstring=$signedtx
+b164388854f9701051809eed166d9f6cedba92327e4296bf8a265a5da94f6521
+```
+Come puoi vedere, non c'era nulla di insolito nella creazione della transazione, e sembrava del tutto normale, anche se con un indirizzo con un prefisso diverso dal normale (`2N8MytPW2ih27LctLjn6LfLFZZb1PFSsqBr`). Nessuna sorpresa, poiché allo stesso modo non abbiamo notato alcuna differenza quando abbiamo inviato per la prima volta agli indirizzi Bech32 nel [Capitolo 4.6](04_6_Creare_una_Transazione_Segwit.md).
+
+## Riepilogo: inviare una transazione a un indirizzo Multisig
+
+Gli indirizzi Multisig bloccano i fondi su più chiavi private, possibilmente richiedendo tutte quelle chiavi private per il riscatto e forse richiedendone solo alcune dal set. Sono abbastanza facili da creare con `bitcoin-cli` ed è del tutto normale inviarli. Questa facilità è dovuta in gran parte all'uso invisibile degli indirizzi P2SH (pay-to-script-hash), un argomento ampio che abbiamo toccato due volte, con gli indirizzi P2SH-SegWit e multisig, e che otterrà di più copertura in futuro.
+
+> :fire: ***Qual è il potere delle multifirme?*** Le multifirme consentono la modellazione di una varietà di accordi finanziari come società, partenariati, comitati e altri gruppi. Un multisig 1 su 2 potrebbe essere il conto bancario congiunto di una coppia sposata, mentre un multisig 2 su 2 potrebbe essere utilizzato per grandi spese da parte di una società a responsabilità limitata. Le multifirme costituiscono anche una delle basi degli Smart Contracts. Ad esempio, un affare immobiliare potrebbe essere chiuso con un multisig 2 su 3, in cui le firme vengono inviate dall'acquirente, dal venditore e da un agente di deposito a garanzia autorizzato. Una volta che l'agente di deposito a garanzia concorda che tutte le condizioni sono state soddisfatte, libera i fondi per il venditore; o in alternativa, l'acquirente e il venditore possono liberare congiuntamente i fondi.
+
+## Cosa viene dopo?
+
+Continua "Espansione delle transazioni Bitcoin" con [Capitolo 6.2: Spendere una Transazione Multifirma.md](06_2_Spendere_una_Transazione_con_un_Indirizzo_Multifirma.md).
diff --git a/it/06_2_Spendere_una_Transazione_con_un_Indirizzo_Multifirma.md b/it/06_2_Spendere_una_Transazione_con_un_Indirizzo_Multifirma.md
new file mode 100644
index 000000000..94a842d3c
--- /dev/null
+++ b/it/06_2_Spendere_una_Transazione_con_un_Indirizzo_Multifirma.md
@@ -0,0 +1,232 @@
+# 6.2: Spendere una transazione Multifirma
+
+Il modo classico e complesso di spendere i fondi inviati ad un indirizzo multifirma utilizzando "bitcoin-cli" richiede molto lavoro manuale.
+
+## Trova i tuoi fondi
+
+Per cominciare, devi trovare i tuoi fondi; il tuo computer non sa cercarli, perché non sono associati ad alcun indirizzo nel tuo portafoglio. Puoi avvisare `bitcoind` di farlo utilizzando il comando `importaddress`:
+```
+$ bitcoin-cli -named importaddress address=2NAGfA4nW6nrZkD5je8tSiAcYB9xL2xYMCz
+```
+Se hai un nodo podato (e probabilmente lo fai), dovrai invece dirgli di non ripetere la scansione:
+```
+$ bitcoin-cli -named importaddress address=2NAGfA4nW6nrZkD5je8tSiAcYB9xL2xYMCz rescan="false"
+```
+Se preferisci, puoi importare l'indirizzo utilizzando il suo descrittore (e questa è generalmente la risposta migliore e più standardizzata):
+```
+$ bitcoin-cli importmulti '[{"desc": "sh(multi(2,02da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d191,02bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa3))#0pazcr4y", "timestamp": "now", "watchonly": true}]'
+[
+ {
+ "success": true
+ }
+]
+```
+Successivamente i fondi dovrebbero apparire quando esegui `listunspend`... ma non sono ancora facilmente spendibili. (In effetti, il tuo portafoglio potrebbe affermare che non sono affatto "spendibili"!)
+
+Se per qualche motivo non riesci a incorporare l'indirizzo nel tuo portafoglio, puoi utilizzare `gettransaction` per ottenere informazioni (o guardare un block explorer).
+```
+$ bitcoin-cli -named gettransaction txid=b164388854f9701051809eed166d9f6cedba92327e4296bf8a265a5da94f6521 verbose=true
+{
+ "amount": -0.00006500,
+ "fee": -0.00001000,
+ "confirmations": 3,
+ "blockhash": "0000000000000165b5f602920088a7e36b11214161d6aaebf5229e3ed4f10adc",
+ "blockheight": 1773282,
+ "blockindex": 9,
+ "blocktime": 1592959320,
+ "txid": "b164388854f9701051809eed166d9f6cedba92327e4296bf8a265a5da94f6521",
+ "walletconflicts": [
+ ],
+ "time": 1592958753,
+ "timereceived": 1592958753,
+ "bip125-replaceable": "no",
+ "details": [
+ {
+ "address": "2N8MytPW2ih27LctLjn6LfLFZZb1PFSsqBr",
+ "category": "send",
+ "amount": -0.00006500,
+ "vout": 0,
+ "fee": -0.00001000,
+ "abandoned": false
+ }
+ ],
+ "hex": "020000000001011b95a6055174ec64b82ef05b6aefc38f34d0e57197e40281ecd8287b4260dec60000000000ffffffff01641900000000000017a914a5d106eb8ee51b23cf60d8bd98bc285695f233f38702473044022070275f81ac4129e1d167ef7e700739f2899ea4c7f1adef3a4da29436f14fb97e02207310d4ec449eba49f0fa404ae45b9c82431d883490c7a0ed882ad0b5d7a623d0012102883bb5463e37d55252d8b3d5c2141b007b37c8a7db6211f75c955acc5ea325eb00000000",
+ "decoded": {
+ "txid": "b164388854f9701051809eed166d9f6cedba92327e4296bf8a265a5da94f6521",
+ "hash": "bdf4e3bc5d354a5dfa5528f172480976321d989d7e5806ac14f1fe9b0b1c093a",
+ "version": 2,
+ "size": 192,
+ "vsize": 111,
+ "weight": 441,
+ "locktime": 0,
+ "vin": [
+ {
+ "txid": "c6de60427b28d8ec8102e49771e5d0348fc3ef6a5bf02eb864ec745105a6951b",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "txinwitness": [
+ "3044022070275f81ac4129e1d167ef7e700739f2899ea4c7f1adef3a4da29436f14fb97e02207310d4ec449eba49f0fa404ae45b9c82431d883490c7a0ed882ad0b5d7a623d001",
+ "02883bb5463e37d55252d8b3d5c2141b007b37c8a7db6211f75c955acc5ea325eb"
+ ],
+ "sequence": 4294967295
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.00006500,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "OP_HASH160 a5d106eb8ee51b23cf60d8bd98bc285695f233f3 OP_EQUAL",
+ "hex": "a914a5d106eb8ee51b23cf60d8bd98bc285695f233f387",
+ "reqSigs": 1,
+ "type": "scripthash",
+ "addresses": [
+ "2N8MytPW2ih27LctLjn6LfLFZZb1PFSsqBr"
+ ]
+ }
+ }
+ ]
+ }
+}
+```
+
+## Imposta le tue variabili
+
+Quando sarai pronto a spendere i fondi ricevuti da un indirizzo multifirma, avrai bisogno di raccogliere _molti_ dati: molto più di quelli di cui hai bisogno quando spendi un normale P2PKH o SegWit UTXO. Ciò è in parte dovuto al fatto che le informazioni sull'indirizzo multisig non sono nel tuo portafoglio e in parte perché stai spendendo denaro inviato a un indirizzo P2SH (pay-to-script-hash), e questo è molto più impegnativo.
+
+In totale, dovrai raccogliere tre cose: informazioni estese sull'UTXO; il redeemScript; e tutte le chiavi private coinvolte. Ovviamente avrai bisogno anche di un nuovo indirizzo del destinatario. Le chiavi private devono attendere la fase di firma, ma tutto il resto può essere fatto ora.
+
+### Accedi alle informazioni dell' UTXO
+
+Per cominciare, prendi `txid` e `vout` per la transazione che vuoi spendere, come al solito. In questo caso, è stato recuperato dalle informazioni `gettransaction` sopra:
+```
+$ utxo_txid=b164388854f9701051809eed166d9f6cedba92327e4296bf8a265a5da94f6521
+$utxo_vout=0
+```
+Tuttavia, devi accedere anche a una terza informazione sull'UTXO, il suo `scriptPubKey`/`hex`, che è lo script che ha bloccato la transazione. Ancora una volta, probabilmente lo stai facendo guardando i dettagli della transazione:
+```
+$ utxo_spk=a914a5d106eb8ee51b23cf60d8bd98bc285695f233f387
+```
+
+### Registra lo redeemScript
+
+Si spera che tu abbia salvato il `redeemScript`. Ora dovresti registrarlo in una variabile.
+
+Questo è stato tratto dalla nostra creazione dell'indirizzo nella sezione precedente.
+
+```
+redeem_script="522102da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d1912102bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa352ae"
+```
+### Decidi il tuo destinatario
+
+Rimanderemo semplicemente i soldi a noi stessi. Questo è utile perché libera i fondi dal multisig, convertendoli in una normale transazione P2PKH che può poi essere confermata da un'unica chiave privata:
+
+```
+$ recipient=$(bitcoin-cli getrawchangeaddress)
+```
+## Crea la tua transazione
+
+Ora puoi creare la tua transazione. Questo non è diverso dal solito.
+
+```
+$ rawtxhex=$(bitcoin-cli -named createrawtransaction inputs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout' } ]''' outputs='''{ "'$recipient'": 0.00005}''')
+$ echo $rawtxhex
+020000000121654fa95d5a268abf96427e3292baed6c9f6d16ed9e80511070f954883864b10000000000ffffffff0188130000000000001600142c48d3401f6abed74f52df3f795c644b4398844600000000
+```
+
+## Firma la tua transazione
+
+Ora sei pronto per firmare la tua transazione. Questo è un processo in più fasi perché dovrai farlo su più macchine, ognuna delle quali fornirà le proprie chiavi private.
+
+### Scarica la tua prima chiave privata
+
+Poiché questa transazione non utilizza completamente il tuo portafoglio, dovrai accedere direttamente alle tue chiavi private. Inizia su "machine1", dove dovresti recuperare tutte le chiavi private di quell'utente coinvolte nel multisig:
+```
+machine1$ bitcoin-cli -named dumpprivkey address=$address1
+cNPhhGjatADfhLD5gLfrR2JZKDE99Mn26NCbERsvnr24B3PcSbtR
+```
+> :warning: **ATTENZIONE:** L'accesso diretto alle chiavi private dalla shell è un comportamento molto pericoloso e dovrebbe essere fatto con estrema cautela se si utilizzano soldi veri. Per lo meno, non salvare le informazioni in una variabile a cui è possibile accedere dal tuo computer. Rimuovere la cronologia della shell è un altro ottimo passo. Al massimo non farlo.
+
+### Crea la tua prima firma
+
+Ora puoi creare la tua prima firma con il comando `signrawtransactionwithkey`. Qui è dove le cose sono diverse: dovrai istruire il comando su come firmare. Puoi farlo aggiungendo le seguenti nuove informazioni:
+
+* Includi un argomento `prevtxs` che includa `txid`, `vout`, `scriptPubKey` e `redeemScript` che hai registrato, ciascuno dei quali è una singola coppia chiave-valore nell'oggetto JSON.
+* Includi un argomento `privkeys` che elenca le chiavi private che hai scaricato su questa macchina.
+
+```
+machine1$ bitcoin-cli -named signrawtransactionwithkey hexstring=$rawtxhex prevtxs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout', "scriptPubKey": "'$utxo_spk'", "redeemScript": "'$redeem_script'" } ]''' privkeys='["cNPhhGjatADfhLD5gLfrR2JZKDE99Mn26NCbERsvnr24B3PcSbtR"]'
+{
+ "hex": "020000000121654fa95d5a268abf96427e3292baed6c9f6d16ed9e80511070f954883864b100000000920047304402201c97b48215f261055e41b765ab025e77a849b349698ed742b305f2c845c69b3f022013a5142ef61db1ff425fbdcdeb3ea370aaff5265eee0956cff9aa97ad9a357e3010047522102da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d1912102bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa352aeffffffff0188130000000000001600142c48d3401f6abed74f52df3f795c644b4398844600000000",
+ "complete": false,
+ "errors": [
+ {
+ "txid": "b164388854f9701051809eed166d9f6cedba92327e4296bf8a265a5da94f6521",
+ "vout": 0,
+ "witness": [
+ ],
+ "scriptSig": "0047304402201c97b48215f261055e41b765ab025e77a849b349698ed742b305f2c845c69b3f022013a5142ef61db1ff425fbdcdeb3ea370aaff5265eee0956cff9aa97ad9a357e3010047522102da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d1912102bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa352ae",
+ "sequence": 4294967295,
+ "error": "CHECK(MULTI)SIG failing with non-zero signature (possibly need more signatures)"
+ }
+ ]
+}
+
+```
+Ciò produce errori spaventosi e dice che sta "fallendo". Va tutto bene. Puoi vedere che la firma è stata parzialmente riuscita perché l'`hex` è diventato più lungo. Sebbene la transazione sia stata parzialmente firmata, non viene eseguita perché necessita di più firme.
+
+### Ripetere per gli altri firmatari
+
+Ora puoi trasferire la transazione, affinché venga firmata nuovamente da chiunque altro sia richiesto per il multisig. Lo fanno eseguendo lo stesso comando di firma che hai eseguito tu ma: (1) con il codice `hex` più lungo da cui ottieni l'output: (`bitcoin-cli -named signrawtransactionwithkey hexstring=$rawtxhex prevtxs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout', "scriptPubKey": "'$utxo_spk'", "redeemScript": "'$redeem_script'" } ]''' privkeys='["cMgb3KM8hPATCtgMKarKMiFesLft6eEw3DY6BB8d97fkeXeqQagw"]' | jq -r '.hex'`); e (2) con le loro chiavi private.
+
+> :information_source: **NOTA — M-di-N VS N-di-N:** Ovviamente, se hai una firma N-of-N (come la multifirma 2-of-2 in questo esempio), allora tutti devono firmare, ma se hai una multifirma M-di-N dove "M < N", la firma sarà completa quando solo alcuni ("M") dei firmatari avranno firmato.
+
+Per farlo accedono prima alle loro chiavi private:
+```
+machine2$ bitcoin-cli -named dumpprivkey address=$address2
+cVhqpKhx2jgfLUWmyR22JnichoctJCHPtPERm11a2yxnVFKWEKyz
+```
+In secondo luogo, firmano il nuovo `hex` utilizzando tutti gli stessi valori `prevtxs`:
+```
+machine1$ bitcoin-cli -named signrawtransactionwithkey hexstring=020000000121654fa95d5a268abf96427e3292baed6c9f6d16ed9e80511070f954883864b100000000920047304402201c97b48215f261055e41b765ab025e77a849b349698ed742b305f2c845c69b3f022013a5142ef61db1ff425fbdcdeb3ea370aaff5265eee0956cff9aa97ad9a357e3010047522102da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d1912102bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa352aeffffffff0188130000000000001600142c48d3401f6abed74f52df3f795c644b4398844600000000 prevtxs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout', "scriptPubKey": "'$utxo_spk'", "redeemScript": "'$redeem_script'" } ]''' privkeys='["cVhqpKhx2jgfLUWmyR22JnichoctJCHPtPERm11a2yxnVFKWEKyz"]'
+{
+ "hex": "020000000121654fa95d5a268abf96427e3292baed6c9f6d16ed9e80511070f954883864b100000000d90047304402201c97b48215f261055e41b765ab025e77a849b349698ed742b305f2c845c69b3f022013a5142ef61db1ff425fbdcdeb3ea370aaff5265eee0956cff9aa97ad9a357e301473044022000a402ec4549a65799688dd531d7b18b03c6379416cc8c29b92011987084e9f402205470e24781509c70e2410aaa6d827aa133d6df2c578e96a496b885584fb039200147522102da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d1912102bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa352aeffffffff0188130000000000001600142c48d3401f6abed74f52df3f795c644b4398844600000000",
+ "complete": true
+}
+```
+In terzo luogo, potrebbe essere necessario inviare la "stringa esadecimale" `hexstring` ancora più lunga prodotta ad altri firmatari.
+
+Ma in questo caso ora vediamo che la firma è `complete`!
+
+## Invia la tua transazione
+
+Una volta terminato, dovresti ricorrere alla metodologia JQ standard per salvare la tua `hexstring` e quindi inviarla:
+```
+$ signedtx=$(bitcoin-cli -named signrawtransactionwithkey hexstring=020000000121654fa95d5a268abf96427e3292baed6c9f6d16ed9e80511070f954883864b100000000920047304402201c97b48215f261055e41b765ab025e77a849b349698ed742b305f2c845c69b3f022013a5142ef61db1ff425fbdcdeb3ea370aaff5265eee0956cff9aa97ad9a357e3010047522102da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d1912102bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa352aeffffffff0188130000000000001600142c48d3401f6abed74f52df3f795c644b4398844600000000 prevtxs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout', "scriptPubKey": "'$utxo_spk'", "redeemScript": "'$redeem_script'" } ]''' privkeys='["cVhqpKhx2jgfLUWmyR22JnichoctJCHPtPERm11a2yxnVFKWEKyz"]' | jq -r .hex)
+$ bitcoin-cli -named sendrawtransaction hexstring=$signedtx
+99d2b5717fed8875a1ed3b2827dd60ae3089f9caa7c7c23d47635f6f5b397c04
+```
+
+## Comprendere l'importanza di questa metodologia di firma ampliata
+
+Ciò ha richiesto un po' di lavoro e, come imparerai presto, la stupidità con le chiavi private, con lo script di riscatto e con lo scriptpubkey non è effettivamente necessaria per riscattare da indirizzi multifirma utilizzando versioni più recenti di Bitcoin Core. Quindi, qual'era il punto?
+
+Questa metodologia di riscatto mostra un modo standard per firmare e riutilizzare le transazioni P2SH. In breve, per riscattare i fondi P2SH, una `signrawtransactionwithkey` deve:
+
+1. Includere `scriptPubKey`, che spiega il puzzle crittografico P2SH.
+2. Includere `redeemScript`, che risolve il puzzle crittografico P2SH e introduce un nuovo puzzle tutto suo.
+3. Essere eseguito su ogni macchina che contiene le chiavi private richieste.
+4. Includere le firme pertinenti, che risolvono il puzzle di riscattoScript.
+
+Qui abbiamo visto questa metodologia utilizzata per riscattare i fondi multisig. In futuro potrai utilizzarlo anche per riscattare i fondi bloccati con altri script P2SH più complessi, come spiegato a partire dal capitolo 9.
+
+## Riepilogo: spendere una transazione con un indirizzo Multisig
+
+Si scopre che spendere denaro inviato a un indirizzo multisig può richiedere un bel po' di lavoro. Ma finché hai i tuoi indirizzi originali e il tuo `redeemScript`, puoi farlo firmando una transazione grezza con ogni indirizzo diverso e fornendo ulteriori informazioni lungo il percorso.
+
+## Qual è il prossimo argomento?
+
+Continua la "Espansione delle transazioni Bitcoin" con [Capitolo 6.3: Inviare e Ricevere una Multifirma Automatizzata](06_3_Inviare_e_Ricevere_una_Multifirma_Automatizzata.md).
diff --git a/it/06_3_Inviare_e_Ricevere_una_Multifirma_Automatizzata.md b/it/06_3_Inviare_e_Ricevere_una_Multifirma_Automatizzata.md
new file mode 100644
index 000000000..8a66ef020
--- /dev/null
+++ b/it/06_3_Inviare_e_Ricevere_una_Multifirma_Automatizzata.md
@@ -0,0 +1,120 @@
+# 6.3: 06_3_Inviare_e_Ricevere_una_Multifirma_Automatizzata.md
+
+La tecnica standard per creare indirizzi multifirma e per spendere i propri fondi è complessa, ma vale la pena esercitarsi per capire un po' di più su come funzionano e come è possibile manipolarli a un livello relativamente basso. Tuttavia, Bitcoin Core ha reso il multisig un po’ più semplice nelle nuove versioni.
+
+> :warning: **AVVISO VERSIONE:** Il comando `addmultisigaddress` è disponibile in Bitcoin Core v 0.10 o successiva.
+
+## Crea un indirizzo multisig nel tuo portafoglio
+
+Per rendere i fondi inviati agli indirizzi multisig più facili da spendere, devi solo fare qualche preparazione utilizzando il comando `addmultisigaddress`. Probabilmente non è quello che vorresti fare se stessi scrivendo programmi per portafogli multisig, ma se stessi solo cercando di ricevere fondi a mano, potrebbe risparmiarti qualche disaggio.
+
+### Raccogli le chiavi
+
+Inizi creando indirizzi P2PKH e recuperando le chiavi pubbliche, come al solito, per ciascun utente che farà parte del multisig:
+```
+machine1$ address3=$(bitcoin-cli getnewaddress)
+machine1$ echo $address3
+tb1q4ep2vmakpkkj6mflu94x5f94q662m0u5ad0t4w
+machine1$ bitcoin-cli -named getaddressinfo address=$address3 | jq -r '.pubkey'
+0297e681bff16cd4600138449e2527db4b2f83955c691a1b84254ecffddb9bfbfc
+
+machine2$ address4=$(bitcoin-cli getnewaddress)
+machine2$ echo $address4
+tb1qa9v5h6zkhq8wh0etnv3ae9cdurkh085xufl3de
+machine2$ bitcoin-cli -named getaddressinfo address=$address4 | jq -r '.pubkey'
+02a0d96e16458ff0c90db4826f86408f2cfa0e960514c0db547ff152d3e567738f
+```
+
+### Crea l'indirizzo Multisig ovunque
+
+Successivamente crei il multisig su _ogni macchina che contribuisce con le firme_ utilizzando un nuovo comando, `addmultisigaddress`, invece di `createmultisig`. Questo nuovo comando salva alcune informazioni nel tuo portafoglio, rendendo molto più semplice spendere i soldi in seguito.
+```
+machine1$ bitcoin-cli -named addmultisigaddress nrequired=2 keys='''["'$address3'","02a0d96e16458ff0c90db4826f86408f2cfa0e960514c0db547ff152d3e567738f"]'''
+{
+ "address": "tb1q9as46kupwcxancdx82gw65365svlzdwmjal4uxs23t3zz3rgg3wqpqlhex",
+ "redeemScript": "52210297e681bff16cd4600138449e2527db4b2f83955c691a1b84254ecffddb9bfbfc2102a0d96e16458ff0c90db4826f86408f2cfa0e960514c0db547ff152d3e567738f52ae",
+ "descriptor": "wsh(multi(2,[d6043800/0'/0'/15']0297e681bff16cd4600138449e2527db4b2f83955c691a1b84254ecffddb9bfbfc,[e9594be8]02a0d96e16458ff0c90db4826f86408f2cfa0e960514c0db547ff152d3e567738f))#wxn4tdju"
+}
+
+machine2$ bitcoin-cli -named addmultisigaddress nrequired=2 keys='''["0297e681bff16cd4600138449e2527db4b2f83955c691a1b84254ecffddb9bfbfc","'$address4'"]'''
+{
+ "address": "tb1q9as46kupwcxancdx82gw65365svlzdwmjal4uxs23t3zz3rgg3wqpqlhex",
+ "redeemScript": "52210297e681bff16cd4600138449e2527db4b2f83955c691a1b84254ecffddb9bfbfc2102a0d96e16458ff0c90db4826f86408f2cfa0e960514c0db547ff152d3e567738f52ae",
+ "descriptor": "wsh(multi(2,[ae42a66f]0297e681bff16cd4600138449e2527db4b2f83955c691a1b84254ecffddb9bfbfc,[fe6f2292/0'/0'/2']02a0d96e16458ff0c90db4826f86408f2cfa0e960514c0db547ff152d3e567738f))#cc96c5n6"
+}
+```
+Come notato nella sezione precedente, attualmente non importa se si utilizzano indirizzi o chiavi pubbliche, quindi qui abbiamo mostrato l'altro meccanismo, mescolando i due. In ogni caso otterrai lo stesso indirizzo multisig. Tuttavia, _devi utilizzare lo stesso ordine_. Pertanto, è meglio che i membri del multisig controllino tra loro per assicurarsi che tutti abbiano ottenuto lo stesso risultato.
+
+### Attenzione ai fondi
+
+Successivamente, i membri del multisig dovranno comunque eseguire "importaddress" per controllare i fondi ricevuti sull'indirizzo multisig:
+```
+machine1$ bitcoin-cli -named importaddress address=tb1q9as46kupwcxancdx82gw65365svlzdwmjal4uxs23t3zz3rgg3wqpqlhex rescan="false"
+
+machine2$ bitcoin-cli -named importaddress address=tb1q9as46kupwcxancdx82gw65365svlzdwmjal4uxs23t3zz3rgg3wqpqlhex rescan="false"
+```
+
+## Rispendi con una transazione automatizzata
+
+Successivamente, sarai in grado di ricevere fondi sull'indirizzo multifirma normalmente. L'utilizzo di `addmultisigaddress` è semplicemente una questione burocratica da parte dei destinatari: un po' di contabilità per facilitargli la vita quando vogliono spendere i loro fondi.
+
+Ma rende la vita molto più semplice. Poiché le informazioni sono state salvate nel portafoglio, i firmatari potranno spendere nuovamente i fondi inviati all'indirizzo multifirma esattamente come qualsiasi altro indirizzo... a parte la necessità di firmare su più macchine.
+
+Inizi raccogliendo le tue variabili, ma non devi più preoccuparti di `scriptPubKey` o `redeemScript`.
+
+Ecco una nuova transazione inviata al nostro nuovo indirizzo multisig:
+```
+machine1$ utxo_txid=b9f3c4756ef8159d6a66414a4317f865882ee04beb57a0f8349dafcc98f5acbc
+machine1$ utxo_vout=0
+machine1$ recipient=$(bitcoin-cli getrawchangeaddress)
+```
+Crea una transazione grezza:
+```
+machine1$ rawtxhex=$(bitcoin-cli -named createrawtransaction inputs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout' } ]''' outputs='''{ "'$recipient'": 0.00005}''')
+```
+Poi firmala:
+```
+machine1$ bitcoin-cli -named signrawtransactionwithwallet hexstring=$rawtxhex
+{
+ "hex": "02000000000101bcacf598ccaf9d34f8a057eb4be02e8865f817434a41666a9d15f86e75c4f3b90000000000ffffffff0188130000000000001600144f93c831ec739166ea425984170f4dc6bac75829040047304402205f84d40ba16ff49e60a7fc9228ef5917473aae1ab667dad01e113ca0fef3008b02201a50da2c65f38798aea94bcbd5bbf065bc1e38de44bacee69d525dcddcc11bba01004752210297e681bff16cd4600138449e2527db4b2f83955c691a1b84254ecffddb9bfbfc2102a0d96e16458ff0c90db4826f86408f2cfa0e960514c0db547ff152d3e567738f52ae00000000",
+ "complete": false,
+ "errors": [
+ {
+ "txid": "b9f3c4756ef8159d6a66414a4317f865882ee04beb57a0f8349dafcc98f5acbc",
+ "vout": 0,
+ "witness": [
+ "",
+ "304402205f84d40ba16ff49e60a7fc9228ef5917473aae1ab667dad01e113ca0fef3008b02201a50da2c65f38798aea94bcbd5bbf065bc1e38de44bacee69d525dcddcc11bba01",
+ "",
+ "52210297e681bff16cd4600138449e2527db4b2f83955c691a1b84254ecffddb9bfbfc2102a0d96e16458ff0c90db4826f86408f2cfa0e960514c0db547ff152d3e567738f52ae"
+ ],
+ "scriptSig": "",
+ "sequence": 4294967295,
+ "error": "CHECK(MULTI)SIG failing with non-zero signature (possibly need more signatures)"
+ }
+ ]
+}
+
+```
+Tieni presente che non dovevi più fornire ulteriore aiuto a `signrawtransactionwithkey`, perché tutte quelle informazioni extra erano già nel tuo portafoglio. Ancora più importante, non hai reso vulnerabili le tue chiavi private manipolandole direttamente. Invece il processo era _esattamente_ identico alla ripetizione di un normale UTXO, tranne per il fatto che alla fine la transazione non era completamente firmata.
+
+### Firmalo su altre macchine
+
+Il passaggio finale è esportare l'`hex` parzialmente firmato su qualsiasi altra macchina e firmarlo nuovamente:
+```
+machine2$ signedtx=$(bitcoin-cli -named signrawtransactionwithwallet hexstring=02000000014ecda61c45f488e35c613a7c4ae26335a8d7bfd0a942f026d0fb1050e744a67d000000009100473044022025decef887fe2e3eb1c4b3edaa155e5755102d1570716f1467bb0b518b777ddf022017e97f8853af8acab4853ccf502213b7ff4cc3bd9502941369905371545de28d0147522102e7356952f4bb1daf475c04b95a2f7e0d9a12cf5b5c48a25b2303783d91849ba421030186d2b55de166389aefe209f508ce1fbd79966d9ac417adef74b7c1b5e0777652aeffffffff0130e1be07000000001976a9148dfbf103e48df7d1993448aa387dc31a2ebd522d88ac00000000 | jq -r '.hex')
+```
+Quando tutti quelli richiesti hanno firmato, sei pronto:
+```
+machine2$ bitcoin-cli -named sendrawtransaction hexstring=$signedtx
+3ce88839ac6165aeadcfb188c490e1b850468eff571b4ca78fac64342751510d
+```
+Come per la scorciatoia discussa in [Capitolo 4.5: Inviare Monete con Transazione Grezza Automatizzatamd](04_5_Inviare_Monete_con_Transazione_Grezza_Automatizzata.md), il risultato è molto più semplice, ma si perde un po' di controllo del processo.
+
+## Sommario: Invio e spesa di un Multisig automatizzato
+
+Esiste un modo più semplice per spendere nuovamente i fondi inviati a indirizzi multisig che richiede semplicemente l'uso del comando `addmultisigaddress` quando crei il tuo indirizzo. Non dimostra le complessità della ripetizione della spesa P2SH e non ti dà un controllo espansivo, ma se vuoi solo ottenere i tuoi soldi, questa è la strada da percorrere.
+
+## Qual è il prossimo argomento?
+
+Scopri di più sulla "Espansione delle transazioni Bitcoin" nel [Capitolo 7: Ampliare le Transazioni Bitcoin con PSBTs](07_0_Ampliare_le_Transazioni_Bitcoin_con_PSBTs.md).
diff --git a/it/07_0_Ampliare_le_Transazioni_Bitcoin_con_PSBTs.md b/it/07_0_Ampliare_le_Transazioni_Bitcoin_con_PSBTs.md
new file mode 100644
index 000000000..b8c92c58c
--- /dev/null
+++ b/it/07_0_Ampliare_le_Transazioni_Bitcoin_con_PSBTs.md
@@ -0,0 +1,24 @@
+# Capitolo sette: Ampliare le transazioni Bitcoin con PSBT
+
+Nel capitolo precedente è stato discusso come utilizzare multisig per determinare in modo collaborativo il consenso tra più parti. Non è l'unico modo per collaborare alla creazione di transazioni Bitcoin. I PSBT sono una tecnologia molto più recente che ti consente di collaborare in una varietà di fasi, tra cui la creazione, il finanziamento e l'autenticazione di una transazione Bitcoin.
+
+## Obiettivi di questa sezione
+
+Dopo aver letto questo capitolo, uno sviluppatore sarà in grado di:
+
+ * Creare transazioni PSBT (Partially Signed Bitcoin Transaction)(Transazioni bitcoin parzialmente firmate)
+ * Utilizzare gli strumenti dalla riga di comando per completare le PSBT
+ * Utilizza HWI per interagire con un portafoglio hardware
+
+Gli obiettivi di supporto includono la capacità di:
+
+ * Capire come le PSBT differiscono dalle multifirme
+ * Capire l'intero flusso di lavoro con le PSBT
+ * Pianificare l'usopotenziale delle PSBT
+ * Comprendere l'uso di un portafoglio hardware
+
+## Sommario
+
+ * [Capitolo 7.1: Creare una Transazione Bitcoin Parzialmente Firmata](07_1_Creare_una_Transazione_Bitcoin_Parzialmente_Firmata.md)
+ * [Capitolo 7.2: Usare una Transazione Bitcoin Parzialmente Firmata](07_2_Usare_una_Transazione_Bitcoin_Parzialmente_Firmata.md)
+ * [Capitolo 7.3: Integrazione con Hardware Wallets](07_3_Integrazione_con_Hardware_Wallets.md)
diff --git a/it/07_1_Creare_una_Transazione_Bitcoin_Parzialmente_Firmata.md b/it/07_1_Creare_una_Transazione_Bitcoin_Parzialmente_Firmata.md
new file mode 100644
index 000000000..84def9c27
--- /dev/null
+++ b/it/07_1_Creare_una_Transazione_Bitcoin_Parzialmente_Firmata.md
@@ -0,0 +1,525 @@
+# 7.1: Creare una Transazione Bitcoin Parzialmente Firmata
+
+> :information_source: **NOTA:** Questa sezione è stata aggiunta di recente al corso ed è una bozza iniziale che potrebbe essere ancora in attesa di revisione. Lettore avvertito.
+
+Le transazioni Bitcoin parzialmente firmate (PSBT) sono il modo più nuovo per variare la creazione di transazioni basilari di Bitcoin. Lo fanno introducendo la collaborazione in ogni fase del processo, consentendo alle persone (o ai programmi) non solo di autenticare le transazioni insieme (come con i multisig), ma anche di creare, finanziare e trasmettere facilmente in modo collaborativo.
+
+> :avviso: **AVVISO VERSIONE:** Questa è un'innovazione di Bitcoin Core v 0.17.0. Le versioni precedenti di Bitcoin Core non saranno in grado di funzionare con il processo di PSBT mentre è in corso (sebbene saranno comunque in grado di riconoscere la transazione finale). Alcuni aggiornamenti e upgrade per le PSBT sono continuati fino alla versione 0.20.0.
+
+## Scoprire come funzionano le PSBT
+
+Le `multisig` erano ottime per il caso molto specifico di detenzione congiunta di fondi e di definizione di regole per chi tra i firmatari congiunti potesse autenticare l’uso di tali fondi. Esistono molti casi d'uso, come ad esempio: un conto bancario congiunto con il proprio coniuge (una firma 1 su 2); un requisito fiduciario per il doppio controllo (una firma 2 su 2); e un deposito a garanzia (una firma 2 su 3).
+
+> :book: ***Cos'è un PSBT?*** Come suggerisce il nome, un PSBT è una transazione che non è stata completamente firmata. Questo è importante, perché una volta firmata una transazione, il suo contenuto viene bloccato. [BIP174](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki) ha definito una metodologia astratta per mettere insieme i PSBT che descrive e standardizza i ruoli nella loro creazione collaborativa. Un *Creatore* propone una transazione; uno o più *Aggiornatori* lo integrano; e uno o più *Firmatari* lo autenticano; prima che un *Finalizatore* lo completi; e un *Estrattore* la trasforma in una transazione per la rete Bitcoin. Potrebbe anche esserci un *Combinatore* che unisce PSBT paralleli di utenti diversi.
+
+Inizialmente le PSBT potrebbero sembrare simili ai multi-sigs perché hanno un funzionalità in comune: la capacità di firmare congiuntamente una transazione. Tuttavia, sono stati creati per un caso d’uso completamente diverso. Le PSBT riconoscono la necessità che più programmi creino congiuntamente una transazione per una serie di ragioni diverse e forniscono un formato regolarizzato per farlo. Sono particolarmente utili per i casi d'uso che coinvolgono portafogli hardware (Gurda qui nel [Capitolo 7.3](07_3_Integrazione_con_Hardware_Wallets.md)), che sono protetti dall'accesso completo a Internet e tendono ad avere una cronologia delle transazioni minima.
+
+In generale, le PSBT forniscono una serie di elementi funzionali che migliorano questo caso d'uso:
+
+1. Forniscono uno _standard_ per la creazione collaborativa di transazioni, mentre le metodologie precedenti (inclusa quella multi-sig del [capitolo 6](06_0_Ampliare_le_Transazioni_Bitcoin_con_Multifirme.md) ) dipendevano dall'implementazione.
+2. Supportano una _più ampia varietà di casi d'uso_, compreso il semplice finanziamento congiunto.
+3. Supportano _portafogli hardware_ e altri casi in cui un nodo potrebbe non avere una cronologia completa delle transazioni.
+4. Consentono facoltativamente la combinazione di _transazioni non serializzate_, senza richiedere il passaggio di un codice esadecimale sempre più grande da utente a utente.
+
+I PSBT svolgono il loro lavoro integrando le normali informazioni sulle transazioni con una serie di input e output, ognuno dei quali definisce tutto ciò che è necessario sapere su tali UTXO, in modo che anche un portafoglio airgap possa prendere una decisione informata sulle firme. Pertanto, un input elenca la quantità di denaro in un UTXO e cosa è necessario fare per spenderlo, mentre un output fa lo stesso per gli UTXO che sta creando.
+
+Questa prima sezione descriverà il processo PSBT standard di: Creatore, Aggiornatore, Firmatario, Finalizzatore, Estrattore. Lo farà da una sola macchina, il che lo farà sembrare un modo contorto per creare una transazione grezza. Ma abbi fede, c'è uno scopo in questo! Il [Capitolo 7.2](07_2_Usare_una_Transazione_Bitcoin_Parzialmente_Firmata.md) e il [Capitolo 7.3](07_3_Integrazione_con_Hardware_Wallets.md) mostreranno alcuni esempi reali di utilizzo dei PSBT e trasformeranno questo semplice sistema in un processo collaborativo condiviso tra più macchine che ha effetti reali e crea reali opportunità.
+
+## Creare una PSBT alla vecchia maniera
+#### Ruolo PSBT: Creatore
+
+Il modo più semplice per creare un PSBT è prendere una transazione esistente e utilizzare `converttopsbt` per trasformarla in un PSBT. Questo non è certamente il modo _migliore_ poiché richiede di effettuare una transazione per un formato (una transazione grezza) e poi convertirla in un altro (PSBT), ma se hai un vecchio software che può generare solo una transazione grezza, potresti dover farlo.
+
+Crei semplicemente la tua transazione grezza normalmente:
+
+```
+$ utxo_txid_1=$(bitcoin-cli listunspent | jq -r '.[0] | .txid')
+$ utxo_vout_1=$(bitcoin-cli listunspent | jq -r '.[0] | .vout')
+$ utxo_txid_2=$(bitcoin-cli listunspent | jq -r '.[1] | .txid')
+$ utxo_vout_2=$(bitcoin-cli listunspent | jq -r '.[1] | .vout')
+$ echo $utxo_txid_1 $utxo_vout_1 $utxo_txid_2 $utxo_vout_2
+c6de60427b28d8ec8102e49771e5d0348fc3ef6a5bf02eb864ec745105a6951b 1 8748eff5f12ca886e3603d9e30227dcb3f0332e0706c4322fec96001f7c7f41c 0
+$ recipient=tb1qcaedd724gts3aug73m78c7nfsv9d8zs9q6h2kd
+$ rawtxhex=$(bitcoin-cli -named createrawtransaction inputs='''[ { "txid": "'$utxo_txid_1'", "vout": '$utxo_vout_1' }, { "txid": "'$utxo_txid_2'", "vout": '$utxo_vout_2' } ]''' outputs='''{ "'$recipient'": 0.0000065 }''')
+```
+Quindi lo converti:
+```
+$ psbt=$(bitcoin-cli -named converttopsbt hexstring=$rawtxhex)
+$ echo $psbt
+cHNidP8BAHsCAAAAAhuVpgVRdOxkuC7wW2rvw4800OVxl+QCgezYKHtCYN7GAQAAAAD/////HPTH9wFgyf4iQ2xw4DIDP8t9IjCePWDjhqgs8fXvSIcAAAAAAP////8BigIAAAAAAAAWABTHctb5VULhHvEejvx8emmDCtOKBQAAAAAAAAAA
+```
+Noterai che la codifica PSBT appare molto diversa dall'esadecimale della transazione.
+
+Ma se puoi, crea direttamente il PSBT ...
+
+## Crea un PSBT nel modo più difficile
+
+#### Ruolo PSBT: Creatore
+
+La prima metodologia per creare un PSBT senza passare attraverso un altro formato è l'equivalente PSBT di `createrawtransaction`. Si chiama `createpsbt` e ti dà il massimo controllo al costo della massimo lavoro e della massima provabilità di errore.
+
+La CLI dovrebbe sembrare abbastanza familiare, unica differenza, un nuovo comando RPC:
+
+```
+$ psbt_1=$(bitcoin-cli -named createpsbt inputs='''[ { "txid": "'$utxo_txid_1'", "vout": '$utxo_vout_1' }, { "txid": "'$utxo_txid_2'", "vout": '$utxo_vout_2' } ]''' outputs='''{ "'$recipient'": 0.0000065 }''')
+```
+Il team di Bitcoin Core si è assicurato che `createpsbt` funzionasse in modo molto simile a `createrawtransaction`, quindi non è necessario imparare un nuovo formato di creazione.
+
+Puoi verificare che la nuova PSBT sia uguale a quella creata da `converttopsbt`:
+
+```
+$ echo $psbt_1
+cHNidP8BAHsCAAAAAhuVpgVRdOxkuC7wW2rvw4800OVxl+QCgezYKHtCYN7GAQAAAAD/////HPTH9wFgyf4iQ2xw4DIDP8t9IjCePWDjhqgs8fXvSIcAAAAAAP////8BigIAAAAAAAAWABTHctb5VULhHvEejvx8emmDCtOKBQAAAAAAAAAA
+$ if [ "$psbt" == "$psbt_1" ]; then echo "PSBTs are equal"; else echo "PSBTs are not equal"; fi
+PSBTs are equal
+```
+
+## Esaminare una PSBT
+
+#### Ruolo PSBT: Qualsiasi ruolo
+
+Allora, che aspetto ha effettivamente il tuo PSBT? Puoi vederlo con il comando `decodepsbt`:
+
+```
+$ bitcoin-cli -named decodepsbt psbt=$psbt
+{
+ "tx": {
+ "txid": "ea73a631b456d2b041ed73bf5767946408c6ff067716929a68ecda2e3e4de6d3",
+ "hash": "ea73a631b456d2b041ed73bf5767946408c6ff067716929a68ecda2e3e4de6d3",
+ "version": 2,
+ "size": 123,
+ "vsize": 123,
+ "weight": 492,
+ "locktime": 0,
+ "vin": [
+ {
+ "txid": "c6de60427b28d8ec8102e49771e5d0348fc3ef6a5bf02eb864ec745105a6951b",
+ "vout": 1,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967295
+ },
+ {
+ "txid": "8748eff5f12ca886e3603d9e30227dcb3f0332e0706c4322fec96001f7c7f41c",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967295
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.00000650,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "0 c772d6f95542e11ef11e8efc7c7a69830ad38a05",
+ "hex": "0014c772d6f95542e11ef11e8efc7c7a69830ad38a05",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1qcaedd724gts3aug73m78c7nfsv9d8zs9q6h2kd"
+ ]
+ }
+ }
+ ]
+ },
+ "unknown": {
+ },
+ "inputs": [
+ {
+ },
+ {
+ }
+ ],
+ "outputs": [
+ {
+ }
+ ]
+}
+```
+
+È importante notare che anche se abbiamo definito i fondamenti della transazione: i `vin` da cui proviene il denaro e i `vouts` del destino, non abbiamo ancora definito gli `input` e gli `input` `output` che costituiscono il cuore di una PSBT e che sono necessari agli utenti offline per valutarli. Questo è previsto: il ruolo del Creatore come definito in [BIP174](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki) è quello di delineare la transazione, mentre il ruolo dell'Updater, _l'aggiornatore_, è iniziare a compilare i dati specifici del PSBT. (Altri comandi combinano i ruoli Creator e Updater, ma `createpsbt` no perché non ha accesso al tuo portafoglio.)
+
+Puoi anche usare il comando `analyzepsbt` per vedere il suo stato attuale:
+
+```
+standup@btctest20:~$ bitcoin-cli -named analyzepsbt psbt=$psbt
+{
+ "inputs": [
+ {
+ "has_utxo": false,
+ "is_final": false,
+ "next": "updater"
+ },
+ {
+ "has_utxo": false,
+ "is_final": false,
+ "next": "updater"
+ }
+ ],
+ "next": "updater"
+}
+```
+Allo stesso modo, `analyzepsbt` ci mostra una PSBT che necessita ancora di lavoro. Diamo un'occhiata a ciascuno dei due `input` (corrispondenti ai due `vin`) e nessuno dei due ha le informazioni di cui ha bisogno.
+
+## Finalizza un PSBT
+#### Ruolo PSBT: Aggiornatore, Firmatario, Finalizzatore
+
+Esiste un comando `utxoupdatepsbt` che può essere utilizzato per aggiornare gli UTXO, importando manualmente le informazioni sul descrittore, ma non vuoi usarlo a meno che tu non abbia un caso d'uso in cui non hai tutte queste informazioni nei portafogli di tutti coloro che firmeranno il PSBT.
+
+> :information_source: **NOTA:** Se scegli di aggiornare il PSBT con `utxoupdatepsbt`, dovrai comunque utilizzare `walletprocesspsbt` per firmarlo: è l'unico comando con ruolo firmatario per PSBT disponibile in `bitcoin- cli`.
+
+Dovresti invece utilizzare `walletprocesspsbt`, che aggiornerà, firmerà e finalizzerà:
+
+```
+$ bitcoin-cli walletprocesspsbt $psbt
+{
+ "psbt": "cHNidP8BAHsCAAAAAhuVpgVRdOxkuC7wW2rvw4800OVxl+QCgezYKHtCYN7GAQAAAAD/////HPTH9wFgyf4iQ2xw4DIDP8t9IjCePWDjhqgs8fXvSIcAAAAAAP////8BigIAAAAAAAAWABTHctb5VULhHvEejvx8emmDCtOKBQAAAAAAAQEfAQAAAAAAAAAWABRsRdOvqHYghsS9dtinGsfJduGRlgEIawJHMEQCIAqJbxz6dBzNpfaDu4XZXb+DbDkM3UWnhezh9UdmeVghAiBRxMlW2o0wEtphtUZRWIiJOaGtXfsQbB4lovkvE4eRIgEhArrDpkX9egpTfGJ6039faVBYxY0ZzrADPpE/Gpl14A3uAAEBH0gDAAAAAAAAFgAU1ZEJG4B0ojde2ZhanEsY7+z9QWUBCGsCRzBEAiB+sNNCO4xiFQ+DoHVrqqk9yM0V4H9ZSyExx1PW7RbjsgIgUeWkQ3L7aAv1xIe7h+8PZb8ECsXg1UzbtPW8wd2qx0UBIQKIO7VGPjfVUlLYs9XCFBsAezfIp9tiEfdclVrMXqMl6wAA",
+ "complete": true
+}
+```
+Ovviamente, dovrai salvare le informazioni `psbt` utilizzando `jq`:
+
+```
+$ psbt_f=$(bitcoin-cli walletprocesspsbt $psbt | jq -r '.psbt')
+```
+
+Puoi vedere che gli `input` sono stati compilati:
+
+```
+$ bitcoin-cli decodepsbt $psbt_f
+{
+ "tx": {
+ "txid": "ea73a631b456d2b041ed73bf5767946408c6ff067716929a68ecda2e3e4de6d3",
+ "hash": "ea73a631b456d2b041ed73bf5767946408c6ff067716929a68ecda2e3e4de6d3",
+ "version": 2,
+ "size": 123,
+ "vsize": 123,
+ "weight": 492,
+ "locktime": 0,
+ "vin": [
+ {
+ "txid": "c6de60427b28d8ec8102e49771e5d0348fc3ef6a5bf02eb864ec745105a6951b",
+ "vout": 1,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967295
+ },
+ {
+ "txid": "8748eff5f12ca886e3603d9e30227dcb3f0332e0706c4322fec96001f7c7f41c",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967295
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.00000650,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "0 c772d6f95542e11ef11e8efc7c7a69830ad38a05",
+ "hex": "0014c772d6f95542e11ef11e8efc7c7a69830ad38a05",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1qcaedd724gts3aug73m78c7nfsv9d8zs9q6h2kd"
+ ]
+ }
+ }
+ ]
+ },
+ "unknown": {
+ },
+ "inputs": [
+ {
+ "witness_utxo": {
+ "amount": 0.00000001,
+ "scriptPubKey": {
+ "asm": "0 6c45d3afa8762086c4bd76d8a71ac7c976e19196",
+ "hex": "00146c45d3afa8762086c4bd76d8a71ac7c976e19196",
+ "type": "witness_v0_keyhash",
+ "address": "tb1qd3za8tagwcsgd39awmv2wxk8e9mwryvktqmkkg"
+ }
+ },
+ "final_scriptwitness": [
+ "304402200a896f1cfa741ccda5f683bb85d95dbf836c390cdd45a785ece1f54766795821022051c4c956da8d3012da61b5465158888939a1ad5dfb106c1e25a2f92f1387912201",
+ "02bac3a645fd7a0a537c627ad37f5f695058c58d19ceb0033e913f1a9975e00dee"
+ ]
+ },
+ {
+ "witness_utxo": {
+ "amount": 0.00000840,
+ "scriptPubKey": {
+ "asm": "0 d591091b8074a2375ed9985a9c4b18efecfd4165",
+ "hex": "0014d591091b8074a2375ed9985a9c4b18efecfd4165",
+ "type": "witness_v0_keyhash",
+ "address": "tb1q6kgsjxuqwj3rwhkenpdfcjccalk06st9z0k0kh"
+ }
+ },
+ "final_scriptwitness": [
+ "304402207eb0d3423b8c62150f83a0756baaa93dc8cd15e07f594b2131c753d6ed16e3b2022051e5a44372fb680bf5c487bb87ef0f65bf040ac5e0d54cdbb4f5bcc1ddaac74501",
+ "02883bb5463e37d55252d8b3d5c2141b007b37c8a7db6211f75c955acc5ea325eb"
+ ]
+ }
+ ],
+ "outputs": [
+ {
+ }
+ ],
+ "fee": 0.00000191
+}
+```
+O per essere più precisi: (1) la PSBT è stata aggiornata con le informazioni `witness_utxo`; (2) la PSBT è stata firmata; e (3) la PSBT è stata finalizzata.
+
+
+## Crea una PSBT in modo semplice
+#### Ruolo PSBT: Creatore, Aggiornatore
+
+Se pensi che dovrebbe esserci un comando equivalente a `fundrawtransaction`, sarai felice di sapere che esiste: `walletcreatefundedpsbt`. Potresti usarlo proprio come `createpsbt`:
+
+```
+$ bitcoin-cli -named walletcreatefundedpsbt inputs='''[ { "txid": "'$utxo_txid_1'", "vout": '$utxo_vout_1' }, { "txid": "'$utxo_txid_2'", "vout": '$utxo_vout_2' } ]''' outputs='''{ "'$recipient'": 0.0000065 }'''
+{
+ "psbt": "cHNidP8BAOwCAAAABBuVpgVRdOxkuC7wW2rvw4800OVxl+QCgezYKHtCYN7GAQAAAAD/////HPTH9wFgyf4iQ2xw4DIDP8t9IjCePWDjhqgs8fXvSIcAAAAAAP/////uFwerANKjyVK6WaR7gzlX+lOf+ORsfjP5LYCSNIbhaAAAAAAA/v///4XjOeey0NyGpJYpszNWF8AFNiuFaWsjkOrk35Jp+9kKAAAAAAD+////AtYjEAAAAAAAFgAUMPsier2ey1eH48oGqrbbYGzNHgKKAgAAAAAAABYAFMdy1vlVQuEe8R6O/Hx6aYMK04oFAAAAAAABAR8BAAAAAAAAABYAFGxF06+odiCGxL122Kcax8l24ZGWIgYCusOmRf16ClN8YnrTf19pUFjFjRnOsAM+kT8amXXgDe4Q1gQ4AAAAAIABAACADgAAgAABAR9IAwAAAAAAABYAFNWRCRuAdKI3XtmYWpxLGO/s/UFlIgYCiDu1Rj431VJS2LPVwhQbAHs3yKfbYhH3XJVazF6jJesQ1gQ4AAAAAIABAACADAAAgAABAIwCAAAAAdVmsvkSBmfeHqNAe/wDCQ5lEp9F/587ftzCD1UL60nMAQAAABcWABRzFxRJfFPl8FJ6SxjAJzy3mCAMXf7///8CQEIPAAAAAAAZdqkUf0NzebzGbEB0XtwYkeprODDhl12IrMEwLQAAAAAAF6kU/d+kMX6XijmD+jWdUrLZlJUnH2iHPhQbACIGA+/e40wACf0XXzsgteWlUX/V0WdG8uY1tEYXra/q68OIENYEOAAAAACAAAAAgBIAAIAAAQEfE4YBAAAAAAAWABTVkQkbgHSiN17ZmFqcSxjv7P1BZSIGAog7tUY+N9VSUtiz1cIUGwB7N8in22IR91yVWsxeoyXrENYEOAAAAACAAQAAgAwAAIAAIgICKMavAB+71Adqsbf+XtC1g/OlmLEuTp3U0axyeu/LAI0Q1gQ4AAAAAIABAACAGgAAgAAA",
+ "fee": 0.00042300,
+ "changepos": 0
+}
+```
+Tuttavia, il grande vantaggio è che puoi usarlo per autofinanziarti tralasciando gli `input`, proprio come `fundrawtransaction`.
+```
+$ psbt_new=$(bitcoin-cli -named walletcreatefundedpsbt inputs='''[]''' outputs='''{ "'$recipient'": 0.0000065 }''' | jq -r '.psbt')
+$ bitcoin-cli decodepsbt $psbt_new
+{
+ "tx": {
+ "txid": "9f2c6205ac797c1020f7f261e3ab71cd0699ff4b1a8934f68b273c71547e235f",
+ "hash": "9f2c6205ac797c1020f7f261e3ab71cd0699ff4b1a8934f68b273c71547e235f",
+ "version": 2,
+ "size": 154,
+ "vsize": 154,
+ "weight": 616,
+ "locktime": 0,
+ "vin": [
+ {
+ "txid": "8748eff5f12ca886e3603d9e30227dcb3f0332e0706c4322fec96001f7c7f41c",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967294
+ },
+ {
+ "txid": "68e1863492802df9337e6ce4f89f53fa5739837ba459ba52c9a3d200ab0717ee",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967294
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.00971390,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "0 09a74ef0bae4d68b0b2ec9a7c4557a2b5c85bd8b",
+ "hex": "001409a74ef0bae4d68b0b2ec9a7c4557a2b5c85bd8b",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1qpxn5au96untgkzewexnug4t69dwgt0vtfahcv6"
+ ]
+ }
+ },
+ {
+ "value": 0.00000650,
+ "n": 1,
+ "scriptPubKey": {
+ "asm": "0 c772d6f95542e11ef11e8efc7c7a69830ad38a05",
+ "hex": "0014c772d6f95542e11ef11e8efc7c7a69830ad38a05",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1qcaedd724gts3aug73m78c7nfsv9d8zs9q6h2kd"
+ ]
+ }
+ }
+ ]
+ },
+ "unknown": {
+ },
+ "inputs": [
+ {
+ "witness_utxo": {
+ "amount": 0.00000840,
+ "scriptPubKey": {
+ "asm": "0 d591091b8074a2375ed9985a9c4b18efecfd4165",
+ "hex": "0014d591091b8074a2375ed9985a9c4b18efecfd4165",
+ "type": "witness_v0_keyhash",
+ "address": "tb1q6kgsjxuqwj3rwhkenpdfcjccalk06st9z0k0kh"
+ }
+ },
+ "bip32_derivs": [
+ {
+ "pubkey": "02883bb5463e37d55252d8b3d5c2141b007b37c8a7db6211f75c955acc5ea325eb",
+ "master_fingerprint": "d6043800",
+ "path": "m/0'/1'/12'"
+ }
+ ]
+ },
+ {
+ "non_witness_utxo": {
+ "txid": "68e1863492802df9337e6ce4f89f53fa5739837ba459ba52c9a3d200ab0717ee",
+ "hash": "68e1863492802df9337e6ce4f89f53fa5739837ba459ba52c9a3d200ab0717ee",
+ "version": 2,
+ "size": 140,
+ "vsize": 140,
+ "weight": 560,
+ "locktime": 1774654,
+ "vin": [
+ {
+ "txid": "cc49eb0b550fc2dc7e3b9fff459f12650e0903fc7b40a31ede670612f9b266d5",
+ "vout": 1,
+ "scriptSig": {
+ "asm": "0014731714497c53e5f0527a4b18c0273cb798200c5d",
+ "hex": "160014731714497c53e5f0527a4b18c0273cb798200c5d"
+ },
+ "sequence": 4294967294
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.01000000,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "OP_DUP OP_HASH160 7f437379bcc66c40745edc1891ea6b3830e1975d OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a9147f437379bcc66c40745edc1891ea6b3830e1975d88ac",
+ "reqSigs": 1,
+ "type": "pubkeyhash",
+ "addresses": [
+ "ms7ruzvL4atCu77n47dStMb3of6iScS8kZ"
+ ]
+ }
+ },
+ {
+ "value": 0.02961601,
+ "n": 1,
+ "scriptPubKey": {
+ "asm": "OP_HASH160 fddfa4317e978a3983fa359d52b2d99495271f68 OP_EQUAL",
+ "hex": "a914fddfa4317e978a3983fa359d52b2d99495271f6887",
+ "reqSigs": 1,
+ "type": "scripthash",
+ "addresses": [
+ "2NGParh82hE2Zif5PVK3AfLpYhfwF5FyRGr"
+ ]
+ }
+ }
+ ]
+ },
+ "bip32_derivs": [
+ {
+ "pubkey": "03efdee34c0009fd175f3b20b5e5a5517fd5d16746f2e635b44617adafeaebc388",
+ "master_fingerprint": "d6043800",
+ "path": "m/0'/0'/18'"
+ }
+ ]
+ }
+ ],
+ "outputs": [
+ {
+ "bip32_derivs": [
+ {
+ "pubkey": "029bb586a52657dd98852cecef78552a4e21d081a7a30e4008ce9b419840d4deac",
+ "master_fingerprint": "d6043800",
+ "path": "m/0'/1'/27'"
+ }
+ ]
+ },
+ {
+ }
+ ],
+ "fee": 0.00028800
+}
+```
+Come puoi vedere, ha creato la PSBT e poi l'ha aggiornata con tutte le informazioni che ha potuto trovare localmente.
+
+Da lì, devi utilizzare `walletprocesspsbt` per finalizzare, come al solito:
+
+```
+$ psbt_new_f=$(bitcoin-cli walletprocesspsbt $psbt_new | jq -r '.psbt')
+```
+
+Successivamente, un'analisi mostrerà che anche questo è quasi pronto:
+
+```
+$ bitcoin-cli analyzepsbt $psbt_new_f
+{
+ "inputs": [
+ {
+ "has_utxo": true,
+ "is_final": true,
+ "next": "extractor"
+ },
+ {
+ "has_utxo": true,
+ "is_final": true,
+ "next": "extractor"
+ }
+ ],
+ "estimated_vsize": 288,
+ "estimated_feerate": 0.00100000,
+ "fee": 0.00028800,
+ "next": "extractor"
+}
+```
+Ora vorresti davvero utilizzare `walletcreatefundedpsbt` se stessi creando un programma `bitcoin-cli`? Probabilmente no. Ma è la stessa analisi dell'utilizzo di `fundrawtransaction`. Lascia che Bitcoin Core esegua l'analisi, i calcoli e le decisioni o lo farai tu?
+
+## Invia una PSBT
+#### Ruolo PSBT: Estrattore
+
+Per finalizzare la PSBT, usa `finalizepsbt`, che trasformerà nuovamente il tuo PSBT in esadecimale. (Assumerà anche il ruolo di Finalizzatore, se ciò non è già accaduto.)
+```
+$ bitcoin-cli finalizepsbt $psbt_f
+{
+ "hex": "020000000001021b95a6055174ec64b82ef05b6aefc38f34d0e57197e40281ecd8287b4260dec60100000000ffffffff1cf4c7f70160c9fe22436c70e032033fcb7d22309e3d60e386a82cf1f5ef48870000000000ffffffff018a02000000000000160014c772d6f95542e11ef11e8efc7c7a69830ad38a050247304402200a896f1cfa741ccda5f683bb85d95dbf836c390cdd45a785ece1f54766795821022051c4c956da8d3012da61b5465158888939a1ad5dfb106c1e25a2f92f13879122012102bac3a645fd7a0a537c627ad37f5f695058c58d19ceb0033e913f1a9975e00dee0247304402207eb0d3423b8c62150f83a0756baaa93dc8cd15e07f594b2131c753d6ed16e3b2022051e5a44372fb680bf5c487bb87ef0f65bf040ac5e0d54cdbb4f5bcc1ddaac745012102883bb5463e37d55252d8b3d5c2141b007b37c8a7db6211f75c955acc5ea325eb00000000",
+ "complete": true
+}
+```
+Come al solito, ti consigliamo di salvarlo e quindi di inviarlo
+
+```
+$ psbt_hex=$(bitcoin-cli finalizepsbt $psbt_f | jq -r '.hex')
+$ bitcoin-cli -named sendrawtransaction hexstring=$psbt_hex
+ea73a631b456d2b041ed73bf5767946408c6ff067716929a68ecda2e3e4de6d3
+```
+## Il flusso di lavoro
+
+Quando crei software per `bitcoin-cli`, è molto probabile che ricoprirai i cinque ruoli principali dei PSBT con `createpsbt`, `walletprocesspsbt` e `finalizepsbt`. Ecco come appare il flusso:
+
+
+
+Se scegli di utilizzare la scorciatoia `walletcreatefundedpsbt`, ecco come appare:
+
+
+
+Infine, se invece hai bisogno di maggiore controllo e scegli di utilizzare `utxoupdatepsbt` (che non è molto documentato qui), hai invece questo flusso di lavoro:
+
+
+
+## Riepilogo: creare una transazione Bitcoin parzialmente firmata
+
+La creazione di una PSBT implica un flusso di lavoro piuttosto complesso di creazione, aggiornamento, firma, finalizzazione ed estrazione di una PSBT, dopo di che viene riconvertita in una transazione grezza. Perché dovresti prenderti tutto quel disturbo? Perché vuoi collaborare tra più utenti o più programmi. Ora che hai compreso questo flusso di lavoro, la sezione successiva presenta alcuni esempi reali di come farlo.
+
+## Qual è il prossimo argomento?
+
+Continua con "Ampliare le transazioni Bitcoin usando PSBT" nel [Capitolo 7.2: Usare una Transazione Bitcoin Parzialmente Firmata](07_2_Usare_una_Transazione_Bitcoin_Parzialmente_Firmata.md).
diff --git a/it/07_2_Usare_una_Transazione_Bitcoin_Parzialmente_Firmata.md b/it/07_2_Usare_una_Transazione_Bitcoin_Parzialmente_Firmata.md
new file mode 100644
index 000000000..af1c98dde
--- /dev/null
+++ b/it/07_2_Usare_una_Transazione_Bitcoin_Parzialmente_Firmata.md
@@ -0,0 +1,602 @@
+# 7.2: Usare una transazione Bitcoin parzialmente firmata
+
+> :information_source: **NOTA:** Questa sezione è stata aggiunta di recente al corso ed è una bozza iniziale che potrebbe essere ancora in attesa di revisione. Letto avvertito.
+
+Ora che hai imparato il flusso di lavoro di base per generare un PSBT, probabilmente vorrai farci qualcosa. Cosa possono fare i PSBT che i multi-sig (e le normali transazioni grezze) non possonofare? Per cominciare, hai la facilità d'uso di un formato standardizzato, il che significa che puoi utilizzare le tue transazioni "bitcoin-cli" e combinarle con transazioni generate da persone (o programmi) su altre piattaforme. Oltre a ciò, puoi fare alcune cose che semplicemente non sarebbero facili usando altre meccaniche.
+
+Di seguito sono riportati tre esempi di utilizzo dei PSBT per: multi-sigs, pooling di denaro e coinjoin.
+
+> :avviso: **AVVISO di VERSIONE:** Questa è un'innovazione di Bitcoin Core v 0.17.0. Le versioni precedenti di Bitcoin Core non saranno in grado di funzionare con il PSBT mentre è in corso (sebbene saranno comunque in grado di riconoscere la transazione finale).
+
+## Usa una PSBT per spendere fondi MultiSig
+
+Supponiamo di aver creato un indirizzo multisig, proprio come hai fatto nel [Capitolo 6.3](06_3_Inviare_e_Ricevere_una_Multifirma_Automatizzata.md)..
+```
+machine1$ bitcoin-cli -named addmultisigaddress nrequired=2 keys='''["'$pubkey1'","'$pubkey2'"]'''
+{
+ "address": "tb1qyfxt2qa877p40xdecghwps78my7sjq6kuv88qq2u86al5526xp6qfqjud0",
+ "redeemScript": "5221038d73adf2c7ea33f9dc34b77b62b59af433c1de9c763332da79e83e155f96030e2103789f543423670e169667ff7e1f2da2a97df1b0912272e142d582451acebd063652ae",
+ "descriptor": "wsh(multi(2,[d6043800/0'/0'/26']038d73adf2c7ea33f9dc34b77b62b59af433c1de9c763332da79e83e155f96030e,[be686772]03789f543423670e169667ff7e1f2da2a97df1b0912272e142d582451acebd0636))#07zyayfk"
+}
+machine1$ bitcoin-cli -named importaddress address="tb1qyfxt2qa877p40xdecghwps78my7sjq6kuv88qq2u86al5526xp6qfqjud0" rescan=false
+
+machine2$ bitcoin-cli -named addmultisigaddress nrequired=2 keys='''["'$pubkey1'","'$pubkey2'"]'''
+{
+ "address": "tb1qyfxt2qa877p40xdecghwps78my7sjq6kuv88qq2u86al5526xp6qfqjud0",
+ "redeemScript": "5221038d73adf2c7ea33f9dc34b77b62b59af433c1de9c763332da79e83e155f96030e2103789f543423670e169667ff7e1f2da2a97df1b0912272e142d582451acebd063652ae",
+ "descriptor": "wsh(multi(2,[d6043800/0'/0'/26']038d73adf2c7ea33f9dc34b77b62b59af433c1de9c763332da79e83e155f96030e,[be686772]03789f543423670e169667ff7e1f2da2a97df1b0912272e142d582451acebd0636))#07zyayfk"
+}
+machine2$ bitcoin-cli -named importaddress address="tb1qyfxt2qa877p40xdecghwps78my7sjq6kuv88qq2u86al5526xp6qfqjud0" rescan=false
+```
+E hai dei soldi dentro:
+```
+$ bitcoin-cli listunspent
+[
+ {
+ "txid": "53ec62c5c2fe8b16ee2164e9699d16c7b8ac30ec53a696e55f09b79704b539b5",
+ "vout": 0,
+ "address": "tb1qyfxt2qa877p40xdecghwps78my7sjq6kuv88qq2u86al5526xp6qfqjud0",
+ "label": "",
+ "witnessScript": "5221038d73adf2c7ea33f9dc34b77b62b59af433c1de9c763332da79e83e155f96030e2103789f543423670e169667ff7e1f2da2a97df1b0912272e142d582451acebd063652ae",
+ "scriptPubKey": "0020224cb503a7f7835799b9c22ee0c3c7d93d090356e30e70015c3ebbfa515a3074",
+ "amount": 0.01999800,
+ "confirmations": 2,
+ "spendable": false,
+ "solvable": true,
+ "desc": "wsh(multi(2,[d6043800/0'/0'/26']038d73adf2c7ea33f9dc34b77b62b59af433c1de9c763332da79e83e155f96030e,[be686772]03789f543423670e169667ff7e1f2da2a97df1b0912272e142d582451acebd0636))#07zyayfk",
+ "safe": true
+ }
+]
+```
+Potresti _potresti_ spendere le monere utilizzando i meccanismi visti nel [Capitolo 6](06_0_Ampliare_le_Transazioni_Bitcoin_con_Multifirme.md), dove hai firmato in serie una transazione, ma invece mostreremo il vantaggio dei PSBT per multi-sigs: puoi generare una singola PSBT, consentire tutti di firmare in parallelo e poi a combinare i risultati! Non è più necessario passare faticosamente un hex in continua espansione da persona a persona, il che accelera le cose e riduce le possibilità di errori.
+
+Per dimostrare questa metodologia, estrarremo quegli 0,02 BTC dal multi-sig e li divideremo tra i due firmatari, ciascuno dei quali ha generato un nuovo indirizzo a tale scopo:
+```
+machine1$ bitcoin-cli getnewaddress
+tb1qem5l3q5g5h6fsqv352xh4cy07kzq2rd8gphqma
+machine2$ bitcoin-cli getnewaddress
+tb1q3krplahg4ncu523m8h2eephjazs2hf6ur8r6zp
+```
+La prima cosa che facciamo è creare un PSBT sulla macchina di nostra scelta. (Non importa quale.) Dobbiamo utilizzare `createpsbt` come visto nel[Capitolo 7.1](07_1_Creare_una_Transazione_Bitcoin_Parzialmente_Firmata.md) per questo, non il più semplice `walletcreatefundedpsbt`, perché abbiamo bisogno del controllo extra della selezione del denaro protetto dal multi -sig. (Questo sarà il caso di tutti e tre gli esempi in questa sezione, il che dimostra perché di solito è necessario utilizzare `createpsbt` per cose complesse.)
+```
+machine1$ utxo_txid=53ec62c5c2fe8b16ee2164e9699d16c7b8ac30ec53a696e55f09b79704b539b5
+machine1$ utxo_vout=0
+machine1$ split1=tb1qem5l3q5g5h6fsqv352xh4cy07kzq2rd8gphqma
+machine1$ split2=tb1q3krplahg4ncu523m8h2eephjazs2hf6ur8r6zp
+machine1$ psbt=$(bitcoin-cli -named createpsbt inputs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout' } ]''' outputs='''{ "'$split1'": 0.009998,"'$split2'": 0.009998 }''')
+```
+Dovrai quindi inviare $psbt a tutti per la firma:
+```
+machine1$ echo $psbt
+cHNidP8BAHECAAAAAbU5tQSXtwlf5ZamU+wwrLjHFp1p6WQh7haL/sLFYuxTAAAAAAD/////AnhBDwAAAAAAFgAUzun4goil9JgBkaKNeuCP9YQFDad4QQ8AAAAAABYAFI2GH/borPHKKjs91ZyG8uigq6dcAAAAAAAAAAA=
+```
+Ma devi solo inviarlo una volta! E lo fai contemporaneamente.
+Ecco il risultato sulla prima macchina, dove generiamo il PSBT:
+```
+machine1$ psbt_p1=$(bitcoin-cli walletprocesspsbt $psbt | jq -r '.psbt')
+machine1$ bitcoin-cli decodepsbt $psbt_p1
+{
+ "tx": {
+ "txid": "1687e89fcb9dd3067f75495b4884dc1d4d1cf05a6c272b783cfe29eb5d22e985",
+ "hash": "1687e89fcb9dd3067f75495b4884dc1d4d1cf05a6c272b783cfe29eb5d22e985",
+ "version": 2,
+ "size": 113,
+ "vsize": 113,
+ "weight": 452,
+ "locktime": 0,
+ "vin": [
+ {
+ "txid": "25e8a26f60cf485768a1e6953b983675c867b7ab126b02e753c47b7db0c4be5e",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967295
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.00499900,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "0 cee9f88288a5f4980191a28d7ae08ff584050da7",
+ "hex": "0014cee9f88288a5f4980191a28d7ae08ff584050da7",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1qem5l3q5g5h6fsqv352xh4cy07kzq2rd8gphqma"
+ ]
+ }
+ },
+ {
+ "value": 0.00049990,
+ "n": 1,
+ "scriptPubKey": {
+ "asm": "0 8d861ff6e8acf1ca2a3b3dd59c86f2e8a0aba75c",
+ "hex": "00148d861ff6e8acf1ca2a3b3dd59c86f2e8a0aba75c",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1q3krplahg4ncu523m8h2eephjazs2hf6ur8r6zp"
+ ]
+ }
+ }
+ ]
+ },
+ "unknown": {
+ },
+ "inputs": [
+ {
+ "witness_utxo": {
+ "amount": 0.01000000,
+ "scriptPubKey": {
+ "asm": "0 2abb5d49ce7e753cbf5a9ffa8cdaf815bf1074f5c0bf495a93df8eb5112f65aa",
+ "hex": "00202abb5d49ce7e753cbf5a9ffa8cdaf815bf1074f5c0bf495a93df8eb5112f65aa",
+ "type": "witness_v0_scripthash",
+ "address": "tb1q92a46jww0e6ne066nlagekhczkl3qa84czl5jk5nm78t2yf0vk4qte328m"
+ }
+ },
+ "partial_signatures": {
+ "03f52980d322acaf084bcef3216f3d84bfb672d1db26ce2861de3ec047bede140d": "304402203abb95d1965e4cea630a8b4890456d56698ff2dd5544cb79303cc28cb011cbb40220701faa927f8a19ca79b09d35c78d8d0a2187872117d9308805f7a896b07733f901"
+ },
+ "witness_script": {
+ "asm": "2 033055ec2da9bbb34c2acb343692bfbecdef8fab8d114f0036eba01baec3888aa0 03f52980d322acaf084bcef3216f3d84bfb672d1db26ce2861de3ec047bede140d 2 OP_CHECKMULTISIG",
+ "hex": "5221033055ec2da9bbb34c2acb343692bfbecdef8fab8d114f0036eba01baec3888aa02103f52980d322acaf084bcef3216f3d84bfb672d1db26ce2861de3ec047bede140d52ae",
+ "type": "multisig"
+ },
+ "bip32_derivs": [
+ {
+ "pubkey": "033055ec2da9bbb34c2acb343692bfbecdef8fab8d114f0036eba01baec3888aa0",
+ "master_fingerprint": "c1fdfe64",
+ "path": "m"
+{
+ "tx": {
+ "txid": "ee82d3e0d225e0fb919130d68c5052b6e3c362c866acc54d89af975330bb4d16",
+ "hash": "ee82d3e0d225e0fb919130d68c5052b6e3c362c866acc54d89af975330bb4d16",
+ "version": 2,
+ "size": 113,
+ "vsize": 113,
+ "weight": 452,
+ "locktime": 0,
+ "vin": [
+ {
+ "txid": "53ec62c5c2fe8b16ee2164e9699d16c7b8ac30ec53a696e55f09b79704b539b5",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967295
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.00999800,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "0 cee9f88288a5f4980191a28d7ae08ff584050da7",
+ "hex": "0014cee9f88288a5f4980191a28d7ae08ff584050da7",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1qem5l3q5g5h6fsqv352xh4cy07kzq2rd8gphqma"
+ ]
+ }
+ },
+ {
+ "value": 0.00999800,
+ "n": 1,
+ "scriptPubKey": {
+ "asm": "0 8d861ff6e8acf1ca2a3b3dd59c86f2e8a0aba75c",
+ "hex": "00148d861ff6e8acf1ca2a3b3dd59c86f2e8a0aba75c",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1q3krplahg4ncu523m8h2eephjazs2hf6ur8r6zp"
+ ]
+ }
+ }
+ ]
+ },
+ "unknown": {
+ },
+ "inputs": [
+ {
+ "witness_utxo": {
+ "amount": 0.01999800,
+ "scriptPubKey": {
+ "asm": "0 224cb503a7f7835799b9c22ee0c3c7d93d090356e30e70015c3ebbfa515a3074",
+ "hex": "0020224cb503a7f7835799b9c22ee0c3c7d93d090356e30e70015c3ebbfa515a3074",
+ "type": "witness_v0_scripthash",
+ "address": "tb1qyfxt2qa877p40xdecghwps78my7sjq6kuv88qq2u86al5526xp6qfqjud0"
+ }
+ },
+ "partial_signatures": {
+ "038d73adf2c7ea33f9dc34b77b62b59af433c1de9c763332da79e83e155f96030e": "3044022040aae4f2ba37b1526524195f4a325d97d1317227b3c82aea55c5abd66810a7ec0220416e7c03e70a31232044addba454d6b37b6ace39ab163315d3293e343ae9513301"
+ },
+ "witness_script": {
+ "asm": "2 038d73adf2c7ea33f9dc34b77b62b59af433c1de9c763332da79e83e155f96030e 03789f543423670e169667ff7e1f2da2a97df1b0912272e142d582451acebd0636 2 OP_CHECKMULTISIG",
+ "hex": "5221038d73adf2c7ea33f9dc34b77b62b59af433c1de9c763332da79e83e155f96030e2103789f543423670e169667ff7e1f2da2a97df1b0912272e142d582451acebd063652ae",
+ "type": "multisig"
+ },
+ "bip32_derivs": [
+ {
+ "pubkey": "03789f543423670e169667ff7e1f2da2a97df1b0912272e142d582451acebd0636",
+ "master_fingerprint": "be686772",
+ "path": "m"
+ },
+ {
+ "pubkey": "038d73adf2c7ea33f9dc34b77b62b59af433c1de9c763332da79e83e155f96030e",
+ "master_fingerprint": "d6043800",
+ "path": "m/0'/0'/26'"
+ }
+ ]
+ }
+ ],
+ "outputs": [
+ {
+ "bip32_derivs": [
+ {
+ "pubkey": "02fce26085452d07abc63bd389cb7dba9871e79bbecd08039291226be8232a9000",
+ "master_fingerprint": "d6043800",
+ "path": "m/0'/0'/24'"
+ }
+ ]
+ },
+ {
+ }
+ ],
+ "fee": 0.00000200
+}
+machine1$ bitcoin-cli analyzepsbt $psbt_p1
+{
+ "inputs": [
+ {
+ "has_utxo": true,
+ "is_final": false,
+ "next": "signer",
+ "missing": {
+ "signatures": [
+ "be6867729bcc35ed065bb4c937557d371218a8e2"
+ ]
+ }
+ }
+ ],
+ "estimated_vsize": 168,
+ "estimated_feerate": 0.00001190,
+ "fee": 0.00000200,
+ "next": "signer"
+}
+
+```
+Questo dimostra che le informazioni UTXO sono state importate, e che c'è una _firma parziale_, ma che la firma del singolo input non è ancora completa.
+
+Ecco la stessa cosa sull'altra macchina:
+```
+machine2$ psbt=cHNidP8BAHECAAAAAbU5tQSXtwlf5ZamU+wwrLjHFp1p6WQh7haL/sLFYuxTAAAAAAD/////AnhBDwAAAAAAFgAUzun4goil9JgBkaKNeuCP9YQFDad4QQ8AAAAAABYAFI2GH/borPHKKjs91ZyG8uigq6dcAAAAAAAAAAA=
+machine2$ psbt_p2=$(bitcoin-cli walletprocesspsbt $psbt | jq -r '.psbt')
+machine3$ echo $psbt_p2
+cHNidP8BAHECAAAAAbU5tQSXtwlf5ZamU+wwrLjHFp1p6WQh7haL/sLFYuxTAAAAAAD/////AnhBDwAAAAAAFgAUzun4goil9JgBkaKNeuCP9YQFDad4QQ8AAAAAABYAFI2GH/borPHKKjs91ZyG8uigq6dcAAAAAAABASu4gx4AAAAAACIAICJMtQOn94NXmbnCLuDDx9k9CQNW4w5wAVw+u/pRWjB0IgIDeJ9UNCNnDhaWZ/9+Hy2iqX3xsJEicuFC1YJFGs69BjZHMEQCIDJ71isvR2We6ym1QByLV5SQ+XEJD0SAP76fe1JU5PZ/AiB3V7ejl2H+9LLS6ubqYr/bSKfRfEqrp2FCMISjrWGZ6QEBBUdSIQONc63yx+oz+dw0t3titZr0M8HenHYzMtp56D4VX5YDDiEDeJ9UNCNnDhaWZ/9+Hy2iqX3xsJEicuFC1YJFGs69BjZSriIGA3ifVDQjZw4Wlmf/fh8toql98bCRInLhQtWCRRrOvQY2ENPtiCUAAACAAAAAgAYAAIAiBgONc63yx+oz+dw0t3titZr0M8HenHYzMtp56D4VX5YDDgRZu4lPAAAiAgNJzEMyT3rZS7QHqb8SvFCv2ee0MKRyVy8bY8tVUDT1KhDT7YglAAAAgAAAAIADAACAAA==
+```
+Tieni presente che abbiamo gestito la firma di questo multi-sig generando un PSBT non firmato ma contenendo l'UTXO corretto, consentendo quindi a ciascuno degli utenti di elaborare quel PSBT per conto proprio, aggiungendo input e firme. Di conseguenza, abbiamo due PSBT, ciascuno dei quali contiene una firma e non l'altra. Ciò non funzionerebbe nel classico scenario multi-sig, perché tutte le firme devono essere serializzate. Qui, invece, possiamo firmare in parallelo e poi utilizzare il ruolo "Combinatore" per mescolarli insieme.
+
+Andiamo di nuovo su una delle due macchine e ci assicuriamo di avere entrambi i PSBT nelle variabili, quindi li combiniamo:
+```
+machine1$ psbt_p2="cHNidP8BAHECAAAAAbU5tQSXtwlf5ZamU+wwrLjHFp1p6WQh7haL/sLFYuxTAAAAAAD/////AnhBDwAAAAAAFgAUzun4goil9JgBkaKNeuCP9YQFDad4QQ8AAAAAABYAFI2GH/borPHKKjs91ZyG8uigq6dcAAAAAAABAIcCAAAAAtu5pTheUzdsTaMCEPj3XKboMAyYzABmIIeOWMhbhTYlAAAAAAD//////uSTLbibcqSd/Z9ieSBWJ2psv+9qvoGrzWEa60rCx9cAAAAAAP////8BuIMeAAAAAAAiACAiTLUDp/eDV5m5wi7gw8fZPQkDVuMOcAFcPrv6UVowdAAAAAAAACICA0nMQzJPetlLtAepvxK8UK/Z57QwpHJXLxtjy1VQNPUqENPtiCUAAACAAAAAgAMAAIAA"
+machine2$ psbt_c=$(bitcoin-cli combinepsbt '''["'$psbt_p1'", "'$psbt_p2'"]''')
+$ bitcoin-cli decodepsbt $psbt_c
+{
+ "tx": {
+ "txid": "ee82d3e0d225e0fb919130d68c5052b6e3c362c866acc54d89af975330bb4d16",
+ "hash": "ee82d3e0d225e0fb919130d68c5052b6e3c362c866acc54d89af975330bb4d16",
+ "version": 2,
+ "size": 113,
+ "vsize": 113,
+ "weight": 452,
+ "locktime": 0,
+ "vin": [
+ {
+ "txid": "53ec62c5c2fe8b16ee2164e9699d16c7b8ac30ec53a696e55f09b79704b539b5",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967295
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.00999800,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "0 cee9f88288a5f4980191a28d7ae08ff584050da7",
+ "hex": "0014cee9f88288a5f4980191a28d7ae08ff584050da7",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1qem5l3q5g5h6fsqv352xh4cy07kzq2rd8gphqma"
+ ]
+ }
+ },
+ {
+ "value": 0.00999800,
+ "n": 1,
+ "scriptPubKey": {
+ "asm": "0 8d861ff6e8acf1ca2a3b3dd59c86f2e8a0aba75c",
+ "hex": "00148d861ff6e8acf1ca2a3b3dd59c86f2e8a0aba75c",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1q3krplahg4ncu523m8h2eephjazs2hf6ur8r6zp"
+ ]
+ }
+ }
+ ]
+ },
+ "unknown": {
+ },
+ "inputs": [
+ {
+ "witness_utxo": {
+ "amount": 0.01999800,
+ "scriptPubKey": {
+ "asm": "0 224cb503a7f7835799b9c22ee0c3c7d93d090356e30e70015c3ebbfa515a3074",
+ "hex": "0020224cb503a7f7835799b9c22ee0c3c7d93d090356e30e70015c3ebbfa515a3074",
+ "type": "witness_v0_scripthash",
+ "address": "tb1qyfxt2qa877p40xdecghwps78my7sjq6kuv88qq2u86al5526xp6qfqjud0"
+ }
+ },
+ "partial_signatures": {
+ "038d73adf2c7ea33f9dc34b77b62b59af433c1de9c763332da79e83e155f96030e": "3044022040aae4f2ba37b1526524195f4a325d97d1317227b3c82aea55c5abd66810a7ec0220416e7c03e70a31232044addba454d6b37b6ace39ab163315d3293e343ae9513301",
+ "03789f543423670e169667ff7e1f2da2a97df1b0912272e142d582451acebd0636": "30440220327bd62b2f47659eeb29b5401c8b579490f971090f44803fbe9f7b5254e4f67f02207757b7a39761fef4b2d2eae6ea62bfdb48a7d17c4aaba761423084a3ad6199e901"
+ },
+ "witness_script": {
+ "asm": "2 038d73adf2c7ea33f9dc34b77b62b59af433c1de9c763332da79e83e155f96030e 03789f543423670e169667ff7e1f2da2a97df1b0912272e142d582451acebd0636 2 OP_CHECKMULTISIG",
+ "hex": "5221038d73adf2c7ea33f9dc34b77b62b59af433c1de9c763332da79e83e155f96030e2103789f543423670e169667ff7e1f2da2a97df1b0912272e142d582451acebd063652ae",
+ "type": "multisig"
+ },
+ "bip32_derivs": [
+ {
+ "pubkey": "03789f543423670e169667ff7e1f2da2a97df1b0912272e142d582451acebd0636",
+ "master_fingerprint": "be686772",
+ "path": "m"
+ },
+ {
+ "pubkey": "038d73adf2c7ea33f9dc34b77b62b59af433c1de9c763332da79e83e155f96030e",
+ "master_fingerprint": "d6043800",
+ "path": "m/0'/0'/26'"
+ }
+ ]
+ }
+ ],
+ "outputs": [
+ {
+ "bip32_derivs": [
+ {
+ "pubkey": "02fce26085452d07abc63bd389cb7dba9871e79bbecd08039291226be8232a9000",
+ "master_fingerprint": "d6043800",
+ "path": "m/0'/0'/24'"
+ }
+ ]
+ },
+ {
+ "bip32_derivs": [
+ {
+ "pubkey": "0349cc43324f7ad94bb407a9bf12bc50afd9e7b430a472572f1b63cb555034f52a",
+ "master_fingerprint": "d3ed8825",
+ "path": "m/0'/0'/3'"
+ }
+ ]
+ }
+ ],
+ "fee": 0.00000200
+}
+$ bitcoin-cli analyzepsbt $psbt_c
+{
+ "inputs": [
+ {
+ "has_utxo": true,
+ "is_final": false,
+ "next": "finalizer"
+ }
+ ],
+ "estimated_vsize": 168,
+ "estimated_feerate": 0.00001190,
+ "fee": 0.00000200,
+ "next": "finalizer"
+}
+```
+Ha funzionato! Basta finalizzare e inviare e il gioco è fatto:
+```
+machine2$ psbt_c_hex=$(bitcoin-cli finalizepsbt $psbt_c | jq -r '.hex')
+standup@btctest2:~$ bitcoin-cli -named sendrawtransaction hexstring=$psbt_c_hex
+ee82d3e0d225e0fb919130d68c5052b6e3c362c866acc54d89af975330bb4d16
+```
+Ovviamente, non c'è stato un grande miglioramento nell'usare questo metodo rispetto alla firma seriale di una transazione per un multisig 2 su 2 quando tutti usavano `bitcoin-cli`: avremmo potuto passare una transazione grezza con firme parziali da un utente a l'altro con la stessa facilità con cui invii quel PSBT. Ma questo era il caso più semplice. Man mano che approfondiamo multisig più complessi, questa metodologia diventa sempre migliore.
+
+Prima di tutto, è indipendente dalla piattaforma. Finché tutti utilizzano un servizio che supporta Bitcoin Core 0.17, saranno tutti in grado di firmare questa transazione, il che non è vero quando i classici multi-sig vengono trasmessi tra piattaforme diverse.
+
+In secondo luogo, è molto più scalabile. Considera un multisig 3 su 5. Secondo la vecchia metodologia la strringa 'hex' dovrebbe passare da persona a persona, aumentando notevolmente i problemi in caso di rottura di un singolo anello della catena. Qui, gli altri utenti devono semplicemente rispedire i PSBT al Creatore e, non appena ne avrà abbastanza, potrà generare la transazione finale.
+
+## Usa un PSBT per raggruppare denaro
+
+I multisig come quello utilizzato nell'esempio precedente vengono spesso utilizzati per ricevere pagamenti per il lavoro collaborativo, che si tratti di royalty per un libro o di pagamenti effettuati a un'azienda. In quella situazione, l’esempio sopra funziona alla grande: i due partecipanti ricevono i loro soldi che poi si dividono. Ma che dire del caso contrario, in cui due (o più) partecipanti vogliono costituire una joint venture e hanno bisogno di finanziarla?
+
+La risposta tradizionale è creare un multisig, quindi chiedere ai partecipanti di inviarvi i propri fondi individualmente. Il problema è che il primo pagatore deve dipendere dalla buona fede del secondo, e questo non si basa sulla forza di Bitcoin, che non necessita della _fiducia_ altrui. Fortunatamente, con l’avvento dei PSBT, ora possiamo effettuare pagamenti trustless che mettono in comune i fondi.
+
+> :book: ***Cosa significa trustless?*** "Senza fiducia" significa che nessun partecipante ha bisogno di fidarsi degli altri partecipanti. Si aspettano invece che i protocolli software garantiscano che tutto venga attuato in modo equo e nel modo previsto. Bitcoin è un protocollo trustless perché non è necessario che nessun altro agisca in buona fede; il sistema lo gestisce. Allo stesso modo, i PSBT consentono la creazione trustless di transazioni che mettono in comune o dividono i fondi.
+
+L'esempio seguente mostra due utenti che hanno ciascuno 0,010 BTC che desiderano raggruppare nell'indirizzo multisig `tb1qyfxt2qa877p40xdecghwps78my7sjq6kuv88qq2u86al5526xp6qfqjud0`, creato sopra.
+```
+machine1$ bitcoin-cli listunspent
+[
+ {
+ "txid": "2536855bc8588e87206600cc980c30e8a65cf7f81002a34d6c37535e38a5b9db",
+ "vout": 0,
+ "address": "tb1qfg5y4fx979xkv4ezatc5eevufc8vh45553n4ut",
+ "label": "",
+ "scriptPubKey": "00144a284aa4c5f14d665722eaf14ce59c4e0ecbd694",
+ "amount": 0.01000000,
+ "confirmations": 2,
+ "spendable": true,
+ "solvable": true,
+ "desc": "wpkh([d6043800/0'/0'/25']02bea222cf9ea1f49b392103058cc7c8741d76a553fe627c1c43fc3ef4404c9d54)#4hnkg9ml",
+ "safe": true
+ }
+]
+machine2$ bitcoin-cli listunspent
+[
+ {
+ "txid": "d7c7c24aeb1a61cdab81be6aefbf6c6a27562079629ffd9da4729bb82d93e4fe",
+ "vout": 0,
+ "address": "tb1qfqyyw6xrghm5kcrpkus3kl2l6dz4tpwrvn5ujs",
+ "label": "",
+ "scriptPubKey": "001448084768c345f74b6061b7211b7d5fd3455585c3",
+ "amount": 0.01000000,
+ "confirmations": 5363,
+ "spendable": true,
+ "solvable": true,
+ "desc": "wpkh([d3ed8825/0'/0'/0']03ff6b94c119582a63dbae4fb530efab0ed5635f7c3b2cf171264ca0af3ecef33a)#gtmd2e2k",
+ "safe": true
+ }
+]
+```
+Impostano variabili per utilizzare tali transazioni:
+```
+machine1$ utxo_txid_1=2536855bc8588e87206600cc980c30e8a65cf7f81002a34d6c37535e38a5b9db
+machine1$ utxo_vout_1=0
+machine1$ utxo_txid_2=d7c7c24aeb1a61cdab81be6aefbf6c6a27562079629ffd9da4729bb82d93e4fe
+machine1$ utxo_vout_2=0
+machine1$ multisig=tb1qyfxt2qa877p40xdecghwps78my7sjq6kuv88qq2u86al5526xp6qfqjud0
+
+```
+E creano la PSBT:
+```
+machine1$ psbt=$(bitcoin-cli -named createpsbt inputs='''[ { "txid": "'$utxo_txid_1'", "vout": '$utxo_vout_1' }, { "txid": "'$utxo_txid_2'", "vout": '$utxo_vout_2' } ]''' outputs='''{ "'$multisig'": 0.019998 }''')
+```
+Ecco come si vede:
+```
+machine1$ bitcoin-cli decodepsbt $psbt
+{
+ "tx": {
+ "txid": "53ec62c5c2fe8b16ee2164e9699d16c7b8ac30ec53a696e55f09b79704b539b5",
+ "hash": "53ec62c5c2fe8b16ee2164e9699d16c7b8ac30ec53a696e55f09b79704b539b5",
+ "version": 2,
+ "size": 135,
+ "vsize": 135,
+ "weight": 540,
+ "locktime": 0,
+ "vin": [
+ {
+ "txid": "2536855bc8588e87206600cc980c30e8a65cf7f81002a34d6c37535e38a5b9db",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967295
+ },
+ {
+ "txid": "d7c7c24aeb1a61cdab81be6aefbf6c6a27562079629ffd9da4729bb82d93e4fe",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967295
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.01999800,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "0 224cb503a7f7835799b9c22ee0c3c7d93d090356e30e70015c3ebbfa515a3074",
+ "hex": "0020224cb503a7f7835799b9c22ee0c3c7d93d090356e30e70015c3ebbfa515a3074",
+ "reqSigs": 1,
+ "type": "witness_v0_scripthash",
+ "addresses": [
+ "tb1qyfxt2qa877p40xdecghwps78my7sjq6kuv88qq2u86al5526xp6qfqjud0"
+ ]
+ }
+ }
+ ]
+ },
+ "unknown": {
+ },
+ "inputs": [
+ {
+ },
+ {
+ }
+ ],
+ "outputs": [
+ {
+ }
+ ]
+}
+```
+Non importa che le transazioni siano di proprietà di due persone diverse o che le loro informazioni complete appaiano su due macchine diverse. Questo PSBT di finanziamento funzionerà esattamente come il PSBT multisig: una volta che tutte le parti controllanti avranno firmato, la transazione potrà essere finalizzata.
+
+Ecco il processo, questa volta passando il PSBT parzialmente firmato da un utente all'altro invece di dover combinare le cose alla fine.
+```
+machine1$ bitcoin-cli walletprocesspsbt $psbt
+{
+ "psbt": "cHNidP8BAIcCAAAAAtu5pTheUzdsTaMCEPj3XKboMAyYzABmIIeOWMhbhTYlAAAAAAD//////uSTLbibcqSd/Z9ieSBWJ2psv+9qvoGrzWEa60rCx9cAAAAAAP////8BuIMeAAAAAAAiACAiTLUDp/eDV5m5wi7gw8fZPQkDVuMOcAFcPrv6UVowdAAAAAAAAQEfQEIPAAAAAAAWABRKKEqkxfFNZlci6vFM5ZxODsvWlAEIawJHMEQCIGAiKIAWRXiw68o3pw61/cVNP7n2oH73S654XXgQ4kjHAiBtTBqmaF1iIzYGXrG4DadH8y6mTuCRVFDiPl+TLQDBJwEhAr6iIs+eofSbOSEDBYzHyHQddqVT/mJ8HEP8PvRATJ1UAAABAUdSIQONc63yx+oz+dw0t3titZr0M8HenHYzMtp56D4VX5YDDiEDeJ9UNCNnDhaWZ/9+Hy2iqX3xsJEicuFC1YJFGs69BjZSriICA3ifVDQjZw4Wlmf/fh8toql98bCRInLhQtWCRRrOvQY2BL5oZ3IiAgONc63yx+oz+dw0t3titZr0M8HenHYzMtp56D4VX5YDDhDWBDgAAAAAgAAAAIAaAACAAA==",
+ "complete": false
+}
+
+machine2$ psbt_p="cHNidP8BAIcCAAAAAtu5pTheUzdsTaMCEPj3XKboMAyYzABmIIeOWMhbhTYlAAAAAAD//////uSTLbibcqSd/Z9ieSBWJ2psv+9qvoGrzWEa60rCx9cAAAAAAP////8BuIMeAAAAAAAiACAiTLUDp/eDV5m5wi7gw8fZPQkDVuMOcAFcPrv6UVowdAAAAAAAAQEfQEIPAAAAAAAWABRKKEqkxfFNZlci6vFM5ZxODsvWlAEIawJHMEQCIGAiKIAWRXiw68o3pw61/cVNP7n2oH73S654XXgQ4kjHAiBtTBqmaF1iIzYGXrG4DadH8y6mTuCRVFDiPl+TLQDBJwEhAr6iIs+eofSbOSEDBYzHyHQddqVT/mJ8HEP8PvRATJ1UAAABAUdSIQONc63yx+oz+dw0t3titZr0M8HenHYzMtp56D4VX5YDDiEDeJ9UNCNnDhaWZ/9+Hy2iqX3xsJEicuFC1YJFGs69BjZSriICA3ifVDQjZw4Wlmf/fh8toql98bCRInLhQtWCRRrOvQY2BL5oZ3IiAgONc63yx+oz+dw0t3titZr0M8HenHYzMtp56D4VX5YDDhDWBDgAAAAAgAAAAIAaAACAAA=="
+machine2$ psbt_f=$(bitcoin-cli walletprocesspsbt $psbt_p | jq -r '.psbt')
+machine2$ bitcoin-cli analyzepsbt $psbt_f
+{
+ "inputs": [
+ {
+ "has_utxo": true,
+ "is_final": true,
+ "next": "extractor"
+ },
+ {
+ "has_utxo": true,
+ "is_final": true,
+ "next": "extractor"
+ }
+ ],
+ "estimated_vsize": 189,
+ "estimated_feerate": 0.00001058,
+ "fee": 0.00000200,
+ "next": "extractor"
+}
+machine2$ psbt_hex=$(bitcoin-cli finalizepsbt $psbt_f | jq -r '.hex')
+machine2$ bitcoin-cli -named sendrawtransaction hexstring=$psbt_hex
+53ec62c5c2fe8b16ee2164e9699d16c7b8ac30ec53a696e55f09b79704b539b5
+```
+Abbiamo utilizzato una PSBT per raccogliere denaro in un multisig senza dover fidarci!
+
+## Usa una PSBT per CoinJoin
+
+CoinJoin è un'altra applicazione Bitcoin che richiede fiducia. Qui hai una varietà di parti che non necessariamente si conoscono che uniscono i soldi e li recuperano.
+
+La metodologia per gestirlo con le PSBT è esattamente la stessa che hai visto negli esempi precedenti, come dimostra il seguente pseudo-codice:
+```
+$ psbt=$(bitcoin-cli -named createpsbt inputs='''[ { "txid": "'$utxo_txid_1'", "vout": '$utxo_vout_1' }, { "txid": "'$utxo_txid_2'", "vout": '$utxo_vout_2' }, { "txid": "'$utxo_txid_3'", "vout": '$utxo_vout_3' } ]''' outputs='''{ "'$split1'": 1.7,"'$split2'": 0.93,"'$split3'": 1.4 }''')
+```
+Ogni utente inserisce il proprio UTXO e ognuno riceve un output corrispondente.
+
+Il modo migliore per gestire un CoinJoin è inviare il PSBT di base a tutte le parti (che potrebbero essere numerose), quindi chiedere a ciascuno di firmare il PSBT e rispedirlo a una singola parte che combinerà, finalizzerà e invierà.
+
+> :book: ***Che cos'è CoinJoin?*** CoinJoin è una metodologia in base alla quale un gruppo di persone può mescolare insieme le proprie monete, contribuendo ad aumentare la fungibilità. Ogni persona inserisce e preleva la stessa quantità di monete (meno le commissioni di transazione) in una transazione tra più persone condotta simultaneamente da un numero elevato di persone. È progettato per essere "trustless" in modo che le parti non abbiano bisogno di conoscersi o fidarsi l'una dell'altra. Un CoinJoin alla fine aumenta l’anonimato rendendo difficile il tracciamento delle monete. Ci sono alcune wallet come sparrow e samourai che supportano il coinjooin e una serie di servizi "whirpool" su larga scala per migliorare l'anonimato.
+
+## Riepilogo: utilizzo di una transazione Bitcoin parzialmente firmata
+
+Ora hai visto il processo PSBT che hai imparato in [§7.1](07_1_Creating_a_Partially_Signed_Bitcoin_Transaction.md) in uso in tre esempi di vita reale: creazione di un multi-sig, pooling di fondi e CoinJoining. Tutto ciò era teoricamente possibile nel Bitcoin classico facendo firmare più persone a transazioni attentamente costruite, ma i PSBT lo rendono standardizzato e semplice.
+
+> :fire: ***Qual è il potere di un PSBT?*** Un PSBT consente la creazione di transazioni trustless tra più parti e più macchine. Se più di una parte avesse bisogno di finanziare una transazione, se più di una parte avesse bisogno di firmare una transazione, o se una transazione dovesse essere creata su una macchina e firmata su un’altra, allora un PSBT rende tutto semplice senza dipendere dal meccanismi di firma parziale non standardizzati che esistevano prima del PSBT.
+
+Quest'ultimo punto, sulla creazione di una transazione su una macchina e sulla firma su un'altra, è un elemento dei PSBT a cui non siamo ancora arrivati. È il cuore dei portafogli hardware, dove spesso desideri creare una transazione su un nodo completo, quindi trasferirla a un portafoglio hardware quando è richiesta una firma. Questo è l'argomento dell'ultima sezione (e del nostro quarto esempio di vita reale) in questo capitolo sui PSBT.
+
+## Cosa segue??
+
+Continua con l' "Espansione delle transazioni Bitcoin con PSBT" nel [Capitolo 7.3: Integrazione con hardware wallet](07_3_Integrazione_con_Hardware_Wallets.md).
diff --git a/it/07_3_Integrazione_con_Hardware_Wallets.md b/it/07_3_Integrazione_con_Hardware_Wallets.md
new file mode 100644
index 000000000..ac653999e
--- /dev/null
+++ b/it/07_3_Integrazione_con_Hardware_Wallets.md
@@ -0,0 +1,480 @@
+# 7.3: Integrazione con hardware wallet
+
+> :information_source: **NOTA:** Questa sezione è stata aggiunta di recente al corso ed è una bozza iniziale che potrebbe essere ancora in attesa di revisione. Lettore avvisato.
+
+Uno dei maggiori poteri dei PSBT è la capacità di trasferire le transazioni ai portafogli hardware. Questo sarà un ottimo strumento di sviluppo per te se continui a programmare con Bitcoin. Tuttavia, non puoi testarlo ora se stai utilizzando una delle configurazioni che suggeriamo per questo corso: una VM su Linode secondo il [Capitolo 2.1](02_1_Configurare_Bitcoin-Core_VPS_con_StackScript.md) o un'opzione ancora più remota come AWS vista nel [Capitolo 2.2](02_2_Configurare_Bitcoin_Core_Altri_Mezzi.md) - perché ovviamente non avrai alcun modo di collegare un portafoglio hardware alla tua macchina virtuale remota.
+
+> :book: ***Che cos'è un portafoglio hardware?*** Un portafoglio hardware è un dispositivo elettronico che migliora la sicurezza di una criptovaluta mantenendo tutte le chiavi private sul dispositivo, anziché metterle mai su un computer direttamente collegato a Internet. I portafogli hardware dispongono di protocolli specifici per fornire interazioni online, solitamente gestiti da un programma che comunica con il dispositivo tramite una porta USB. In questo capitolo gestiremo un portafoglio hardware con `bitcoin-cli` e il programma `hwy.py`.
+
+Hai tre opzioni per muoverti in questo capitolo sui portafogli hardware: (1) leggere senza testare il codice; (2) installa Bitcoin su un computer locale per testare completamente questi comandi; oppure (3) vai direttamente al [Capitolo 8: Ampliare Altre Transazioni Bitcoin](08_0_Ampliare_Altre_Transazioni_Bitcoin.md). Suggeriamo l'opzione n. 1, ma se vuoi davvero sporcarti le mani ti forniremo supporto anche per la n.2 parlando dell'utilizzo di un Macintosh (una piattaforma hardware supportata da
+[Bitcoin Standup](https://github.com/BlockchainCommons/Bitcoin-Standup)) per i test.
+
+> :avviso: **AVVISO di VERSIONE:** Le PSBT sono un'innovazione di Bitcoin Core v 0.17.0. Le versioni precedenti di Bitcoin Core non saranno in grado di funzionare con il PSBT mentre è in corso (sebbene saranno comunque in grado di riconoscere la transazione finale). L'interfaccia HWI è apparsa in Bitcoin Core v 0.18.0, ma finché utilizzi la nostra configurazione suggerita con Bitcoin Standup, dovrebbe funzionare.
+
+La metodologia descritta in questo capitolo per l'integrazione con un portafoglio hardware dipende dall'[Bitcoin Hardware Wallet Interface](https://github.com/bitcoin-core/HWI) rilasciata tramite Bitcoin Core e si basa sull'[installazione](https://github.com/bitcoin-core/HWI/blob/master/README.md) e le istruzioni d'[utilizzo](https://hwi.readthedocs.io) si trovano lì.
+
+> :avviso: **AVVISO:** L'interfaccia HWI è molto nuova e grezza a partire da Bitcoin Core v 0.20.0. Potrebbe essere difficile installarlo correttamente e potrebbero essere presenti errori non intuitivi. Quella che segue è una descrizione di una configurazione funzionante, ma sono stati necessari diversi tentativi per ottenerla correttamente e la configurazione potrebbe variare.
+
+## Installa Bitcoin Core nel tuo PC
+
+_Se hai intenzione di leggere semplicemente questa sezione e di non testare questi comandi fino a una data futura quando disponi di un ambiente di sviluppo locale, puoi saltare questa sottosezione, che riguarda la creazione di un'installazione Bitcoin Core su una macchina locale come un Mac o meglio una Macchina Linux._
+
+Esistono versioni alternative dello script Bitcoin Standup che hai utilizzato per creare la tua VM che verrà installata su un MacOS o su una macchina Linux non Linode.
+
+Se disponi di MacOS, puoi installare [Bitcoin Standup MacOS](https://github.com/BlockchainCommons/Bitcoin-Standup-MacOS/blob/master/README.md).
+
+Se disponi di una macchina Linux locale, puoi installare [Bitcoin Standup Linux Scripts](https://github.com/BlockchainCommons/Bitcoin-Standup-Scripts/blob/master/README.md).
+
+Una volta che Bitcoin Standup è in esecuzione sul tuo computer locale, ti consigliamo di sincronizzare la blockchain `Testnet`, supponendo che tu continui a seguire la metodologia standard di questo corso.
+
+Utilizzeremo un Macintosh e Testnet per gli esempi in questa sezione.
+
+### Crea un alias per Bitcoin-CLI
+
+Crea un alias che esegua `bitcoin-cli` dalla directory corretta con eventuali flag appropriati.
+
+Ecco un esempio di alias da un Mac:
+```
+$ alias bitcoin-cli="~/StandUp/BitcoinCore/bitcoin-0.20.0/bin/bitcoin-cli -testnet"
+```
+Noterai che non solo ci fornisce il percorso completo, ma garantisce anche che rimaniamo su Testnet.
+
+## Installa HWI su un computer locale
+
+_Le seguenti istruzioni presuppongono nuovamente un Mac e puoi saltare questa sottosezione se stai solo leggendo questo capitolo._
+
+HWI è un programma Bitcoin Core disponibile in Python che può essere utilizzato per interagire con i portafogli hardware.
+
+### Installa Python
+
+Poiché HWI è scritto in `python`, dovrai installarlo insieme ad alcuni programmi ausiliari.
+
+Se non disponi già degli strumenti da riga di comando "xcode", ti serviranno:
+```
+$ xcode-select --install
+```
+
+Se non hai già il gestore pacchetti Homebrew, dovresti installare anche quello. Le istruzioni attuali sono disponibili sul [sito Homebrew](https://brew.sh/). Al momento della stesura di questo articolo, devi semplicemente farlo:
+```
+$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
+```
+
+Per la prima installazione, dovresti anche assicurarti che la tua directory `/usr/local/Frameworks` sia creata correttamente:
+```
+$ sudo mkdir /usr/local/Frameworks
+$ sudo chown $(whoami):admin /usr/local/Frameworks
+```
+
+Se hai tutto a posto, puoi finalmente installare Python:
+```
+$ brew install python
+$ brew install libusb
+```
+
+### Installa l'HWI
+
+Ora sei pronto per installare HWI, che richiede la clonazione di un repository GitHub e l'esecuzione di uno script di installazione.
+
+Se non hai `git` già installato sul tuo Mac, puoi farlo semplicemente provando a eseguirlo: `git --version`.
+
+È quindi possibile clonare il repository HWI:
+```
+$ cd ~/StandUp
+$ git clone https://github.com/bitcoin-core/HWI.git
+```
+Successivamente, è necessario installare il pacchetto e le sue dipendenze:
+```
+$ cd HWI
+HWI$ python3 setup.py install
+```
+
+### Crea un alias per HWI
+
+Ti consigliamo di creare un alias anche qui, variato in base alla posizione di installazione effettiva:
+```
+$ alias hwi="~/Standup/HWI/hwi.py --chain test"
+```
+Ancora una volta, abbiamo incluso un riferimento a testnet in questo alias.
+
+## Prepara il tuo Ledger
+
+_Anche noi abbiamo dovuto scegliere una piattaforma hardware-wallet per questa dimostrazione HWI. La nostra scelta è ricaduta sul Ledger, che è stato a lungo il nostro banco di prova per i portafogli hardware. Consulta le [informazioni sul supporto del dispositivo HWI](https://github.com/bitcoin-core/HWI/blob/master/README.md#device-support) per un elenco di altri dispositivi supportati. Se utilizzi un dispositivo diverso da Ledger, dovrai valutare le tue soluzioni per prepararlo all'utilizzo su Testnet, ma per il resto dovresti essere in grado di continuare con il corso come scritto._
+
+Se stai lavorando con Bitcoin sul tuo Ledger, probabilmente non dovrai fare nulla. (Ma non lo suggeriamo per l'uso con questo corso).
+
+Per lavorare con le monete Testnet, come suggerito da questo corso, dovrai apportare alcuni aggiornamenti:
+
+1. Vai su Impostazioni sulla tua app Ledger Live (è l'attrezzatura), vai alla scheda "Funzionalità sperimentali" e attiva "Modalità sviluppatore".
+2. Vai su "Manager" e installa "Bitcoin Test". La versione attuale richiede che tu abbia prima installato "Bitcoin".
+3. Vai su "Manager", scorri fino al tuo nuovo "Bitcoin Test" e "Aggiungi account"
+
+## Collegamento a un registro
+
+Affinché un Ledger sia accessibile, devi effettuare il login con il tuo PIN e poi richiamare l'app che desideri utilizzare, in questo caso l'app "Bitcoin Test". Potrebbe essere necessario ripeterlo di tanto in tanto se il tuo Ledger si addormenta.
+
+Dopo averlo fatto, puoi chiedere a HWI di accedere al Ledger con il comando "enumerate".:
+```
+$ hwi enumerate
+[{"type": "ledger", "model": "ledger_nano_s", "path": "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/XHC1@14/XHC1@14000000/HS05@14100000/Nano S@14100000/Nano S@0/IOUSBHostHIDDevice@14100000,0", "fingerprint": "9a1d520b", "needs_pin_sent": false, "needs_passphrase_sent": false}]
+```
+Se ricevi informazioni sul tuo dispositivo, sei a posto! Come puoi vedere, verifica il tuo tipo di portafoglio hardware, fornisce altre informazioni identificative e ti dice come comunicare con il dispositivo. L'impronta digitale (`9a1d520b`) è ciò a cui dovresti prestare particolare attenzione, perché tutte le interazioni con il tuo portafoglio hardware la richiederanno.
+
+Se invece hai ottenuto "[]", allora (1) non hai preparato il tuo dispositivo Ledger inserendo il PIN e scegliendo l'applicazione corretta, oppure (2) c'è qualcosa di sbagliato nella configurazione di Python, probabilmente una dipendenza mancante: dovresti considerare di disinstallarlo e provare da zero.
+
+## Importa indirizzi
+
+L'interazione con un portafoglio hardware di solito avviene in due parti: ricerca di fondi e spesa di fondi.
+
+Puoi controllare i fondi importando gli indirizzi dal tuo portafoglio hardware al tuo nodo completo, utilizzando HWI e `bitcoin-cli`.
+
+### Crea un portafoglio
+
+Per utilizzare il tuo portafoglio hardware con `bitcoin-cli`, ti consigliamo di creare un portafoglio con nome specifico in Bitcoin Core, utilizzando l'RPC `createwallet`, che è un comando di cui non abbiamo discusso in precedenza.
+```
+$ bitcoin-cli --named createwallet wallet_name="ledger" disable_private_keys="true" descriptors="false"
+{
+ "name": "ledger",
+ "warning": ""
+}
+```
+In questo caso, stai creando un nuovo portafoglio `ledger` senza chiavi private (poiché queste saranno presenti sul dispositivo Ledger).
+
+> :book: ***Perché nominare i portafogli?*** Fino ad oggi, questo corso ha utilizzato il portafoglio predefinito (` "" `) in Bitcoin Core. Questo va bene per molti scopi, ma è inadeguato se hai una situazione più complessa, come quando guardi le chiavi da un portafoglio hardware. Qui, vogliamo essere in grado di distinguere dalle chiavi possedute localmente (che sono conservate nel portafoglio ` "" ` ) e dalle chiavi possedute in remoto (che sono conservate nel portafoglio "ledger").
+
+Ora puoi vedere che il nuovo portafoglio è nell'elenco dei tuoi portafogli:
+```
+$ bitcoin-cli listwallets
+[
+ "",
+ "ledger"
+]
+```
+Poiché hai creato un secondo portafoglio, alcuni comandi ora richiederanno un flag `-rpcwallet=`, per specificare quale stai utilizzando
+
+### Importa le chiavi
+
+Ora devi importare una watchlist di indirizzi dal portafoglio hardware. Questo viene fatto con il comando `getkeypool` di HWI:
+```
+$ hwi -f 9a1d520b getkeypool 0 1000
+[{"desc": "wpkh([9a1d520b/84h/1h/0h]tpubDD7KTtoGzK9GuWUQcr1uTJazsAkqoXhdrwGXWVix6nPpNZmSbagZWD4QSaMsyK8YohAirGDPrWdRiEpKzTFB7DrTrqfzHCn7yi5EsqeR93S/0/*)#qttxy592", "range": [0, 1000], "timestamp": "now", "internal": false, "keypool": true, "active": true, "watchonly": true}, {"desc": "wpkh([9a1d520b/84h/1h/0h]tpubDD7KTtoGzK9GuWUQcr1uTJazsAkqoXhdrwGXWVix6nPpNZmSbagZWD4QSaMsyK8YohAirGDPrWdRiEpKzTFB7DrTrqfzHCn7yi5EsqeR93S/1/*)#3lw8ep4j", "range": [0, 1000], "timestamp": "now", "internal": true, "keypool": true, "active": true, "watchonly": true}]
+```
+Indirizziamo HWI con l'impronta digitale e chiediamo i primi 1000 indirizzi. Per impostazione predefinita viene utilizzato il tipo di indirizzo WPKH (nativo Segwit). In cambio riceviamo due descrittori per il key pool: uno per ricevere gli indirizzi e uno per cambiare gli indirizzi.
+
+> :book: ***Che cos'è un pool di chiavi?*** Un pool di chiavi è un gruppo di chiavi pregenerate. I moderni portafogli HD creano pool di chiavi continuando a determinare nuovi indirizzi gerarchici basati sul seed originale. L’idea dei pool di chiavi è stata originariamente implementata per facilitare i requisiti di backup dei portafogli. Ciò ha consentito a un utente di generare un pool di chiavi e quindi eseguire immediatamente il backup del portafoglio, anziché richiedere backup dopo la creazione di ogni nuovo indirizzo. Il concetto si è rivelato molto utile anche ai giorni nostri poiché consente di importare un intero set di indirizzi futuri da un dispositivo all'altro.
+
+I valori restituiti da `getkeypool` sono lo stesso tipo di descrittori di cui abbiamo appreso nel [Capitolo3.5: Comprendere il descrittore](03_5_Comprendere_il_Descriptor.md). All'epoca dicevamo che erano utilissimi per spostare indirizzi tra macchine diverse. Ecco l'esempio della vita reale: spostare gli indirizzi da un portafoglio hardware al nodo Bitcoin Core, in modo che la nostra macchina connessa alla rete sia in grado di sorvegliare le chiavi possedute dal portafoglio hardware offline.
+
+Proprio come hai imparato nel [Capitolo 3.5](03_5_Comprendere_il_Descriptor.md), puoi esaminare questi descrittori con l'RPC `getdescriptorinfo`:
+```
+$ bitcoin-cli getdescriptorinfo "wpkh([9a1d520b/84h/1h/0h]tpubDD7KTtoGzK9GuWUQcr1uTJazsAkqoXhdrwGXWVix6nPpNZmSbagZWD4QSaMsyK8YohAirGDPrWdRiEpKzTFB7DrTrqfzHCn7yi5EsqeR93S/0/*)#qttxy592"
+{
+ "descriptor": "wpkh([9a1d520b/84'/1'/0']tpubDD7KTtoGzK9GuWUQcr1uTJazsAkqoXhdrwGXWVix6nPpNZmSbagZWD4QSaMsyK8YohAirGDPrWdRiEpKzTFB7DrTrqfzHCn7yi5EsqeR93S/0/*)#n65e7wjf",
+ "checksum": "qttxy592",
+ "isrange": true,
+ "issolvable": true,
+ "hasprivatekeys": false
+}
+```
+Come ci si aspetterebbe, _non_ hai le "chiavi private", perché i portafogli hardware le conservano.
+
+Con il descrittore in mano, puoi importare le chiavi nel tuo nuovo portafoglio `ledger` utilizzando l'RPC `importmulti` che hai incontrato anche nel [Capitolo 3.5](03_5_Comprendere_il_Descriptor.md). In questo caso, inserisci semplicemente l'intera risposta ricevuta da HWI in `'`.
+```
+$ bitcoin-cli -rpcwallet=ledger importmulti '[{"desc": "wpkh([9a1d520b/84h/1h/0h]tpubDD7KTtoGzK9GuWUQcr1uTJazsAkqoXhdrwGXWVix6nPpNZmSbagZWD4QSaMsyK8YohAirGDPrWdRiEpKzTFB7DrTrqfzHCn7yi5EsqeR93S/0/*)#qttxy592", "range": [0, 1000], "timestamp": "now", "internal": false, "keypool": true, "active": true, "watchonly": true}, {"desc": "wpkh([9a1d520b/84h/1h/0h]tpubDD7KTtoGzK9GuWUQcr1uTJazsAkqoXhdrwGXWVix6nPpNZmSbagZWD4QSaMsyK8YohAirGDPrWdRiEpKzTFB7DrTrqfzHCn7yi5EsqeR93S/1/*)#3lw8ep4j", "range": [0, 1000], "timestamp": "now", "internal": true, "keypool": true, "active": true, "watchonly": true}]'
+[
+ {
+ "success": true
+ },
+ {
+ "success": true
+ }
+]
+```
+(Si noti che HWI restituisce utilmente il percorso di derivazione con `h` per mostrare le derivazioni rafforzate anziché `'` e calcola il suo checksum di conseguenza, in modo da non dover fare citazioni massicce come abbiamo fatto nel Capitolo 3.5.)
+
+Ora _potresti_ elencare tutti gli indirizzi di watch-okly che hai ricevuto utilizzando il comando `getaddressesbylabel`. Tutti i 1000 indirizzi di ricezione sono proprio lì, nel portafoglio `ledger`!
+
+```
+$ bitcoin-cli -rpcwallet=ledger getaddressesbylabel "" | more
+{
+ "tb1qqqvnezljtmc9d7x52udpc0m9zgl9leugd2ur7y": {
+ "purpose": "receive"
+ },
+ "tb1qqzvrm6hujdt93qctuuev5qc4499tq9fdk0prwf": {
+ "purpose": "receive"
+ },
+...
+}
+```
+## Ricevi una transazione
+
+Ovviamente, ricevere una transazione è semplice. Utilizzi "getnewaddress" per richiedere uno di quegli indirizzi importati:
+```
+$ bitcoin-cli -rpcwallet=ledger getnewaddress
+tb1qqqvnezljtmc9d7x52udpc0m9zgl9leugd2ur7y
+```
+Quindi gli invii denaro.
+
+Il potere di HWI è che puoi guardare i pagamenti dal tuo nodo Bitcoin Core, invece di dover collegare il tuo portafoglio hardware e interrogarlo.
+```
+$ bitcoin-cli -rpcwallet=ledger listunspent
+[
+ {
+ "txid": "c733533eb1c052242f9ed89cd8927aedb41852156e684634ee7c74028774e595",
+ "vout": 1,
+ "address": "tb1q948388a23pfsf52kz6skd5k4z4627jja2evztr",
+ "label": "",
+ "scriptPubKey": "00142d4f139faa885304d15616a166d2d51574af4a5d",
+ "amount": 0.01000000,
+ "confirmations": 12,
+ "spendable": false,
+ "solvable": true,
+ "desc": "wpkh([9a1d520b/84'/1'/0'/0/0]02a013cf9c4b5f5689d9253036a3e477cf98689626f7814c94f092726f11b741ab)#9za8hlvk",
+ "safe": true
+ },
+ {
+ "txid": "5b3c4aeb811f9a119fd633b12a6927415cc61b8654628df58e9141cab804bab8",
+ "vout": 0,
+ "address": "tb1qqqvnezljtmc9d7x52udpc0m9zgl9leugd2ur7y",
+ "label": "",
+ "scriptPubKey": "001400193c8bf25ef056f8d4571a1c3f65123e5fe788",
+ "amount": 0.01000000,
+ "confirmations": 1,
+ "spendable": false,
+ "solvable": true,
+ "desc": "wpkh([9a1d520b/84'/1'/0'/0/569]030168d9482e2b02d7027fb4a89edc54adaa1adf709334f647d0a1b0533828aec5)#sx9haake",
+ "safe": true
+ }
+]
+```
+## Crea una transazione con PSBT
+
+Controllare e ricevere pagamenti è solo metà dell'opera. Potresti anche voler effettuare pagamenti utilizzando gli account detenuti dal tuo portafoglio hardware. Questo è il quarto esempio di vita reale per l'utilizzo di PSBT, secondo il processo delineato in [Capitolo 7.1: Creare una transazione Bitcoin parzialmente firmata](07_1_Creare_una_Transazione_Bitcoin_Parzialmente_Firmata.md).
+
+I comandi funzionano esattamente allo stesso modo. In questo caso, usa `walletcreatefundedpsbt` per formare il tuo PSBT perché questa è una situazione in cui non ti interessa quali UTXO vengono utilizzati:
+```
+$ bitcoin-cli -named -rpcwallet=ledger walletcreatefundedpsbt inputs='''[]''' outputs='''[{"tb1qcaedd724gts3aug73m78c7nfsv9d8zs9q6h2kd":0.015}]'''
+{
+ "psbt": "cHNidP8BAJoCAAAAAri6BLjKQZGO9Y1iVIYbxlxBJ2kqsTPWnxGaH4HrSjxbAAAAAAD+////leV0hwJ0fO40RmhuFVIYtO16ktic2J4vJFLAsT5TM8cBAAAAAP7///8CYOMWAAAAAAAWABTHctb5VULhHvEejvx8emmDCtOKBU+gBwAAAAAAFgAU9Ojd5ds3CJi1fIRWbj92CYhQgX0AAAAAAAEBH0BCDwAAAAAAFgAUABk8i/Je8Fb41FcaHD9lEj5f54giBgMBaNlILisC1wJ/tKie3FStqhrfcJM09kfQobBTOCiuxRiaHVILVAAAgAEAAIAAAACAAAAAADkCAAAAAQEfQEIPAAAAAAAWABQtTxOfqohTBNFWFqFm0tUVdK9KXSIGAqATz5xLX1aJ2SUwNqPkd8+YaJYm94FMlPCScm8Rt0GrGJodUgtUAACAAQAAgAAAAIAAAAAAAAAAAAAAIgID2UK1nupSfXC81nmB65XZ+pYlJp/W6wNk5FLt5ZCSx6kYmh1SC1QAAIABAACAAAAAgAEAAAABAAAAAA==",
+ "fee": 0.00000209,
+ "changepos": 1
+}
+```
+
+Puoi dare un'occhiata al PSBT e verificare che sembri razionale:
+
+```
+$ psbt="cHNidP8BAJoCAAAAAri6BLjKQZGO9Y1iVIYbxlxBJ2kqsTPWnxGaH4HrSjxbAAAAAAD+////leV0hwJ0fO40RmhuFVIYtO16ktic2J4vJFLAsT5TM8cBAAAAAP7///8CYOMWAAAAAAAWABTHctb5VULhHvEejvx8emmDCtOKBU+gBwAAAAAAFgAU9Ojd5ds3CJi1fIRWbj92CYhQgX0AAAAAAAEBH0BCDwAAAAAAFgAUABk8i/Je8Fb41FcaHD9lEj5f54giBgMBaNlILisC1wJ/tKie3FStqhrfcJM09kfQobBTOCiuxRiaHVILVAAAgAEAAIAAAACAAAAAADkCAAAAAQEfQEIPAAAAAAAWABQtTxOfqohTBNFWFqFm0tUVdK9KXSIGAqATz5xLX1aJ2SUwNqPkd8+YaJYm94FMlPCScm8Rt0GrGJodUgtUAACAAQAAgAAAAIAAAAAAAAAAAAAAIgID2UK1nupSfXC81nmB65XZ+pYlJp/W6wNk5FLt5ZCSx6kYmh1SC1QAAIABAACAAAAAgAEAAAABAAAAAA=="
+
+$ bitcoin-cli decodepsbt $psbt
+{
+ "tx": {
+ "txid": "45f996d4ff8c9e9ab162f611c5b6ad752479ede9780f9903bdc80cd96619676d",
+ "hash": "45f996d4ff8c9e9ab162f611c5b6ad752479ede9780f9903bdc80cd96619676d",
+ "version": 2,
+ "size": 154,
+ "vsize": 154,
+ "weight": 616,
+ "locktime": 0,
+ "vin": [
+ {
+ "txid": "5b3c4aeb811f9a119fd633b12a6927415cc61b8654628df58e9141cab804bab8",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967294
+ },
+ {
+ "txid": "c733533eb1c052242f9ed89cd8927aedb41852156e684634ee7c74028774e595",
+ "vout": 1,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967294
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.01500000,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "0 c772d6f95542e11ef11e8efc7c7a69830ad38a05",
+ "hex": "0014c772d6f95542e11ef11e8efc7c7a69830ad38a05",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1qcaedd724gts3aug73m78c7nfsv9d8zs9q6h2kd"
+ ]
+ }
+ },
+ {
+ "value": 0.00499791,
+ "n": 1,
+ "scriptPubKey": {
+ "asm": "0 f4e8dde5db370898b57c84566e3f76098850817d",
+ "hex": "0014f4e8dde5db370898b57c84566e3f76098850817d",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1q7n5dmewmxuyf3dtus3txu0mkpxy9pqtacuprak"
+ ]
+ }
+ }
+ ]
+ },
+ "unknown": {
+ },
+ "inputs": [
+ {
+ "witness_utxo": {
+ "amount": 0.01000000,
+ "scriptPubKey": {
+ "asm": "0 00193c8bf25ef056f8d4571a1c3f65123e5fe788",
+ "hex": "001400193c8bf25ef056f8d4571a1c3f65123e5fe788",
+ "type": "witness_v0_keyhash",
+ "address": "tb1qqqvnezljtmc9d7x52udpc0m9zgl9leugd2ur7y"
+ }
+ },
+ "bip32_derivs": [
+ {
+ "pubkey": "030168d9482e2b02d7027fb4a89edc54adaa1adf709334f647d0a1b0533828aec5",
+ "master_fingerprint": "9a1d520b",
+ "path": "m/84'/1'/0'/0/569"
+ }
+ ]
+ },
+ {
+ "witness_utxo": {
+ "amount": 0.01000000,
+ "scriptPubKey": {
+ "asm": "0 2d4f139faa885304d15616a166d2d51574af4a5d",
+ "hex": "00142d4f139faa885304d15616a166d2d51574af4a5d",
+ "type": "witness_v0_keyhash",
+ "address": "tb1q948388a23pfsf52kz6skd5k4z4627jja2evztr"
+ }
+ },
+ "bip32_derivs": [
+ {
+ "pubkey": "02a013cf9c4b5f5689d9253036a3e477cf98689626f7814c94f092726f11b741ab",
+ "master_fingerprint": "9a1d520b",
+ "path": "m/84'/1'/0'/0/0"
+ }
+ ]
+ }
+ ],
+ "outputs": [
+ {
+ },
+ {
+ "bip32_derivs": [
+ {
+ "pubkey": "03d942b59eea527d70bcd67981eb95d9fa9625269fd6eb0364e452ede59092c7a9",
+ "master_fingerprint": "9a1d520b",
+ "path": "m/84'/1'/0'/1/1"
+ }
+ ]
+ }
+ ],
+ "fee": 0.00000209
+}
+```
+E come al solito, `analyzepsbt` mostrerà quanto lontano sei arrivato:
+```
+$ bitcoin-cli analyzepsbt $psbt
+{
+ "inputs": [
+ {
+ "has_utxo": true,
+ "is_final": false,
+ "next": "signer",
+ "missing": {
+ "signatures": [
+ "00193c8bf25ef056f8d4571a1c3f65123e5fe788"
+ ]
+ }
+ },
+ {
+ "has_utxo": true,
+ "is_final": false,
+ "next": "signer",
+ "missing": {
+ "signatures": [
+ "2d4f139faa885304d15616a166d2d51574af4a5d"
+ ]
+ }
+ }
+ ],
+ "estimated_vsize": 208,
+ "estimated_feerate": 0.00001004,
+ "fee": 0.00000209,
+ "next": "signer"
+}
+```
+Poiché hai importato quel pool di chiavi, `bitcoin-cli` ha tutte le informazioni necessarie per compilare gli input, semplicemente non può firmare perché le chiavi private sono conservate nel portafoglio hardware.
+
+È qui che entra in gioco HWI, con il comando `signtx`. Basta inviare lungo il PSBT:
+```
+$ hwi -f 9a1d520b signtx $psbt
+```
+Aspettatevi di dover armeggiare con il vostro portafoglio hardware a questo punto. Probabilmente il dispositivo ti chiederà di confermare gli ingressi, le uscite e la tariffa. Al termine, dovrebbe restituire un nuovo PSBT.
+
+```
+{"psbt": "cHNidP8BAJoCAAAAAri6BLjKQZGO9Y1iVIYbxlxBJ2kqsTPWnxGaH4HrSjxbAAAAAAD+////leV0hwJ0fO40RmhuFVIYtO16ktic2J4vJFLAsT5TM8cBAAAAAP7///8CYOMWAAAAAAAWABTHctb5VULhHvEejvx8emmDCtOKBU+gBwAAAAAAFgAU9Ojd5ds3CJi1fIRWbj92CYhQgX0AAAAAAAEBH0BCDwAAAAAAFgAUABk8i/Je8Fb41FcaHD9lEj5f54giAgMBaNlILisC1wJ/tKie3FStqhrfcJM09kfQobBTOCiuxUcwRAIgAxkQlk2fqEMxvP54WWyiFhlfSul9sd4GzKDhfGpmlewCIHYej3zXWWMgWI6rixxQw9yzGozDaFPqQNNIvcFPk+lfASIGAwFo2UguKwLXAn+0qJ7cVK2qGt9wkzT2R9ChsFM4KK7FGJodUgtUAACAAQAAgAAAAIAAAAAAOQIAAAABAR9AQg8AAAAAABYAFC1PE5+qiFME0VYWoWbS1RV0r0pdIgICoBPPnEtfVonZJTA2o+R3z5holib3gUyU8JJybxG3QatHMEQCIH5t6T2yufUP7glYZ8YH0/PhDFpotSmjgZUhvj6GbCFIAiBcgXzyYl7IjYuaF3pJ7AgW1rLYkjeCJJ2M9pVUrq5vFwEiBgKgE8+cS19WidklMDaj5HfPmGiWJveBTJTwknJvEbdBqxiaHVILVAAAgAEAAIAAAACAAAAAAAAAAAAAACICA9lCtZ7qUn1wvNZ5geuV2fqWJSaf1usDZORS7eWQksepGJodUgtUAACAAQAAgAAAAIABAAAAAQAAAAA="}
+$ psbt_f="cHNidP8BAJoCAAAAAri6BLjKQZGO9Y1iVIYbxlxBJ2kqsTPWnxGaH4HrSjxbAAAAAAD+////leV0hwJ0fO40RmhuFVIYtO16ktic2J4vJFLAsT5TM8cBAAAAAP7///8CYOMWAAAAAAAWABTHctb5VULhHvEejvx8emmDCtOKBU+gBwAAAAAAFgAU9Ojd5ds3CJi1fIRWbj92CYhQgX0AAAAAAAEBH0BCDwAAAAAAFgAUABk8i/Je8Fb41FcaHD9lEj5f54giAgMBaNlILisC1wJ/tKie3FStqhrfcJM09kfQobBTOCiuxUcwRAIgAxkQlk2fqEMxvP54WWyiFhlfSul9sd4GzKDhfGpmlewCIHYej3zXWWMgWI6rixxQw9yzGozDaFPqQNNIvcFPk+lfASIGAwFo2UguKwLXAn+0qJ7cVK2qGt9wkzT2R9ChsFM4KK7FGJodUgtUAACAAQAAgAAAAIAAAAAAOQIAAAABAR9AQg8AAAAAABYAFC1PE5+qiFME0VYWoWbS1RV0r0pdIgICoBPPnEtfVonZJTA2o+R3z5holib3gUyU8JJybxG3QatHMEQCIH5t6T2yufUP7glYZ8YH0/PhDFpotSmjgZUhvj6GbCFIAiBcgXzyYl7IjYuaF3pJ7AgW1rLYkjeCJJ2M9pVUrq5vFwEiBgKgE8+cS19WidklMDaj5HfPmGiWJveBTJTwknJvEbdBqxiaHVILVAAAgAEAAIAAAACAAAAAAAAAAAAAACICA9lCtZ7qUn1wvNZ5geuV2fqWJSaf1usDZORS7eWQksepGJodUgtUAACAAQAAgAAAAIABAAAAAQAAAAA="
+```
+
+Quando lo analizzi, vedrai che è pronto per essere finalizzato:
+
+```
+$ bitcoin-cli analyzepsbt $psbt_f
+{
+ "inputs": [
+ {
+ "has_utxo": true,
+ "is_final": false,
+ "next": "finalizer"
+ },
+ {
+ "has_utxo": true,
+ "is_final": false,
+ "next": "finalizer"
+ }
+ ],
+ "estimated_vsize": 208,
+ "estimated_feerate": 0.00001004,
+ "fee": 0.00000209,
+ "next": "finalizer"
+}
+```
+
+A questo punto sei di nuovo nel territorio standard:
+```
+$ bitcoin-cli finalizepsbt $psbt_f
+{
+ "hex": "02000000000102b8ba04b8ca41918ef58d6254861bc65c4127692ab133d69f119a1f81eb4a3c5b0000000000feffffff95e5748702747cee3446686e155218b4ed7a92d89cd89e2f2452c0b13e5333c70100000000feffffff0260e3160000000000160014c772d6f95542e11ef11e8efc7c7a69830ad38a054fa0070000000000160014f4e8dde5db370898b57c84566e3f76098850817d024730440220031910964d9fa84331bcfe78596ca216195f4ae97db1de06cca0e17c6a6695ec0220761e8f7cd7596320588eab8b1c50c3dcb31a8cc36853ea40d348bdc14f93e95f0121030168d9482e2b02d7027fb4a89edc54adaa1adf709334f647d0a1b0533828aec50247304402207e6de93db2b9f50fee095867c607d3f3e10c5a68b529a3819521be3e866c214802205c817cf2625ec88d8b9a177a49ec0816d6b2d8923782249d8cf69554aeae6f17012102a013cf9c4b5f5689d9253036a3e477cf98689626f7814c94f092726f11b741ab00000000",
+ "complete": true
+}
+$ hex=02000000000102b8ba04b8ca41918ef58d6254861bc65c4127692ab133d69f119a1f81eb4a3c5b0000000000feffffff95e5748702747cee3446686e155218b4ed7a92d89cd89e2f2452c0b13e5333c70100000000feffffff0260e3160000000000160014c772d6f95542e11ef11e8efc7c7a69830ad38a054fa0070000000000160014f4e8dde5db370898b57c84566e3f76098850817d024730440220031910964d9fa84331bcfe78596ca216195f4ae97db1de06cca0e17c6a6695ec0220761e8f7cd7596320588eab8b1c50c3dcb31a8cc36853ea40d348bdc14f93e95f0121030168d9482e2b02d7027fb4a89edc54adaa1adf709334f647d0a1b0533828aec50247304402207e6de93db2b9f50fee095867c607d3f3e10c5a68b529a3819521be3e866c214802205c817cf2625ec88d8b9a177a49ec0816d6b2d8923782249d8cf69554aeae6f17012102a013cf9c4b5f5689d9253036a3e477cf98689626f7814c94f092726f11b741ab00000000
+$ bitcoin-cli sendrawtransaction $hex
+45f996d4ff8c9e9ab162f611c5b6ad752479ede9780f9903bdc80cd96619676d
+```
+Hai inviato fondi con successo utilizzando le chiavi private conservate nel tuo portafoglio hardware!
+
+## Scopri altri comandi HWI
+
+Sono disponibili numerosi altri comandi da utilizzare con HWI. Al momento in cui scrivo, ci sono:
+```
+numerate,getmasterxpub,signtx,getxpub,signmessage,getkeypool,getdescriptors,displayaddress,setup,wipe,restore,backup,promptpin,togglepassphrase,sendpin
+```
+
+## Riepilogo: Integrazione con hardware wallet
+
+I hardware wallet possono offrire una migliore protezione mantenendo le tue chiavi private offline, protette nell'hardware. Fortunatamente, c'è ancora un modo per interagire con loro utilizzando "bitcoin-cli". Basta installare HWI e ti consentirà quindi di (1) importare chiavi pubbliche e guardarle; e (2) firmare le transazioni utilizzando il tuo hardware wallet.
+
+> :fire: ***Qual è il potere di HWI?*** HWI ti consente di interagire con i portafogli hardware utilizzando tutti i comandi di `bitcoin-cli` che hai imparato fino ad oggi. Puoi effettuare transazioni grezze di qualsiasi tipo, quindi inviare PSBT ai portafogli hardware per la firma. Pertanto, hai tutta la potenza di Bitcoin Core, ma hai anche la sicurezza di un dispositivo hardware.
+
+## Qual è il prossimoargomento?
+
+Espandi maggiormente le transazioni Bitcoin con il [Capitolo 8: Ampliare Altre Transazioni Bitcoin](08_0_Ampliare_Altre_Transazioni_Bitcoin.md).
diff --git a/it/08_0_Ampliare_Altre_Transazioni_Bitcoin.md b/it/08_0_Ampliare_Altre_Transazioni_Bitcoin.md
new file mode 100644
index 000000000..32b24347a
--- /dev/null
+++ b/it/08_0_Ampliare_Altre_Transazioni_Bitcoin.md
@@ -0,0 +1,21 @@
+# Capitolo otto: Ampliare le transazioni Bitcoin in altri modi
+
+La definizione di transazioni di base nel [Capitolo 6](06_0_Ampliare_le_Transazioni_Bitcoin_con_Multifirme.md) affermava che venivano inviati _"fondi"_ _"immediatamente"_, ma questi sono due elementi che possono essere modificati. Questa sezione finale sull'espansione delle transazioni Bitcoin parla di come inviare cose diverse dal contanti e come farlo in un momento diverso da quello attuale.
+
+## Obiettivi di questa sezione
+
+Dopo aver letto questo capitolo, uno sviluppatore sarà in grado di:
+
+ * Creare transazioni con Locktimes
+ * Creare transazioni con Dati
+
+Gli obiettivi di supporto includono la capacità di:
+
+ * Comprendere i diversi tipi di Timelocks, blocchi temporali
+ * Pianificare la potenza di Locktime
+ * Pianificare la potenza di OP_RETURN
+
+## Sommario
+
+ * [Capitolo 8.1: Inviare una Transazione con Blocco temporale](08_1_Inviare_una_Transazione_con_Blocco_temporale.md)
+ * [Capitolo 8.2: Inviare una Transazione con Dati](08_2_Inviare_una_Transazione_con_Dati.md)
diff --git a/it/08_1_Inviare_una_Transazione_con_Blocco_temporale.md b/it/08_1_Inviare_una_Transazione_con_Blocco_temporale.md
new file mode 100644
index 000000000..61a12303e
--- /dev/null
+++ b/it/08_1_Inviare_una_Transazione_con_Blocco_temporale.md
@@ -0,0 +1,135 @@
+# 8.1: Invio di una transazione con un Locktime
+
+I capitoli precedenti hanno mostrato due modi diversi per inviare fondi da più macchine e a più destinatari. Ma ci sono altri due modi per modificare radicalmente le transazioni di base. Il primo di questi è variare il tempo scegliendo un tempo di attessa, _locktime_. Ciò ti dà la possibilità di inviare transazioni grezze in un momento futuro.
+
+## Comprendere come funziona Locktime
+
+Quando crei una transazione locktime, la fermi con un numero che rappresenta l'altezza del blocco ( (se è un numero piccolo) o un timestamp UNIX (se è un numero grande). Questo dice alla rete Bitcoin che la transazione non può essere inserita in un blocco finché non è arrivato il momento specificato o finché la blockchain non ha raggiunto l'altezza specificata.
+
+> :book: **_Che cos'è l'altezza del blocco?_** `block height` è il conteggio totale dei blocchi nella catena, risalendo al blocco numero 1 cioè il blocco genesi di Bitcoin.
+
+Quando una transazione locktime è in attesa di entrare in un blocco, può essere annullata. Ciò significa che è tutt’altro che finalizzato. In effetti, lo scopo principale di una transazione locktime è avere la possibilità di annullarla.
+
+> :book: **_Cos'è nLockTime?_** È la stessa cosa di locktime. Più specificamente, è ciò che viene chiamato locktime interno al codice sorgente di Bitcoin Core.
+
+> :book: **_Che cos'è Timelock?_** Locktime è solo un modo per trattenere le transazioni Bitcoin fino a un certo punto nel futuro; collettivamente questi metodi sono chiamati timelock. Locktime è il metodo di blocco temporale più semplice. Blocca un'intera transazione con un tempo assoluto ed è disponibile tramite `bitcoin-cli` (motivo per cui è l'unico blocco temporale trattato in questa sezione). Un metodo parallelo, che blocca una transazione con un tempo relativo, è definito nel [BIP 68](https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki) e trattato nel [Capitolo 11.3: Utilizzo di CSV negli script](11_3_Using_CSV_in_Scripts.md).
+
+> Bitcoin Script potenzia ulteriormente entrambi i tipi di blocchi temporali, consentendo il blocco di singoli output anziché di intere transazioni. I timelock assoluti (come Locktime) sono collegati al codice operativo dello script OP_CHECKLOCKTIMEVERIFY, che è definito in [BIP 65](https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki) e trattato in [ §11.2: Using CLTV in Scripts](11_2_Usare_CLTV_negli_Scripts.md), mentre i timelock relativi (come Timelock) sono collegati al codice operativo dello script `OP_CHECKSEQUENCEVERIFY`, che è definito nel [BIP 112](https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki) e trattato anche nel [Capitolo11.3](11_3_Usare_CSV_negli_Scripts.md).
+
+## Creare una transazione Locktime
+
+Per creare una transazione `locktime`, devi prima determinare su cosa imposterai il locktime.
+
+### Scopri il tuo orario di blocco tramite timestamp UNIX
+
+Molto spesso imposterai il locktime su un timestamp UNIX che rappresenta una data e un'ora specifiche. È possibile calcolare un timestamp UNIX in un sito Web come [UNIX Time Stamp](http://www.unixtimestamp.com/) o [Epoch Converter](https://www.epochconverter.com/). Tuttavia, sarebbe meglio [scrivere il proprio script](https://www.epochconverter.com/#code) sul computer locale, in modo da sapere che il timestamp UNIX ricevuto è accurato. Se non lo fai, almeno ricontrolla su due siti diversi.
+
+> :book: **_Perché dovrei utilizzare un timestamp UNIX?_** L'uso di un timestamp UNIX rende semplice collegare definitivamente una transazione a un'ora specifica, senza preoccuparsi se la velocità di creazione del blocco potrebbe cambiare ad un certo punto. Soprattutto se stai creando un locktime lontano nel futuro, è la cosa più sicura da fare. Ma, oltre a ciò, è semplicemente più intuitivo, poiché crea una correlazione diretta tra una data di calendario e l'ora in cui la transazione può essere estratta.
+
+> :warning: **ATTENZIONE:** Il locktime con i timestamp UNIX ha un po' di margine di manovra: il rilascio dei blocchi non è regolare e gli orari dei blocchi possono essere due ore avanti rispetto al tempo reale, quindi un locktime in realtà significa "entro pochi ore di questo tempo, più o meno".
+
+### Determina il tempo di chiusura in base all'altezza del blocco
+
+In alternativa, puoi impostare il tempo di blocco su un numero più piccolo che rappresenta l'altezza del blocco. Per calcolare l'altezza futura del blocco, devi prima sapere qual è l'altezza attuale del blocco. `bitcoin-cli getblockcount` ti dirà quale è l'altezza del blocco secondo la tua macchina locale. Potresti voler ricontrollare con un esploratore Bitcoin.
+
+Una volta determinata l'altezza attuale, puoi decidere fino a che punto nel futuro impostare il tempo di blocco. Ricorda che in media verrà creato un nuovo blocco ogni 10 minuti. Quindi, ad esempio, se volessi impostare il tempo di blocco su una settimana nel futuro, sceglieresti un'altezza del blocco pari a 6 x 24 x 7 = 1.008 blocchi dopo rispetto a quella attuale.
+
+> :book: **_Perché dovrei usare un Blockheight?_** A differenza dei timestamp, non c'è confusione per i blockheight. Se imposti un'altezza del blocco di 120.000 per il tuo locktime, non c'è assolutamente alcun modo per farlo entrare nel blocco 119.999. Ciò può rendere più semplice il controllo algoritmico della transazione bloccata. Lo svantaggio è che non puoi essere sicuro di quando sarà esattamente l'ora di blocco.
+
+> :warning: **AVVISO:** Se vuoi impostare un block-height locktime, devi impostare il tempo di blocco su un valore inferiore a 500 milioni. Se lo imposti su 500 milioni o più, il tuo numero verrà invece interpretato come un timestamp. Poiché il timestamp UNIX di 500 milioni era il 5 novembre 1985, ciò probabilmente significa che la tua transazione verrà bloccata alla prima occasione dei minatori.
+
+## Scrivere la transazione
+
+Una volta stabilito il tempo di blocco, tutto ciò che devi fare è scrivere una tipica transazione grezza, con una terza variabile per `locktime`:
+```
+$ rawtxhex=$(bitcoin-cli -named createrawtransaction inputs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout' } ]''' outputs='''{ "'$recipient'": 0.001, "'$changeaddress'": 0.00095 }''' locktime=1774650)
+```
+Tieni presente che questo utilizzo di `locktime` è inferiore a 500 milioni, il che significa che definisce l'altezza del blocco. In questo caso, sono solo pochi blocchi oltre l'altezza del blocco attuale al momento della stesura di questo articolo, pensato per esemplificare come funziona il locktime senza stare a lungo ad aspettare e vedere cosa succede.
+
+Ecco come appare la transazione creata:
+```
+$ bitcoin-cli -named decoderawtransaction hexstring=$rawtxhex
+{
+ "txid": "ba440b1dd87a7ccb6a200f087d2265992588284eed0ae455d0672aeb918cf71e",
+ "hash": "ba440b1dd87a7ccb6a200f087d2265992588284eed0ae455d0672aeb918cf71e",
+ "version": 2,
+ "size": 113,
+ "vsize": 113,
+ "weight": 452,
+ "locktime": 1774650,
+ "vin": [
+ {
+ "txid": "0ad9fb6992dfe4ea90236b69852b3605c0175633b32996a486dcd0b2e739e385",
+ "vout": 1,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967294
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.00100000,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "0 f333554cc0830d03a9c1f26758e2e7e0f155539f",
+ "hex": "0014f333554cc0830d03a9c1f26758e2e7e0f155539f",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1q7ve42nxqsvxs82wp7fn43ch8urc425ul5um4un"
+ ]
+ }
+ },
+ {
+ "value": 0.00095000,
+ "n": 1,
+ "scriptPubKey": {
+ "asm": "0 a37718a3510958112b6a766e0023ff251b6c2bfb",
+ "hex": "0014a37718a3510958112b6a766e0023ff251b6c2bfb",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1q5dm33g63p9vpz2m2wehqqglly5dkc2lmtmr98d"
+ ]
+ }
+ }
+ ]
+}
+```
+Tieni presente che il numero di sequenza (`4294967294`) è inferiore a `0xffffffff`. Questa è una segnalazione necessaria per mostrare che la transazione include un locktime. Viene eseguito anche automaticamente da `bitcoin-cli`. Se il numero di sequenza è invece impostato su `"0xffffffff`, il tempo di blocco verrà ignorato.
+
+> :information_source: **NOTA — SEQUENCE:** Questo è il secondo utilizzo del valore `nSequence` in Bitcoin. Come con RBF, `nSequence` viene nuovamente utilizzato come opt-in, questa volta per l'utilizzo di locktime. 0xffffffff-1 (4294967294) è il valore preferito per segnalare locktime perché non consente intenzionalmente l'uso sia di RBF (che richiede `nSequence < 0xffffffff-1`) che di timelock relativo (che richiede `nSequence < 0xf0000000`), gli altri due usano del valore "nSequence". Se imposti "nSequence" su un valore inferiore a "0xf0000000", bloccherai anche la transazione, il che probabilmente non è quello che desideri.
+
+> :warning: **AVVISO:** Se stai creando una transazione grezza locktime con un mezzo diverso da `bitcoin-cli`, dovrai impostare manualmente la sequenza su un valore inferiore a `0xffffffff`.
+
+## Invia la tua transazione
+
+Ormai probabilmente hai già familiarità con il completamento finale delle transazioni:
+```
+$ signedtx=$(bitcoin-cli -named signrawtransactionwithwallet hexstring=$rawtxhex | jq -r '.hex')
+$ bitcoin-cli -named sendrawtransaction hexstring=$signedtx
+error code: -26
+error message:
+non-final
+```
+Oops! Cos'è quell'errore!?
+
+Dal 2013, generalmente non è possibile inserire la transazione bloccata nel mempool finché il suo blocco non è scaduto. Tuttavia, puoi comunque trattenere la transazione, inviandola occasionalmente alla rete Bitcoin finché non viene accettata nel mempool. In alternativa, potresti inviare la transazione firmata (`$signedtx`) al destinatario, in modo che possa inserirla nel mempool una volta scaduto il locktime.
+
+Una volta trascorso il tempo di blocco, chiunque può inviare la transazione firmata alla rete e il destinatario riceverà il denaro come previsto... a condizione che la transazione non sia stata annullata.
+
+## Annullare una transazione Locktime
+
+Annullare una transazione locktime è _molto_ semplice: invii una nuova transazione utilizzando almeno uno degli stessi UTXO.
+
+## Riepilogo: invio di una transazione con un locktime
+
+Locktime offre un modo per creare una transazione che _dovrebbe_ non essere inoltrabile alla rete e che _non_ sarà_ accettata in un blocco finché non sarà arrivato il momento appropriato. Nel frattempo è possibile annullarlo semplicemente riutilizzando un UTXO.
+
+> :fire: **_Qual è il potere di Locktime?_** Il potere di Locktime potrebbe non essere immediatamente evidente a causa della possibilità di annullarlo così facilmente. Tuttavia, è un'altra delle basi degli Smart Contracts: ha molta utilità in una varietà di applicazioni custodiali o contrattuali. Ad esempio, considera una situazione in cui una terza parte detiene i tuoi bitcoin. Per garantire la restituzione dei tuoi bitcoin nel caso in cui il custode scomparisse, potrebbe produrre una transazione con blocco temporale per restituirti le monete, quindi aggiornarla di tanto in tanto con una nuova, più avanti in futuro. Se mai non riuscissero ad aggiornarsi, le monete ti verranno restituite allo scadere del blocco temporale corrente. Allo stesso modo Locktime potrebbe essere applicato a una rete di pagamento, in cui la rete trattiene monete mentre vengono scambiate dai partecipanti alla rete. Infine, un testamento offre un esempio di contratto più complesso, in cui i pagamenti vengono inviati a un numero di persone. Questi pagamenti verrebbero basati su transazioni bloccate e verrebbero continuamente aggiornati finché il proprietario continua a mostrare segni di vita. (Il fattore unificante di tutte queste applicazioni è, ovviamente, la _fiducia_. Le semplici transazioni locktime funzionano solo se ci si può fidare del detentore delle monete per inviarle alle condizioni appropriate.)
+
+## Qual è il prossimo argomento?
+
+Continua con "Espansione delle transazioni Bitcoin" nel [Capitolo 8.2: Inviare una Transazione con Dati](08_2_Inviare_una_Transazione_con_Dati.md).
diff --git a/it/08_2_Inviare_una_Transazione_con_Dati.md b/it/08_2_Inviare_una_Transazione_con_Dati.md
new file mode 100644
index 000000000..a65e9ffe1
--- /dev/null
+++ b/it/08_2_Inviare_una_Transazione_con_Dati.md
@@ -0,0 +1,123 @@
+# 8.2: Inviare una transazione con dati
+
+L'ultimo modo per variare la modalità di invio di una transazione di base è utilizzare la transazione per inviare dati anziché fondi (o, in realtà, in aggiunta di fondi). Questo ti dà la possibilità di incorporare informazioni nella blockchain. Viene eseguito tramite uno speciale comando `OP_RETURN`.
+
+Il limite? Puoi memorizzare solo 80 byte alla volta!
+
+## Crea i tuoi dati
+
+La prima cosa che devi fare è creare gli 80 byte (o meno) di dati che registrerai nel tuo `OP_RETURN`. Potrebbe essere semplice come preparare un messaggio oppure potresti eseguire l'hashing dei dati esistenti. Ad esempio, "sha256sum" produce 256 bit di dati, ovvero 32 byte, ben al di sotto dei limiti:
+```
+$ sha256sum contratto.jpg
+b9f81a8919e5aba39aeb86145c684010e6e559b580a85003ae25d78237a12e75 contratto.jpg
+$ op_return_data="b9f81a8919e5aba39aeb86145c684010e6e559b580a85003ae25d78237a12e75"
+```
+> :book: _Che cos'è un OP_RETURN?_ Tutte le transazioni Bitcoin sono basate su script opcode che incontreremo nel prossimo capitolo. `OP_RETURN` è un semplice codice operativo che definisce un OUTPUT come non valido. La convenzione ha portato al suo utilizzo per incorporare dati nella blockchain.
+
+## Prepara dei soldi
+
+Il tuo scopo nel creare una transazione di dati non è inviare denaro a nessuno, ma inserire i dati nella blockchain. Tuttavia, devi_ inviare denaro per farlo. Devi solo utilizzare un indirizzo di resto come _unico_ destinatario. Quindi puoi identificare un UTXO e inviarlo al tuo indirizzo di modifica, meno una commissione di transazione, utilizzando anche la stessa transazione per creare un OP_RETURN.
+
+Ecco la configurazione standard:
+```
+$ bitcoin-cli listunspent
+[
+ {
+ "txid": "854a833b667049ac811b4cf1cad40fa7f8dce8b0f4c1018a58b84559b6e05f42",
+ "vout": 0,
+ "address": "tb1q6kgsjxuqwj3rwhkenpdfcjccalk06st9z0k0kh",
+ "scriptPubKey": "0014d591091b8074a2375ed9985a9c4b18efecfd4165",
+ "amount": 0.01463400,
+ "confirmations": 1392,
+ "spendable": true,
+ "solvable": true,
+ "desc": "wpkh([d6043800/0'/1'/12']02883bb5463e37d55252d8b3d5c2141b007b37c8a7db6211f75c955acc5ea325eb)#cjr03mru",
+ "safe": true
+ }
+]
+
+$ utxo_txid=$(bitcoin-cli listunspent | jq -r '.[0] | .txid')
+$ utxo_vout=$(bitcoin-cli listunspent | jq -r '.[0] | .vout')
+$ changeaddress=$(bitcoin-cli getrawchangeaddress)
+```
+
+## Scrivi una transazione grezza
+
+Ora puoi scrivere una nuova transazione grezza con due output: uno è il tuo indirizzo di resto per recuperare (la maggior parte) dei tuoi soldi, l'altro è un idata address, che è il termine `bitcoin-cli` per un OP_RETURN.
+```
+rawtxhex=$(bitcoin-cli -named createrawtransaction inputs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout' } ]''' outputs='''{ "data": "'$op_return_data'", "'$changeaddress'": 0.0146 }''')
+```
+
+
+Ecco come appare effettivamente la transazione:
+```
+{
+ "txid": "a600148ac3b05f0c774b8687a71c545077ea5dfb9677e5c6d708215053d892e8",
+ "hash": "a600148ac3b05f0c774b8687a71c545077ea5dfb9677e5c6d708215053d892e8",
+ "version": 2,
+ "size": 125,
+ "vsize": 125,
+ "weight": 500,
+ "locktime": 0,
+ "vin": [
+ {
+ "txid": "854a833b667049ac811b4cf1cad40fa7f8dce8b0f4c1018a58b84559b6e05f42",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "sequence": 4294967295
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.00000000,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "OP_RETURN b9f81a8919e5aba39aeb86145c684010e6e559b580a85003ae25d78237a12e75",
+ "hex": "6a20b9f81a8919e5aba39aeb86145c684010e6e559b580a85003ae25d78237a12e75",
+ "type": "nulldata"
+ }
+ },
+ {
+ "value": 0.01460000,
+ "n": 1,
+ "scriptPubKey": {
+ "asm": "0 998a9b0ed076bbdec1d88da4f475b9dde75e3620",
+ "hex": "0014998a9b0ed076bbdec1d88da4f475b9dde75e3620",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1qnx9fkrksw6aaaswc3kj0gademhn4ud3q7cz4fm"
+ ]
+ }
+ }
+ ]
+}
+
+```
+Come puoi vedere, questo rimanda la maggior parte del denaro direttamente all'indirizzo modificato (`tb1qnx9fkrksw6aaaswc3kj0gademhn4ud3q7cz4fm`) meno una piccola commissione di transazione. Ancora più importante, il primo output mostra un OP_RETURN con i dati (`b9f81a8919e5aba39aeb86145c684010e6e559b580a85003ae25d78237a12e75`) subito dopo.
+
+## Invia la transazione grezza
+
+Firma la tua transazione grezza e inviala, e presto OP_RETURN sarà incorporato nella blockchain!
+
+## Controlla il tuo OP_RETURN
+
+Ancora una volta, ricorda che puoi guardare questa transazione usando un blockchain explorer:
+[https://live.blockcypher.com/btc-testnet/tx/a600148ac3b05f0c774b8687a71c545077ea5dfb9677e5c6d708215053d892e8/](https://live.blockcypher.com/btc-testnet/tx/a600148ac3b05f0c7 74b8687a71c545077ea5dfb9677e5c6d708215053d892e8/)
+
+Potresti notare un avviso relativo ai dati che si trovano in un "protocollo sconosciuto". Se stessi progettando un uso regolare dei dati `OP_RETURN`, probabilmente lo contrassegneresti con un prefisso speciale, per contrassegnare quel protocollo. Quindi, i dati OP_RETURN effettivi potrebbero essere qualcosa come "CONTRACTS3b110a164aa18d3a5ab064ba93fdce62". In questo esempio non è stato utilizzato un prefisso per evitare di confondere lo spazio dati.
+
+## Riepilogo: invio di una transazione con dati
+
+Puoi utilizzare un codice operativo `OP_RETURN` per archiviare fino a 80 byte di dati sulla blockchain. Puoi farlo con la parola in codice `data` per un `vout`. Devi comunque inviare anche del denaro, ma devi semplicemente rispedirlo a un indirizzo diverso, meno una commissione di transazione.
+
+> :fire: _Qual è il potere di OP_RETURN?_ OP_RETURN apre possibilità completamente nuove per la blockchain, perché puoi incorporare dati che dimostrano che determinate cose sono accadute in determinati momenti. Varie organizzazioni hanno utilizzato OP_RETURN per provare l'esistenza, per il copyright, per monete colorate e [per altri scopi](https://en.bitcoin.it/wiki/OP_RETURN). Anche se 80 byte potrebbero non sembrare molti, possono essere abbastanza efficaci se si utilizzano OP_RETURN per archiviare gli hash dei dati effettivi. Quindi, puoi dimostrare l'esistenza dei tuoi dati digitali dimostrando che il loro hash corrisponde all'hash sulla blockchain.
+
+Tieni presente che c'è qualche controversia sull'utilizzo della blockchain Bitcoin in questo modo.
+
+## Qual è il prossimo argomento?
+
+Passa a "Bitcoin Scripting" nel [Capitolo 9: Introduzione script di Bitcoin](09_0_Introduzione_script_di_Bitcoin.md).
diff --git a/it/09_0_Introduzione_script_di_Bitcoin.md b/it/09_0_Introduzione_script_di_Bitcoin.md
new file mode 100644
index 000000000..8467ac2e6
--- /dev/null
+++ b/it/09_0_Introduzione_script_di_Bitcoin.md
@@ -0,0 +1,27 @@
+# Capitolo 9: Introduzione agli script Bitcoin
+
+Finora, abbiamo interagito con Bitcoin a un livello di astrazione relativamente elevato. Il programma `bitcoin-cli` offre accesso a una varietà di comandi RPC che supportano la creazione e il controllo di transazioni Bitcoin raw che includono fondi, dati, timelock e multisig.
+
+Tuttavia, Bitcoin offre molta più complessità di così. Include un semplice linguaggio di scripting che può essere utilizzato per creare condizioni di riscatto ancora più complesse. Se multisig e timelock hanno fornito la base degli Smart Contract, allora Bitcoin Script si fondamenta su quella base. È il passo successivo per potenziare Bitcoin.
+
+## Obiettivi di questo capitolo
+
+Dopo aver completato questo capitolo, uno sviluppatore sarà in grado di:
+
+* Progettare uno script Bitcoin
+* Applicare uno script Bitcoin
+
+Gli obiettivi di supporto includono la capacità di:
+
+* Comprendere lo scopo degli script Bitcoin
+* Comprendere lo script P2PKH
+* Comprendere come funziona P2WPKH con lo scripting
+* Comprendere le esigenze per il test degli script Bitcoin
+
+## Indice
+
+* [Capitolo 9.1: Le basi delle transazioni](09_1_Le_basi_delle_transazioni.md)
+* [Capitolo 9.2: Eseguire uno Script di Bitcoin](09_2_Eseguire_uno_Script_di_Bitcoin.md)
+* [Capitolo 9.3: Provare uno Script Bitcoin](09_3_Provare_uno_Script_Bitcoin.md)
+* [Capitolo 9.4: Programmare una 2PKH](09_4_Programmare_una_P2PKH.md)
+* [Capitolo 9.5: Programmare una P2WPKH](09_5_Programmare_una_P2WPKH.md)
diff --git a/it/09_1_Le_basi_delle_transazioni.md b/it/09_1_Le_basi_delle_transazioni.md
new file mode 100644
index 000000000..59efcb920
--- /dev/null
+++ b/it/09_1_Le_basi_delle_transazioni.md
@@ -0,0 +1,142 @@
+# 9.1: Comprendere le basi delle transazioni
+
+Le basi di Bitcoin sono la capacità di proteggere le transazioni, cosa che viene fatta con un semplice linguaggio di scripting.
+
+## Conoscere le parti del puzzle crittografico
+
+Come descritto nel [Capitolo 1](01_0_Introduzione.md), i fondi in ogni transazione Bitcoin sono bloccati con un puzzle crittografico. Per essere precisi, abbiamo detto che Bitcoin è composto da "una sequenza di transazioni atomiche". Abbiamo notato che: "Ogni transazione è autenticata da un mittente con la soluzione a un precedente puzzle crittografico che è stato memorizzato come uno script. La nuova transazione è bloccata per il destinatario con un nuovo puzzle crittografico che è anche memorizzato come uno script". Questi script, che bloccano e sbloccano le transazioni, sono scritti in Bitcoin Script.
+
+> :book: ***Cos'è Bitcoin Script?*** Bitcoin Script è un linguaggio simile a Forth basato su stack che evita volutamente i loop e quindi non è Turing-completo. È composto da singoli opcode. Ogni singola transazione in Bitcoin è bloccata con uno script Bitcoin; quando la transazione di blocco per un UTXO viene eseguita con gli input corretti, quell'UTXO può essere speso.
+
+Il fatto che le transazioni siano bloccate con script significa che possono essere bloccate in vari modi diversi, richiedendo una varietà di chiavi diverse. Infatti, abbiamo incontrato diversi meccanismi di blocco fino ad oggi, ognuno dei quali utilizzava diversi opcode:
+
+* OP_CHECKSIG, che controlla una chiave pubblica rispetto a una firma, è la base del classico indirizzo P2PKH, come verrà spiegato in dettaglio in [Capitolo 9.4: Programmare una P2PKH](09_4_Programmare_una_P2PKH.md).
+* OP_CHECKMULTISIG controlla in modo simile i multisig, come verrà spiegato in dettaglio in [Capitolo 10.4: Programmare una Multifirma](10_4_Programmare_una_Multifirma.md).
+* OP_CHECKLOCKTIMEVERIFY e OP_SEQUENCEEVERIFY costituiscono la base di Timelock più complessi, come verrà spiegato in dettaglio nel [Capitolo 11.2: Usare CLTV negli Scripts](11_2_Usare_CLTV_negli_Scripts.md).
+* OP_RETURN è un segno di una transazione non spendibile, motivo per cui viene utilizzato per trasportare dati, come accennato in [Capitolo 8.2: Inviare una Transazione con Dati](08_2_Inviare_una_Transazione_con_Dati.md).
+
+## Script di accesso nelle tue transazioni
+
+Potresti non rendertene conto, ma hai già visto questi script di blocco e sblocco come parte delle transazioni raw con cui hai lavorato. Il modo migliore per esaminare questi script in modo più approfondito è quindi creare una transazione raw, quindi esaminarla.
+
+### Crea una transazione di prova
+
+Per esaminare gli script di sblocco e blocco, crea una rapida transazione raw prendendo un UTXO Legacy non speso e reinviandolo a un indirizzo di resto Legacy, meno una commissione di transazione:
+```
+$ utxo_txid=$(bitcoin-cli listunspent | jq -r '.[1] | .txid')
+$ utxo_vout=$(bitcoin-cli listunspent | jq -r '.[1] | .vout')
+$ recipient=$(bitcoin-cli -named getrawchangeaddress address_type=legacy)
+$ rawtxhex=$(bitcoin-cli -named createrawtransaction inputs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout' } ]''' outputs='''{ "'$recipient'": 0.0009 }''')
+$ signedtx=$(bitcoin-cli -named signrawtransactionwithwallet hexstring=$rawtxhex | jq -r '.hex')
+```
+In realtà non è necessario inviarlo: l'obiettivo è semplicemente produrre una transazione completa che puoi esaminare.
+
+> **NOTA:** Perché indirizzi legacy? Perché i loro script sono più significativi. Tuttavia, offriremo anche un esempio di un SegWit P2WPKH nativo nel [Capitolo 9.5](09_5_Programmare_una_P2WPKH.md).
+
+### Esamina la tua transazione di prova
+
+Ora puoi esaminare la tua transazione in modo approfondito utilizzando `decoderawtransaction` su `$signedtx`:
+```
+$ bitcoin-cli -named decoderawtransaction hexstring=$signedtx
+{
+ "txid": "34151dac704d94a269cd33f80be34c122152edc9bfbb9323852966bf0ce937ed",
+ "hash": "34151dac704d94a269cd33f80be34c122152edc9bfbb9323852966bf0ce937ed",
+ "version": 2,
+ "size": 191,
+ "vsize": 191,
+ "weight": 764,
+ "locktime": 0,
+ "vin": [
+ {
+ "txid": "bb4362dec15e67d366088f5493c789f22fb4a604e767dae1f6a631687e2784aa",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "304402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c9dfba68b92cbab7d1022066f273178febc7a37568e2e9f4dec980a2e9a95441abe838c7ef64c39d85849c[ALL] 0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b",
+ "hex": "47304402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c9dfba68b92cbab7d1022066f273178febc7a37568e2e9f4dec980a2e9a95441abe838c7ef64c39d85849c01210315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b"
+ },
+ "sequence": 4294967295
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.00090000,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "OP_DUP OP_HASH160 06b5c6ba5330cdf738a2ce91152bfd0e71f9ec39 OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a91406b5c6ba5330cdf738a2ce91152bfd0e71f9ec3988ac",
+ "reqSigs": 1,
+ "type": "pubkeyhash",
+ "addresses": [
+ "mg8S7F1gY3ivV9M9GrWwe6ziWvK2MFquCf"
+ ]
+ }
+ }
+ ]
+}
+
+```
+I due script si trovano in due parti diverse della transazione.
+
+Lo `scriptSig` si trova in `vin`. Questo è lo script di _sblocco_. È ciò che viene eseguito per accedere all'UTXO utilizzato per finanziare questa transazione. Ci sarà uno `scriptSig` per UTXO in una transazione.
+
+Lo `scriptPubKey` si trova in `vout`. Questo è lo script di _blocco_. È ciò che blocca il nuovo output dalla transazione. Ci sarà uno `scriptPubKey` per output in una transazione.
+
+> :book: ***Come interagiscono scriptSig e scriptPubKey?*** Lo `scriptSig` di una transazione sblocca l'UTXO precedente; l'output di questa nuova transazione verrà quindi bloccato con uno `scriptPubKey`, che a sua volta può essere sbloccato dallo `scriptSig` della transazione che riutilizza quell'UTXO.
+
+### Leggi gli script nella tua transazione
+
+Guarda i due script e vedrai che ognuno include due rappresentazioni diverse: `hex` è ciò che viene effettivamente memorizzato, ma il linguaggio assembly più leggibile (`asm`) può in un certo senso mostrarti cosa sta succedendo.
+
+Dai un'occhiata a `asm` dello script di sblocco e avrai una prima occhiata a come appare Bitcoin Scripting:
+```
+04402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c9dfba68b92cbab7d1022066f273178febc7a37568e2e9f4dec980a2e9a95441abe838c7ef64c39d85849c[ALL] 0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b
+```
+Come capita, quel pasticcio di numeri è una firma a chiave privata seguita dalla chiave pubblica associata. O almeno si spera che sia così, perché è ciò che serve per sbloccare l'UTXO P2PKH che questa transazione sta utilizzando.
+
+Leggi lo script di blocco e vedrai che è molto più ovvio:
+```
+OP_DUP OP_HASH160 06b5c6ba5330cdf738a2ce91152bfd0e71f9ec39 OP_EQUALVERIFY OP_CHECKSIG
+```
+Questo è il metodo standard in Bitcoin Script per bloccare una transazione P2PKH.
+
+Il [Capitolo 9.4](09_4_Programmare_una_P2PKH.md) spiegherà come questi due script vanno insieme, ma prima dovrai sapere come vengono valutati gli script Bitcoin.
+
+## Esaminare una transazione diversa
+
+Prima di abbandonare questa base, esamineremo un diverso tipo di script di blocco. Ecco `scriptPubKey` dalla transazione multisig che hai creato in [Capitolo 6.1: Inviare una Transazione a un Indirizzo Multifirma](06_1_Inviare_una_Transazione_a_un_Indirizzo_Multifirma.md).
+```
+ "scriptPubKey": {
+ "asm": "OP_HASH160 a5d106eb8ee51b23cf60d8bd98bc285695f233f3 OP_EQUAL",
+ "hex": "a914a5d106eb8ee51b23cf60d8bd98bc285695f233f387",
+ "reqSigs": 1,
+ "type": "scripthash",
+ "addresses": [
+ "2N8MytPW2ih27LctLjn6LfLFZZb1PFSsqBr"
+ ]
+ }
+```
+
+Confrontalo con lo `scriptPubKey` della tua nuova transazione P2PKH:
+```
+ "scriptPubKey": {
+ "asm": "OP_DUP OP_HASH160 06b5c6ba5330cdf738a2ce91152bfd0e71f9ec39 OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a91406b5c6ba5330cdf738a2ce91152bfd0e71f9ec3988ac",
+ "reqSigs": 1,
+ "type": "pubkeyhash",
+ "addresses": [
+ "mg8S7F1gY3ivV9M9GrWwe6ziWvK2MFquCf"
+ ]
+ }
+```
+
+Queste due transazioni sono _sicuramente_ bloccate in modi diversi. Bitcoin riconosce la prima come `scripthash` (P2SH) e la seconda come `pubkeyhash` (P2PKH), ma dovresti anche essere in grado di vedere la differenza nel diverso codice `asm`: `OP_HASH160 a5d106eb8ee51b23cf60d8bd98bc285695f233f3 OP_EQUAL` contro `OP_DUP OP_HASH160 06b5c6ba5330cdf738a2ce91152bfd0e71f9ec39 OP_EQUALVERIFY OP_CHECKSIG`. Questo è il potere dello scripting: può semplicemente produrre alcuni dei tipi di transazioni radicalmente diversi che hai imparato nei capitoli precedenti.
+
+## Riepilogo: comprendere le basi delle transazioni
+
+Ogni transazione Bitcoin include almeno uno script di sblocco (`scriptSig`), che risolve un precedente puzzle crittografico, e almeno uno script di blocco (`scriptPubKey`), che crea un nuovo puzzle crittografico. C'è uno `scriptSig` per input e uno `scriptPubKey` per output. Ognuno di questi script è scritto in Bitcoin Script, un linguaggio simile a Forth che potenzia ulteriormente Bitcoin.
+
+> :fire: ***Qual è il potere degli script?*** Gli script sbloccano tutta la potenza degli Smart Contract. Con gli opcode appropriati, puoi prendere decisioni molto precise su chi può riscattare i fondi, quando possono riscattare i fondi e come possono riscattare i fondi. Regole più complesse per la spesa aziendale, la spesa di partnership, la spesa proxy e altre metodologie possono anche essere codificate all'interno di uno Script. Potenzia persino servizi Bitcoin più complessi come Lightning e sidechain.
+
+## Cosa c'è dopo?
+
+Continua "Introduzione agli script Bitcoin" col [Capitolo 9.2:Eseguire uno Script di Bitcoin](09_2_Eseguire_uno_Script_di_Bitcoin.md).
diff --git a/it/09_2_Eseguire_uno_Script_di_Bitcoin.md b/it/09_2_Eseguire_uno_Script_di_Bitcoin.md
new file mode 100644
index 000000000..434481f75
--- /dev/null
+++ b/it/09_2_Eseguire_uno_Script_di_Bitcoin.md
@@ -0,0 +1,125 @@
+# 9.2: Esecuzione di uno script Bitcoin
+
+Gli script Bitcoin inizialmente potrebbero non sembrare così intuitivi, ma la loro esecuzione è abbastanza semplice, utilizzando la notazione Polacca inversa e uno stack.
+
+## Comprendere il linguaggio di scripting
+
+Uno script Bitcoin è composto da tre parti: ha una riga di input; ha uno stack per la conservazione; e ha comandi specifici per l'esecuzione.
+
+### Comprendere l'ordine
+
+Gli script Bitcoin vengono eseguiti da sinistra a destra. Sembra abbastanza facile, perché è lo stesso modo in cui leggi. Tuttavia, potrebbe in realtà essere l'elemento meno intuitivo di Bitcoin Script, perché significa che le funzioni non appaiono come ti aspetteresti. Invece, _gli operandi vanno prima dell'operatore._
+
+Ad esempio, se dovessi sommare "1" e "2", il tuo script Bitcoin sarebbe `1 2 OP_ADD`, _non_ "1 + 2". Poiché sappiamo che l'operatore OP_ADD accetta due input, sappiamo che i due input prima di esso sono i suoi operandi.
+
+> :warning: **AVVISO:** Tecnicamente, tutto in Bitcoin Script è un codice operativo, quindi sarebbe più appropriato registrare l'esempio precedente come `OP_1 OP_2 OP_ADD`. Nei nostri esempi, non ci preoccupiamo di come verranno valutate le costanti, poiché questo è un argomento di traduzione, come spiegato nel [Capitolo 10.2: Costruire la struttura di P2SH](10_2_Construire_la_Struttura_di_P2SH.md). Alcuni autori preferiscono lasciare anche il prefisso "OP" su tutti gli operatori, ma noi abbiamo deciso di non farlo.
+
+### Comprendere lo stack
+
+In realtà non è del tutto corretto dire che un operatore si applica agli input che lo precedono. In realtà, un operatore si applica agli input principali nello stack di Bitcoin.
+
+> :book: ***Cos'è uno stack?*** Uno stack è una struttura dati LIFO (last-in-first-out). Ha due funzioni di accesso: push e pop. Push posiziona un nuovo oggetto in cima alla pila, spingendo verso il basso tutto ciò che si trova sotto di esso. Pop rimuove l'oggetto in cima alla pila.
+
+Ogni volta che Bitcoin Script incontra una costante, la inserisce nello stack. Quindi l'esempio sopra di "1 2 OP_ADD" sarebbe effettivamente simile a questo mentre veniva elaborato:
+```
+Script: 1 2 OP_ADD
+Stack: [ ]
+
+Script: 2 OP_ADD
+Stack: [ 1 ]
+
+Script: OP_ADD
+Stack: [ 1 2 ]
+```
+_Nota che in questo esempio e nei seguenti esempi la parte superiore dello stack è a destra e la parte inferiore a sinistra._
+
+### Comprendere i codici operativi
+
+Quando uno script Bitcoin incontra un operatore, lo valuta. Ogni operatore estrae zero o più elementi dallo stack come input, solitamente uno o due. Quindi li elabora in un modo specifico prima di rimettere zero o più elementi nello stack, solitamente uno o due.
+
+> :book: ***Cos'è un Opcode?*** Opcode sta per "codice operativo". È tipicamente associato al codice in linguaggio macchina ed è una funzione semplice (o "operatore").
+
+OP_ADD estrae due elementi dallo stack (qui: 2 poi 1), li somma e rimette il risultato nello stack (qui: 3).
+```
+Script:
+Running: 1 2 OP_ADD
+Stack: [ 3 ]
+```
+
+## Aumentiamo la complessità
+
+Gli script più complessi vengono creati eseguendo più comandi in ordine. Devono essere valutati attentamente da sinistra a destra, in modo da poter comprendere lo stato dello stack quando viene eseguito ogni nuovo comando. Cambierà costantemente, come risultato degli operatori precedenti:
+```
+Script: 3 2 OP_ADD 4 OP_SUB
+Stack: [ ]
+
+Script: 2 OP_ADD 4 OP_SUB
+Stack: [ 3 ]
+
+Script: OP_ADD 4 OP_SUB
+Stack: [ 3 2 ]
+
+Script: 4 OP_SUB
+Running: 3 2 OP_ADD
+Stack: [ 5 ]
+
+Script: OP_SUB
+Stack: [ 5 4 ]
+
+Script:
+Running: 5 4 OP_SUB
+Stack: [ 1 ]
+```
+
+## Comprendere l'utilizzo dello script Bitcoin
+
+Questo è praticamente Bitcoin Scripting... a parte alcune complessità su come questo linguaggio di scripting interagisce con Bitcoin stesso.
+
+### Comprendere scriptSig e scriptPubKey
+
+Come abbiamo visto, ogni input per una transazione Bitcoin contiene uno "scriptSig" utilizzato per sbloccare lo "scriptPubKey" per l'UTXO associato. Sono _effettivamente_ concatenati insieme, il che significa che `scriptSig` e `scriptPubKey` vengono eseguiti insieme, in quest'ordine.
+
+Quindi, presumi che un UTXO sia stato bloccato con uno `scriptPubKey` che legga `OP_ADD 99 OP_EQUAL`, richiedendo come input due numeri che si sommano a novantanove, e presumi che `scriptSig` di `1 98` sia stato eseguito per sbloccare Esso. I due script verrebbero effettivamente eseguiti in ordine come "1 98 OP_ADD 99 OP_EQUAL".
+
+Valutare il risultato:
+```
+Script: 1 98 OP_ADD 99 OP_EQUAL
+Stack: []
+
+Script: 98 OP_ADD 99 OP_EQUAL
+Stack: [ 1 ]
+
+Script: OP_ADD 99 OP_EQUAL
+Stack: [ 1 98 ]
+
+Script: 99 OP_EQUAL
+Running: 1 98 OP_ADD
+Stack: [ 99 ]
+
+Script: OP_EQUAL
+Stack: [ 99 99 ]
+
+Script:
+Running: 99 99 OP_EQUAL
+Stack: [ True ]
+```
+Questa astrazione non è del tutto accurata: per motivi di sicurezza, viene eseguito `scriptSig`, quindi il contenuto dello stack viene trasferito per l'esecuzione di `scriptPubKey`, ma è sufficientemente accurato per comprendere come si inserisce la chiave di `scriptSig` il blocco di `scriptPubKey`.
+
+> :warning: **AVVISO** Quanto sopra è un tipo di transazione non standard. In realtà non sarebbe accettato dai nodi che eseguono Bitcoin Core con le impostazioni standard. [Capitolo 10.1:Comprendere la Base di P2SH](10_1_Comprendere_la_Base_di_P2SH.md) spiega come effettivamente _potresti_ eseguire uno script Bitcoin come questo, utilizzando la potenza di P2SH.
+
+### Ottieni i risultati
+
+Bitcoin verificherà una transazione e consentirà di spendere l'UTXO se questi due criteri vengono soddisfatti durante l'esecuzione di `scriptSig` e `scriptPubKey`:
+
+ 1. L'esecuzione non è stata contrassegnata come non valida in nessun momento, ad esempio con un `OP_VERIFY` non riuscito o con l'utilizzo di un codice operativo disabilitato.
+ 2. L'elemento in cima allo stack alla fine dell'esecuzione è `true` (diverso da zero).
+
+Nell'esempio sopra, la transazione avrebbe successo perché lo stack ha un `true` in cima. Ma sarebbe altrettanto lecito terminare con uno stack completo e il numero `42` in cima.
+
+## Riepilogo: Eseguire uno script Bitcoin
+
+Per eseguire uno script Bitcoin, si eseguie uno `scriptSig` seguito dallo `scriptPubKey` che lo sta sbloccando. Questi comandi vengono eseguiti in ordine, da sinistra a destra, con le costanti che vengono inserite in uno stack e gli operatori che estraggono elementi da quello stack, quindi reinseriscono i risultati su di esso. Se lo script non si ferma a metà e se l'elemento in cima allo stack alla fine è diverso da zero, l'UTXO è sbloccato.
+
+## Qual è il prossimo argomento?
+
+Continua con "Introduzione agli script Bitcoin" nel [Capitolo 9.3: Provare uno Script Bitcoin](09_3_Provare_uno_Script_Bitcoin.md).
diff --git a/it/09_3_Provare_uno_Script_Bitcoin.md b/it/09_3_Provare_uno_Script_Bitcoin.md
new file mode 100644
index 000000000..d2408abaf
--- /dev/null
+++ b/it/09_3_Provare_uno_Script_Bitcoin.md
@@ -0,0 +1,213 @@
+# 9.3: Provare uno Script Bitcoin
+
+Bitcoin Scripting consente un notevole controllo aggiuntivo sulle transazioni Bitcoin, ma è anche alquanto pericoloso. Come descriveremo nel [Capitolo 10.1](10_1_Comprendere_la_Base_di_P2SH.md), gli script effettivi sono in qualche modo isolati dalla rete Bitcoin, il che significa che è possibile scrivere uno script e farlo accettare dalla rete anche se è impossibile riscattarlo quello script! Quindi, devi testare a fondo i tuoi script prima di investire i tuoi soldi in essi.
+
+Questo capitolo descrive quindi un metodo fondamentale per testare gli script Bitcoin, che utilizzeremo anche per esempi occasionali nel resto di questa sezione.
+
+## Installa btcdeb
+
+Bitcoin Script Debugger (`btcdeb`) di @kallewoof è uno dei metodi più affidabili che abbiamo trovato per eseguire il debug degli script Bitcoin. Richiede, tuttavia, la configurazione di C++ e alcuni altri accessori sul computer, quindi offriremo anche alcune altre opzioni verso la fine di questo capitolo.
+
+Per prima cosa devi clonare il repository GitHub `btcdeb`, che richiederà anche l'installazione di `git` se non lo hai ancora
+.
+```
+$ sudo apt-get install git
+$ git clone https://github.com/bitcoin-core/btcdeb.git
+```
+Tieni presente che quando esegui `git clone` copierà `btcdeb` nella tua directory corrente. Abbiamo scelto di farlo nella nostra directory '~standup'.
+```
+$ ls
+bitcoin-0.20.0-x86_64-linux-gnu.tar.gz btcdeb laanwj-releases.asc SHA256SUMS.asc
+```
+Successivamente è necessario installare il C++ richiesto e gli altri pacchetti.
+```
+$ sudo apt-get install autoconf libtool g++ pkg-config make
+```
+Dovresti anche installare `readline`, poiché ciò rende il debugger molto più semplice da usare supportando la cronologia utilizzando le frecce su/giù, il movimento da sinistra a destra, il completamento automatico utilizzando la scheda e altre buone interfacce utente.
+```
+$ sudo apt-get install libreadline-dev
+```
+Ora sei pronto per compilare e installare `btcdeb`:
+```
+$ cd btcdeb
+$ ./autogen.sh
+$ ./configure
+$ make
+$ sudo make install
+```
+Dopo tutto ciò, dovresti avere una copia di `btcdeb`:
+```
+$ which btcdeb
+/usr/local/bin/btcdeb
+```
+
+## Usa btcdeb
+
+`btcdeb` funziona come un debugger standard. Richiede uno script (così come un numero qualsiasi di voci dello stack) come argomento di avvio. È quindi possibile 'correre' attraverso lo script.
+
+Se invece lo avvii senza argomenti, otterrai semplicemente un interprete in cui puoi eseguire i comandi `exec [opcode]` per eseguire direttamente le azioni.
+
+### Usa btcdeb per un esempio di addizione
+
+L'esempio seguente mostra l'uso di `btcdeb` per l'esempio di addizione della sezione precedente, "1 2 OP_ADD"
+```
+$ btcdeb '[1 2 OP_ADD]'
+btcdeb 0.2.19 -- type `btcdeb -h` for start up options
+warning: ambiguous input 1 is interpreted as a numeric value; use OP_1 to force into opcode
+warning: ambiguous input 2 is interpreted as a numeric value; use OP_2 to force into opcode
+miniscript failed to parse script; miniscript support disabled
+valid script
+3 op script loaded. type `help` for usage information
+script | stack
+--------+--------
+1 |
+2 |
+OP_ADD |
+#0000 1
+```
+Mostra il nostro script iniziale, eseguito dall'alto verso il basso, e mostra anche cosa verrà eseguito successivamente nello script.
+
+Digitiamo `step` e avanza di un passo prendendo il primo elemento nello script e inserendolo nello stack:
+
+```
+btcdeb> step
+ <> PUSH stack 01
+script | stack
+--------+--------
+2 | 01
+OP_ADD |
+#0001 2
+```
+E ancora:
+```
+btcdeb> step
+ <> PUSH stack 02
+script | stack
+--------+--------
+OP_ADD | 02
+ | 01
+#0002 OP_ADD
+```
+Ora eseguiamo `OP_ADD` e c'è grande eccitazione perché il codice operativo estrae i primi due elementi dallo stack, li somma insieme, quindi inserisce la loro somma nello stack.
+```
+btcdeb> step
+ <> POP stack
+ <> POP stack
+ <> PUSH stack 03
+script | stack
+--------+--------
+ | 03
+```
+Ed è qui che finisce il nostro script, senza più nulla da eseguire e uno `03` in cima al nostro stack come risultato dello script.
+
+> **NOTA:** `btcdeb` ti consente di ripetere il comando precedente premendo invio. Lo faremo negli esempi successivi, quindi non sorprenderti se il prompt `btcdeb>` non contiene nulla come input. Si tratta semplicemente di ripetere il comando precedente (spesso `step`).
+
+### Usa btcdeb per un esempio di sottrazione
+
+La sezione precedente includeva anche un esempio di sottrazione leggermente più complesso di Scripting: `3 2 OP_ADD 4 OP_SUB`. Ecco come appare:
+
+```
+$ btcdeb '[3 2 OP_ADD 4 OP_SUB]'
+btcdeb 0.2.19 -- type `btcdeb -h` for start up options
+warning: ambiguous input 3 is interpreted as a numeric value; use OP_3 to force into opcode
+warning: ambiguous input 2 is interpreted as a numeric value; use OP_2 to force into opcode
+warning: ambiguous input 4 is interpreted as a numeric value; use OP_4 to force into opcode
+miniscript failed to parse script; miniscript support disabled
+valid script
+5 op script loaded. type `help` for usage information
+script | stack
+--------+--------
+3 |
+2 |
+OP_ADD |
+4 |
+OP_SUB |
+#0000 3
+btcdeb> step
+ <> PUSH stack 03
+script | stack
+--------+--------
+2 | 03
+OP_ADD |
+4 |
+OP_SUB |
+#0001 2
+btcdeb>
+ <> PUSH stack 02
+script | stack
+--------+--------
+OP_ADD | 02
+4 | 03
+OP_SUB |
+#0002 OP_ADD
+btcdeb>
+ <> POP stack
+ <> POP stack
+ <> PUSH stack 05
+script | stack
+--------+--------
+4 | 05
+OP_SUB |
+#0003 4
+btcdeb>
+ <> PUSH stack 04
+script | stack
+--------+--------
+OP_SUB | 04
+ | 05
+#0004 OP_SUB
+btcdeb>
+ <> POP stack
+ <> POP stack
+ <> PUSH stack 01
+script | stack
+--------+--------
+ | 01
+```
+Torneremo a `btcdeb` di tanto in tanto e rimarrà uno strumento eccellente per testare i tuoi script.
+
+### Usa la potenza di btcdeb
+
+`btcdeb` ha anche alcune funzioni più potenti, come `print` e `stack`, che mostrano lo script e lo stack in qualsiasi momento.
+
+Ad esempio, nello script sopra, una volta che sei passato al comando "OP_ADD", puoi vedere quanto segue:
+```
+btcdeb> print
+ #0000 3
+ #0001 2
+ -> #0002 OP_ADD
+ #0003 4
+ #0004 OP_SUB
+btcdeb> stack
+<01> 02 (top)
+<02> 03
+```
+L'uso di questi comandi può rendere più semplice vedere cosa sta succedendo e dove ti trovi.
+
+> :warning: **AVVISO:** `btcdeb` è molto più complesso da usare se stai cercando di verificare le firme. Vedi [Controllo della firma con btcdeb](https://github.com/bitcoin-core/btcdeb/blob/master/doc/btcdeb.md#signature-checking). Questo è vero per qualsiasi test di script, quindi non lo consigliamo se stai cercando di verificare un `OP_CHECKSIG` o un `OP_CHECKMULTISIG`.
+
+## Prova uno script online
+
+Esistono anche alcuni simulatori web che puoi utilizzare per testare gli script online. Possono essere superiori a uno strumento da riga di comando offrendo un output più grafico, ma scopriamo anche che tendono ad avere dei difetti.
+
+In passato abbiamo cercato di fornire linee guida dettagliate sull'utilizzo di siti come [Script Playground](http://www.crmarsh.com/script-playground/) o [Bitcoin Online Script Debugger](https://bitcoin-script-debugger.visvirial.com/), ma diventano obsoleti e/o scompaiono troppo rapidamente per poter stare al passo con loro.
+
+Supponiamo che questi debugger abbiano il vantaggio di mostrare le cose visivamente e di dirti esplicitamente se uno script riesce (si sblocca) o fallisce (rimane bloccato). Supponiamo che abbiano degli svantaggi con le firme, dove molti di loro restituiscono sempre "true" per i test di firma oppure hanno meccanismi molto macchinosi per incorporarli.
+
+## Prova uno script con Bitcoin
+
+Anche con un ottimo strumento come `btcdeb` o risorse transitorie come i vari tester di script online, non lavori con la realtà. Non puoi garantire che seguano le regole di consenso di Bitcoin, il che significa che non puoi garantire i loro risultati. Ad esempio, Script Playground afferma esplicitamente di ignorare un bug implicito nelle multifirme Bitcoin. Ciò significa che qualsiasi codice multisig testato con successo su Script Playground si romperà nel mondo reale.
+
+Quindi l'unico modo per testare _veramente_ gli script Bitcoin è provarli su Testnet.
+
+E come lo fai? Si dà il caso che questo sia l'argomento del [Capitolo 10](110_0_Inserire_Scripts_di_Bitcoin_in_Transazioni_P2SH.md), che esamina l'introduzione di questi script astratti nel mondo reale di Bitcoin incorporandoli nelle transazioni P2SH. (Ma anche in questo caso, probabilmente avrai bisogno di un'API per inviare la tua transazione P2SH sulla rete Bitcoin, quindi i test completi saranno ancora possibili in futuro.)
+
+_Quali_ siano gli altri metodi di test che hai utilizzato, testare uno script su Testnet dovrebbe essere il tuo test finale _prima_ di inserire lo script su Mainnet. Non fidarti che il tuo codice sia corretto; non limitarti a guardarlo. Non fidarti nemmeno dei simulatori o debugger che hai utilizzato. Farlo è un altro ottimo modo per perdere fondi su Bitcoin.
+
+## Riepilogo: Provare uno script Bitcoin
+
+Dovresti installare `btcdeb` come strumento da riga di comando per testare i tuoi script Bitcoin. Al momento della stesura di questo articolo, produce risultati accurati che possono passare attraverso l'intero processo di scripting. Puoi anche consultare alcuni siti online per una rappresentazione più visiva. Quando avrai finito, dovrai andare su testnet per assicurarti che le cose funzionino correttamente, prima di eseguire la distribuzione in modo più generale.
+
+## Qual è il prossimo argomento?
+
+Continua "Presentazione degli script Bitcoin" con il nostro primo esempio reale: [Capitolo 9.4:09_4_Programmare una P2PKH](09_4_Programmare_una_P2PKH.md).
diff --git a/it/09_4_Programmare_una_P2PKH.md b/it/09_4_Programmare_una_P2PKH.md
new file mode 100644
index 000000000..d7be02771
--- /dev/null
+++ b/it/09_4_Programmare_una_P2PKH.md
@@ -0,0 +1,388 @@
+# 9.4: Script di un P2PKH
+
+Gli indirizzi P2PKH stanno rapidamente perdendo popolarità a causa dell'avvento di SegWit, ma rimangono comunque un ottimo elemento fondamentale per comprendere Bitcoin, e soprattutto per comprendere gli script Bitcoin. (Daremo una rapida occhiata a come gli script P2WPKH nativi di Segwit funzionano in modo diverso nella sezione successiva.)
+
+## Comprendere lo script di sblocco
+
+Da tempo sosteniamo che quando i fondi vengono inviati a un indirizzo Bitcoin, sono bloccati nella chiave privata associata a quell'indirizzo. Questo viene gestito tramite "scriptPubKey" di una transazione P2PKH, progettata in modo tale da richiedere al destinatario di avere la chiave privata associata all'indirizzo Bitcoin P2PKH. Per la precisione, il destinatario deve fornire sia la chiave pubblica collegata alla chiave privata, sia una firma generata dalla chiave privata.
+
+Dai un'altra occhiata alla transazione che hai creato nel [Capitolo 9.1](09_1_Le_basi_delle_transazioni.md):
+```
+$ bitcoin-cli -named decoderawtransaction hexstring=$signedtx
+{
+ "txid": "34151dac704d94a269cd33f80be34c122152edc9bfbb9323852966bf0ce937ed",
+ "hash": "34151dac704d94a269cd33f80be34c122152edc9bfbb9323852966bf0ce937ed",
+ "version": 2,
+ "size": 191,
+ "vsize": 191,
+ "weight": 764,
+ "locktime": 0,
+ "vin": [
+ {
+ "txid": "bb4362dec15e67d366088f5493c789f22fb4a604e767dae1f6a631687e2784aa",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "304402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c9dfba68b92cbab7d1022066f273178febc7a37568e2e9f4dec980a2e9a95441abe838c7ef64c39d85849c[ALL] 0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b",
+ "hex": "47304402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c9dfba68b92cbab7d1022066f273178febc7a37568e2e9f4dec980a2e9a95441abe838c7ef64c39d85849c01210315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b"
+ },
+ "sequence": 4294967295
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.00090000,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "OP_DUP OP_HASH160 06b5c6ba5330cdf738a2ce91152bfd0e71f9ec39 OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a91406b5c6ba5330cdf738a2ce91152bfd0e71f9ec3988ac",
+ "reqSigs": 1,
+ "type": "pubkeyhash",
+ "addresses": [
+ "mg8S7F1gY3ivV9M9GrWwe6ziWvK2MFquCf"
+ ]
+ }
+ }
+ ]
+}
+```
+Puoi vedere che il suo script di sblocco `scriptSig` ha due valori. Questo è una `` (e un `[ALL]`) e una ``:
+```
+304402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c9dfba68b92cbab7d1022066f273178febc7a37568e2e9f4dec980a2e9a95441abe838c7ef64c39d85849c[ALL] 0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b
+```
+Questo è tutto, uno script di sblocco! (Per un P2PKH.)
+
+## Comprendere lo script di blocco
+
+Ricorda che ogni script di sblocco sblocca un UTXO precedente. Nell'esempio sopra, `vin` rivela che sta effettivamente sbloccando vout `0` di txid `bb4362dec15e67d366088f5493c789f22fb4a604e767dae1f6a631687e2784aa`.
+
+Puoi esaminare l'UTXO con `gettransaction`.
+```
+$ bitcoin-cli gettransaction "bb4362dec15e67d366088f5493c789f22fb4a604e767dae1f6a631687e2784aa"
+{
+ "amount": 0.00095000,
+ "confirmations": 12,
+ "blockhash": "0000000075a4c1519da5e671b15064734c42784eab723530a6ace83ca1e66d3f",
+ "blockheight": 1780789,
+ "blockindex": 132,
+ "blocktime": 1594841768,
+ "txid": "bb4362dec15e67d366088f5493c789f22fb4a604e767dae1f6a631687e2784aa",
+ "walletconflicts": [
+ ],
+ "time": 1594841108,
+ "timereceived": 1594841108,
+ "bip125-replaceable": "no",
+ "details": [
+ {
+ "address": "mmX7GUoXq2wVcbnrnFJrGKsGR14fXiGbD9",
+ "category": "receive",
+ "amount": 0.00095000,
+ "label": "",
+ "vout": 0
+ }
+ ],
+ "hex": "020000000001011efcc3bf9950ac2ea08c53b43a0f8cc21e4b5564e205f996f7cadb7d13bb79470000000017160014c4ea10874ae77d957e170bd43f2ee828a8e3bc71feffffff0218730100000000001976a91441d83eaffbf80f82dee4c152de59a38ffd0b602188ac713b10000000000017a914b780fc2e945bea71b9ee2d8d2901f00914a25fbd8702473044022025ee4fd38e6865125f7c315406c0b3a8139d482e3be333727d38868baa656d3d02204b35d9b5812cb85894541da611d5cec14c374ae7a7b8ba14bb44495747b571530121033cae26cb3fa063c95e2c55a94bd04ab9cf173104555efe448b1bfc3a68c8f873342c1b00"
+}
+```
+Ma come puoi vedere, non hai ottenuto "scriptPubKey" con "gettransaction". Devi fare un ulteriore passo per recuperarlo esaminando le informazioni grezze sulla transazione (che sono `hex`) con `decoderawtransaction`:
+```
+$ hex=$(bitcoin-cli gettransaction "bb4362dec15e67d366088f5493c789f22fb4a604e767dae1f6a631687e2784aa" | jq -r '.hex')
+$ bitcoin-cli decoderawtransaction $hex
+{
+ "txid": "bb4362dec15e67d366088f5493c789f22fb4a604e767dae1f6a631687e2784aa",
+ "hash": "6866490b16a92d68179e1cf04380fd08f16ec80bf66469af8d5e78ae624ff202",
+ "version": 2,
+ "size": 249,
+ "vsize": 168,
+ "weight": 669,
+ "locktime": 1780788,
+ "vin": [
+ {
+ "txid": "4779bb137ddbcaf796f905e264554b1ec28c0f3ab4538ca02eac5099bfc3fc1e",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "0014c4ea10874ae77d957e170bd43f2ee828a8e3bc71",
+ "hex": "160014c4ea10874ae77d957e170bd43f2ee828a8e3bc71"
+ },
+ "txinwitness": [
+ "3044022025ee4fd38e6865125f7c315406c0b3a8139d482e3be333727d38868baa656d3d02204b35d9b5812cb85894541da611d5cec14c374ae7a7b8ba14bb44495747b5715301",
+ "033cae26cb3fa063c95e2c55a94bd04ab9cf173104555efe448b1bfc3a68c8f873"
+ ],
+ "sequence": 4294967294
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.00095000,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "OP_DUP OP_HASH160 41d83eaffbf80f82dee4c152de59a38ffd0b6021 OP_EQUALVERIFY OP_CHECKSIG",
+ "hex": "76a91441d83eaffbf80f82dee4c152de59a38ffd0b602188ac",
+ "reqSigs": 1,
+ "type": "pubkeyhash",
+ "addresses": [
+ "mmX7GUoXq2wVcbnrnFJrGKsGR14fXiGbD9"
+ ]
+ }
+ },
+ {
+ "value": 0.01063793,
+ "n": 1,
+ "scriptPubKey": {
+ "asm": "OP_HASH160 b780fc2e945bea71b9ee2d8d2901f00914a25fbd OP_EQUAL",
+ "hex": "a914b780fc2e945bea71b9ee2d8d2901f00914a25fbd87",
+ "reqSigs": 1,
+ "type": "scripthash",
+ "addresses": [
+ "2N9yWARt5E3TQsX2RjsauxSZaEZVhinAS4h"
+ ]
+ }
+ }
+ ]
+}
+```
+Ora puoi guardare `vout` `0` e vedere che era bloccato con `scriptPubKey` di `OP_DUP OP_HASH160 41d83eaffbf80f82dee4c152de59a38ffd0b6021 OP_EQUALVERIFY OP_CHECKSIG`. Questa è la metodologia di blocco standard utilizzata per un vecchio indirizzo P2PKH con `` bloccato nel mezzo.
+
+Eseguirlo dimostrerà come funziona.
+
+## Esegui uno script P2PKH
+
+Quando sblocchi un P2PKH UTXO, concateni (effettivamente) gli script di sblocco e blocco. Per un indirizzo P2PKH, come nell'esempio utilizzato in questo capitolo, che produce:
+
+```
+Script: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
+```
+Detto questo, puoi esaminare come viene sbloccato un P2PKH UTXO.
+
+Innanzitutto, inserisci le costanti iniziali nello stack, quindi crea un duplicato di pubKey con `OP_DUP`:
+```
+Script: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
+Stack: [ ]
+
+Script: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
+Stack: [ ]
+
+Script: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
+Stack: [ ]
+
+Script: OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
+Running: OP_DUP
+Stack: [ ]
+```
+Perché il duplicato? Perché bisogna controllare i due elementi di sblocco: la chiave pubblica e la firma.
+
+Successivamente, `OP_HASH160` estrae `` dallo stack, ne esegue l'hashing e reinserisce il risultato nello stack.
+```
+Script: OP_EQUALVERIFY OP_CHECKSIG
+Running: OP_HASH160
+Stack: [ ]
+```
+Quindi, inserisci nello stack il valore `` che si trovava nello script di blocco:
+```
+Script: OP_EQUALVERIFY OP_CHECKSIG
+Stack: [ ]
+```
+`OP_EQUALVERIFY` è effettivamente composto da due codici operativi: `OP_EQUAL`, che estrae due elementi dallo stack e inserisce `True` o `False` in base al confronto; e `OP_VERIFY` che visualizza il risultato e contrassegna immediatamente la transazione come non valida se è `False`. (Il Capitolo 12 parla più approfonditamente dell'uso di `OP_VERIFY` come condizionale.)
+
+Supponendo che i due `es` siano uguali, otterrai il seguente risultato:
+```
+Script: OP_CHECKSIG
+Running: OP_EQUALVERIFY
+Stack: [ ]
+```
+A questo punto hai dimostrato che il `` fornito in `scriptSig` ha l'hash dell'indirizzo Bitcoin in questione, quindi sai che il redeemer conosceva la chiave pubblica. Ma devono anche dimostrare di conoscere la chiave privata, cosa che viene fatta con `OP_CHECKSIG`, che conferma che la firma dello script di sblocco corrisponde a quella chiave pubblica.
+```
+Script:
+Running: OP_CHECKSIG
+Stack: [ True ]
+```
+Lo Script ora termina e, se ha avuto successo, la transazione può spendere nuovamente l'UTXO in questione.
+
+### Usa btcdeb per un esempio P2PKH
+
+Testare le effettive transazioni Bitcoin con "btcdeb" è un po' più complicato, perché è necessario conoscere la chiave pubblica e una firma per far funzionare tutto, e generare quest'ultima è piuttosto difficile. Tuttavia, un modo per testare le cose è lasciare che Bitcoin faccia il lavoro per te nel generare una transazione che _sbloccherebbe_ un UTXO. Questo è quello che hai fatto sopra: la generazione della transazione per spendere l'UTXO ha fatto sì che `bitcoin-cli` calcolasse `` e ``. Quindi esamini le informazioni grezze sulla transazione dell'UTXO per apprendere lo script di blocco incluso ``
+
+Puoi mettere insieme lo script di blocco, la firma e la pubkey utilizzando `btcdeb`, mostrando quanto sia semplice uno script P2PKH.
+```
+$ btcdeb '[304402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c9dfba68b92cbab7d1022066f273178febc7a37568e2e9f4dec980a2e9a95441abe838c7ef64c39d85849c 0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b OP_DUP OP_HASH160 41d83eaffbf80f82dee4c152de59a38ffd0b6021 OP_EQUALVERIFY OP_CHECKSIG]'
+btcdeb 0.2.19 -- type `btcdeb -h` for start up options
+unknown key ID 41d83eaffbf80f82dee4c152de59a38ffd0b6021: returning fake key
+valid script
+7 op script loaded. type `help` for usage information
+script | stack
+-------------------------------------------------------------------+-------------------------------------------------------------------
+304402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c9dfba68b... |
+0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b |
+OP_DUP |
+OP_HASH160 |
+41d83eaffbf80f82dee4c152de59a38ffd0b6021 |
+OP_EQUALVERIFY |
+OP_CHECKSIG |
+ |
+ |
+#0000 304402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c9dfba68b92cbab7d1022066f273178febc7a37568e2e9f4dec980a2e9a95441abe838c7ef64c39d85849c
+```
+Spingi la `` e la `` nello stack:
+```
+btcdeb> step
+ <> PUSH stack 304402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c9dfba68b92cbab7d1022066f273178febc7a37568e2e9f4dec980a2e9a95441abe838c7ef64c39d85849c
+script | stack
+-------------------------------------------------------------------+-------------------------------------------------------------------
+0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b | 304402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c9dfba68b...
+OP_DUP |
+OP_HASH160 |
+41d83eaffbf80f82dee4c152de59a38ffd0b6021 |
+OP_EQUALVERIFY |
+OP_CHECKSIG |
+ |
+ |
+ |
+ |
+ |
+#0001 0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b
+btcdeb> step
+ <> PUSH stack 0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b
+script | stack
+-------------------------------------------------------------------+-------------------------------------------------------------------
+OP_DUP | 0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b
+OP_HASH160 | 304402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c9dfba68b...
+41d83eaffbf80f82dee4c152de59a38ffd0b6021 |
+OP_EQUALVERIFY |
+OP_CHECKSIG |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+```
+Il tuo `OP_DUP` e `OP_HASH` la ``:
+```
+#0002 OP_DUP
+btcdeb> step
+ <> PUSH stack 0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b
+script | stack
+-------------------------------------------------------------------+-------------------------------------------------------------------
+OP_HASH160 | 0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b
+41d83eaffbf80f82dee4c152de59a38ffd0b6021 | 0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b
+OP_EQUALVERIFY | 304402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c9dfba68b...
+OP_CHECKSIG |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+#0003 OP_HASH160
+btcdeb> step
+ <> POP stack
+ <> PUSH stack 41d83eaffbf80f82dee4c152de59a38ffd0b6021
+script | stack
+-------------------------------------------------------------------+-------------------------------------------------------------------
+41d83eaffbf80f82dee4c152de59a38ffd0b6021 | 41d83eaffbf80f82dee4c152de59a38ffd0b6021
+OP_EQUALVERIFY | 0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b
+OP_CHECKSIG | 304402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c9dfba68b...
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+```
+Spingi la `` dallo script di blocco nella pila e verifichi:
+```
+#0004 41d83eaffbf80f82dee4c152de59a38ffd0b6021
+btcdeb> step
+ <> PUSH stack 41d83eaffbf80f82dee4c152de59a38ffd0b6021
+script | stack
+-------------------------------------------------------------------+-------------------------------------------------------------------
+OP_EQUALVERIFY | 41d83eaffbf80f82dee4c152de59a38ffd0b6021
+OP_CHECKSIG | 41d83eaffbf80f82dee4c152de59a38ffd0b6021
+ | 0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b
+ | 304402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c9dfba68b...
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+#0005 OP_EQUALVERIFY
+btcdeb> step
+ <> POP stack
+ <> POP stack
+ <> PUSH stack 01
+ <> POP stack
+script | stack
+-------------------------------------------------------------------+-------------------------------------------------------------------
+OP_CHECKSIG | 0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b
+ | 304402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c9dfba68b...
+ |
+ | and_v(
+ | sig(304402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c...
+ | and_v(
+ | pk(0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3...
+ | c:pk_h(030500000000000000000000000000000000000000000000...
+ | )
+ |
+ | )
+ |
+
+```
+A questo punto, serve soltanto il `OP_CHECKSIG`:
+```
+#0006 OP_CHECKSIG
+btcdeb> step
+error: Signature is found in scriptCode
+```
+(Sfortunatamente questo controllo potrebbe funzionare o meno in qualsiasi momento a causa dei capricci del Bitcoin Core e del codice `btcdeb`.)
+
+Come si vede, un P2PKH è abbastanza semplice: la sua protezione avviene attraverso la forza della sua crittografia.
+
+### Come cercare manualmente la PubKey e la firma
+
+E se volessi generare le informazioni `` e `` necessarie per sbloccare tu stesso un UTXO, senza appoggiarti a "bitcoin-cli" per creare una transazione?
+
+Si scopre che è abbastanza semplice ottenere un ``. Devi solo usare `getaddressinfo` per esaminare l'indirizzo in cui si trova attualmente l'UTXO:
+```
+$ bitcoin-cli getaddressinfo mmX7GUoXq2wVcbnrnFJrGKsGR14fXiGbD9
+{
+ "address": "mmX7GUoXq2wVcbnrnFJrGKsGR14fXiGbD9",
+ "scriptPubKey": "76a91441d83eaffbf80f82dee4c152de59a38ffd0b602188ac",
+ "ismine": true,
+ "solvable": true,
+ "desc": "pkh([f004311c/0'/0'/2']0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b)#t3g5mjk9",
+ "iswatchonly": false,
+ "isscript": false,
+ "iswitness": false,
+ "pubkey": "0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b",
+ "iscompressed": true,
+ "ischange": false,
+ "timestamp": 1594835792,
+ "hdkeypath": "m/0'/0'/2'",
+ "hdseedid": "f058372260f71fea37f7ecab9e4c5dc25dc11eac",
+ "hdmasterfingerprint": "f004311c",
+ "labels": [
+ ""
+ ]
+}
+```
+Per capire quella firma, tuttavia, è necessario comprendere veramente i dettagli di come vengono create le transazioni Bitcoin. Quindi lo lasciamo come uno studio avanzato per il lettore: creare una transazione `bitcoin-cli` per `risolvere` un UTXO è la soluzione migliore per il momento.
+
+## Riepilogo: Programmare Pay to Public Key Hash
+
+L'invio a un indirizzo P2PKH era relativamente semplice quando utilizzavi solo `bitcoin-cli`. L'esame dello script Bitcoin sottostante mette a nudo le funzioni crittografiche implicite nel finanziamento di quella transazione: come l'UTXO è stato sbloccato con una firma e una chiave pubblica.
+
+## Qual è il prossimo argomento?
+
+Continua l' "Introduzione agli script Bitcoin" con [Capitolo 9.5: Scripting a P2WPKH](09_5_Scripting_a_P2WPKH.md).
diff --git a/it/09_5_Programmare_una_P2WPKH.md b/it/09_5_Programmare_una_P2WPKH.md
new file mode 100644
index 000000000..36797a9a1
--- /dev/null
+++ b/it/09_5_Programmare_una_P2WPKH.md
@@ -0,0 +1,120 @@
+# 9.5: Script di un P2WPKH
+
+> :information_source: **NOTA:** Questa sezione è stata aggiunta di recente al corso ed è una bozza iniziale che potrebbe essere ancora in attesa di revisione. Lettor avvisato.
+
+I P2PKH vanno bene per spiegare il modo fondamentale in cui funzionano gli script Bitcoin, ma che dire degli script nativi SegWit P2WPKH, che stanno diventando sempre più la maggior parte delle transazioni Bitcoin? A quanto pare, gli indirizzi P2WPKH non utilizzano script Bitcoin come fanno gli indirizzi Bitcoin tradizionali, quindi questa sezione è in realtà una digressione dallo scripting di questo capitolo, ma importante, perché delinea l'_altro_ modo principale in cui i Bitcoin possono essere transati.
+
+## Visualizzare uno script P2WPKH
+
+È abbastanza facile vedere come appare uno script P2WPKH. La seguente transazione grezza è stata creata spendendo un UTXO P2WPKH e quindi inviando il denaro a un indirizzo di resto P2WPKH, proprio come abbiamo fatto con un indirizzo legacy nel [Capitolo 9.1](09_1_Le_basi_delle_transazioni.md).
+```
+$ bitcoin-cli -named decoderawtransaction hexstring=$signedtx
+{
+ "txid": "bdf8f12768a9870d41ac280f8bb4f8ecd9d2fa66fffc75606811f5751c17cb3a",
+ "hash": "ec09c84cae48694bec7fd3461b3c5b38a76829c56e9d876037bf2484d443174b",
+ "version": 2,
+ "size": 191,
+ "vsize": 110,
+ "weight": 437,
+ "locktime": 0,
+ "vin": [
+ {
+ "txid": "3f5417bc7a3a4144d715f3f006d35ea2b405f06091cbb9ce492e04ccefe02b18",
+ "vout": 0,
+ "scriptSig": {
+ "asm": "",
+ "hex": ""
+ },
+ "txinwitness": [
+ "3044022064f633ccfc4e937ef9e3edcaa9835ea9a98d31fbea1622c1d8a38d4e7f8f6cb602204bffef45a094de1306f99da055bd5a603a15c277a59a48f40a615aa4f7e5038001",
+ "03839e6035b33e37597908c83a2f992ec835b093d65790f43218cb49ffe5538903"
+ ],
+ "sequence": 4294967295
+ }
+ ],
+ "vout": [
+ {
+ "value": 0.00090000,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "0 92a0db923b3a13eb576a40c4b35515aa30206cba",
+ "hex": "001492a0db923b3a13eb576a40c4b35515aa30206cba",
+ "reqSigs": 1,
+ "type": "witness_v0_keyhash",
+ "addresses": [
+ "tb1qj2sdhy3m8gf7k4m2grztx4g44gczqm96y6sszv"
+ ]
+ }
+ }
+ ]
+}
+```
+There are probably two surprising things here: (1) There's no `scriptSig` to unlock the previous transaction; and (2) the `scriptPubKey` to lock the new transaction is just `0 92a0db923b3a13eb576a40c4b35515aa30206cb`.
+
+Questo è molto semplice perché P2WPKH funziona diversamente!
+
+## Comprendere una transazione P2WPKH
+
+Una transazione P2WPKH contiene tutte le stesse informazioni di una transazione P2PKH classica, ma le colloca in posti strani, non all'interno di un tradizionale Bitcoin Script - e, questo è lo scopo esatto delle transazioni SegWit, per estrarre le informazioni `testimone`, cioè chiavi pubbliche e firme, fuori dalla transazione.
+
+Ma, se guardi attentamente, vedrai che il vuoto `scriptSig` è stato sostituito con due voci in una nuova sezione `txinwitness`. Se ne esamini le dimensioni e la formattazione, dovrebbero sembrarti familiari: sono una firma e una chiave pubblica. Allo stesso modo, se guardi "scriptPubKey", vedrai che è composto da uno "0" (in realtà: "OP_0", è il numero di versione di SegWit) e un altro numero lungo, che è l'hash della chiave pubblica.
+
+Ecco un confronto tra i nostri due esempi:
+
+| Type | PubKeyHash | PubKey | Signature |
+|----------------|----------|-------------|---------|
+| SegWit | 92a0db923b3a13eb576a40c4b35515aa30206cba | 03839e6035b33e37597908c83a2f992ec835b093d65790f43218cb49ffe5538903 | 3044022064f633ccfc4e937ef9e3edcaa9835ea9a98d31fbea1622c1d8a38d4e7f8f6cb602204bffef45a094de1306f99da055bd5a603a15c277a59a48f40a615aa4f7e5038001 |
+| non-SegWit | 06b5c6ba5330cdf738a2ce91152bfd0e71f9ec39 | 0315a0aeb37634a71ede72d903acae4c6efa77f3423dcbcd6de3e13d9fd989438b | 04402201cc39005b076cb06534cd084fcc522e7bf937c4c9654c1c9dfba68b92cbab7d1022066f273178febc7a37568e2e9f4dec980a2e9a95441abe838c7ef64c39d85849c |
+
+Allora come funziona? Dipende dal vecchio codice che lo interpreta come una transazione valida e dal nuovo codice che sa controllare le nuove informazioni "testimone".
+
+### Leggere uno script SegWit su un nodo non aggiornato
+
+Se un nodo non è stato aggiornato per supportare SegWit, esegue il solito trucco di concatenare `scriptSig` e `scriptPubKey`. Questo produce: `0 92a0db923b3a13eb576a40c4b35515aa30206cba` (perché c'è solo uno `scriptPubKey`). L'esecuzione produrrà una pila con tutto ciò che contiene in ordine inverso:
+```
+$ btcdeb '[0 92a0db923b3a13eb576a40c4b35515aa30206cba]'
+btcdeb 0.2.19 -- type `btcdeb -h` for start up options
+miniscript failed to parse script; miniscript support disabled
+valid script
+2 op script loaded. type `help` for usage information
+script | stack
+-----------------------------------------+--------
+0 |
+92a0db923b3a13eb576a40c4b35515aa30206cba |
+#0000 0
+btcdeb> step
+ <> PUSH stack
+script | stack
+-----------------------------------------+--------
+92a0db923b3a13eb576a40c4b35515aa30206cba | 0x
+#0001 92a0db923b3a13eb576a40c4b35515aa30206cba
+btcdeb> step
+ <> PUSH stack 92a0db923b3a13eb576a40c4b35515aa30206cba
+script | stack
+-----------------------------------------+-----------------------------------------
+ | 92a0db923b3a13eb576a40c4b35515aa30206cba
+ | 0x
+```
+Gli script Bitcoin sono considerati riusciti se c'è qualcosa nello stack ed è diverso da zero, quindi gli script SegWit riescono automaticamente sui vecchi nodi purché `scriptPubKey` venga creato correttamente con un hash pub-key diverso da zero. Questa è chiamata transazione "chiunque può spendere", perché i vecchi nodi le hanno verificate come corrette senza bisogno di firme.
+
+> :book: ***Perché i vecchi nodi non possono rubare gli UTXO SegWit?*** SegWit è stato abilitato sulla rete Bitcoin quando il 95% dei minatori ha segnalato di essere pronto per iniziare a utilizzarlo. Ciò significa che solo il 5% dei nodi a quel punto avrebbe potuto registrare come valide le transazioni SegWit “chiunque può spendere” senza passare attraverso il lavoro adeguato di controllo del `txinwitness`. Se incorporassero erroneamente un UTXO non valido che chiunque può spendere in un blocco, il restante 95% dei nodi si rifiuterebbe di convalidare quel blocco, e quindi rimarrebbe rapidamente orfano anziché essere aggiunto alla blockchain "principale". (Certamente, il 51% dei nodi potrebbe scegliere di smettere di interpretare correttamente le transazioni SegWit, ma il 51% dei nodi può fare qualsiasi cosa su una rete di consenso come una blockchain.)
+
+Poiché i vecchi nodi vedono sempre gli script SegWit come corretti, li verificheranno sempre, anche senza comprenderne il contenuto.
+
+### Leggere uno script SegWit su un nodo aggiornato
+
+Un nodo che capisce come funziona SegWit fa esattamente le stesse cose che farebbe con un vecchio script P2PKH, ma non usa uno script di per sé: sa solo che deve eseguire l'hashing della chiave pubblica nel `txinwitness`, controlla quello contro la chiave con hash dopo il numero di versione in "scriptPubKey" e quindi eseguire "OP_CHECKSIG" sulla firma e sulla chiave pubblica in "txinwitness".
+
+Quindi, è un altro modo di fare la stessa cosa, ma senza avere gli script integrati nelle transazioni. (Il processo è invece integrato nel software del nodo.)
+
+## Riepilogo: Programmare un transazione Pay to Witness Public Key Hash
+
+In larga misura _non_ scrivi un P2WPKH. Invece, Bitcoin Core crea la transazione in un modo diverso, posizionando le informazioni del testimone in un posto diverso rispetto al tradizionale `scriptSig`. Ciò significa che i P2WPKH sono una digressione dagli script Bitcoin di questa parte del libro, perché sono un'espansione di Bitcoin che si allontana dagli script tradizionali.
+
+Tuttavia, SegWit è stato anche un uso intelligente degli script Bitcoin. Sapendo che ci sarebbero stati nodi che non si sarebbero aggiornati e che avrebbero dovuto rimanere compatibili con le versioni precedenti, gli sviluppatori hanno creato il formato P2WPKH in modo da generare uno script sempre convalidato sui vecchi nodi (pur mantenendo lo script che fornisce informazioni ai nuovi nodi nel formato di un numero di versione e una chiave pubblica hashata).
+
+Quando programmi dalla riga di comando, fondamentalmente non devi preoccuparti di questo, a parte sapere che non troverai script tradizionali nelle transazioni SegWit grezze (che, ancora una volta, era il punto).
+
+## Che segue ?
+
+Continua "Programmando Bitcoin" col [Capitolo 10: Inserire Scripts di Bitcoin in Transazioni P2SH](10_0_Inserire_Scripts_di_Bitcoin_in_Transazioni_P2SH.md).
diff --git a/it/10_0_Inserire_Scripts_di_Bitcoin_in_Transazioni_P2SH.md b/it/10_0_Inserire_Scripts_di_Bitcoin_in_Transazioni_P2SH.md
new file mode 100644
index 000000000..8a93d3fe7
--- /dev/null
+++ b/it/10_0_Inserire_Scripts_di_Bitcoin_in_Transazioni_P2SH.md
@@ -0,0 +1,26 @@
+# Capitolo 10: Inserire script Bitcoin nelle transazioni P2SH
+
+Bitcoin Script scende su diversi livelli di astrazione, consentendoti di controllare minuziosamente le condizioni di riscatto dei fondi Bitcoin. Ma come puoi effettivamente incorporare questi script Bitcoin nelle transazioni che hai costruito fino ad oggi? La risposta è un nuovo tipo di transazione Bitcoin, la P2SH.
+
+## Obiettivi di questo capitolo
+
+Dopo aver letto questo capitolo, uno sviluppatore sarà in grado di:
+
+ * Progettare una transazione P2SH
+ * Applicare uno script Bitcoin P2SH
+
+Gli obiettivi di supporto includono la capacità di:
+
+ * Comprendere lo script P2SH
+ * Comprendere lo script Multisig
+ * Comprendere le diverse variazioni Segwit degli script
+ * Comprendere come spendere i fondi inviati a un P2SH
+
+## Sommario
+
+* [Capitolo 10.1: Comprendere la Base di P2SH](10_1_Comprendere_la_Base_di_P2SH.md)
+* [Capitolo 10.2: Construire la Struttura di P2SH](10_2_Construire_la_Struttura_di_P2SH.md)
+* [Capitolo 10.3: Eseguire un Script Bitcoin con P2SH](10_3_Eseguire_un_Script_Bitcoin_con_P2SH.md)
+* [Capitolo 10.4: Programmare una Multifirma](10_4_Programmare_una_Multifirma.md)
+* [Capitolo 10.5: Programmare uno Script Segwit](10_5_Programmare_uno_Script_Segwit.md)
+* [Capitolo 10.6: Spendere una Transazione P2SH](10_6_Spendere_una_Transazione_P2SH.md)
diff --git a/it/10_1_Comprendere_la_Base_di_P2SH.md b/it/10_1_Comprendere_la_Base_di_P2SH.md
new file mode 100644
index 000000000..d1290b2a6
--- /dev/null
+++ b/it/10_1_Comprendere_la_Base_di_P2SH.md
@@ -0,0 +1,99 @@
+# 10.1: Comprendere le Basi di P2SH
+
+Sai che gli Script di Bitcoin possono essere utilizzati per controllare il riscatto degli UTXO. Il prossimo passo è creare i tuoi Script... ma ciò richiede una tecnica molto specifica.
+
+## Conoscere gli Standard di Bitcoin
+
+Ecco la questione per l'uso degli Script di Bitcoin: per motivi di sicurezza, la maggior parte dei nodi Bitcoin accetterà solo sei tipi di transazioni Bitcoin "standard".
+
+* __Pay to Public Key (P2PK)__ — Una transazione più vecchia, deprecata (` OP_CHECKSIG`) che è stata sostituita dalla maggiore sicurezza di P2PKH.
+* __Pay to Public Key Hash (P2PKH)__ — Una transazione standard (`OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG`) che paga l'hash di una chiave pubblica.
+* __Pay to Witness Public Key hash (P2WPKH)__ — Il più recente tipo di transazione a chiave pubblica. È semplicemente (`OP_0 `) perché dipende dal consenso dei minatori per funzionare, come descritto nel [Capitolo 9.5](09_5_Programmare_una_P2WPKH.md).
+* __Multisig__ — Una transazione per un gruppo di chiavi, come spiegato più dettagliatamente nel [Capitolo 10.4](10_4_Programmare_una_Multifirma.md).
+* __Null Data__ — Una transazione non spendibile (`OP_RETURN Data`).
+* __Pay to Script Hash (P2SH)__ — Una transazione che paga a uno script specifico, come spiegato più dettagliatamente qui.
+
+Quindi come si scrive uno Script Bitcoin più complesso? La risposta è in quell'ultimo tipo di transazione standard, il P2SH. Puoi inserire qualsiasi tipo di script lungo e complesso in una transazione P2SH, e finché segui le regole standard per incorporare il tuo script e per riscattare i fondi, otterrai tutti i benefici degli Script Bitcoin.
+
+> :warning: **AVVISO SULLA VERSIONE:** Gli script P2SH arbitrari sono diventati standard solo a partire da Bitcoin Core 0.10.0. Prima di allora, erano consentiti solo i P2SH Multisig.
+
+## Comprendere lo Script P2SH
+
+Hai già visto una transazione P2SH quando hai creato un multisig nel [Capitolo 6.1: Inviare una Transazione a un Indirizzo Multifirma](06_1_Inviare_una_Transazione_a_un_Indirizzo_Multifirma.md). Sebbene il multisig sia uno dei tipi di transazione standard, `bitcoin-cli` semplifica l'uso dei suoi multisig incorporandoli in transazioni P2SH, come descritto più dettagliatamente nel [Capitolo 10.4: Programmare una Multifirma](10_4_Programmare_una_Multifirma.md).
+
+Quindi, guardiamo ancora una volta lo `scriptPubKey` di quel multisig P2SH:
+```
+ "scriptPubKey": {
+ "asm": "OP_HASH160 a5d106eb8ee51b23cf60d8bd98bc285695f233f3 OP_EQUAL",
+ "hex": "a914a5d106eb8ee51b23cf60d8bd98bc285695f233f387",
+ "reqSigs": 1,
+ "type": "scripthash",
+ "addresses": [
+ "2N8MytPW2ih27LctLjn6LfLFZZb1PFSsqBr"
+ ]
+ }
+```
+ Lo script di blocco è piuttosto semplice: `OP_HASH160 a5d106eb8ee51b23cf60d8bd98bc285695f233f3 OP_EQUAL`. Come al solito, c'è un grosso pezzo di dati nel mezzo. Questo è un hash di un altro script di blocco nascosto (`redeemScript`) che sarà rivelato solo quando i fondi saranno riscattati. In altre parole, lo script di blocco standard per un indirizzo P2SH è: `OP_HASH160 OP_EQUAL`.
+
+> :book: ***Cos'è un redeemScript?*** Ogni transazione P2SH porta con sé l'impronta di uno script di blocco nascosto sotto forma di un hash di 20 byte. Quando una transazione P2SH viene riscattata, il `redeemScript` completo (non hashato) è incluso come parte del `scriptSig`. Bitcoin verificherà che il `redeemScript` corrisponda all'hash; poi eseguirà effettivamente il `redeemScript` per vedere se i fondi possono essere spesi (o no).
+
+Uno degli elementi interessanti delle transazioni P2SH è che né il mittente né la Blockchain sanno effettivamente cosa sia il `redeemScript`! Un mittente invia semplicemente a un indirizzo P2SH standardizzato contrassegnato con un prefisso "2" e non si preoccupa di come il destinatario recupererà i fondi alla fine.
+
+> :link: **TESTNET vs MAINNET:** su testnet, il prefisso per gli indirizzi P2SH è `2`, mentre su mainnet è `3`.
+
+## Comprendere Come Costruire uno Script P2SH
+
+Poiché lo script di blocco visibile per una transazione P2SH è così semplice, creare una transazione di questo tipo è piuttosto semplice anche. In teoria. Tutto quello che devi fare è creare una transazione il cui script di blocco includa un hash di 20 byte del `redeemScript`. Questo hashing viene effettuato con il `OP_HASH160` standard di Bitcoin.
+
+> :book: ***Cos'è OP_HASH160?*** L'operazione hash standard per Bitcoin esegue un hash SHA-256, poi un hash RIPEMD-160.
+
+In generale, sono necessari quattro passaggi:
+
+1. Crea uno script di blocco arbitrario con Bitcoin Script.
+2. Crea una versione serializzata di quello script di blocco.
+3. Esegui un hash SHA-256 su quei byte serializzati.
+4. Esegui un hash RIPEMD-160 sui risultati di quell'hash SHA-256.
+
+Ciascuno di questi passaggi ovviamente richiede del lavoro a sé, e alcuni di essi possono essere piuttosto intricati. La buona notizia è che non devi davvero preoccuparti di essi, perché sono sufficientemente complessi da far sì che di solito un'API si occupi di tutto per te.
+
+Quindi, per ora, ti forniremo solo una panoramica, in modo che tu possa comprendere la metodologia generale. In [Capitolo 10.2: Construire la Struttura di P2SH](10_2_Construire_la_Struttura_di_P2SH.md) forniremo uno sguardo più approfondito alla creazione di script, nel caso tu voglia mai capire i dettagli di questo processo.
+
+## Comprendere Come Inviare una Transazione Script P2SH
+
+Quindi, come invii effettivamente la tua transazione P2SH? Di nuovo, la teoria è molto semplice:
+
+1. Incorpora il tuo hash in uno script `OP_HASH160 OP_EQUAL`.
+2. Traduci questo in codice esadecimale.
+3. Usa quel codice esadecimale come tuo `scriptPubKey`.
+4. Crea il resto della transazione.
+
+Purtroppo, questo è un altro caso in cui dovrai fare affidamento sulle API, in gran parte perché `bitcoin-cli` non fornisce alcun supporto per la creazione di transazioni P2SH. (Può riscattarle senza problemi.)
+
+## Comprendere Come Sbloccare una Transazione Script P2SH
+
+Il trucco per riscattare una transazione P2SH è che il destinatario deve aver salvato lo script di blocco serializzato segreto che è stato hashato per creare l'indirizzo P2SH. Questo è chiamato `redeemScript` perché è ciò che il destinatario deve avere per riscattare i suoi fondi.
+
+Uno `scriptSig` di sblocco per una transazione P2SH è formato come: `... dati ... `. I `dati` devono essere _solamente_ dati che vengono spinti nello stack, non operatori. ([BIP 16](https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki) li chiama firme, ma non è un requisito reale.)
+
+> :warning: **AVVERTENZA:** Sebbene le firme non siano un requisito, uno script P2SH in realtà non è molto sicuro se non richiede almeno una firma nei suoi input. I motivi di ciò sono descritti in [§13.1: Scrivere Script Enigmi](13_1_Writing_Puzzle_Scripts.md).
+
+Quando un UTXO viene riscattato, viene eseguito in due round di verifica:
+
+1. Innanzitutto, il `redeemScript` nel `scriptSig` viene hashato e confrontato con lo script hashato nel `scriptPubKey`.
+2. Se corrispondono, inizia un secondo round di verifica.
+3. In secondo luogo, il `redeemScript` viene eseguito utilizzando i dati precedenti che sono stati spinti nello stack.
+4. Se anche quel secondo round di verifica ha successo, l'UTXO viene sbloccato.
+
+Mentre non puoi facilmente creare una transazione P2SH senza un'API, dovresti essere in grado di riscattare facilmente una transazione P2SH con `bitcoin-cli`. In effetti, lo hai già fatto in [Capiotolo 6.2:Spendere una Transazione con un Indirizzo Multifirma](06_2_Spendere_una_Transazione_con_un_Indirizzo_Multifirma.md). Il processo esatto è descritto nel [Capitolo 10.6: Spendere una Transazione P2SH](10_6_Spendere_una_Transazione_P2SH.md), dopo che avremo finito con tutte le complessità della creazione di transazioni P2SH.
+
+> :warning: **AVVISO:** Puoi creare una transazione perfettamente valida con un redeemScript hashato correttamente, ma se il redeemScript non viene eseguito, o non viene eseguito correttamente, i tuoi fondi sono persi per sempre. Ecco perché è così importante testare i tuoi Script, come discusso nel [Capitlo 9.3: Provare uno Script Bitcoin](09_3_Provare_uno_Script_Bitcoin.md).
+
+## Riepilogo: Comprendere le Basi di P2SH
+
+Gli Script Bitcoin arbitrari non sono standard in Bitcoin. Tuttavia, puoi incorporarli in transazioni standard utilizzando il tipo di indirizzo P2SH. Basta hashare il tuo script come parte dello script di blocco, poi rivelarlo ed eseguirlo come parte dello script di sblocco. Finché puoi anche soddisfare il `redeemScript`, l'UTXO può essere speso.
+
+> :fire: ***Qual è il potere di P2SH?*** Conosci già il potere dello Script Bitcoin, che ti consente di creare contratti intelligenti più complessi di ogni tipo. P2SH è ciò che sblocca effettivamente quel potere permettendoti di includere Script Bitcoin arbitrari nelle transazioni Bitcoin standard.
+
+## Cosa Succede Dopo?
+
+Continua a "Incorporare gli Script Bitcoin" col [Capitolo 10.2: Construire la Struttura di P2SH](10_2_Construire_la_Struttura_di_P2SH.md).
diff --git a/it/10_2_Construire_la_Struttura_di_P2SH.md b/it/10_2_Construire_la_Struttura_di_P2SH.md
new file mode 100644
index 000000000..856d35dbb
--- /dev/null
+++ b/it/10_2_Construire_la_Struttura_di_P2SH.md
@@ -0,0 +1,194 @@
+# 10.2: Costruire la Struttura di P2SH
+
+Nella sezione precedente abbiamo presentato la teoria su come creare transazioni P2SH per contenere Script Bitcoin. La pratica effettiva è _molto più difficile_, ma per completezza, la esamineremo qui. Probabilmente non è qualcosa che faresti mai senza un'API, quindi se diventa troppo intimidatorio, sappi che torneremo a Script di alto livello tra un momento.
+
+## Creare uno Script di Blocco
+
+Qualsiasi transazione P2SH inizia con uno script di blocco. Questo è l'argomento dei capitoli 9 e 11-12. Puoi usare uno qualsiasi dei metodi di Bitcoin Script descritti in quei capitoli per creare qualsiasi tipo di script di blocco, purché il `redeemScript` serializzato risultante sia di 520 byte o meno.
+
+> :book: ***Perché gli script P2SH sono limitati a 520 byte?*** Come per molte cose in Bitcoin, la risposta è la retrocompatibilità: la nuova funzionalità deve essere costantemente costruita entro i vecchi vincoli del sistema. In questo caso, 520 byte è il massimo che può essere spinto nello stack in una volta. Poiché l'intero redeemScript viene spinto nello stack come parte del processo di riscatto, raggiunge quel limite.
+
+## Serializzare uno Script di Blocco nel Modo Difficile
+
+Dopo aver creato uno script di blocco, devi serializzarlo prima che possa essere inserito in Bitcoin. Questo è un processo in due parti. Prima devi trasformarlo in codice esadecimale, poi devi trasformare quel codice esadecimale in binario.
+
+### Creare il Codice Esadecimale
+
+Creare il codice esadecimale necessario per serializzare uno script è sia una semplice traduzione sia qualcosa di abbastanza complesso da andare oltre qualsiasi script shell che probabilmente scriverai. Questo passaggio è uno dei motivi principali per cui hai bisogno di un'API per creare transazioni P2SH.
+
+Crei il codice esadecimale passando attraverso il tuo script di blocco e trasformando ciascun elemento in un comando esadecimale di un byte, eventualmente seguito da dati aggiuntivi, secondo la guida alla [pagina del Bitcoin Wiki Script](https://en.bitcoin.it/wiki/Script):
+
+* Gli operatori sono tradotti nel byte corrispondente per quell'opcode
+* Le costanti 1-16 sono tradotte negli opcode 0x51 a 0x61 (OP_1 a OP_16)
+* La costante -1 è tradotta nell'opcode 0x4f (OP_1NEGATE)
+* Altre costanti sono precedute dagli opcode 0x01 a 0x4e (OP_PUSHDATA, con il numero che specifica quanti byte spingere)
+ * Gli interi sono tradotti in esadecimale usando la notazione a segno e magnitudine a little-endian
+
+### Tradurre gli Interi
+
+Gli interi sono la parte più problematica della traduzione di uno script di blocco.
+
+Per prima cosa, dovresti verificare che il tuo numero rientri tra -2147483647 e 2147483647, l'intervallo degli interi a quattro byte quando il byte più significativo è usato per la firma.
+
+In secondo luogo, devi tradurre il valore decimale in esadecimale e riempirlo fino a ottenere un numero pari di cifre. Questo può essere fatto con il comando `printf`:
+
+```
+$ integer=1546288031
+$ hex=$(printf '%08x\n' $integer | sed 's/^\(00\)*//')
+$ echo $hex
+5c2a7b9f
+```
+In terzo luogo, devi aggiungere un byte aggiuntivo di `00` se la cifra superiore è "8" o maggiore, in modo che il numero non sia interpretato come negativo.
+
+```
+$ hexfirst=$(echo $hex | cut -c1)
+$ [[ 0x$hexfirst -gt 0x7 ]] && hex="00"$hex
+```
+In quarto luogo, devi tradurre l'esadecimale da big-endian (byte meno significativo per ultimo) a little-endian (byte meno significativo per primo). Puoi fare questo con il comando `tac`:
+
+```
+$ lehex=$(echo $hex | tac -rs .. | echo "$(tr -d '\n')")
+$ echo $lehex
+9f7b2a5c
+```
+Inoltre, devi sempre conoscere la dimensione di qualsiasi dato che metti nello stack, in modo da poterlo precedere con l'opcode corretto. Puoi semplicemente ricordare che ogni due caratteri esadecimali è un byte. Oppure, puoi usare `echo -n` pipato a `wc -c`, e dividere per due:
+
+```
+$ echo -n $lehex | wc -c | awk '{print $1/2}'
+4
+```
+Con tutta questa trafila, sapresti che potresti tradurre l'intero 1546288031 in un opcode `04` (per spingere quattro byte nello stack) seguito da `9f7b2a5c` (la rappresentazione esadecimale a little-endian di 1546288031).
+
+Se invece avessi un numero negativo, dovresti (1) fare i tuoi calcoli sul valore assoluto del numero, poi (2) fare un or bit a 0x80 sul tuo risultato finale a little-endian. Ad esempio, `9f7b2a5c`, che è 1546288031, diventerebbe `9f7b2adc`, che è -1546288031:
+
+```
+$ neglehex=$(printf '%x\n' $((0x$lehex | 0x80)))
+$ echo $neglehex
+9f7b2adc
+```
+### Trasformare l'Esadecimale in Binario
+
+Per completare la tua serializzazione, devi tradurre il codice esadecimale in binario. Da riga di comando, questo richiede solo una semplice invocazione di `xxd -r -p`. Tuttavia, probabilmente vorrai farlo come parte di una singola pipe che hasherà anche lo script...
+
+## Eseguire lo Script di Conversione degli Interi
+
+Uno script completo per cambiare un intero tra -2147483647 e 2147483647 in una rappresentazione a segno e magnitudine a little-endian in esadecimale può essere trovato nella [directory del codice sorgente](src/10_2_integer2lehex.sh). Puoi scaricarlo come `integer2lehex.sh`.
+
+> :warning: **AVVERTENZA:** Questo script non è stato controllato in modo robusto. Se hai intenzione di usarlo per creare veri script di blocco dovresti assicurarti di ricontrollare e testare i tuoi risultati.
+
+Assicurati che i permessi sullo script siano corretti:
+
+```
+$ chmod 755 integer2lehex.sh
+```
+Puoi quindi eseguire lo script come segue:
+```
+$ ./integer2lehex.sh 1546288031
+Integer: 1546288031
+LE Hex: 9f7b2a5c
+Length: 4 bytes
+Hexcode: 049f7b2a5c
+
+$ ./integer2lehex.sh -1546288031
+Integer: -1546288031
+LE Hex: 9f7b2adc
+Length: 4 bytes
+Hexcode: 049f7b2adc
+```
+
+
+## Analizzare un Multisig P2SH
+
+Per capire meglio questo processo, esamineremo il multisig P2SH che abbiamo creato in [Capitolo 6.1: Inviare una Transazione a un IndirizzoMultifirma](06_1_Inviare_una_Transazione_a_un_Indirizzo_Multifirma.md). Dai un'occhiata al `redeemScript` che hai usato, che ora sai essere la versione esadecimale serializzata dello script di blocco:
+
+```
+522102da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d1912102bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa352ae
+```
+Puoi tradurlo di nuovo in Script manualmente usando la [pagina del Bitcoin Wiki Script](https://en.bitcoin.it/wiki/Script) come riferimento. Basta guardare un byte (due caratteri esadecimali) di dati alla volta, a meno che non ti venga detto di guardare di più da un comando OP_PUSHDATA (un opcode nell'intervallo da 0x01 a 0x4e).
+
+L'intero script si scomporrà come segue:
+
+```
+52 / 21 / 02da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d191 / 21 / 02bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa3 / 52 / ae
+```
+Ecco cosa significano le singole parti:
+
+* 0x52 = OP_2
+* 0x21 = OP_PUSHDATA 33 bytes (hex: 0x21)
+* 0x02da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d191 = i prossimi 33 byte (public-key hash)
+* 0x21 = OP_PUSHDATA 33 bytes (hex: 0x21)
+* 0x02bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa3 = i prossimi 33 byte (public-key hash)
+* 0x52 = OP_2
+* 0xae = OP_CHECKMULTISIG
+
+In altre parole, quel `redeemScript` era una traduzione di `2 02da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d191 02bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa3 2 OP_CHECKMULTISIG`. Torneremo su questo script nel [Capitolo 10.4:Scripting a Multisig](10_4_Scripting_a_Multisig.md) quando dettaglieremo esattamente come funzionano i multisig all'interno del paradigma P2SH.
+
+Se desideri un aiuto meccanico con questo tipo di traduzione in futuro, puoi usare `bitcoin-cli decodescript`:
+
+```
+$ bitcoin-cli -named decodescript hexstring=522102da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d1912102bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa352ae
+{
+ "asm": "2 02da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d191 02bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa3 2 OP_CHECKMULTISIG",
+ "reqSigs": 2,
+ "type": "multisig",
+ "addresses": [
+ "mmC2x2FoYwBnVHMPRUAzPYg6WDA31F1ot2",
+ "mhwZFJUnWqTqy4Y7pXVum88qFtUnVG1keM"
+ ],
+ "p2sh": "2N8MytPW2ih27LctLjn6LfLFZZb1PFSsqBr",
+ "segwit": {
+ "asm": "0 6fe9f451ccedb8e4090b822dcad973d0388a37b4c89fd1aed485110adecab2a9",
+ "hex": "00206fe9f451ccedb8e4090b822dcad973d0388a37b4c89fd1aed485110adecab2a9",
+ "reqSigs": 1,
+ "type": "witness_v0_scripthash",
+ "addresses": [
+ "tb1qdl5lg5wvakuwgzgtsgku4ktn6qug5da5ez0artk5s5gs4hk2k25szvjky9"
+ ],
+ "p2sh-segwit": "2NByn92W1vH5oQC1daY69F5sU7PEStKKQBR"
+ }
+}
+```
+È particolarmente utile per controllare il tuo lavoro quando stai serializzando.
+
+## Serializzare uno Script di Blocco nel Modo Facile
+
+Quando hai installato `btcdeb` nel [Capitolo 9.3](09_3_Provare_uno_Script_Bitcoin.md) hai anche installato `btcc` che può essere usato per serializzare gli script Bitcoin:
+
+```
+$ btcc 2 02da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d191 02bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa3 2 OP_CHECKMULTISIG
+warning: ambiguous input 2 is interpreted as a numeric value; use OP_2 to force into opcode
+warning: ambiguous input 2 is interpreted as a numeric value; use OP_2 to force into opcode
+522102da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d1912102bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa352ae
+```
+È molto più facile che capirlo a mano!
+
+Considera anche il [Transaction Script Compiler](https://github.com/Kefkius/txsc) di Python, che traduce avanti e indietro.
+
+## Hashare uno Script Serializzato
+
+Dopo aver creato uno script di blocco e serializzato, il terzo passaggio nella creazione di una transazione P2SH è hashare lo script di blocco. Come notato in precedenza, un hash OP_HASH160 di 20 byte è creato attraverso una combinazione di un hash SHA-256 e un hash RIPEMD-160. Hashare uno script serializzato richiede quindi due comandi: `openssl dgst -sha256 -binary` esegue l'hash SHA-256 e produce un binario da inviare tramite pipe, poi `openssl dgst -rmd160` prende quel flusso binario, esegue un hash RIPEMD-160 e infine produce un codice esadecimale leggibile.
+
+Ecco l'intera pipe, inclusa la precedente trasformazione dello script serializzato esadecimale in binario:
+
+```
+$ redeemScript="522102da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d1912102bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa352ae"
+$ echo -n $redeemScript | xxd -r -p | openssl dgst -sha256 -binary | openssl dgst -rmd160
+(stdin)= a5d106eb8ee51b23cf60d8bd98bc285695f233f3
+```
+## Creare una Transazione P2SH
+
+Creare il tuo hash di 20 byte ti dà solo l'hash al centro di uno script di blocco P2SH. Devi ancora metterlo insieme agli altri opcode che creano una transazione P2SH standard: `OP_HASH160 a5d106eb8ee51b23cf60d8bd98bc285695f233f3 OP_EQUAL`.
+
+A seconda della tua API, potresti essere in grado di inserire questo come un `scriptPubKey` in stile `asm` per la tua transazione, oppure potresti doverlo tradurre anche in codice `hex`. Se devi tradurre, usa gli stessi metodi descritti sopra per "Creare il Codice Esadecimale" (oppure usa `btcc`), risultando in `a914a5d106eb8ee51b23cf60d8bd98bc285695f233f387`.
+
+Nota che il `scriptPubKey` esadecimale per una transazione Script P2SH inizierà _sempre_ con un `a914`, che è l'`OP_HASH160` seguito da un `OP_PUSHDATA` di 20 byte (hex: `0x14`); e terminerà _sempre_ con un `87`, che è un `OP_EQUAL`. Quindi tutto ciò che devi fare è mettere il tuo redeem script hashato tra quei numeri.
+
+## Riepilogo: Costruire la Struttura di P2SH
+
+Creare effettivamente lo script di blocco P2SH ti porta più a fondo nel cuore di Bitcoin di quanto tu abbia mai fatto prima. Sebbene sia utile sapere come funziona tutto questo a un livello molto basso, è molto probabile che avrai un'API che si occuperà di tutto il lavoro pesante per te. Il tuo compito sarà semplicemente creare il Bitcoin Script per fare il blocco... che è l'argomento principale dei capitoli 9 e 11-12.
+
+## Cosa c'è Dopo?
+
+Continua "Incorporare Bitcoin Scripts" con [Capitolo 10.3: Eseguire uno Script Bitcoin con P2SH](10_3_Eseguire_uno_Script_Bitcoin_con_P2SH.md).
+
+
diff --git a/it/10_3_Eseguire_uno_Script_Bitcoin_con_P2SH.md b/it/10_3_Eseguire_uno_Script_Bitcoin_con_P2SH.md
new file mode 100644
index 000000000..353bcd514
--- /dev/null
+++ b/it/10_3_Eseguire_uno_Script_Bitcoin_con_P2SH.md
@@ -0,0 +1,104 @@
+# 10.3: Eseguire uno Script Bitcoin con P2SH
+
+Ora che conosci la teoria e la pratica dietro gli indirizzi P2SH, sei pronto a trasformare uno Script Bitcoin non standard in una transazione effettiva. Riutilizzeremo lo script di blocco semplice da [Capitolo 9.2: Eseguire uno Script di Bitcoin](09_2_Eseguire_uno_Script_di_Bitcoin.md), `OP_ADD 99 OP_EQUAL`.
+
+## Creare una Transazione P2SH
+
+Per bloccare una transazione con questo Script, fai quanto segue:
+
+1. Serializzare `OP_ADD 99 OP_EQUAL`:
+ 1. OP_ADD = 0x93 — una semplice traduzione dell'opcode
+ 2. 99 = 0x01, 0x63 — questo opcode spinge un byte nello stack, 99 (hex: 0x63)
+ * Nessuna preoccupazione per la conversione endian poiché è solo un byte
+ 3. OP_EQUAL = 0x87 — una semplice traduzione dell'opcode
+ 4. `` = "93016387"
+
+
+
+```
+$ btcc OP_ADD 99 OP_EQUAL
+93016387
+```
+
+
+2. Salva `` per riferimento futuro come `redeemScript`.
+ 1. `` = "93016387"
+3. Esegui l'hash SHA-256 e RIPEMD-160 dello script serializzato.
+ 1. `` = "3f58b4f7b14847a9083694b9b3b52a4cea2569ed"
+4. Produci uno script di blocco P2SH che includa il ``.
+ 1. `scriptPubKey` = "a9143f58b4f7b14847a9083694b9b3b52a4cea2569ed87"
+
+Puoi quindi creare una transazione usando questo `scriptPubKey`, probabilmente tramite un'API.
+
+## Sbloccare la Transazione P2SH
+
+Per sbloccare questa transazione è necessario che il destinatario produca un `scriptSig` che premetta due costanti per un totale di novantanove allo script serializzato: `1 98 `.
+
+### Eseguire il Primo Ciclo di Validazione
+
+Il processo di sblocco della transazione P2SH inizia con un primo ciclo di validazione, che verifica che il redeem script corrisponda al valore hashato nello script di blocco.
+
+Concatena `scriptSig` e `scriptPubKey` ed eseguili, come di consueto:
+
+```
+Script: 1 98 OP_HASH160 OP_EQUAL
+Stack: []
+
+Script: 98 OP_HASH160 OP_EQUAL
+Stack: [ 1 ]
+
+Script: OP_HASH160 OP_EQUAL
+Stack: [ 1 98 ]
+
+Script: OP_HASH160 OP_EQUAL
+Stack: [ 1 98 ]
+
+Script: OP_EQUAL
+Running: OP_HASH160
+Stack: [ 1 98 ]
+
+Script: OP_EQUAL
+Stack: [ 1 98 ]
+
+Script:
+Running: OP_EQUAL
+Stack: [ 1 98 True ]
+```
+Lo Script termina con un `True` in cima allo stack, quindi ha successo... anche se ci sono altre informazioni inutili sotto.
+
+Tuttavia, poiché questo era uno script P2SH, l'esecuzione non è finita.
+
+### Eseguire il Secondo Ciclo di Validazione
+
+Per il secondo ciclo di validazione, verifica che i valori nello script di sblocco soddisfino il `redeemScript`: deserializza il `redeemScript` ("93016387" = "OP_ADD 99 OP_EQUAL"), quindi eseguilo usando gli elementi nel `scriptSig` prima dello script serializzato:
+
+```
+Script: 1 98 OP_ADD 99 OP_EQUAL
+Stack: [ ]
+
+Script: 98 OP_ADD 99 OP_EQUAL
+Stack: [ 1 ]
+
+Script: OP_ADD 99 OP_EQUAL
+Stack: [ 1 98 ]
+
+Script: 99 OP_EQUAL
+Running: 1 98 OP_ADD
+Stack: [ 99 ]
+
+Script: OP_EQUAL
+Stack: [ 99 99 ]
+
+Script:
+Running: 99 99 OP_EQUAL
+Stack: [ True ]
+```
+Con quella seconda validazione _anche_ vera, il UTXO può ora essere speso!
+
+## Riepilogo: Costruire uno Script Bitcoin con P2SH
+
+Una volta che conosci la tecnica per costruire P2SH, qualsiasi Script può essere incorporato in una transazione Bitcoin; e una volta che comprendi la tecnica di validazione dei P2SH, è facile eseguire gli script in due cicli.
+
+## Cosa c'è Dopo?
+
+Continua a "Incorporare Bitcoin Scripts" col [Capitolo 10.4 Programmare una Multifirma](10_4_Programmare_una_Multifirma.md).
diff --git a/it/10_4_Programmare_una_Multifirma.md b/it/10_4_Programmare_una_Multifirma.md
new file mode 100644
index 000000000..dd01eafc3
--- /dev/null
+++ b/it/10_4_Programmare_una_Multifirma.md
@@ -0,0 +1,153 @@
+# 10.4: Scripting di un Multisig
+
+Prima di concludere questa introduzione agli script P2SH, vale la pena esaminare un esempio più realistico. Fin dal [Capitolo 6.1](06_1_Inviare_una_Transazione_a_un_Indirizzo_Multifirma.md), abbiamo detto casualmente che l'interfaccia `bitcoin-cli` avvolge la sua transazione multisig in una transazione P2SH. In effetti, questa è la metodologia standard per creare multisig sulla Blockchain. Ecco come funziona, in dettaglio.
+
+## Comprendere il Codice Multisig
+
+Le transazioni multisig sono create in Bitcoin usando il codice `OP_CHECKMULTISIG`. `OP_CHECKMULTISIG` si aspetta una lunga stringa di argomenti che assomiglia a questa: `0 ... sigs ... ... addresses ... OP_CHECKMULTISIG`. Quando `OP_CHECKMULTISIG` viene eseguito, fa quanto segue:
+
+1. Estrae il primo valore dallo stack (``).
+2. Estrae "n" valori dallo stack come indirizzi Bitcoin (chiavi pubbliche hashate).
+3. Estrae il valore successivo dallo stack (``).
+4. Estrae "m" valori dallo stack come potenziali firme.
+5. Estrae uno `0` dallo stack a causa di un errore nella codifica originale.
+6. Confronta le firme con gli indirizzi Bitcoin.
+7. Spinge un `True` o `False` a seconda del risultato.
+
+Gli operandi di `OP_MULTISIG` sono tipicamente divisi, con lo `0` e le firme provenienti dallo script di sblocco e "m", "n" e gli indirizzi dettagliati dallo script di blocco.
+
+Il requisito di quello `0` come primo operando per `OP_CHECKMULTISIG` è una regola di consenso. Poiché la versione originale di `OP_CHECKMULTISIG` ha accidentalmente estratto un elemento in più dallo stack, Bitcoin deve seguire per sempre quello standard, altrimenti gli script di riscatto complessi di quel periodo rischiano di essere rotti, rendendo i vecchi fondi irrecuperabili.
+
+> :book: ***Cos'è una regola di consenso?*** Queste sono le regole che i nodi Bitcoin seguono per lavorare insieme. In gran parte sono definite dal codice di Bitcoin Core. Queste regole includono molti mandati ovvi, come il limite a quanti Bitcoin sono creati per ogni blocco e le regole su come le transazioni possono essere rispese. Tuttavia, includono anche correzioni per bug che sono apparsi nel corso degli anni, perché una volta che un bug è stato introdotto nel codice di Bitcoin, deve essere continuamente supportato, altrimenti i vecchi Bitcoin diventano non spendibili.
+
+## Creare un Multisig Raw
+
+Come discusso nel [Capitolo 10.1: Comprendere la Base di P2SH](10_1_Comprendere_la_Base_di_P2SH.md), i multisig sono uno dei tipi di transazione standard di Bitcoin. Una transazione può essere creata con uno script di blocco che usa il comando raw `OP_CHECKMULTISIG`, e sarà accettata in un blocco. Questa è la metodologia classica per usare i multisig in Bitcoin.
+
+Come esempio, rivisiteremo il multisig creato nel [Capitolo 6.1](06_1_Inviare_una_Transazione_a_un_Indirizzo_Multifirma.md) un'ultima volta e costruiremo un nuovo script di blocco per esso usando questa metodologia. Come forse ricorderai, quello era un multisig 2-di-2 costruito da `$address1` e `$address2`.
+
+Poiché lo script di blocco `OP_CHECKMULTISIG` richiede "m" (`2`), gli indirizzi e "n" (`2`), potresti scrivere il seguente `scriptPubKey`:
+```
+2 $address1 $address2 2 OP_CHECKMULTISIG
+```
+Se questo ti sembra familiare, è perché è il multisig che hai deserializzato nel [Capitolo 10.2: Construire la Struttura di P2SH](10_2_Construire_la_Struttura_di_P2SH.md).
+```
+2 02da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d191 02bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa3 2 OP_CHECKMULTISIG
+```
+
+
+> **AVVISO:** Per le firme `OP_CHECKMULTISIG` classiche, "n" deve essere ≤ 3 affinché la transazione sia standard.
+
+## Sbloccare un Multisig Raw
+
+Lo `scriptSig` per un indirizzo multisig standard deve quindi fornire gli operandi mancanti per `OP_CHECKMULTISIG`: uno `0` seguito da "m" firme. Ad esempio:
+:
+```
+0 $signature1 $signature2
+```
+
+
+### Eseguire uno Script Multisig Raw
+
+Per spendere un UTXO multisig, esegui lo `scriptSig` e lo `scriptPubKey` come segue:
+
+```
+Script: 0 $signature1 $signature2 2 $address1 $address2 2 OP_CHECKMULTISIG
+Stack: [ ]
+```
+Prima, metti tutte le costanti nello stack:
+```
+Script: OP_CHECKMULTISIG
+Stack: [ 0 $signature1 $signature2 2 $address1 $address2 2 ]
+```
+Poi, l'`OP_CHECKMULTISIG` inizia a funzionare. Prima, viene estratto il "2":
+```
+Running: OP_CHECKMULTISIG
+Stack: [ 0 $signature1 $signature2 2 $address1 $address2 ]
+```
+Poi, il "2" dice a `OP_CHECKMULTISIG` di estrarre due indirizzi:
+```
+Running: OP_CHECKMULTISIG
+Stack: [ 0 $signature1 $signature2 2 ]
+```
+Poi, viene estratto il prossimo "2":
+```
+Running: OP_CHECKMULTISIG
+Stack: [ 0 $signature1 $signature2 ]
+```
+Poi, il "2" dice a `OP_CHECKMULTISIG` di estrarre due firme:
+```
+Running: OP_CHECKMULTISIG
+Stack: [ 0 ]
+```
+Poi, un altro elemento viene erroneamente estratto:
+```
+Running: OP_CHECKMULTISIG
+Stack: [ ]
+```
+Poi, `OP_CHECKMULTISIG` completa la sua operazione confrontando le "m" firme con gli indirizzi "n":
+```
+Script:
+Stack: [ True ]
+```
+## Comprendere i Limiti degli Script Multisig Raw
+
+Sfortunatamente, la tecnica di incorporare un multisig raw in una transazione ha alcuni svantaggi notevoli:
+
+1. Poiché non esiste un formato di indirizzo standard per i multisig, ogni mittente deve: inserire uno script multisig lungo e ingombrante; avere un software che lo consenta; e essere affidabile per non sbagliare.
+2. Poiché i multisig possono essere molto più lunghi degli script di blocco tipici, la blockchain incorre in maggiori costi. Questo richiede commissioni di transazione più elevate da parte del mittente e crea più fastidi per ogni nodo.
+
+Questi erano generalmente problemi con qualsiasi tipo di script Bitcoin complesso, ma sono diventati rapidamente problemi molto reali quando applicati ai multisig, che erano alcuni dei primi script complessi ad essere ampiamente utilizzati sulla rete Bitcoin. Le transazioni P2SH sono state create per risolvere questi problemi, a partire dal 2012.
+
+> :book: ***Cos'è un multisig P2SH?*** I multisig P2SH sono la prima implementazione delle transazioni P2SH. Semplicemente confezionano una transazione multisig standard in una transazione P2SH standard. Questo consente la standardizzazione degli indirizzi; riduce lo spazio di archiviazione dei dati; e aumenta i conteggi di "m" e "n".
+
+## Creare un Multisig P2SH
+
+I multisig P2SH sono la metodologia moderna per creare multisig sulla Blockchain. Possono essere creati molto semplicemente, usando lo stesso processo visto nelle sezioni precedenti.
+
+### Creare il Blocco per il Multisig P2SH
+
+Per creare un multisig P2SH, segui i passaggi standard per creare uno script di blocco P2SH:
+
+1. Serializzare `2 $address1 $address2 2 OP_CHECKMULTISIG`.
+ 1. `` = "522102da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d1912102bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa352ae"
+2. Salva `` per riferimento futuro come redeemScript.
+ 1. `` = "522102da2f10746e9778dd57bd0276a4f84101c4e0a711f9cfd9f09cde55acbdd2d1912102bfde48be4aa8f4bf76c570e98a8d287f9be5638412ab38dede8e78df82f33fa352ae"
+3. Esegui l'hash SHA-256 e RIPEMD-160 dello script serializzato.
+ 1. `` = "a5d106eb8ee51b23cf60d8bd98bc285695f233f3"
+4. Produci uno script di blocco Multisig P2SH che includa lo script hashato (`OP_HASH160 OP_EQUAL`).
+ 1. `scriptPubKey` = "a914a5d106eb8ee51b23cf60d8bd98bc285695f233f387"
+
+Puoi quindi creare una transazione usando quel `scriptPubKey`.
+
+## Sbloccare il Multisig P2SH
+
+Per sbloccare questa transazione multisig è necessario che il destinatario produca uno scriptSig che includa le due firme e il `redeemScript`.
+
+### Eseguire il Primo Ciclo di Validazione P2SH
+
+Per sbloccare il multisig P2SH, conferma prima lo script:
+
+1. Produci uno script di sblocco di `0 $signature1 $signature2 `.
+2. Concatenalo con lo script di blocco di `OP_HASH160 OP_EQUAL`.
+3. Valida `0 $signature1 $signature2 OP_HASH160 OP_EQUAL`.
+4. Ha successo se il `` corrisponde al ``.
+
+### Eseguire il Secondo Ciclo di Validazione P2SH
+
+Poi, esegui lo script multisig:
+
+1. Deserializza `` in `2 $address1 $address2 2 OP_CHECKMULTISIG`.
+2. Concatenalo con gli operandi precedenti nello script di sblocco, `0 $signature1 $signature2`.
+3. Valida `0 $signature1 $signature2 2 $address1 $address2 2 OP_CHECKMULTISIG`.
+4. Ha successo se gli operandi soddisfano il `redeemScript` deserializzato.
+
+Ora sai come la transazione multisig nel [Capitolo 6.1](06_1_Inviare_una_Transazione_a_un_Indirizzo_Multifirma.md) è stata effettivamente creata, come è stata validata per la spesa e perché quel `redeemScript` era così importante.
+
+## Riepilogo: Creare Script Multisig
+
+I multisig sono un tipo di transazione standard, ma sono un po' ingombranti da usare, quindi sono regolarmente incorporati in transazioni P2SH, come nel caso del [Capitolo 6.1](06_1_Inviare_una_Transazione_a_un_Indirizzo_Multifirma.md) quando abbiamo creato i nostri primi multisig. Il risultato è più pulito, più piccolo e più standardizzato — ma più importante, è un ottimo esempio reale di come funzionano veramente gli script P2SH.
+
+## Cosa c'è Dopo?
+
+Continua "Incorporare Bitcoin Scripts" con [Capitolo 10.5: Programmare uno Script Segwit](10_5_Programmare_uno_Script_Segwit.md)
diff --git a/it/10_5_Programmare_uno_Script_Segwit.md b/it/10_5_Programmare_uno_Script_Segwit.md
new file mode 100644
index 000000000..83f6bb7c7
--- /dev/null
+++ b/it/10_5_Programmare_uno_Script_Segwit.md
@@ -0,0 +1,134 @@
+# 10.5: Programmare uno script Segwit
+
+> :information_source: **NOTA:** Questa sezione è stata recentemente aggiunta al corso ed è una bozza iniziale che potrebbe essere ancora in attesa di revisione. Lettore avvisato.
+
+Segwit ha introdotto una serie di nuove opzioni per i tipi di indirizzi (e quindi di script). [Capitolo 9.5: Programmare una P2WPKH](09_5_Programmare_una_P2WPKH.md) ha spiegato come il nuovo tipo di indirizzo Bech32 abbia variato gli script standard trovati nella maggior parte delle transazioni tradizionali. Questo capitolo esamina gli altri tre tipi di script introdotti dall'aggiornamento Segwit: il P2SH-Segwit (che era l'indirizzo di transizione "nested Segwit", quando Segwit è stato introdotto), il P2WSH (che è l'equivalente Segwit dell'indirizzo P2SH, proprio come P2WPKH è l'equivalente Segwit dell'indirizzo P2PKH) e l'indirizzo P2WSH annidato.
+
+Questa è un'altra situazione in cui non dovrai davvero preoccuparti di queste sfumature mentre lavori con `bitcoin-cli`, ma è utile sapere come funziona tutto.
+
+## Comprendere uno Script P2SH-Segwit
+
+L'indirizzo P2SH-Segwit è una razza morente. Era fondamentalmente una misura provvisoria mentre Bitcoin stava passando a Segwit, che permetteva a un utente di creare un indirizzo Segwit e poi fare in modo che qualcuno con uno scambio o un portafoglio non abilitato a Segwit finanziasse quell'indirizzo.
+
+Se mai dovessi usarne uno, c'è un'opzione per creare un indirizzo P2SH-Segwit usando `getnewaddress`:
+```
+$ bitcoin-cli getnewaddress -addresstype p2sh-segwit
+2NEzBvokxh4ME4ahdT18NuSSoYvvhS7EnMU
+```
+L'indirizzo inizia con un `2` (o un `3`), rivelandosi come uno script
+
+> :book: ***Perché i vecchi nodi non possono inviare agli indirizzi Segwit nativi?*** [Capitolo 10.1](10_1_Comprendere_la_Base_di_P2SH.md) ha notato che c'erano un numero stabilito di transazioni Bitcoin "standard". Non puoi effettivamente bloccare una transazione con uno script che non sia uno di quei tipi standard. Segwit è ora riconosciuto come uno di quegli standard, ma un vecchio nodo non lo saprà, e quindi si rifiuterà di inviare su una tale transazione per protezione del mittente. Avvolgere un indirizzo Segwit all'interno di un hash di script risolve il problema.
+
+Quando guardi un UTXO inviato a quell'indirizzo, puoi vedere che il `desc` è diverso, rivelando un indirizzo WPKH avvolto in uno script:
+
+```
+$ bitcoin-cli listunspent
+ {
+ "txid": "ed752673bfd4338ccf0995983086da846ad652ae0f28280baf87f9fd44b3c45f",
+ "vout": 1,
+ "address": "2NEzBvokxh4ME4ahdT18NuSSoYvvhS7EnMU",
+ "redeemScript": "001443ab2a09a1a5f2feb6c799b5ab345069a96e1a0a",
+ "scriptPubKey": "a914ee7aceea0865a05a29a28d379cf438ac5b6cd9c687",
+ "amount": 0.00095000,
+ "confirmations": 1,
+ "spendable": true,
+ "solvable": true,
+ "desc": "sh(wpkh([f004311c/0'/0'/3']03bb469e961e9a9cd4c23db8442d640d9b0b11702dc0126462ac9eb88b64a4dd48))#p29e839h",
+ "safe": true
+ }
+```
+Più importante, c'è un `redeemScript`, che si decodifica in `OP_0 OP_PUSHDATA (20 bytes) 3ab2a09a1a5f2feb6c799b5ab345069a96e1a0a`. Questo dovrebbe sembrare familiare, perché è un `OP_0` seguito da un codice esadecimale a 20 byte di un hash di chiave pubblica. In altre parole, un P2SH-SegWit è solo uno `scriptPubKey` SegWit inserito in uno script. Questo è tutto. Corrisponde esattamente a come i multisig moderni sono un multisig inserito in un P2SH, come discusso nel [Capitolo 10.4: Programmare una Multisig](10_4_Programmare_una_Multifirma.md).
+
+Al contrario, quando spendiamo questa transazione, sembra esattamente come un P2SH:
+
+```
+$ bitcoin-cli getrawtransaction ed752673bfd4338ccf0995983086da846ad652ae0f28280baf87f9fd44b3c45f 1
+{
+ "txid": "ed752673bfd4338ccf0995983086da846ad652ae0f28280baf87f9fd44b3c45f",
+ "hash": "aa4b1c2bde86ea446c9a9db2f77e27421316f26a8d88869f5b195f03b1ac4f23",
+ "version": 2,
+ "size": 247,
+ "vsize": 166,
+ "weight": 661,
+ "locktime": 1781316,
+ "vin": [
+ {
+ "txid": "59178b02cfcbdee51742a4b2658df35b63b51115a53cf802bc6674fd94fa593a",
+ "vout": 1,
+ "scriptSig": {
+ "asm": "00149ef51fb1f5adb44e20eff758d34ae64fa781fa4f",
+ "hex": "1600149ef51fb1f5adb44e20eff758d34ae64fa781fa4f"
+ },
+ "txinwitness": [
+ "3044022069a23fcfc421b44c622d93b7639a2152f941dbfd031970b8cef69e6f8e97bd46022026cb801f38a1313cf32a8685749546a5825b1c332ee4409db82f9dc85d99086401",
+ "030aec1384ae0ef264718b8efc1ef4318c513403d849ea8466ef2e4acb3c5ccce6"
+ ],
+ "sequence": 4294967294
+ }
+ ],
+ "vout": [
+ {
+ "value": 8.49029534,
+ "n": 0,
+ "scriptPubKey": {
+ "asm": "OP_HASH160 b4b656f4c4b14ee0d098299d1d6eb42d2e22adcd OP_EQUAL",
+ "hex": "a914b4b656f4c4b14ee0d098299d1d6eb42d2e22adcd87",
+ "reqSigs": 1,
+ "type": "scripthash",
+ "addresses": [
+ "2N9ik3zihJ91VGNF55sZFe9GiCAXh2cVKKW"
+ ]
+ }
+ },
+ {
+ "value": 0.00095000,
+ "n": 1,
+ "scriptPubKey": {
+ "asm": "OP_HASH160 ee7aceea0865a05a29a28d379cf438ac5b6cd9c6 OP_EQUAL",
+ "hex": "a914ee7aceea0865a05a29a28d379cf438ac5b6cd9c687",
+ "reqSigs": 1,
+ "type": "scripthash",
+ "addresses": [
+ "2NEzBvokxh4ME4ahdT18NuSSoYvvhS7EnMU"
+ ]
+ }
+ }
+ ],
+ "hex": "020000000001013a59fa94fd7466bc02f83ca51511b5635bf38d65b2a44217e5decbcf028b175901000000171600149ef51fb1f5adb44e20eff758d34ae64fa781fa4ffeffffff029e299b320000000017a914b4b656f4c4b14ee0d098299d1d6eb42d2e22adcd87187301000000000017a914ee7aceea0865a05a29a28d379cf438ac5b6cd9c68702473044022069a23fcfc421b44c622d93b7639a2152f941dbfd031970b8cef69e6f8e97bd46022026cb801f38a1313cf32a8685749546a5825b1c332ee4409db82f9dc85d9908640121030aec1384ae0ef264718b8efc1ef4318c513403d849ea8466ef2e4acb3c5ccce6442e1b00",
+ "blockhash": "0000000069cbe44925fab2d472870608c7e1e241a1590fd78be10c63388ed6ee",
+ "confirmations": 282952,
+ "time": 1595360859,
+ "blocktime": 1595360859
+}
+```
+Ogni `vout` è della forma `OP_HASH160 OP_EQUAL`. Questo è un normale P2SH come si vede nel [Capitolo 10.2](10_2_Construire_la_Struttura_di_P2SH.md), il che significa che è solo quando viene eseguito lo script di riscatto che avviene la magia. Proprio come con un P2WPKH, un vecchio nodo vedrà `OP_0 OP_PUSHDATA (20 bytes) 3ab2a09a1a5f2feb6c799b5ab345069a96e1a0a` nello script di riscatto e lo verificherà automaticamente, mentre un nuovo nodo vedrà quello, saprà che è un P2WPKH e quindi andrà a cercare nei `witnesses`. Vedi [Capitolo 9.5: Programmare una P2WPKH](09_5_Programmare_una_P2WPKH.md).
+
+> :book: ***Quali sono gli svantaggi delle transazioni Segwit annidate?*** Sono più grandi delle transazioni Segwit native, quindi ottieni alcuni vantaggi del Segwit, ma non tutti.
+
+## Comprendere uno Script P2WSH
+
+Al contrario, le transazioni P2WSH dovrebbero essere sempre più utilizzate, poiché sono la sostituzione Segwit nativa per P2SH, offrendo tutti gli stessi vantaggi di dimensione del blocco creati con le transazioni P2WPKH Segwit native.
+
+Questo è un esempio di indirizzo P2WSH:
+[https://blockstream.info/testnet/address/tb1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3q0sl5k7](https://blockstream.info/testnet/address/tb1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3q0sl5k7)
+
+I dettagli mostrano che un UTXO inviato a questo indirizzo è bloccato con uno `scriptPubKey` come questo:
+
+```
+OP_0 OP_PUSHDATA (32 bytes) 1863143c14c5166804bd19203356da136c985678cd4d27a1b8c6329604903262
+```
+Funziona proprio come un indirizzo P2WPKH, l'unica differenza è che invece di un hash di chiave pubblica a 20 byte, l'UTXO include un hash di script a 32 byte. Proprio come con un P2WPKH, i vecchi nodi lo verificano, mentre i nuovi nodi riconoscono che è un P2WSH e quindi verificano internamente lo script come descritto nelle sezioni precedenti, ma utilizzando i dati `witness`, che ora includono lo script di riscatto.
+
+C'è anche un'altra variante, uno script P2WSH incorporato in uno script P2SH, che funziona molto come il P2SH-Segwit descritto sopra, ma per gli script P2WSH annidati. (Uff!)
+
+## Riepilogo: Scripting di un Segwit Script
+
+Ci sono due tipi di script P2SH che riguardano Segwit.
+
+L'indirizzo P2SH-Segwit è un indirizzo Segwit annidato che incorpora il semplice `scriptPubkey` Segwit all'interno di uno Script, proprio come i multisig sono incorporati negli script oggigiorno: la chiave in stile Segwit viene srotolata e quindi analizzata normalmente su una macchina che comprende Segwit. Lo scopo è la compatibilità all'indietro con i vecchi nodi che altrimenti potrebbero non essere in grado di inviare a indirizzi Segwit nativi.
+
+L'indirizzo P2WSH è una variante Segwit di P2SH, proprio come P2WPKH è una variante Segwit di P2WSH. Funziona con la stessa logica ed è identificato dall'avere un hash a 32 byte invece di un hash a 20 byte. Lo scopo è estendere i vantaggi di Segwit ad altri tipi di script.
+
+## Cosa c'è Dopo?
+
+Continua "Incorporare Bitcoin Scripts" con [Capitolo 10.6: Spendere una Transazione P2SH](10_6_Spendere_una_Transazione_P2SH.md).
diff --git a/it/10_6_Spendere_una_Transazione_P2SH.md b/it/10_6_Spendere_una_Transazione_P2SH.md
new file mode 100644
index 000000000..7ebc54811
--- /dev/null
+++ b/it/10_6_Spendere_una_Transazione_P2SH.md
@@ -0,0 +1,43 @@
+# 10.6: Spendere una Transazione P2SH
+
+Prima di concludere questa panoramica sulle transazioni P2SH, toccheremo come spenderle. Questa sezione è principalmente una panoramica, facendo riferimento a una sezione precedente in cui abbiamo _già_ speso una transazione P2SH.
+
+## Usa il Redeem Script
+
+Come abbiamo visto in [Capitolo 6.2: Spendere una Transazione con un Indirizzo Multifirma](06_2_Spendere_una_Transazione_con_un_Indirizzo_Multifirma.md), spendere una transazione P2SH riguarda tutto l'avere quella versione serializzata dello script di blocco, il cosiddetto _redeemScript_. Quindi, il primo passo per poter spendere una transazione P2SH è assicurarsi di salvare il _redeemScript_ prima di distribuire l'indirizzo P2SH a tutti.
+
+### Raccogli le Tue Variabili
+
+Poiché gli indirizzi P2SH, diversi dagli indirizzi multisig speciali e dagli indirizzi Segwit annidati, non sono integrati in `bitcoin-cli`, non ci saranno scorciatoie per spendere P2SH come hai visto in [Capitolo 6.3: Inviare e Ricevere una Multifirma Automatizzata](06_3_Inviare_e_Ricevere_una_Multifirma_Automatizzata.md). Dovrai raccogliere tutte le variabili più complesse da solo!
+
+Questo significa che devi raccogliere:
+
+ * L'`hex` dello `scriptPubKey` per la transazione che stai spendendo
+ * Il `redeemScript` serializzato
+ * Qualsiasi chiave privata, poiché firmerai manualmente
+ * Tutti i normali `txids`, `vouts` e `addresses` di cui avresti bisogno
+
+## Creare la Transazione
+
+Come abbiamo visto in §6.2, la creazione di una transazione è abbastanza standard:
+
+```
+$ rawtxhex=$(bitcoin-cli -named createrawtransaction inputs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout' } ]''' outputs='''{ "'$recipient'": 0.00005}''')
+$ echo $rawtxhex
+020000000121654fa95d5a268abf96427e3292baed6c9f6d16ed9e80511070f954883864b10000000000ffffffff0188130000000000001600142c48d3401f6abed74f52df3f795c644b4398844600000000
+```
+Tuttavia, firmare richiede l'inserimento di informazioni extra per (1) `scriptPubKey`; (2) il `redeemScript`; e (3) qualsiasi chiave privata necessaria.
+
+Ecco l'esempio di farlo per quel multisig incorporato in P2SH nel Capitolo6.2:
+```
+$ bitcoin-cli -named signrawtransactionwithkey hexstring=$rawtxhex prevtxs='''[ { "txid": "'$utxo_txid'", "vout": '$utxo_vout', "scriptPubKey": "'$utxo_spk'", "redeemScript": "'$redeem_script'" } ]''' privkeys='["cNPhhGjatADfhLD5gLfrR2JZKDE99Mn26NCbERsvnr24B3PcSbtR"]'
+```
+Con qualsiasi altro tipo di P2SH includerai un diverso `redeemscript`, ma per il resto la pratica è esattamente la stessa. L'unica differenza è che dopo due capitoli di lavoro sugli Script ora capisci cos'è lo `scriptPubKey` e cos'è il `redeemScript`, quindi spero che quelli che erano elementi misteriosi quattro capitoli fa siano ora familiari.
+
+## Riepilogo: Spendere una Transazione P2SH
+
+Hai già speso una P2SH nel Capitolo 6, quando hai reinviato una transazione multisig nel modo difficile, che richiedeva di allineare le informazioni `scriptPubKey` e `redeemScript`. Ora sai che lo `scriptPubKey` è uno script di blocco P2SH standardizzato, mentre il `redeemScript` corrisponde a un hash in quello script di blocco e che devi essere in grado di eseguirlo con le variabili appropriate per ottenere un risultato `True`. Ma oltre a sapere di più, non c'è nulla di nuovo nello spendere una transazione P2SH, perché lo hai già fatto!
+
+## Cosa c'è Dopo?
+
+Avanza attraverso "Bitcoin Scripting" con [Capitolo 11: Potenziare Blocchi Temporali con Scripts di Bitcoin](11_0_Potenziare_Blocchi_Temporali_con_Scripts_di_Bitcoin.md).
diff --git a/it/11_0_Potenziare_Blocchi_Temporali_con_Scripts_di_Bitcoin.md b/it/11_0_Potenziare_Blocchi_Temporali_con_Scripts_di_Bitcoin.md
new file mode 100644
index 000000000..df05f386c
--- /dev/null
+++ b/it/11_0_Potenziare_Blocchi_Temporali_con_Scripts_di_Bitcoin.md
@@ -0,0 +1,24 @@
+# Capitolo 11: Potenziare il Timelock con Bitcoin Scripts
+
+La funzione `nLockTime` vista nel [Capitolo 8.1](08_1_Inviare_una_Transazione_con_Blocco_temporale.md) era solo l'inizio dei Timelocks. Quando inizi a scrivere Bitcoin Scripts, diventano disponibili due opcode di timelocking.
+
+## Obiettivi di Questo Capitolo
+
+Dopo aver lavorato su questo capitolo, uno sviluppatore sarà in grado di:
+
+ * Decidere quale Timelock Utilizzare
+ * Creare Script con CLTV
+ * Creare Script con CSV
+
+Gli obiettivi di supporto includono la capacità di:
+
+ * Comprendere le Differenze tra i Diversi Timelocks
+ * Generare Tempi Relativi
+
+## Indice
+
+* [Capitolo 11.1: Comprendere le Opzioni dei Blocchi Temporali](11_1_Comprendere_le_Opzioni_dei_Blocchi_Temporali.md)
+* [Capitolo 11.2: Usare CLTV negli Scripts](11_2_Usare_CLTV_negli_Scripts.md)
+* [Capitolo 11.3: Usare CSV negli Scripts](11_3_Usare_CSV_negli_Scripts.md)
+
+
diff --git a/it/11_1_Comprendere_le_Opzioni_dei_Blocchi_Temporali.md b/it/11_1_Comprendere_le_Opzioni_dei_Blocchi_Temporali.md
new file mode 100644
index 000000000..49f5c4af1
--- /dev/null
+++ b/it/11_1_Comprendere_le_Opzioni_dei_Blocchi_Temporali.md
@@ -0,0 +1,49 @@
+# 11.1: Comprendere le Opzioni di Timelock
+
+Nel [Capitolo 8.1: Inviare una Transazione con Blocco temporale](08_1_Inviare_una_Transazione_con_Blocco_temporale.md), `nLocktime` ha offerto una grande prima opzione per bloccare le transazioni in modo che non potessero essere spese fino a un certo punto nel futuro — basato sia sul tempo che sull'altezza del blocco. Ma, non è l'unico modo per mettere un timelock su una transazione.
+
+## Comprendere i Limiti di nLockTime
+
+`nLockTime` è un modo semplice e potente per bloccare una transazione, ma ha alcuni limiti:
+
+1. **Nessuna Divisione.** `nLocktime` blocca l'intera transazione.
+2. **Nessun Networking.** La maggior parte dei nodi moderni non accetteranno un `nLockTime` nella mempool fino a quando non è quasi pronto per essere finalizzato.
+3. **Nessuno Script.** L'uso originale e semplice di `nLockTime` non permetteva che fosse usato negli Script.
+4. **Nessuna Protezione.** `nLockTime` permette ai fondi di essere spesi con una transazione diversa, non bloccata.
+
+L'ultimo punto è stato spesso il punto di rottura per `nLockTime`. Impediva che una transazione venisse spesa, ma non impediva che i fondi fossero usati in una transazione diversa. Quindi, aveva usi, ma tutti dipendevano dalla fiducia.
+
+## Comprendere le Possibilità degli Script Timelock
+
+Negli anni più recenti, Bitcoin Core si è espanso per permettere la manipolazione dei timelock a livello di opcode con _OP_CHECKLOCKTIMEVERIFY_ (CLTV) e _OP_CHECKSEQUENCEVERIFY_ (CSV). Entrambi funzionano con una nuova metodologia che potenzia ulteriormente Bitcoin.
+
+_Sono Opcode._ Poiché sono opcode, CLTV e CSV possono essere usati come parte di condizioni di riscatto più complesse. Molto spesso sono collegati con le condizioni descritte nel prossimo capitolo.
+
+_Bloccano gli Output._ Poiché sono opcode che sono inclusi nelle transazioni come parte di un `sigPubKey`, bloccano solo quell'output singolo. Ciò significa che le transazioni sono accettate sulla rete Bitcoin e che gli UTXO usati per finanziare quelle transazioni sono spesi. Non si può tornare indietro su una transazione bloccata con CLTV o CSV come si può fare con un semplice `nLockTime`. Spendere nuovamente l'UTXO risultante richiede quindi che le condizioni del timelock siano soddisfatte.
+
+Ecco un'avvertenza per l'uso dei timelock: _Sono blocchi unidirezionali._ I timelock sono progettati in modo da sbloccare i fondi in un certo momento. Non possono quindi ri-bloccare un fondo: una volta che un fondo bloccato nel tempo è disponibile per essere speso, rimane disponibile per essere speso.
+
+### Comprendere le Possibilità di CLTV
+
+_OP_CHECKLOCKTIMEVERIFY_ o CLTV è una corrispondenza per la caratteristica classica `nLockTime`, ma nel nuovo paradigma basato su opcode. Permette a un UTXO di diventare accessibile in un certo momento o a una certa altezza di blocco.
+
+CLTV è stato dettagliato per la prima volta in [BIP 65](https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki).
+
+### Comprendere le Possibilità di CSV
+
+_OP_CHECKSEQUENCEVERIFY_ o CSV dipende da un nuovo tipo di "relative locktime", che è impostato nel campo _nSequence_ della transazione. Come di consueto, può essere impostato come tempo o come altezza del blocco. Se è impostato come tempo, "n", allora una transazione bloccata nel tempo relativa è spendibile "n x 512" secondi dopo che il suo UTXO è stato minato, e se è impostato come blocco, "n", allora una transazione bloccata nel tempo relativa è spendibile "n" blocchi dopo che il suo UTXO è stato minato.
+
+L'uso di `nSequence` per un timelock relativo è stato dettagliato per la prima volta in [BIP 68](https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki), poi l'opcode CSV è stato aggiunto in [BIP 112](https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki).
+
+## Riepilogo: Comprendere le Opzioni di Timelock
+
+Ora hai quattro opzioni per Timelock:
+
+* `nLockTime` per tenere una transazione fuori dalla blockchain fino a un momento specifico.
+* `nSequence` per tenere una transazione fuori dalla blockchain fino a un tempo relativo.
+* CLTV per rendere un UTXO non spendibile fino a un momento specifico.
+* CSV per rendere un UTXO non spendibile fino a un tempo relativo.
+
+## Cosa Succede Dopo?
+
+Continua a "Potenziare Timelock" nel [Capitolo 11.2: Usare CLTV negli Scripts](11_2_Usare_CLTV_negli_Scripts.md).
diff --git a/it/11_2_Usare_CLTV_negli_Scripts.md b/it/11_2_Usare_CLTV_negli_Scripts.md
new file mode 100644
index 000000000..d06c0d6ee
--- /dev/null
+++ b/it/11_2_Usare_CLTV_negli_Scripts.md
@@ -0,0 +1,168 @@
+# 11.2: Utilizzo di CLTV negli Script
+
+`OP_CHECKLOCKTIMEVERIFY` (o CLTV) è il complemento naturale di `nLockTime`. Porta l'idea di bloccare le transazioni per un tempo assoluto o altezza di blocco nel regno degli opcode, permettendo il blocco di singoli UTXO.
+
+> :warning: **AVVISO VERSIONE:** CLTV è diventato disponibile con Bitcoin Core 0.11.2, ma dovrebbe essere abbastanza ampiamente distribuito a questo punto.
+
+## Ricorda nLockTime
+
+Prima di approfondire CLTV, dovremmo prima ricordare come funziona `nLockTime`.
+
+Come dettagliato in [§8.1: Invio di una Transazione con un Locktime](08_1_Sending_a_Transaction_with_a_Locktime.md), il locktime è abilitato impostando due variabili, `nLockTime` e `nSequence`. Il `nSequence` deve essere impostato a meno di 0xffffffff (di solito: 0xffffffff-1), poi il `nLockTime` è interpretato come segue:
+
+* Se il `nLockTime` è inferiore a 500 milioni, è interpretato come altezza di blocco.
+* Se il `nLockTime` è 500 milioni o più, è interpretato come un timestamp UNIX.
+
+Una transazione con `nLockTime` impostato non può essere spesa (o anche inserita nella blockchain) fino a quando non viene raggiunta l'altezza del blocco o il tempo. Nel frattempo, la transazione può essere annullata spendendo nuovamente uno qualsiasi degli UTXO che compongono la transazione.
+
+## Comprendere l'Opcode CLTV
+
+`OP_CHECKLOCKTIMEVERIFY` funziona nello stesso paradigma delle altezze di blocco assolute o dei tempi UNIX assoluti, ma viene eseguito come parte di uno Script Bitcoin. Legge un argomento, che può essere un'altezza di blocco o un tempo UNIX assoluto. Attraverso una metodologia alquanto complicata, confronta quell'argomento con il tempo corrente. Se è troppo presto, lo script fallisce; se la condizione temporale è stata soddisfatta, lo script continua.
+
+Poiché CLTV è solo parte di uno script (e presumibilmente parte di una transazione P2SH), una transazione CLTV non è tenuta fuori dalla mempool come una transazione `nLockTime`; non appena viene verificata, entra nella blockchain e i fondi sono considerati spesi. Il trucco è che tutti gli output bloccati con il CLTV non sono disponibili per _spendere nuovamente_ fino a quando il CLTV non lo consente.
+
+### Comprendere un Tempo Assoluto CLTV
+
+Ecco come `OP_CHECKLOCKTIMEVERIFY` sarebbe usato per verificare contro il 24 maggio 2017:
+
+```
+1495652013 OP_CHECKLOCKTIMEVERIFY
+```
+Ma di solito lo rappresenteremo in un'astrazione così:
+```
+ OP_CHECKLOCKTIMEVERIFY
+```
+O cosi:
+```
+ OP_CHECKLOCKTIMEVERIFY
+```
+
+
+### Comprendere un'Altezza di Blocco Assoluta CLTV
+
+Ecco come `OP_CHECKLOCKTIMEVERIFY` verificherebbe contro un'altezza di blocco raggiunta il 24 maggio 2017:
+
+```
+467951 OP_CHECKLOCKTIMEVERIFY
+```
+
+Ma di solito lo astrarremo così:
+
+```
+ OP_CHECKLOCKTIMEVERIFY
+```
+
+
+### Comprendere Come Funziona Davvero CLTV
+
+La spiegazione sopra è sufficiente per usare e comprendere CLTV. Tuttavia, [BIP 65](https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki) espone tutti i dettagli.
+
+Uno script di blocco permetterà di spendere nuovamente un UTXO bloccato con un CLTV solo se `OP_CHECKLOCKTIMEVERIFY` verifica tutte le seguenti condizioni:
+
+* Il campo `nSequence` deve essere impostato a meno di 0xffffffff, di solito 0xffffffff-1 per evitare conflitti con i timelock relativi.
+* CLTV deve estrarre un operando dallo stack e deve essere 0 o maggiore.
+* Sia l'operando dello stack che il valore di `nLockTime` devono essere sopra o sotto i 500 milioni, per rappresentare lo stesso tipo di timelock assoluto.
+* Il valore di `nLockTime` deve essere maggiore o uguale all'operando dello stack.
+
+Quindi la prima cosa da notare qui è che `nLockTime` è ancora usato con CLTV. Per essere precisi, è richiesto nella transazione che cerca di _spendere nuovamente_ un UTXO bloccato con CLTV. Ciò significa che non fa parte dei requisiti dello script. È solo il timer usato per rilasciare i fondi, _come definito nello script_.
+
+Questo è gestito attraverso una comprensione intelligente di come funziona `nLockTime`: un valore per `nLockTime` deve sempre essere scelto che sia inferiore o uguale al tempo presente (o altezza del blocco), in modo che la transazione di spesa possa essere inserita nella blockchain. Tuttavia, a causa dei requisiti di CLTV, deve anche essere scelto un valore maggiore o uguale all'operando di CLTV. L'unione di questi due insiemi è `NULL` fino a quando il tempo presente non corrisponde all'operando di CLTV. Successivamente, può essere scelto qualsiasi valore tra l'operando di CLTV e il tempo presente. Di solito, lo imposteresti semplicemente al tempo presente (o al blocco).
+
+## Scrivere uno Script CLTV
+
+`OP_CHECKLOCKTIMEVERIFY` include un `OP_VERIFY`, il che significa che interromperà immediatamente lo script se la sua verifica non riesce. Ha un'altra peculiarità: a differenza della maggior parte dei comandi "verify", lascia ciò che sta testando sullo stack (nel caso in cui tu voglia fare altri controlli contro il tempo). Ciò significa che un `OP_CHECKLOCKTIMEVERIFY` è di solito seguito da un `OP_DROP` per pulire lo stack.
+
+Il seguente semplice script di blocco potrebbe essere usato per trasformare un output P2PKH in una transazione P2PKH bloccata nel tempo:
+
+```
+ OP_CHECKLOCKTIMEVERIFY OP_DROP OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
+```
+
+
+### Codificare uno Script CLTV
+
+Ovviamente, come per qualsiasi script Bitcoin complesso, questo script CLTV sarebbe effettivamente codificato in uno script P2SH, come spiegato in [§10.1: Comprendere le Basi di P2SH](10_1_Understanding_the_Foundation_of_P2SH.md) e [§10.2: Costruire la Struttura di P2SH](10_2_Building_the_Structure_of_P2SH.md).
+
+Supponendo che `` fosse l'intero "1546288031" (hex little-endian: 0x9f7b2a5c) e `` fosse "371c20fb2e9899338ce5e99908e64fd30b789313", questo `redeemScript` sarebbe costruito come:
+
+```
+OP_PUSHDATA (4 bytes) 0x9f7b2a5c OP_CHECKLOCKTIMEVERIFY OP_DROP OP_DUP OP_HASH160 OP_PUSHDATA (20 bytes) 0x371c20fb2e9899338ce5e99908e64fd30b789313 OP_EQUALVERIFY OP_CHECKSIG
+```
+Che si traduce in hex come:
+```
+04 9f7b2a5c b1 75 76 a9 14 371c20fb2e9899338ce5e99908e64fd30b789313 88 ac
+```
+Oppure, se preferisci:
+```
+$ btcc 0x9f7b2a5c OP_CHECKLOCKTIMEVERIFY OP_DROP OP_DUP OP_HASH160 0x371c20fb2e9899338ce5e99908e64fd30b789313 OP_EQUALVERIFY OP_CHECKSIG
+049f7b2a5cb17576a914371c20fb2e9899338ce5e99908e64fd30b78931388ac
+```
+L'RPC `decodescript` può verificare che abbiamo fatto tutto correttamente:
+```
+{
+ "asm": "1546288031 OP_CHECKLOCKTIMEVERIFY OP_DROP OP_DUP OP_HASH160 371c20fb2e9899338ce5e99908e64fd30b789313 OP_EQUALVERIFY OP_CHECKSIG",
+ "type": "nonstandard",
+ "p2sh": "2MxANZMPo1b2jGaeKTv9rwcBEiXcXYCc3x9",
+ "segwit": {
+ "asm": "0 07e55bf1eaedf43ec52af57b77ad7330506c209a70d17fa2e1853304aa8e4e5b",
+ "hex": "002007e55bf1eaedf43ec52af57b77ad7330506c209a70d17fa2e1853304aa8e4e5b",
+ "reqSigs": 1,
+ "type": "witness_v0_scripthash",
+ "addresses": [
+ "tb1qqlj4hu02ah6ra3f274ah0ttnxpgxcgy6wrghlghps5esf25wfedse4yw4w"
+ ],
+ "p2sh-segwit": "2N4HTwMjVdm38bdaQ5h3X3VktLY74D2qBoK"
+ }
+}
+```
+
+
+Non mostreremo continuamente come tutti gli Script Bitcoin vengono codificati in transazioni P2SH, ma offriremo invece queste abbreviazioni: quando descriviamo uno script, sarà un `redeemScript`, che sarebbe normalmente serializzato e hashato in uno script di blocco e serializzato nello script di sblocco; quando mostriamo una procedura di sblocco, sarà il secondo turno di convalida, dopo la conferma dell'hash dello script di blocco.
+
+## Spendere un UTXO CLTV
+
+Per spendere un UTXO bloccato con un CLTV, è necessario impostare `nLockTime` sulla nuova transazione. Di solito, vuoi solo impostarlo al tempo presente o al blocco presente, come appropriato. Finché il tempo CLTV o l'altezza del blocco è nel passato, e finché fornisci tutti gli altri dati richiesti dallo script di sblocco, sarai in grado di elaborare l'UTXO.
+
+Nel caso dell'esempio sopra, il seguente script di sblocco sarebbe sufficiente, a condizione che `nLockTime` fosse impostato a un momento successivo alla data ``, e a condizione che fosse effettivamente almeno ``:
+
+```
+
+```
+
+
+### Eseguire uno Script CLTV
+
+Per eseguire lo Script, dovresti prima concatenare gli script di sblocco e blocco:
+
+```
+Script: OP_CHECKLOCKTIMEVERIFY OP_DROP OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
+Stack: [ ]
+```
+I tre costanti verrebbero spinti nello stack:
+```
+Script: OP_CHECKLOCKTIMEVERIFY OP_DROP OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
+Stack: [ ]
+```
+Poi, `OP_CHECKLOCKTIMEVERIFY` viene eseguito. Trova qualcosa nello stack e verifica che `nSequence` non sia 0xffffffff. Infine, confronta `` con `nLockTime`. Se sono entrambi dello stesso tipo di rappresentazione e se `nLockTime ≥ `, allora viene elaborato con successo (altrimenti, termina lo script):
+```
+Script: OP_DROP OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
+Running: OP_CHECKLOCKTIMEVERIFY
+Stack: [ ]
+```
+Poi, `OP_DROP` elimina quel `` rimasto:
+```
+Script: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
+Running: OP_DROP
+Stack: [ ]
+```
+FInfine, il resto dello script viene eseguito, che è un controllo normale di una firma e una chiave pubblica.
+
+## Riepilogo: Utilizzo di CLTV negli Script
+
+`OP_CHECKLOCKTIMEVERIFY` è un semplice opcode che guarda un singolo argomento, lo interpreta come un'altezza di blocco o un timestamp UNIX, e permette solo che il suo UTXO venga sbloccato se quell'altezza di blocco o timestamp UNIX è nel passato. Impostare `nLockTime` sulla transazione di spesa è ciò che permette a Bitcoin di fare questo calcolo.
+
+> :fire: ***Qual è il Potere di CLTV?*** Hai già visto che i semplici locktime erano una delle basi dei Contratti Intelligenti. CLTV fa il passo successivo. Ora puoi sia garantire che un UTXO non possa essere speso prima di un certo momento _sia_ garantire che non venga speso diversamente. Nella sua forma più semplice, questo potrebbe essere usato per creare un trust che qualcuno potrebbe accedere solo quando raggiunge i 18 anni o un fondo pensione che potrebbe essere accessibile solo quando compie 50 anni. Tuttavia, il suo vero potere si manifesta quando combinato con i condizionali, dove il CLTV si attiva solo in determinate situazioni.
+
+## Cosa Succede Dopo?
+
+Continua a "Potenziare Timelock" col [Capitolo 11.3: Usare CSV negli Scripts](11_3_Usare_CSV_negli_Scripts.md).
diff --git a/it/11_3_Usare_CSV_negli_Scripts.md b/it/11_3_Usare_CSV_negli_Scripts.md
new file mode 100644
index 000000000..f8459d9eb
--- /dev/null
+++ b/it/11_3_Usare_CSV_negli_Scripts.md
@@ -0,0 +1,151 @@
+# 11.3: Utilizzo di CSV negli Script
+
+`nLockTime` e `OP_CHECKLOCKTIMEVERIFY` (o CLTV) sono solo una faccia dell'equazione del timelock. Dall'altra parte ci sono `nSequence` e `OP_CHECKSEQUENCEVERIFY`, che possono essere utilizzati per controllare i tempi relativi piuttosto che i tempi assoluti.
+
+> :warning: **AVVISO VERSIONE:** CSV è diventato disponibile con Bitcoin Core 0.12.1, nella primavera del 2016.
+
+## Comprendere nSequence
+
+Ogni input in una transazione ha un valore `nSequence` (o se preferisci `sequence`). È stato uno strumento primario per le espansioni di Bitcoin come discusso in precedenza nel [Capitolo 5.2 Rinviare le Transazioni con RBF](05_2_Rinviare_le_Transazioni_con_RBF.md) e nel [Capitolo 8.1 Inviare una Transazione con Blocco temporale](08_1_Inviare_una_Transazione_con_Blocco_temporale.md), dove è stato utilizzato per segnalare RBF e `nLockTime`, rispettivamente. Tuttavia, c'è un altro uso per `nSequence`, descritto da [BIP 68](https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki): puoi usarlo per creare un timelock relativo su una transazione.
+
+Un timelock relativo è un blocco che viene posto su un input specifico di una transazione e che viene calcolato in relazione alla data di mining dell'UTXO utilizzato nell'input. Ad esempio, se un UTXO è stato minato al blocco #468260 e una transazione è stata creata dove l'input per quell'UTXO è stato dato un `nSequence` di 100, allora la nuova transazione non potrebbe essere minata fino almeno al blocco #468360.
+
+Facile!
+
+> :information_source: **NOTA — SEQUENCE:** Questo è il terzo utilizzo del valore `nSequence` in Bitcoin. Qualsiasi valore `nSequence` senza il 32° bit impostato (1<<31), quindi da 0x00000001 a 0x7ffffffff, sarà interpretato come un timelock relativo se `nVersion ≥ 2` (che è il valore predefinito a partire da Bitcoin Core 0.14.0). Dovresti fare attenzione per garantire che i timelock relativi non confliggano con gli altri due usi di `nSequence`, per segnalare `nTimeLock` e RBF. `nTimeLock` di solito imposta un valore di 0xffffffff-1, dove un timelock relativo è disattivato; e RBF di solito imposta un valore di "1", dove un timelock relativo è irrilevante, perché definisce un timelock di 1 blocco.
+
+> In generale, ricorda: con un valore `nVersion` di 2, un valore `nSequence` da 0x00000001 a 0x7fffffff consente timelock relativi, RBF e `nTimeLock`; un valore `nSequence` da 0x7fffffff a 0xffffffff-2 consente RBF e `nTimeLock`; un valore `nSequence` di 0xffffffff-1 consente solo `nTimeLock`; un valore `nSequence` di 0xffffffff non consente nessuno; e `nVersion` può essere impostato a 1 per disabilitare i timelock relativi per qualsiasi valore di `nSequence`. Uff!
+
+### Creare un Tempo Relativo a Blocchi CSV
+
+Il formato per utilizzare `nSequence` per rappresentare i timelock relativi è definito in [BIP 68](https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki) ed è leggermente più complesso del semplice inserimento di un numero, come hai fatto per `nTimeLock`. Invece, le specifiche BIP dividono il numero a quattro byte in tre parti:
+
+* I primi due byte vengono utilizzati per specificare un locktime relativo.
+* Il 23° bit viene utilizzato per segnalare positivamente se il lock si riferisce a un tempo anziché a un'altezza di blocco.
+* Il 32° bit viene utilizzato per segnalare positivamente se i timelock relativi sono disattivati.
+
+Detto ciò, la costruzione di un timelock relativo basato su blocchi è ancora abbastanza semplice, perché i due bit segnalati sono impostati a `0`, quindi imposti semplicemente `nSequence` a un valore tra 1 e 0xffff (65535). La nuova transazione può essere minata quel numero di blocchi dopo che l'UTXO associato è stato minato.
+
+### Creare un Tempo Relativo CSV
+
+Puoi invece impostare `nSequence` come un tempo relativo, dove il lock dura per 512 secondi moltiplicato per il valore di `nSequence`.
+
+Per fare ciò:
+
+1. Decidi quanto in avanti impostare il tuo timelock relativo.
+2. Converti quel tempo in secondi.
+3. Dividi per 512.
+4. Arrotonda quel valore in su o in giù e impostalo come `nSequence`.
+5. Imposta il 23° bit a true.
+
+Per impostare un tempo 6 mesi nel futuro, devi prima calcolare come segue:
+```
+$ seconds=$((6*30*24*60*60))
+$ nvalue=$(($seconds/512))
+```
+Poi, trasformalo in hex:
+```
+$ hexvalue=$(printf '%x\n' $nvalue)
+```
+Infine, esegui un'operazione bitwise-or sul 23° bit nel valore hex che hai creato:
+```
+$ relativevalue=$(printf '%x\n' $((0x$hexvalue | 0x400000)))
+$ echo $relativevalue
+4224679
+```
+Se converti nuovamente, vedrai che 4224679 = 10000000111011010100111. Il 23° bit è impostato a "1"; nel frattempo, i primi 2 byte, 0111011010100111, si convertono in 76A7 in hex o 30375 in decimale. Moltiplicalo per 512 e ottieni 15,55 milioni di secondi, che sono effettivamente 180 giorni.
+
+## Creare una Transazione con un Timelock Relativo
+
+Quindi vuoi creare una semplice transazione con un timelock relativo? Tutto ciò che devi fare è emettere una transazione dove il `nSequence` in un input è impostato come mostrato sopra: con il `nSequence` per quell'input impostato in modo che i primi due byte definiscano il timelock, il 23° bit definisca il tipo di timelock e il 32° bit sia impostato a falso.
+
+Emetti la transazione e vedrai che non può essere legalmente minata fino a quando non saranno passati abbastanza blocchi o abbastanza tempo oltre il momento in cui l'UTXO è stato minato.
+
+Tranne che praticamente nessuno lo fa. Le definizioni di [BIP 68](https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki) per `nSequence` sono state incorporate in Bitcoin Core allo stesso tempo di [BIP 112](https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki), che descrive l'opcode CSV, l'equivalente di `nSequence` dell'opcode CLTV. Proprio come CLTV, CSV offre capacità aumentate. Quindi, quasi tutto l'uso dei timelock relativi è stato con l'opcode CSV, non con il valore grezzo `nSequence` da solo.
+
+| | Timelock Assoluto | Timelock Relativo |
+|:--------------------:|-------------------|-------------------|
+| **Blocco Transazione** | nTimeLock | nSequence |
+| **Blocco Output** | OP_CHECKLOCKTIMEVERIFY| OP_CHECKSEQUENCEVERIFY |
+
+## Comprendere l'Opcode CSV
+
+`OP_SEQUENCEVERIFY` negli Script Bitcoin funziona praticamente come `OP_LOCKTIMEVERIFY`.
+
+Potresti richiedere che un UTXO sia mantenuto per cento blocchi dopo il suo mining:
+
+```
+100 OP_CHECKSEQUENCEVERIFY
+```
+Oppure potresti fare un calcolo più complesso per richiedere che un UTXO sia mantenuto per sei mesi, nel qual caso finirai con un numero più complesso:
+```
+4224679 OP_CHECKSEQUENCEVERIFY
+```
+In questo caso useremo una scorciatoia:
+```
+<+6Months> OP_CHECKSEQUENCEVERIFY
+```
+> :warning: **AVVISO:** Ricorda che un timelock relativo è un intervallo di tempo dal mining dell'UTXO utilizzato come input. Non è un intervallo di tempo dopo che crei la transazione. Se utilizzi un UTXO che è già stato confermato cento volte e applichi un timelock relativo di 100 blocchi, sarà idoneo per il mining immediatamente. I timelock relativi hanno alcuni usi molto specifici, ma probabilmente non si applicano se il tuo unico obiettivo è determinare un tempo specifico nel futuro.
+
+### Comprendere Come Funziona Davvero CSV
+
+CSV ha molte delle stesse sottigliezze nell'uso di CLTV:
+
+* Il campo `nVersion` deve essere impostato a 2 o più.
+* Il campo `nSequence` deve essere impostato a meno di 0x80000000.
+* Quando CSV viene eseguito, ci deve essere un operando sullo stack che sia compreso tra 0 e 0xf0000000-1.
+* Sia l'operando dello stack che `nSequence` devono avere lo stesso valore nel 23° bit.
+* Il `nSequence` deve essere maggiore o uguale all'operando dello stack.
+
+Proprio come con CLTV, quando stai spendendo nuovamente un UTXO con un CSV nelle sue condizioni di blocco, devi impostare `nSequence` per abilitare la transazione. Di solito lo imposterai al valore esatto nello script di blocco.
+
+## Scrivere uno Script CSV
+
+Proprio come `OP_CHECKLOCKTIMEVERIFY`, `OP_CHECKSEQUENCEVERIFY` include un implicito `OP_VERIFY` e lascia i suoi argomenti sullo stack, richiedendo un `OP_DROP` quando hai finito.
+
+Uno script che bloccherebbe i fondi fino a sei mesi dopo il mining dell'input e che richiederebbe quindi una firma in stile P2PKH standard sarebbe il seguente:
+```
+<+6Months> OP_CHECKSEQUENCEVERIFY OP_DROP OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
+```
+
+#
+### Codificare uno Script CSV
+
+Quando codifichi uno script CSV, fai attenzione a come codifichi il valore intero per il timelock relativo. Dovrebbe essere passato come un intero a 3 byte, il che significa che stai ignorando il byte superiore, che potrebbe disattivare il timelock relativo. Poiché è un intero, assicurati di convertirlo in little-endian.
+
+Questo può essere fatto con lo script `integer2lehex.sh` dalla capitolo precedente.
+
+Per un tempo relativo di 100 blocchi:
+```
+$ ./integer2lehex.sh 100
+Integer: 100
+LE Hex: 64
+Length: 1 bytes
+Hexcode: 0164
+```
+Anche se dovrebbe essere completato a `000064`, richiedendo un codice di `03000064`.
+
+Per un tempo relativo di 6 mesi:
+
+```
+$ ./integer2lehex.sh 4224679
+Integer: 4224679
+LE Hex: a77640
+Length: 3 bytes
+Hexcode: 03a77640
+```
+
+
+## Spendere un UTXO CSV
+
+Per spendere un UTXO bloccato con uno script CSV, devi impostare il `nSequence` di quell'input a un valore maggiore del requisito nello script, ma inferiore al tempo tra l'UTXO e il blocco presente. Sì, questo significa che devi conoscere il requisito esatto nello script di blocco... ma hai una copia del `redeemScript`, quindi se non conosci i requisiti, lo deserializzi e poi imposti il `nSequence` al numero mostrato lì.
+
+## Riepilogo: Utilizzo di CSV negli Script
+
+`nSequence` e CSV offrono un'alternativa a `nLockTime` e CLTV dove blocchi una transazione basata su un tempo relativo da quando l'input è stato minato, anziché basare il blocco su un tempo stabilito nel futuro. Funzionano quasi in modo identico, a parte il fatto che il valore `nSequence` è codificato in modo leggermente diverso dal valore `nLockTime`, con bit specifici che significano cose specifiche.
+
+> :fire: ***Qual è il potere di CSV?*** CSV non è solo un modo pigro per bloccare, quando non vuoi calcolare un tempo nel futuro. Invece, è un paradigma totalmente diverso, un blocco che useresti se fosse importante creare una durata minima specifica tra quando una transazione è minata e quando i suoi fondi possono essere spesi nuovamente. L'uso più ovvio è (ancora una volta) per un escrow, quando vuoi un tempo preciso tra l'input dei fondi e il loro output. Tuttavia, ha possibilità molto più potenti nelle transazioni off-chain, inclusi i canali di pagamento. Queste applicazioni sono per definizione basate su transazioni che non sono effettivamente inserite nella blockchain, il che significa che se sono successivamente inserite nella blockchain, un intervallo di tempo forzato può essere molto utile. [Contratti Hashed Timelock](https://en.bitcoin.it/wiki/Hashed_Timelock_Contracts) sono stati una di queste implementazioni, potenziando la rete di pagamenti Lightning. Sono discussi nel[Capitolo 13.3: Potenziare Bitcoin con Scripts](13_3_Potenziare_Bitcoin_con_Scripts.md).
+
+## Cosa Succede Dopo?
+
+Avanza attraverso "Bitcoin Scripting" col [Capitolo 12: Ampliando Scripts di Bitcoin](12_0_Ampliando_Scripts_di_Bitcoin.md).
diff --git a/it/12_0_Ampliando_Scripts_di_Bitcoin.md b/it/12_0_Ampliando_Scripts_di_Bitcoin.md
new file mode 100644
index 000000000..cb305f65e
--- /dev/null
+++ b/it/12_0_Ampliando_Scripts_di_Bitcoin.md
@@ -0,0 +1,20 @@
+# Capitolo 12: Espandere gli Script Bitcoin
+
+C'è ancora un po' da scoprire sugli Script Bitcoin. I condizionali ti danno pieno accesso al controllo del flusso, mentre una varietà di altri opcode può espandere le tue possibilità.
+
+## Obiettivi per Questo Capitolo
+
+Dopo aver lavorato su questo capitolo, uno sviluppatore sarà in grado di:
+
+ * Decidere Come Usare i Condizionali negli Script
+ * Decidere Come Usare Altri Opcode degli Script
+
+Gli obiettivi di supporto includono la capacità di:
+
+ * Comprendere l'Intera Gamma di Possibilità degli Script
+ * Identificare Come Imparare di Più sugli Opcode
+
+## Indice dei Contenuti
+
+* [Capitolo 12.1 Usare Script Condizionati](12_1_Usare_Script_Condizionati.md)
+* [Capitolo 12.2 Usare Altri Comandi di Scripting](12_2_Usare_Altri_Comandi_di_Scripting.md)
diff --git a/it/12_1_Usare_Script_Condizionati.md b/it/12_1_Usare_Script_Condizionati.md
new file mode 100644
index 000000000..941c80e46
--- /dev/null
+++ b/it/12_1_Usare_Script_Condizionati.md
@@ -0,0 +1,204 @@
+# 12.1: Utilizzo dei Condizionali negli Script
+
+C'è un ultimo aspetto degli Script Bitcoin che è cruciale per sbloccare il loro vero potere: i condizionali ti permettono di creare vari percorsi di esecuzione.
+
+## Comprendere Verify
+
+Hai già visto un condizionale negli script: `OP_VERIFY` (0x69). Estrae l'elemento in cima allo stack e verifica se è vero; in caso contrario _termina l'esecuzione dello script_.
+
+Verify è solitamente incorporato in altri opcode. Hai già visto `OP_EQUALVERIFY` (0xad), `OP_CHECKLOCKTIMEVERIFY` (0xb1) e `OP_CHECKSEQUENCEVERIFY` (0xb2). Ciascuno di questi opcode esegue la sua azione principale (equal, checklocktime o checksequence) e poi esegue un verify successivamente. Gli altri opcode verify che non hai visto sono: `OP_NUMEQUALVERIFY` (0x9d), `OP_CHECKSIGVERIFY` (0xad) e `OP_CHECKMULTISIGVERIFY` (0xaf).
+
+Quindi come è `OP_VERIFY` un condizionale? È il tipo più potente di condizionale. Usando `OP_VERIFY`, _se_ una condizione è vera, lo Script continua l'esecuzione, _altrimenti_ lo Script termina. Questo è il modo in cui controlli le condizioni che sono assolutamente necessarie affinché uno Script abbia successo. Ad esempio, lo script P2PKH (`OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG`) ha due condizioni richieste: (1) che la chiave pubblica fornita corrisponda all'hash della chiave pubblica; e (2) che la firma fornita corrisponda a quella chiave pubblica. Un `OP_EQUALVERIFY` è usato per il confronto dell'hash della chiave pubblica perché è una condizione assolutamente necessaria. Non vuoi che lo script continui se ciò fallisce.
+
+Potresti notare che non c'è `OP_VERIFY` alla fine di questo (o della maggior parte degli) script, nonostante la condizione finale sia richiesta. Questo perché Bitcoin effettua effettivamente un `OP_VERIFY` alla fine di ogni Script, per garantire che il risultato finale dello stack sia vero. Non vuoi fare un `OP_VERIFY` prima della fine dello script, perché devi lasciare qualcosa nello stack da verificare!
+
+## Comprendere If/Then
+
+L'altro principale condizionale in Bitcoin Script è il classico `OP_IF` (0x63) / `OP_ELSE` (0x67) / `OP_ENDIF` (0x68). Questo è il controllo di flusso tipico: se `OP_IF` rileva una dichiarazione vera, esegue il blocco sotto di esso; altrimenti, se c'è un `OP_ELSE`, esegue quello; e `OP_ENDIF` segna la fine del blocco finale.
+
+> :warning: **ATTENZIONE:** Questi condizionali sono tecnicamente anche opcode, ma come per i numeri piccoli, lasceremo il prefisso `OP_` per brevità e chiarezza. Quindi scriveremo `IF`, `ELSE` e `ENDIF` invece di `OP_IF`, `OP_ELSE` e `OP_ENDIF`.
+
+### Comprendere l'Ordine di If/Then
+
+Ci sono due grandi problemi nei condizionali. Rendono più difficile leggere e valutare gli script se non stai attento.
+
+Primo, il condizionale `IF` controlla la verità di ciò che è _prima di esso_ (cioè ciò che è nello stack), non ciò che è dopo di esso.
+
+Secondo, il condizionale `IF` tende a essere nello script di blocco e ciò che sta controllando tende a essere nello script di sblocco.
+
+Certo, potresti dire, è così che funziona Bitcoin Script. I condizionali usano la notazione polacca inversa e adottano il paradigma standard di sblocco/blocco, proprio come _tutto il resto_ nel Bitcoin Scripting. Tutto ciò è vero, ma va anche contro il modo standard in cui leggiamo i condizionali IF/ELSE in altri linguaggi di programmazione; quindi, è facile leggere inconsciamente i condizionali Bitcoin in modo errato.
+
+Considera il seguente codice: `IF OP_DUP OP_HASH160 ELSE OP_DUP OP_HASH160 ENDIF OP_EQUALVERIFY OP_CHECKSIG`.
+
+Guardando i condizionali in notazione prefissa potresti leggere questo come::
+```
+IF (OP_DUP) THEN
+ OP_HASH160
+ OP_PUSHDATA
+ELSE
+ OP_DUP
+ OP_HASH160
+ OP_PUSHDATA
+ENDIF
+ OP_EQUALVERIFY
+ OP_CHECKSIG
+```
+Quindi, potresti pensare, se `OP_DUP` ha successo, allora eseguiamo il primo blocco, altrimenti il secondo. Ma ciò non ha senso! Perché `OP_DUP` non dovrebbe avere successo?!
+
+E, infatti, non ha senso, perché abbiamo letto accidentalmente l'affermazione usando la notazione sbagliata. La lettura corretta di questo è:
+
+```
+IF
+ OP_DUP
+ OP_HASH160
+ OP_PUSHDATA
+ELSE
+ OP_DUP
+ OP_HASH160
+ OP_PUSHDATA
+ENDIF
+ OP_EQUALVERIFY
+ OP_CHECKSIG
+```
+L'affermazione che sarà valutata come `True` o `False` è posta nello stack _prima_ di eseguire l'`IF`, quindi il blocco di codice corretto viene eseguito in base a quel risultato.
+
+Questo esempio di codice è inteso come una multisignature 1-di-2 di basso livello. Il proprietario di `` metterebbe ` True` nel suo script di sblocco, mentre il proprietario di `` metterebbe ` False` nel suo script di sblocco. Quel `True` o `False` finale è ciò che viene controllato dall'istruzione `IF`/`ELSE`. Dice allo script quale hash della chiave pubblica controllare, quindi `OP_EQUALVERIFY` e `OP_CHECKSIG` alla fine fanno il lavoro reale.
+
+### Eseguire una Multisig If/Then
+
+Con una comprensione di base dei condizionali Bitcoin, siamo ora pronti a eseguire uno script. Creeremo una leggera variante della nostra multisignature 1-di-2 di basso livello dove i nostri utenti non devono ricordare se sono `True` o `False`. Invece, se necessario, lo script controlla entrambi gli hash delle chiavi pubbliche, richiedendo solo un successo:
+
+```
+OP_DUP OP_HASH160 OP_EQUAL
+IF
+ OP_CHECKSIG
+ELSE
+ OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
+ENDIF
+```
+Ricorda la notazione polacca inversa! Quell'istruzione `IF` si riferisce all'`OP_EQUAL` prima di essa, non all'`OP_CHECKSIG` dopo di essa!
+
+#### Eseguire il Ramo True
+
+Ecco come funziona effettivamente se sbloccato con ` `:
+
+```
+Script: OP_DUP OP_HASH160 OP_EQUAL IF OP_CHECKSIG ELSE OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG ENDIF
+Stack: [ ]
+```
+Per prima cosa, mettiamo le costanti nello stack:
+
+```
+Script: OP_DUP OP_HASH160 OP_EQUAL IF OP_CHECKSIG ELSE OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG ENDIF
+Stack: [ ]
+```
+Poi eseguiamo i primi comandi ovvi, `OP_DUP` e `OP_HASH160`, e mettiamo un'altra costante:
+
+```
+Script: OP_HASH160 OP_EQUAL IF OP_CHECKSIG ELSE OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG ENDIF
+Running: OP_DUP
+Stack: [ ]
+
+Script: OP_EQUAL IF OP_CHECKSIG ELSE OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG ENDIF
+Running: OP_HASH160
+Stack: [ ]
+
+Script: OP_EQUAL IF OP_CHECKSIG ELSE OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG ENDIF
+Stack: [ ]
+```
+Successivamente, eseguiamo l'`OP_EQUAL`, che è ciò che alimenterà l'`IF`:
+```
+Script: IF OP_CHECKSIG ELSE OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG ENDIF
+Running: OP_EQUAL
+Stack: [ True ]
+```
+Ora l'`IF` viene eseguito e, poiché c'è un `True`, esegue solo il primo blocco, eliminando tutto il resto:
+```
+Script: OP_CHECKSIG
+Running: True IF
+Stack: [ ]
+```
+E l'`OP_CHECKSIG` risulterà `True`:
+```
+Script:
+Running: OP_CHECKSIG
+Stack: [ True ]
+```
+##### Eseguire il Ramo False
+
+Ecco come funziona effettivamente se sbloccato con ` `:
+
+```
+Script: OP_DUP OP_HASH160 OP_EQUAL IF OP_CHECKSIG ELSE OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG ENDIF
+Stack: [ ]
+```
+Per prima cosa, mettiamo le costanti nello stack:
+```
+Script: OP_DUP OP_HASH160 OP_EQUAL IF OP_CHECKSIG ELSE OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG ENDIF
+Stack: [ ]
+```
+Poi eseguiamo i primi comandi ovvi, `OP_DUP` e `OP_HASH160`, e mettiamo un'altra costante:
+```
+Script: OP_HASH160 OP_EQUAL IF OP_CHECKSIG ELSE OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG ENDIF
+Running: OP_DUP
+Stack: [ ]
+
+Script: OP_EQUAL IF OP_CHECKSIG ELSE OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG ENDIF
+Running: OP_HASH160
+Stack: [ ]
+
+Script: OP_EQUAL IF OP_CHECKSIG ELSE OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG ENDIF
+Stack: [ ]
+```
+Successivamente, eseguiamo l'`OP_EQUAL`, che è ciò che alimenterà l'`IF`:
+```
+Script: IF OP_CHECKSIG ELSE OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG ENDIF
+Running: OP_EQUAL
+Stack: [ False ]
+```
+Ops! Il risultato è stato `False` perché `` non è uguale a ``. Ora quando l'`IF` viene eseguito, si riduce solo all'istruzione `ELSE`:
+```
+Script: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
+Running: False IF
+Stack: [ ]
+```
+Successivamente, rifacciamo tutto il processo, iniziando con un altro `OP_DUP`, ma alla fine testando contro l'altro `pubKeyHash`:
+```
+Script: OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
+Running: OP_DUP
+Stack: [ ]
+
+Script: OP_EQUALVERIFY OP_CHECKSIG
+Running: OP_HASH160
+Stack: [ ]
+
+Script: OP_EQUALVERIFY OP_CHECKSIG
+Stack: [ ]
+
+Script:OP_CHECKSIG
+Running: OP_EQUALVERIFY
+Stack: [ ]
+
+Script:
+Running: OP_CHECKSIG
+Stack: [ True ]
+```
+TQuesto probabilmente non è altrettanto efficiente come una vera multisignature di Bitcoin, ma è un buon esempio di come i risultati inseriti nello stack dai test precedenti possono essere utilizzati per alimentare i condizionali futuri. In questo caso, è il fallimento della prima firma che dice al condizionale che dovrebbe controllare la seconda.
+
+## Comprendere Altri Condizionali
+
+Ci sono alcuni altri condizionali degni di nota. Il più importante è `OP_NOTIF` (0x64), che è l'opposto di `OP_IF`: esegue il blocco successivo se l'elemento in cima è `False`. Un `ELSE` può essere inserito con esso, che come al solito viene eseguito se il primo blocco non viene eseguito. Si termina ancora con `OP_ENDIF`.
+
+C'è anche un `OP_IFDUP` (0x73), che duplica l'elemento in cima allo stack solo se non è 0.
+
+Queste opzioni sono usate molto meno spesso della costruzione principale `IF`/`ELSE`/`ENDIF`.
+
+## Riepilogo: Utilizzo dei Condizionali negli Script
+
+I condizionali in Bitcoin Script ti permettono di fermare lo script (usando `OP_VERIFY`) o di scegliere diversi rami di esecuzione (usando `OP_IF`). Tuttavia, leggere `OP_IF` può essere un po' complicato. Ricorda che è l'elemento inserito nello stack _prima_ che l'`OP_IF` venga eseguito a controllarne l'esecuzione; quell'elemento sarà tipicamente parte dello script di sblocco (o altrimenti un risultato diretto degli elementi nello script di sblocco).
+
+> :fire: ***Qual è il potere dei condizionali?*** I Condizionali degli Script sono l'ultimo grande blocco costitutivo negli Script Bitcoin. Sono ciò che è necessario per trasformare semplici Script Bitcoin statici in Script Bitcoin complessi e dinamici che possono essere valutati in modo diverso in base a tempi diversi, circostanze diverse o input diversi degli utenti. In altre parole, sono la base finale dei contratti intelligenti.
+
+## Cosa Succede Dopo?
+
+Continua a "Espandere gli Script Bitcoin" col [Capitolo 12.2Usare Altri Comandi di Scripting](12_2_Usare_Altri_Comandi_di_Scripting.md).
diff --git a/it/12_2_Usare_Altri_Comandi_di_Scripting.md b/it/12_2_Usare_Altri_Comandi_di_Scripting.md
new file mode 100644
index 000000000..f37c69659
--- /dev/null
+++ b/it/12_2_Usare_Altri_Comandi_di_Scripting.md
@@ -0,0 +1,85 @@
+# 12.2: Utilizzo di Altri Comandi degli Script
+
+Probabilmente hai già a portata di mano la maggior parte degli opcode di Bitcoin Script che utilizzerai nella maggior parte degli script. Tuttavia, Bitcoin Script offre molte più opzioni, che potrebbero essere esattamente ciò di cui hai bisogno per creare lo strumento finanziario dei tuoi sogni.
+
+Dovresti consultare la [pagina Bitcoin Script](https://en.bitcoin.it/wiki/Script) per uno sguardo più approfondito a tutti questi e molti altri comandi. Questa sezione evidenzia solo gli opcode più notevoli.
+
+## Comprendere gli Opcode Aritmetici
+
+Gli opcode aritmetici manipolano o testano i numeri.
+
+Manipolare un numero:
+
+* OP_1ADD (0x8b) — Incrementa di uno
+* OP_1SUB (0x8c) — Decrementa di uno
+* OP_NEGATE (0x8f) — Inverte il segno del numero
+* OP_ABS (0x90) — Rende il numero positivo
+* OP_NOT (0x91) — Inverte 1 e 0, altrimenti 0
+
+Vedi anche: `OP_0NOTEQUAL` (0x92)
+
+Manipolare due numeri matematicamente:
+
+* OP_ADD (0x93) — Somma due numeri
+* OP_SUB (0x94) — Sottrae due numeri
+* OP_MIN (0xa3) — Restituisce il minore di due numeri
+* OP_MAX (0xa4) — Restituisce il maggiore di due numeri
+
+Manipolare due numeri logicamente:
+
+* OP_BOOLAND (0x9a) — 1 se entrambi i numeri non sono 0, altrimenti 0
+* OP_BOOLOR (0x9b) — 1 se uno dei due numeri non è 0, altrimenti 0
+
+Testare due numeri:
+
+* OP_NUMEQUAL (0x9c) — 1 se entrambi i numeri sono uguali, altrimenti 0
+* OP_LESSTHAN (0x9f) — 1 se il primo numero è minore del secondo, altrimenti 0
+* OP_GREATERTHAN (0xa0) — 1 se il primo numero è maggiore del secondo, altrimenti 0
+* OP_LESSTHANOREQUAL (0xa1) — 1 se il primo numero è minore o uguale al secondo, altrimenti 0
+* OP_GREATERTHANOREQUAL (0xa2) — 1 se il primo numero è maggiore o uguale al secondo, altrimenti 0
+
+Vedi anche: `OP_NUMEQUALVERIFY` (0x9d), `OP_NUMNOTEQUAL` (0x9e)
+
+Testare tre numeri:
+
+* OP_WITHIN (0xa5) — 1 se un numero è nell'intervallo di due altri numeri
+
+## Comprendere gli Opcode dello Stack
+
+Ci sono un numero sorprendente di opcode dello stack, ma a parte `OP_DROP`, `OP_DUP` e talvolta `OP_SWAP`, generalmente non sono necessari se sei attento all'ordinamento dello stack. Tuttavia, ecco alcuni dei più interessanti:
+
+* OP_DEPTH (0x74) — Inserisce la dimensione dello stack
+* OP_DROP (0x75) — Rimuove l'elemento in cima allo stack
+* OP_DUP (0x76) — Duplica l'elemento in cima allo stack
+* OP_PICK (0x79) — Duplica l'elemento n dello stack come cima dello stack
+* OP_ROLL (0x7a) — Sposta l'elemento n dello stack in cima allo stack
+* OP_SWAP (0x7c) — Scambia i primi due elementi dello stack
+
+Vedi anche: `OP_TOALTSTACK` (0x6b), `OP_FROMALTSTACK` (0x6c), `OP_2DROP` (0x6d), `OP_2DUP` (0x6e), `OP_3DUP` (0x6f), `OP_2OVER` (0x70), `OP_2ROT` (0x71), `OP_2SWAP` (0x72), `OP_IFDUP` (0x73), `OP_NIP` (0x77), `OP_OVER` (0x78), `OP_ROT` (0x7b) e `OP_TUCK` (0x7d).
+
+## Comprendere gli Opcode Crittografici
+
+Infine, una varietà di opcode supporta l'hashing e il controllo delle firme:
+
+Hash:
+
+* OP_RIPEMD160 (0xa6) — RIPEMD-160
+* OP_SHA1 (0xa7) — SHA-1
+* OP_SHA256 (0xa8) - SHA-256
+* OP_HASH160 (0xa9) — SHA-256 + RIPEMD-160
+* OP_HASH256 (0xaa) — SHA-256 + SHA-256
+
+Controllo delle Firme:
+
+* OP_CHECKSIG (0xac) — Controlla una firma
+* OP_CHECKMULTISIG (0xae) — Controlla una multisig m-di-n
+
+Vedi anche: `OP_CODESEPARATOR` (0xab), `OP_CHECKSIGVERIFY` (0xad) e `OP_CHECKMULTISIGVERIFY` (0xaf).
+
+## Riepilogo: Utilizzo di Altri Comandi degli Script
+
+Bitcoin Script include una vasta gamma di opcode aritmetici, di stack e crittografici. La maggior parte di questi opcode aggiuntivi probabilmente non è comune come quelli discussi nelle sezioni precedenti, ma sono comunque disponibili se sono esattamente ciò di cui hai bisogno per scrivere il tuo Script!
+
+## Cosa Succede Dopo?
+
+Avanza attraverso "Bitcoin Scripting" col [Capitolo 13: Progettare Scripts di Bitcoin reali](13_0_Progettare_Scripts_di_Bitcoin_reali.md).
diff --git a/it/13_0_Progettare_Scripts_di_Bitcoin_reali.md b/it/13_0_Progettare_Scripts_di_Bitcoin_reali.md
new file mode 100644
index 000000000..d036b0075
--- /dev/null
+++ b/it/13_0_Progettare_Scripts_di_Bitcoin_reali.md
@@ -0,0 +1,20 @@
+# Capitolo 13: Progettare Veri Script Bitcoin
+
+I nostri Script Bitcoin fino ad oggi sono stati in gran parte esempi teorici, perché abbiamo ancora messo insieme i pezzi del puzzle. Ora, con il repertorio completo degli Script Bitcoin a portata di mano, siamo pronti a esplorare diversi Script Bitcoin del mondo reale e vedere come funzionano.
+
+## Obiettivi per Questo Capitolo
+
+Dopo aver lavorato su questo capitolo, uno sviluppatore sarà in grado di:
+
+ * Valutare Script Bitcoin del Mondo Reale
+ * Creare Script Bitcoin del Mondo Reale
+
+Gli obiettivi di supporto includono la capacità di:
+
+ * Comprendere gli Script Bitcoin Esistenti
+ * Comprendere l'Importanza delle Firme
+
+## Indice dei Contenuti
+ * [Capitolo 13.1 Scrivere Scripts Puzzle](13_1_Scrivere_Scripts_Puzzle.md)
+ * [Capitolo 13.2 Scrivere Scripts Multifirma Complessi](13_2_Scrivere_Scripts_Multifirma_Complessi.md)
+ * [Capitolo 13.3 Potenziare Bitcoin con Scripts](13_3_Potenziare_Bitcoin_con_Scripts.md)
diff --git a/it/13_1_Scrivere_Scripts_Enigmatici.md b/it/13_1_Scrivere_Scripts_Enigmatici.md
new file mode 100644
index 000000000..19451c293
--- /dev/null
+++ b/it/13_1_Scrivere_Scripts_Enigmatici.md
@@ -0,0 +1,513 @@
+# 13.1: Scrivere Script Enigmatici
+
+Gli Script Bitcoin _non_ devono necessariamente dipendere dalla conoscenza di una chiave segreta. Possono invece essere enigmi di qualsiasi tipo.
+
+## Scrivere Script di Algebra Semplici
+
+Il nostro primo vero script, dal [Capitolo 9.2: Eseguire uno Script di Bitcoin](009_2_Eseguire_uno_Script_di_Bitcoin.md), era un enigma algebrico. Quello script Bitcoin, `OP_ADD 99 OP_EQUAL`, potrebbe essere descritto alternativamente come `x + y = 99`.
+
+Questo tipo di script non ha molta applicabilità nel mondo reale, poiché è troppo facile rivendicare i fondi. Tuttavia, un concorso di risoluzione di enigmi che distribuisce piccole quantità di Bitcoin potrebbe proporlo come un intrattenimento divertente.
+
+Più precisamente, creare enigmi algebrici ti dà una buona comprensione di come funzionano le funzioni aritmetiche negli script Bitcoin.
+
+### Scrivere uno Script Moltiplicatore
+
+Bitcoin Script ha un certo numero di opcode che sono stati disabilitati per mantenere la sicurezza del sistema. Uno di questi è `OP_MUL`, che avrebbe permesso la moltiplicazione... ma è invece disabilitato.
+
+Quindi, come scriveresti una funzione algebrica come `3x + 7 = 13`?
+
+La risposta più ovvia è `OP_DUP` il numero di input dallo script di blocco due volte. Poi puoi aggiungere `7` e continuare ad aggiungere fino a ottenere il totale. Lo script di blocco completo sarebbe così: `OP_DUP OP_DUP 7 OP_ADD OP_ADD OP_ADD 13 OP_EQUAL`.
+
+Ecco come verrebbe eseguito se eseguito con lo script di sblocco corretto di `2`:
+
+```
+Script: 2 OP_DUP OP_DUP 7 OP_ADD OP_ADD OP_ADD 13 OP_EQUAL
+Stack: [ ]
+
+Script: OP_DUP OP_DUP 7 OP_ADD OP_ADD OP_ADD 13 OP_EQUAL
+Stack: [ 2 ]
+
+Script: OP_DUP 7 OP_ADD OP_ADD OP_ADD 13 OP_EQUAL
+Running: 2 OP_DUP
+Stack: [ 2 2 ]
+
+Script: 7 OP_ADD OP_ADD OP_ADD 13 OP_EQUAL
+Running: 2 OP_DUP
+Stack: [ 2 2 2 ]
+
+Script: OP_ADD OP_ADD OP_ADD 13 OP_EQUAL
+Stack: [ 2 2 2 7 ]
+
+Script: OP_ADD OP_ADD 13 OP_EQUAL
+Running: 2 7 OP_ADD
+Stack: [ 2 2 9 ]
+
+Script: OP_ADD 13 OP_EQUAL
+Running: 2 9 OP_ADD
+Stack: [ 2 11 ]
+
+Script: 13 OP_EQUAL
+Running: 2 11 OP_ADD
+Stack: [ 13 ]
+
+Script: OP_EQUAL
+Stack: [ 13 13 ]
+
+Script:
+Running: 13 13 OP_EQUAL
+Stack: [ True ]
+```
+Oppure se preferisci `btcdeb`:
+```
+$ btcdeb '[2 OP_DUP OP_DUP 7 OP_ADD OP_ADD OP_ADD 13 OP_EQUAL]'
+btcdeb 0.2.19 -- type `btcdeb -h` for start up options
+valid script
+9 op script loaded. type `help` for usage information
+script | stack
+---------+--------
+2 |
+OP_DUP |
+OP_DUP |
+7 |
+OP_ADD |
+OP_ADD |
+OP_ADD |
+13 |
+OP_EQUAL |
+
+#0000 2
+btcdeb> step
+ <> PUSH stack 02
+script | stack
+---------+--------
+OP_DUP | 02
+OP_DUP |
+7 |
+OP_ADD |
+OP_ADD |
+OP_ADD |
+13 |
+OP_EQUAL |
+
+#0001 OP_DUP
+btcdeb> step
+ <> PUSH stack 02
+script | stack
+---------+--------
+OP_DUP | 02
+7 | 02
+OP_ADD |
+OP_ADD |
+OP_ADD |
+13 |
+OP_EQUAL |
+
+#0002 OP_DUP
+btcdeb> step
+ <> PUSH stack 02
+script | stack
+---------+--------
+7 | 02
+OP_ADD | 02
+OP_ADD | 02
+OP_ADD |
+13 |
+OP_EQUAL |
+
+#0003 7
+btcdeb> step
+ <> PUSH stack 07
+script | stack
+---------+--------
+OP_ADD | 07
+OP_ADD | 02
+OP_ADD | 02
+13 | 02
+OP_EQUAL |
+
+#0004 OP_ADD
+btcdeb> step
+ <> POP stack
+ <> POP stack
+ <> PUSH stack 09
+script | stack
+---------+--------
+OP_ADD | 09
+OP_ADD | 02
+13 | 02
+OP_EQUAL |
+
+#0005 OP_ADD
+btcdeb> step
+ <> POP stack
+ <> POP stack
+ <> PUSH stack 0b
+script | stack
+---------+--------
+OP_ADD | 0b
+13 | 02
+OP_EQUAL |
+
+#0006 OP_ADD
+btcdeb> step
+ <> POP stack
+ <> POP stack
+ <> PUSH stack 0d
+script | stack
+---------+--------
+13 | 0d
+OP_EQUAL |
+#0007 13
+btcdeb> step
+ <> PUSH stack 0d
+script | stack
+---------+--------
+OP_EQUAL | 0d
+ | 0d
+
+#0008 OP_EQUAL
+btcdeb> step
+ <> POP stack
+ <> POP stack
+ <> PUSH stack 01
+script | stack
+---------+--------
+ | 01
+```
+### Scrivere un Sistema di Equazioni
+
+E se volessi invece scrivere un sistema di equazioni, come `x + y = 3`, `y + z = 5` e `x + z = 4`? Un po' di algebra ti dice che le risposte sono `x = 1`, `y = 2` e `z = 3`. Ma come lo scripti?
+
+Ovviamente, dopo che il redentore ha inserito i tre numeri, avrai bisogno di due copie di ogni numero, poiché ogni numero entra in due equazioni diverse. `OP_3DUP` si occupa di questo e risulta in `x y z x y z` sullo stack. Eliminando due elementi alla volta otterrai `y z`, `z x` e `x y`. Voilà! Queste sono le tre equazioni, quindi devi solo sommarle e testarle nell'ordine giusto! Ecco lo script completo: `OP_3DUP OP_ADD 5 OP_EQUALVERIFY OP_ADD 4 OP_EQUALVERIFY OP_ADD 3 OP_EQUAL`.
+
+Ecco come funziona con lo script di sblocco corretto di `1 2 3`:
+
+```
+Script: 1 2 3 OP_3DUP OP_ADD 5 OP_EQUALVERIFY OP_ADD 4 OP_EQUALVERIFY OP_ADD 3 OP_EQUAL
+Stack: [ ]
+
+Script: OP_3DUP OP_ADD 5 OP_EQUALVERIFY OP_ADD 4 OP_EQUALVERIFY OP_ADD 3 OP_EQUAL
+Stack: [ 1 2 3 ]
+
+Script: OP_ADD 5 OP_EQUALVERIFY OP_ADD 4 OP_EQUALVERIFY OP_ADD 3 OP_EQUAL
+Running: 1 2 3 OP_3DUP
+Stack: [ 1 2 3 1 2 3 ]
+
+Script: 5 OP_EQUALVERIFY OP_ADD 4 OP_EQUALVERIFY OP_ADD 3 OP_EQUAL
+Running: 2 3 OP_ADD
+Stack: [ 1 2 3 1 5 ]
+
+Script: OP_EQUALVERIFY OP_ADD 4 OP_EQUALVERIFY OP_ADD 3 OP_EQUAL
+Stack: [ 1 2 3 1 5 5 ]
+
+Script: OP_ADD 4 OP_EQUALVERIFY OP_ADD 3 OP_EQUAL
+Running: 5 5 OP_EQUALVERIFY
+Stack: [ 1 2 3 1 ] — Does Not Exit
+
+Script: 4 OP_EQUALVERIFY OP_ADD 3 OP_EQUAL
+Running: 3 1 OP_ADD
+Stack: [ 1 2 4 ]
+
+Script: OP_EQUALVERIFY OP_ADD 3 OP_EQUAL
+Stack: [ 1 2 4 4 ]
+
+Script: OP_ADD 3 OP_EQUAL
+Running: 4 4 OP_EQUALVERIFY
+Stack: [ 1 2 ] — Does Not Exit
+
+Script: 3 OP_EQUAL
+Running: 1 2 OP_ADD
+Stack: [ 3 ]
+
+Script: OP_EQUAL
+Stack: [ 3 3 ]
+
+Script:
+Running: 3 3 OP_EQUAL
+Stack: [ True ]
+```
+Ecco in `btcdeb`:
+```
+$ btcdeb '[1 2 3 OP_3DUP OP_ADD 5 OP_EQUALVERIFY OP_ADD 4 OP_EQUALVERIFY OP_ADD 3 OP_EQUAL]'
+btcdeb 0.2.19 -- type `btcdeb -h` for start up options
+valid script
+13 op script loaded. type `help` for usage information
+script | stack
+---------------+--------
+1 |
+2 |
+3 |
+OP_3DUP |
+OP_ADD |
+5 |
+OP_EQUALVERIFY |
+OP_ADD |
+4 |
+OP_EQUALVERIFY |
+OP_ADD |
+3 |
+OP_EQUAL |
+
+#0000 1
+btcdeb> step
+ <> PUSH stack 01
+script | stack
+---------------+--------
+2 | 01
+3 |
+OP_3DUP |
+OP_ADD |
+5 |
+OP_EQUALVERIFY |
+OP_ADD |
+4 |
+OP_EQUALVERIFY |
+OP_ADD |
+3 |
+OP_EQUAL |
+
+#0001 2
+btcdeb> step
+ <> PUSH stack 02
+script | stack
+---------------+--------
+3 | 02
+OP_3DUP | 01
+OP_ADD |
+5 |
+OP_EQUALVERIFY |
+OP_ADD |
+4 |
+OP_EQUALVERIFY |
+OP_ADD |
+3 |
+OP_EQUAL |
+
+#0002 3
+btcdeb> step
+ <> PUSH stack 03
+script | stack
+---------------+--------
+OP_3DUP | 03
+OP_ADD | 02
+5 | 01
+OP_EQUALVERIFY |
+OP_ADD |
+4 |
+OP_EQUALVERIFY |
+OP_ADD |
+3 |
+OP_EQUAL |
+
+#0003 OP_3DUP
+btcdeb> step
+ <> PUSH stack 01
+ <> PUSH stack 02
+ <> PUSH stack 03
+script | stack
+---------------+--------
+OP_ADD | 03
+5 | 02
+OP_EQUALVERIFY | 01
+OP_ADD | 03
+4 | 02
+OP_EQUALVERIFY | 01
+OP_ADD |
+3 |
+OP_EQUAL |
+
+#0004 OP_ADD
+btcdeb> step
+ <> POP stack
+ <> POP stack
+ <> PUSH stack 05
+script | stack
+---------------+--------
+5 | 05
+OP_EQUALVERIFY | 01
+OP_ADD | 03
+4 | 02
+OP_EQUALVERIFY | 01
+OP_ADD |
+3 |
+OP_EQUAL |
+
+#0005 5
+btcdeb> step
+ <> PUSH stack 05
+script | stack
+---------------+--------
+OP_EQUALVERIFY | 05
+OP_ADD | 05
+4 | 01
+OP_EQUALVERIFY | 03
+OP_ADD | 02
+3 | 01
+OP_EQUAL |
+
+#0006 OP_EQUALVERIFY
+btcdeb> step
+ <> POP stack
+ <> POP stack
+ <> PUSH stack 01
+ <> POP stack
+script | stack
+---------------+--------
+OP_ADD | 01
+4 | 03
+OP_EQUALVERIFY | 02
+OP_ADD | 01
+3 |
+OP_EQUAL |
+
+#0007 OP_ADD
+btcdeb> step
+ <> POP stack
+ <> POP stack
+ <> PUSH stack 04
+script | stack
+---------------+--------
+4 | 04
+OP_EQUALVERIFY | 02
+OP_ADD | 01
+3 |
+OP_EQUAL |
+
+#0008 4
+btcdeb> step
+ <> PUSH stack 04
+script | stack
+---------------+--------
+OP_EQUALVERIFY | 04
+OP_ADD | 04
+3 | 02
+OP_EQUAL | 01
+
+#0009 OP_EQUALVERIFY
+btcdeb> step
+ <> POP stack
+ <> POP stack
+ <> PUSH stack 01
+ <> POP stack
+script | stack
+---------------+--------
+OP_ADD | 02
+3 | 01
+OP_EQUAL |
+
+#0010 OP_ADD
+btcdeb> step
+ <> POP stack
+ <> POP stack
+ <> PUSH stack 03
+script | stack
+---------------+--------
+3 | 03
+OP_EQUAL |
+
+#0011 3
+btcdeb> step
+ <> PUSH stack 03
+script | stack
+---------------+--------
+OP_EQUAL | 03
+ | 03
+
+#0012 OP_EQUAL
+btcdeb> step
+ <> POP stack
+ <> POP stack
+ <> PUSH stack 01
+script | stack
+---------------+--------
+ | 01
+```
+
+> :warning: **ATTENZIONE** `btcdeb` non è solo utile per fornire una visualizzazione di questi script, ma anche per controllare i risultati. Sicuramente, abbiamo sbagliato la prima volta, testando le equazioni nell'ordine sbagliato. È così facile commettere un errore finanziario fatale in uno script Bitcoin, ed è per questo che ogni script deve essere testato.
+
+## Scrivere Script Computazionali Semplici
+
+Anche se gli script enigmatici sono banali, possono effettivamente avere un'utilità nel mondo reale se vuoi fare crowdsourcing di un calcolo. Crei semplicemente uno script che richiede la risposta al calcolo e invii fondi all'indirizzo P2SH come ricompensa. Rimarrà lì fino a quando qualcuno non troverà la risposta.
+
+Ad esempio, Peter Todd ha [offerto ricompense](https://bitcointalk.org/index.php?topic=293382.0) per risolvere equazioni che dimostrano collisioni per algoritmi crittografici standard. Ecco il suo script per confermare una collisione SHA1: `OP_2DUP OP_EQUAL OP_NOT OP_VERIFY OP_SHA1 OP_SWAP OP_SHA1 OP_EQUAL`. Richiede due input, che saranno i due numeri che collidono.
+
+Ecco come funziona con le risposte corrette.
+
+Per prima cosa, riempiamo il nostro stack:
+
+```
+Script: OP_2DUP OP_EQUAL OP_NOT OP_VERIFY OP_SHA1 OP_SWAP OP_SHA1 OP_EQUAL
+Stack: [ ]
+
+Script: OP_2DUP OP_EQUAL OP_NOT OP_VERIFY OP_SHA1 OP_SWAP OP_SHA1 OP_EQUAL
+Stack: [ ]
+
+Script: OP_EQUAL OP_NOT OP_VERIFY OP_SHA1 OP_SWAP OP_SHA1 OP_EQUAL
+Running: OP_2DUP
+Stack: [ ]
+```
+Poi, ci assicuriamo che i due numeri non siano uguali, uscendo se lo sono:
+```
+Script: OP_NOT OP_VERIFY OP_SHA1 OP_SWAP OP_SHA1 OP_EQUAL
+Running: OP_EQUAL
+Stack: [ False ]
+
+Script: OP_VERIFY OP_SHA1 OP_SWAP OP_SHA1 OP_EQUAL
+Running: False OP_NOT
+Stack: [ True ]
+
+Script: OP_SHA1 OP_SWAP OP_SHA1 OP_EQUAL
+Running: True OP_VERIFY
+Stack: [