Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 259|Odpověď: 0

Podrobné vysvětlení kódování blockchainu Base58, Base58Check, Bech32 a Bech32m

[Kopírovat odkaz]
Zveřejněno 17. 10. 2025 09:01:55 | | | |
Base58, Base58Check, Bech32 a Bech32m jsou běžně používané kódovací formáty v blockchainové technologii, primárně určené ke zlepšení čitelnosti, snížení chyb a zajištění integrity dat. Tyto čtyři kódy mají své vlastní výhody v oblasti zabezpečení, kompatibility a schopností opravy chyb a jsou důležitými pilíři moderních blockchainových adresních systémů.

Base58

"Base58" je metoda kódování vynalezená Satoshim Nakamotem a je upravena z dobře známé metody kódování "Base64". Sada znaků Base64 zahrnuje: všechna čísla a velká i malá písmena, stejně jako dva symboly ("+" a "/"); Celkem 64 znaků. Satoshi Nakamoto odstranil číslo 0, velká písmena I a O, malé písmeno l a symbol, a vzniklo to Base58.

Sada znaků: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz



Base58Check

Ve srovnání s Base58 má kódování Base58Check pouze o jeden výpočet kontrolního součtu navíc. Jak je uvedeno níže:



Base58Check řeší problémy náchylnosti k chybám a obtížnosti rozpoznání a neověřenosti v tradičních metodách kódování, poskytující bezpečnou, kompaktní, lidsky přívětivou a chybově detekující metodu reprezentace klíčových dat v blockchainu (jako jsou adresy a soukromé klíče). Ačkoliv je nyní postupně nahrazován pokročilejšími modely Bech32/Bech32m (pro SegWit adresy), sehrál klíčovou roli v raném bitcoinovém ekosystému.

Bech32

"Bech32" je kódovací metoda definovaná BIP 0173, kterou napsali Pieter Wuille a Greg Maxwell. Toto kódování má však také svůj původ: "Bech" označuje "BCH", cyklický algoritmus kódování s korekcí chyb, který vynalezli tři matematici v letech 1959 a 1960 (název BCH pochází od jmen těchto tří matematiků). "32" znamená, že znaková sada metody kódování obsahuje pouze 32 znaků: malých písmen a čísel, kromě čísel "1", písmen "b", "i" a "o".



Na začátku BIP 0173 autoři poukazují na nežádoucí aspekty Base58:

  • Base58 používá jak velká, tak malá anglická písmena, což znamená, že jeho data nejsou vykreslována do QR kódů v menším režimu "numerická abeceda", ale pouze ve větším "bajtovém datovém režimu".
  • Použití jak pouzdra, tak pouzdra také ztěžuje přepisování, psaní a čtení na klávesnici telefonu.
  • Kontrolní součet vyžadoval dvě po sobě jdoucí operace SHA256, které byly pomalé a neměly schopnost najít špatné umístění.
  • Většina lokalizovatelných metod kódování chyb funguje pouze tehdy, pokud je velikost znakové sady na síle prvočíselného čísla a 58 není mocnina prvočísla.
  • Base58 je složitější na dekódování a pomalejší na dekódování.

Výsledkem je, že nový přístup Bech32 používá pouze malá písmena a čísla; Když je to potřeba, například při kreslení QR kódu, lze tato písmena nahradit velkými písmeny pro kompaktnější reprezentaci. Menší QR kódy, protože Bech32 adresy jsou jednotné, můžete zakódovat jako QR kódy pomocí alfanumerického režimu. To znamená, že můžete vytvořit kompaktnější QR kód, protože Base58 vyžaduje velká a malá písmena (což znamená, že nelze použít alfanumerický režim), zatímco Bech32 ne. Jak je uvedeno níže:



Jak vidíte, i přes adresu Bech32Obsahuje více znaků, ale možnost používat alfanumerické vzory znamená, že QR kódy celkově spotřebovávají méně dat

Současně má Bech32 schopnost najít chyby: dokáže nejen zjistit, že jste udělali chybu při kopírování, ale také ukázat, které bity jste zkopírovali špatně (tato schopnost najít chyby je mnohem lepší než u Base58).

Ve skutečnosti má algoritmus BCH také funkci "korekce chyby": může nejen indikovat, které bity jste zkopírovali špatně, ale také jaké znaky by měly být. Autoři BIP 0173 však zjistili jeho inherentní nebezpečí: na jedné straně posílení korekce chyb oslabuje schopnost chyby lokalizovat; Na druhou stranu, pokud uživatel příliš spoléhá na schopnosti korekce chyb softwaru, může software opravit chybná data zadaná uživatelem na "platná, ale nepoužitelná" data – i když jsou platná jako BCH kódovaná data; Je však možné, že obnovený bitcoinový skript není pod kontrolou příjemce, ani nikoho jiného. To je extrémně nebezpečné. Proto BIP 0173 varuje: "Kromě připomínání uživatelů, které bity mohly být zkopírovány nesprávně, by software neměl implementovat funkce korekce chyb (dávat návrhy na opravu)." ”

Navíc Bech32 následuje vzor nalezený v kódování Base58:

1. Data Bech32 začínají odstavcem "data s významem (hrp)", podobně jako předpona v Base58, což může označit, o jaký typ dat se jedná.
HRP může použít mnohem více než 32 znaků; Bech32 také používá číslo "1" jako oddělovač k oddělení HRP od dat, která mají být skutečně dekódována.
Kromě Bitcoinu existuje mnoho dalších projektů, které také přijaly Bech32; HRP se používá k rozlišení dat od různých položek. Tady je seznam registrovaných HRP, což je velmi zajímavé (ale jen zajímavé).
2. Bech32 také navrhl kontrolní součet, který zabírá posledních 6 znaků zakódovaných dat.

Bech32m

"Bech32m" je metoda kódování definovaná BIP 0350. Propojit:Přihlášení k hypertextovému odkazu je viditelné.Bylo navrženo proto, že vývojáři objevili zranitelnost v kódování Bech32:

Pokud je poslední znak "p", vložení nebo odstranění libovolného počtu "q" před tímto znakem nezpůsobí chybu kontrolního součtu (data budou stále považována za platná), pakMechanismus kontrolního součtu zcela ztrácí svou funkciDokončit.

Pokud nepřidáte standardizovaný Bitcoin skript, tento problém lze snadno vyřešit: jak P2WPKH adresa, tak P2WSH mají určitou délku, stačí přidat kontrolu délky. Nicméně, vzhledem k tomu, že v budoucnu budeme přidávat nové standardizované skripty, se délka adresy může změnit, takže je nutné tento problém opravit.

Bech32m tento problém řeší změnou parametru v generátoru kontrolního součtu Bech32.

V současnosti se Bech32m používá pouze k kódování adres pro skripty "P2TR", které jsou přidány s upgradem "Taproot". V budoucnu může být použit při adresovém kódování jiných standardizovaných písem.

Odkaz:

Přihlášení k hypertextovému odkazu je viditelné.
Přihlášení k hypertextovému odkazu je viditelné.
Přihlášení k hypertextovému odkazu je viditelné.




Předchozí:tiktok, Douyin zachytí balíček a ukončí skript Frida, který dokáže lokalizovat místo SO souborové záplaty
Další:Úvod do typů Bitcoin adres: Legacy, Nested SegWit, Native SegWit a Taproot
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com