深度解析:Solana はいかにして詰まったのか?
著者:Nishil Jain(Biconomy エコシステム協力責任者)
編纂:Odaily 星球日報 Azuma
なぜ現在の Solana 上の取引は常に失敗するのか?
基本的な概念から段階的に解析していきましょう。
ユーザーの視点から見ると、Solana で取引を行う際には、本質的に三つの潜在的な結果が存在します:
取引実行成功 、すべてが正常;
取引実行失敗 、ユーザーはガス料金を支払ったが、実行結果がエラーとして返される。この状況は、ユーザーが購入しようとしたトークンが売り切れた場合や、価格の変動が速すぎた場合(設定されたスリッページを超えた場合)など、条件が満たされなかったときに発生します;
取引が失われる(Dropped) :取引の痕跡がなく、取引が「ブロックリーダーノード」に到達できなかった(Odaily 注:4つのブロックごとに交代する当該ノード)。これは現在ほとんどのユーザーが直面している状況で、本質的にはネットワーク層の問題であり、コンセンサス層や実行層の問題ではありません。
実行問題は混雑の主因ではない
今、あなたは「ネットワーク層とは何か?取引はなぜ失われるのか?なぜそれが現在の Solana の混雑の主な原因だと言えるのか?」と疑問に思うかもしれません。
これらの最も重要な問題を一旦脇に置き、まずは実行失敗した取引(つまり二番目の状況)を見て、なぜ実行失敗した取引が混雑の主因ではないのかを説明します。
オンチェーンデータを組み合わせると、すべての実行失敗した取引のうち、約 8% だけが実際のユーザーによって提出されており、残りはオンチェーンボットによって開始されたアービトラージ取引です。

アービトラージャーが「ゴミ」取引を継続的に発起する理由は、成功したアービトラージから得られる潜在的な利益と比較して、頻繁に取引を発起するコストが微々たるものであるからです。
具体的には、アービトラージャーは一日にわたって継続的に取引を発起することができ、そのコストはおおよそ毎日数百ドル(Solana のネットワーク料金が低いため)ですが、成功すれば数十万ドルの利益を得る可能性があります。
これらの失敗した取引は、Solana ネットワークに障害が発生していることを意味するわけではなく、ブロックチェーンは正常に稼働しており、条件が満たされなかったために失敗したボット取引に過ぎません。これもまた、Solana の現在の体験が悪い主因ではありません。
実際、昨年 11 月以来、Solana の取引失敗率は約 50% 前後を維持しています。

真の主因:取引がネットワーク層で捨てられる
さて、Solana が過去数日間にわたって混雑している真の主因について話しましょう------「取引の喪失」です。
前述のように、これらは「ブロックリーダーノード」に到達できなかった取引であり、取引が到達できなかった理由は、ネットワーク層で捨てられたからです。
ネットワーク層はインターネットの通信層であり、データパケットを一つのエンドポイントから別のエンドポイントに送信するために使用されます。一般的なネットワーク層プロトコルには、TCP、UDP、QUIC(Google が開発)などがあります。Solana は以前にそのネットワーク層プロトコルを QUIC にアップグレードし、ユーザーと「ブロックリーダーノード」間の接続を確立するのに役立ちました。
Solana は連続的なブロック生成メカニズムを採用しており、未確認の取引を一時保存するためのメモリプールが存在しないため、一度接続が失われると、取引はもはやどのブロックにも含まれなくなります。

QUIC プロトコルの利点は、「ブロックリーダーノード」が特定の基準に基づいて一部のユーザーの接続を切断したり、データ転送速度を制限したりする新機能を得られることです。
この機能の意義は、ネットワークの需要がピークに達したときに、「ブロックリーダーノード」が特定の接続を積極的に切断することで、Solana がネットワーク活動の増加によって完全にダウンするのを防ぐことができる点です。
あなたはまた疑問に思うかもしれません。QUIC プロトコルの設計がこれほど完璧であれば、なぜ Solana は今でもこんなに混雑しているのでしょうか?
真の問題は、「ブロックリーダーノード」が現在特定の接続を積極的に調整できるようになったにもかかわらず、どの接続を調整するかのロジックに問題があることです。

この問題をより具体的に理解するために、各「ブロックリーダーノード」が X 個の通信接続を持っている状況を想像してみましょう。しかし、ネットワークの需要がピークに達したとき、そのノードが受け取る接続要求はそのキャパシティの 10 倍から 100 倍に達します……この時、そのノードは特定の接続を切断する必要があります。しかし現在の状況は、どの接続を切断するかの基準が確立されていない(例えば、xxx 未満の料金の接続を切断するなど)、すべての接続がランダムに切断される可能性がある……
結局のところ、現在の状況では取引を確認してもらいたい場合、できることはより多くの取引要求を送信することですが、多くのボットもネットワークに大量の接続要求を送信し続けているため、一般ユーザーが接続を確立し、取引を完了することがますます困難になっています。
どのように修正するのか?どれくらいの時間がかかるのか?
これが現在 Solana が直面している問題です。
現在、Jump(Firedancer クライアント開発チーム)、Anza(Agave クライアント開発チーム)、Solana Labs などのチームがネットワーク層の修正に取り組んでいます。修正パッチは今週中に段階的にリリースされる予定で、今後数週間内にいくつかの重要なアップデートが発表される見込みです。
これが問題を効果的に解決できるのでしょうか?Solana は再び「to da moon」するのでしょうか……これには絶対的な答えはありません。
現在も多くの不確実性が存在する理由は主に三つです:
一つは、今後の修正パッチが実際に効果を発揮するかどうか、誰も保証できません。実際に機能し始めてから、実際の状況を観察することができます。
二つ目は、Jump が開発した Firedancer クライアントは問題を解決できるように見えますが、正式にリリースされるのは今年の年末までです。
三つ目は、「ゴミ」取引の問題で、Solana の経済メカニズムにより、悪意のある行為者がネットワークに対して「ゴミ」取引攻撃を継続するのを防ぐのが難しいことです。
最後に、皆さんに認識していただきたいことがあります:私は Solana が適切なバランスを取るために戦っていると信じています(Odaily 注:合理的な接続切断基準を設定することを指します)。Ethereum が多くの問題を克服したように、Solana もこれらの問題を克服するでしょう。












