Asjad teada: |
- Miniscript võimaldab luua Bitcoini tarkvara rahakotte, mis muudavad tagaukse kasutamise võimatuks. Meil on hea meel öelda, et Ledger on esimene kaubanduslik riistvara rahakoti tootja, mis toetab miniscripti.
- Lisafunktsioone saab rakendada kasutajakogemust kahjustamata. |
Riistvaralised allkirjastamisseadmed on loodud kaitsma kasutajat mitmesuguste levinud rünnakuvektorite eest, näiteks:
- Volitamata juurdepääs ja seemne ekstraheerimine
- Pahavara, mis nakatab teie seotud tarkvara rahakotti
- Seadme enda tarkvara haavatavused
Nagu iga ettevõte, on ka tootja huvides valmistada seadmeid nagu purunematu nagu oskavad. Selle missiooni õnnestumine on ülimalt tähtis ja sellised turvafirmad nagu Ledger toetuvad mainele, mis on rajatud nende saavutustele.
Mõnel kasutajal võib siiski olla muresid. Mis takistab ettevõttel endal varjata a tagauks seadmetes?
Enesehoolduses, meie ära usalda, me kontrollime.
Aga kas kasutaja saab tõesti kontrollida, kas seadmel pole tagaust?
See on põhiküsimus, mida see artikkel käsitleb. Täpsemalt käsitleb see artikkel järgmisi teemasid:
- mis on tagauks ja miks on raske, kui mitte võimatu tõestada, et seda ei ole;
- miks ainult kasutajad saavad end selle riski eest kaitsta;
- kuidas miniscript võimaldab bitcoini rahakottide jaoks sellele väljakutsele praktilisi lahendusi leida.
Olles esimene toetatud riistvarakott minikiri, loodame inspireerida arendajaid looma turvalisi lahendusi ja uuendama kogu meie tööstust ning välistama sellise süsteemse riski kunagise realiseerumise.
Kuidas ehitada tagaukseta allkirjastamise seade
Ütleme selgelt: ei saa.
Võimaliku tagaukse eest kaitsmiseks vajate teistsugust ründemudelit kui see, mida eespool kirjeldasime: selle stsenaariumi korral võib vastaseks olla müüja ise või rikutud sisering.
Selle probleemi sageli reklaamitud lahendus on avatud lähtekoodiga: kui saate koodi kontrollida, siis mis võib valesti minna?
Tõde on aga keerulisem. Kuna müüja paneb riistvara kokku, võib tagauks olla täielikult selle sees. Riistvara võiks olla kavandatud nii, et see eiraks teatud punktides tarkvara ja käivitaks selle asemel pahatahtlikku koodi.
Erinevalt tarkvarast, mis töötab üldotstarbelistel arvutusseadmetel (nt sülearvuti või telefon), on riistvara kontrollimine tänapäevase tehnoloogiaga praktiliselt võimatu. Isegi kui riistvara spetsifikatsioonid oleksid täielikult avatud lähtekoodiga koos vooluringi iga värava üksikasjadega, vajaksite ikkagi kulukaid seadmeid, et kontrollida, kas konkreetne kiip on nendega kooskõlas.
Kuidas riistvaralist rahakotti tagauks teha
Siin on mõned lihtsamad meetodid, mida pahatahtlik riistvaramüüja saaks kasutada tagaukse juurutamiseks, ning mõned viisid, kuidas võimsad kasutajad end tänapäeval kaitsta saavad.
Seemnete genereerimine
Paljud seadmed pakuvad teile seemne genereerimise võimalust (nimetatakse ka Salajane taastamise fraas) otse seadmel, kasutades a Tõeline juhuslike arvude generaator.
😈 Kuri seade võib genereerida seemneid, mis näivad juhuslikud, kuid on ründajale tegelikult etteaimatavad.
🛡️ Võimsad kasutajad saavad sellest probleemist mööda hiilida, luues võrguühenduseta märguande. Lisaks sisaldab robustne parool võib genereerida ka täiesti sõltumatu seemne, mida riistvaramüüja ei oska ennustada. Kompromiss seisneb selles, et kasutajad peavad tagama, et nad varundaksid lisaks mnemooniliste sõnadele ka parooli.
Avaliku võtme tuletamine
Riistvara rahakotid toovad ja ekspordivad avalikud võtmed (nimetatud ka xpubs, lühike laiendatud avalik võti nagu on määratletud punktis Piir-32. xpubs kasutatakse võimalike aadresside genereerimiseks müntide vastuvõtmiseks.
😈 Kuri seade võib õigete seemnest tuletatud võtmete asemel tagastada ründaja juhitud avalikud võtmed.
🛡️ Kasutajad said tuletatud valideerida xpub teises võrguühenduseta seadmes. Küll aga on seemne sisestamisega teistesse seadmetesse omad riskid. Turvateadlikud kasutajad võivad pidada mis tahes seadet, mis on seemnele juurde pääsenud, ohtlikuks, mis võib selle hävitada. Tavakasutajal võib olla raskusi selle toimingu korrektse sooritamisega, kui ta suudab täiendavaid riske hallata.
Info lekkimine
An õhuvahe on sageli välja pakutud lahendusena, mis takistab pahatahtlikul või ohustatud seadmel privaatvõtmete väljafiltreerimist. Lõppude lõpuks, kui seade ei saa välismaailmaga suhelda, ei saa see ka midagi kahjulikku teha, eks?
Mitte päris!
Seade saab alati suhelda, kui seda kasutatakse: see loob allkirju. Need allkirjad jõuavad tehingutesse, mida edastatakse ja salvestatakse igavesti plokiahelasse.
Signatuur on vähemalt 64-baidine juhusliku välimusega baidistring. Kuna aga samale sõnumile võib vastata rohkem kui üks kehtiv allkiri, võib pahatahtlik seade edastada iga allkirja loomisel mõne bitti teavet, genereerides mitu allkirja ja valides valikuliselt, milliseid avaldada.
😈 Petturitest seade võib anda mittejuhuslikke allkirju, mis paljude tehingute käigus paljastavad ründajale seemne!
Ründaja, kes sellise tagaukse installib, peaks lihtsalt ootama pahatahtlike allkirjade ilmumist plokiahelasse, kuni tal on piisavalt teavet kogu seemne rekonstrueerimiseks.
🛡️ ECDSA allkirjade puhul standardiseeritud meetodiga mitte-deterministliku tuletamise meetod (nagu RFC6979) nurjab selle rünnaku eeldusel, et kontrollitakse, kas loodud allkiri vastab oodatud allkirjale. Selle tagamine nõuab aga teise seadme laadimist sama seemnega, mis toob kaasa eelmises jaotises mainitud praktilised probleemid.
🛡️ Huvitav lähenemine on kasutada nutikat viisi sundida seade valib tegelikult juhusliku nonce. Protokoll selleks otstarbeks, tuntud kui anti-exfil or antiklepto, on praegu rakendatud Blockstream Jade ja ShiftCrypto BitBox02 riistvarataskutes. Loe edasi ShiftCrypto ajaveeb, mis sisaldab ka tehnilist kirjeldust selle kohta, kuidas selline rünnak läbi viia.
Okei, kas pole lootust?
Enamik ülalloetletud kaitsemehhanisme🛡️ nõuab enamasti, et kasutaja sooritaks enda kaitsmiseks selgesõnalisi, pealetükkivaid toiminguid: kas genereerides ise seemne (sisuliselt kasutades oma aju riistvara rahakoti funktsionaalsuse asendamiseks) või kasutades lisaseadet, et kontrollida, kas arvutused on õigesti sooritatud.
Siiski paistab välja anti-exfil protokoll: kuna riistvara allkirjastaja ja välismaailma vahel on alati masin, saab see masin aidata. Riistvaralise allkirjastajaga interaktiivse protokolli kaudu saab see jõustada tõeliselt juhusliku nonce'i kasutamine, vähendades või välistades sellega võimaluse lõpliku allkirjaga oluliselt manipuleerida.
Selles ajaveebipostituses huvitavad meid eeskätt seda tüüpi meetmed: kuigi kasutajakogemust märkimisväärselt halvendavad strateegiad võivad olla võimsatele kasutajatele atraktiivsed, teevad need tõenäoliselt asju. halvem praktikas tehniliselt vähem vilunud kasutajatele – mida on valdav enamus.
Turvamudel
Standardmudel riistvara allkirjastajatele
Riistvara allkirjastajate tootjate eesmärk on kaitsta kasutajaid mitmesuguste võimalike ohtude eest (lisateavet vt Ohu mudel). Selles artiklis keskendume ühele väga olulisele omadusele, mille võib kokku võtta järgmiselt:
Kasutajaid ei saa petta tegevusega, mille tulemuseks on fondi kaotus, eeldusel, et nad mõistavad ekraanil kuvatavat teavet ja kontrollivad seda enne kinnitamist.
Tundliku tegevuse, eriti allkirjade jaoks on vaja heakskiitu. Seemne kaitsmine oleks mõttetu, kui pahavara võiks anda allkirju suvalistele sõnumitele, näiteks tehingutele, mis tühjendavad kogu raha!
Oluline on rõhutada, et ülaltoodud omadus peab kehtima isegi siis, kui tarkvara rahakott on täielikult ohustatud. Sülearvuti/telefoni ekraanil kuvatavat ei saa usaldada. pahavara võib aadresse asendada, petta teid, millised aadressid on teie omad, esitada tehingu, kuid seejärel edastada seadmesse allkirjastamiseks teise jne.
Seetõttu arvestavad riistvaralises allkirjastamisseadmes töötav püsivara ja rakendused tarkvara rahakotti oma olemuselt ebausaldusväärne ja ebausaldusväärne.
Tarkvarakottidele mõeldud tagauksevastane turvamudel
Selles jaotises pöörame rollid täielikult ümber. Nüüd tahame kujundada a tarkvara rahakott mis takistab riistvaratootjal varastada või tekitada rahalist kahju, isegi kui seade on täiesti pahatahtlik.
Seega ei saa see olla selle omadus seade: pigem on see omadus tarkvara rahakott seadistamine. Võiksime selle kokku võtta järgmiselt:
Eeldusel, et tarkvara rahakotti ei kahjustata, ei saa riistvaratootja põhjustada kasutaja rahakaotust.
See võib tunduda vastuoluline, kuna see on otseselt vastuolus ülalkirjeldatud standardse turbemudeliga. Kuid "tagaukse puudumine" tähendab "teeb täpselt seda, mida nad peaksid tegema". Kuna tarkvara rahakott on ainus liides allkirjastamisseadme ja välismaailma vahel, see on ainus koht, kus saab jõustada kaitset väärkäitumise eest – olgu siis vea või seadme otsese ohu tõttu.
Pange tähele, et see mudel ulatub märkimisväärselt kaugemale seadme tõrgetest, näiteks kasutatavast veast. Sel juhul tegutseme stsenaariumi alusel, kus seade püüab aktiivselt rahalisi kaotusi tekitada.
Loomulikult ei ole võimalik kaitset, kui tootja on edukalt ohustanud mõlemad seade ja ka teie masin, mis kasutab tarkvara rahakotti. Seetõttu on ülioluline tagada, et teie tarkvarakott oleks avatud lähtekoodiga ja auditeeritav, eriti kui selle on loonud sama riistvara tootja.
Minikirja roll
Miniscript annab rahakoti arendajatele võimaluse kasutada täielikult ära bitcoin Scripti täiustatud funktsioone. Miniskripti avamise uskumatute võimaluste ülevaate saamiseks vaadake meie eelmine blogipostitus. Võib-olla soovite ka kuulata Stephan Livera Podcasti 452. jagu aruteluks selle üle, mida miniscript bitcoini maastikule toob.
Ledger Bitcoini rakendus toetab miniskripti alates selle versiooni 2.1.0 väljalaskest, mis võeti kasutusele veebruaris 2023. Bitcoin 2023 konverentsil Miamis teatas Wizardsardine oma versiooni 1.0 väljalaskmisest. Liana rahakott, esimene miniskriptil põhinev rahakott.
Selle postituse põhiidee on see, et bitcoini rahakoti kontot saab kaitsta mitte ainult ühega, vaid ka sellega mitmekordne võtmed. See võimaldab paindlikke turberaamistikke, kus isegi võtme täielik rike või rikkumine ei ole katastroofiline.
Multisig mõtiskleb
Multisig on enesehoolduslahenduse tugevuse oluline uuendus. Kasutades Bitcoin Scripti programmeeritavust, võimaldab see luua rahakotte, mille jaoks on vaja ühe võtme asemel mitut võtit. A k-st-n multisig rahakott nõuab kombinatsiooni k kehtivaid allkirju, kokku n võimalikud.
Multisig paneb aga kasutajale ka UX-i koormuse ning toob kaasa uusi võimalusi vigade tekkeks. 3-st kolmest multisig-seadistus, mis hõlmab kolme erinevat võtit, mis on turvaliselt varundatud erinevatesse kohtadesse, pakub tugevat turvalisust, kuid see tähendab ka seda, et isegi kui ühekordne võti on kadunud, muutuvad mündid jäädavalt kättesaamatuks!
Seetõttu kipuvad rohkem liiasust pakkuvad seadistused (nt 2-3 või 3-5-XNUMX) olema populaarsemad: kui üks võti kaob, võivad teised võtmed siiski taastamist hõlbustada. Kuid see toob kaasa kompromissi: kui üks võti satub teie teadmata ohtu, väheneb üldine turvalisus oluliselt!
Ettevõtted nagu Kodu ja Ühendamata kapital on spetsialiseerunud isehalduslahendustele, kus neil on vähemus klientide võtmetest. Samuti abistavad nad oma kasutajaid, juhendades neid sisseelamisprotsessis ja lihtsustades hooldussüsteemide kasutamist, mis muidu võib enamiku mittetehniliste kasutajate jaoks olla hirmutav.
Miniskript ja ajalukuga taasteteed
Liana kasutab miniskripti rahakottide loomiseks, millel on mitu kulutamisviisi:
- esmane kulutingimus, mis on kohe saadaval;
- üks või mitu täiendavat kulutingimust, mis muutuvad kättesaadavaks pärast teatud perioodi (nn ajavõte).
See võimaldab palju huvitavaid kasutusjuhtumeid:
- Taastamine: standardne rahakott, mille peamiseks kuluteeks on kas ühe allkirja või multisig; kuid eraldi taastamismehhanism (erineva seemnega võti, multisig, tehnikateadlik sõber, hoidja) muutub kättesaadavaks 6 kuu pärast.
- Juhtimine: Kahe juhiga äriühing võiks asutada ettevõtte kassasse 2-2; lahkarvamuste korral pääseb usaldusväärne advokaat rahale ligi 6 kuu pärast.
- Lagunev multisig: rahakott algab 3-st kolmest, 3 kuu pärast läheb üle 2-st kolmest ja 3 kuu pärast muutub rahakott 6-1-st.
- Automaatne pärimine: taastumisrada pärast 6 kuud hõlmab 2-3 teie kolmest lapsest; võib-olla on 1 aasta pärast teine taastumistee kaasatud notari juurde, juhuks kui pärijad üksmeelele ei jõua.
Märkus: kõigis ülaltoodud näidetes kasutatakse a suhteline ajalukk, mis viitab müntide vanusele (see tähendab: viimane kord, kui raha liigutati). Kompromiss seisneb selles, et kasutaja peab meeles pidama müntide kulutamist (need endale saates), kui ajaluku aeg hakkab lõppema.
Need on vaid mõned näited, kuid neist peaks piisama, et veenda lugejat, et miniskript on märkimisväärne samm edasi Bitcoini potentsiaali realiseerimise suunas. programmeeritav raha.
Rahakotipoliitika registreerimine
Bitcoini rahakoti kontode puhul, mis kasutavad mitut võtit (olgu see siis multisig või keerukamad miniskriptipõhised lahendused), on ülioluline õpetada seadet tuvastama sellele kontole kuuluvaid aadresse. See on ainus viis, kuidas seade aitab kasutajal tagada, et nad saavad või kulutavad õigetelt aadressidelt…
Poliitika kinnitamine ja xpubs kaasallkirja vastuvõtmine usaldusväärse varukoopia vastu on hädavajalik, kuid suhteliselt aeganõudev.
Hea uudis on see, et seda tuleb teha ainult üks kord:
Kui poliitika on nimega registreeritud (näites „Lagunev 3/3”), suudab teie seade selle tuvastada, kui sellist poliitikat rakendatakse.
Need, kes on huvitatud tehnilistest üksikasjadest, leiavad lisateavet aadressilt Piirpunkti ettepanek.
Poliitika varundamine
Üks kriitiline aspekt, mida tuleb tähele panna, on see, et kuigi mitme võtmega poliitikad võimaldavad alamhulka isiklikud võtmed tehingute lubamiseks, teadmine kõik avalikud võtmed (ja täpne poliitika) on nõutavad.
Erinevalt seemnest on poliitika ja avalike võtmete varundamine palju vähem riskantne: kui keegi peaks selle avastama, saaks ta jälgida kõiki selle poliitikaga seotud tehinguid. Kuigi see pole ideaalne – privaatsus on oluline! − see pole nii katastroofiline kui oma müntide kaotamine ja potentsiaalsete ründajate jaoks vähem ahvatlev. Järelikult on poliitika mitme koopia salvestamine kuumadesse rahakottidesse, selle printimine ja erinevatesse kohtadesse salvestamine, krüpteerimine ja pilvesalvestusse salvestamine jne.
Tagaukseta ühe allkirjaga rahakott
Astume sammu tagasi. Oleme arutanud mitme allkirjaga rahakotte, kuid nüüd läheme tagasi põhitõdede juurde, et luua ühe allkirjaga rahakott. Täpsemalt tahame sellist rahakotti tunneb ja Näeb välja nagu ühe allkirjaga rahakott, pärast esialgset seadistamisetappi. Ometi on meie eesmärk luua rahakott, millest tootja ei saa varastada teie raha isegi siis, kui need on pahatahtlikud 😈 ja riistvaraline allkirjastamisseade käitub ettearvamatult.
Seda lähenemisviisi saab hõlpsasti üldistada mitme allkirjaga rahakottide jaoks.
Allolevad näited on kirjutatud keeles nimega poliitika, mitte miniskripti. Inimestel on poliitikat lihtsam lugeda ja nende üle mõelda ning neid saab automaatsete tööriistade abil miniskriptiks kompileerida. Lugege lisateavet minikirja ja poliitika kohta.
Riistvaraline rahakott võib teid kaitsta standardse turvamudeli korral. Miniscript võib teid kaitsta tagauksevastases turbemudelis (ja palju muud!).
Samm null: status quo
See on poliitika, mida enamik kasutajaid tänapäeval kasutab: üks võti, mis pärineb riistvara rahakotis toodetud seemnest.
pk(key_ledger)
Loomulikult ei saa tagaukse puudumist kuidagi tõestada.
Esimene samm: kahekordistage neid võtmeid
Esimene samm on lihtne:
and(pk(key_ledger), pk(key_client))
Siin key_client
genereeritakse kasutaja masinas, seega a kiirklahvi. Põhimõtteliselt on see 2-2-st multisig-seade. Peamine aspekt on see, et kasutaja ei suhtle palju key_client
: tarkvara rahakott genereerib selle võtme, lisab selle rahakoti varukoopiasse ja allkirjastab vajaduse korral (näiteks kui kasutaja on hõivatud oma riistvaralise allkirjastajaga allkirjastamisega).
See tundub juba päris huvitav: raha pole ilma kulutamatu key_client
, mis pole riistvaramüüjale saadaval; isegi kui kurjal müüjal oleks seadme võtmest täielikult teada, ei saaks nad ikkagi raha liigutada ilma kasutajat selgesõnaliselt sihtimata, näiteks ohustades masinat, mis töötab nende tarkvara rahakotti.
Siiski on probleem: rahakoti kasutuselevõtmise ajal on riistvaraallkirjastaja ainus üksus, kes suudab genereerida avalikku võtit (xpub). key_ledger
kasutatud rahakotis. Seega võib seade tahtlikult genereerida a Wrongs xpub, mida ründaja juhib ja hiljem keeldub (või ei saa) allkirjastada. Väidetavalt on see üsna äärmuslik rünnakustsenaarium: tagaukse looja ei saa raha varastada ja kõige rohkem, mida nad saavad teha, on kasutajat individuaalselt sihtida ja lunaraha nõuda ("Ma saan aidata teil oma raha tagasi saada, kui maksate poole mulle").
Reaalsemalt öeldes suurendab see vigade tegemise võimalust: teil on nüüd kaks seemet / privaatvõtit ja teil on vaja mõlemad et saaks kulutada. Kaota kumbki ja mündid on igaveseks lukus.
Teine samm: ajaliselt lukustatud taastamine
Tutvustame eraldi taastevõtit, mis on juurdepääsetav ainult pärast teatud aja lukustamist: and(older(25920)
, pk(key_recovery))
, kus 25920 on ligikaudne plokkide arv 6 kuu jooksul. Täielik poliitika muutub:
or(
and(pk(key_ledger), pk(key_client)), and(after(25920), pk(key_recovery))
)
See on sarnane eelmisele stsenaariumile, kuid pöördega: kui key_ledger
or key_client
muutub mingil põhjusel kättesaamatuks (kõige sagedamini seemnevarukoopia kaotamisel!), a taastamise teel muutub kättesaadavaks 6 kuu pärast.
Selleks on mitu võimalust key_recovery
, millest igaühel on oma kompromissid:
a. Kasutage teist kiirklahvi. See on praktiline lahendus seni, kuni kasutaja mäletab ajaluku lähtestamist. Kui aga kiirklahvid on ohus (stsenaarium, mida tuleks üldiselt pidada üsna tõenäoliseks!), võib ründaja üritada rahale juurde pääseda niipea, kui ajaluku aegub, algatades võidujooksu seadusliku omanikuga.
b. Kasutage eraldi riistvaralist allkirjastamisseadet. See on tugev lahendus ja seda saab soovi korral kasutada koos mõne muu müüjaga; see aga suurendab seadistamise keerukust ja kasutajakogemuse kulusid.
c. Kasutage usaldusväärset välisteenust. Tarkvarakott võib importida xpubi välisest teenusest, kasutades seda kui key_recovery
. Seda kolmandat osapoolt usaldatakse ainult siis, kui ajaluku aegub, mis võib mõne kasutaja jaoks olla ahvatlev kompromiss.
Nagu mainitud, on nagu iga ajalukuga poliitika puhul oluline, et kasutaja mäletaks münte enne ajaluku aegumist värskendada.
Kolmas samm: ebausaldusväärne kolmas osapool
Segame mõlemad ideed (a) ja (c): taastetee jaoks vajame kohalikku kiirklahvi key_recovery_local
Ja key_recovery_remote
mida majutatakse poolusaldusväärse teenusega; säilitame ka ajaluku.
or(
and(pk(key_ledger), pk(key_client)),
and(older(25920),
and(pk(key_recovery_local), pk(key_recovery_remote))
)
)
See vähendab taasteteenuselt vajaliku usalduse taset. Peame siiski olema ettevaatlikud: teenus ise võib jälgida plokiahelat ja tuvastada meie UTXO-sid – lõppude lõpuks andsid nad meile key_recovery_remote
xpub, et nad saaksid otsida UTXO-sid, mis sisaldavad tuletatud pubvõtmeid key_recovery_remote
. Nad saavad meie finantsajaloo kohta teada isegi enne ajaluku aegumist ja isegi siis, kui me pole kunagi nende teenust kasutanud.
Märkus: Tajuurepuud võivad teatud poliitikate puhul selle privaatsusprobleemi kõrvaldada, kuid see ei ole alati nii ja nõuab hoolikat hindamist konkreetse poliitika alusel.
Neljas samm: pimestage kolmas osapool 🙈
Selleks, et taastamisteenus ei saaks meie finantsajalugu tundma õppida, saame nende poolt meile edastatud pubkey kasutamise asemel kasutada pime xpub tehnika mflaxman selgitas siin üksikasjalikult. Ühesõnaga kasutamise asemel key_recovery_remote
meie poliitikas valime neli 31-bitist juhuslikku numbrit a
, b
, c
, d
( pimestavad tegurid) ja kasutame järgmist Piir-32 tuletatud pubkey:
key_recovery_remote_blind = key_recovery_remote_blind/a/b/c/d
On ülioluline, et me ka lisame key_recovery_remote
ja pimestavad tegurid a
, b
, c
ja d
meie varukoopiasse edaspidiseks kasutamiseks.
Kui meil on kunagi vaja taastamisteenust kasutada, siis me avaldame a
, b
, c
, d
neile. Kuni selle ajani pole neil võimalust avastada, et võtmed pärinevad nendest key_recovery_remote
avaldatakse plokiahelas: 4 pimestava teguri võimalike kombinatsioonide arv on 2^(31*4) = 2^124
, mistõttu on võimatu neid kõiki jõhkralt sundida.
Viies samm: liiga palju kiirklahve võib teid põletada 🔥
Meil õnnestus muuta meie tarkvara rahakott tagauks. Siiski tutvustasime teistsugust probleemi: mõlemad kulutingimused kasutavad kohapeal loodud, kuum võti, mida riistvarakott ei kinnita. Seega, kui hostmasin on ohus, võib see meelitada teid registreerima poliitikat pubkeyde abil key_client
ja key_recovery_local
, kuid panime meie varukoopiasse juhuslikud, mitteseotud privaatvõtmed (pidage meeles, et kuum võtmed on osa meie varukoopiast!).
Põhimõtteliselt teeks kõik raha rahakotti kulutamatu, kuna keegi ei kontrolli allkirjastamiseks vajalikke privaatvõtmeid.
Selle probleemi lahendamiseks on mõned lahendused:
- Sisselülitamise ajal saame pärast varukoopia paberile printimist kasutada eraldi seadet, et kontrollida, kas varukoopia privaatsed ja avalikud kiirklahvid kattuvad. Selline lähenemine kõrvaldaks probleemi, kuna oleksime kindlad, et meil on kõik rekonstrueerimiseks ja allkirjastamiseks vajalikud võtmed.
- Saame lisada veel ühe kulutingimuse veelgi pikema ajalukuga (9 kuud, 38880 plokki), mis nõuab vaid
key_ledger_failsafe
riistvaraseadmest. Nii langeme absoluutse halvima stsenaariumi korral, kus kõik muu ebaõnnestub, tagasi ühe allkirjastamisseadme turvalisuse juurde. Tavalistes toimingutes me ei lase esimesel ajalukul kunagi aeguda, seega ei aegu ka teine ajalukk!
Teise lähenemisviisi korral näeks lõplik poliitika välja selline
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))
),
)
See tarkvara rahakoti konfiguratsioon vastab kõigile turvaomadustele, mida me alguses väitsime. Lisaks pakub see taastumise teed, kui peamised kulutused on võtmetähtsusega key_ledger
on kadunud. Hea funktsioon!
Liitumine tagaukseta tarkvara rahakotiga
Milline näeks välja sellise keeruka poliitikaga rahakoti kasutajakogemus? Siin on lühike ülevaade:
- Kasutaja avab tarkvara rahakoti ja alustab uue konto loomist.
- Tarkvarakott palub kasutajal ühendada oma allkirjastamisseade ja hangib alla xpub-id
key_ledger
jakey_ledger_failsafe
. - Tarkvarakott genereerib iseseisvalt kiirklahvi key_client.
- Tarkvarakott hangib
key_recovery_remote
kaasallkirjastamise teenusest või võimaldab kasutajal määrata võtme muul viisil. Valikuliselt arvutab see väljakey_recovery_remote_blind
kasutades eelnevalt mainitud pimestamistehnikat. - Tarkvara rahakott loob poliitika varukoopia, mis sisaldab täpset miniskriptipoliitikat, kõiki xpubisid ja laiendatud privaatvõtit
key_client
kiirklahv. See varukoopia on turvaliselt salvestatud (näiteks prinditakse paberile või salvestatakse eraldi seadmesse). - Lõpuks annab tarkvara rahakott kasutajale korralduse poliitika seadmes registreerida. Kasutaja kontrollib varukoopiat (paberil või muul kandjal peale tarkvara rahakoti kontrollitava ekraani).
Tarkvarakott haldab enamikku ülaltoodud samme, muutes kasutaja kaasamise mitte koormavamaks, kui on täna vaja mitme allkirjaga rahakoti seadistamiseks.
Sisselülitamine peaks võtma vaid mõne minuti, kui selle jaoks on loodud hea kasutuskogemus. Kui tarkvarakott on valmis, võib see pakkuda kasutajakogemust, mis on väga sarnane tavalise ühe allkirjaga rahakotiga. Nii muudab miniscript kõike: kaob kasutaja silmist!
Tajuure täiustused
Ledger toetab miniskripti alates märtsis välja antud Bitcoini rakenduse versioonist 2.1.0. Samal ajal kui tugi taproot-aadressidele vastuvõtmiseks ja nendelt kulutamiseks oli lubatud alates taproot softfork 2021. aasta novembris anname nüüd viimast lihvi teekaardi järgmisele etapile: miniscripti toele taprootile.
Taprootil on tohutu mõju selles artiklis esitatud lähenemisviiside kasutatavusele. Kui esmane kulutuste teekond on ühe võtmega kulutingimus, on taastuvate kuluteede olemasolu plokiahelas tuvastamatu, kui neid ei kasutata. See parandab oluliselt privaatsust, kõrvaldades täielikult kõik sõrmejäljed tavalisest kulutamisest. Lisaks parandab see mastaapsust, kuna tavapäraste kulutuste teekond muutub kulutamiseks võimalikult kuluefektiivseks. See tähendab, et taasteteede olemasolu tõttu ei teki lisakulusid, välja arvatud juhul, kui neid kasutatakse. See on märkimisväärne täiendus SegWiti tehingutest, mis nõuavad kogu skripti avaldamist, sealhulgas kõik kulutingimused, mis tahes kulutamise ajal.
Lõpuks täiustatud protokollid nagu MuSig2 (hiljuti standarditud) ja HÄRMATIS laadib tajuure klahvitee üle. Need Schnorri allkirjadele üles ehitatud protokollid võimaldavad luua ühe koondpubkey mida saab kasutada an n-st-n multisignatuur või a k-st-n läve skeem. See võimaldaks kasutada taproot-klahviteed isegi juhtudel, mis tänapäeval on sagedamini esindatud spetsiifiliste multisig-skriptidega.
Järeldused
See artikkel uurib väikest (kuid olulist) nišši tohutust disainiruumist, mille miniscript tarkvararahakottide jaoks vallandab.
Näitasime, kuidas miniscripti saab kasutada "tagaukseta" tarkvarakoti loomiseks, lisades samal ajal täiendava taastetee, mis võimaldab vältida katastroofilisi võtmekadusid. Kuigi riistvaralised allkirjastamisseadmed ei suuda tagauksevastast turvamudelit jõustada, võimaldavad nad miniskripti toetades tarkvara rahakotte, mis teevad täpselt seda!
Kasutades nutikalt mitme allkirja skeemide, ajalukkude, pimedate xpubide ja kiirklahvide kombinatsiooni, oleme demonstreerinud turvalist rahakoti konfiguratsiooni, mis tasakaalustab turvalisuse, privaatsuse ja töökindluse.
Lisaks väitsime, et see on võimalik kasutajakogemust negatiivselt mõjutamata, kuna seadistuse keerukus ei too kaasa suurt UX-i lisakoormust.
Oleme põnevil võimaluste pärast, mida miniskript avab järgmise põlvkonna bitcoinide enesehoolduse jaoks.
- SEO-põhise sisu ja PR-levi. Võimenduge juba täna.
- PlatoData.Network Vertikaalne generatiivne Ai. Jõustage ennast. Juurdepääs siia.
- PlatoAiStream. Web3 luure. Täiustatud teadmised. Juurdepääs siia.
- PlatoESG. Autod/elektrisõidukid, Süsinik, CleanTech, Energia, Keskkond päikeseenergia, Jäätmekäitluse. Juurdepääs siia.
- BlockOffsets. Keskkonnakompensatsiooni omandi ajakohastamine. Juurdepääs siia.
- Allikas: https://www.ledger.com/blog/towards-a-trustless-bitcoin-wallet-with-miniscript
- :on
- :on
- :mitte
- : kus
- $ UP
- 1
- 2021
- 2023
- 30
- 7
- 9
- a
- võime
- Võimalik
- MEIST
- üle
- absoluutne
- absoluutselt
- juurdepääs
- pääses
- juurdepääsetav
- vastavust
- konto
- Kontod
- tegevus
- meetmete
- aktiivselt
- tegelikult
- lisama
- lisades
- lisamine
- Täiendavad lisad
- Lisaks
- aadressid
- edasijõudnud
- pärast
- vastu
- vanus
- Abi
- eesmärk
- Materjal: BPA ja flataatide vaba plastik
- võimaldama
- võimaldab
- mööda
- juba
- Ka
- Kuigi
- alati
- an
- ja
- teatas
- Teine
- mistahes
- midagi
- app
- ahvatlev
- ilmuma
- rakendused
- lähenemine
- lähenemisviisid
- heakskiit
- ligikaudne
- OLEME
- vaieldamatult
- vaidlesid
- artikkel
- AS
- aspekt
- abistama
- seotud
- At
- rünnak
- auditeeritav
- volitada
- Automatiseeritud
- autonoomselt
- saadaval
- tagasi
- tagauks
- tagatud
- toetus
- Varundamine
- saldod
- põhineb
- põhiline
- Põhimõtteliselt
- Alused
- BE
- sest
- muutuma
- muutub
- enne
- Algus
- on
- alla
- BEST
- vahel
- Peale
- Bitcoin
- Bitcoin Wallet
- bitcoini rahakotid
- Segu
- blockchain
- Plokid
- Blockstream
- Blogi
- mõlemad
- Aju
- Toob
- ülekanne
- Bug
- ehitama
- ehitatud
- koormus
- põlema
- äri
- hõivatud
- kuid
- by
- kutsutud
- CAN
- ei saa
- võimeline
- ettevaatlik
- juhul
- juhtudel
- katastroofiline
- Põhjus
- põhjustades
- ettevaatust
- kindel
- väljakutse
- võimalus
- muutma
- Lapsed
- kiip
- Vali
- valimine
- väitis
- selgelt
- Cloud
- Cloud Storage
- kood
- Mündid
- kombinatsioon
- kombinatsioonid
- kaubandus-
- ühine
- tavaliselt
- edastama
- Ettevõtted
- ettevõte
- Ettevõtte omad
- täitma
- täiesti
- keeruline
- keerukus
- Kompromissitud
- kompromiteeriv
- arvutused
- arvutustehnika
- Murettekitav
- seisund
- Tingimused
- Konverents
- konfiguratsioon
- Võta meiega ühendust
- üksmeel
- Järelikult
- Arvestama
- kaaluda
- sisaldub
- kontrollitud
- kontrolli
- veenma
- parandada
- rikutud
- Maksma
- võiks
- Kursus
- looma
- loomine
- loomine
- looja
- kriitiline
- kriitiline aspekt
- otsustav
- Praegu
- hoiuleandja
- Hooldusõigus
- Kliendid
- Ohtlik
- Väheneb
- väheneb
- pidama
- määratletud
- Nõudlus
- Näidatud
- lähetatud
- Tuletatud
- kirjeldus
- Disain
- kavandatud
- soovitud
- detail
- üksikasjalik
- detailid
- avastama
- Arendajad
- seade
- seadmed
- erinev
- raske
- väheneb
- otse
- Direktorid
- kaduv
- katastroofiline
- avastama
- avastades
- arutatud
- arutelu
- kuvatakse
- do
- ei
- Ei tee
- tehtud
- kahekordistada
- kaks
- ajal
- iga
- lihtsam
- kergesti
- jõupingutusi
- kumbki
- kõrvaldama
- kõrvaldades
- teine
- rõhuta
- töötavad
- võimaldama
- lubatud
- võimaldab
- lõpp
- jõustada
- piisavalt
- tagama
- tagades
- Sisse
- köitev
- Kogu
- täielikult
- üksus
- seadmed
- vead
- eriti
- oluline
- põhiliselt
- looma
- jms
- hindamine
- Isegi
- KUNAGI
- Iga
- kõik
- täpselt
- näide
- näited
- erutatud
- täitma
- täidetud
- Teostama
- olemasolu
- oodatav
- kogemus
- aegumine
- Ekspluateeri
- uurib
- eksport
- laieneb
- väline
- äärmuslik
- hõlbustada
- tegurid
- ei
- ebaedu
- õiglaselt
- Langema
- kaugele
- tunnusjoon
- FUNKTSIOONID
- Veebruar
- vähe
- lõplik
- finants-
- finantsajalugu
- leidma
- esimene
- paindlik
- Flip
- Keskenduma
- Järel
- järgneb
- eest
- igavesti
- edasi
- neli
- raamistikud
- sageli
- sõber
- Alates
- täis
- täielikult
- funktsionaalsus
- fond
- raha
- Pealegi
- asjatu
- tulevik
- Üldine otstarve
- üldiselt
- tekitama
- loodud
- genereerib
- teeniva
- põlvkond
- antud
- Go
- läheb
- hea
- suur
- suuresti
- olnud
- Pool
- riistvara
- riistvaraseade
- Riistvara rahakott
- Riistvara rahakoti tootja
- Riistvara rahakotid
- kahjulik
- Olema
- võttes
- aitama
- sellest tulenevalt
- ajalugu
- hoidma
- lootus
- võõrustaja
- võõrustas
- KUUM
- Kuidas
- aga
- http
- HTTPS
- tohutu
- Inimestel
- idee
- ideaalne
- ideid
- identifitseerima
- if
- kohe
- mõju
- mõjutavad
- rakendatud
- import
- oluline
- võimatu
- parandama
- in
- hõlmab
- Kaasa arvatud
- kaasates
- Tõstab
- uskumatu
- tõepoolest
- sõltumatud
- Üksikult
- tööstus
- info
- olemuselt
- esialgne
- sees
- Insider
- inspireerima
- paigaldamine
- Näiteks
- selle asemel
- tahtlikult
- suhelda
- interaktiivne
- huvi
- huvitatud
- huvitav
- Interface
- sisse
- kehtestama
- sisse
- Tutvustab
- pealetükkiv
- kaasamine
- kaasates
- probleem
- IT
- ITS
- ise
- lihtsalt
- ainult üks
- Võti
- võtmed
- Teadma
- teadmised
- teatud
- maastik
- keel
- sülearvuti
- viimane
- pärast
- advokaat
- Leads
- Õppida
- õppimine
- kõige vähem
- pearaamat
- lahkus
- õigustatud
- vähem
- laskma
- Tase
- võimendav
- nagu
- Tõenäoliselt
- seotud
- Loetletud
- laadimine
- kohalik
- kohad
- lukus
- Pikk
- enam
- Vaata
- näeb välja
- kaotama
- kaotamine
- kaotus
- kaod
- kadunud
- masin
- põhiline
- Enamus
- tegema
- TEEB
- Tegemine
- malware
- haldab
- juhtiv
- manipuleerimine
- viis
- Tootja
- Tootjad
- palju
- Märts
- Vastama
- mai..
- vahendid
- meetmed
- mehhanism
- keskmine
- mainitud
- ainult
- sõnum
- kirjad
- meetod
- meetodid
- Miami
- võib
- minikiri
- vähemus
- protokoll
- missioon
- vigu
- mudel
- raha
- järelevalve
- kuu
- rohkem
- Pealegi
- kõige
- enamasti
- liikuma
- kolis
- palju
- mitmekordne
- multisign
- peab
- nimi
- lähenemas
- vajalik
- Vajadus
- vaja
- vajadustele
- negatiivselt
- võrgustike loomine
- mitte kunagi
- Uus
- uudised
- järgmine
- kena
- ei
- mittetehniline
- normaalne
- November
- november 2021
- nüüd
- number
- numbrid
- saab
- of
- pakkuma
- pakkumine
- Pakkumised
- offline
- on
- Pardal
- kunagi
- ONE
- ones
- ainult
- avatud
- avatud lähtekoodiga
- Avaneb
- tegutsevad
- Operations
- Võimalused
- Valikud
- or
- et
- Muu
- muidu
- meie
- välja
- välja toodud
- väljaspool
- üle
- üldine
- ülevaade
- enda
- omanik
- Paber
- Tähtsam
- osa
- eriti
- partei
- tee
- Maksma
- täitma
- ehk
- periood
- püsivalt
- faas
- telefon
- Koht
- Kohad
- Platon
- Platoni andmete intelligentsus
- PlatoData
- Punkt
- võrra
- Poliitika
- poliitika
- populaarne
- võimalused
- võimalik
- võimalik
- post
- potentsiaal
- potentsiaalselt
- võim
- Praktiline
- praktiliselt
- tava
- vajadus
- täpselt
- ennustada
- ennustatav
- olemasolu
- esitada
- esitatud
- vältida
- takistab
- eelmine
- varem
- eelkõige
- esmane
- trükkimine
- Eelnev
- privaatsus
- era-
- Private Key
- Privaatvõtmed
- Probleem
- probleeme
- menetlus
- protsess
- tootma
- Toodetud
- toodab
- korralikult
- omadused
- kinnisvara
- pakutud
- kaitsma
- kaitstud
- kaitsta
- kaitse
- protokoll
- protokollid
- Tõesta
- anda
- tingimusel
- avalik
- avaliku võtme
- avalikud võtmed
- avaldama
- avaldatud
- Kirjastamine
- eesmärk
- panema
- Putting
- küsimus
- Rass
- juhuslik
- Lunaraha
- pigem
- jõudma
- Lugenud
- lugeja
- realiseerimisel
- põhjus
- vastuvõtmine
- hiljuti
- tunnistama
- rekord
- taastumine
- viitab
- registreerima
- registreeritud
- registreerimine
- suhteliselt
- vabastama
- vabastatud
- lootma
- meeles pidama
- asendama
- esindama
- esindatud
- maine
- nõudma
- nõutav
- Vajab
- tulemuseks
- säilitama
- tagasipöördumine
- avalduma
- õige
- Oht
- riskide
- Riskantne
- tegevuskava
- jõuline
- tugevus
- Roll
- rollid
- jooksmine
- jookseb
- sama
- ütlema
- Skaalautuvus
- skaneerida
- stsenaarium
- kava
- skeemid
- rügama
- Ekraan
- skripte
- Teine
- Osa
- kindlustama
- kindlalt
- turvalisus
- vaata
- seeme
- seemned
- otsib
- tundub
- tundub
- SegWit
- Enda hooldusõigus
- saatmine
- tundlik
- Saadetud
- eri
- teenus
- komplekt
- seade
- mitu
- Lühike
- peaks
- näitas
- kirjutama
- Allkirjad
- märkimisväärne
- märgatavalt
- allkirjastamine
- Märgid
- sarnane
- lihtne
- lihtsustamine
- alates
- ühekordne
- väike
- nutikas
- So
- tarkvara
- lahendus
- Lahendused
- LAHENDAGE
- mõned
- Keegi
- varsti
- keeruline
- allikas
- Ruum
- spetsialiseeruma
- konkreetse
- spetsifikatsioonid
- kulutama
- Kulutused
- standard
- seisab
- algab
- olek
- Samm
- Sammud
- Veel
- ladustamine
- ladustatud
- ladustamine
- strateegiad
- tugevus
- nöör
- tugev
- võitlus
- edukas
- Edukalt
- selline
- Kokku võtta
- Ülelaadimine
- toetama
- Toetamine
- Toetab
- peaks
- süsteemne
- süsteemne risk
- süsteemid
- Tegeleb
- Võtma
- juurejuur
- sihtmärk
- sihtimine
- Tehniline
- tehniliselt
- Tehnoloogia
- tingimused
- kui
- et
- .
- Mündid
- oma
- Neile
- ennast
- SIIS
- Seal.
- sellega
- seetõttu
- Need
- nad
- asjad
- mõtlema
- Kolmas
- see
- need
- ähvardused
- kolm
- künnis
- Läbi
- Seega
- aeg
- aega võttev
- et
- täna
- tänane
- liiga
- töövahendid
- Teemasid
- Summa
- suunas
- Jälg
- jälgida
- tulemused
- Rong
- tehing
- Tehingud
- üleminekuid
- tõlkima
- riigikassa
- Puud
- tõsi
- Usalda
- Usaldatud
- usaldamatu
- Tõde
- vääne
- kaks
- liigid
- tüüpiline
- ei suuda
- mõistma
- vallandab
- erinevalt
- avamine
- avab
- prognoosimatu
- kuni
- upgrade
- us
- kasutatavus
- kasutama
- Kasutatud
- Kasutaja
- User Experience
- Kasutajad
- kasutusalad
- kasutamine
- ära kasutama
- kasutatud
- kasutades
- ux
- KINNITAGE
- sort
- eri
- suur
- müüja
- kinnitatud
- kontrollima
- versioon
- väga
- elujõuline
- tähtis
- Haavatavused
- ootama
- rahakott
- Rahakotid
- tahan
- oli
- Tee..
- kuidas
- we
- olid
- M
- millal
- millal iganes
- kas
- mis
- kuigi
- kogu
- miks
- Wikipedia
- will
- koos
- jooksul
- ilma
- sõnad
- maailm
- oleks
- kirjalik
- Vale
- aasta
- veel
- sa
- Sinu
- ise
- sephyrnet
- null