Naujasis „Bitcoin Core“ pataisymas panaikina spragą, kuri galėtų nukreipti lėšas nepavogus raktų
„Bitcoin Core“ pridėjo apsaugą nuo sandorių pasirašymo, kurie negali susieti lėšų su vartotojo patvirtinta mokėjimo vieta.
Pakeitimu, kuris rugsėjo 25 d. buvo sujungtas su „Bitcoin Core“ pagrindinės plėtros šaka, siekiama sumažinti iš dalies pasirašytų „Bitcoin“ operacijų arba PSBT trūkumą, kuris gali sukurti tinkamą parašą neapsaugodamas numatytos išvesties.
„Bitcoin Optech“ pabrėžė atnaujinimą spalio 2 d. Problema neatskleidžia vartotojo privataus rakto, tačiau sukuria kitokią riziką: parašas gali likti galiojantis net tada, kai konkrečiomis sąlygomis pakeičiamas operacijos gavėjas.
Silpnumas apima SIGHASH_SINGLEtai yra pasirašymo režimas, skirtas įvesties įvedimui į išvestį atitinkamoje padėtyje. Jei sandoryje toje pozicijoje nėra išvesties, apsauga sugenda skirtingai, priklausomai nuo išleidžiamo Bitcoin tipo.
Pasenusios įvesties atveju trūkstamos išvesties atvejis gali sukurti parašą per fiksuotą maišos vertę. „Bitcoin Core“ kūrėjai teigė, kad parašas gali būti pakartotinai naudojamas prieš kitus nepanaudotus rezultatus, valdomus tuo pačiu raktu, kai yra tos pačios struktūrinės sąlygos.
„SegWit v0“ operacijos išlaiko stipresnę apsaugą, nes parašas vis tiek įsipareigoja konkrečiai išleistai monetai ir jos sumai. Tačiau paskirties išvestis gali likti neapribota.
Dėl to atsiranda piniginių ir pasirašymo įrenginių autorizavimo problema: programinė įranga gali pateikti vartotojui vieną mokėjimą, o parašo, kuris kriptografiškai negarantuoja, kad patvirtintas gavėjas išliks nepakitęs.
Bitcoin Core blokuoja rizikingą pasirašymo užklausą
„Bitcoin Core“ jau atmetė kraštutinį atvejį per neapdorotų sandorių pasirašymo sąsają. Jo PSBT kelias, įskaitant walletprocesspsbtdar gali pasirašyti.
Naujasis kodas perkelia patikrą į „Bitcoin Core“ bendrą parašo kūrimo logiką, neleidžiant pasirašyti paveiktų senųjų ir „SegWit v0“ įvesčių, o kitoms galiojančioms įvestims tame pačiame PSBT leidžiama tęsti.
PSBT dažniausiai naudojami operacijoms tarp programinės įrangos piniginių, aparatūros įrenginių ir pasirašiusiųjų neprisijungus koordinuoti. Jie leidžia operacijų kūrėjams perduoti informaciją atskiram pasirašančiam asmeniui, nesuteikiant šiai sistemai privačių raktų kontrolės.
Todėl pataisa sustiprina ribą, kurią piniginės kūrėjai turi laikytis neatsižvelgdami į rakto saugumą: galiojantis kriptografinis parašas turi atitikti operacijos duomenis, kuriuos vartotojas iš tikrųjų leido.
„Bitcoin Improvement Proposal 174“, kuriame apibrėžiami PSBT, jau nurodo pasirašiusiems atmesti nepriimtinus pasirašymo būdus ir rekomenduoja SIGHASH_ALL kai nenurodyta jokia alternatyva. Bitcoin Core pakeitimas aiškiai neleidžia šiai trūkstamos išvesties konfigūracijai pasiekti pasirašymo etapą.
Naudotojai dar neturi patvirtinto gamybos leidimo su apsauga. Rugsėjo 25 d. pakeitimas buvo sujungtas su „Bitcoin Core“ plėtros šaka, o projekto paskelbtuose leidimų sąrašuose nebuvo nustatyta fiksuota versija ar patvirtintas atgalinis portas nuo spalio 4 d.
Dėl to piniginės tiekėjai ir aparatinės įrangos pasirašymo integracijos turi priimti greitesnį sprendimą: peržiūrėti, kaip jie elgiasi SIGHASH_SINGLE prašymus, o ne laukti, kol bus išleistas „Bitcoin Core“, kad būtų užtikrinta tokia pati apsauga.
