🧰 UtlKit

ETHアドレスチェックサム検証の使い方: 0x は小文字のまま, 16 進はちょうど 40 桁, 先頭と末尾の空白は検査前に除去され, EIP-55 の大小は keccak256 が 1 桁ずつ決め, 大文字形式は 0x 前綴すら 0X に変える

ETH アドレスチェックサム検証の正確な挙動を具体例で説明します. 小文字 0x の要求, 40 桁の 16 進でないと失敗, 先頭末尾空白の除去, ダイジェスト桁が 8 以上なら大文字の keccak256 ルール, 3 つの結果状態と 3 つのコピー形式.

ETHアドレスチェックサム検証ツールは, Ethereum アドレスについて 1 つのことを答えます. 文字の大小は, EIP-55 が定める形になっていますか. アドレスを貼り付け, 検証ボタンを押すと, ツールは keccak256 でアドレスをハッシュし, 正規の大小混在形を導き出し, あなたが入力した文字列と 1 文字ずつ比べます. すべてブラウザ内で完結します. keccak256 関数はページに同梱され, アップロードもなく, アドレスはあなたのマシンから出ません.

アドレスを貼り付けて検証を押す

リアルタイム検査はありません. 入力内容は, 検証ボタンを押したときだけ読み取られます. 空の入力で押すと, 結果は赤いアドレス形式が無効の状態だけで, クラッシュも特別なメッセージもありません. 形式の関門をくぐると, ツールはあなたの文字列をチェックサム付きの形と 1 文字ずつ比較し, 一致すればチェックサム有効, 文字は正しいが大小が違えば形式は有効ですがチェックサムが一致しません, になります.

形式の関門: 0x にちょうど 40 桁の 16 進

関門は 1 つの正規表現で, 3 つの要求があります. アドレスは小文字の 0x 前綴で始まることです. 大文字の X は, 後がどんなに正しくても拒否されます. その後, ちょうど 40 桁の 16 進文字が続くこと. 文字列全体は 42 文字になります. 1 桁足りない, 1 桁多い, どちらも失敗です. 最後に, 検査の前に先頭と末尾の空白が除去されます. 貼り付けについてきた余分な空白があっても通りますが, 文字列の内部に 1 つでも空白があると, それは 16 進文字ではなく失敗になります.

EIP-55 が各文字の大小を決める方法

形式が有効だと, ツールは正規形を計算します. 0x 前綴を削り, 40 桁の 16 進を小文字にして keccak256 に渡すと, 64 文字の 16 進ダイジェストが返ります. 次に 40 の位置を 1 つずつたどります. 各位置でダイジェストの対応する文字を見て, その桁の値が 8 以上, つまり 8, 9, あるいは a から f のいずれかだったら, その位置のアドレス文字は大文字に, それ以外は小文字のままにします. だいたい半分程度の文字が大文字になり, どれが大文字になるかは完全にハッシュが決めます.

3 つの結果状態の意味

緑のチェックサム有効は, あなたの文字列が正規の大小混在形と完全に一致することを意味します. EIP-55 が作りたかった形がこれです. 警告の形式は有効ですがチェックサムが一致しませんは, 40 桁の 16 進は全部正しいが, 少なくとも 1 文字の大小がずれていることを意味します. アドレスは同じアカウントを指し, ただスペルチェックに落ちただけです. 全部小文字のアドレスが, 不一致状態の典型例です. 形式は有効ですがチェックサムは永遠に一致しません. 小文字 0x の後に 40 桁すべて大文字の 16 進が続く場合も同じです. 形式の関門はくぐりますが, 正規形の前綴には常に小文字の x があるので, 一致することはありません. 大文字の X で始まる文字列は, 比較の段階にすら届きません. 前綴の規則だけで, すでに失格です.

3 つの出力と, それぞれの使い道

形式が有効だと, 結果カードが 3 つ現れ, 各自にコピーボタンがあります. 1 つ目は全部小文字の文字列です. 2 つ目は全部大文字. 変換は文字列全体に及ぶので, 前綴まで 0X になり, この形をウォレットに貼るべきではありません. 3 つ目が EIP-55 チェックサム付きの形で, コピーに値するのはこれです. 大小そのものに有効性の証明が載っています.

大小がそもそも重要な理由

チェーンの上では, 大小は意味を持ちません. 小文字, 大文字, 混在は同じアカウントです. Ethereum アドレスは 20 バイトで, 文字の大小はそのバイトの一部ではないからです. チェックサムは, 取引の人間側のためにあります. 打ち間違えたアドレスへの送金は取り消せません. EIP-55 はおよそ半分の文字を大小に敏感なチェック桁に変え, 1 文字のミスや入れ替えは, 多くの場合チェックサムが一致しない文字列を生みます. ウォレットや取引所フォームは, お金が動く前にそれを拒否できます.

ここにはないもの, 次のステップ

ツールは意図的に狭いです. 入力 1 つ, ボタン 1 つ, 履歴の保存も, スワップ操作もありません. 替えるものがないからです. 大小の判断を駆動するハッシュそのものを見たいなら, keccak256 ハッシュ は, あなたが選ぶ任意の入力で同じ keccak256 ダイジェストを計算します. その他のハッシュ系を扱うなら, ハッシュ生成 がカバーし, Ethereum の作業がアドレスより関数呼び出しやデータのエンコード寄りのなら, ABIエンコーダ/デコーダ がその側を担当します. ABI エンコーダの解説記事 は, 同じ keccak256 パイプラインをエンコード側から扱います.

関連ツール

よくある質問

チェックサムはアドレス自体を変えますか?

いいえ. 大小は 20 バイトのアドレスの一部ではありません. 小文字, 大文字, 混在はすべて同じアカウントを指します. チェックサムは, どの正確な綴りが正規形かをマークするだけで, 大小が違ったアドレスは同じ宛先で, ただスペルチェックに落ちたものになります.

空の入力や形式不正の入力はどのようになりますか?

赤いアドレス形式が無効の状態を報告するだけです. クラッシュも追加のエラーメッセージもありません. 空の入力, 0x の欠落, 大文字の X, 16 進の桁数の不一致, その他の 16 進以外の文字, すべてが同じ単一の結果を生みます.

アドレスは検証のためにどこかに送られますか?

いいえ. keccak256 関数はページに同梱されブラウザ内で動くので, アドレスはローカルでハッシュ化され, あなたのマシンから出ません. アクセス間の保存もありません.

なぜ全部小文字のアドレスはチェックサム不一致と表示されるのですか?

チェックサム付きの形は, だいたい半分の文字が大文字になるからです. ハッシュがそれを決めます. 全部小文字の文字列は, その形に永遠に等しくならないので, 有効な小文字アドレスは, チェックサム付きバージョンに置き換えるまで, 常に不一致状態のままです.

3 つの出力のうち, どれをコピーすべきですか?

EIP-55 チェックサム付きのもの. 有効なチェックサムを載せるのはこの形だけで, 多くのウォレットや取引所フォームが期待する形です. 小文字のコピーは比較に便利で, 大文字のコピーは 0x 前綴まで 0X に変わるので, どこにでも貼らない方がいいのはこれです.

関連記事