Base58とは

カテゴリ glossary

Base58とは、二進数で表されたバイナリデータを文字として扱うためのエンコード方式のことです。
仮想通貨では、公開鍵や秘密鍵、アドレスの形式を変換するときに広く使われています。
 
Base58に類似するエンコード方式にBase64と呼ばれるものがありますが、使用できる文字が異なります。Base58は、英数字以外の文字や数字の「0」と英大文字の「O」、数字の「1」と英小文字の「l」など、印字したり目視で確認したりする際に間違えやすい文字は片方を除外しているという特徴があります。
このような特徴はエンコードされた文字列を扱う際にミスが生じないようにという考えのもとに設計されています。
例えば、識別しにくい文字が除外されているのは印刷されたビットコインアドレスを人間が読んで端末に入力するときに間違いが生じないようにという工夫であり、英数字以外の記号などの文字を排除しているのは端末上でダブルクリックしてコピーアンドペーストをスムーズに行うための設計になっています。
 
ビットコインの場合には「123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz」、リップルの場合には「rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz」のそれぞれ58文字が利用可能です。
 
また、打ち間違えられたアドレスなど無効なアドレスを検出してくれるBase58Checkというエンコード方式もあります。
仮想通貨はユーザーがアドレスを手打ちする機会などが多いため、アドレスの正誤を判断する仕組みが必須です。
Base58Checkでエンコードされたアドレスは末尾に「チェックサム」というアドレスの正誤を判断する文字列が付与されます。
これにより、例えばペーパーウォレットからビットコインを出金しようとしたときにアドレスを打ち間違えてしまっても、きちんとアプリケーション側で「このアドレスは無効です。」と表示してくれるようになります。
 
ビットコインやイーサリアム、リップルなどの仮想通貨を利用している時にはあまり意識しないバックグラウンドの技術ですが、様々な工夫があり利便性が担保されていることがわかります。

投稿者

Liquid編集部(基礎)