メインコンテンツにスキップ

ウォレット接続、メッセージ署名、トランザクション署名、トークン承認の違いは何ですか?

U
対応者:UKey Wallet

プライバシー、権限、署名セキュリティ

EVM ベースの DApps では、ウォレットの接続、メッセージへの署名、トランザクションへの署名、暗号トークンの使用許可の付与という 4 つのアクションが次々に表示されることがよくあります。これらのアクションでは、同じアクセスが提供されません。接続により、アカウントと Web サイトの間に通信チャネルが作成されます。メッセージ署名は身元を証明するか、意図を表現します。トランザクション署名により、ブロードキャストできるトランザクションが作成されます。 トークン 権限により、承認された当事者 (Spender) 定義された制限内で資産を使用します。金額がゼロ、またはネットワーク料金がかからない (Gas) はリクエストを安全にしません。確認する前に各リクエストを理解してください。

1. 4 つのアクションはどのように異なりますか?

アクション

主な目的

通常はブロックチェーンで録画/通常はネットワーク使用料が必要(Gas)

主なリスク

ウォレットを接続する

選択したパブリック アドレスとネットワークを Web サイトと共有し、後のリクエスト用のチャネルを Web サイトに提供します。

いいえ / いいえ

アドレス関連情報を明らかにし、後の署名リクエストを可能にします

メッセージに署名する

テキストまたは構造化データの暗号署名を作成します

通常はいいえ / 通常はいいえ

メッセージは、ログイン への意図を表現したり、注文したり、署名された許可を与えたりする場合があります (Permit)

トランザクションに署名する

ネットワークに送信できるトランザクションまたはコントラクト操作を承認します。

はい、ブロードキャストと正常な実行後 / 通常ははい

実行が成功すると、資産が譲渡されたり、契約状態が変更されたりする可能性があります

トークン 権限を付与する

承認された当事者(Spender) 金額またはルールの範囲内でトークンまたは NFT を使用する

権限の作成方法に応じて異なります

許可が有効になった後、承認された当事者は、資産所有者の別の署名なしでその許可を使用できます。

重要な違い: トークン アクセス許可はアクセス許可の状態であり、最初の 3 つのアクションと同様の 4 番目のタイプの署名ではありません。 ブロックチェーン トランザクションは、承認 関数 (approve) 権限を作成または変更します。あるいは、署名された許可メッセージ (Permit)後から提出することも可能です。署名だけでは ブロックチェーン は変更されません。許可は、署名されたメッセージが正常に送信された後にのみ記録できます。

2. ウォレットの接続とメッセージへの署名は何を意味しますか?

ウォレットを接続する

ウォレット接続では通常、ウォレット接続インターフェイス (Provider)。標準の接続リクエストでは、Web サイトに 秘密鍵 または シードフレーズ が与えられず、資産の自動署名や転送も行われません。ただし、Web サイトはユーザーが選択したパブリック アドレスとネットワークを受信し、その後のリクエストをウォレットに送信できます。 Web サイトがパブリック アドレスを認識すると、接続が終了した後もそのアドレスのパブリック ブロックチェーン 履歴のクエリを続けることができます。 Web サイトで シードフレーズ または 秘密鍵 を要求した場合は、すぐに停止して公式のエントリ ポイントを確認してください。

メッセージに署名する

メッセージ署名は、ログイン、条件の承諾、オフチェーン 注文、投票、または EIP-712 で定義された構造化データに一般的に使用されます。通常、ブロックチェーン にはデータが記録されず、署名者は通常、ネットワーク料金を支払いません (Gas)。ただし、手数料を支払わないことは、リクエストに資産リスクがないことを意味するものではありません。ウォレットに読み取り可能な情報が表示されたら、表示された各フィールドを確認します。ドメイン、ネットワーク識別子(Chain ID)、契約住所フィールド (verifyingContract)、承認された当事者 (Spender)、金額、有効期限。ウォレットに生データまたは理解できない 16 進数のコンテンツのみが表示される場合は、停止してください。リクエストを続行しないでください。参照 16進数データを使った0金額取引詐欺とは?.

3. トランザクション署名と トークン 権限 はいつ有効になりますか?

