Merkle Tree 生成器 & 可視化ツール
ガイド
Merkle Tree 生成器 & 可視化ツール
値のリストを貼り付け、ハッシュ関数を選択し、直ちに視覚的なメルケルツリーとすべての中間ノードハッシュおよび最終メルケルルートを確認できます。SHA-256、SHA-1、またはイーサリアムで使用されるKeccak-256を選択し、ビットコインスタイルの奇数葉ルールやOpenZeppelinのソートペア規則を調整し、完全なツリーをJSONとしてエクスポートできます。ツリー内の任意のノードをクリックすると、そのハッシュがクリップボードにコピーされます。
使用方法
- テキストエリアに値を1行ずつ入力してください。例ボタンをクリックしてすぐにサンプルセットを試してみましょう。
- ハッシュ関数を選択:一般的な用途にはSHA-256、古いシステムにはSHA-1、イーサリアム対応にはKeccak-256を選択してください。
- 各行がどのように解釈されるかを選択:UTF-8テキスト(デフォルト)またはすでにハッシュされたヘキサデシマル文字列。
- ターゲットプロトコルに合った奇数葉ルールおよびペア連結モードを選択してください。
- メルケルルートを読み取り、SVG図をスクロールし、ダウンロードして後続のツールで使用できます。
機能
- 3つのハッシュ関数 – SHA-256、SHA-1、およびKeccak-256はビットコイン、古来のシステム、イーサリアムの使用ケースをカバーしています。
- インタラクティブなSVG図 – すべてのノードはクリックでコピー可能で、偽の兄弟がダッシュ線で描かれており、構造が誠実です。
- 奇数葉戦略 – ビットコイン規則の「最後を繰り返す」または「最後を促進(未対応のノードを上に持ち上げる)」を切り替えて、ターゲットプロトコルに合わせます。
- ソートペアモード – OpenZeppelinスタイルのソート連結をオンにすると、ソリディティのメルケル証明ライブラリと互換性のあるルートが得られます。
- 事前にハッシュされたヘキサデシマル入力 – 葉のハッシュを完全にスキップし、ヘキサデシマルダイジェストを直接貼り付けることで、下位の葉が大きいためまたは既に標準化されている場合に便利です。
- JSONエクスポート – すべてのレベル、すべてのノードハッシュ、選択されたパラメータの完全なスナップショットをダウンロードして再現性を確保できます。
よくある質問
-
メルケルツリーとは何か?
メルケルツリーは暗号ハッシュの二分木です。葉は入力データのハッシュであり、すべての親ノードはその2つの子ノードの連結ハッシュです。トップにある1つのハッシュ — メルケルルート — は全体のデータセットを指紋としています:葉のいずれかを変更するとルートも変更されます。メルケルツリーは、特定の値がセットに属していることを証明するために、ログの数だけの兄弟ハッシュ(メルケル証明)を共有することで可能になります。そのため、ビットコインブロックヘッダー、イーサリアムステート、Gitコミット、証明書透明性ログに使われています。
-
ビットコインがレベルに奇数のノードがある場合に最後のハッシュを繰り返すのはなぜですか?
二分構造を維持するために、ビットコインは奇数のレベルを右端のハッシュを繰り返してペアにします。これは実装が簡単ですが、知られている2番目のプレイメージの問題(CVE-2012-2459)を引き起こし、攻撃者が同じルートを生成する別の葉リストを作成できる場合があります。新しい設計では「促進」ルール — 未対応のハッシュを上に持ち上げる — または内部と葉のハッシュにドメイン分離タグを適用することで、この問題を解決しています。
-
Keccak-256はSHA-256およびSHA3-256とどう異なりますか?
Keccak-256はNISTのSHA-3競争で勝利した元のスプン構造です。標準化以前、NISTはパディングルールを変更し、SHA3-256を生成しました。これは、標準化前のKeccak-256と1バイトずつ不一致です。イーサリアムは標準化前にKeccak-256を固定しており、Solidityの'keccak256'はSHA3-256とは異なります。SHA-256は関連ないSHA-2ファミリーに属し、メルケル・ダマーガード構造を使用しており、名前だけが共有されています。
-
なぜいくつかのメルケルライブラリはペアをソートしてハッシュするのですか?
左および右のハッシュをハッシュする前にソートすることで、親ハッシュが「左」か「右」の子がどちらかに依存しなくなります。これにより、メルケル証明は方向性のビットを含まなくても済み、チェーン上での証明サイズが30%小さくなり、検証契約も非常にシンプルになります。OpenZeppelinのMerkleProof.solはこの規則を使用しています。古典的なビットコインおよびイーサリアムブロックヘッダーは使用していません。ソートされたバージョンは主にアirdrop許可リスト、ガバナンススナップショット、およびその他のオフチェーンコミットメントで見られます。
恵 スコアボードが到着しました!
スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!
