Solanaが止まった日(2021年9月14-15日障害リポート)

さーもん/salmon@Web2.5☀️🇸🇧🦇🔊
7日前
14日 21:00 Raydium IDO14日 ~22:0014日 ~24:0015日 ~6:0015日 ~9:3015日 ~12:00(更新)15日 ~15:00(更新)15日 15:00(更新)違和感16日 8:00(更新)想定される影響これから所感個人的な考えなるほど参考

最終更新:9月16日10:30

2021年9月14日夜から15日にかけ、Solanaネットワーク全体が深刻な不具合に襲われ、結果としてネットワーク全体が停止する事象が発生しました。本記事の目的はその経緯、経過を記録することにあります。

*全ての記述は筆者の調査に基づきます。筆者がその目で確かめたものではない場合もあるため、100%の信ぴょう性を持つものではないことをご理解ください。

14日 21:00 Raydium IDO

障害の直接の原因はRaydiumで行われたGRAPEトークンのIDOだという見方が優勢です。前回のATLAS/POLISトークンIDOの大成功に味をしめたのか、マーケット立ち上げ時に多数の早押しbotがトランザクションを送り始めました。

これにより、Solanaネットワークにはピーク時40万トランザクション/毎秒が送信されました。御存知の通りSolanaの現在の処理速度はおよそ1000~5000tx/秒となっています。キャパシティを大幅に超過するトランザクションが送信され、さらにそうなった場合どのトランザクションを優先するかということが決まっていなかったために、(ある程度文面からの想像になりますが)それぞれのノードが別々のトランザクションを処理し始めたようです。その結果、Solanaチェーンにハードフォークが発生しました。

このフォークによりノードのメモリに過大な負荷がかかり、ダウンするノードが出てきました。おそらくデリゲート量上位のノード(ネットワークをリードする輪番が回ってくる可能性が高いノード)にもダウンするノードが出てきた結果、チェーン自体もブロック高96,542,804で停止しました。

ブロックタイム0秒の超レア画像

14日 ~22:00

この時点でSolana Labは不具合を認識、対応に当たっています(ちなみにこのとき、西海岸標準時で早朝6時とかです。エンジニアの方々には頭が上がりません・・・)

Twitterもこのあたりから騒がしくなってきました。アメリカ時間早朝だったのがやはり大きいのか、価格は思ったより下がらなかったんですけどね。

14日 ~24:00

海外勢が起きてきました。この時点まで一切ネットワークは復旧していません。

15日 ~6:00

Solana Labから修正パッチv1.6.24配布。このパッチは再起動の準備のほか、障害の原因でもあったトランザクションの優先順位付けを行えるようになっています。このパッチ適用ノードがネットワーク全体の80%を超えた段階でネットワークを再始動させる予定でした。

15日 ~9:30

ネットワーク内のv1.6.24パッチ適用済みノードは90%超に。Labからのアナウンスを待機している状態です。

ちなみにSolanaのDiscordではバリデータが頑張ってアップデートを適用している様子が伺えます。ありがたい

15日 ~12:00(更新)

この時点でv1.6.24の適用率は再アクティベートの必要条件を満たしていましたが、この時点でさらに修正の入った次のアップデート、 v1.6.25が発表されたことで再アクティベートは一旦持ち越しとなりました。このv1.6.25パッチを80%のノードが適用した時点でネットワークを起動する見通しです。

15日 ~15:00(更新)

コミュニティはノードがパッチを適用するのを待っています。適用率をリアルタイムでツイートするbotも現れました。

15日 15:00(更新)

ノードへのパッチ適用率が80%を超えました。

これを受けてネットワークの再アクティベートが行われ、通常通りトランザクションが処理され始めました。これで障害はひとまず終息したことになります。TPSも1500程度で安定しています。

違和感

DEGさんのFTXコミュで見つけたのですが、ネットワークの復旧直後はトランザクションのタイムスタンプが7時間遅れた状態になっていた、つまりあらゆるトランザクションが7時間前に出されたものとして処理されていた模様です。その後徐々に現在時刻に収束していきましたが、それはCluster timeの時計が通常より早く進むことでなされたみたいです。

現在でも20秒程度遅延しています。最終的にエポックの切り替わりでアジャストされるとかされないとか。

16日 8:00(更新)

ネットワークの99%超が最新のパッチを適用して復帰しています。ネットワークの安全性は障害前と同程度に回復しました。

想定される影響

Grape IDO 今回の障害の元凶。仕切り直しになると思われますが、bot対策は必須になるでしょう。

更新 自分で確認できていないのでざっくりですが、IDOのやり直しは行われなかったようです。ネットワークが再起動したタイミングでRaydiumにUSDC-GRAPEプールが作成され、取引が開始されました。障害前に買えていた人はかなり高値で売り抜けられたようなので、早押しbotの必要性を改めて証明してしまったような形にもなっています。

