-
bitcoin $77323.969542 USD
0.01% -
ethereum $2523.414850 USD
2.23% -
tether $0.999674 USD
0.01% -
bnb $732.334794 USD
2.37% -
xrp $1.364311 USD
0.51% -
usd-coin $0.999831 USD
0.00% -
solana $101.751035 USD
1.88% -
tron $0.339246 USD
0.15% -
hyperliquid $78.911101 USD
-1.42% -
zcash $1143.169120 USD
2.95% -
dogecoin $0.084522 USD
0.58% -
monero $539.820025 USD
5.75% -
chainlink $11.538258 USD
0.03% -
unus-sed-leo $9.111763 USD
0.28% -
cardano $0.208079 USD
-0.46%
安全な署名検証のために EIP-712 を実装するにはどうすればよいですか?
EIP-712 standardizes typed data signing in Ethereum, enabling human-readable wallet prompts, domain-separated signatures, deterministic hashing, and secure on-chain verification—preventing replay and ambiguity.
2026/01/20 22:20
EIP-712 の概要と主な目的
1. EIP-712 は、イーサリアム アプリケーションにおける型付き構造化データのハッシュと署名の標準を定義します。
2. これにより、ウォレットは、署名リクエスト中に未加工の 16 進文字列の代わりに人間が判読できるドメインおよびメッセージ フィールドを表示できるようになります。
3. この仕様では、ドメイン区切りハッシュによるドメイン分離が導入されており、異なる dApp またはチェーン間での署名の再生が防止されます。
4. すべての署名付きペイロードには、シリアル化とハッシュ化の前に明示的に宣言する必要がある型定義が含まれています。
5. この構造により、確定的なエンコーディングが保証され、オプションのフィールドや動的配列の順序付けからの曖昧さが排除されます。
ドメインセパレータの構築
1. ドメイン区切り文字は、 keccak256(encodeType(domainType) || encodeData(domainValue))を使用して計算されます。
2. 必須のドメイン フィールドには、 name 、 version 、 chainId 、 verifyingContract 、およびオプションでSalt が含まれます。
3.名前フィールドは、dApp の登録ブランド名と一致する必要があり、多くの場合、ENS または契約メタデータに対して検証されます。
4.chainId はチェーン固有の有効性を強制します。イーサリアム メインネットで生成された署名は、再計算しないと Polygon または Arbitrum では無効になります。
5. ドメイン区切り文字が一致しないと、他のすべての入力が正しい場合でも、署名検証が失敗します。
型付きデータのエンコードプロセス
1. 各型宣言では、フィールド名、型、およびネストされた依存関係 (たとえば、 Person(address Wallet, string name) )を指定します。
2. 配列は、ポインタや参照としてではなく、長さの接頭辞が付いた個々の要素の連結ハッシュとしてエンコードされます。
3. 文字列はハッシュ化する前に UTF-8 バイト変換を受けます。切り捨てや正規化は自動的には適用されません。
4. アドレス フィールドは 32 バイトまでゼロ埋めされ、ハッシュ化する前に内部的にbytes20として扱われます。
5. 最終ダイジェストでは、ドメイン区切り文字、プライマリ タイプ ハッシュ、およびエンコードされたメッセージ データが、ECDSA 署名に使用される単一のkeccak256出力に結合されます。
フロントエンド統合パターン
1. MetaMask のような最新のウォレットは、EIP-712 に準拠した JSON-RPC ペイロードを受け入れるeth_signTypedData_v4 RPC メソッドを公開します。
2. 開発者は、署名リクエストを呼び出す前に、JavaScript オブジェクト内のすべての型を事前に宣言する必要があります。実行時に動的に型が生成されると、互換性が失われます。
3. @ethersproject/hashなどのライブラリは、クライアント側でドメイン区切り文字と型付きハッシュを計算するユーティリティを提供します。
4. UI レイヤーは、各フィールドのラベルと値をタイプ スキーマで定義されたとおりに正確にレンダリングする必要があります。逸脱するとユーザーが混乱し、信頼が損なわれます。
5. 署名ペイロードは署名後に決して変更してはなりません。空白文字を変更しただけでも暗号証明は無効になります。
オンチェーン検証メカニズム
1. スマート コントラクトは、入力パラメーターとドメイン値から導出された再構成されたダイジェストを使用してecrecoverを使用して署名を検証します。
2. OpenZeppelin のECDSA.recoverのような Solidity ライブラリは回復ロジックを簡素化しますが、フロントエンドの動作に一致する正確なダイジェスト再構築が必要です。
3. コントラクトに渡されるドメイン パラメータは、署名時に使用されたものと同一である必要があります。不一致があると、回復可能なアドレスが不正確になります。
4. メッセージ データは、同じ型定義を使用してコントラクト内で逆シリアル化する必要があります。逸脱するとハッシュの不一致が発生します。
5. 検証された署名は、許可ベースのトークン転送、ガバナンス提案、オフチェーン注文決済などの重要なアクションをゲートできます。
よくある質問
Q: EIP-712 署名は、名前とバージョンが同じで異なるドメイン間で再利用できますか? A: いいえ。chainId またはverifyingContractのわずかな違いでも、明確なドメイン区切り文字が生成され、クロスドメインの再利用が不可能になります。
Q: ドメイン構造体のソルトフィールドを省略しても安全ですか? A: はい、省略は許可されますが、省略すると、フォークまたはテストネット間で同一のコントラクトをデプロイする場合の一意性の保証が低下します。
Q: EIP-712 は再帰的な型定義をサポートしていますか? A: いいえ。循環型または自己参照型は決定論的エンコード要件に違反するため、ハッシュ計算中に失敗します。
Q: EIP-712 型定義で可変長配列を処理するにはどうすればよいですか? A: Person[] peopleのような構文を使用します。エンコーダーは配列の長さを自動的に計算し、連結する前に各要素を個別にハッシュします。
免責事項:info@kdj.com
提供される情報は取引に関するアドバイスではありません。 kdj.com は、この記事で提供される情報に基づいて行われた投資に対して一切の責任を負いません。暗号通貨は変動性が高いため、十分な調査を行った上で慎重に投資することを強くお勧めします。
このウェブサイトで使用されているコンテンツが著作権を侵害していると思われる場合は、直ちに当社 (info@kdj.com) までご連絡ください。速やかに削除させていただきます。
- リップル RLUSD の流通額が 24 億ドルに達: ステーブルコインの軌跡を詳しく見る
- 2026-09-13 04:50:01
- XRPミリオネアの夢: 10,000 XRPで20年以内に金持ちになれるでしょうか?
- 2026-09-13 04:50:01
- 英国の暗号資金調達の改革:7,200万ポンドの寄付とその波及効果についての深掘り
- 2026-09-13 04:45:01
- Teucrium Inverse XRP ETF、発効日を10月11日に設定: ETF発売日について投資家が知っておくべきこと
- 2026-09-13 04:45:01
- CPEN ネットワーク インク トークン: モバイル マイニング、トークンノミクス、およびその進化するレガシーの詳細
- 2026-09-12 16:35:02
- 市場の不確実性と主要な経済イベントの中でXRP投資家は重要な決断を迫られている
- 2026-09-12 16:40:01
関連知識
DOGE 先物の出来高と建玉を確認するにはどうすればよいですか?
2026-09-12 08:39:38
DOGE 先物ボリュームを理解する1. 先物取引高とは、特定の時間枠内で取引される DOGE 件の先物契約の総数を指し、通常は 1 日または 1 時間ごとに測定されます。 2. 出来高が多いということは、多くの場合、市場への参加が強力であることを示しており、価格変動の状況に応じてトレンドの継続または...
BTC先物の出来高と建玉を確認するにはどうすればよいですか?
2026-09-12 15:19:55
BTC先物指標のデータソース1. CoinGlass API v4 は、30 以上の取引所にわたるリアルタイムの資金調達レート、清算ヒートマップ、および詳細な建玉の内訳を提供します。 2. Binance Futures API は、ビッドアスク深度、契約固有の出来高履歴、マージン率スナップショット...
DOGEUSDT 無期限契約チャートの見方
2026-09-11 19:19:48
DOGEUSDT 無期限チャートの価格アクションを理解する1. ローソク足の形成は、当面の市場センチメントを明らかにします。緑のローソクは買い優勢を示し、赤のローソクはその期間中の売り圧力を示します。 2. 本体の上下の芯は、価格の高値または低値の拒否を示します。不安定なミームコイン市場では、長い上...
Binance の ETHUSDT 先物チャートを読むには?
2026-09-13 05:20:26
Bitcoin 半減力学1. 210,000 ブロックごとに、Bitcoin 名のマイナーのブロック報酬が半分になります。 2. このイベントは約 4 年ごとに発生し、Bitcoin のプロトコルにハードコードされています。 3. 最新の半減により、報酬はブロックあたり 6.25 BTC から 3....
BinanceでBTC先物ファンディング手数料を確認するにはどうすればよいですか?
2026-09-10 08:00:06
ファンディングレート表示の場所1. Binance Futures 取引インターフェイスに移動し、BTCUSDT 無期限契約を選択します。 2. 価格チャートの直下またはオーダーブックに隣接する領域を観察します。この領域には、「資金調達レート」とマークされたラベル付きボックスが含まれています。 3....
SOLUSDT 先物損益の計算方法
2026-09-10 19:19:37
SOLUSDT 先物契約仕様の理解1. 各 SOLUSDT 先物契約は USDT で見積もられ、USDT で決済されるため、線形永久契約となります。 2. 基本資産は SOL ですが、見積資産は USDT です。すべての損益計算は USDT で直接表示されます。 3. 価格変動の最小ティック サイズ...
DOGE 先物の出来高と建玉を確認するにはどうすればよいですか?
2026-09-12 08:39:38
DOGE 先物ボリュームを理解する1. 先物取引高とは、特定の時間枠内で取引される DOGE 件の先物契約の総数を指し、通常は 1 日または 1 時間ごとに測定されます。 2. 出来高が多いということは、多くの場合、市場への参加が強力であることを示しており、価格変動の状況に応じてトレンドの継続または...
BTC先物の出来高と建玉を確認するにはどうすればよいですか?
2026-09-12 15:19:55
BTC先物指標のデータソース1. CoinGlass API v4 は、30 以上の取引所にわたるリアルタイムの資金調達レート、清算ヒートマップ、および詳細な建玉の内訳を提供します。 2. Binance Futures API は、ビッドアスク深度、契約固有の出来高履歴、マージン率スナップショット...
DOGEUSDT 無期限契約チャートの見方
2026-09-11 19:19:48
DOGEUSDT 無期限チャートの価格アクションを理解する1. ローソク足の形成は、当面の市場センチメントを明らかにします。緑のローソクは買い優勢を示し、赤のローソクはその期間中の売り圧力を示します。 2. 本体の上下の芯は、価格の高値または低値の拒否を示します。不安定なミームコイン市場では、長い上...
Binance の ETHUSDT 先物チャートを読むには?
2026-09-13 05:20:26
Bitcoin 半減力学1. 210,000 ブロックごとに、Bitcoin 名のマイナーのブロック報酬が半分になります。 2. このイベントは約 4 年ごとに発生し、Bitcoin のプロトコルにハードコードされています。 3. 最新の半減により、報酬はブロックあたり 6.25 BTC から 3....
BinanceでBTC先物ファンディング手数料を確認するにはどうすればよいですか?
2026-09-10 08:00:06
ファンディングレート表示の場所1. Binance Futures 取引インターフェイスに移動し、BTCUSDT 無期限契約を選択します。 2. 価格チャートの直下またはオーダーブックに隣接する領域を観察します。この領域には、「資金調達レート」とマークされたラベル付きボックスが含まれています。 3....
SOLUSDT 先物損益の計算方法
2026-09-10 19:19:37
SOLUSDT 先物契約仕様の理解1. 各 SOLUSDT 先物契約は USDT で見積もられ、USDT で決済されるため、線形永久契約となります。 2. 基本資産は SOL ですが、見積資産は USDT です。すべての損益計算は USDT で直接表示されます。 3. 価格変動の最小ティック サイズ...
すべての記事を見る














