Il principio fondamentale e l’obiettivo di progettazione di Bitcoin era quello di essere”una versione puramente peer-to-peer del denaro elettronico”. Sebbene questa affermazione del white paper sia tradizionalmente considerata correlata esclusivamente all’elaborazione dei pagamenti indipendente da un istituto finanziario, ci sono altri aspetti di Bitcoin che sono incredibilmente importanti da mantenere per mantenerlo un sistema peer-to-peer che autorizza ai suoi utenti di mantenere il controllo sulle proprie finanze. L’autoconvalida è una delle cose più importanti da fare per un Bitcoiner per mantenere la propria sovranità sul proprio denaro. La privacy è un’altra cosa che è anche incredibilmente importante in relazione all’auto-sovranità. Ovviamente oltre a questi due aspetti, gestire le proprie chiavi è la chiave (capito?) per avere il pieno controllo sui propri bitcoin.

Spectre è una famiglia di progetti open source che ha lavorato per realizzare tutto di queste importanti qualità accessibili e facili da usare per i Bitcoiners dal 2018. Moritz Wietersheim di Spectre è stato così gentile da concedere del tempo per rispondere alle domande riguardanti i piani passati, presenti e futuri del team Spectre nell’espansione dei propri dispositivi software e hardware per continuare semplificando il processo di utilizzo di Bitcoin nel modo più sovrano possibile.

Il progetto è iniziato nel 2018 a Lisbona durante una steak dinner dopo la conferenza Building on Bitcoin. Wietersheim ha incontrato Stepan Snigirev durante la conferenza, dove Snigirev aveva vinto l’evento hackathon con un prototipo di portafoglio hardware con supporto integrato di Lightning Network. Nel corso della cena, Wietersheim e Snigirev hanno deciso di iniziare a lavorare insieme su quello che sarebbe diventato il portafoglio hardware Spectre DIY (fai da te). Questo è diventato il pezzo centrale di un intero ecosistema di diversi strumenti per interagire con Bitcoin.

Spectre DIY

Il portafoglio Spectre DIY è stato progettato in un momento in cui lo spazio del portafoglio hardware era molto meno maturo. È possibile trovare un’analisi completa di molte delle vulnerabilità scoperte durante quel periodo di tempo sul sito web di Saleem Rashid e sul Presentazione di Wallet.Fail al Chaos Communication Congress. All’epoca era un evento quasi mensile per la ricerca di vulnerabilità piuttosto sgradevoli in diversi dispositivi hardware. Sebbene lo spazio sia maturato parecchio da quel periodo di tempo, penso che sia importante notare l’ambiente in quel momento per dare un contesto al pensiero alla base di Spectre DIY.

Lo Spectre DIY è costruito attorno al microcontrollore STM32, lo stesso (microcontrollore unit) utilizzato da portafogli hardware come Coldcard, Trezor, Bitbox, ecc. È montato su una scheda di sviluppo Discovery che ha sia uno slot per schede SD che USB per la comunicazione con i portafogli software. Ha anche il supporto opzionale per uno scanner di codici QR. La nozione originale di dispositivo di firma”senza stato”-uno che non memorizza in modo persistente il seme mnemonico o le chiavi private sul dispositivo-è stato sperimentato da Spectre DIY. Questa decisione progettuale è stata presa a causa della mancanza di sicurezza fisica durante l’archiviazione di dati sensibili (l’STM32 è stato fisicamente compromesso per estrarre segreti molte volte in passato).

