Cose da sapere: |
- Miniscript consente di creare portafogli software Bitcoin che rendono impossibile sfruttare una backdoor. Siamo lieti di annunciare che Ledger è il primo produttore di portafogli hardware commerciale a supportare miniscript.
- Le funzionalità aggiuntive possono essere implementate senza compromettere l'esperienza dell'utente. |
I dispositivi di firma hardware sono progettati per salvaguardare l'utente da vari vettori di attacco comuni, come:
- Accesso non autorizzato ed estrazione del seme
- Malware che infetta il portafoglio software associato
- Vulnerabilità del software sul dispositivo stesso
Come ogni azienda, è nell'interesse del produttore realizzare dispositivi come infrangibile come possono. Riuscire in questa missione è fondamentale e le società di sicurezza come Ledger fanno affidamento su una reputazione costruita sul loro track record.
Tuttavia, alcuni utenti potrebbero ancora avere dubbi. Ciò che impedisce all'azienda stessa di nascondere a porta posteriore nei dispositivi?
In auto-custodia, noi non fidarti, verifichiamo.
Ma può l'utente veramente verificare che un dispositivo non abbia una backdoor?
Questa è la domanda chiave che approfondisce questo articolo. Più precisamente, questo articolo affronta i seguenti argomenti:
- cos'è una backdoor e perché è difficile, se non impossibile, provare che non ce ne sia una;
- perché solo gli utenti possono proteggersi da questo rischio;
- come miniscript consente soluzioni pratiche a questa sfida per i portafogli bitcoin.
Essendo il primo portafoglio hardware a supportare minicopione, speriamo di ispirare gli sviluppatori a creare soluzioni sicure e aggiornare il nostro intero settore, ed eliminare la possibilità che un tale rischio sistemico si materializzi.
Come costruire il unbackdoor dispositivo di firma
Mettiamola in chiaro: non puoi.
Per difendersi da una potenziale backdoor è necessario un modello di attacco diverso da quello che abbiamo delineato in precedenza: in questo scenario l'avversario potrebbe essere il venditore stesso o un insider corrotto.
La soluzione spesso propagandata a questo problema è l'Open Source: dopotutto, se riesci a ispezionare il codice, cosa potrebbe andare storto?
Tuttavia, la verità è più complessa. Poiché il fornitore assembla l'hardware, una backdoor potrebbe essere interamente contenuta al suo interno. L'hardware potrebbe essere progettato per ignorare il software in determinati punti ed eseguire invece codice dannoso.
A differenza del software che gira su dispositivi informatici generici (come il tuo laptop o telefono), esaminare l'hardware è praticamente impossibile con la tecnologia odierna. Anche se le specifiche hardware fossero interamente open source, complete dei dettagli di ogni singola porta del circuito, sarebbero comunque necessarie attrezzature costose per verificare che un chip specifico sia costruito in conformità con esse.
Come eseguire il backdoor di un portafoglio hardware
Ecco alcuni dei metodi più semplici che un fornitore di hardware dannoso potrebbe utilizzare per introdurre una backdoor, insieme ad alcuni modi in cui gli utenti esperti possono proteggersi oggi.
Generazione di semi
Molti dispositivi ti offrono la possibilità di generare un seme (chiamato anche Frase segreta di recupero) direttamente sul dispositivo, utilizzando a Generatore di numeri casuali reali.
😈 Il dispositivo malvagio potrebbe generare semi che sembrano casuali ma in realtà sono prevedibili per l'attaccante.
🛡️ Gli utenti esperti possono aggirare questo problema generando un mnemonico offline. Inoltre, incorporando un robusto frase d'accesso può anche generare un seme completamente indipendente che il fornitore dell'hardware non può prevedere. Il compromesso è che gli utenti devono assicurarsi di eseguire correttamente il backup della passphrase oltre alle parole mnemoniche.
Derivazione a chiave pubblica
I portafogli hardware ricavano ed esportano i file chiavi pubbliche (anche detto xpub, abbreviazione di chiave pubblica estesa come definito in BIP-32. xpub servono per generare i possibili indirizzi per la ricezione delle monete.
😈 Il dispositivo malvagio potrebbe restituire le chiavi pubbliche controllate dall'attaccante invece di quelle corrette derivate dal seed.
🛡️ Gli utenti potrebbero convalidare il derivato xpub su un altro dispositivo offline. Tuttavia, l'inserimento del seme su altri dispositivi comporta i propri rischi. Gli utenti attenti alla sicurezza potrebbero ritenere pericoloso qualsiasi dispositivo che ha avuto accesso al seme, potenzialmente al punto da distruggerlo. L'utente tipico potrebbe avere difficoltà a eseguire correttamente questa procedura mentre gestisce i rischi aggiuntivi.
Informazioni trapelate
An vuoto d'aria viene spesso proposto come soluzione per impedire a un dispositivo dannoso o compromesso di esfiltrare le chiavi private. Dopotutto, se un dispositivo non può comunicare con il mondo esterno, non può fare nulla di dannoso, giusto?
Non proprio!
Il dispositivo può sempre comunicare quando è in uso: produce firme. Queste firme finiscono all'interno di transazioni che vengono trasmesse e archiviate per sempre sulla blockchain.
Una firma è una stringa di byte dall'aspetto casuale di almeno 64 byte. Tuttavia, poiché allo stesso messaggio può corrispondere più di una firma valida, un dispositivo malintenzionato potrebbe comunicare alcuni bit di informazione ogni volta che viene prodotta una firma, generando più firme e scegliendo selettivamente quale pubblicare.
😈 Un dispositivo canaglia potrebbe produrre firme non casuali che, nel corso di molte transazioni, rivelano il seme all'attaccante!
Un utente malintenzionato che riuscisse a installare una tale backdoor dovrebbe semplicemente attendere che le firme dannose appaiano sulla blockchain fino a quando non disporrà di informazioni sufficienti per ricostruire l'intero seme.
🛡️ Per le firme ECDSA, utilizzando un metodo standardizzato per derivare il nonce in modo deterministico (come RFC6979) contrasta questo attacco, a condizione che si convalidi che la firma prodotta corrisponda a quella prevista. Tuttavia, garantire che ciò avvenga richiede il caricamento di un secondo dispositivo con lo stesso seme, il che porta agli stessi problemi pratici menzionati nella sezione precedente.
🛡️ Un approccio interessante è utilizzare un modo intelligente per forza il dispositivo per scegliere effettivamente un nonce casuale. Un protocollo per questo scopo, noto come anti-esfil or anticlepto, è attualmente implementato nei portafogli hardware Blockstream Jade e ShiftCrypto BitBox02. Leggi di più su Il blog di ShiftCrypto, che include anche una descrizione tecnica di come un tale attacco potrebbe essere eseguito.
Ok allora, non c'è speranza?
La maggior parte delle difese🛡️ sopra elencate richiede principalmente all'utente di eseguire azioni esplicite e intrusive per proteggersi: o generando il seme da solo (essenzialmente, usando il proprio cervello per sostituire la funzionalità dal portafoglio hardware), o utilizzando un dispositivo aggiuntivo per verificare che i calcoli siano eseguiti correttamente.
Tuttavia, il protocollo anti-exfil si distingue: dato che c'è sempre una macchina che fa da intermediario tra il firmatario hardware e il mondo esterno, questa macchina può essere d'aiuto. Attraverso un protocollo interattivo con il firmatario hardware, può farlo imporre l'uso di un nonce genuinamente casuale, diminuendo o eliminando così la possibilità di manipolare in modo significativo la firma finale.
In questo post del blog, siamo principalmente interessati a questo tipo di misure: mentre le strategie che peggiorano significativamente la UX potrebbero essere allettanti per gli utenti esperti, è probabile che facciano le cose peggio in pratica per gli utenti meno esperti tecnicamente − che è la stragrande maggioranza.
Il modello di sicurezza
Modello standard per i firmatari hardware
I produttori di firme hardware mirano a proteggere gli utenti da una varietà di potenziali minacce (per maggiori dettagli, vedere Modello di minaccia). In questo articolo, ci concentriamo su una proprietà molto importante, che può essere riassunta come segue:
Gli utenti non possono essere indotti in un'azione che comporta la perdita di fondi, a condizione che comprendano e verifichino le informazioni sullo schermo prima dell'approvazione.
L'approvazione è necessaria per qualsiasi azione sensibile, in particolare per le firme. Proteggere il seme sarebbe inutile se il malware potesse produrre firme per messaggi arbitrari, come una transazione che prosciuga tutti i fondi!
È fondamentale sottolineare che la proprietà di cui sopra deve valere anche se il software wallet è completamente compromesso. Ciò che viene visualizzato sullo schermo del tuo laptop/telefono non può essere attendibile: il malware potrebbe sostituire gli indirizzi, ingannarti su quali indirizzi sono i tuoi, presentare una transazione ma poi inoltrarne una diversa al dispositivo per la firma, ecc.
Pertanto, il firmware e le applicazioni in esecuzione su un dispositivo di firma hardware considerano intrinsecamente il portafoglio software non attendibile e inaffidabile.
Modello di sicurezza anti-backdoor per portafogli software
In questa sezione, capovolgiamo completamente i ruoli. Vogliamo ora progettare un portafoglio software che impedisce al produttore dell'hardware di rubare o causare perdite di fondi, anche se il dispositivo è completamente dannoso.
Quindi, questa non può essere una proprietà di dispositivo: piuttosto, è una proprietà di portafoglio software impostare. Potremmo riassumerla così:
A condizione che il portafoglio software non sia compromesso, il produttore dell'hardware non può far perdere fondi all'utente.
Questo può sembrare controintuitivo, in quanto contraddice direttamente il modello di sicurezza standard sopra descritto. Tuttavia, "non avere una backdoor" significa "fare esattamente quello che dovrebbero fare". Poiché il software wallet è il unico interfaccia tra il dispositivo di firma e il mondo esterno, è l'unico luogo in cui è possibile applicare la protezione contro il comportamento scorretto, sia a causa di un bug che di compromissione esplicita del dispositivo.
Si noti che questo modello si estende notevolmente oltre un guasto del dispositivo, ad esempio un bug sfruttabile. In questo caso, operiamo in uno scenario in cui il dispositivo sta cercando attivamente di causare una perdita di fondi.
Naturalmente, non c'è alcuna protezione possibile se il produttore ha compromesso con successo entrambi il dispositivo e anche la tua macchina che esegue il software wallet. Pertanto, è assolutamente fondamentale assicurarsi che il proprio portafoglio software sia Open Source e verificabile, soprattutto se realizzato dallo stesso fornitore che produce l'hardware.
Il ruolo del minicopione
Miniscript fornisce agli sviluppatori di portafogli la possibilità di utilizzare appieno le funzionalità avanzate di bitcoin Script. Per una panoramica delle incredibili possibilità di sblocco di miniscript, fare riferimento a il nostro precedente post sul blog. Potresti anche voler ascoltare Episodio 452 del podcast di Stephan Livera per una discussione su ciò che il miniscript porta nel panorama dei bitcoin.
L'app Ledger Bitcoin supporta miniscript dalla sua versione 2.1.0, che è stata distribuita nel febbraio 2023. Alla conferenza Bitcoin 2023 a Miami, Wizardsardine ha annunciato la versione 1.0 del loro Portafoglio Liane, il primo portafoglio implementato basato su miniscript.
L'idea di base di questo post è che un account di portafoglio bitcoin può essere protetto non solo con uno, ma con multiplo chiavi. Ciò consente quadri di sicurezza flessibili in cui anche un guasto totale o la compromissione di una chiave non è catastrofico.
Riflessioni multisig
Multisig è un aggiornamento significativo nella forza di una soluzione di auto-custodia. Sfruttando la programmabilità di Bitcoin Script, consente la creazione di portafogli che richiedono più chiavi invece di una sola. UN k-di-n il portafoglio multisig richiede una combinazione di k firme valide, su un totale di n quelli possibili.
Tuttavia, multisig pone anche un carico di UX sull'utente e introduce nuove opportunità di errore. Una configurazione multisig 3 su 3, che coinvolge tre diverse chiavi di cui è stato eseguito il backup in modo sicuro in posizioni separate, offre una sicurezza elevata... ma significa anche che se anche un singolo la chiave è persa, le monete diventano permanentemente inaccessibili!
Pertanto, le configurazioni che offrono maggiore ridondanza (come 2 su 3 o 3 su 5) tendono ad essere più popolari: in caso di smarrimento di una singola chiave, le altre chiavi possono comunque facilitare il recupero. Ma questo introduce un compromesso: se una chiave viene compromessa a tua insaputa, la sicurezza complessiva viene notevolmente ridotta!
Aziende come Home ed Capitale non investito specializzati in soluzioni di auto-custodia in cui detengono una minoranza delle chiavi per i propri clienti. Inoltre assistono i loro utenti guidandoli attraverso il processo di onboarding e semplificando l'uso dei sistemi di custodia, che altrimenti potrebbero essere scoraggianti per la maggior parte degli utenti non tecnici.
Miniscript e percorsi di ripristino bloccati nel tempo
Liana utilizza miniscript per creare portafogli che hanno molteplici modalità di spesa:
- una condizione di spesa primaria, immediatamente disponibile;
- una o più condizioni di spesa aggiuntive che si rendono disponibili dopo un certo periodo (cd blocco temporale).
Ciò consente molti casi d'uso interessanti:
- Recupero: un portafoglio standard con firma singola o multisig come percorso di spesa principale; ma un meccanismo di ripristino separato (una chiave con un seme diverso, un multisig, un amico esperto di tecnologia, un custode) diventa disponibile dopo 6 mesi.
- Governance LPI: Una società con due amministratori potrebbe stabilire un 2 su 2 per la tesoreria della società; in caso di disaccordo, un avvocato di fiducia potrebbe accedere ai fondi dopo 6 mesi.
- Decadimento multisig: Un portafoglio inizia come 3 su 3, passa a 2 su 3 dopo 6 mesi e diventa 1 su 3 dopo 9 mesi.
- Ereditarietà automatica: Il percorso di recupero dopo 6 mesi prevede 2 su 3 dei tuoi tre figli; magari un secondo percorso di recupero dopo 1 anno coinvolge un notaio, nel caso gli eredi non riescano a raggiungere un consenso.
osservazione: tutti gli esempi precedenti usano a timelock relativo, che si riferisce all'età delle monete (ovvero: l'ultima volta che i fondi sono stati spostati). Il compromesso è che l'utente deve ricordarsi di spendere le monete (inviandole a se stesso) se il timelock sta per scadere.
Questi sono solo alcuni esempi, ma dovrebbero essere sufficienti per convincere il lettore che miniscript è un significativo passo avanti verso la realizzazione del potenziale di Bitcoin come denaro programmabile.
Registrazione della politica del portafoglio
Per gli account di portafoglio Bitcoin che utilizzano più chiavi (che si tratti di multisig o soluzioni più sofisticate basate su miniscript), è fondamentale addestrare il dispositivo per identificare gli indirizzi che appartengono a quell'account. Questo è l'unico modo in cui il dispositivo può aiutare l'utente a garantire che stia ricevendo o spendendo dagli indirizzi corretti...
Convalida della politica e del xpub del cofirmatario rispetto a un backup attendibile è essenziale, ma richiede relativamente tempo.
La buona notizia è che deve essere fatto solo una volta:
Una volta che una politica è stata registrata con un nome (nell'esempio "Decaying 3of3"), il tuo dispositivo sarà in grado di riconoscerla ogni volta che tale politica viene utilizzata.
Chi è interessato ai dettagli tecnici può trovare maggiori informazioni nel Proposta PIP.
Backup della politica
Un aspetto critico da notare è che mentre le politiche multi-chiave consentono un sottoinsieme di chiavi private per autorizzare transazioni, la conoscenza di contro tutti i le chiavi pubbliche (e il esattamente politica) sono obbligatori.
Tuttavia, a differenza del seed, il backup della policy e delle chiavi pubbliche è molto meno rischioso: se qualcuno dovesse scoprirlo, potrebbe tracciare tutte le transazioni legate a quella policy. Anche se questo non è l'ideale, la privacy è importante! − non è così disastroso come perdere le tue monete e meno allettante per potenziali aggressori. Di conseguenza, archiviare più copie della policy in hot wallet, stamparla e archiviarla in vari luoghi, crittografarla e archiviarla nel cloud storage e così via, sono tutte strategie praticabili.
Il portafoglio a firma singola senza backdoor
Facciamo un passo indietro. Abbiamo discusso dei portafogli multi-firma, ma ora torniamo alle origini per creare un portafoglio a firma singola. Più precisamente, vogliamo un portafoglio che si sente ed sguardi come un portafoglio a firma singola, dopo una fase di configurazione iniziale. Tuttavia, miriamo a creare un portafoglio da cui il produttore non possa rubare i tuoi fondi anche se sono dannosi 😈 e il dispositivo di firma hardware si comporta in modi imprevedibili.
L'approccio può essere facilmente generalizzato per i portafogli multi-firma.
Gli esempi che seguono saranno scritti in un linguaggio chiamato politica, piuttosto che miniscript. La politica è più facile da leggere e pensare per gli esseri umani e può essere compilata in miniscript con strumenti automatizzati. Ulteriori informazioni su miniscript e policy.
Il portafoglio hardware può proteggerti nel modello di sicurezza standard. Miniscript può proteggerti nel modello di sicurezza anti-backdoor (e molto altro!).
Punto zero: lo status quo
Questa è la politica che la maggior parte degli utenti usa oggi: una singola chiave derivata da un seme prodotto nel portafoglio hardware.
pk(key_ledger)
Naturalmente, non c'è modo di provare l'assenza di una backdoor.
Fase uno: raddoppia quelle chiavi
Il primo passo è semplice:
and(pk(key_ledger), pk(key_client))
Qui, key_client
viene generato sulla macchina dell'utente, quindi a Hot Key. Essenzialmente, è una configurazione multisig 2 su 2. L'aspetto chiave è che l'utente non interagisce molto con key_client
: il portafoglio software genera questa chiave, la include nel backup del portafoglio e firma quando necessario (ad esempio, mentre l'utente è impegnato a firmare con il proprio firmatario hardware).
Questo sembra già abbastanza interessante: i fondi non sono spendibili senza key_client
, che non è disponibile per il fornitore dell'hardware; anche se il venditore malvagio avesse piena conoscenza della chiave nel dispositivo, non sarebbe comunque in grado di spostare i fondi senza prendere di mira esplicitamente l'utente, ad esempio compromettendo la macchina che esegue il suo portafoglio software.
Tuttavia, c'è un problema: durante l'onboarding del portafoglio, il firmatario hardware è l'unica entità in grado di generare la chiave pubblica (xpub) key_ledger
utilizzato nel portafoglio. Pertanto, il dispositivo potrebbe generare intenzionalmente un file Wrongs xpub controllato dall'aggressore e successivamente rifiutare (o non essere in grado) di firmare. Probabilmente, questo è uno scenario di attacco abbastanza estremo: il creatore della backdoor non può rubare i fondi, e il massimo che può fare è prendere di mira individualmente l'utente e chiedere un riscatto ("Posso aiutarti a recuperare i tuoi soldi se me ne paghi la metà").
Più realisticamente, questo aumenta la possibilità di errori di errori: ora hai due semi / chiavi private e ti servono entrambi per poter spendere. Perdi entrambi e le monete sono bloccate per sempre.
Fase due: recupero bloccato nel tempo
Introduciamo una chiave di ripristino separata, accessibile solo dopo un timelock specifico: and(older(25920)
, pk(key_recovery))
, dove 25920 è il numero approssimativo di blocchi in 6 mesi. La polizza completa diventa:
or(
and(pk(key_ledger), pk(key_client)), and(after(25920), pk(key_recovery))
)
Questo è simile allo scenario precedente, ma con una svolta: if key_ledger
or key_client
diventa non disponibile per qualsiasi motivo (più comunemente, perdendo il backup del seme!), a percorso di recupero diventa accessibile dopo 6 mesi.
Ci sono diverse opzioni per key_recovery
, ciascuno con i propri compromessi:
a. Usa un altro Hot Key. Questa è una soluzione pratica purché l'utente si ricordi di reimpostare il blocco orario. Tuttavia, se i tasti di scelta rapida vengono compromessi (uno scenario che dovrebbe essere generalmente considerato molto probabile!), l'attaccante potrebbe tentare di accedere ai fondi non appena scade il timelock, dando inizio a una corsa con il legittimo proprietario.
b. Utilizzare un dispositivo di firma hardware separato. Questa è una soluzione robusta e può essere utilizzata in combinazione con un fornitore diverso, se lo si desidera; tuttavia, aumenta la complessità della configurazione e il costo per l'utente in termini di esperienza utente.
c. Utilizzare un servizio esterno affidabile. Il portafoglio software potrebbe importare un xpub da un servizio esterno, utilizzandolo come key_recovery
. Questa terza parte è attendibile solo se il timelock scade, il che potrebbe essere un interessante compromesso per alcuni utenti.
Come accennato, come per ogni polizza con timelock, è importante che l'utente si ricordi di aggiornare le monete prima della scadenza del timelock.
Fase tre: la terza parte non attendibile
Uniamo entrambe le idee (a) e (c): per il percorso di recupero, abbiamo bisogno di un tasto di scelta rapida locale key_recovery_local
, e un key_recovery_remote
che è ospitato con un servizio semiaffidabile; conserviamo anche il timelock.
or(
and(pk(key_ledger), pk(key_client)),
and(older(25920),
and(pk(key_recovery_local), pk(key_recovery_remote))
)
)
Questo diminuisce il livello di fiducia necessario dal servizio di ripristino. Tuttavia, dobbiamo prestare attenzione: il servizio stesso potrebbe monitorare la blockchain e rilevare i nostri UTXO - dopotutto, ci hanno fornito il key_recovery_remote
xpub, in modo che possano cercare UTXO contenenti pubkey derivati da key_recovery_remote
. Potranno conoscere la nostra storia finanziaria, anche prima della scadenza del timelock e anche se non abbiamo mai utilizzato il loro servizio.
osservazione: gli alberi Taproot possono eliminare questo problema di privacy per alcune politiche, ma non è sempre così e richiede un'attenta valutazione basata sulla politica specifica.
Fase quattro: acceca la terza parte 🙈
Per evitare che il servizio di recupero venga a conoscenza della nostra storia finanziaria, invece di utilizzare la chiave pubblica che ci comunicano, possiamo utilizzare un cieco xpub per l'esame spiegato da mflaxman in dettaglio qui. In breve, invece di utilizzare key_recovery_remote
nella nostra politica, scegliamo quattro numeri casuali a 31 bit a
, b
, c
, d
(la fattori accecanti), e usiamo quanto segue BIP-32 chiave pub derivata:
key_recovery_remote_blind = key_recovery_remote_blind/a/b/c/d
È fondamentale che aggiungiamo anche noi key_recovery_remote
e i fattori di accecamento a
, b
, c
ed d
al nostro backup, per riferimenti futuri.
Se mai avremo bisogno di utilizzare il servizio di recupero, lo riveleremo a
, b
, c
, d
a loro. Fino ad allora, non hanno modo di scoprire che le chiavi derivano dal loro key_recovery_remote
sono in fase di pubblicazione sulla blockchain: il numero di combinazioni possibili per i 4 fattori di accecamento è 2^(31*4) = 2^124
, il che rende impossibile forzarli tutti.
Passaggio cinque: troppi tasti di scelta rapida possono bruciarti 🔥
Siamo riusciti a rendere il nostro software wallet unbackdoorable. Tuttavia, abbiamo introdotto un problema diverso: entrambe le condizioni di spesa utilizzano possono chiave non verificata dal portafoglio hardware. Pertanto, se la macchina host è compromessa, potrebbe indurti a registrare la politica utilizzando i tasti pub key_client
ed key_recovery_local
, ma inserisci chiavi private casuali e non correlate nel nostro backup (ricorda, il file possono le chiavi fanno parte del nostro backup!).
Ciò renderebbe sostanzialmente tutti i fondi inviati al portafoglio non spendibile, poiché nessuno controlla le chiavi private necessarie per firmare.
Ci sono alcune soluzioni per risolvere questo problema:
- Durante l'onboarding, dopo aver stampato il nostro backup su carta, possiamo utilizzare un dispositivo separato per verificare che i tasti di scelta rapida privati e pubblici sul backup corrispondano effettivamente. Questo approccio eliminerebbe il problema, poiché saremmo certi di avere tutte le chiavi necessarie per la ricostruzione e la firma.
- Possiamo aggiungere un'altra condizione di spesa con un timelock ancora più lungo (9 mesi, 38880 blocchi) che richiede solo un
key_ledger_failsafe
dal dispositivo hardware. In questo modo, nello scenario peggiore in assoluto in cui tutto il resto fallisce, ricorriamo alla sicurezza di un unico dispositivo di firma. Nelle normali operazioni, non lasceremmo mai scadere il primo timelock, quindi anche il secondo timelock non scadrà!
Con il secondo approccio, la policy finale sarebbe simile a questa
or(
and(pk(key_ledger), pk(key_client)),
or(
and(older(25920),
and(pk(key_recovery_local), pk(key_recovery_remote_blind))
),
and(older(38880), pk(key_ledger_failsafe))
),
)
Questa configurazione del portafoglio software soddisfa tutte le proprietà di sicurezza che abbiamo rivendicato all'inizio. Inoltre, offre un percorso di recupero in caso di principali chiavi di spesa key_ledger
sono persi. Una bella caratteristica da avere!
Onboarding al portafoglio software unbackdoorable
Come sarebbe l'esperienza utente per un portafoglio che utilizza una politica così complessa? Ecco una breve panoramica:
- L'utente apre il portafoglio software e inizia a creare un nuovo account.
- Il portafoglio software richiede all'utente di connettere il proprio dispositivo di firma e recupera gli xpub per
key_ledger
edkey_ledger_failsafe
. - Il portafoglio software genera autonomamente il tasto di scelta rapida key_client.
- Il portafoglio software ottiene
key_recovery_remote
da un servizio di co-firma o consente all'utente di specificare una chiave in un altro modo. Facoltativamente, calcola ilkey_recovery_remote_blind
utilizzando la tecnica dell'accecamento menzionata in precedenza. - Il portafoglio software genera un backup della policy contenente la policy miniscript precisa, tutti gli xpub e la chiave privata estesa per il
key_client
tasto di scelta rapida. Questo backup viene archiviato in modo sicuro (ad esempio, stampato su carta o salvato su un dispositivo separato). - Infine, il software wallet istruisce l'utente a registrare la policy sul dispositivo. L'utente esegue un controllo incrociato del backup (su carta o su qualsiasi supporto diverso dallo schermo controllato dal software wallet).
Il portafoglio software gestisce la maggior parte dei passaggi precedenti, rendendo il coinvolgimento dell'utente non più gravoso dello sforzo previsto necessario oggi per impostare un portafoglio multifirma.
L'onboarding dovrebbe richiedere solo pochi minuti una volta creata una buona UX. Una volta completato, il portafoglio software può fornire un'esperienza utente molto simile a quella di un tipico portafoglio a firma singola. Ecco come miniscript cambierà tutto: scomparendo dalla vista dell'utente!
Miglioramenti del fittone
Ledger supporta miniscript dalla versione 2.1.0 dell'app Bitcoin, rilasciata a marzo. Mentre il supporto per la ricezione e la spesa da indirizzi taproot è stato abilitato dal softfork a radice fittonante a novembre 2021, stiamo dando gli ultimi ritocchi al passaggio successivo della roadmap: il supporto di miniscript per taproot.
Taproot avrà un enorme impatto sull'usabilità degli approcci presentati in questo articolo. Se il percorso di spesa principale è una condizione di spesa a chiave singola, l'esistenza di percorsi di spesa per il ripristino non sarà rilevabile sulla blockchain a meno che non vengano utilizzati. Ciò migliorerà notevolmente la privacy eliminando completamente qualsiasi impronta digitale per il percorso di spesa standard. Inoltre, migliora la scalabilità, poiché il percorso di spesa standard diventa il più conveniente possibile da spendere. Ciò significa che non verranno sostenuti costi aggiuntivi a causa della presenza di percorsi di ripristino, a meno che non vengano utilizzati. Questo è un aggiornamento significativo rispetto alle transazioni SegWit, che richiedono la pubblicazione dell'intero script, incluse tutte le condizioni di spesa, durante qualsiasi spesa.
Infine, protocolli più avanzati come MuSig2 (recentemente standardizzato) e BRINA sovralimenterà il percorso chiave taproot. Basati sulle firme Schnorr, questi protocolli consentono di creare un singolo chiave pubblica aggregata che può essere utilizzato per rappresentare un n-di-n multifirma o a k-di-n schema di soglia. Ciò consentirebbe l'utilizzo del keypath taproot anche nei casi che oggi sono più comunemente rappresentati con specifici script multisig.
Conclusioni
Questo articolo esplora una piccola (ma importante) nicchia del vasto spazio di progettazione che il miniscript libera per i portafogli software.
Abbiamo mostrato come utilizzare miniscript per creare un portafoglio software "unbackdoorable", aggiungendo anche un percorso di ripristino aggiuntivo che consente di prevenire perdite disastrose di chiavi. Sebbene i dispositivi di firma hardware non possano applicare il modello di sicurezza anti-backdoor, supportando miniscript abilitano portafogli software che fanno esattamente questo!
Utilizzando in modo intelligente una combinazione di schemi multifirma, timelock, blind xpub e tasti di scelta rapida, abbiamo dimostrato una configurazione sicura del portafoglio che bilancia sicurezza, privacy e robustezza.
Inoltre, abbiamo sostenuto che ciò è possibile senza influire negativamente sull'esperienza dell'utente, poiché la complessità della configurazione non si traduce in un grande onere aggiuntivo per l'UX.
Siamo entusiasti delle possibilità che miniscript sbloccherà per la prossima generazione di custodia autonoma di bitcoin.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- PlatoData.Network Generativo verticale Ai. Potenzia te stesso. Accedi qui.
- PlatoAiStream. Intelligenza Web3. Conoscenza amplificata. Accedi qui.
- PlatoneESG. Automobilistico/VE, Carbonio, Tecnologia pulita, Energia, Ambiente, Solare, Gestione dei rifiuti. Accedi qui.
- BlockOffset. Modernizzare la proprietà della compensazione ambientale. Accedi qui.
- Fonte: https://www.ledger.com/blog/towards-a-trustless-bitcoin-wallet-with-miniscript
- :ha
- :È
- :non
- :Dove
- $ SU
- 1
- 2021
- 2023
- 30
- 7
- 9
- a
- capacità
- capace
- WRI
- sopra
- Assoluta
- assolutamente
- accesso
- accessibile
- accessibile
- accordo
- Il mio account
- conti
- Action
- azioni
- attivamente
- effettivamente
- aggiungere
- l'aggiunta di
- aggiunta
- aggiuntivo
- Inoltre
- indirizzi
- Avanzate
- Dopo shavasana, sedersi in silenzio; saluti;
- contro
- aiuto
- puntare
- Tutti
- consentire
- consente
- lungo
- già
- anche
- Sebbene il
- sempre
- an
- ed
- ha annunciato
- Un altro
- in qualsiasi
- nulla
- App
- attraente
- apparire
- applicazioni
- approccio
- approcci
- approvazione
- approssimativo
- SONO
- discutibilmente
- sostenuto
- articolo
- AS
- aspetto
- assistere
- associato
- At
- attacco
- verificabile
- autorizzare
- Automatizzata
- autonomamente
- disponibile
- precedente
- porta posteriore
- Backed
- sostegno
- di riserva
- saldi
- basato
- basic
- fondamentalmente
- Nozioni di base
- BE
- perché
- diventare
- diventa
- prima
- Inizio
- essendo
- sotto
- MIGLIORE
- fra
- Al di là di
- Bitcoin
- Bitcoin Wallet
- portafogli bitcoin
- Uvaggio:
- blockchain
- Blocchi
- Blockstream
- Blog
- entrambi
- Cervello
- Porta
- BROADCAST
- Insetto
- costruire
- costruito
- onere
- bruciare
- affari
- occupato
- ma
- by
- detto
- Materiale
- non può
- capace
- attento
- Custodie
- casi
- catastrofico
- Causare
- causando
- cautela
- certo
- Challenge
- possibilità
- il cambiamento
- Bambini
- patata fritta
- Scegli
- la scelta
- rivendicato
- chiaramente
- Cloud
- Cloud Storage
- codice
- Monete
- combinazione
- combinazioni
- Uncommon
- comunemente
- comunicare
- Aziende
- azienda
- Società
- completamento di una
- completamente
- complesso
- complessità
- Compromissione
- compromettendo
- calcoli
- informatica
- preoccupazioni
- condizione
- condizioni
- Convegno
- Configurazione
- Connettiti
- Consenso
- conseguentemente
- Prendere in considerazione
- considerato
- contenute
- controllata
- controlli
- convincere
- correggere
- danneggiati
- Costo
- potuto
- Portata
- creare
- Creazione
- creazione
- Creatore
- critico
- aspetto critico
- cruciale
- Attualmente
- custode
- Custodia
- Clienti
- Pericoloso
- Rifiuta
- diminuisce
- ritenere
- definito
- Richiesta
- dimostrato
- schierato
- derivato
- descrizione
- Design
- progettato
- desiderato
- dettaglio
- dettagliati
- dettagli
- individuare
- sviluppatori
- dispositivo
- dispositivi
- diverso
- difficile
- diminuzione
- direttamente
- Amministrazione
- scomparendo
- disastroso
- scopri
- scoprire
- discusso
- discussione
- visualizzati
- do
- effettua
- non
- fatto
- doppio
- dovuto
- durante
- ogni
- più facile
- facilmente
- sforzo
- o
- eliminato
- eliminando
- altro
- enfatizzare
- occupato
- enable
- abilitato
- Abilita
- fine
- imporre
- abbastanza
- garantire
- assicurando
- entrare
- seducente
- Intero
- interamente
- entità
- usate
- errori
- particolarmente
- essential
- essenzialmente
- stabilire
- eccetera
- valutazione
- Anche
- EVER
- Ogni
- qualunque cosa
- di preciso
- esempio
- Esempi
- eccitato
- eseguire
- eseguito
- Esercitare
- esistenza
- previsto
- esperienza
- scadenza
- Sfruttare
- esplora
- export
- si estende
- esterno
- estremo
- facilitare
- Fattori
- fallisce
- Fallimento
- abbastanza
- Autunno
- lontano
- caratteristica
- Caratteristiche
- Febbraio
- pochi
- finale
- finanziario
- storia finanziaria
- Trovate
- Nome
- flessibile
- Capovolgere
- Focus
- i seguenti
- segue
- Nel
- per sempre
- Avanti
- quattro
- quadri
- frequentemente
- Amico
- da
- pieno
- completamente
- funzionalità
- fondo
- fondi
- Inoltre
- inutile
- futuro
- scopo generale
- generalmente
- generare
- generato
- genera
- la generazione di
- ELETTRICA
- dato
- Go
- andando
- buono
- grande
- molto
- ha avuto
- Metà
- Hardware
- dispositivo hardware
- Portafoglio Hardware
- Produttore di portafogli hardware
- hardware wallet
- dannoso
- Avere
- avendo
- Aiuto
- quindi
- storia
- tenere
- speranza
- host
- ospitato
- HOT
- Come
- Tuttavia
- http
- HTTPS
- Enorme
- Gli esseri umani
- idea
- ideale
- idee
- identificare
- if
- subito
- Impact
- impatto
- implementato
- importare
- importante
- impossibile
- competenze
- in
- inclusi
- Compreso
- incorporando
- Aumenta
- incredibile
- infatti
- studente indipendente
- Individualmente
- industria
- informazioni
- intrinsecamente
- inizialmente
- interno
- Insider
- ispirare
- installazione
- esempio
- invece
- apposta
- interagire
- interattivo
- interesse
- interessato
- interessante
- Interfaccia
- ai miglioramenti
- introdurre
- introdotto
- Introduce
- intrusivo
- coinvolgimento
- coinvolgendo
- problema
- IT
- SUO
- stessa
- ad appena
- solo uno
- Le
- Tasti
- Sapere
- conoscenze
- conosciuto
- paesaggio
- Lingua
- laptop
- Cognome
- dopo
- avvocato
- Leads
- IMPARARE
- apprendimento
- meno
- Ledger
- a sinistra
- legittimo
- meno
- lasciare
- Livello
- leveraging
- piace
- probabile
- connesso
- elencati
- Caricamento in corso
- locale
- posizioni
- bloccato
- Lunghi
- più a lungo
- Guarda
- una
- perdere
- a
- spento
- perdite
- perso
- macchina
- Principale
- Maggioranza
- make
- FA
- Fare
- il malware
- gestisce
- gestione
- manipolazione
- modo
- Costruttore
- Produttori
- molti
- Marzo
- partita
- Maggio..
- si intende
- analisi
- meccanismo
- medie
- menzionato
- semplicemente
- messaggio
- messaggi
- metodo
- metodi
- Miami
- forza
- minicopione
- minoranza
- Minuti
- Missione
- errori
- modello
- soldi
- monitoraggio
- mese
- Scopri di più
- Inoltre
- maggior parte
- soprattutto
- cambiano
- mosso
- molti
- multiplo
- Multisig
- devono obbligatoriamente:
- Nome
- in via di
- necessaria
- Bisogno
- di applicazione
- esigenze
- negativamente
- internazionale
- mai
- New
- notizie
- GENERAZIONE
- bello
- no
- non tecnico
- normale
- Novembre
- novembre 2021
- adesso
- numero
- numeri
- ottiene
- of
- offrire
- offerta
- Offerte
- offline
- on
- Procedura di Onboarding
- una volta
- ONE
- quelli
- esclusivamente
- aprire
- open source
- apre
- operativo
- Operazioni
- Opportunità
- Opzioni
- or
- minimo
- Altro
- altrimenti
- nostro
- su
- delineato
- al di fuori
- ancora
- complessivo
- panoramica
- proprio
- proprietario
- Carta
- supremo
- parte
- particolarmente
- partito
- sentiero
- Paga le
- Eseguire
- Forse
- periodo
- permanentemente
- fase
- telefono
- posto
- Partner
- Platone
- Platone Data Intelligence
- PlatoneDati
- punto
- punti
- Termini e Condizioni
- politica
- Popolare
- possibilità
- possibile
- forse
- Post
- potenziale
- potenzialmente
- energia
- Pratico
- in pratica
- pratica
- bisogno
- precisamente
- predire
- Prevedibile
- presenza
- presenti
- presentata
- prevenire
- impedisce
- precedente
- in precedenza
- principalmente
- primario
- stampa
- Precedente
- Privacy
- un bagno
- chiave privata
- Chiavi private
- Problema
- problemi
- procedura
- processi
- produrre
- Prodotto
- produce
- propriamente
- proprietà
- proprietà
- proposto
- protegge
- protetta
- proteggere
- protezione
- protocollo
- protocolli
- Dimostra
- fornire
- purché
- la percezione
- chiave pubblica
- chiavi pubbliche
- pubblicare
- pubblicato
- editoriale
- scopo
- metti
- Mettendo
- domanda
- Gara
- casuale
- Ransom
- piuttosto
- raggiungere
- Leggi
- Lettore
- realizzando
- ragione
- ricevente
- recentemente
- riconoscere
- record
- recupero
- si riferisce
- registro
- registrato
- registrazione
- relativamente
- rilasciare
- rilasciato
- fare affidamento
- ricorda
- sostituire
- rappresentare
- rappresentato
- reputazione
- richiedere
- necessario
- richiede
- risultante
- conservare
- ritorno
- rivelare
- destra
- Rischio
- rischi
- Rischioso
- tabella di marcia
- robusto
- robustezza
- Ruolo
- ruoli
- running
- corre
- stesso
- dire
- Scalabilità
- scansione
- scenario
- schema
- schemi
- Schnorr
- allo
- script
- Secondo
- Sezione
- sicuro
- in modo sicuro
- problemi di
- vedere
- seme
- semi
- cerca
- sembrare
- sembra
- SegWit
- Autoaffidamento
- invio
- delicata
- inviato
- separato
- servizio
- set
- flessibile.
- alcuni
- Corti
- dovrebbero
- ha mostrato
- segno
- firme
- significativa
- significativamente
- firma
- Segni
- simile
- Un'espansione
- semplificando
- da
- singolo
- piccole
- smart
- So
- Software
- soluzione
- Soluzioni
- RISOLVERE
- alcuni
- Qualcuno
- presto
- sofisticato
- Fonte
- lo spazio
- specializzarsi
- specifico
- Specifiche tecniche
- spendere
- Spendere
- Standard
- si
- inizio
- Stato dei servizi
- step
- Passi
- Ancora
- conservazione
- memorizzati
- memorizzare
- strategie
- forza
- Corda
- forte
- Lotta
- di successo
- Con successo
- tale
- riassumere
- Sovralimentare
- supporto
- Supporto
- supporti
- suppone
- sistemico
- il rischio sistemico
- SISTEMI DI TRATTAMENTO
- Arnesi
- Fai
- fittone
- Target
- mira
- Consulenza
- tecnicamente
- Tecnologia
- condizioni
- di
- che
- Il
- Le monete
- loro
- Li
- si
- poi
- Là.
- in tal modo
- perciò
- Strumenti Bowman per analizzare le seguenti finiture:
- di
- cose
- think
- Terza
- questo
- quelli
- minacce
- tre
- soglia
- Attraverso
- così
- tempo
- richiede tempo
- a
- oggi
- di oggi
- pure
- strumenti
- Argomenti
- Totale
- verso
- Traccia
- pista
- track record
- Treni
- delle transazioni
- Le transazioni
- transizioni
- tradurre
- tesoreria
- Alberi
- vero
- Affidati ad
- di fiducia
- trustless
- Verità
- twist
- seconda
- Tipi di
- tipico
- incapace
- capire
- scatena
- a differenza di
- sbloccare
- sblocca
- imprevedibile
- fino a quando
- upgrade
- us
- usabilità
- uso
- utilizzato
- Utente
- Esperienza da Utente
- utenti
- usa
- utilizzando
- utilizzare
- utilizzati
- Utilizzando
- ux
- CONVALIDARE
- varietà
- vario
- Fisso
- venditore
- verificato
- verificare
- versione
- molto
- vitale
- importantissima
- vulnerabilità
- aspettare
- Portafoglio
- Portafogli
- volere
- Prima
- Modo..
- modi
- we
- sono stati
- Che
- quando
- ogni volta che
- se
- quale
- while
- tutto
- perché
- wikipedia
- volere
- con
- entro
- senza
- parole
- mondo
- sarebbe
- scritto
- Wrong
- anno
- ancora
- Tu
- Trasferimento da aeroporto a Sharm
- te stesso
- zefiro
- zero