誰も事件と呼ばなかった、scnSOLの4分間

連載 ─ 暗号資産回顧録

はい、どーも!名探偵Bit太郎にゃんです。

4年前の資料を漁っていたら、ほとんどリンク切れでした。いま見られる情報をもとに書いています😇

では早速本題に入りましょう!

2022年6月15日の15時30分(日本時間)、Solana の scnSOL というトークンの値段が壊れました。SOL を預けると受け取れる、証書みたいなトークンです。

始まりは1本のスワップでした。ある保有者が 20,000 scnSOL、当時のレートで60万ドルぶんをスワップしました。返ってきたのは 197 SOL。Socean はこれを「98%の損」と書いています※1

厄介だったのは、その壊れた値段が別の場所に伝播したことです。Solend という貸し借りの場が、預かった scnSOL を担保としていくらに見るか、その判断にこの値段を使っていました。担保が安くなれば、借りていた人は清算されます。

実際そのとおりになりました。いちばん大きい清算は、スワップの39秒後。細かい清算が止むまでを入れると4分20秒です※2

持っていかれた担保の99.5%が、1本のトランザクションに集まっています※3※4。それを取った人は、受け取った scnSOL を SOL に戻して、FTX へ送っています※5

あれから4年経ちました。公開されている記録をもとに、あのとき何が起きていたのかを調べ直していきましょう。

入口は、公式サイトのボタンでした#

scnSOL を出した Socean のサイトに、即時アンステークのボタンがありました。預けた分をすぐ SOL に戻すやつです。裏でやっているのは要するにスワップで、scnSOL を交換所(AMM)のプールに投げて SOL を受け取ってくる。

その投げ先が、リリース当時にいちばん流動性の厚かった Orca のプールに固定されていました。コードに直接書き込まれていたわけです※1。ここでいう流動性は、そのプールが交換に応じるために抱えている資金のことです。

投げ先が1か所でも、そのプールに十分な流動性があるなら問題にはなりません。まとまった量を投げても、受け止められるので。

問題は、Orca のプールに十分な流動性がなかったことです。 理由は分散でした。scnSOL はそのあと Saber と Crema でも取引されるようになっていて、流動性が3か所に分かれています。Orca 1か所ぶんだけでは、まとまった量を受け止めきれません。

それでもサイトのボタンは、Orca にしか投げません。3か所に分けて投げれば、1か所に入る量はその分だけ減ります。値段の動きも小さくなる。ボタンには、その機能がありませんでした。

Socean 自身も、再発防止の1つ目に「複数のプールへ自動で振り分ける仕組み(アグリゲータ)を通す新しいサイトに切り替える」を挙げています※1

なお、事件の瞬間に Orca のそのプールにどれだけの流動性があったのかを示す数字は、見つかりませんでした※6。足りなかったこと自体は結果から分かりますが、どのくらい足りなかったのかは分かりません。

ある保有者が、まとまった量の scnSOL を Orca のプールへ流しました。これが、冒頭の「197 SOL しか返ってこなかったスワップ」です※1

サイトのボタン経由だったのかは、確定していません。Socean 自身が、UI を使ったかどうかは分からない、ただ使った可能性が高い、と書いています※1

投げ先が固定されていたと分かったのは5日後でした。Socean のポストモーテムに書かれています。

Socean は、わざわざそれだけの損をする人はいないだろう、として事故だと結論づけています※1。当事者の見立てです。

直しに来た人たちが、歪みを運びました#

プールが極端に歪めば、そこに裁定が入ります。スワップの6秒後から、複数の bot が Orca と Saber と Crema をまたいで回り始めました※7

裁定って、歪みを直す行為なんですよね。安いところで買って、高いところで売る。それで値段が揃う。

ただ、安く買った scnSOL は、どこかで売らないと利益になりません。売り先は、まだ値段が高いままの隣のプールです。売れば、そちらに scnSOL が積み上がって SOL が抜けていく。冒頭のスワップと同じことが、隣で起きます。