Non memorizzando in modo persistente le tue chiavi private su dispositivo, limiti la superficie di attacco che qualsiasi attore malintenzionato può sfruttare se è in grado di ottenere l’accesso fisico al dispositivo. Senza il seed, il massimo che un utente malintenzionato può sperare di fare è accedere al tuo dispositivo, comprometterlo per persistere o trasmettere le tue chiavi invece di cancellarle e quindi sostituirlo e sperare che non ti accorga che è stato manomesso prima del prossimo caricamento le tue chiavi sul dispositivo. Questo non è affatto perfetto, ma nel mondo della sicurezza nulla lo è, e questo è un enorme miglioramento rispetto alla semplice memorizzazione persistente delle chiavi sull’STM32, dove chiunque può accedervi con il tempo di compromettere il chip. Puoi disattivare questa modalità e archiviare i dati della chiave privata nel file , ma a meno che tu non possa proteggere fisicamente il tuo dispositivo con un grado di certezza molto elevato, questo dovrebbe essere qualcosa che dovresti considerare attentamente prima di farlo. Inoltre, senza un elemento sicuro sarebbe consigliabile utilizzare una passphrase con tale configurazione.

La parte software del progetto è realizzata utilizzando la embit library. È una libreria MicroPython/Python 3 per l’interazione con i dati Bitcoin che è stata creata appositamente per l’uso con Spectre DIY (è usata anche da SeedSigner e krux, entrambi progetti di dispositivi di firma stateless; un’estensione di sola visualizzazione LNBits; Spectre Portafoglio software desktop). La libreria supporta BIP39/BIP32 (generazione di semi mnemonici e percorsi di derivazione per le chiavi), supporto PSBT per le versioni uno e due, supporto per flag SIGHASH personalizzato (firma di parti diverse della transazione anziché dell’intera operazione) e descrittori di output e miniscript (stringhe di dati per memorizzare ciò che è necessario ai portafogli per trovare gli UTXO che controlla e un linguaggio di alto livello per semplificare la creazione di script Bitcoin). Ha anche il supporto sperimentale per Shamir Secret Sharing, Liquid Network e Taproot (ancora in corso). Per le funzioni crittografiche utilizza la libreria libsecp256k1 gestita da Bitcoin Core. La libreria è molto completa con le funzionalità necessarie per soddisfare le esigenze di base dei portafogli odierni, oltre a funzionalità che gettano le basi per futuri miglioramenti delle funzionalità esistenti e l’incorporazione di funzionalità estese non ancora ampiamente implementate nella maggior parte dei portafogli. Nel complesso è una base molto solida da cui partire ed è stato inizialmente tutto messo insieme per lo Spectre DIY.

Oltre allo Spectre DIY di base, una versione estesa chiamata Spectre Shield è un importante aumento della sicurezza fisica. Questa è una scheda di estensione personalizzata per la scheda Discovery STM32 principale su cui è costruito il modello base. I file necessari per averne uno prodotto da un produttore di schede PCB sono disponibili nel loro repository Github (collegato sopra). La scheda Shield ha uno scanner di codici QR, una batteria e uno slot per lettore di smart card. Quest’ultima caratteristica è davvero ciò che rende importante questa scheda di estensione. Con la scheda di estensione e una smart card dotata di un elemento di sicurezza, il portafoglio può funzionare con lo stesso modello di sicurezza di qualcosa come una Coldcard. Il materiale della chiave può essere memorizzato sull’elemento sicuro in una smart card e caricato sul dispositivo durante l’uso, ma solo permanentemente memorizzato sulla smart card. La comunicazione tra l’elemento e l’elemento sicuro sulla carta è crittografata, quindi le informazioni passate tra di loro non sono accessibili al microcontrollore che gestisce l’interfaccia della smart card.

