|
|
Közzétéve: 2025-10-17 09:01:55
|
|
|
|

A Base58, Base58Check, Bech32 és Bech32m a blokklánc technológiában gyakran használt kódoló formátumok, elsősorban az olvashatóság javítására, a hibák csökkentésére és az adatok integritásának biztosítására. Ez a négy kód saját előnyökkel rendelkezik a biztonság, a kompatibilitás és a hibajavítás biztosításában, és fontos alapkövei a modern blokklánc címrendszereknek.
Base58
A "Base58" egy Satoshi Nakamoto által kitalált kódolási módszer, amely egy ismert "Base64" kódolási módszerből származik. A Base64 karakterkészlet tartalmazza: minden számot, nagybetűt és kisbetűket, valamint két szimbólumot ("+" és "/"); Összesen 64 karakter. Satoshi Nakamoto eltávolította a 0-t, az I és O nagybetűket, az l kisbetűt és a szimbólumot, így Base58 lett.
Karakterkészlet: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Base58CheckCheck
A Base58-hoz képest a Base58Check kódolás csak egy ellenzőösszeg-számítással rendelkezik. Ahogy az alábbiakban látható:
A Base58Check megoldja a hibaigényes, nehezen felismerhető és ellenőrizetlen problémák problémáit a hagyományos kódolási módszerekben, biztonságos, kompakt, emberbarát és hibafelismerő reprezentációs módszert kínálva a blokkláncban lévő kulcsfontosságú adatok (például címek és privát kulcsok) számára. Bár ma fokozatosan felváltja a fejlettebb Bech32/Bech32m (SegWit címekhez), kulcsfontosságú szerepet játszott a korai Bitcoin ökoszisztémában.
Bech32
A "Bech32" egy kódolási módszer, amelyet a BIP 0173 definiál, amelyet Pieter Wuille és Greg Maxwell írt. Ennek a kódolónak azonban eredete is megvan: a "Bech" a "BCH"-re utal, egy ciklikus hibajavító kódoló algoritmusra, amelyet három matematikus talált ki 1959-ben és 1960-ban (a BCH név e három matematikus nevéből ered). A "32" azt jelenti, hogy a kódolási módszer karakterkészlete csak 32 karakterből áll: kisbetűk és számok, kivéve az "1", a "b", "i" és "o" betűket.
A BIP 0173 elején a szerzők rámutatnak a Base58 nem kívánatos aspektusaira:
- A Base58 nagy és kis betűs angol betűket használ, így az adatait nem a kisebb "numerikus ábécé" módban rajzolják, hanem csak a nagyobb "bájtadat" módban.
- A tok és a tok használata megnehezíti a telefonon történő átírást, gépelést és olvasást is.
- Az ellenőrző összeg két egymást követő SHA256 műveletet igényelt, amelyek lassúak voltak, és nem voltak képesek helytelen helyet találni.
- A legtöbb lokalizálható hibakódolási módszer csak akkor működik, ha a karakterkészlet mérete prímlegetes, és az 58 nem prímhattus.
- A Base58 bonyolultabb a dekódolás, és lassabb a dekódolás.
Ennek eredményeként a Bech32 új megközelítése csak kisbetűket és számokat használ; Szükség esetén például QR-kód rajzolásakor, ezek a betűk mind nagy betűkkel helyettesíthetők a kompaktabb ábrázolás érdekében. Kisebb QR-kódoknál, mivel a Bech32 címek egyediek, alfanumerikus módban QR-kódként lehet kódolni őket. Ez azt jelenti, hogy kompaktabb QR-kódot is létrehozhatsz, mert a Base58 nagy- és kisbetűket igényel (vagyis nem használhatod az alfanumerikus módot), míg a Bech32 nem. Ahogy az alábbiakban látható:
Ahogy látod, a Bech32 cím ellenéreTöbb karaktert tartalmaz, de az alfanumerikus minták használata miatt a QR-kódok összességében kevesebb adatot használnak。
Ugyanakkor a Bech32 képes hibákat találni: nemcsak azt tudja megállapítani, hogy másoltál egy hibát, hanem meg is mutathatja, mely biteket másoltad el rosszul (ez a hibakeresési képesség sokkal jobb, mint a Base58).
Valójában a BCH algoritmusnak van egy "hibajavítási" funkciója is: nemcsak azt tudja megjelölni, mely biteket másoltad el rosszul is, hanem azt is, hogy mely karaktereknek kell lennie. Azonban a BIP 0173 szerzői felfedezték annak veleszületett veszélyeit: egyrészt a hibajavítás megerősítése gyengíti a hibák feltalálásának képességét; Másrészt, ha a felhasználó túlzottan bízik a szoftver hibajavítási képességeiben, a szoftver javíthatja a felhasználó által bevitelt hibás adatokat "érvényes, de haszontalan" adatba – bár BCH kódolt adatként is érvényes; Azonban lehetséges, hogy a helyreállított Bitcoin szkript nem a címzett vagy bárki más irányítása alatt áll. Ez rendkívül veszélyes. Ezért a BIP 0173 figyelmeztet: "A szoftver nemcsak emlékezteti a felhasználókat, mely biteket lehetett hibásan másolva, és nem szabad hibajavítási lehetőségeket alkalmazni (javítási javaslatokat adni)." ”
Ezen felül a Bech32 követi a Base58 kódolásban található mintát:
1. A Bech32 adatai egy bekezdéssel kezdődnek, amely "jelentéssel rendelkező adatok (hrp)" (értékkel), hasonlóan a Base58 előtagjához, és amely jelezheti, milyen típusú adatról van szó. A HRP sokkal több mint 32 karaktert használhat; A Bech32 az "1" számot is használja elválasztóként, hogy elválassza a HRP-t a ténylegesen dekódolandó adatoktól. A Bitcoin mellett számos más projekt is befogadta a Bech32-t; A HRP-t arra használják, hogy különböző tételekből származó adatokat különítsenek meg. Íme egy lista a regisztrált HRP-kről, ami nagyon érdekes (de csak érdekes). 2. A Bech32 egy ellenőrzőösszeget is tervezett, amely a kódolt adatok utolsó 6 karakterét foglalja el.
Bech32m
A "Bech32m" egy kódolási módszer, amelyet a BIP 0350 definiál. Láncszem:A hiperlink bejelentkezés látható.Azért javasolták, mert a fejlesztők egy sebezhetőséget fedeztek fel a Bech32 kódolásában:
Ha az utolsó karakter "p", bármilyen "q" behelyezése vagy eltávolítása a karakter előtt nem okoz ellenőrzőösszeg-hibát (az adatok továbbra is érvényesnek számítanak), akkorAz ellenőrzőösszeg-mechanizmus teljesen elveszíti funkciójátBefejez.
Ha nem adsz hozzá szabványosított Bitcoin szkriptet, ez a probléma könnyen megoldható: mind a P2WPKH, mind a P2WSH cím hossza van, csak add hozzá a hosszúsági ellenőrzést. Azonban mivel a jövőben új, szabványosított szkripteket is hozzáadunk, a címhossz változhat, ezért ezt a problémát kell orvosolni.
A Bech32m ezt a problémát úgy oldja meg, hogy megváltoztatja a Bech32 elleneküdítő generátor paraméterét.
Jelenleg a Bech32m csak a "P2TR" szkriptek címeinek kódolására szolgál, amelyeket a "Taproot" frissítéssel adnak hozzá. A jövőben más szabványosított szkriptek címkódolására is használható.
Utalás:
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható. |
Előző:a tiktok, Douyin elfoglalja a csomagot és megöli a Frida szkriptet, amely megtalálja a SO fájl javításának helyétKövetkező:Bevezetés a Bitcoin címtípusokba: Legacy, Nested SegWit, Native SegWit és Taproot
|