歪みは消えたのではなく、移りました。最後には Saber の scnSOL/SOL プールでも同じことが起きています。

Orca で起きた歪みが、どうやって Saber のプールにまで及んだのか。ここが、出典によって違います。

ora studio はこう書いています。1体目の bot が裁定に入り、その結果 Orca の別のプール(scnSOL/USDC)の値段が歪んだ。続いて2体目の bot が裁定に入り、今度は Saber の scnSOL/SOL の値段が歪んだ※8

sanny は、その2体目の bot について「scnSOL/USDC のプールで裁定していた」と書いています※7同じアドレスなのに、取引していたプールが違います。

片方が間違っているのか、その bot が複数のプールで同時に動いていて、2つの記事がそれぞれ別のプールだけを取り上げたのか。外からは決められませんでした。

Saber の scnSOL/SOL の値段が実際に歪んだ、という点では2つの記事は一致しています。揃っていないのは、2体目の bot がどこで取引していたか、その一点だけでした。

Solend が見ていたのは、その隣でした#

Solend(いまは Save という名前です)は、scnSOL の値段に Switchboard のフィードを使っていました。Switchboard は、チェーンの上の値段を集めて配る外部サービスです。いわゆるオラクルですね。Solend は scnSOL がいくらなのかを自分で測らず、ここから受け取っていました。

そのフィードが値段を取っていたのは、当時 Saber の scnSOL/SOL プール1本だけでした※9

Saber で値段が動くと、数秒後には Solend 側の値段もそれに合わせて動きます※8。だから Saber が歪んだ数秒後には、預けてあった scnSOL が、実際よりずっと安い担保として扱われるようになりました。

Save のドキュメントは、いまもリスクの欄にこう書いています。オラクルが誤った価格を報告し、そのせいで不当な清算が起きることがある、と※10。2022年6月の時点で同じ文があったかは確認できていません。ただ、そこに書かれているのは、まさにこの日に起きたことです。

事件の5か月前に Socean が出した Solend 連携ガイドにも、清算のリスクの一つとして「オラクルが値段を間違えること」が挙がっています。ただ、そこで名指しされているオラクルは Pyth でした※9。実際にこの日 scnSOL の値段を出していたのは、Switchboard のほうです。

担保が安く見えた4分20秒#

担保が安く見えれば、あとは早い者勝ちです。Solend の清算は、誰でも実行できます。

清算というのは、借り手の借金を代わりに返してあげて、その代わりに担保を割安で受け取ることです。割安になったぶんが、返した人の取り分になります。儲かるから、奪い合いになる。

ブロックを端から全部見ていきました。値段が歪んでいたあいだに、Solend が scnSOL を預かっている枠(リザーブ)に触れたトランザクションは、成功が1,158本、失敗が2,329本あります※4

ただ、この1,158本には、触れただけのものがたくさん混ざっています。値段を更新しにきただけのもの、別の資産の処理のついでにこのリザーブを読んだだけのもの。清算とは関係ありません。

失敗した2,329本のほうは、分類していません。清算の取り合いに負けたぶんだとは思うんですが、そこまでは見ていないです。

成功したほうから「scnSOL が実際にリザーブの外へ出た」ものだけを取り出すと、169本でした※4。内訳は、167本が清算、残り2本が通常の引き出しです。出て行った scnSOL は、合わせて 59,723枚

そのうち 59,404枚、全体の99.5%が1本のトランザクションに入っています※3※4。残りの168本を全部足しても、319枚にしかなりません。

連鎖ではなく、一点集中でした。実行したアドレスは8つあるんですが、そのうち1つが全体の99.5%を持っていって、残りの7つで0.5%を分けています※4

その1本を取った人は、手に入れた scnSOL を別のアドレスへ移し、Socean でアンステークして SOL に戻し、FTX へ送っています※5

99.5%を持っていった、1つの口座#