トランザクションに署名しても、それが ブロックチェーン 上で実行されたことを意味するわけではありません。

署名すると、署名付きトランザクションが作成されます。 ブロックチェーン の状態はそれ自体では変更されません。アカウント残高、契約状態、または権限は、トランザクションがブロードキャストされ、ブロックに含まれ、正常に実行された後にのみ変更されます。署名されたトランザクションがネットワークに送信されない可能性があります。また、実行中に置き換えられたり、期限切れになったり、失敗したりする可能性もあります。インターフェースが表示される場合 0 ETHこれは、トランザクションに ETH が直接含まれていないことを意味するだけです。ユーザーは引き続きネットワーク料金を支払うことができます (Gas)、コントラクト操作では引き続きアクセス許可の作成、暗号トークンの転送、または他の ブロックチェーン 状態の変更が行われる可能性があります。

許可メッセージに署名しても、許可が有効になったことを意味するものではありません

署名されたアクセス許可操作 (Permit) は通常、後で送信できるメッセージを作成します。署名を作成しても、ブロックチェーン の権限量は変更されません。署名されたメッセージは正常に送信される必要があります。その際のシーケンス値(nonce)、有効期限、その他の検証条件が引き続き有効である必要があります。そうすることでのみ、許可を ブロックチェーン に記録できます。許可が有効になった後、承認された当事者 (Spender) は、後でそのルール、承認された金額、アカウント残高の範囲内で権限を使用できます。長期間存続する 権限 のリスクについては、次を参照してください。 Unlimited Approval(無制限承認)とは?.

4. DApp インタラクションは、常に 4 つの固定ステップに従うわけではありません。

暗号資産のスワップ(Swap)では、ウォレットの接続とトランザクションへの署名という 2 つの操作だけで済む場合があります。別のケースでは、DApp が先に個別の操作を求めることがあります。たとえば、ログインメッセージへの署名、承認関数(approve)を実行するブロックチェーントランザクションへの署名、または許可メッセージ(Permit)への署名を求めることがあります。アカウントにすでに十分な支出権限がある場合、DApp は通常、新しい権限を求めません。ERC-20 トークンではなくネットワークのネイティブ資産を使用する交換では、通常、ERC-20 の支出権限は必要ありません。手順の数だけで安全性を判断せず、表示される各要求を個別に確認してください。

ウェブサイトをウォレットから切断しても、ローカル接続は終了するだけです。 ブロックチェーン に既に記録されている権限は変更されません。 権限 が保存される場所、権限 が有効な期間、取り消しの仕組みについては、次を参照してください。 DAppとの接続を解除すると、既存の権限も取り消されますか?.

5. 確認する前に何を確認すればよいですか?

  • 接続: Web サイトのドメイン、アカウント、ネットワークが期待どおりであることを確認します。

  • メッセージ: リクエストの目的を確認し、可読プロトコル、契約、承認された当事者 (Spender)、金額、有効期限。

  • 取引: ネットワーク、取引タイプ、受信者または契約、資産、金額、ネットワーク料金を確認します。の説明としては、 Gas、参照 ガスとは何ですか?ガス制限、ガス価格、ネットワーク料金はどのように計算されますか?.

  • 許可: 承認された相手を確認してください(Spender)、トークン の契約、金額、ネットワーク、および範囲。不要な無制限の 権限 は避けてください。

  • デバイス画面: デバイスが実際にデコードして表示できる情報を信頼してください。一部の契約フィールドはデバイス上で説明されないままになる場合があります。重要な情報が不足している場合、期待したものと異なる場合、または理解できない場合は、リクエストを拒否し、再度確認してください。

より完全なチェックリストについては、次を参照してください。 ハードウェアウォレットで取引を確認する前に、何をチェックすべきですか?。読み取り可能なトランザクション情報と フィッシング のリスクについては、次を参照してください。 SignGuard と Clear Signing は、Web3 のフィッシングからどのように保護しますか?.

重要な原則: ハードウェアウォレット は署名キーを保護できますが、Web サイト、メッセージ、トランザクション、または権限がユーザーの真の意図と一致するかどうかを判断することはできません。

こちらの回答で解決しましたか?