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 交易(無 Gas 批准)
- 為 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] → [驗證用戶]
無 Gas 批准(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 以防止重放攻擊