99.5%を取らなかったほうの7つは、どれも年単位で動いている bot でした※11。いちばん古いのは2021年8月から、いちばん新しくても2022年3月から。署名した取引の数は、少ないもので1,200本、多いものは1,700万本を超えます。1つはこの記事を書いている今日も動いています。 あの日たまたま通りかかって、こぼれた分を拾っていった人たちです。

99.5%を取った口座だけ、形が違いました。

この口座が署名した取引は、2022年5月26日から6月22日までの28日間に全部収まっています※11。その前にもその後にも、1本もありません。事件の20日前に動き出して、7日後に沈黙しています。

28日だけの口座、と聞くと使い捨ての財布を思い浮かべますよね。実態は逆でした。この28日で 73万本署名しています。1日あたり2万6千本。短命なだけで、猛烈に動く bot でした。

お金がどこから来たのかも見えます。この口座に最初に入ったのは、FTXのホットウォレットからの 5 SOL。口座を動かし始めるための初期資金ですね※12

そのあと、こうなっています※12

  • 6月12日 06:07 FTXから 100 SOL
  • 6月12日 06:09 FTXから 9,900 SOL

合わせて10,000 SOL。日付は事件の3日前です。

そして事件の日、最大の清算でこの口座が支払ったのは、wSOL(SOL をトークンの形にしたもの)9,989.998枚でした※3

入れた額と、使った額が、ほぼ同じです。 つまりこの口座は、あの清算をやるのにちょうど足りるだけの資金を、3日前に受け取っていたことになります。

6日後、英語圏でレポートが発表された#

事件から6日後、ora studio(@oralabs_)が解析スレッドを公開しました※8。Celsius と Three Arrows Capital(3AC)の騒ぎに市場の目が奪われていて、この件は誰も見ていなかった、という書き出しです。

スワップ1本 → 裁定の連鎖 → 清算。その順番で、bot が持っていった額まで並べてある。アドレス付きです。

2か月後には sanny が、秒単位のタイムラインを付けた記事を出しました※7。いまのところ、いちばんまとまった第三者の記録だと思います。

4か月半後に、同じ形が繰り返されます#

2022年11月2日、Solend は USDH のオラクル操作で不良債権を抱えます※13

技術解析には、狙われたのは「Switchboard を通して Saber のプールだけを値段の元にしていたこと」だと書いてあります※136月に scnSOL でむき出しになったのと、同じ形です。

ただ、同じ場所ではありません。11月に狙われたのは USDH のフィードで、6月に壊れたのは scnSOL のフィード。別のフィードで、形だけが同じです。なお、11月の解析は6月の件に一言も触れていません※13

11月のほうは、DAO の提案で被害者に補償が出ています※13。6月については、そういう記録を見つけられませんでした。

舞台は、いまも同じアカウントのまま#

scnSOL のミント(そのトークンの発行元になっているアカウント)は、いまも生きています。

Socean は Sanctum になり、scnSOL は INF(Sanctum Infinity)になりました。ミントアドレスは当時のまま。舞台だった Solend の scnSOL リザーブも、同じアカウントのまま INF のリザーブとして稼働しています※14

Solend の設定ファイルに書かれた CoinGecko の ID だけが、今も socean-staked-sol のままです。そこだけ時間が止まっています※14

調べてみると、そのリザーブがいま参照している Switchboard のフィードは SOL_USD でした。Solend の SOL リザーブと同じものです。少なくともこのリザーブは、AMM 由来の scnSOL/SOL フィードをもう見ていません※14

ただ、いつ切り替わったのかは特定できませんでした。 6月の直後なのか、11月のあとなのか、もっと後なのか。外から遡る方法が見つかりませんでした。

誰かが仕組んだのか#

白状すると、当時の僕はこれを大した話だと思っていませんでした。大口が交換をしくじっただけだろう、と。20,000枚を一度に投げれば値段は壊れます。

Socean の見立ても、結局は同じです。わざわざ98%の損をする人はいないだろう、だから事故だ、と※1

変わったのは、Solend の清算を見たときでした。

値段が落ちて、担保が飛んで、誰かが持っていっている。しくじった人がいるだけにしては、そのあとの展開ができすぎている。