Il flusso del portafoglio (con o senza l’estensione Shield) durante la persistenza delle chiavi è lo stesso della maggior parte degli altri portafogli hardware. Genera un segreto univoco che viene archiviato nella memoria flash e, in combinazione con un pin fornito dall’utente, crittografa le chiavi private effettive (di nuovo indipendentemente dal fatto che le memorizzi sull’elemento sicuro della smart card o sull’STM32) in modo che un utente malintenzionato debba accedi sia al tuo pin che al segreto per decifrare le tue chiavi bitcoin. Ciò mette entrambi i modelli dominanti di dispositivi hardware bitcoin-firmatari senza stato e dispositivi di archiviazione chiavi-nelle mani delle persone in modo fai-da-te. Se preferisci non fare affidamento su un elemento sicuro e dipendere esclusivamente da un open source, lo Spectre DIY può essere costruito in quel modo. Se si preferisce la sicurezza additiva di un elemento sicuro oltre a un open , ciò può essere ottenuto con l’uso della scheda di estensione Shield. Per finire, accetta anche l’entropia dell’input dell’utente dai lanci di monete per non dipendere dal generatore di numeri casuali hardware. Le interruzioni delle catene di approvvigionamento a livello internazionale hanno reso un po’difficile mettere le mani sull’hardware necessario, ma se puoi, il progetto vale la pena.

Wietersheim e Snigirev hanno davvero compiuto un’impresa nel mettere insieme lo Spectre DIY. Non è affatto il primo portafoglio hardware fai-da-te là fuori, ma è il primo che supporta modularmente in parole povere qualsiasi cosa tra il modello di sicurezza di qualcosa come un Trezor a qualcosa come una Coldcard in base a ciò che l’utente vuole costruirlo. C’era solo un problema in sospeso: il software del portafoglio con cui usarlo.

Spectre Desktop

Guardando le app complementari per il portafoglio hardware, tutto sembrava non essere all’altezza di ciò che Weitersheim e Snigirev stavano cercando. Gli è piaciuta la funzionalità di Bitcoin Core, ma nonostante la stabilità portata in tavola dagli sviluppatori, Bitcoin Core ha un’interfaccia utente molto minimalista e per certi versi non intuitiva. Tuttavia, ha una bella interfaccia per PSBT (Partially Signed Bitcoin Transactions) e l’interfaccia HWI (Hardware Wallet Integration), quindi Stepan ha hackerato insieme la prima versione di Spectre come miglioramento minimo dell’interfaccia utente per interagire con Bitcoin Core.

Pensa a Spectre Desktop come a un”wrapper”per Bitcoin Core. Include una bella GUI con supporto multisig; integrazione del portafoglio hardware Comunicazione PSBT tramite codici QR, scheda SD o USB; verifica degli indirizzi di ricezione tramite QR code e USB; Supporto RBF (Sostituisci a pagamento); un sistema di etichettatura per tenere traccia dei tuoi UTXO e da dove provengono; e il controllo delle monete per selezionare UTXO specifici durante la spesa (oltre alla possibilità di congelare UTXO specifici per proteggersi da errori durante la spesa). Hanno persino integrato una soluzione con un clic facile da usare per installare Bitcoin Core direttamente dall’interno di Spectre Desktop (sebbene, l’installazione indipendente di Bitcoin Core e la connessione di Spectre sia qualcosa di anche Peter McCormack è stato in grado di realizzare da solo).

Oltre alla flessibilità delle funzionalità, il fatto che Spectre richieda la creazione del proprio nodo completo come back-end è un importante vantaggio in termini di privacy rispetto a molti portafogli disponibili per gli utenti. La maggior parte dei portafogli in questo ecosistema utilizza un backend di terze parti per tracciare i propri UTXO, il che significa che l’operatore di quel backend è in grado di correlare tutti i tuoi UTXO a un’unica identità. Inoltre, se non comunica con il back-end su Tor o tramite un servizio VPN, l’operatore è in grado di correlare tutte quelle monete al tuo indirizzo IP. Questa è un’orribile perdita di privacy a cui viene posto rimedio dall’insistenza di Spectre su un’istanza Bitcoin Core locale per tenere traccia del tuo saldo Bitcoin.

