この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 259|答える: 0

ブロックチェーンBase58、Base58Check、Bech32、Bech32mコーディングの詳細な説明

[リンクをコピー]
2025年10月17日 09:01:55に投稿 | | | |
Base58、Base58Check、Bech32、Bech32mはブロックチェーン技術で一般的に使われるエンコーディング形式で、主に可読性の向上、エラーの減少、データの整合性の確保に用いられます。 これら4つのコードは、セキュリティ、互換性、誤り訂正機能の確保に独自の利点を持ち、現代のブロックチェーンアドレスシステムの重要な基盤となっています。

ベース58

「Base58」は中本聰によって考案された符号化手法で、よく知られた符号化方式「Base64」を応用したものです。 Base64の文字セットには、すべての数字と大文字・小文字、さらに2つの記号(「+」と「/」)が含まれます。 合計64文字。 中本聡は数字の0、大文字のIとO、小文字のl、記号を削除し、Base58となりました。

Character set: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz



Base58チェック

Base58と比べて、Base58Checkのエンコーディングはチェックサム計算が1つ多いだけです。 以下に示すように:



Base58Checkは、従来のコーディング手法におけるエラー発生性、認識が困難、検証されていない問題を解決し、ブロックチェーン内の鍵データ(アドレスや秘密鍵など)に対して安全でコンパクト、人間に優しく、エラー検出性のある表現方法を提供します。 現在は徐々により高度なBech32/Bech32m(SegWitアドレス用)に置き換えられていますが、初期のビットコインエコシステムで重要な役割を果たしました。

ベック32

「Bech32」は、PIP 0173によって定義された符号化手法で、Pieter WuilleとGreg Maxwellによって著者されました。 しかし、この符号化には起源もあります。「Bech」は「BCH」という、1959年と1960年にそれぞれ3人の数学者によって発明された巡回誤り訂正符号化アルゴリズムを指します(BCHという名前はこれら3人の数学者の名前に由来しています)。 「32」とは、符号化方法の文字セットが32文字のみであることを意味します。小文字の文字と数字(「1」、「b」、「i」、「o」を除く)です。



BIP 0173の冒頭で、著者たちはBase58の望ましくない側面を指摘しています。

  • Base58は大文字と小文字の両方を使うため、データは小さな「数字アルファベット」モードではなく、より大きな「バイトデータ」モードでのみQRコードに描画されます。
  • ケースとケースの両方を使うため、電話のキーボードでの書き起こし、タイプ、読書が難しくなっています。
  • チェックサムは連続した2回のSHA256操作を必要とし、遅く間違った位置を特定する機能がありませんでした。
  • ほとんどの局所化可能な誤り符号化方法は、文字セットのサイズが素数のべき乗である場合にのみ機能し、58は素積ではありません。
  • Base58は復号が複雑で復号が遅いです。

その結果、Bech32の新しいアプローチは小文字と数字のみを使用しています。 必要に応じて、例えばQRコードを描画する際には、これらの文字をすべて大文字に置き換えてより簡潔に表現できます。 小さなQRコードは、Bech32アドレスが単数なので、英数字モードでQRコードとしてエンコードできます。 これは、Base58は大文字と小文字の両方が必要(英数字モードは使えないため)が使えるのに対し、Bech32は使わないため、よりコンパクトなQRコードを作成できるということです。 以下に示すように:



ご覧の通り、Bech32のアドレスにもかかわらず文字数は増えますが、英数字パターンを使えるため、QRコードは全体的に使用するデータ量が少なくなります

同時に、Bech32はエラーを特定する能力も備えており、コピーエラーを検出するだけでなく、誤ってコピーしたビットも指摘できます(このエラー検出能力はBase58よりもはるかに優れています)。

実際、BCHアルゴリズムには「誤り訂正」機能も備えており、どのビットを誤ってコピーしたかだけでなく、どの文字であるべきかも示すことができます。 しかし、BIP 0173の著者たちはその本質的な危険性を見出しました。一方で、誤り訂正を強化することで誤りの特定能力が弱まり、 一方で、ユーザーがソフトウェアの誤り訂正機能を過度に信頼すると、ソフトウェアはユーザーが入力した誤ったデータを「有効だが役に立たない」データに修正してしまうことがあります。ただし、それはBCHでエンコードされたデータとして有効です。 しかし、復元されたビットコインスクリプトが受信者や誰の管理下にあるかも考えられます。 これは非常に危険です。 したがって、BIP 0173は次のように警告しています。「誤ってコピーされた可能性のあるビットをユーザーにリマインドするだけでなく、ソフトウェアは誤り訂正機能(訂正提案)を実装すべきではありません。」 ”

さらに、Bech32はBase58符号化に見られるパターンに従っています。

1. Bech32データは「意味のあるデータ(hrp)」という段落で始まります。これはBase58の接頭辞に似ており、どのようなデータかを示します。
HRPは32文字以上を使えます。 Bech32はまた、HRPと実際にデコードされるデータを区切るために「1」という数字を区切りとして使用しています。
ビットコインに加え、Bech32を採用している他の多くのプロジェクトも存在します。 HRPは異なる項目とデータを区別するために使われます。 こちらは登録されているHRPのリストで、とても興味深いですが(ただの興味深いだけです)。
2. Bech32はまた、エンコードデータの最後の6文字を占めるチェックサムも設計しました。

Bech32m

「Bech32m」はBIP 0350によって定義された符号化手法です。 リンク:ハイパーリンクのログインが見えます。これは、開発者がBech32のコーディングに脆弱性を発見したことから提案されました。

最後の文字が「p」の場合、その文字の前に任意の数の「q」を挿入または削除してもチェックサムエラーは発生しません(データは依然として有効とみなされます)、チェックサム機構は完全に機能を失います終える。

標準化されたビットコインスクリプトを追加しなければ、この問題は簡単に解決できます。P2WPKHアドレスとP2WSHアドレスの両方に一定の長さがあり、長さチェックを加えるだけです。 しかし、将来的に新しい標準化されたスクリプトも追加される予定なので、アドレス長が変わる可能性があるため、この問題を修正する必要があります。

Bech32mは、Bech32チェックサムジェネレーターのパラメータを変更することでこの問題を解決します。

現在、Bech32mは「Taproot」アップグレードで追加される「P2TR」スクリプトのアドレスエンコードにのみ使用されています。 将来的には他の標準化されたスクリプトのアドレスエンコーディングにも使われる可能性があります。

参考:

ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。




先の:TikTokでは、Douyinがパッケージを取得し、Soファイルのパッチの位置を特定することができるFridaスクリプトを終了します
次に:ビットコインアドレスタイプ Legacy、Nested SegWit、Native SegWit、Taproot の紹介
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com