あの大口のスワップは、清算のために仕組まれたんじゃないか。 そこから疑いはじめました。

数字を並べてみます。

捨てたほう。 スワップに出した 20,000 scnSOL は、当時のレートでおよそ60万ドル。返ってきた 197 SOL は、その日の SOL 価格で5,500ドルほどです。差し引き、およそ59万ドルを捨てています※15

拾ったほう。 最大の清算を取った人は、wSOL を 9,990枚(約28万ドル)払って scnSOL を 59,404枚受け取り、アンステークして 62,268 SOL(約174万ドル)に戻しています。差し引き、およそ146万ドル※15

同じ人がどちらもやったのなら、59万ドル払って146万ドル取ったことになります。手元に87万ドルほど残る計算です。

つまり「98%の損」は、損ではなく値段を壊すための代金として説明がつく額でした。プールを壊さないとオラクルは動かない。オラクルが動かないと担保は安くならない。壊す費用が59万ドルで、取れる担保が146万ドル。差し引きは、ずっとプラスです。

Socean の理由づけが成り立つのは、スワップした人が清算を取っていない場合だけです。

取ったのかどうかは、直接には分かりません。手がかりは、清算を実行したほうの口座がどんな口座だったか、それだけです。

3日前に10,000 SOL を用意して、28日で消えた口座。 少なくとも、たまたま通りかかった、という形には見えません。

じゃあ、スワップした人と同じ人なのか。そこは繋がりませんでした。

2つのアドレスが同じトランザクションに一緒に出てきたことは、一度もありません※16。スワップ元のほうは2021年11月から2026年6月まで、5年で247本しか署名していない、ふつうの財布に見えます※11。FTXのホットウォレットとの接点もありませんでした※16

チェーンの上で、この2つを結ぶものは見つかりません。

4年ぶん読んで、手元に残ったのはこの4つでした。

  • サイトのつなぎ方。アンステークの投げ先が、Orca に固定されたままだった
  • 裁定。歪んだプールを直しに来た bot が、直したぶんの歪みを隣へ運んだ
  • オラクル。値段の出どころが、その隣のプール1本だった
  • 清算。担保が安く見えたので、誰にでもできる清算が実行された

2つ目は bot の日常業務です。歪みを直しに来た人たちで、直したこと自体は間違っていない。3つ目は、そもそも誰かがやったことですらありません。値段をどこから取るかが、前もってそう決めてあっただけです。4つ目にいたっては、仕様書に書いてあるとおりの動作です。

残るのは1つ目です。あのボタンに20,000枚を通したこと。これだけは、人が決めてやったことです。

ここから先は憶測です。僕は、あのスワップは事故ではないと思っています。

そう思うのは、並べる順番を逆にすると全部つながるからです。

出発点は、たぶん清算のほうでした。 Solend のリザーブが担保の値段をどのフィードから取っているかは、外から読めます。公開されている設定と、そのフィードのアカウントを見に行けばいい※14。そして当時そのフィードが見ていたのは、Saber のプール1本でした※9担保の値段は、あのプール1つで動かせる。 気づくとしたら、ここです。

では Saber を直接叩けばいいかというと、そうはいきません。scnSOL/SOL のプールにまとまった量を売りつけるのは、あからさますぎる。値段を歪めたい人がやることそのものなので。

そこで Orca です。Socean の公式サイトのアンステークのボタンが、Orca のプール1つに固定されていました※1同じことが、「サイトを使っただけ」の顔でできます。

Orca が壊れれば、歪みは隣へ移ります。歪んだプールには裁定が入って、安いところで買って高いところで売る。この日も、スワップの6秒後から bot が動き出しています※7。放っておいても Saber に届く。

そして、いちばん効いているのがここです。公式のボタンから出したスワップは、外から見るとしくじった人にしか見えません。残るのは、60万ドルが197 SOL になった、という記録だけです。

