See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 259|Vastuse: 0

Põhjalik selgitus plokiahela Base58, Base58Check, Bech32 ja Bech32m kodeerimise kohta

[Kopeeri link]
Postitatud 2025-10-17 09:01:55 | | | |
Base58, Base58Check, Bech32 ja Bech32m on plokiahela tehnoloogias sageli kasutatavad kodeerimisvormingud, mida kasutatakse peamiselt loetavuse parandamiseks, vigade vähendamiseks ja andmete terviklikkuse tagamiseks. Need neli koodi omavad oma eeliseid turvalisuse, ühilduvuse ja veaparanduse tagamisel ning on kaasaegsete plokiahela aadressisüsteemide olulised nurgakivid.

Base58

"Base58" on kodeerimismeetod, mille leiutas Satoshi Nakamoto ja mis põhineb tuntud kodeerimismeetodil "Base64". Base64 märgikomplekt sisaldab: kõiki numbreid ning suurtähti ja väikeseid tähti ning kahte sümbolit ("+" ja "/"); Kokku 64 tegelast. Satoshi Nakamoto eemaldas numbri 0, suured tähed I ja O, väikesed tähed l ja sümboli ning sellest sai Base58.

Märgikomplekt: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz



Base58Check

Võrreldes Base58-ga on Base58Check kodeerimisel ainult üks kontrollsumma arvutus rohkem. Nagu allpool näidatud:



Base58Check lahendab vigadele vastuvõtlikud, raskesti äratuntavad ja traditsioonilistes kodeerimismeetodites kontrollimata probleemid, pakkudes turvalist, kompaktset, inimsõbralikku ja vigade tuvastamise meetodit plokiahela võtmeandmete (näiteks aadressid ja privaatvõtmed) jaoks. Kuigi see asendatakse järk-järgult arenenuma Bech32/Bech32m-ga (SegWit aadresside jaoks), mängis see olulist rolli varajases Bitcoini ökosüsteemis.

Bech32

"Bech32" on kodeerimismeetod, mille määratleb BIP 0173, mille autorid on Pieter Wuille ja Greg Maxwell. Kuid sellel kodeerimisel on ka oma päritolu: "Bech" viitab "BCH-le", tsüklilisele veaparanduse kodeerimisalgoritmile, mille leiutasid kolm matemaatikut vastavalt 1959. ja 1960. aastal (nimi BCH tuleneb nende kolme matemaatiku nimedest). "32" tähendab, et kodeerimismeetodi märgistikus on ainult 32 märki: väikesed tähed ja numbrid, välja arvatud numbrid "1", tähed "b", "i" ja "o".



BIP 0173 alguses toovad autorid välja Base58 soovimatud aspektid:

  • Base58 kasutab nii suuri kui väikeseid ingliskeelseid tähti, mistõttu andmed joonistatakse QR-koodidesse mitte väiksema "numbrilise tähestiku" režiimis, vaid ainult suurema "baitandme" režiimis.
  • Nii korpuse kui ka ümbrise kasutamine teeb telefoni klaviatuuril transkribeerimise, trükkimise ja lugemise keeruliseks.
  • Kontrollsumma nõudis kahte järjestikust SHA256 operatsiooni, mis olid aeglased ega suutnud vale asukohta leida.
  • Enamik lokaliseeritavaid veakodeerimismeetodeid töötab ainult siis, kui märgikomplekti suurus on algarvus ja 58 ei ole algarvuline.
  • Base58 on keerulisem dekodeerida ja aeglasem.

Seetõttu kasutab Bech32 uus lähenemine ainult väikeseid tähti ja numbreid; Vajadusel, näiteks QR-koodi joonistamisel, saab kõik tähed asendada suurtähtedega, et saavutada kompaktsem esitus. Väiksemate QR-koodide puhul, kuna Bech32 aadressid on üksikud, saab neid kodeerida QR-koodidena tähestikulise numbrilise režiimi abil. See tähendab, et saad luua kompaktsema QR-koodi, sest Base58 nõuab suurtähti ja väikeseid tähti (mis tähendab, et sa ei saa kasutada tähestiku ja numbrilist režiimi), samas kui Bech32 seda ei tee. Nagu allpool näidatud:



