初心者用語を調べる
チェックサムとは
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 4 分
結論
チェックサムは、データに付け足された検査用の値で、1文字でも書き間違えるとウォレットが「無効なアドレスです」と教えてくれる仕組みです。アドレスにもシードフレーズにも組み込まれています。ただし、正しく入力された他人のアドレスは検出できないため、送金前の確認は依然として必要です。
要点
- 入力ミスを検出するために付け足される検査値
- アドレスにもシードフレーズにも入っている
- 誤りの検出はできるが、訂正はしてくれない
- 正しい表記の誤送金先は検出できない
定義
元のデータから計算して末尾などに付加する短い値。受け取った側が同じ計算をして一致しなければ、データが壊れているか誤記があると判断できる。
ビットコインのレガシーアドレスでは、公開鍵ハッシュにSHA-256を2回かけ、その先頭4バイトを末尾に付けています。アドレスを1文字打ち間違えると、この4バイトが一致しなくなり、ウォレットが送金前に弾きます。誤ったアドレスが偶然チェックサムを通過する確率は約43億分の1です。
イーサリアムのアドレスは元々すべて小文字で、チェックサムがありませんでした。そこでEIP-55という工夫が導入され、アドレス中の英字の一部を大文字にすることでチェックサムを表現しています。大文字小文字が混ざった0xアドレスを見たら、それはEIP-55形式です。対応するウォレットなら、この情報で誤記を検出できます。
BIP39のシードフレーズにもチェックサムが入っています。12語のうち最後の語には4ビットの検査値が含まれており、単語を1つ書き間違えると「無効なフレーズです」と表示されます。ただし、たまたま別の有効なフレーズになってしまう可能性もゼロではないため、書き写した直後に復元テストをしておくのが確実です。
注意点
- · チェックサムが通っても、宛先が正しい相手とは限らない
- · アドレスの一部だけを目視確認すると、先頭と末尾を似せた偽アドレスに騙されることがある
- · シードフレーズの復元テストは、必ず自分の管理下の端末で行う