実際そうなりました。ポストモーテムは、わざわざ98%の損をする人はいないだろう、として事故だと結論づけています。そこで原因として挙がったのは、投げ先を固定していた自分たちのサイトのほうでした※1

59万ドルは値段を壊すための代金だ、とさっき書きました。買えているものが、もう1つあります。事故に見えることです。

ただ、公開されている記録のどこにも、それを示すものはありませんでした。誰も意図していなかったことの証明ができないのと同じで、意図していたことの証明もできていません。

あとがき#

誰かが仕組んだのか。4年ぶんの記録を読んだあとでも、そこはわかりませんでした。読めたのは、公開情報をもとに仕組めば割に合った、というところまでです。

つなぎ方がずさんだった。裁定が入った。値段の出どころが1本だった。清算が回った。並ぶのは、それだけです。

それだけなのに、担保にしていた人のものは持っていかれて、戻っていません。

そういえば、当時いりびたっていた DEG鯖 のボイスチャットに初めて上がったのも、この件のときでした。それまではずっと文字だけの人だったので、けっこう驚かれました。追っていたのは、果たして仕組まれた事件なのか、はたまたただのミスだったのか。

この件は、僕が当たったどのハック年表にも事例集にも項目がありません※17。日本語で書かれた記録も、見つけられませんでした※6

残っているのは、6日後と2か月後に英語で書かれた2本と、チェーンの上の記録だけです。

担保を持っていかれた人がいて、そのぶんは戻っていない。それでも、この件に名前がつくことはありませんでした。忘れられた、というのとも少し違います。最初から、誰の記憶にも入らなかった。

どこにも載らなかった事件も、起きなかったことにはならないんですよね。

では、ここで一句。

大口の
損の向こうに
人の影

お後がよろしいようで。


※1 Socean(scnSOL)公式ポストモーテム Update on 15/6/22 scnSOL mispricing(2022年6月20日)。20,000 scnSOL(約60万ドル相当)が 197 SOL になり、ポストモーテムはこれを「98%の損」と書いています。原因として、instant unstake の投げ先が Orca の scnSOL/SOL プールに固定され、コードへ直接書き込まれていた一方、流動性はすでに Saber と Crema へ広がっていたことを自ら挙げています。“we don’t think anyone would willingly take a 98% loss” として故意ではないと判断。再発防止は3点(Jupiter アグリゲータ経由の新サイト、scnSOL/SOL 流動性の単一AMMへの統合、Switchboard と協働しての複数ソース化)。清算件数・被害総額・補償への言及はありません。Apricot Finance でも清算が起きたと書かれていますが、その規模の記載はありません。

※2 発生は 2022年6月15日 06:30:16 UTC(JST 同日15時30分、米西海岸では6月14日 23:30 PDT)。※7 は主要な動きが40秒に収まったとしています。オンチェーンで確認できる清算は 06:30:55〜06:35:15 の4分20秒です(末尾14本はいずれも0.04 scnSOL未満のダスト規模)。最大の1本(※3)は、スワップの39秒後でした。

※3 最大の清算トランザクション 4rGqSMj3L87eQrki5WjFTA5o2fpoESdbaMUBodCYUt2FDGT4XXht5yPyUBUhGWVttCLXFQLBMe5P7oaTuVyPirUy(Solscan / Orb、どちらも2026年8月現在も開けます)。slot 137606378 / blockTime 1655274655(2022-06-15 06:30:55 UTC)、Solend の Liquidate Obligation and Redeem Reserve Collateral。署名者 Fx59AskDVQGxkNEUzn3wfD6GDghCLj3qNUnKrDvDLRmY が wSOL 9,989.998 を支払い、scnSOL 59,404.496 を受領(担保 + 5%の清算手数料)。清算された obligation は Bx1TDJZCbqExmcs4tJbGQUhzyECdCZW9m4xXuRSJBwWs、その所有者は 6v8sRF16obGjn2wC5zk9Hsz1B87D1NiUZ7h5M9JHVqxU。すべてRPCで直接読んで検証しています。いまエクスプローラで開くと、受け取ったトークンは scnSOL ではなく INF と表示されます。 ミントアドレスが当時のままで、そのトークンが INF に変わったからです(※14)。Orb 側では担保の cscnSOL が AFq1...rzoR という生のアドレスで出ます。