Nagu näha, vaatamata Bech32 aadressileSisaldab rohkem märke, kuid võimalus kasutada tähestikulisi mustreid tähendab, et QR-koodid kasutavad üldiselt vähem andmeid

Samal ajal on Bech32-l võime vigu leida: ta suudab mitte ainult tuvastada, et oled teinud kopeerimisvea, vaid ka näidata, millised bitid on valesti kopeeritud (see vigade leidmise võime on Base58-st palju parem).

Tegelikult on BCH algoritmil ka "veaparanduse" funktsioon: see suudab mitte ainult näidata, millised bitid on valesti kopeeritud, vaid ka milliseid tähemärke see peaks olema. Siiski leidsid BIP 0173 autorid selle sisemised ohud: ühelt poolt nõrgestab veaparanduse tugevdamine võimet vigu leida; Teisest küljest, kui kasutaja usaldab liiga palju tarkvara veaparanduse võimekust, võib tarkvara parandada kasutaja sisestatud ekslikke andmeid "kehtivaks, kuid kasutuks" andmetükiks – kuigi see on kehtiv BCH kodeeritud andmena; Siiski on võimalik, et taastatud Bitcoini skript ei ole saaja ega kellegi teise kontrolli all. See on äärmiselt ohtlik. Seetõttu hoiatab BIP 0173: "Lisaks sellele, et tarkvara tuletab kasutajatele meelde, millised bitid võisid olla valesti kopeeritud, ei tohiks tarkvara rakendada veaparanduse võimalusi (anda parandusettepanekuid)." ”

Lisaks järgib Bech32 Base58 kodeeringus leiduvat mustrit:

1. Bech32 andmed algavad lõiguga "andmed, millel on tähendus (hrp)", mis sarnaneb Base58 eesliitega ja võib näidata, millist tüüpi andmed need on.
HRP võib kasutada palju rohkem kui 32 märki; Bech32 kasutab ka numbrit "1" eraldajana, et eraldada HRP andmetest, mida tegelikult dekodeeritakse.
Lisaks Bitcoinile on palju teisi projekte, mis on samuti Bech32 kasutusele võtnud; HRP-d kasutatakse andmete eristamiseks erinevatest üksustest. Siin on nimekiri registreeritud HRP-dest, mis on väga huvitav (aga ainult huvitav).
2. Bech32 kujundas ka kontrollsumma, mis hõivab kodeeritud andmete viimased 6 märki.

Bech32m

"Bech32m" on kodeerimismeetod, mis on määratletud BIP 0350-ga. Link:Hüperlingi sisselogimine on nähtav.See tehti välja, kuna arendajad avastasid Bech32 kodeerimises haavatuse:

Kui viimane märk on "p", siis suvalise arvu "q" lisamine või eemaldamine selle märgi ette ei põhjusta kontrollsumma viga (andmed loetakse endiselt kehtivateks), siisKontrollsumma mehhanism kaotab täielikult oma funktsiooniLõpetada.

Kui sa ei lisa standardiseeritud Bitcoini skripti, saab selle probleemi lihtsalt lahendada: nii P2WPKH kui ka P2WSH aadress on teatud pikkusega, lihtsalt lisa pikkuse kontroll. Kuid arvestades, et tulevikus lisame ka uusi standardiseeritud skripte, võib aadressi pikkus muutuda, seega on see probleem vajalik.

Bech32m lahendab selle probleemi, muutes parameetrit Bech32 kontrollsumma generaatoris.

Praegu kasutatakse Bech32m-i ainult aadresside kodeerimiseks "P2TR" skriptidele, mis lisatakse "Taproot" uuendusega. Seda võib tulevikus kasutada ka teiste standardiseeritud skriptide aadressikodeerimisel.

Viide:

Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.




Eelmine:TikTok, Douyin püüab paketi kinni ja tappab Frida skripti, mis suudab leida SO faili patchi asukoha
Järgmine:Sissejuhatus Bitcoini aadressitüüpidesse Legacy, Nested SegWit, Native SegWit ja Taproot
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com