|
|
Publikuota: 2025-10-17 09:01:55
|
|
|
|

"Base58", "Base58Check", "Bech32" ir "Bech32m" yra dažniausiai naudojami blokų grandinės technologijos kodavimo formatai, visų pirma naudojami skaitomumui pagerinti, klaidų skaičiui sumažinti ir duomenų vientisumui užtikrinti. Šie keturi kodai turi savų privalumų užtikrinant saugumą, suderinamumą ir klaidų taisymo galimybes ir yra svarbūs šiuolaikinių blokų grandinės adresų sistemų kertiniai akmenys.
Bazė58
"Base58" yra Satoshi Nakamoto išrastas kodavimo metodas, pritaikytas iš gerai žinomo kodavimo metodo "Base64". "Base64" simbolių rinkinį sudaro: visi skaičiai ir didžiosios bei mažosios raidės, taip pat du simboliai ("+" ir "/"); Iš viso 64 simboliai. Satoshi Nakamoto pašalino skaičių 0, didžiąsias raides I ir O, mažąją raidę l ir simbolį, ir jis tapo Base58.
Simbolių rinkinys: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Bazė58Patikrinkite
Palyginti su Base58, Base58Check kodavimas turi tik dar vieną kontrolinės sumos skaičiavimą. Kaip parodyta žemiau:
"Base58Check" išsprendžia klaidų, sunkiai atpažįstamų ir nepatikrintų tradicinių kodavimo metodų problemas, suteikdama saugų, kompaktišką, žmogui patogų ir klaidas aptinkantį pagrindinių blokų grandinės duomenų (pvz., adresų ir privačių raktų) atvaizdavimo metodą. Nors dabar jį palaipsniui keičia pažangesnis Bech32/Bech32m (SegWit adresams), jis suvaidino lemiamą vaidmenį ankstyvoje Bitcoin ekosistemoje.
Bech32
"Bech32" yra kodavimo metodas, apibrėžtas BIP 0173, kurio autoriai yra Pieter Wuille ir Greg Maxwell. Tačiau šis kodavimas taip pat turi savo kilmę: "Bech" reiškia "BCH" – ciklinį klaidų taisymo kodavimo algoritmą, kurį išrado trys matematikai atitinkamai 1959 ir 1960 m. (pavadinimas BCH kilęs iš šių trijų matematikų vardų). "32" reiškia, kad kodavimo metodo simbolių rinkinį sudaro tik 32 simboliai: mažosios raidės ir skaičiai, išskyrus skaičius "1", raides "b", "i" ir "o".
BIP 0173 pradžioje autoriai atkreipia dėmesį į nepageidaujamus Base58 aspektus:
- "Base58" naudoja tiek didžiąsias, tiek mažas angliškas raides, todėl jos duomenys į QR kodus įtraukiami ne mažesniu "skaitmeninės abėcėlės" režimu, o tik didesniu "baitų duomenų" režimu.
- Naudojant dėklą ir dėklą, taip pat sunku transkribuoti, įvesti ir skaityti telefono klaviatūroje.
- Kontrolinei sumai reikėjo dviejų iš eilės SHA256 operacijų, kurios buvo lėtos ir negalėjo rasti netinkamos vietos.
- Dauguma lokalizuojamų klaidų kodavimo metodų veikia tik tuo atveju, jei simbolių rinkinio dydis yra pagrindinis, o 58 nėra pagrindinis galia.
- Base58 yra sudėtingiau iššifruoti ir lėčiau iššifruoti.
Dėl to naujasis Bech32 metodas naudoja tik mažąsias raides ir skaičius; Kai reikia, pavyzdžiui, piešiant QR kodą, visas šias raides galima pakeisti didžiosiomis raidėmis, kad vaizdas būtų kompaktiškesnis. Mažesni QR kodai, kadangi Bech32 adresai yra vienaskaita, galite juos užkoduoti kaip QR kodus naudodami raidinį ir skaitmeninį režimą. Tai reiškia, kad galite sukurti kompaktiškesnį QR kodą, nes Base58 reikalauja didžiųjų ir mažųjų raidžių (tai reiškia, kad negalite naudoti raidinio ir skaitmeninio režimo), o Bech32 ne. Kaip parodyta žemiau:
Kaip matote, nepaisant Bech32 adresoYra daugiau simbolių, tačiau galimybė naudoti raidinius ir skaitmeninius raštus reiškia, kad QR kodai iš viso naudoja mažiau duomenų。
Tuo pačiu metu Bech32 turi galimybę rasti klaidas: jis gali ne tik nustatyti, kad padarėte kopijavimo klaidą, bet ir nurodyti, kuriuos bitus nukopijavote neteisingai (ši galimybė rasti klaidas yra daug pranašesnė už Base58).
Tiesą sakant, BCH algoritmas taip pat turi "klaidų taisymo" funkciją: jis gali ne tik nurodyti, kuriuos bitus nukopijavote neteisingai, bet ir kokie simboliai tai turėtų būti. Tačiau BIP 0173 autoriai nustatė jam būdingus pavojus: viena vertus, klaidų taisymo stiprinimas silpnina gebėjimą nustatyti klaidas; Kita vertus, jei vartotojas per daug pasitiki programinės įrangos klaidų taisymo galimybėmis, programinė įranga gali ištaisyti klaidingus duomenis, kuriuos vartotojas įvedė į "galiojančius, bet nenaudingus" duomenis - nors jie galioja kaip BCH užkoduotų duomenų dalis; Tačiau gali būti, kad atkurto Bitcoin scenarijaus gavėjas ar net niekas nekontroliuoja. Tai labai pavojinga. Todėl BIP 0173 įspėja: "Programinė įranga ne tik primena vartotojams, kurie bitai galėjo būti nukopijuoti neteisingai, bet ir neturėtų įdiegti klaidų taisymo galimybių (pateikti taisymo pasiūlymų)." ”
Be to, Bech32 vadovaujasi Base58 kodavimo modeliu:
1. Bech32 duomenys prasidės pastraipa "duomenys su prasme (hrp)", panaši į Base58 priešdėlį, kuris gali nurodyti, kokie tai duomenys. HRP gali naudoti daug daugiau nei 32 simbolius; Bech32 taip pat naudoja skaičių "1" kaip skyriklį, kad atskirtų HRP nuo duomenų, kurie iš tikrųjų turi būti iššifruoti. Be Bitcoin, yra daug kitų projektų, kurie taip pat pritaikė Bech32; HRP naudojamas duomenims atskirti nuo skirtingų elementų. Štai registruotų HRP sąrašas, kuris yra labai įdomus (bet tik įdomus). 2. Bech32 taip pat sukūrė kontrolinę sumą, kuri užima paskutinius 6 užkoduotų duomenų simbolius.
Bech32m
"Bech32m" yra kodavimo metodas, apibrėžtas BIP 0350. Saitas:Hipersaito prisijungimas matomas.Tai buvo pasiūlyta, nes kūrėjai aptiko Bech32 kodavimo pažeidžiamumą:
Kai paskutinis simbolis yra "p", įterpus ar pašalinus bet kokį "q" skaičių prieš tą simbolį, kontrolinės sumos klaida nebus padaryta (duomenys vis tiek bus laikomi galiojančiais), tadaKontrolinės sumos mechanizmas visiškai praranda savo funkcijąBaigti.
Jei nepridėsite standartizuoto Bitcoin scenarijaus, šią problemą galima lengvai išspręsti: tiek P2WPKH adresas, tiek P2WSH adresas turi tam tikrą ilgį, tiesiog pridėkite ilgio patikrinimą. Tačiau atsižvelgiant į tai, kad ateityje taip pat pridėsime naujų standartizuotų scenarijų, adreso ilgis gali keistis, todėl būtina išspręsti šią problemą.
"Bech32m" išsprendžia šią problemą pakeisdama parametrą "Bech32" kontrolinės sumos generatoriuje.
Šiuo metu Bech32m naudojamas tik "P2TR" scenarijų, kurie pridedami atnaujinus "Taproot", adresams koduoti. Ateityje jis gali būti naudojamas kitų standartizuotų scenarijų adresų kodavimui.
Nuoroda:
Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas. |
Ankstesnis:tiktok, Douyin užfiksuoti paketą ir nužudyti Frida scenarijų, kuris gali rasti SO failo pataisos vietąKitą:Įvadas į Bitcoin adresų tipus Legacy, Nested SegWit, Native SegWit ir Taproot
|