※4 slot 137606330〜137606830(06:30:11〜06:36:09 UTC)の全501スロットを取得して確認(うち109スロットは欠番)。リザーブ DUExYJG5... を accountKeys に含むトランザクションは成功1,158本・失敗2,329本。そのうち scnSOL が実際にリザーブから減った成功トランザクションが169本で、内訳は Liquidate 167本・Redeem Reserve Collateral 2本。出た scnSOL は合計 59,723.1020 枚、うち ※3 の1本が 59,404.4960 枚(99.467%)。残り168本の合計は 318.606 枚で、最大は 37.4455 枚、94本は 1 枚未満です。実行アドレスは8つで、内訳は Fx59Ask... 1本/59,404.4960、F4q2bm6... 74本/171.2970、4FvmYJb... 20本/78.1522、HCMRVfb... 63本/47.6852、8sg4tRF... 1本/21.4708、以下3アドレスが計10本/0.0008。清算(Liquidate)の最後は 06:35:15、最後の1本(06:35:41)は Redeem です。失敗2,329本については、本数を数えただけで理由の分類はしていません。

※5 ※7 および ※8 による追跡。Fx59Ask... は 59,405 scnSOL を別のアドレス Ae9... へ移し、Socean でアンステークして 62,268 SOL に戻し、FTX(6ZRCB7AAqGre6c72PRz3MHLC73VMYvJ8bi9KHf1HFpNk)へ送金。支払った wSOL 9,990(※3 でRPC確認)を差し引くと、およそ 52,278 SOL。

※6 わからないままのもの。(a) 6月の件についての Solend の公式説明 — ブログ・Medium・ドキュメント・報道のいずれにも見つかりませんでした。(b) Switchboard の公式説明も同様。Socean 側が「複数ソース化を働きかけている」と書いているだけで、実際に何がいつ変わったかの記録には到達できていません。(c) 大量にアンステークした本人の身元とその後、補償の有無。(d) 清算された借り手たちへの補償の有無 — 僕がオンチェーンで特定できたのは ※3 の1件の所有者だけで、他は追っていません。(e) Socean のポストモーテムが名前を挙げている Apricot Finance 側の清算規模と公式説明。(f) 事件時点の Orca / Saber / Crema 各プールの正確な深さ。(g) 日本語圏でこの事件を扱った記録 — 探した範囲では見つけられませんでした。

※7 sanny Into the MEV Arena - Solana’s Dark Forest(2022年8月12日)。この事件についていちばんまとまった第三者の記録です。23:30:16 PDT に whale 7pX が Orca の scnSOL-SOL v2 へ 20,000 scnSOL を投入、23:30:22 に bot G6E、23:30:26 に 44P、23:30:31 に ecE が裁定に入るという秒単位のタイムライン。bot 側の利益推計は G6E 約 $25k、44P 約 $400k、ecE 約 $46k、Fx5 は事件時 $1.5M / 同記事の執筆時点(2022年8月)で $2.2M。ただし 44P について本記事は “performs arbitrage on scnSOL-USDC pool” と書いており、Saber の scnSOL-SOL を潰したとする ※8 と食い違います。各プールの深さについては「1万ドル未満」とありますが、これは2022年8月時点の値で、事件時点の値ではありません。

※8 ora studio(@oralabs_)の解析スレッド、2022年6月22日 17:41 UTC。いいね136 / リポスト29。書き出しは “Amidst the drama around Celsius, 3AC, Solend and a massive market drawdown, one of the strangest Solana MEV instances went fairly unnoticed.”。Whale 7pX が 20k scnSOL を Orca に投げて 200 SOL に → bot G6E が裁定で戻すが Orca の scnSOL-USDC を潰す → bot 44P が裁定で戻すが Saber の scnSOL-SOL を潰す → bot Fx5 が Solend の清算で 52k SOL を抜く、という順で整理されています。オラクルについては「Solend は Switchboard を使っており、そのオラクルは前述の流動性プールに依存していた」「プールが叩き売られると数秒でオラクル価格に反映され、担保が直前より大幅に安く見えるようになった」と書かれています。「40秒」は ※7 の記述で、このスレッドには秒数の記載がありません。

