スマートコントラクト関数-詐欺を見抜く方法
重要なポイント: |
— スマートコントラクト関数は、ブロックチェーンへの命令です。 この関数により、NFTプラットフォームやDeFiサービスなど、私たちのウォレットとサードパーティ間の特定のやり取りを承認できます。 — 多くの人は、これらの関数をどのように解釈すればよいかわかりません。そのため、署名内容を実際に検証しないで、信頼に基づいてトランザクションを認証します。 この盲点は、詐欺師にとって大きなチャンスです。 — 誤ったスマートコントラクトの承認に基づく詐欺が増えてます! 自分が何に署名しているのかを知ることが、かつてないほど重要になっています。 — ここでは、詐欺に遭わないように危険信号を見つける方法についてご説明します。 |
スマートコントラクト関数は、現在、詐欺師らが人々を騙して、皆さんが苦労して稼いだ暗号資産やNFTを盗む一番の方法です。そのため、今こそ、その読み方を学ぶ時だと思いませんか?
暗号資産空間は、様々な新しい機会と新しいタイプのやり取りで満たされています。そして、そのほとんどは、控えめなスマートコントラクトによって支えられています。 スマートコントラクトは、ウォレットとWeb3プラットフォームおよびサービスとのやり取りを決定するものであり、暗号資産を使用する前例のない自由を提供し、秘密鍵の所有権によって強化された、まったく新しいデジタルユニバースを解き放ちます。
しかし、この自由には、あなたに対する、重くて新しい責任が伴います。 暗号資産島のなじみのない領域では、ユーザーは通常よりもミスを犯しやすくなります。これは新しくて、動きが速く、Web3のしばしば複雑なUX(ユーザー体験)により、各やり取りが何を意味するのかを、通常よりも解釈するのが難しくなります。 簡単に言うと、Web3はトリッキーな領域です。ここでは、真の価値はあなたにかかっています。また、詐欺師らは、あなたが間違いを犯すのを待ち構えています。
Web3を操作するときに危険信号を見つけられる能力は、だまされたくない場合に不可欠なスキルです。 そして、それは思っているほど難しいものではありません。ほんの少し助言が必要なだけです。
この記事では、やり取りの中で遭遇する重要なスマートコントラクト関数の一部とその意味、および詐欺に出くわしたときに、それを見抜く方法についてご説明します。
スマートコントラクト関数とは?
では、基本事項から始めましょう。スマートコントラクト関数とは、正確には何でしょうか?
簡単に言えば、関数は特定のアクションを実行できるようにするスマートコントラクト内のコードです。「関数を呼び出す」ことで、あなたのウォレットと使用しているプラットフォームとの間で特定のやり取りが開始されます。
スマートコントラクトとのやり取りはWeb3の交渉不可能な部分ですが、スマートコントラクトは本質的に危険ではありません。
しかし、実社会の詐欺と同様に、コンテキスト(状況)がすべてであり、何かが正しくないことを示す危険信号を見つけることがすべてです。
スマートコントラクト関数の危険信号:用語集
Web3を安全にナビゲートするために、知っておくべき重要なスマートコントラクト関数がいくつかあります。 それでは、それぞれについて順番にご説明し、その関数、関連する詐欺、そして、自分で危険を検出する方法をご説明します。
1) SetApprovalforAll
Set approval for all(すべてを対象に承認を設定する)は、Web3を使用するときにかなり頻繁に遭遇する関数であるため、理解することが重要です。 この関数は、NFTをマーケットプレイスで販売するためにリストするときによく見られます。その目的は単純です。具体的に、これは、NFTが販売されるたびに、そのマーケットプレイスが、あなたのウォレットから他の誰かのウォレットにNFTを移動できるようにします。
理にかなっていますよね? しかし、これにはいくつか予期せぬ影響もあります。
SetApprovalforAllに関連するリスク
SetApprovalforAll関数は非常に一般的かもしれませんが、その範囲が非常に広いため、ユーザーにとっては非常に危険な操作でもあります。
この関数を承認するということは、あなたがやり取りしているプラットフォームに、あなたのウォレット内の特定のスマートコントラクトの、すべてのERC20トークンまたはNFTへのアクセスを与えることを意味します。さらに、無制限の契約として、これはあなたのウォレットに入るスマートコントラクトからの将来のトークンすべてに適用されます。
つまり、友人に白紙の小切手を書くようなものです。 そして、あなたは本質的に、「このプラットフォームが言うことを実行し、私が期待する制限内で行動することを信頼しています」と言っていることになります。 でも、あなたが間違えたらどうなるでしょうか?
詐欺と検出方法
SetApprovalforAllは、暗号資産詐欺に関しては大打撃を与えるため、その都度特定できることが不可欠です。例えば、署名しても安全なとき、何かがおかしいとき、など。
このメッセージが表示されるのは、NFTをマーケットプレイスにリストするときか、DEX(分散型取引所)とやり取りするときだけです。 これは理にかなっています。なぜなら、NTFが販売または取引されたときに、あなたのウォレットからトークンを移動する許可を、そのプラットフォームに与える必要があるからです。 しかし、これらの状況以外では、このスマートコントラクト関数を見たら、注意するべきです。
常に次のように自問自答してください。「なぜ私は、自分のトークンへのアクセス権を他の誰かに譲渡するのだろうか?」、と。このように考えると、正当なトランザクションかどうかの判断が容易になります。
NFTをミント(作成)しようとしていますか?-この関数は表示されないはずです。
NFTを購入しようとしていますか? -この関数は表示されないはずです。
許可(ホワイト)リストに登録しようとしていますか? -ご想像のとおり-この関数は表示されないはずです!
あなたはこの種のトランザクションに署名することが何を意味するのかを理解できたので、それが発生した場合に、それぞれの状況を評価し、危険信号かどうかを自分で判断できるはずです。
2) SafeTransferFrom
遭遇する可能性があるもう1つの非常に一般的なスマートコントラクト関数は、SafeTransferFromです。このメッセージは、自分のウォレットから別のウォレットにNFTを送るトランザクション中に表示されます。
例えば、Ledgerを購入したばかりで、NFTを既存のホットウォレットから、Ledger Nanoの安全な新しいEthereumアカウントに送りたいとします。そして、ホットウォレットにSafeTransferFromが表示されます。その場合、確認する必要があります。 これは、この状況では完全に理にかなっています。
SafeTransferFromに関連するリスク
問題は、他の状況でこの関数に遭遇したときに発生します。覚えているでしょうか?ここで確認しているのは、NFTを別のウォレットに送りたいということです。そして、そのウォレットが自分のものでない限り、そのように実行したい状況などほとんどありません。
詐欺とその検出方法
では、この関数呼び出しを使用し、人々を騙して暗号資産をだまし取る詐欺には、どのようなものがあるでしょうか?
最近の例では、MomocoのウェブサイトがNFT用の無料ミントを提供し、ミントを手に入れたいと希望を持ったdegen(ギャンブラー)をサイトに駆り立てました。 問題ですか? ミントがありませんでした。
代わりに、「ミント」ボタンを押すと、SafeTransferFrom呼び出しが発生しました。ユーザーは、それがミントプロセスの一部であると考えて承認しました。ソーシャルエンジニアリングのおかげです! これにより、対象のウォレットからNFTを転送する契約の承認が得られ、その結果、何百人もの人々がこの詐欺によって代替不可能なものを失いました。
それらの人々は、どうしたら詐欺を発見し、詐欺に巻き込まれずに済んだのでしょうか?
覚えているでしょうか?スマートコントラクト関数の呼び出しで確実に起こるのは、関数ボックスに書かれていることだけです。この事例では、あるウォレットから別のウォレットへの転送です。
これは即時の危険信号です。ミントする場合は、転送ではなく、「ミント」の関数呼び出しが表示されるはずです。 この事例では、トランザクションは明らかに転送を示しています。 NFTもLedgerウォレットから別のウォレットアドレスに移動しています。つまり、ウォレットはNFTを受け取るのではなく、送っているのです。
関数呼び出しの詳細(認証しているやり取りの種類や転送方向の確認など)は、状況を信頼するのではなく、トランザクションを検証できます。
3) SendEth
これで最後です! Web3でやり取りしたことがある場合は、おそらく既に、SendEth関数を見たことがあるかもしれません。これは文字通り、Etherを別のウォレットに送ることを意味します。 これは、自分の異なるウォレットアドレス間でEthを送る場合(例えば、Ledgerを購入したばかりで、資金を安全な場所に移動する場合)、または、マーケットプレイスで購入する場合に発生する可能性があります。
SendEthに関連するリスク
しかし、運が悪いと、この関数は予期しない場所に表示されることもあります。 NFTのミントが良い例です。ここでは、ユーザーは自分がミントしていると思い込んでいますが、実際には資金を別のアドレスに送金しているだけです。
詐欺と検出方法
これは、関数呼び出し(真にミントであれば「ミント」と表示されている はずです) を見るだけでなく、右上の受け取りアドレスを見ることでもわかります。マイニングは、ブロックチェーン自体との直接のトランザクションであり、別のウォレットとのトランザクションではありません。そのため、ここに受け取りアドレスが存在するというのは、別の大きな危険信号であるはずです。
スマートコントラクト詐欺:信頼せずに、検証する
以上で、あなたは、Web3を使用する際に遭遇する可能性のある主要なスマートコントラクト関数(とそのリスク)の用語集を手に入れました。
これらのさまざまな関数の意味を把握したことで、関連する詐欺はとても明白に思えますが、ソーシャルエンジニアリングの力は、特にWeb3の複雑な状況下で、非常に強力になる可能性があります。 だからこそ、旅を始める前に、知識を身につけることがとても重要です。
それでは、前にお進みください。学び続けて、Web3の無限の可能性にどっぷりと浸かって、お楽しみください! 力はあなたの手中にあります。Ledger Academyは、その力を維持するために、常にあなたをサポートいたします。