更に言うと、RaydiumはTestnetでもDevnetでもユーザーがテストできる環境を用意していません。実態としてSolanaの需要のかなりの部分を担い、今回の障害の直接の引き金となっている以上、何らかの対策を講じることが強く要求されます。


Parrot IDO PRTトークンのセールが進行していましたが、入金可能なDepositラウンドが十分な時間確保されないまま出金のみ可能なGraceラウンドに移行してしまいました。こちらもなんらかの救済措置が入るものと思われます。

→更新 ParrotはIDOの期間を調整することを発表しました。ラウンド1の入金可能時間が延長されています。


価格乖離 現在Solanaのあらゆるトランザクションが停止しているため、外部のマーケット(FTXなどのCeFi、UniswapなどのDeFi問わず)のトークン価格との間に乖離が発生しています。ネットワークが再始動した時点で大量のアービトラージ取引が行われ、ネットワークに負荷をかける恐れがあります。

清算 価格乖離と同じようなものですが、外部マーケットでSolanaエコシステムのトークン価格が軒並み下落しているため、再始動と同時にレンディングプラットフォームなどで大量の清算が発生する可能性があります。

→価格乖離と清算についての更新 これも自分の目で確認していないのでざっくりですが、DEX各所、特にMango Marketで価格の歪みが発生したようです。予想通りbotが動いていたようですが、障害には至りませんでした(フロントが落ちたサイトはかなりあったようです)鞘を見つけられた人は儲かったらしいですね。おめでとうございます。

話半分に聞くべきものですが、Solanaエコシステムに多額の資金を投資しているAlameda ResearchというファンドがSolanaチェーンでの大規模な清算を防ぐために、再アクティベート直前にその時点での市場価格より大幅に高い価格で買い注文を出したとの情報(噂)もあります。もしこれが事実であった場合、Solana Labだけでなくその裏にいるある種のコミュニティ(VCやCEXや開発チームなど・・・)はこの障害によるチェーンへの影響を防ぐためあらゆる措置を講じたとも言えるでしょう。

とはいえAlamedaの資金を持ってしても、マーケットは動かせるような規模にはならないとも考えられます。(しかもツイート主はAaveのfounderで、Solanaのネガキャンをする理由は通らなくもない)このあたりはあんまり信じ込まないほうがいいですね。


オラクルSolana上に構築されたPythというオラクルは高速処理が魅力ですが、チェーンが止まると当然更新も止まります。

更新? Pythはダウンしていたことに関する声明を一切出していません。

これから

今回の障害は非常に大きかった(18時間ネットワークが完全停止)ため、Solana Labから透明性レポートが発表されると思われます。(できれば翻訳します)

所感

今回の障害は、Solanaが抱えるインフラ面での脆弱性が顕著に現れた事案です。Solanaは高速・安価であるがゆえにbotを使って多量のトランザクションが殺到しやすく、なおかつEthereumにおけるInfuraのようなインフラストラクチャを担う、安心感あるプロダクトがありません。したがって、このような高負荷な状況ではダウンする可能性が高くなります。これまではRPCサーバーが落ちてチェーンにトランザクションが送れない、フロントが落ちた、という程度で済んでいましたが、今回のように1つのプロダクトを震源にネットワーク全体がダウンする可能性も考えると、インフラ増強が喫緊の課題だと言えるでしょう。

ちなみにこれは素人考えなのですが、SolanaにもEthereumやBitcoinのようなMempoolを作ればいいじゃんというのは浅はかなんですかね?

更新(ふむふむ)

個人的な考え

Solanaはあくまでβ版です。TPSも理論上可能な水準より大幅に制限されてますし、インフラ面もEthereumほどには十分整っていません。あくまで自己責任、というブロックチェーン界隈の原則を思い出しましょう。

あと、この機会にSolanaの仕組みをしっかり学びたいですね。

なるほど

SolanaのFounder、Anatolyの言。ざっくり意訳すると「新しいOSやデータベース、多目的プラットフォームを作るのには10年以上かかる。いわんやブロックチェーンを4年程度で完璧にすることができるだろうか、いやできない(反語)」

参考

Solana experiences transaction stoppage as developers report ‘intermittent instability’ -- The Block

Solana blockchain validators restart network after transaction stoppage -- The Block


Comments
Likes
Tippings
最新順
人気順
さーもん/salmon@Web2.5☀️🇸🇧🦇🔊
7日前
Comments
Likes
Tippings
最新順
人気順
HiÐΞOnline
Tweet
目次
Articles
Magazines
Topics
Users
Projects
Crowdfunding
Wallet
Help
Login
Go Offline