※9 ※7 の記事に “at the time of the incident, Switchboard relied solely on Saber’s pool” と明記があります。事件の5か月前に Socean が出した Solend x Socean: A Guide to Do More with your scnSOL(2022年1月)は、清算リスクの3類型のひとつに「オラクルによるミスプライシング」を挙げていますが、そこで名指しされているオラクルは Pyth です。

※10 Save(旧 Solend)公式ドキュメント Risks(2026年8月閲覧)。“Solend relies on Pyth and Switchboard for their price feeds to power liquidations. There is a risk that these oracles report incorrect prices, causing wrongful liquidations.” これは現行版の文面で、2022年6月時点に同じ記載があったかは確認していません。 Switchboard v2 Guide には推奨設定と CEX/DEX を混ぜた複数ソースの作例がありますが、単一 AMM をソースにすることへの明示的な警告や、最低ソース数の規定はありません。

※11 各アドレスが署名したトランザクションの初出・最終・本数は Dune(solana.transactions、signer 一致)で集計しました(2026年8月8日実行)。最大の清算を取った Fx59Ask... は 2022-05-26 15:02:40 〜 2022-06-22 13:10:45 の 735,671本で、この範囲の外に署名は1本もありません。ほかの7つは F4q2bm6...(2021-08-12〜2026-08-08、17,241,851本)、HCMRVfb...(2022-03-15〜2025-10-30、14,306,064本)、8sg4tRF...(2022-02-24〜2024-07-04、966,221本)、4FvmYJb...(2021-10-19〜2026-02-24、799,604本)、BdxkPBX...(2021-11-25〜2024-12-18、110,099本)、JDHt3bH...(2022-05-10〜2022-08-20、4,675本)、6zL9HPR...(2022-03-21〜2025-01-21、1,215本)。スワップ元 7pXgZdR9eSwanbojvFjReMNqcSJWzTe2TkLq9c125UU(スワップは 22cmP7My...、06:30:16 に scnSOL 20,000.68 を放出)は 2021-11-13 〜 2026-06-08 で 247本です。なお、ここでの「最終」は最後に署名した日であって、その後にこのアドレスが他人の取引に登場することはあります。

※12 Fx59Ask... への入金は Dune(solana.account_activity × solana.transactions)で抽出。FTXのホットウォレット 6ZRCB7AAqGre6c72PRz3MHLC73VMYvJ8bi9KHf1HFpNk が署名した入金は、2022-05-26 15:02:19 の 5 SOL(残高5)、2022-06-12 06:07:19 の 100 SOL(残高101.60)、06:09:51 の 9,900 SOL(残高10,001.70)、そして事件後の 2022-06-15 18:16:45 の 5,000 SOL(残高5,007.52)です。この 6ZRCB... は 2020-10-03 〜 2025-03-02 に 16,083,956本を署名しており、個人の預け入れ口座ではなく取引所側のホットウォレットです。したがって「FTXから出た」までは言えますが、これで送り主が特定できるわけではありません。 また 28日で73万本を署名するような bot が運転資金を足すこと自体はふつうの動きで、10,000 SOL の入金だけを準備の証拠として扱うことはできません。※5 の「FTXへ送った」は ※7 ※8 の追跡によるもので、僕は当日 6ZRCB... に入った1万SOL超の入金を10件調べましたが、いずれもFTX自身の資金移動で、この経路の裏は取れていません。

