Signature(署名)
Signatureリソースは、メッセージと型付きデータの署名と検証のための操作を提供します。
概要
デジタル署名は、アドレスの所有権を証明し、秘密鍵を明かすことなくメッセージを認証するために使用されます。
操作
Sign Message(メッセージに署名)
ウォレットでパーソナルメッセージに署名します。
必要な認証情報:Ethereum RPC、Ethereum Account
パラメータ:
- Message(メッセージ)(必須):署名するメッセージ
ユースケース:
- ユーザーを認証
- アドレスの所有権を証明
- オフチェーンメッセージに署名
例:
{
"message": "I agree to the terms and conditions"
}
出力:
{
"signature": "0x1234567890abcdef..."
}
Sign Typed Data(型付きデータに署名)
EIP-712に従って構造化データに署名します。
必要な認証情報:Ethereum RPC、Ethereum Account
パラメータ:
- Domain(ドメイン)(必須):EIP-712ドメインセパレーター
- Types(型)(必須):型定義
- Value(値)(必須):署名するデータ
ユースケース:
- permitトランザクションに署名(ガスレス承認)
- dApp用の構造化メッセージに署名
- 複雑なデータの検証可能な署名を作成
Verify Message(メッセージを検証)
パーソナルメッセージ署名を検証します。
必要な認証情報:Ethereum RPC
パラメータ:
- Message(メッセージ)(必須):元のメッセージ
- Signature(署名)(必須):検証する署名
- Address(アドレス)(必須):期待される署名者アドレス
出力例:
{
"valid": true,
"recoveredAddress": "0x..."
}
Verify Typed Data(型付きデータを検証)
EIP-712署名を検証します。
必要な認証情報:Ethereum RPC
パラメータ:
- Domain(ドメイン)(必須):EIP-712ドメインセパレーター
- Types(型)(必須):型定義
- Value(値)(必須):元のデータ
- Signature(署名)(必須):検証する署名
- Address(アドレス)(必須):期待される署名者アドレス
Recover Address(アドレスを復元)
署名から署名者アドレスを復元します。
必要な認証情報:Ethereum RPC
パラメータ:
- Message(メッセージ)(必須):元のメッセージ
- Signature(署名)(必須):署名
出力例:
{
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"
}
Hash Message(メッセージをハッシュ化)
メッセージのkeccak256ハッシュを計算します。
必要な認証情報:Ethereum RPC
パラメータ:
- Message(メッセージ)(必須):ハッシュ化するメッセージ
出力例:
{
"hash": "0x1234567890abcdef..."
}
Hash Typed Data(型付きデータをハッシュ化)
署名用の型付きデータをハッシュ化します(EIP-712)。
必要な認証情報:Ethereum RPC
パラメータ:
- Domain(ドメイン)(必須):EIP-712ドメインセパレーター
- Types(型)(必須):型定義
- Value(値)(必須):ハッシュ化するデータ
一般的なユースケース
ユーザー認証
[Trigger] → [Sign Message] → [Verify Message] → [ユーザーを認証]
ガスレス承認(EIP-2612)
[Trigger] → [Sign Typed Data: Permit] → [コントラクトに提出] → [トークン承認済み]
所有権を検証
[ユーザー入力] → [Recover Address] → [所有権をチェック] → [アクセスを許可]
EIP-712ドメイン例
{
"name": "MyDApp",
"version": "1",
"chainId": 1,
"verifyingContract": "0x..."
}
ヒント
- パーソナル署名:単純なテキスト認証にはSign Messageを使用
- EIP-712:人間が読める必要がある構造化データに使用
- セキュリティ:理解していないメッセージには決して署名しない
- 検証:署名を信頼する前に常に検証
- 復元:Recover Addressは誰がメッセージに署名したかを特定できます
- チェーンID:リプレイ攻撃を防ぐためにEIP-712にチェーンIDを含める