誰も凍結できない代わりに、誰も返せない ― CAWのコントラクトの中にあるもの
CAW のコントラクトには、持ち主がいない。owner も、追加発行も、停止も、凍結リストも無い——誰かがあなたの残高を凍結することはできないし、誰かが勝手に増やすこともできない(既載アーカイブ「CAWの器は同じ型から生まれた双子コントラクト」)。その設計には、あまり語られない裏がある。この器に間違って届いたものを、誰も返せない。 ❶ そこで、中を数えてみた。CAW のコントラクトのアドレス自身が、35種類の ERC-20 トークンと、NFT を1件抱えている。CAW が 3,495.9億枚、USDT が 7,210.59、USDC が 749.97、SHIB が1,000万枚あまり、WETH が 0.005 ほど。ETH は0だ——というより、このコントラクトには ETH を受け取る入口(`receive` / `fallback`)が無いので、誰かが送ろうとしても受け取れない。(残高はいずれも2026年7月31日 14:55 UTC 時点、block 25653575。ここへは誰でも送れるので、増えることはある。)❷ ただし「35種類」は、探索者(エクスプローラ)の画面には出てこない数字だ。Blockscout が返す一覧は32行で、そのうち1件はさっきの NFT だから、ERC-20 は31種類しか並ばない。残りの4つは、それぞれのトークンに直接残高を聞いて(`balanceOf`)はじめて出てくる。その4つの名前が、これだ——Fear the Old Blood(古い血を恐れよ)、Morning Always Comes(朝は必ず来る)、Ryoshis Worst Nightmare(Ryoshi の最悪の悪夢)、そして Chirr(さえずり)。はじめの2つは Bloodborne の言葉で、A Hunters Dream ——CAW の正式名——と同じ出どころだ。ほかにも `A Fall of Moondust`(アーサー・C・クラークのSF)、`A Yogis Joy`(ミラレパ)、そして `Judas` という名前のトークンが 6,666,666,666枚。総供給 666,666,666,666,666 と同じ6の並びだ。❸ なぜ取り出せないのか。「取り出す関数が書かれていない」は、その答えの弱い版だ。代わりに、実際に動いているコードを読んだ。このコントラクトの実行コードは 2,278バイト・1,354個の命令で、その中に `CALL` が1つも無い——`DELEGATECALL` も `STATICCALL` も `CREATE` も `SELFDESTRUCT` も無い。他のトークンを1枚でも動かすには、そのトークンのコントラクトを呼ぶ(=`CALL` する)しかない。この器には、その命令が最初から入っていない。 だから「永久に取り出せない」のではなく、この器に手段が無い、というのが正確な言い方になる。❹ ここから少し奇妙な話になる。探索者でこのアドレスを開くと、送信の行が532件並んでいる。何も送れないはずのコントラクトなのに。よく見ると523件は `HUM` というトークンで、しかもこのアドレスは HUM を一度も受け取っていないし、残高も0だ。持っていないものを523回送ることはできない。実際にあったのは 2022年4月18日のたった1本の取引で、HUM 側のコントラクトが「送信元はこのアドレスだ」と書いたイベントを523回まとめて発行しただけだった。残りの9件も同じ型で、4銘柄とも 2022年4月17〜18日——CAW の最初の受け取り(4月21日)より前の出来事だ。❺ 同じことが、NFT でも起きている。この器に届いている唯一の NFT は `A Hunters Dream Mysterybox NFT`(シンボルは `caw.gift`)で、送信元として CAW のデプロイヤーのアドレスが表示される。けれど送ったのは別の人だ。仕掛けは契約を作るときの設定にある——このコントラクトを作った取引の引数に、デプロイヤーのアドレスがそのまま書き込まれている。送信元は、作る人が自分で埋める欄だった。デプロイヤー本人の署名は生涯16回、最後が2022年10月31日で、この NFT が生まれたのはその386日後だ。❻ その NFT は、もう少し変わっている。転送も承認も、呼ぶと必ず失敗する。そして残高を聞くと、どのアドレスに対しても必ず「1」を返す——一度も受け取っていないアドレスでも、誰も使ったことのないアドレスでもだ。持ち主の台帳が、そもそも存在しない。説明文にはこう書いてある——「A Hunters Dream のホルダーだからこの NFT を受け取りました。CAW NFT のホルダーは、これを CAW の報酬と交換できます」。CAW は ERC-20 で、「CAW NFT」というものは存在しない。実害につながる道は、この説明文が案内するサイト1本だけだ——そのサイトは開いていないので、そこで何が起きるかは確認していない。だから、実際にどうすればいいかだけ書いておく。その NFT は、置いたままにしておけばいい。 転送も承認も呼べない作りなので、ウォレットの中で何かが起きることはない。消すことはできないが、消す必要も無い。気をつけるのは説明文が案内するサイトのほうだけだ。そこが何をするかはこちらでも確認していない。そして、確認していないサイトでウォレットをつないだり、求められるまま署名したりする理由は、どこにも無い。開かないのが、いちばん安全だ。 ❼ これは CAW が狙われた話ではない。同じ作りの `〈プロジェクト名〉 Mysterybox` が、探索者の検索の1ページ目だけで30件以上並ぶ——`aave-nft.gift`、`gnosis.gift`、`radix.gift`、`illuvium.gift`、`saitama.gift`……。同じ手口は SHIB のコントラクトにも、LINK のコントラクトにも着弾している。CAW への配布は2回・計12件で、特別扱いの痕跡は無い。ホルダー一覧を機械で読んで流し込む、量産キットの作業だ。そしてこの器がその一覧に載っていたのは、CAW を 3,495.9億枚も持っていたからだった。(ついでに書いておくと、探索者はこの NFT を「詐欺ではない」と表示している。警告は出ていない。)❽ ひとつはっきりさせておく。この器に沈んでいる CAW は、総供給から差し引かれていない。CAW の総供給は 666,666,666,666,666 枚の固定値で、この 3,495.9億枚もその中に数えられたままだ。手が届かないことと、消えたことは違う。──なぜこれを残したか。中身を数えていると、ひとつのことが何度も浮かんでくる。チェーンに残っているのは「誰が署名したか」であって、「誰が送ったと書いてあるか」ではない。 523回の「送信」も、届いた NFT も、同じことを言っている。表示は誰でも書ける。署名は書けない。そして数え終えたあと、いちばん奥に沈んでいたのは、CAW と同じ場所から来た言葉だった。誰が、何のために送ったのかは分からない。たぶん誰にも取り出せない。ただ、そこにある——Fear the Old Blood、そして Morning Always Comes。🐦⬛
出典
publicnode RPC (eth_call / eth_getCode) · Blockscout · IPFS ↗