※13 2022年11月2日の USDH オラクル攻撃で、Solend は $1.26M の不良債権を計上(CoinDesk)。Ackee は “Solend’s vulnerability in this exploit was that it was looking for price updates only using the Switchboard oracle from Saber pool, making the price feed prone to manipulation” と書いています。同記事は6月の scnSOL 事件には一切触れていません。補償については “The Solend DAO passed proposals SLND6 and SLND5 to compensate affected users.” とあります(Helius は不良債権をトレジャリーで吸収したとしており、両者の関係は詰めていません)。11月のフィードは USDH、6月に壊れたのは scnSOL のフィードで、別のアグリゲータです。

※14 Solend の公開設定API(2026年8月取得)。当時 scnSOL リザーブだった DUExYJG5sc1SQdMMdq6LdUYW9ULXbo2fFFTbedywgjNN は現在 symbol INF として稼働中で、ミントは事件当時と同じ 5oVNBeEEQvYi1cX3ir8Dx5n1P7pdxydbGF2X4TxVusJm。coingeckoID は今も socean-staked-sol ですが、これは Solend の設定ファイル側のフィールドであって、CoinGecko 側の登録がいまどうなっているかを示すものではありません。switchboardOracle は GvDMxPzN1sCj7L26YDK2HnMRXEQmQ2aemov8YBtPS7vR で、アカウントを直接デコードするとフィード名は SOL_USD、Solend の SOL リザーブが使っているものと同一でした。確認できたのは「このリザーブが AMM 由来のフィードを見ていない」ことまでで、当時の scnSOL/SOL アグリゲータが Switchboard 側に残存しているかは調べていません。変更時期も特定できていません。

※15 いずれも 2022-06-15 06:30 UTC 時点の SOL 価格 $27.90(DefiLlama、coingecko:solana、timestamp 1655274611)で換算しました。捨てたほう: スワップに出た 20,000 scnSOL は ※1 のポストモーテムが「約60万ドル相当」としています(1 scnSOL ≒ $30 = 1.075 SOL 相当)。受け取った 197 SOL は $5,497。差は約 $594,500 で、ポストモーテムの「98%の損」とおおむね一致します。拾ったほう: ※3 の清算トランザクションで支払った wSOL 9,989.998 は $278,721、受け取った scnSOL 59,404.496 を ※5 の追跡どおり 62,268 SOL に戻すと $1,737,255。差は約 $1,458,534。※7 の sanny による当時の推計 $1.5M ともおおむね合います。両者が同一人物である証拠はありません。 スワップ元と最大の清算者は別アドレスで、両者を結ぶ資金の流れは確認していません。また、捨てられた59万ドルの多くは裁定の bot 3体(※7 の推計で合計 $471k)とプールの提供者に渡っており、清算者の取り分とは別勘定です。ここで比べているのは「壊すのにかかった額」と「壊れたことで取れた額」であって、一人の収支ではありません。

※16 Fx59Ask...7pXgZdR... が同じトランザクションに一緒に現れた回数は0(Dune、solana.account_activity の tx_id 突合)。7pXgZdR...6ZRCB...(FTXホットウォレット)も、一緒に現れたことは0でした。Fx59Ask...6ZRCB... は6本のトランザクションで一緒に現れていて、内訳は ※12 の入金4本と、残高の動かない2本です。一緒に現れないことは、同一人物でないことの証明にはなりません。 取引所を経由すればチェーン上の線は切れます。

※17 Helius: Solana Hacks, Bugs, and ExploitsAckee Blockchainweb3isgoinggreat のいずれにも、6月の scnSOL 事件の項目は存在しません(11月の USDH 事件は3つとも載っています)。Switchboard Wrap Up 2022 にも、この件にも単一ソースフィードの問題にも言及がありません。この3件に載っていないことを、記録がどこにもないという意味では使っていません。 なお2022年6月19〜20日には Solend で別件(クジラアカウントに対する緊急権限をめぐる SLND1 / SLND2 のガバナンス騒動)が起きており、日本語で検索するとほぼこちらしか出てきません。完全に別の事件です。

関連記事

コメント

コメントは承認後に表示されます。名前は任意です。