オリジナル | デイリー・プラネット・デイリー

著者 | 南志

トークン貔貅は通常、特定のトークンを購入することしかできず、販売できない状況を指します。開発者は一定期間後にLPを削除し、購入者を引き込みます。遅延した貔貅は、トークンが最初に取引のためにオープンされ、その後貔貅状態になると、短期間内に取引することができます。この種の Rug Pull 手法については、多くのコントラクト検出ツールが対応する検出機能をまだ追加していないため、悪意のある開発者にとって主な収益手段の 1 つになりつつあります。

以下では、Odaily Planet Daily が、ERC 20 と Uniswap の原則の概要を通じて、遅延 Pixiu がどのように実装されるかを説明します。

注: 記事内のたとえ話の一部は、理解を容易にするために完全には厳密ではありません。

ERC 20 の基本

市場に出ているほとんどのトークンは ERC-20 標準に準拠しています。ChatGPT の答えは次のとおりです。

ERC-20 は、トークンコントラクトが従わなければならない一連のルールとインターフェイスを定義するイーサリアムブロックチェーンのトークン標準です。この規格は、送金、残高照会、他者に代わってトークンを使用する許可など、トークンの基本機能を標準化します。

ERC-20 トークン標準の主なルールと機能の一部を次に示します。

  • 転送: ERC-20 トークンはスマート コントラクトを通じて転送でき、ユーザーは他のイーサリアム アドレスにトークンを送信できます。

  • BalanceOf: ユーザーは、ERC-20 トークンの残高をクエリして、所有しているトークンの数を確認できます。

残高照会(BalanceOf):

実際、この関数には「クエリ」関数があるだけでなく、ユーザーが「所有」するトークンの数もこの関数によって定義されます。各トークンは「銀行」として捉えることができ、各ウォレットアドレスはトークン取引後に「銀行」から「入金カード」を取得し、各アドレスの残高(Balance)を記録する、つまり銀行に申請することができます。残高を確認するか、取引のために銀行に資産変更リクエストを行うことができます。

注: イーサリアムはアカウントベースのモデルを採用しています。

したがって、ユーザーは本質的に自分の資産を「所有」するのではなく、「使用」できるトークンの数は関数によって「定義」されます。

  • つまり: [A アカウント] の X トークン残高 = アカウント A が外部で使用できる X トークンの数

注: 現実世界の銀行預金は顧客に対する銀行の負債であり、銀行が資産所有権を持っています。

移行

すべての ERC-20 トークンは転送機能を完了する必要があります。以前の台帳モデルに基づくと、転送が発生すると、アカウント A がトークンをアカウント B に「配信」するのではなく、アカウント A から差し引かれます。 X、トークン数 X がアカウント B に追加されます。

  • つまり、[A 口座]-X の残高と [B 口座]+X の残高を同時に取得します。

開発者は転送関数を変更して、転送数や転送先などを制限できます。

伝達関数は、ほとんどの Pixiu メカニズムの基本的なソースです。

ユニスワップ

前のセクションでは各トークンを「銀行」に例えましたが、Uniswap は xy=k の AMM 原則を通じて 2 つのトークンを交換する受け入れ仲介者として理解できます。

交換手順は以下の通りです。

  • ユーザーはトークン A を Uniswap コントラクトに転送します

  • Uniswap は、受信したトークンから y=k/x を使用して返すべきトークンを計算し、手数料を差し引きます。

  • Uniswap はトークン A を LP プールに転送し、トークン B を引き出します

  • Uniswap はトークン B をユーザーに転送します

もちろん、Uniswap には実際には複数の機能とプロセスが含まれます。ここで理解すべき重要な点は、Uniswap は「受け取ったトークン」に基づいてトランザクションを実行するだけであり、ユーザーが「送金」操作を実行すると、数量が変更される可能性があるということです。

貔貅の仕組み

このセクションでは、Pixiu のメカニズムを 2 つのカテゴリに分類します。

① 取引税が高く、ユーザーは販売トークンからのリベートを受け取れない。

② 送金できず、Uniswapで取引できなくなる。

高い取引税

このセクションでは、以下に示すように、取引税を含む Meme コインの計算プロセスを示します (赤い部分のみに注目します)。

  1. 取引税を計算する

  2. ユーザーのウォレットから全額を差し引きます (BalancerOf[user] はトークン A を減らします)

  3. 開発者ウォレットまたはLPおよびその他のアドレスに送金します(BalancerOf[Dev]はトークンA×税金Sを増加させます)

  4. いくつかのトークンを Uniswap に転送してトークン B (トークン A×(1-S)) と交換します。

  5. ユーザーが受け取るトークン B が不十分です

前のセクションで述べたように、Uniswap は「受け取ったトークン」のみを処理し、開発者は Uniswap とユーザーに転送される量を自由に変更できます。

ここで、取引税率を100%に変更すると、3番目のステップ「③開発者ウォレットまたはLPなどのアドレスに送金」が実施され、ユーザーはトークンを受け取らなくなります。

転送できません

Solidity では、開発者は require を通じてトランザクションを制限できます。

開発者がトークンの交換を特定のホワイトリストアドレスに制限すると、ユーザーは手持ちのトークンをUniswapに送信できなくなります。2番目のステップ「②ユーザーのウォレットからお金を引き出す」では、Pixiuが実装され、開発者は、Uniswap のルーターをトークンを送信するように設定でき、結果は次のようになります。

ユーザーは購入すること(Uniswapがユーザーにトークンを転送する)のみが可能ですが、売ることはできません(トークンをUniswapに転送してETHなどに交換することができないため)。

あるいは、開発者はさまざまなパスを通じて転送制限を 0 に設定したり、トランザクション スイッチをオフにしたり、その他の操作を行うこともできますが、最終的にはすべてが「転送」の動作を制御します。

遅れた貔貅

時間 (ブロックの高さ) を制限する必要があるため、さらに遅延が発生します。

たとえば、あるトークンでは次のような制限があります。

    require(ブロック番号 < _allowance)

ブロックの高さが高くなると、一定の閾値に達するとユーザーは転送できなくなり、貔貅が実現します。

また、取引数が一定の閾値に達すると実現する貔貅もあり、特定の契約セキュリティ検出ツールのチェック時に対象設定がなければ初期状態で正常に取引できるようになり、ユーザーを誘導します。罠に陥ること。

予防方法

この種の収集方法は「スマッシング・アース・ドッグ」でよく見られるという事実を考慮すると、購入者は効率性を追求し、安全性を無視することが多く、成熟したセキュリティ会社がこの方法のための特別な検出ツールをリリースしているのをまだ見たことがありません。 Planet Daily は、自分の資産を守るために、一定のコーディング スキルを持つ購入者も契約コードを確認し (または ChatGPT などのツールを使用してざっと確認し)、セルペア契約に特別な注意を払う必要があることを思い出させていただきます。異常なコード領域を含むプロジェクトには近づかないでください。