Questo è un editoriale di opinione di Arman The Parman, un educatore di Bitcoin appassionato di privacy.
Per molti anni, ho armeggiato con vari portafogli Bitcoin e ho insegnato a molte persone a conservare le loro chiavi private in modo sicuro. Ho optato per”Electrum Desktop Wallet“come il mio portafoglio software preferito e più versatile.
In questo saggio, illustrerò alcune delle caratteristiche di Electrum e le mie simpatie e antipatie. Questa non è una guida dettagliata su come usarlo e ottenere il massimo da esso. Inoltre, non entrerò nel motivo per cui dovresti tenere le tue chiavi Bitcoin; si presume che tu sappia e desideri farlo, ma se hai bisogno di sapere perché è essenziale, dai un’occhiata a”Sei motivi per ritirare i tuoi Bitcoin dagli scambi”.
Ho sperimentato in prima persona le idiosincrasie di Electrum e ho trovato soluzioni per superarle-se usato correttamente, è il portafoglio più potente che abbia mai incontrato.
Electrum è per la persona che è, o aspira a essere, un utente”esperto”. Poiché consente così tanto controllo e per la mia familiarità con il software, scelgo di insegnare questo portafoglio alla maggior parte degli studenti come parte della mia privacy/sicurezza Bitcoin corso di tutoraggio (anche se alcune persone hanno bisogno di qualcosa di più semplice da usare). L’esperienza nell’insegnare come usarlo mi ha sicuramente aiutato a capire cosa le persone trovano intuitivo e cosa trovano complicato.
Per il nuovo Bitcoiner che ci prova da solo, Electrum sarebbe totalmente sicuro da usare, a condizione che prenda il loro tempo e usarlo in un ambiente di test con solo un piccolo numero di sats all’inizio.
Sistema operativo
Electrum può essere installato su un PC Windows, un computer Mac o un PC Linux e, cosa importante per alcuni, su computer con chip ARM (ad esempio Raspberry Pi).
Può anche essere installato su un telefono, ma la funzionalità della versione mobile è scadente e la sua connessione ai nodi è stata irregolare, quindi non consiglio quella versione. BlueWallet è una buona alternativa per un portafoglio telefonico.
Download e verifica
Il download e l’installazione del programma è semplice per Windows e Mac e un po’complicato per gli utenti Linux, in particolare quelli che stanno ancora imparando a usare Linux.
Per quelli che stanno solo testando il programma, semplicemente scaricandolo e usandolo senza verificare che il software vada bene-semplicemente non lo farei per grandi quantità, o se la privacy è un problema grande preoccupazione (ad esempio, se hai bitcoin KYC gratuito, devi praticare una buona privacy per mantenere le monete non identificabili).
Se in effetti finirai per utilizzare questo portafoglio per una somma significativa, allora dovrebbe imparare a verificare il software con gpg. Puoi sviluppare le tue abilità intorno a questo qui. Puoi farlo mentre aspetti la mia guida su come usare Electrum in modo sicuro/privato.
L’ambiente
Un problema con Electrum è che se esegui il programma nel modo più intuitivo (ovvero basta fare doppio clic sull’icona) piuttosto che sulla riga di comando (con alcuni flag), quasi sicuramente ti collegherai a un nodo Bitcoin casuale che esporrà il tuo portafoglio e tutti i suoi potenziali 8,6 miliardi di indirizzi al proprietario del nodo casuale: il il proprietario potrebbe essere una società di sorveglianza, e qui va la tua privacy (riceveranno tutti i tuoi indirizzi utilizzati e non utilizzati e il tuo indirizzo IP).
Per ovviare a questo, ti insegnerò, nella prossima puntata, come caricare prima un portafoglio usa e getta, ottimizzare le impostazioni di rete (connettiti al tuo nodo o a uno di cui ti fidi) e solo dopo caricare il tuo vero portafoglio in Electrum.
Alcune persone potrebbero non sapere cosa Intendo per impostazioni di rete o nodi. Puoi saperne di più qui se hai voglia di prendere una tangente molto importante.
Il portafoglio Electrum ha un layout molto pulito che mostra i tuoi indirizzi, anche se devi sapere per andare al menu e selezionare”mostra indirizzi” per vederlo. Quindi otterrai un elenco dei tuoi primi 20 indirizzi di ricezione evidenziati in verde (ne hai 4,6 miliardi ma ovviamente non tutti mostrati) e un elenco dei tuoi primi 10 indirizzi di ricezione evidenziati in giallo (di nuovo, hai 4,6 miliardi di questo tipo ).
Molti altri portafogli software non mostrano un elenco di indirizzi e forniscono un indirizzo solo quando viene richiesto di inviare monete al portafoglio. Questo nasconde le informazioni all’utente per semplificare le cose, ma l’utente tende a rimanere ignorante, poiché non si presenta l’opportunità di apprendere. Ho incontrato molte persone che usano Ledger Live o la suite Trezor, o Blue Wallet sul proprio telefono, e non si rendono conto di avere indirizzi illimitati, figuriamoci qualcosa chiamato”cambia”indirizzi.
Anche Electrum mostra hai un elenco di tutti i tuoi UTXO (ma devi selezionare”mostra monete”) per abilitarlo.
Il server Electrum è necessario
Electrum Wallet non può connettersi direttamente al tuo nodo Bitcoin Core. Questo è fastidioso, ma rende l’elettro più veloce. Più veloce. Hai ancora bisogno di Bitcoin Core, ma avrai anche bisogno di un software chiamato Electrum Server (di cui esistono diverse varietà ciascuna con i suoi vantaggi e svantaggi, che non entrerò qui). Installare Bitcoin Core è abbastanza difficile per alcune persone. Installare Electrum Server è MOLTO più difficile, devi davvero essere abbastanza tecnico.
Per facilità e rinforzo positivo, consiglio alle persone di installare, per il loro primo nodo, un pacchetto di nodi come MyNode (consulta la mia guida) o Raspiblitz (consulta la mia guida), prima di passare all’installazione di un nodo e del software associato su un normale PC.
Questi pacchetti hanno alcuni punti deboli ma sono eccellenti per cominciare perché con un singolo processo di installazione su un Raspberry Pi 4, ottieni molte applicazioni (come Electrum Server, Lightning, BTCPay Server, Mempool viewer-che puoi d altrimenti è necessario installare uno per uno, e potenzialmente verificare) e il costo è di soli $ 300 circa per tutte le apparecchiature (il software è gratuito). Man mano che le tue capacità e il tuo interesse progrediscono, consiglio alle persone di esaminare configurazioni di nodi più avanzate (nessuna delle quali diventa costosa). Nel caso ti stia chiedendo perché dovresti eseguire un nodo, ecco sei ottimi motivi.
Creazione di portafogli
Penso che sia utile definire i due tipi di portafogli prima di procedere molto di più:
Software wallet-questo è il programma che gestisce le tue chiavi private e i tuoi indirizzi Bitcoin. Ad esempio Electrum, Sparrow, Blue Wallet.Bitcoin wallet-con questo intendo la raccolta di indirizzi univoci creati in modo deterministico (e riproducibile) dalla tua frase seme mnemonica (di solito 12 o 24 parole)-ogni frase seme ha 8,6 miliardi di indirizzi univoci a cui può accedere/creare.
Electrum, per impostazione predefinita, crea portafogli che non sono standard, il che è molto fastidioso. Il protocollo più comune è chiamato BIP39 (Bitcoin Improvement Proposal 39) che verrà utilizzato da quasi tutti i portafogli.
Ciò significa che le 12 o 24 parole create dal tuo portafoglio BIP39 saranno compatibili con altri portafogli BIP39, in modo tale che se perdi il tuo portafoglio software (o hardware), puoi recuperarlo inserendo il tuo parole seme in qualsiasi portafoglio BIP39 compatibile: non deve essere la stessa marca.
Lo sviluppatore di Electrum, tuttavia, ha i suoi piani e pensa che lo standard del settore non sia sicuro (ha una preoccupazione oltraggiosamente irrealistica per BIP39). Invece di BIP39, Electrum crea portafogli basati sul proprio protocollo, che nessun altro portafoglio utilizza per impostazione predefinita. Sfortunatamente, se crei una frase seme Electrum, puoi utilizzare quella frase seme solo con Electrum.
È importante sottolineare che Electrum ti consentirà di ripristinare un portafoglio BIP39 al suo interno, ma devi sapere come. Tuttavia, non creerà un portafoglio BIP39 per te. Ma ci sono modi per aggirare questo problema.
Puoi anche semplicemente caricare un singolo indirizzo in Electrum per osservarne il saldo: non deve nemmeno essere tuo (anche se, non avere idee su come spendere il saldo , non è possibile a meno che tu non carichi la chiave privata, nel qual caso l’indirizzo sarebbe tuo).
Quando crei o ripristini un portafoglio Bitcoin con Electrum, puoi scegliere quale tipo di indirizzo avere:
Legacy-questi indirizzi iniziano con 1-gli indirizzi Bitcoin originali. Pay-to-Script-Hash-questi indirizzi iniziano tutti con’3′. Segwit-Dal 2017 dopo il soft fork di Segwit, è possibile creare”Pay-to-witness-public-key-hash”(chiamato anche”Native Segwit”, o”Bech32″). Questi sono i più comunemente usati ora. Iniziano tutti con”bc1q”. Taproot. Questo è nuovo e non ancora supportato da Electrum. Taproot è stato un soft fork nel 2021. Gli indirizzi iniziano con”bc1p”.
I primi tre tipi di indirizzi elencati hanno chiavi pubbliche estese che sembrano leggermente diverse l’una dall’altra. Iniziano rispettivamente con xPub, yPub e zPub. Credo che taproot sia tPub, ma ci sto ancora familiarizzando. Per ulteriore materiale didattico sulle chiavi pubbliche e private di Bitcoin, puoi leggere qui.
Etichette
Questa caratteristica non è unica, ma è molto importante se vuoi mantenere la privacy attraverso un buon controllo delle monete. Etichettando i tuoi UTXO, saprai quali potresti voler evitare di spendere insieme ad altri. Ad esempio, se hai una moneta KYC-free o mista, e la selezioni insieme a una moneta KYC e invii il totale combinato da qualche parte, allora la moneta privata può essere identificata come appartenente a chi possiede la moneta KYC (poiché qualcuno aveva il possibilità di trascorrere entrambi insieme). Non farlo. Le etichette possono essere salvate in un file in modo che possano essere caricate su un altro computer in caso di portafogli duplicati.
Selezione delle monete
La selezione delle monete è un’ottima funzionalità. Puoi andare alle finestre degli indirizzi e scegliere la moneta che desideri spendere o raggrupparne diverse da spendere. Se non selezioni quale moneta vuoi spendere, come qualsiasi altro software, Electrum sceglierà la”migliore”moneta da spendere per te, ma il software non sempre sa cosa è meglio. Non sa quali monete non unire, quali sono attacchi di polvere e quali sono mescolate. Lo sai perché li hai etichettati e poi puoi decidere come gestirli.
Invio/Ricezione
Il processo di invio di pagamenti in bitcoin è molto”regolabile”.”Puoi mantenerlo semplice, ma c’è anche un pulsante avanzato che incoraggio le persone a usare sempre-almeno impara a familiarizzare. Qui puoi vedere esattamente gli elementi importanti della transazione Bitcoin: gli input (con Tx ID e indirizzi), gli output, se qualche indirizzo elencato si trova o meno nel tuo portafoglio (attraverso la codifica a colori), la tassa di mining e un capacità di perfezionarlo, la dimensione della transazione (in byte), se è presente un tempo di blocco e se è abilitata la sostituzione con tariffa. Non è necessario che tu sappia subito cosa significano tutte queste cose, ma almeno ci sono e man mano che acquisisci esperienza, saprai cosa imparare.
Quando ricevi, puoi andare alla scheda di ricezione e verrà fornito il successivo indirizzo inutilizzato, con il quale è possibile copiare/incollare secondo necessità o generare un codice QR. In alternativa, puoi andare alla finestra dell’indirizzo e selezionare qualsiasi indirizzo che vedi per creare una fattura. Puoi fare clic con il pulsante destro del mouse, selezionare i dettagli e vedrai un pulsante per creare un codice QR dell’indirizzo oppure puoi semplicemente copiare il testo dell’indirizzo.
Non appena viene effettuato un pagamento a un indirizzo ed è in attesa nel mempool, Electrum ti mostrerà il pagamento seduto con l’indirizzo, il che è utile: non è necessario attendere un minatore per estrarre la moneta per farti sapere che il pagamento sta arrivando. Electrum ti consente anche di spendere una moneta così non confermata.
Se un mittente ha impostato una commissione molto bassa e la conferma richiede un po’di tempo, puoi affrettare il pagamento spendendo la transazione non confermata a un altro dei tuoi indirizzi. In quella seconda transazione (a valle), potresti aggiungere una commissione di mining elevata. Per riscuotere la commissione, un minatore dovrebbe includere la prima transazione (non redditizia) e la transazione a valle che hai creato (lucrativa): perché? Perché la seconda transazione non è valida finché la prima transazione non è valida (poiché non puoi spendere monete che teoricamente non esistono). Questa tecnica è chiamata”il bambino paga per il genitore”.
Un’altra tecnica possibile con Electrum, per velocizzare i pagamenti, è chiamata RBF (sostituzione a pagamento). Questo non è possibile per il destinatario fare come descritto sopra con”il bambino paga per il genitore”. Invece, un destinatario impaziente deve chiedere al mittente di eseguire un RBF. Il mittente invierà nuovamente alla blockchain l’UTXO originale che è stato”speso”ma non ancora estratto. Quell’UTXO può essere inserito in una transazione alternativa (spesa allo stesso indirizzo della prima transazione o un’altra) e con una commissione di mining più elevata. Qualunque delle due transazioni venga estratta per prima sarà valida e l’altra diventerà non valida.
Come nota a margine, RBF consente il potenziale di frode. Se un destinatario (commerciante) accetta una transazione non confermata come”pagamento ricevuto”e consegna la merce al mittente del pagamento, il mittente ha l’opportunità di eseguire una transazione RBF prima che il pagamento originale venga minato. Utilizzerebbero il proprio indirizzo come destinatario del pagamento e aggiungerebbero una commissione elevata. Quando viene estratto, la transazione originale diventa non valida, viene eliminata da tutti i nodi dal mempool e il saldo dal portafoglio del commerciante scompare. Ecco perché noterai che gli exchange di Bitcoin, quando depositi bitcoin, aspetteranno la conferma sulla blockchain prima di accreditare il tuo account.
Portafogli multisignature
Electrum gestisce molto bene i wallet multisignature , e per un certo periodo credo sia stato l’unico portafoglio software che potevi usare. Puoi avere cofirmatari con tasti di scelta rapida (portafogli software) o chiavi fredde (connetti portafogli hardware). Le chiavi pubbliche multifirma possono essere create una alla volta, in giorni diversi, in luoghi diversi su diversi computer (o portafogli hardware)-la diffusione riduce il rischio di un singolo punto di errore/attacco. Fino a che punto prendere le precauzioni dipende da te.
Ulteriori dettagli su portafogli e chiavi multisig sono disponibili qui e avrò una guida su come realizzare questi portafogli in futuro. Il processo di creazione del portafoglio è eccellente ma con alcune stranezze che diventano irrilevanti una volta che le conosci.
Mi piace molto il modo in cui Electrum gestisce le transazioni Bitcoin parzialmente firmate (PSBT), una caratteristica importante dei portafogli multisig, discussi in seguito.
PSBT
Una transazione bitcoin Electrum è rappresentato solo da un mucchio di testo (che a loro volta rappresentano numeri binari, come lo sono tutti i dati del computer). Hai la possibilità di salvare quel testo in un file, un codice QR o negli appunti (come testo, ad esempio per copiare/incollare in un’e-mail). Quel testo può essere inviato ovunque e come vuoi. Se sei così incline, puoi estrarre il testo e inviarlo tramite e-mail, una lettera fisica, codice Morse, segnali di fumo, onde gravitazionali indietro nel tempo attraverso un buco nero o una danza interpretativa: dipende da te.
Electrum ti dà la possibilità di estrarre quel testo e salvarlo, prima che sia firmato, dopo che sia firmato o in un’impostazione multifirma quando è parzialmente firmato.
La multifirma è particolarmente interessante. Se ci sono, ad esempio, 3 detentori di chiavi in tutto il mondo, puoi firmare una transazione sul tuo computer, estrarre la transazione Bitcoin parzialmente firmata, inviarla tramite e-mail (o codice QR durante una videochiamata) a un altro partecipante all’estero, che può importarla, firmare inviarlo alla terza persona per la firma e la trasmissione. No, questo non è unico per Electrum, mi piace solo come Electrum lo gestisce. Tuttavia, il flusso di lavoro non è intuitivo e richiede pratica.
Paga a molti (PayJoin e CoinJoin)
C’è una funzione nascosta (cerca nei menu) in cui puoi scegliere più destinazioni ( uscite multiple) durante la spesa. Ad esempio, puoi prendere 6,15 bitcoin e inviare 0,01 bitcoin a 615 dipendenti diversi, tutto in un’unica transazione. Questa funzione ti consente di creare PayJoin manualmente-qualcosa che solo una minoranza di persone farebbe, o addirittura capirebbe, ma è comunque interessante.
Pay to Many ti consente anche di creare i tuoi CoinJoin manuali. Per ulteriori informazioni su cos’è e su come farlo, consulta questa guida.
Gap Limit
Una caratteristica importante che non tutti i portafogli hanno è la possibilità di impostare il limite di gap. Come accennato in precedenza, ogni portafoglio è una raccolta di 8,6 miliardi di indirizzi. Il portafoglio software deve connettersi a un nodo e chiedere se a un indirizzo sono associati bitcoin. Non controllerà tutti gli 8,6 miliardi di loro. Electrum chiede i primi 20 indirizzi. Se sono uditi, ne chiederà altri 20 e così via. Lo manterrà fino a quando il nodo non restituirà 20 indirizzi inutilizzati di seguito.
Questo è un modo per spiegare che il limite di gap predefinito è 20, ma puoi cambiarlo. Perchè vorresti? Perché a volte i commercianti consentono ai clienti di produrre autonomamente indirizzi bitcoin tramite un’app di pagamento (come la mia pagina delle donazioni, hint-hint). Se i primi 20 clienti emettono fatture (un indirizzo ciascuno, fornito in sequenza dall’app), e poi il 21° cliente genera una fattura e paga, il portafoglio Electrum apparirà vuoto. Ciò accade perché i primi 20 indirizzi verranno interrogati, trovati inutilizzati, quindi Electrum interromperà la ricerca. Electrum ti consente di modificare il limite del gap, ad esempio a 500 ma non ci sono istruzioni, dovresti cercare online o trovarlo proprio qui:
Dovrai prima andare al menu: visualizza→mostra console, quindi digita questo comando nella console (ovviamente il”500″può essere cambiato in un altro numero):
wallet.change_gap_limit(500)
Con questo comando, vedrai 500 nuovi indirizzi nella finestra degli indirizzi.
Watching Wallets
Si tratta di wallet senza chiavi private, necessari per la connessione degli hardware wallet. La maggior parte delle persone con un portafoglio hardware utilizza il software sul computer”fornito con”il dispositivo, ma di solito non sono open source. Electrum è un’alternativa che può essere utilizzata con qualsiasi dispositivo hardware.
Computer con Air Gap
È possibile installare Electrum su un computer che non può mai connettersi a Internet (Air computer con gap). Quel computer può essere utilizzato per verificare che la frase seme fornita da un portafoglio hardware abbia creato gli indirizzi corretti dal seme.
Ad esempio, potresti acquistare un portafoglio hardware BitBox02 e crea un seme di 24 parole per tu, e da questo, crei indirizzi (con chiavi private associate nascoste alla vista). A seconda del livello di paranoia che hai (e della quantità di bitcoin che stai immagazzinando), potresti scegliere di non fidarti del software incorporato e presumere inizialmente che gli indirizzi che crea appartengano al CEO per cominciare.
Per verificare che gli indirizzi siano autentici, è necessario inserire le parole seme in (ripristinare) un portafoglio diverso, ad esempio Electrum; e assicurati che Electrum generi indirizzi identici. È abbastanza facile, ma non puoi semplicemente digitare semi in un vecchio computer con Electrum sopra. Beh, puoi, ma davvero non dovresti: il malware può potenzialmente estrarre i tuoi tasti premuti e rubare i tuoi bitcoin.
Una soluzione è inserire i semi in Electrum su un computer pulito e sicuro con air gap (o un portafoglio hardware di marca diversa).
Il modo più economico è con un Raspberry Pi Zero: costavano circa $ 10 prima delle carenze indotte dalla pandemia. Il chip ARM su questi dispositivi significa che non tutti i portafogli software sono compatibili. Electrum è e funziona magnificamente.
Ecco come crearne uno tuo. È come un seed signer ma ha tutte le funzionalità di Electrum.
Firma/Verifica un messaggio
Una transazione Bitcoin è un pagamento che contiene una moneta precedentemente”bloccata”da un indirizzo. Per sbloccare la moneta (rispetto alle regole di Bitcoin) ed essere autorizzati a spenderla, utilizzando la crittografia a chiave pubblica/privata, è necessario dimostrare di possedere la chiave privata all’indirizzo contenuto all’interno. Ciò viene fatto con una firma (utilizzando la chiave privata, ma senza rivelarla).
La transazione firmata è essa stessa un messaggio; un po’di dati informatici, anche se seguendo un protocollo rigoroso.
Utilizzando la crittografia a chiave pubblica/privata, al di fuori di Bitcoin, puoi effettivamente firmare QUALSIASI messaggio. Ad esempio, ecco un messaggio che ho firmato dopo aver selezionato un indirizzo (e quindi la sua chiave privata). Di seguito è riportato il messaggio, l’indirizzo e la firma (testo dall’aspetto senza senso), che è stato prodotto dopo che ho fatto clic su”firma”.
Ora tu o chiunque altro potete prendere l’indirizzo, il messaggio e la firma, inseriscilo in Electrum (o altro software) e verifica che fosse davvero la chiave privata corretta (corrispondente all’indirizzo) che ha prodotto quel messaggio (questo è in realtà lo stesso tipo di verifica che fanno i nodi Bitcoin per qualsiasi transazione Bitcoin). Aprirò un altro portafoglio che non ha la relativa chiave privata, per dimostrare la verifica. Sono entrato nella finestra”verifica messaggio”, quindi ho inserito tutti i dettagli come vedi sopra, quindi ho fatto clic su Verifica:
Crittografa/decrittografa un messaggio
Invece di firmare un messaggio con crittografia a chiave pubblica/privata, l’output può essere una versione crittografata del messaggio (cioè confuso e illeggibile) utilizzando la chiave/l’indirizzo pubblico di qualcun altro. La versione crittografata può quindi essere inviata a chiunque disponga della chiave privata corrispondente, poiché il testo può essere letto solo quando la chiave privata viene utilizzata per invertire il processo.
Ad esempio, avresti potuto ricevere la mia chiave pubblica bitcoin, crittografare questo messaggio come sopra, inviarmi un’e-mail con il testo cifrato ( il testo dall’aspetto casuale nel campo in basso) e poiché ho la chiave privata per la chiave pubblica, posso invertire il messaggio crittografato nella forma originale e leggere il tuo messaggio errato. In questo modo, puoi inviarmi un testo attraverso un canale di comunicazione non sicuro e solo io posso leggerlo.
Questa è la magia della crittografia a chiave pubblica/privata e uno dei componenti principali che ha reso Bitcoin possibile. Dovremmo tutti essere grati che i cypherpunk abbiano combattuto duramente, e vinto, contro il governo degli Stati Uniti che ha cercato di vietarlo negli anni’90.
Riepilogo
Questa è stata una lunga recensione dell’Electrum Portafoglio da scrivania. Spero che questo abbia suscitato il tuo interesse nell’imparare a usarlo-pubblicherò una guida su questo molto presto. Nel frattempo, potrebbe valere la pena fare pratica con transazioni Bitcoin molto semplici seguendo questo esercizio.
Questo è un guest post di Arman The Parman. Le opinioni espresse sono interamente proprie e non riflettono necessariamente quelle di BTC Inc o Bitcoin Magazine.