Bitcoin HWI palaikymas sustoja, nes BHWI perdavimas lieka nebaigtas
Bitcoin HWI, plačiai naudojama sąsaja, skirta piniginės programinei įrangai prijungti prie aparatinės įrangos pasirašymo įrenginių, eina į pensiją, o projektas Rust, jo prižiūrėtojas, minimas kaip perspektyvus įpėdinis, dar neparodė gamybos perdavimo.
„Bitcoin Core’s Hardware Wallet Interface“ arba HWI prižiūrėtojas rugpjūčio 18 d. sakė, kad projektas daugelį metų buvo palaikomas ir daugiausia buvo individualus darbas. HWI nebepriims naujų įrenginių ar funkcijų, išskyrus darbą, reikalingą MuSig2. Kai šis darbas bus baigtas, prižiūrėtojas tikisi išleisti leidimą, kuris greičiausiai bus paskutinis projekto metu, tada HWI atliks minimalią priežiūrą, kol bus paruoštas tinkamas pakeitimas.
HWI yra tiltas, kurį piniginės programinė įranga gali naudoti, kad aptiktų aparatūros įrenginį, nuskaitytų viešuosius raktus, parodytų gavimo adresą ir išsiųstų iš dalies pasirašytą Bitcoin operaciją į tokius įrenginius kaip Ledger, Trezor, Coldcard, BitBox ar Jade patvirtinti ir pasirašyti. Pranešime nurodytas įpėdinis BHWI siekia išsaugoti HWI stiliaus komandų išvestį naudojant Rust diegimą.
Nė vienas perėjimas nėra baigtas. HWI nėra archyvuojamas, nenustatyta išėjimo į pensiją data, o pranešime nesakoma, kad palaikomos aparatinės įrangos piniginės nustos veikti arba kad vartotojų bitkoinui gresia pavojus. Neatidėliotinas spaudimas tenka komandoms, kurios supakuoja HWI, iškviečia jos komandų eilutę arba pasikliauja ja, kad įsisavintų įrenginių, operacinių sistemų ir tiekėjo protokolų pokyčius.
Kodėl svarbi atskira HWI riba
HWI yra ir Python biblioteka, ir komandinės eilutės įrankis. Tai suteikia programinei įrangai vieną sąsają įprastoms aparatinės įrangos ir piniginės operacijoms, o ne reikalauja atskiro diegimo kiekvienam pardavėjui.
Pradinis jo tikslas buvo suteikti Bitcoin Core aparatinės įrangos ir piniginės palaikymą. Integracija pasiekė vartotojus per išorinio pasirašančiojo ribą, o ne įdėjus HWI į Bitcoin Core. „Bitcoin Core“ išorinio pasirašymo dokumentuose aprašoma konfigūruojama komanda ir kaip pavyzdys naudojama HWI, o „HWI Bitcoin Core“ vadove parodyta, kad HWI naudojamas raktams gauti ir sandoriams pasirašyti kartu su „Core“ pinigine.
HWI prižiūrėtojas teigė, kad „Python“ užkerta kelią deterministiniams kūrimo procesams, atkuriamam kūrimo procesui, kurį „Bitcoin Core“ naudoja dvejetainiams failams išleisti, todėl neleidžia HWI pateikti kartu su „Bitcoin Core“. Dėl šio atskyrimo HWI taip pat iš esmės pakeičiamas: kita programa gali įgyvendinti Bitcoin Core išorinio pasirašymo sutartį. „CryptoSlate“ „Bitcoin Core 22.0“ aprėptis apibūdino išorinio pasirašančiojo palaikymo atėjimą 2021 m.
Tačiau suderinamas komandų paviršius yra tik viena perkėlimo dalis. Programoms vis tiek reikia supakuoti pakaitalą, išbandyti įrenginius ir operacijas, kuriuos jos rodo, ir nuspręsti, kam priklauso pataisymai, kai pasikeičia programinės aparatinės įrangos ar operacinės sistemos elgsena.
BHWI pakavimo apribojimą sprendžia naudodama „Rust“ branduolį, o ne „Python“ programą. Jo dizainas galėtų palengvinti atkuriamąjį platinimą ir naudojimą iš kelių programavimo aplinkų, tačiau kiekvienas tolesnis projektas vis tiek turi patikrinti, ar pakeitimas apima jo paties komandų rinkinį, įrenginio matricą ir išleidimo procesą. „Bitcoin Core“ gali išbandyti kitą atitinkančią komandą už išorinio pasirašančiojo ribos; kita programinė įranga, kuri naudoja HWI komandų eilutę, turi atlikti savo suderinamumo darbą.
Dėl šio skirtumo priežiūros pranešimas paverčiamas paveldėjimo problema, o ne paprastu saugyklos būsenos pakeitimu. HWI sąsaja gali būti bendrinama, tačiau jos vartotojai ne visi naudoja ar platina ją vienodai.
Žemiau esančiame žemėlapyje rodomi trys poveikio tipai: tiesioginės Python priklausomybės, HWI komandinės eilutės apvyniojimai ir projektai, kuriuose jau palaikomas atskiras palikuonis diegimas.
„Spectre Desktop“, „Bitcoin Core“ piniginių koordinatorius, yra aiškiausia tiesioginė priklausomybė. Jo projekto aprašymas paaiškina jo „Bitcoin Core“ ir aparatinės įrangos piniginės dėmesį, o jo šaltinis prisega konkretų HWI leidimą. BTCPay Server Vault naudojasi kitu keliu: vietinė paslauga atskleidžia prijungtus pasirašymo įrenginius per HWI komandinės eilutės užklausas. Abu turėtų būti integruojami, net jei pakaitalas priimtų pažįstamas komandas.
„Wasabi“, į privatumą orientuota piniginė, pateikia pakuotės pavyzdį. Liepos mėnesio projekto leidime buvo pranešta, kad „Apple Silicon“ versijose buvo x86_64 HWI vykdomasis failas, todėl kyla pavojus dėl HWI palaikomų įrenginių aptikimo, surašymo, adresų rodymo ir prisijungimo paveiktų versijų, nes pasikliauti „Rosetta“ tapo mažiau patikima. Problema buvo susijusi su supakuotu vykdomuoju failu, o ne su pasirašymo įrenginių gedimu.
Sparrow, darbalaukio piniginė, parodo, kodėl perėjimas gali suskaidyti, o ne susilieti su vienu įpėdiniu. „Lark“ prasidėjo kaip „Python HWI“ „Java“ prievadas ir dabar teikia „Sparrow“ aparatinės įrangos ir piniginės kelią. Todėl „Sparrow“ nėra tiesioginis „Python-HWI“ perkėlimo atvejis, tačiau jis lieka atsakingas už atskirą įgyvendinimą, kilusį iš tos pačios sąsajos.
Nauji aparatūros modeliai yra tai, kur HWI užšalimas gali būti matomas. Jo palaikymo matrica apima Ledger, Trezor, BitBox, KeepKey, Coldcard ir Blockstream Jade modelius. Galimybės skiriasi priklausomai nuo įrenginio ir programinės įrangos, įskaitant operacijų tipus, adreso rodymo ir įrenginio valdymo operacijas. Pakeitimas turi atitikti reikalingas įrenginio ir operacijų poras, o ne tik atkurti komandų pavadinimus.
Atotrūkis tarp ankstesnio kodo ir tolesnio pasiekiamumo jau matomas palaikymo įrašuose. HWI vasario mėnesį išleido 3.2.0 versiją su BitBox02 Nova palaikymu. April Spectre naudotojo ataskaita apėmė sąranką naudojant HWI 2.4.0, kuri negalėjo aptikti Nova. „Spectre“ problema nenustatė, ar gedimą sukėlė prisegta versija, pakuotė, programinė įranga ar vietinė aplinka, tačiau chronologija rodo, kad tiekėjų palaikymas ir pasiekiamumas gali skirtis.
Pagal naująją HWI politiką pardavėjas arba piniginės komanda, kuri susiduria su kitu nepalaikomu modeliu, gali išlaikyti šakę, sukurti atskirą integraciją, pritaikyti kitą sąsają arba palikti tą derinį nepalaikomą. Tai, kas išnyksta, yra įprastas kelias, kuriuo siekiama pakeisti bendrinamo aukštesniojo projekto projektą.
BHWI turi bandymo laidą, o ne gamybos perdavimą
BHWI pašalina HWI architektūrinius apribojimus naudodama Rust, sans-I/O branduolį, kuris palieka transportavimo ir vykdymo laiko pasirinkimą skambinančiajam. Jo darbo sritį sudaro asinchroniniai, komandinės eilutės ir „WebAssembly“ sluoksniai, o komandų eilutės paketas sukuria hwi dvejetainis, skirtas išsaugoti su Python-HWI suderinamą išvestį. Saugykla vis dar žymi vykdomus projekto darbus.
Dabartinėje projekto nuotraukoje pateikiami „BitBox02“, „Coldcard“, „Jade“ ir „Ledger“ modeliai. Stipriausi paskelbti suderinamumo įrodymai yra siauresni. BHWI pariteto dokumentacijoje aprašomi diferencialiniai testai ir galutiniai vartai, kurie paleidžia nemodifikuotą HWI 3.2.0 įrenginių rinkinį prieš BHWI, skirtą BitBox02, Coldcard, Ledger ir Jade.
Šie testai sumažina riziką, kad pakeitimo komanda pateikia skirtingus apimtų įrenginių rezultatus. Jie neparodo gamybos elgsenos platesnėje HWI matricoje, kiekvienoje pagrindinio kompiuterio platformoje, kiekviename pakuotės formate ar visose paskesnėse piniginės srautuose. BHWI README ir pariteto dokumente taip pat nenurodoma, kad piniginė jau siunčiama kaip HWI gamybos pakaitalas.
Likusi spraga yra organizacinė ir techninė. HWI prižiūrėtojas nustatė, kad archyvavimas priklauso nuo tinkamo pakeitimo, o BHWI apibrėžė architektūrą ir augančią bandymo paviršių. Piniginės komandos vis tiek turi nuspręsti, ar jos padengtų įrenginių keliai yra pakankami, kaip jį platinti ir kas prižiūrės jų siunčiamą integraciją.
Tikėtina, kad galutinis HWI leidimas nustatytų fiksuotą prieš srovę ribą. Naujam įrenginiui, programinės aparatinės įrangos veikimui ar pagrindinio kompiuterio platformai gali prireikti tolesnio pataisos be įprasto kelio atgal į HWI. Projektams, kurie sujungia Python HWI, reikia supakuoti ir išleisti planus. Komandinės eilutės vartotojams reikia atlikti savo skambučių suderinamumo testus. Tokie projektai kaip Sparrow ir Lark susiduria su atskiru sprendimu tęsti savo nepriklausomą krūvą.
HWI saugykla gali likti atidaryta, kol bus tinkamas įpėdinis, tačiau jo įnašo įšaldymas jau galioja. Perėmimo rizika prasideda, kai ateina kitas suderinamumo pakeitimas, o bendras tiltas jo nebepriima.
