本文へ移動
中級者税金と安全対策

署名する前に内容を確かめる

執筆
CRYPTO PORT 編集部
公開日
更新日
読了目安
6 分

結論

署名は「実行」です。何が起きるのか説明できない署名は拒否してください。多くのウォレットは署名前に資産の増減を試算して表示します。その表示と、自分が意図した操作が一致しているかだけを確認すれば十分です。

要点

  • 署名前のシミュレーションは「この操作で何が出ていくか」を試算して見せる機能
  • 意図していない資産が『出ていく』側に並んでいたら、その時点で中止する
  • 無制限の承認、NFTの一括譲渡権限(setApprovalForAll)は特に確認する
  • シミュレーションは万能ではない。結果を読めない署名は行わない

定義

取引を実行する前に、その取引がウォレットの残高や権限に与える影響を試算し、署名画面で提示する仕組み。

ブロックチェーンの取引は、署名して送信した時点で確定します。銀行のように「組戻し」を頼める相手はいません。したがって、防御の最後の一線は署名画面です。ここを読まずに承認する習慣がある限り、他の対策は迂回されます。逆に、署名画面を毎回読むだけで、資産を抜く型の攻撃の多くは止まります。

近年の主要なウォレットは、署名前に取引をシミュレートし、「このアドレスから何が出て、何が入るか」を一覧で表示します。見るべきは一点だけです。自分が意図した操作の内容と、表示されている増減が一致しているか。たとえばNFTを1点買うつもりなのに、複数のトークンが出ていく側に並んでいたら、その時点で中止してください。「無料でもらえる」はずの操作で何かが出ていくなら、それは無料ではありません。

権限の付与は特に注意が必要です。トークンの承認(approve)は残高を動かしませんが、以後あなたのトークンを動かせる権限を相手に渡します。NFTの `setApprovalForAll` は、そのコレクション全体を対象にした譲渡権限です。署名画面に「権限」「許可」「approve」「setApprovalForAll」といった語が出ていたら、相手のアドレスと対象、そして上限を確認してください。上限を指定できるウォレットなら、必要な分だけに絞ります。

シミュレーションは便利ですが、万能ではありません。実行時の状態に依存する処理や、意図的に結果を隠す設計のコントラクトでは、表示と実際が食い違う余地があります。また、単なるメッセージ署名(オフチェーン署名)は資産の増減として現れないのに、注文の委任や権限の付与になっている場合があります。最終的な判断基準は変わりません。何が起きるか説明できないなら、署名しないことです。

注意点

  • · シミュレーションが「問題なし」と表示しても、それは安全の保証ではありません
  • · ハードウェアウォレットを使う場合は、必ず本体の画面に表示された宛先と金額を確認してください
  • · 内容を読まずに承認する習慣が、最大の脆弱性です

よくある質問

  • ガス代のかからない「メッセージ署名」なら安全ですか?

    いいえ。ガス代がかからないのはオフチェーンで完結するためで、内容によっては注文の委任や権限の付与として機能します。表示される文面が読めない、または意味がわからない場合は署名しないでください。

次に読む

仮想通貨診断

いくつかの質問に答えるだけ。結果はその場で表示されます。

診断をはじめる