Spectre supporta anche Liquid Network, una sidechain Bitcoin federata, che ha anche il supporto per l’installazione con un clic per un nodo completo di Liquid Elements all’interno della GUI di Spectre. Supporta i portafogli Liquid utilizzando Blockstream Jade, Spectre DIY e hot wallet direttamente in Spectre. Liquid offre alcuni vantaggi interessanti con alcuni compromessi rispetto alla rete principale Bitcoin stessa. La sidechain è un sistema federato, il che significa che l’utilizzo della catena richiede il deposito di BTC in un portafoglio multisig controllato dalla federazione che gestisce la sidechain e quindi la ricezione di L-BTC, un token emesso sulla sidechain supportato da BTC custodito dalla federazione. Per il compromesso di fidarsi della federazione, gli utenti hanno la possibilità di sfruttare le Transazioni riservate, uno schema di base a prova di conoscenza zero che nasconde gli importi (e il tipo di asset, nel caso dell’implementazione di Liquid) in corso di transazione sulla blockchain. Utilizza una”prova di portata”che dimostra crittograficamente che il denaro non viene stampato dal nulla senza rivelare gli importi oggetto di transazione.

Liquid supporta anche l’emissione di altri asset. Un utile esempio sono le stablecoin come Tether (L-USDT), una stablecoin denominata in dollari che consente agli utenti di evitare la volatilità di Bitcoin in modo”autodetentivo”(il token richiede comunque all’emittente di onorare il riscatto per acquisire”reali denaro”alla fine della giornata). L’emissione di liquidità consente anche la creazione di altri tipi di token come azioni che potrebbero essere auto-custodite e la funzionalità di scripting di Liquid supporta più funzionalità rispetto a Bitcoin stesso, consentendo contratti intelligenti più avanzati come prestiti garantiti da BTC, tutti gestiti direttamente da un utente tramite il proprio portafoglio. Spectre ha scelto di supportare Liquid per consentire agli utenti di interagire con Liquid allo stesso modo della catena principale: con privacy e totale sovranità.

Spectre Enterprise

Progetti come il portafoglio Bitcoin Beach utilizzano Spectre come back-end per gestire i propri fondi multisig on-chain. Non sono l’unica azienda che utilizza Spectre sul back-end per gestire i fondi aziendali e, secondo Wietersheim, non erano nemmeno a conoscenza delle società che utilizzavano Spectre fino a quando non sono state contattate per assistenza. Gran parte delle entrate che mantengono a galla il progetto provengono in realtà da tali società che pagano il team Spectre per il firmware personalizzato per Spectre DIY e altri servizi di sviluppo, consentendo loro di lavorare a tempo pieno sulla manutenzione dell’intera suite software.

È interessante pensare che lo stesso set di strumenti sviluppato per offrire ai singoli utenti il ​​percorso verso l’auto-sovranità e la sicurezza venga utilizzato anche dalle vere aziende per gli stessi fini. È comune pensare a ciascun gruppo come a mercati completamente separati con esigenze completamente diverse, ma come dimostrato qui con Spectre, la sovrapposizione è molto più ampia di quanto si possa pensare a prima vista.

Un centro di comando per Bitcoiner

Il team di Spectre ha realizzato qualcosa di veramente spettacolare con il progetto. Tutto, dai dispositivi hardware che gestiscono in modo sicuro le chiavi private e le operazioni di firma al software per convalidare le tue transazioni, è stato sviluppato dal team in modo interoperabile e senza interruzioni. È davvero un coltellino svizzero di strumenti per l’auto-sovrano Bitcoiner, che tu sia un singolo utente o una società professionale che gestisce fondi di altre persone, per gestire tutto ciò di cui hai bisogno per interagire con la rete Bitcoin. Il progetto ha un valore inestimabile e il team dovrebbe essere elogiato per l’eccellente lavoro svolto nella creazione di questa suite di software e hardware open source che tutti in questo spazio possono trarre vantaggio.

Questo è un post degli ospiti di Shinobi. Le opinioni espresse sono interamente proprie e non riflettono necessariamente quelle di BTC Inc o Bitcoin Magazine.

Categories: IT Info