Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 259|Odgovoriti: 0

Podrobna razlaga kodiranja na blockchainu Base58, Base58Check, Bech32 in Bech32m

[Kopiraj povezavo]
Objavljeno 2025-10-17 09:01:55 | | | |
Base58, Base58Check, Bech32 in Bech32m so pogosto uporabljeni formati kodiranja v tehnologiji veriženja blokov, predvsem za izboljšanje berljivosti, zmanjšanje napak in zagotavljanje integritete podatkov. Te štiri kode imajo svoje prednosti pri zagotavljanju varnosti, združljivosti in sposobnosti popravljanja napak ter so pomembni temelji sodobnih blockchain naslovnih sistemov.

Base58

"Base58" je metoda kodiranja, ki jo je izumil Satoshi Nakamoto, prilagojena iz znane metode kodiranja "Base64". Nabor znakov Base64 vključuje: vse številke ter velike in male črke ter dva simbola ("+" in "/"); Skupaj 64 znakov. Satoshi Nakamoto je odstranil številko 0, velike črke I in O, male črke l in simbol, in postal je Base58.

Nabor znakov: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz



Base58Check

V primerjavi z Base58 ima kodiranje Base58Check le eno izračun kontrolne vsote več. Kot je prikazano spodaj:



Base58Check rešuje težave z napakami, težko prepoznavnimi in nepreverjenimi v tradicionalnih metodah kodiranja, saj zagotavlja varno, kompaktno, človeku prijazno in za zaznavanje napak način predstavitve ključnih podatkov v blockchainu (kot so naslovi in zasebni ključi). Čeprav ga zdaj postopoma nadomešča naprednejši Bech32/Bech32m (za SegWit naslove), je igral ključno vlogo v zgodnjem Bitcoin ekosistemu.

Bech32

"Bech32" je metoda kodiranja, opredeljena z BIP 0173, avtorja pa sta bila Pieter Wuille in Greg Maxwell. Vendar ima tudi to kodiranje svoje korenine: "Bech" se nanaša na "BCH", ciklični algoritem za popravljanje napak, ki so ga leta 1959 in 1960 izumili trije matematiki (ime BCH izhaja iz imen teh treh matematikov). "32" pomeni, da ima nabor znakov metode kodiranja le 32 znakov: male črke in številke, brez številk "1", črk "b", "i" in "o".



Na začetku BIP 0173 avtorji izpostavijo nezaželene vidike Base58:

  • Base58 uporablja tako velike kot majhne angleške črke, kar pomeni, da se podatki ne vlečejo v QR kode v manjšem načinu "numerične abecede", temveč le v večjem načinu "bajtnih podatkov".
  • Uporaba tako etua kot ohišja otežuje prepisovanje, tipkanje in branje na tipkovnici telefona.
  • Kontrolna vsota je zahtevala dve zaporedni operaciji SHA256, ki sta bili počasni in nista imeli možnosti najti napačne postavitve.
  • Večina lokalizabilnih metod kodiranja napak deluje le, če je velikost nabora znakov potence praštevila in 58 ni potenca praštevila.
  • Base58 je bolj zapleten za dekodiranje in počasnejši za dekodiranje.

Zaradi tega novi pristop Bech32 uporablja le male črke in številke; Po potrebi, na primer pri risanju QR kode, se te črke lahko zamenjajo z velikimi črkami za bolj kompaktno predstavitev. Pri manjših QR kodah, ker so Bech32 naslovi ednini, jih lahko kodirate kot QR kode z uporabo alfanumeričnega načina. To pomeni, da lahko ustvarite bolj kompaktno QR kodo, saj Base58 zahteva velike in male črke (kar pomeni, da ne morete uporabljati alfanumeričnega načina), medtem ko Bech32 tega ne omogoča. Kot je prikazano spodaj:



Kot vidite, kljub nagovoru Bech32Vsebuje več znakov, vendar možnost uporabe alfanumeričnih vzorcev pomeni, da QR kode na splošno porabijo manj podatkov

Hkrati ima Bech32 sposobnost iskanja napak: ne le, da ste naredili napako pri kopiranju, lahko tudi pokaže, katere bite ste napačno kopirali (ta možnost iskanja napak je bistveno boljša od Base58).

Pravzaprav ima BCH algoritem tudi funkcijo "popravljanja napak": lahko ne pokaže le, katere bite ste napačno kopirali, ampak tudi, katere znake naj bi imeli. Vendar pa so avtorji BIP 0173 odkrili njegove inherentne nevarnosti: po eni strani krepitev popravljanja napak oslabi sposobnost iskanja napak; Po drugi strani pa, če uporabnik preveč zaupa zmogljivostim popravljanja napak programske opreme, lahko ta popravi napačne podatke, ki jih uporabnik vnese, v "veljaven, a neuporaben" podatek – čeprav je ta veljavna kot BCH kodirani podatki; Vendar pa je možno, da obnovljeni Bitcoin skript ni pod nadzorom prejemnika ali kogarkoli drugega. To je izjemno nevarno. Zato BIP 0173 opozarja: "Poleg opominjanja uporabnikov, kateri biti so morda napačno kopirani, programska oprema ne bi smela izvajati funkcij za popravljanje napak (podati predloge za popravek)." ”

Poleg tega Bech32 sledi vzorcu, ki ga najdemo v kodiranju Base58:

1. Podatki Bech32 se začnejo z odstavkom »podatki z pomenom (hrp)«, podobno kot predpona v Base58, ki lahko označi, za kakšen podatek gre.
HRP lahko uporablja veliko več kot 32 znakov; Bech32 prav tako uporablja številko "1" kot ločilo za ločevanje HRP od podatkov, ki jih je treba dekodirati.
Poleg Bitcoina obstaja še veliko drugih projektov, ki so prav tako sprejeli Bech32; HRP se uporablja za razlikovanje podatkov od različnih elementov. Tukaj je seznam registriranih HRP-jev, ki je zelo zanimiv (a samo zanimiv).
2. Bech32 je prav tako zasnoval kontrolno vsoto, ki zaseda zadnjih 6 znakov kodiranih podatkov.

Bech32m

"Bech32m" je metoda kodiranja, definirana z BIP 0350. Povezava:Prijava do hiperpovezave je vidna.Predlagana je bila, ker so razvijalci odkrili ranljivost v kodiranju Bech32:

Ko je zadnji znak "p", vstavljanje ali odstranjevanje kateregakoli števila "q" pred tem znakom ne bo povzročilo napake kontrolne vsote (podatki bodo še vedno veljavni), potemMehanizem kontrolne vsote popolnoma izgubi svojo funkcijoKončati.

Če ne dodate standardiziranega Bitcoin skripta, je ta problem enostavno rešiti: tako P2WPKH kot P2WSH naslov imata določeno dolžino, samo dodajte preverjanje dolžine. Vendar pa, ker bomo v prihodnosti dodajali tudi nove standardizirane skripte, se lahko dolžina naslova spremeni, zato je to težavo potrebno odpraviti.

Bech32m to težavo reši s spremembo parametra v generatorju kontrolne vsote Bech32.

Trenutno se Bech32m uporablja le za kodiranje naslovov za "P2TR" skripte, ki so dodane z nadgradnjo "Taproot". V prihodnosti se lahko uporablja pri naslovnem kodiranju drugih standardiziranih pisav.

Referenčni:

Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.




Prejšnji:tiktok, Douyin zajame paket in uniči Frida skripto, ki lahko locira lokacijo SO datoteke
Naslednji:Uvod v vrste Bitcoin naslovov: Legacy, Nested SegWit, Native SegWit in Taproot
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com