Ting at vide: |
- Miniscript gør det muligt at bygge Bitcoin-software tegnebøger, der gør en bagdør umulig at udnytte. Vi er glade for at kunne sige, at Ledger er den første kommercielle hardware wallet-producent, der understøtter miniscript.
- De ekstra funktioner kan implementeres uden at gå på kompromis med brugeroplevelsen. |
Hardware-signeringsenheder er udviklet til at beskytte brugeren mod forskellige almindelige angrebsvektorer, såsom:
- Uautoriseret adgang og udvinding af frøet
- Malware inficerer din tilknyttede softwarepung
- Softwaresårbarheder på selve enheden
Som enhver virksomhed er det i producentens bedste interesse at lave enheder som ubrydeligt som de kan. Det er altafgørende at lykkes med denne mission, og sikkerhedsfirmaer som Ledger stoler på et ry bygget på deres track record.
Nogle brugere kan dog stadig have bekymringer. Hvad forhindrer virksomheden i selv at skjule en bagdør i enhederne?
I selvforsorgen har vi stol ikke på, vi verificerer.
Men kan brugeren virkelig kontrollere, at en enhed ikke har en bagdør?
Det er det centrale spørgsmål i denne artikel. Mere præcist behandler denne artikel følgende emner:
- hvad er en bagdør, og hvorfor det er svært, hvis ikke umuligt, at bevise, at der ikke er en;
- hvorfor kun brugere kan beskytte sig mod denne risiko;
- hvordan miniscript muliggør praktiske løsninger på denne udfordring for bitcoin-punge.
Ved at være den første hardware-pung, der understøtter miniskrift, håber vi at inspirere udviklere til at bygge sikre løsninger og opgradere hele vores branche og eliminere chancen for, at en sådan systemisk risiko nogensinde bliver til virkelighed.
Hvordan man bygger ubagdøre signeringsenhed
Lad os sige det klart: du kan ikke.
For at forsvare dig selv mod en potentiel bagdør har du brug for en anden angrebsmodel end den, vi skitserede ovenfor: I dette scenarie kan modstanderen være sælgeren selv eller en korrupt insider.
Den ofte omtalte løsning på dette problem er Open Source: når alt kommer til alt, hvis du kan inspicere koden, hvad kan der så gå galt?
Sandheden er dog mere kompleks. Da leverandøren samler hardwaren, kan en bagdør være helt indeholdt i den. Hardwaren kunne være designet til at se bort fra softwaren på visse punkter og i stedet udføre skadelig kode.
I modsætning til software, der kører på almindelige computerenheder (som din bærbare computer eller telefon), er det praktisk talt umuligt at undersøge hardwaren med nutidens teknologi. Selvom hardwarespecifikationerne var fuldstændig open source, komplet med detaljerne for hver enkelt gate i kredsløbet, ville du stadig have brug for dyrt udstyr for at verificere, at en specifik chip er bygget i overensstemmelse med dem.
Sådan bagdører du en hardwarepung
Her er et par af de enkleste metoder, som en ondsindet hardwareleverandør kan bruge til at introducere en bagdør, sammen med nogle måder, superbrugere kan beskytte sig selv på i dag.
Frøgenerering
Mange enheder giver dig mulighed for at generere et frø (også kaldet Hemmelig gendannelsessætning) direkte på enheden ved hjælp af en Ægte tilfældige talgenerator.
😈 Den onde enhed kunne generere frø, der virker tilfældige, men som faktisk er forudsigelige for angriberen.
🛡️ Superbrugere kan omgå dette problem ved at generere en mnemonisk offline. Derudover inkorporerer en robust løsen kan også generere et helt uafhængigt frø, som hardwareleverandøren ikke kan forudsige. Afvejningen er, at brugerne skal sikre, at de sikkerhedskopierer adgangssætningen korrekt ud over de mnemoniske ord.
Offentlig nøgleafledning
Hardware tegnebøger udleder og eksporterer offentlige nøgler (også kaldet xpubs, forkortelse for udvidet offentlig nøgle som defineret i BIP-32. Det xpubs bruges til at generere de mulige adresser til at modtage mønter.
😈 Den onde enhed kunne returnere offentlige nøgler kontrolleret af angriberen i stedet for de korrekte, der stammer fra frøet.
🛡️ Brugere kunne validere det afledte xpub på en anden offline enhed. Men at komme ind i frøet på andre enheder medfører sine egne risici. Sikkerhedsbevidste brugere kan anse enhver enhed, der har fået adgang til frøet, som farlig, potentielt til det punkt at ødelægge dem. Den typiske bruger kan have svært ved at udføre denne procedure korrekt, mens han håndterer de yderligere risici.
Lækker information
An luft hul er ofte foreslået som en løsning for at forhindre en ondsindet eller kompromitteret enhed i at eksfiltrere private nøgler. Når alt kommer til alt, hvis en enhed ikke kan kommunikere med omverdenen, kan den ikke gøre noget skadeligt, vel?
Ikke helt!
Enheden kan altid kommunikere, når den er i brug: den producerer signaturer. Disse signaturer ender inde i transaktioner, der udsendes og gemmes for evigt på blockchain.
En signatur er en tilfældigt udseende byte-streng på mindst 64 bytes. Men da mere end én gyldig signatur kan svare til den samme meddelelse, kan en ondsindet enhed kommunikere nogle få bits information hver gang en signatur produceres, ved at generere flere signaturer og selektivt vælge, hvilken der skal publiceres.
😈 En slyngel enhed kan producere ikke-tilfældige signaturer, der over mange transaktioner afslører frøet til angriberen!
En angriber, der har succes med at installere en sådan bagdør, skal blot vente på, at ondsindede signaturer vises på blockchain, indtil de har nok information til at rekonstruere hele frøet.
🛡️ For ECDSA-signaturer, ved hjælp af en standardiseret metode til at udlede nonce deterministisk (som f.eks. RFC6979) forpurrer dette angreb, forudsat at man validerer, at den producerede signatur matcher den forventede. Men for at sikre, at dette er tilfældet, kræves det at indlæse en anden enhed med det samme frø, hvilket fører til de samme praktiske problemer som nævnt i det foregående afsnit.
🛡️ En interessant tilgang er at bruge en smart måde at styrke enheden til faktisk at vælge en tilfældig nonce. En protokol til dette formål, kendt som anti-exfil or anti-klepto, er i øjeblikket implementeret i Blockstream Jade og ShiftCrypto BitBox02 hardware tegnebøger. Læs mere på ShiftCryptos blog, som også indeholder en teknisk beskrivelse af, hvordan et sådant angreb kan udføres.
Okay, så er der intet håb?
De fleste af forsvarene🛡️ anført ovenfor kræver for det meste, at brugeren udfører eksplicitte, påtrængende handlinger for at beskytte sig selv: enten ved at generere frøet på egen hånd (i det væsentlige ved at bruge deres hjerne til at erstatte funktionaliteten fra hardware-pungen), eller ved at bruge en yderligere enhed for at verificere, at beregningerne er udført korrekt.
Anti-exfil-protokollen skiller sig dog ud: I betragtning af, at der altid er en maskine, der formidler mellem hardware-underskriveren og omverdenen, kan denne maskine hjælpe. Gennem en interaktiv protokol med hardware-underskriveren kan den håndhæve brugen af en virkelig tilfældig nonce, hvilket mindsker eller eliminerer chancen for væsentligt at manipulere den endelige signatur.
I dette blogindlæg er vi primært interesserede i disse typer foranstaltninger: Mens strategier, der markant forværrer UX'en, kan være tiltalende for superbrugere, vil de sandsynligvis gøre ting værre i praksis for de mindre teknisk dygtige brugere − hvilket er langt de fleste.
Sikkerhedsmodellen
Standardmodel til hardwareunderskrivere
Hardwaresigneringsproducenter sigter mod at beskytte brugere mod en række potentielle trusler (for flere detaljer, se Trusselsmodel). I denne artikel fokuserer vi på en, meget vigtig egenskab, som kan opsummeres som følger:
Brugere kan ikke snydes til en handling, der resulterer i tab af midler, forudsat at de forstår og verificerer oplysningerne på skærmen før godkendelse.
Godkendelse er nødvendig for enhver følsom handling, især underskrifter. Beskyttelse af frøet ville være nytteløst, hvis malware kunne producere signaturer for vilkårlige beskeder, såsom en transaktion, der dræner alle midlerne!
Det er afgørende at understrege, at ovenstående egenskab skal holde stik, selvom softwarepungen er fuldstændig kompromitteret. Det, der vises på din bærbare computer/telefonskærm, kan ikke stoles på: malware kan erstatte adresser, bedrage dig om, hvilke adresser der er dine, præsentere en transaktion, men derefter videresende en anden til enheden til signering osv.
Derfor tager firmwaren og applikationerne, der kører på en hardwaresigneringsenhed, softwarepungen i sig selv upålidelige og utroværdig.
Anti-bagdør sikkerhedsmodel til software tegnebøger
I dette afsnit vender vi rollerne helt om. Vi ønsker nu at designe en software tegnebog der forhindrer hardwareproducenten i at stjæle eller forårsage tab af penge, selvom enheden er fuldstændig ondsindet.
Derfor kan dette ikke være en ejendom tilhørende enhed: snarere, det er en egenskab af software tegnebog Opsætning. Vi kan opsummere det som følger:
Forudsat at softwarepungen ikke er kompromitteret, kan hardwareproducenten ikke forårsage, at brugeren mister penge.
Dette kan virke kontraintuitivt, da det direkte modsiger standardsikkerhedsmodellen beskrevet ovenfor. Men "ikke at have en bagdør" betyder "at gøre præcis, hvad de skal gøre". Da software wallet er sål grænsefladen mellem signeringsenheden og den ydre verden, er det det eneste sted, hvor beskyttelse mod dårlig opførsel kan håndhæves – hvad enten det er på grund af en fejl eller eksplicit kompromittering af enheden.
Bemærk, at denne model strækker sig betydeligt ud over en enhedsfejl, såsom en fejl, der kan udnyttes. I dette tilfælde opererer vi inden for et scenario, hvor enheden aktivt søger at forårsage tab af midler.
Selvfølgelig er der ingen mulig beskyttelse, hvis producenten har gået på kompromis både enheden og også din maskine, der kører softwarepungen. Derfor er det helt afgørende at sikre, at din software wallet er Open Source og kan kontrolleres, især hvis den er bygget af den samme leverandør, der fremstiller hardwaren.
Rollen som miniscript
Miniscript udstyrer tegnebogsudviklere med muligheden for fuldt ud at udnytte de avancerede funktioner i bitcoin Script. For en oversigt over de utrolige muligheder miniscript låser op, se vores tidligere blogindlæg. Du vil måske også lytte til Afsnit 452 af Stephan Livera Podcast til en diskussion om, hvad miniscript bringer til bitcoin-landskabet.
Ledger Bitcoin-appen understøtter miniscript siden dens 2.1.0-udgivelse, som blev implementeret i februar 2023. På Bitcoin 2023-konferencen i Miami annoncerede Wizardsardine 1.0-udgivelsen af deres Liana pung, den første installerede tegnebog baseret på miniscript.
Den grundlæggende idé med dette indlæg er, at en bitcoin wallet-konto ikke kun kan beskyttes med en, men med flere nøgler. Dette tillader fleksible sikkerhedsrammer, hvor selv en total fejl eller kompromittering af en nøgle ikke er katastrofal.
Multisig overvejelser
Multisig er en væsentlig opgradering af styrken af en selvforsorgsløsning. Ved at udnytte programmerbarheden af Bitcoin Script muliggør det oprettelsen af tegnebøger, der kræver flere nøgler i stedet for kun én. EN k-af-n multisig tegnebog kræver en kombination af k gyldige underskrifter, ud af i alt n mulige.
Multisig lægger dog også en UX-byrde på brugeren og introducerer nye muligheder for fejl. En 3-af-3 multisig-opsætning, der involverer tre forskellige nøgler, der er sikkert sikkerhedskopieret på separate steder, tilbyder stærk sikkerhed... men det betyder også, at hvis selv en enkelt nøglen er tabt, mønterne bliver permanent utilgængelige!
Derfor har opsætninger, der tilbyder mere redundans (som 2-af-3 eller 3-af-5) en tendens til at være mere populære: Skulle en enkelt nøgle gå tabt, kan de andre nøgler stadig lette gendannelsen. Men dette introducerer en afvejning: Hvis en nøgle bliver kompromitteret uden at du ved det, reduceres den samlede sikkerhed betydeligt!
Virksomheder som hjem , Ukædet kapital specialiseret sig i selvdepotløsninger, hvor de besidder et mindretal af nøglerne for deres kunder. De hjælper også deres brugere ved at guide dem gennem onboarding-processen og forenkle brugen af custody-systemer, hvilket ellers kan være skræmmende for de fleste ikke-tekniske brugere.
Miniscript og tidslåste gendannelsesstier
Liana bruger miniscript til at skabe tegnebøger, der har flere måder at bruge på:
- en primær udgiftsbetingelse, som er umiddelbart tilgængelig;
- en eller flere yderligere forbrugsbetingelser, der bliver tilgængelige efter en vis periode (de såkaldte tidslås).
Dette muliggør mange interessante use cases:
- Recovery: En standard tegnebog med enten enkeltsignatur eller multisig som den primære udgiftssti; men en separat gendannelsesmekanisme (en nøgle med et andet frø, en multisig, en teknisk kyndig ven, en depotmand) bliver tilgængelig efter 6 måneder.
- Governance: Et selskab med to direktører kunne etablere en 2-af-2 til selskabets kasse; i tilfælde af uenighed kan en betroet advokat få adgang til midlerne efter 6 måneder.
- Forrådnende multisig: En pung starter som en 3-af-3, går over til en 2-af-3 efter 6 måneder og bliver en 1-af-3 efter 9 måneder.
- Automatisk arv: Restitutionsvejen efter 6 måneder omfatter en 2-af-3 af dine tre børn; måske en anden genopretningsvej efter 1 år involverer en notar, i tilfælde af at arvingerne ikke kan nå til enighed.
Bemærkning: alle eksemplerne ovenfor bruger en relativ tidslås, som henviser til mønternes alder (altså: sidste gang midlerne blev flyttet). Afvejningen er, at brugeren skal huske at bruge mønterne (ved at sende dem til sig selv), hvis tidslåsen nærmer sig udløb.
Dette er blot nogle få eksempler, men de burde være nok til at overbevise læseren om, at miniscript er et væsentligt skridt fremad mod at realisere Bitcoins potentiale som programmerbare penge.
Registrering af tegnebogspolitik
For Bitcoin wallet-konti, der bruger flere nøgler (det være sig multisig eller mere sofistikerede miniscript-baserede løsninger), er det afgørende at træne enheden til at identificere de adresser, der hører til den pågældende konto. Dette er den eneste måde, enheden kan hjælpe brugeren med at sikre, at de modtager eller bruger fra de korrekte adresser...
Validering af politikken og xpubs af cosigneren mod en pålidelig backup er afgørende, men relativt tidskrævende.
Den gode nyhed er, at det kun skal gøres én gang:
Når en politik er registreret med et navn (i eksemplet "Decaying 3of3"), vil din enhed være i stand til at genkende den, når en sådan politik anvendes.
Interesserede i tekniske detaljer kan finde mere information i BIP forslag.
Politik backup
Et kritisk aspekt at bemærke er, at mens multi-nøgle politikker tillader en delmængde af private nøgler at godkende transaktioner, kendskab til alle de offentlige nøgler (og eksakt politik) er påkrævet.
Men i modsætning til frøet er sikkerhedskopiering af politikken og de offentlige nøgler langt mindre risikabelt: Hvis nogen opdagede det, kunne de spore alle de transaktioner, der er knyttet til denne politik. Selvom dette ikke er ideelt – privatlivets fred betyder noget! − det er ikke så katastrofalt som at miste dine mønter og mindre lokkende for potentielle angribere. Det er derfor alle mulige strategier at gemme flere kopier af politikken i hot wallets, udskrive den og gemme den forskellige steder, kryptere den og gemme den i cloud storage og så videre.
Den ubagdørs enkeltsignaturpung
Lad os tage et skridt tilbage. Vi har diskuteret tegnebøger med flere signaturer, men nu går vi tilbage til det grundlæggende for at skabe en tegnebog med enkelt signatur. Mere præcist vil vi have en pung, der føler sig , udseende som en tegnebog med én signatur efter en indledende opsætningsfase. Alligevel sigter vi efter at skabe en tegnebog, hvorfra producenten ikke kan stjæle dine penge, selvom de er ondsindede 😈, og hardware-signeringsenheden opfører sig på uforudsigelige måder.
Fremgangsmåden kan nemt generaliseres til tegnebøger med flere signaturer.
Eksemplerne nedenfor vil være skrevet på et sprog kaldet politik, i stedet for miniscript. Politik er lettere for mennesker at læse og tænke over, og kan kompileres til miniscript med automatiserede værktøjer. Læs mere om miniscript og politik.
Hardwarepungen kan beskytte dig i standardsikkerhedsmodellen. Miniscript kan beskytte dig i anti-bagdørs sikkerhedsmodellen (og meget mere!).
Trin nul: status quo
Dette er den politik, de fleste brugere bruger i dag: en enkelt nøgle, der er afledt af et frø, der er produceret i hardware-pungen.
pk(key_ledger)
Selvfølgelig er der ingen måde at bevise fraværet af en bagdør.
Trin et: fordoble disse nøgler
Det første trin er enkelt:
and(pk(key_ledger), pk(key_client))
Her, key_client
genereres på brugerens maskine, derfor en genvejstast. Grundlæggende er det en 2-af-2 multisig-opsætning. Det centrale aspekt er, at brugeren ikke interagerer meget med key_client
: Software-pungen genererer denne nøgle, inkluderer den i tegnebogens backup og underskriver, når det er nødvendigt (f.eks. mens brugeren er i gang med at signere med sin hardware-underskriver).
Dette virker allerede ret interessant: midlerne er ubrugelige uden key_client
, som ikke er tilgængelig for hardwareleverandøren; selv hvis den onde sælger havde fuld viden om nøglen i enheden, ville de stadig være ude af stand til at flytte midlerne uden eksplicit at målrette brugeren, for eksempel ved at kompromittere den maskine, der kører deres software wallet.
Der er dog et problem: under wallet onboarding er hardware-underskriveren den eneste enhed, der er i stand til at generere den offentlige nøgle (xpub) key_ledger
brugt i pungen. Derfor kunne enheden med vilje generere en Wrongs xpub kontrolleret af angriberen, og senere afvise (eller være ude af stand) til at underskrive. Det er uden tvivl et ret ekstremt angrebsscenarie: bagdørsskaberen kan ikke stjæle midlerne, og det meste, de kan gøre, er individuelt at målrette brugeren og kræve en løsesum ("Jeg kan hjælpe dig med at hente dine penge, hvis du betaler halvdelen til mig ”).
Mere realistisk øger dette chancen for fejl ved fejl: du har nu to frø / private nøgler, og du skal både for at kunne bruge. Tab enten, og mønter er låst for evigt.
Trin to: tidslåst genopretning
Vi introducerer en separat gendannelsesnøgle, som kun er tilgængelig efter en specifik tidslås: and(older(25920)
, pk(key_recovery))
, hvor 25920 er det omtrentlige antal blokke på 6 måneder. Den fulde politik bliver:
or(
and(pk(key_ledger), pk(key_client)), and(after(25920), pk(key_recovery))
)
Dette ligner det tidligere scenarie, men med et twist: if key_ledger
or key_client
bliver utilgængelig af en eller anden grund (oftest, at miste frø-backupen!), a genopretningsvej bliver tilgængelig efter 6 måneder.
Der er flere muligheder for key_recovery
, hver med sine egne afvejninger:
a. Brug en anden genvejstast. Dette er en praktisk løsning, så længe brugeren husker at nulstille tidslåsen. Men hvis genvejstasterne er kompromitteret (et scenarie, der generelt bør betragtes som ret sandsynligt!), kan angriberen forsøge at få adgang til midlerne, så snart tidslåsen udløber, og starte et kapløb med den legitime ejer.
b. Brug en separat hardwaresigneringsenhed. Dette er en robust løsning og kan bruges i kombination med en anden leverandør, hvis det ønskes; dog øger det opsætningskompleksiteten og omkostningerne for brugeren med hensyn til brugeroplevelse.
c. Brug en betroet ekstern tjeneste. Software tegnebogen kunne importere en xpub fra en ekstern tjeneste ved at bruge den som key_recovery
. Denne tredjepart er kun tillid til, hvis tidslåsen udløber, hvilket kan være en tiltalende afvejning for nogle brugere.
Som nævnt er det, ligesom for enhver politik med timelocks, vigtigt, at brugeren husker at genopfriske mønterne inden udløbet af timelock.
Trin tre: den upålidelige tredjepart
Lad os blande begge ideer (a) og (c): til gendannelsesstien kræver vi en lokal genvejstast key_recovery_local
Og en key_recovery_remote
der hostes med en semi-betroet tjeneste; vi beholder også tidslåsen.
or(
and(pk(key_ledger), pk(key_client)),
and(older(25920),
and(pk(key_recovery_local), pk(key_recovery_remote))
)
)
Dette mindsker det nødvendige tillidsniveau fra gendannelsestjenesten. Vi skal dog udvise forsigtighed: tjenesten i sig selv kunne overvåge blockchain og opdage vores UTXO'er - trods alt gav de os key_recovery_remote
xpub, så de kan scanne efter UTXO'er, der indeholder pubnøgler afledt af key_recovery_remote
. De vil være i stand til at lære om vores økonomiske historie, selv før tidslåsen udløber, og selvom vi aldrig har brugt deres service.
Bemærkning: Pælerodstræer kan eliminere dette privatlivsproblem for visse politikker, men dette er ikke altid tilfældet og kræver omhyggelig evaluering baseret på den specifikke politik.
Trin fire: Blind tredjeparten 🙈
For at forhindre inddrivelsestjenesten i at lære om vores økonomiske historie, i stedet for at bruge den pubkey, de kommunikerer til os, kan vi bruge en blind xpub teknik forklaret af mflaxman i detaljer her. Kort sagt, i stedet for at bruge key_recovery_remote
i vores politik vælger vi fire 31-bit tilfældige tal a
, b
, c
, d
(Den blændende faktorer), og vi bruger følgende BIP-32 afledt pubkey:
key_recovery_remote_blind = key_recovery_remote_blind/a/b/c/d
Det er afgørende, at vi også tilføjer key_recovery_remote
, og de blændende faktorer a
, b
, c
, d
til vores backup, til fremtidig reference.
Hvis vi nogensinde har brug for at bruge gendannelsestjenesten, så afslører vi det a
, b
, c
, d
til dem. Indtil da har de ingen måde at opdage, at nøgler stammer fra deres key_recovery_remote
udgives på blockchain: antallet af mulige kombinationer for de 4 blændende faktorer er 2^(31*4) = 2^124
, hvilket gør det umuligt at bruteforce dem alle.
Trin fem: for mange genvejstaster kan brænde dig 🔥
Det lykkedes os at gøre vores softwarepung uudnyttelig. Men vi introducerede et andet problem: begge forbrugsbetingelser bruger en lokalt genereret, hot nøgle, der ikke er verificeret af hardware-pungen. Derfor, hvis værtsmaskinen er kompromitteret, kan den narre dig til at registrere politikken ved hjælp af pubkeys key_client
, key_recovery_local
, men sæt tilfældige, ikke-relaterede private nøgler i vores backup (husk, at hot nøgler er en del af vores backup!).
Det ville dybest set gøre alle midler sendt til tegnebogen ubrugelig, da ingen kontrollerer de private nøgler, der er nødvendige for at underskrive.
Der er et par løsninger til at løse dette problem:
- Under onboarding, efter at have udskrevet vores sikkerhedskopi på papir, kan vi bruge en separat enhed til at bekræfte, at de private og offentlige genvejstaster på sikkerhedskopien faktisk stemmer overens. Denne tilgang ville eliminere problemet, da vi ville være sikre på, at vi har alle de nødvendige nøgler til rekonstruktion og signering.
- Vi kan tilføje endnu en forbrugsbetingelse med en endnu længere tidslås (9 måneder, 38880 blokke), der kun kræver en
key_ledger_failsafe
fra hardwareenheden. På denne måde falder vi i det absolut værste tilfælde, hvor alt andet fejler, tilbage til sikkerheden ved en enkelt signeringsenhed. I normale operationer ville vi aldrig lade den første tidslås udløbe, og den anden tidslås vil derfor heller ikke udløbe!
Med den anden tilgang ville den endelige politik se sådan ud
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))
),
)
Denne software wallet-konfiguration opfylder alle de sikkerhedsegenskaber, som vi hævdede i begyndelsen. Desuden tilbyder det en genopretningssti i tilfælde af, at de vigtigste forbrugsnøgler key_ledger
er tabt. En god funktion at have!
Onboarding til softwarepungen, der ikke kan bagdøre
Hvordan ville brugeroplevelsen for en tegnebog, der bruger en så kompleks politik, se ud? Her er en kort oversigt:
- Brugeren åbner softwarepungen og begynder at oprette en ny konto.
- Software tegnebogen beder brugeren om at tilslutte deres signeringsenhed og henter xpub'erne til
key_ledger
,key_ledger_failsafe
. - Software tegnebogen genererer autonomt genvejstasten key_client.
- Software tegnebogen får
key_recovery_remote
fra en co-signeringstjeneste eller giver brugeren mulighed for at angive en nøgle på anden måde. Eventuelt beregner denkey_recovery_remote_blind
ved at bruge den tidligere nævnte blændeteknik. - Software-pungen genererer en politik-backup, der indeholder den præcise miniscript-politik, alle xpubs og den udvidede private nøgle til
key_client
genvejstast. Denne sikkerhedskopi er sikkert gemt (for eksempel udskrevet på papir eller gemt på en separat enhed). - Til sidst instruerer softwarepungen brugeren om at registrere politikken på enheden. Brugeren krydstjekker sikkerhedskopien (på papir eller et andet medie end den skærm, der styres af softwarepungen).
Software-pungen klarer de fleste af ovenstående trin, hvilket gør brugerens involvering ikke mere byrdefuld end den forventede indsats, der er nødvendig i dag for at oprette en multisignatur-pung.
Onboarding skal blot kræve et par minutter, når en god UX er bygget til det. Når software-pungen er færdig, kan den give en brugeroplevelse, der ligner en typisk enkeltsignatur-pung. Sådan vil miniscript ændre alt: ved at forsvinde fra brugerens syn!
Pælerodsforbedringer
Ledger understøtter miniscript siden version 2.1.0 af Bitcoin-appen, udgivet i marts. Mens støtte til modtagelse til og forbrug fra taproot-adresser var aktiveret siden pælerod softgaffel i november 2021 lægger vi nu sidste hånd på næste trin i køreplanen: miniscript-understøttelse af pælerod.
Pælerod vil have en enorm indflydelse på anvendeligheden af de tilgange, der præsenteres i denne artikel. Hvis den primære udgiftssti er en enkelt nøgleudgiftsbetingelse, vil eksistensen af udgiftsstier til genopretning være uopdagelige på blockchain, medmindre de bliver brugt. Dette vil i høj grad forbedre privatlivets fred ved fuldstændig at eliminere eventuelle fingeraftryk for standardudgiftsstien. Desuden forbedrer det skalerbarheden, da standardudgiftsstien bliver så omkostningseffektiv at bruge som muligt. Dette betyder, at der ikke vil blive påløbet yderligere omkostninger på grund af tilstedeværelsen af gendannelsesstier, medmindre de bruges. Dette er en væsentlig opgradering fra SegWit-transaktioner, som kræver udgivelse af hele scriptet, inklusive alle forbrugsbetingelser, under ethvert forbrug.
Endelig mere avancerede protokoller som MuSig2 (nyligt standardiseret) og FROST vil overlade pælerodstastaturet. Disse protokoller er bygget på Schnorr-signaturer og gør det muligt at oprette en enkelt samlet pubnøgle der kan bruges til at repræsentere en n-af-n multisignatur eller en k-af-n tærskelordning. Dette ville tillade brugen af taproot-tastestien selv i tilfælde, der i dag er mere almindeligt repræsenteret med specifikke multisig-scripts.
konklusioner
Denne artikel udforsker en lille (men vigtig) niche af det enorme designrum, som miniscript frigør til software-punge.
Vi viste, hvordan miniscript kan bruges til at skabe en "ikke-bagdørs" softwarepung, samtidig med at vi tilføjer en ekstra gendannelsessti, der gør det muligt at forhindre katastrofale nøgletab. Mens hardwaresigneringsenheder ikke kan håndhæve anti-bagdørs sikkerhedsmodellen, ved at understøtte miniscript muliggør de softwaretegnebøger, der gør præcis det!
Ved smart at bruge en kombination af multisignaturskemaer, tidslåse, blinde xpubs og genvejstaster, har vi demonstreret en sikker tegnebogskonfiguration, der balancerer sikkerhed, privatliv og robusthed.
Desuden argumenterede vi for, at dette er muligt uden at påvirke brugeroplevelsen negativt, da kompleksiteten af opsætningen ikke oversættes til en stor ekstra UX-byrde.
Vi er spændte på de muligheder, som miniscript vil låse op for den næste generation af bitcoin-selv-depot.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Automotive/elbiler, Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- BlockOffsets. Modernisering af miljømæssig offset-ejerskab. Adgang her.
- Kilde: https://www.ledger.com/blog/towards-a-trustless-bitcoin-wallet-with-miniscript
- :har
- :er
- :ikke
- :hvor
- $OP
- 1
- 2021
- 2023
- 30
- 7
- 9
- a
- evne
- I stand
- Om
- over
- absolutte
- absolut
- adgang
- af udleverede
- tilgængelig
- overensstemmelse
- Konto
- Konti
- Handling
- aktioner
- aktivt
- faktisk
- tilføje
- tilføje
- Desuden
- Yderligere
- Derudover
- adresser
- fremskreden
- Efter
- mod
- alder
- Støtte
- sigte
- Alle
- tillade
- tillader
- sammen
- allerede
- også
- Skønt
- altid
- an
- ,
- annoncerede
- En anden
- enhver
- noget
- app
- tiltrækkende
- vises
- applikationer
- tilgang
- tilgange
- godkendelse
- omtrentlig
- ER
- velsagtens
- argumenteret
- artikel
- AS
- udseende
- hjælpe
- forbundet
- At
- angribe
- kan revideres
- bemyndige
- Automatiseret
- autonomt
- til rådighed
- tilbage
- bagdør
- Backed
- opbakning
- backup
- saldi
- baseret
- grundlæggende
- I bund og grund
- Grundlæggende
- BE
- fordi
- bliver
- bliver
- før
- Begyndelse
- være
- jf. nedenstående
- BEDSTE
- mellem
- Beyond
- Bitcoin
- Bitcoin Wallet
- bitcoin tegnebøger
- Blanding
- blockchain
- Blocks
- Blockstream
- Blog
- både
- Brain
- Bringer
- udsende
- Bug
- bygge
- bygget
- byrde
- brænde
- virksomhed
- travlt
- men
- by
- kaldet
- CAN
- kan ikke
- stand
- forsigtig
- tilfælde
- tilfælde
- katastrofale
- Årsag
- forårsager
- forsigtighed
- vis
- udfordre
- chance
- lave om
- Børn
- chip
- Vælg
- vælge
- hævdede
- tydeligt
- Cloud
- Cloud Storage
- kode
- Mønter
- kombination
- kombinationer
- kommerciel
- Fælles
- almindeligt
- kommunikere
- Virksomheder
- selskab
- Selskabs
- fuldføre
- fuldstændig
- komplekse
- kompleksitet
- Kompromitteret
- at gå på kompromis
- beregninger
- computing
- Bekymringer
- betingelse
- betingelser
- Konference
- Konfiguration
- Tilslut
- Konsensus
- følgelig
- Overvej
- betragtes
- indeholdt
- kontrolleret
- kontrol
- overbevise
- korrigere
- beskadiget
- Koste
- kunne
- Kursus
- skabe
- Oprettelse af
- skabelse
- skaberen
- kritisk
- kritisk aspekt
- afgørende
- For øjeblikket
- kontoførende
- Custody
- Kunder
- Dangerous
- Afvis
- falder
- skønner
- definerede
- Efterspørgsel
- demonstreret
- indsat
- Afledt
- beskrivelse
- Design
- konstrueret
- ønskes
- detail
- detaljeret
- detaljer
- opdage
- udviklere
- enhed
- Enheder
- forskellige
- svært
- faldende
- direkte
- direktører
- forsvinder
- katastrofal
- opdage
- opdage
- drøftet
- diskussion
- vises
- do
- gør
- Er ikke
- færdig
- fordoble
- grund
- i løbet af
- hver
- lettere
- nemt
- indsats
- enten
- eliminere
- eliminere
- andet
- understrege
- selvstændige
- muliggøre
- aktiveret
- muliggør
- ende
- håndhæve
- nok
- sikre
- sikring
- indtastning
- lokkende
- Hele
- helt
- enhed
- udstyr
- fejl
- især
- væsentlig
- væsentlige
- etablere
- etc.
- evaluering
- Endog
- NOGENSINDE
- Hver
- at alt
- præcist nok
- eksempel
- eksempler
- ophidset
- udføre
- henrettet
- Dyrke motion
- eksistens
- forventet
- erfaring
- udløb
- Exploit
- udforsker
- eksport
- udvider
- ekstern
- ekstrem
- lette
- faktorer
- mislykkes
- Manglende
- retfærdigt
- Fall
- langt
- Feature
- Funktionalitet
- februar
- få
- endelige
- finansielle
- finansielle historie
- Finde
- Fornavn
- fleksibel
- Flip
- Fokus
- efter
- følger
- Til
- evigt
- Videresend
- fire
- rammer
- hyppigt
- ven
- fra
- fuld
- fuldt ud
- funktionalitet
- fond
- fonde
- Endvidere
- forgæves
- fremtiden
- generelle formål
- generelt
- generere
- genereret
- genererer
- generere
- generation
- given
- Go
- gå
- godt
- stor
- stærkt
- havde
- Halvdelen
- Hardware
- hardwareenhed
- Hardware tegnebog
- Hardware Wallet Producent
- Hardware lommebøger
- skadelig
- Have
- have
- hjælpe
- dermed
- historie
- hold
- håber
- host
- hostede
- HOT
- Hvordan
- Men
- http
- HTTPS
- kæmpe
- Mennesker
- idé
- ideal
- ideer
- identificere
- if
- straks
- KIMOs Succeshistorier
- påvirker
- implementeret
- importere
- vigtigt
- umuligt
- Forbedre
- in
- omfatter
- Herunder
- inkorporering
- Stigninger
- utrolige
- faktisk
- uafhængig
- Individuelt
- industrien
- oplysninger
- sagens natur
- initial
- indvendig
- Insider
- inspirere
- installation
- instans
- i stedet
- med vilje
- interagere
- interaktiv
- interesse
- interesseret
- interessant
- grænseflade
- ind
- indføre
- introduceret
- Introducerer
- påtrængende
- involvering
- involverer
- spørgsmål
- IT
- ITS
- selv
- lige
- bare en
- Nøgle
- nøgler
- Kend
- viden
- kendt
- landskab
- Sprog
- laptop
- Efternavn
- senere
- advokat
- Leads
- LÆR
- læring
- mindst
- Ledger
- til venstre
- legitim
- mindre
- lad
- Niveau
- løftestang
- ligesom
- Sandsynlig
- forbundet
- Børsnoterede
- lastning
- lokale
- placeringer
- låst
- Lang
- længere
- Se
- ligner
- taber
- miste
- off
- tab
- tabte
- maskine
- Main
- Flertal
- lave
- maerker
- Making
- malware
- administrerer
- styring
- manipulere
- måde
- Fabrikant
- Producenter
- mange
- Marts
- Match
- Kan..
- midler
- foranstaltninger
- mekanisme
- medium
- nævnte
- blot
- besked
- beskeder
- metode
- metoder
- Miami
- måske
- miniskrift
- mindretal
- minutter
- Mission
- fejl
- model
- penge
- overvågning
- måned
- mere
- Desuden
- mest
- for det meste
- bevæge sig
- flyttet
- meget
- flere
- multitegn
- skal
- navn
- nærmer sig
- nødvendig
- Behov
- behov
- behov
- negativt
- netværk
- aldrig
- Ny
- nyheder
- næste
- rart
- ingen
- ikke-teknisk
- normal
- november
- November 2021
- nu
- nummer
- numre
- opnår
- of
- tilbyde
- tilbyde
- Tilbud
- offline
- on
- onboarding
- engang
- ONE
- dem
- kun
- åbent
- open source
- åbner
- drift
- Produktion
- Muligheder
- Indstillinger
- or
- ordrer
- Andet
- Ellers
- vores
- ud
- skitseret
- uden for
- i løbet af
- samlet
- oversigt
- egen
- ejer
- Papir
- Paramount
- del
- især
- part
- sti
- Betal
- Udfør
- måske
- periode
- permanent
- fase
- telefon
- Place
- Steder
- plato
- Platon Data Intelligence
- PlatoData
- Punkt
- punkter
- politikker
- politik
- Populær
- muligheder
- mulig
- eventuelt
- Indlæg
- potentiale
- potentielt
- magt
- Praktisk
- praktisk
- praksis
- brug
- præcist
- forudsige
- Forudsigelig
- tilstedeværelse
- præsentere
- forelagt
- forhindre
- forhindrer
- tidligere
- tidligere
- primært
- primære
- trykning
- Forud
- Beskyttelse af personlige oplysninger
- private
- private nøgle
- Private nøgler
- Problem
- problemer
- procedure
- behandle
- producere
- produceret
- producerer
- korrekt
- egenskaber
- ejendom
- foreslog
- beskytte
- beskyttet
- beskyttelse
- beskyttelse
- protokol
- protokoller
- Bevise
- give
- forudsat
- offentlige
- offentlig nøgle
- offentlige nøgler
- offentliggøre
- offentliggjort
- Publicering
- formål
- sætte
- Sætte
- spørgsmål
- Løb
- tilfældig
- Ransom
- hellere
- nå
- Læs
- Læser
- realisere
- grund
- modtagende
- for nylig
- genkende
- optage
- opsving
- refererer
- register
- registreret
- registrering
- relativt
- frigive
- frigivet
- stole
- huske
- erstatte
- repræsentere
- repræsenteret
- omdømme
- kræver
- påkrævet
- Kræver
- resulterer
- tilbageholde
- afkast
- afsløre
- højre
- Risiko
- risici
- Risikabel
- køreplan
- robust
- robusthed
- roller
- roller
- kører
- løber
- samme
- siger
- Skalerbarhed
- scanne
- scenarie
- Ordningen
- ordninger
- Schnorr
- Skærm
- scripts
- Anden
- Sektion
- sikker
- sikkert
- sikkerhed
- se
- frø
- frø
- søger
- synes
- synes
- SegWit
- Selvforældremyndighed
- afsendelse
- følsom
- sendt
- adskille
- tjeneste
- sæt
- setup
- flere
- Kort
- bør
- viste
- underskrive
- Underskrifter
- signifikant
- betydeligt
- signering
- Skilte
- lignende
- Simpelt
- forenkle
- siden
- enkelt
- lille
- Smart
- So
- Software
- løsninger
- Løsninger
- SOLVE
- nogle
- Nogen
- snart
- sofistikeret
- Kilde
- Space
- specialisere
- specifikke
- specifikationer
- tilbringe
- udgifterne
- standard
- står
- starter
- Status
- Trin
- Steps
- Stadig
- opbevaring
- opbevaret
- lagring
- strategier
- styrke
- String
- stærk
- Kamp
- vellykket
- Succesfuld
- sådan
- opsummere
- Tillæg
- support
- Støtte
- Understøtter
- formodes
- systemisk
- systemisk risiko
- Systemer
- Taklinger
- Tag
- pælerod
- mål
- rettet mod
- Teknisk
- teknisk set
- Teknologier
- vilkår
- end
- at
- Mønterne
- deres
- Them
- selv
- derefter
- Der.
- derved
- derfor
- Disse
- de
- ting
- tror
- Tredje
- denne
- dem
- trusler
- tre
- tærskel
- Gennem
- Dermed
- tid
- tidskrævende
- til
- i dag
- nutidens
- også
- værktøjer
- Emner
- I alt
- mod
- Trace
- spor
- historik
- Tog
- transaktion
- Transaktioner
- overgange
- Oversætte
- statskassen
- Træer
- sand
- Stol
- betroet
- tillidsløs
- Sandheden
- Twist
- to
- typer
- typisk
- ude af stand
- forstå
- lancerer
- I modsætning til
- låse
- låser op
- uforudsigelige
- indtil
- opgradering
- us
- usability
- brug
- anvendte
- Bruger
- Brugererfaring
- brugere
- bruger
- ved brug af
- udnytte
- udnyttet
- Ved hjælp af
- ux
- VALIDATE
- række
- forskellige
- Vast
- sælger
- verificeres
- verificere
- udgave
- meget
- levedygtig
- afgørende
- Sårbarheder
- vente
- tegnebog
- Punge
- ønsker
- var
- Vej..
- måder
- we
- var
- Hvad
- hvornår
- når
- hvorvidt
- som
- mens
- Hele
- hvorfor
- Wikipedia
- vilje
- med
- inden for
- uden
- ord
- world
- ville
- skriftlig
- Forkert
- år
- endnu
- Du
- Din
- dig selv
- zephyrnet
- nul