要約
- Nasdaq の IPO クロスは、最大数の適格株式が取引可能な価格を計算し、その後 Facebook を連続取引に移行させることになっていた。通常の計算には1~2ミリ秒かかった。しかし2012年5月18日には、49万6千件以上の注文が蓄積されていた。最初の計算が実行中にキャンセルを受信するたびに、アプリケーションは再計算を行ったが、設計上の制限により、一度に1件のキャンセルしか取り込まれなかった。計算時間が長くなるほど、新たなキャンセルが到達する可能性が高まった。そのため、アプリケーションは検証済みのクロスを生成せずに、繰り返しループに入った。
- これは単なる取引量過多の話ではない。大量の注文とキャンセルは、決定論的なソフトウェアの弱点を露呈させた運用条件であった。技術的な根本原因は、IPO クロスアプリケーションが計算中に受信した複数のキャンセルを欠陥的に処理したことにある。トリガーは、その極端な注文フローの下での午前11時05分10秒の最初の計算だった。不十分なスケールテスト、旧式のランダム化機能、検証チェックの可視性不足、不完全な意思決定支援、不十分な変更管理が寄与条件として存在した。
- テストではこの事象は再現されなかった。Nasdaq のダミーシンボルテストは約4万件の注文に達したが、これは Facebook のオープニング注文数の10分の1未満である。SEC は後に、Nasdaq が Facebook の予想規模を反映した別のテストを実施していなかったと認定した。このギャップは重要だった。なぜなら、大量の取引量が各計算を長引かせ、キャンセルの到達時間を増やしたからである。これは特定のエンジニアが正確なループを予測して無視したことを立証するものではなく、公開命令はそのような認定をしていない。
- オペレーターは、クロスが完了しなかったことを最初に知ったが、その理由はわからなかった。エンジニアは、リリースを妨げたコードとして検証チェックを特定したが、状態不一致を引き起こしたキャンセルループはまだ特定していなかった。経営陣は、検証コードが削除された複製マッチングエンジンインスタンスへのフェイルオーバーを承認した。これは、継続性メカニズムの未テストの利用だった。複製は通常、停止時に使用されるものであり、ライブの IPO に変更されたソフトウェアを投入するためのものではなかった。決定は、不一致が小さいだろうという誤った信念に基づいて行われた。
- 変更されたインスタンスは午前11時30分09秒にクロスを完了し、42ドルで7,570万株をマッチングした。それは、11時30分ではなく、およそ11時11分時点の注文板を使用して行われた。その間にエントリーされた38,000件以上のマーケタブル注文が除外された。30,000件以上は IPO システム内に滞留したままとなり、8,000件以上は連続取引にさらされた。実際にクロスした7,570万株と比較して、最後の8,200万株の指標表示は、実質的な状態不一致の同時期の証拠だった。
- 即時の約定確認は失敗した。下流のアプリケーションが、クロスが使用したものより新しい注文板と照合し、不一致をエラーとしてマークしたからである。Nasdaq のプロプライエタリおよび公開クオートフィードは、古いまたはクロスした情報を表示した。参加者は、一部のオープニング注文が約定したかどうかを確実に知らずに取引していた。正午頃、あるマーケットメイカーの CEO(最高経営責任者)は、自社が「盲目取引」をしていると Nasdaq に伝え、取引停止を提案した。Nasdaq の役員はすでに11時35分頃に取引停止を検討していたが、連続マッチング自体は機能しており、他の問題はすぐに解決されると予想したため、継続を選択した。
- 復旧には2時間以上を要した。Nasdaq は2度にわたり、確認を強制通過させようとして失敗した。午後1時45分、Nasdaq は照合チェックをバイパスし、確認は1時49分49秒に配信された。取引所はまた、滞留していた注文をリリースまたはキャンセルした。約13,000件が市場にリリースされ、約300万株の売り不均衡を生み出した。SEC はこのリリースを、1時50分から1時51分にかけての93セントの価格下落と関連付けた。この一連の措置は運用を回復させたが、執行優先順位を変更し、不完全な情報を管理していた参加者にリスクを移転した。
- SEC の2013年行政命令は和解に基づく手続きだった。Nasdaq とその執行関連会社は、管轄権を除き、認定を認めることも否定することもなく同意した。その立場において、委員会は価格-時刻優先、IPO および停止クロス規則、無許可のエラー口座、ブローカーディーラーの自己資本規制に関する違反を認定した。命令は、譴責、中止命令、改善措置、1000万ドルの制裁金を課した。これらの認定は命令内で権威を持つが、刑事判決やすべての投資家損失に対する一般的な裁定ではない。
- 補償は別個のルールプロセスに従った。SEC は、4つの定義された注文カテゴリを対象とする最大6200万ドルの任意融和計画を承認した。FINRA スタッフは、ルールの適格性および損失算式を適用し、最終的な有効請求額は合計44,029,901.61ドルとなった。参加には権利放棄が必要であり、会員は代わりに他の手段を維持することもできた。SEC は、プールまたはベンチマークが損害を完全に測定したのかどうか、Nasdaq のすべての事実上の主張を検証したのか、免責を決定したのか、または係属中の訴訟を解決したのかについて、明示的に判断を下さなかった。後の2650万ドルのクラスアクション和解も、責任を審理認定することなく請求を解決した。
- 永続的な修復には、いくつかの層での制御が必要だった。クロス計算が開始したら注文エントリポートを閉じること、保留中のキャンセルを1回の計算で処理すること、検証失敗を可視化すること、ソフトウェア変更を正式に管理すること、ビジネス・技術・法務・規制の利害関係者を関与させること、パフォーマンスエンジニアリングと統合品質保証を追加すること、事業継続性をテストすること、証拠と経営陣の認証を要求することである。Regulation SCI は後に、主要市場システムに対し、ポリシー、キャパシティ、テスト、インシデント通知およびレビューをより明確化した。現在の Nasdaq 規則もプレローンチプロセスと検証条件を定義しているが、公開された規則だけでは、将来のあらゆるイベントで非公開コードの有効性を証明することはできない。
- したがって、説明責任は層状になっている。ソフトウェア所有者は不変条件とスケールテストを管理していた。取引所運用は、開始、停止、コミュニケーションの決定を管理していた。上級管理職は不確実性下でのリスク受容を管理していた。自主規制機関は提出された規則の遵守を管理し、そのブローカーディーラー関連会社は自己資本とエラー口座義務を管理していた。会員企業は顧客とのコミュニケーション、重複注文の処理、および自社の成行注文保護策を管理していた。規制当局は調査、ルール承認、執行を管理していた。運用管理は正確な説明責任の問いを支える。それ自体は過失、認識または投資家の回復可能損害を証明するものではない。
説明責任の問いと証拠の境界
取引所の開始は、計算であると同時に制度でもある。計算は注文を受け取り、清算価格を決定し、約定を割り当て、メッセージを生成する。制度はそのプロセスを記述するルールを公開し、監視と規制機能を運営し、計算が計画から逸脱したときに決定を下し、参加者に結果としての市場が公正かつ秩序あるものとして信頼するよう求める。Facebook の IPO は、それらの層を非常に緊密に結びつけたため、ソフトウェアの状態管理の欠陥が制度の正当性を問う試金石となった。
正しい問いは、単に Facebook の開始が遅れた理由ではない。それは次のような問いである。どの制御がループを防ぐべきだったのか、どの信号が古い注文板を露呈すべきだったのか、誰に停止または継続する権限があったのか、その意思決定者はどのような情報を得たのか、復旧はどのように優先順位を維持または侵害したのか、そして制御が変更されたことを示す後日の証拠は何か。この枠組みにより、ソフトウェアの因果関係と法的責任を切り離し、インシデント対応と修復が永続的であるという証明を切り離すことができる。
証拠の姿勢は全体を通じて重要である。ここでの確認済み事実は、公式命令、提出されたルール、取引所の技術記録、会社提出書類または裁判記録によって裏付けられている。支持される推論は、制御分析のために確認事実を結び付けるが、それ自体は裁定されていない。争いのある主張は、訴訟において争われているか、当事者によって争われている命題を特定する。不明は、公開記録が解決していない事柄を示す。規制上の認定は、それを行った特定の手続きに帰属する。裁判所の申立てに対する決定、仲裁または和解は、インシデント全体に関する裁判評決として再構成してはならない。
中心的な事象記録は、Nasdaq Stock Market および Nasdaq Execution Services に対する SEC の和解に基づく行政命令である。Nasdaq とその関連会社は、管轄権および主題についての委員会の権限を除き、認定を認めることも否定することもなく同意した。それにもかかわらず、委員会は認定を下し、救済措置を命じた。この姿勢により、命令内で「SEC が認定した」などの記述が可能になる。ただし、Nasdaq がすべての認定を認めた、陪審が詐欺と認定した、または指名された個人が個人的責任を負ったといった記述は許されない。
Nasdaq 自身の2012年5月21日付けの技術報告は、取引所の初期の時系列、11時11分の注文板の状態、IPO ソフトウェアのために計画された変更を記録しているため価値があるが、独立したものではない。後の SEC 命令の方が詳細である場合、本分析では執行記録には命令を使用し、Nasdaq の通知は同時期の一次当事者の説明として扱う。SEC の和解を発表したプレスリリースは簡潔な要約であり、命令の条件や制限の代替ではない。
分析は、Facebook の目論見書の開示とアナリストコミュニケーションにまつわる別個の論争を除外する。これらの論争は、Facebook と引受会社に対する別個の請求を生み出した。これらは IPO クロスループを説明するものではなく、組み合わせれば、誰が失敗した市場プロセスを制御していたのかを曖昧にする。Facebook の評価額、公募の是非、その後の株価もまた、Nasdaq のソフトウェアがすべての購入者の経済的損失を引き起こしたという証拠にはならない。
5月18日以前:特別なクロス、例外的負荷、通常の前提
Nasdaq は、単に最初に入ってきた注文を取引させることによって IPO を開始しなかった。その IPO クロスは、表示専用期間中に適格な関心を蓄積した。システムは指標価格と不均衡情報を配信し、主幹事が準備完了を合図できた。アプリケーションはその後、約定可能数量を最大化する価格を計算し、割当ルールを適用して連続取引を開始した。成功するクロスは、少なくとも3つのビューを同期させる必要があった。計算に使用される注文状態、結果を受け入れるマッチングエンジン、確認を配信する約定アプリケーションである。
SEC 命令によれば、通常の計算には1~2ミリ秒かかった。検証チェックは、IPO クロスアプリケーションが計算した状態をマッチングエンジンの注文状態と比較した。それらが一致しなければ、クロスは実行されなかった。これは原則として理にかなった一貫性制御だった。その弱点は、矛盾した状態を拒否したことではなく、周囲のアプリケーションが、すべての変更を吸収するための境界のある方法や、変更の受け入れを停止する方法なしに、繰り返し矛盾を生み出すことができたことだった。
キャンセルの相互作用は正確だった。計算中にキャンセルが到着すると、アプリケーションは別の計算を実行した。しかし、次の計算には、前回の計算中に受信した最初のキャンセルのみが組み込まれた。2件以上のキャンセルが到着していた場合、後続のキャンセルは別個に処理されるままであった。計算が長くなると、新たなキャンセルが到着する間隔が拡大した。十分なアクティビティの下では、各再計算がさらなる変更によって追い越され、自己持続的なループが発生する可能性があった。
このメカニズムは、根本原因を負荷から区別する。根本原因は、計算中に到着する複数のキャンセルに対する欠陥のある状態遷移ロジックだった。大量の注文数は、計算時間を増加させ、欠陥を露呈させた寄与的な運用条件だった。この事象を予見不可能なサージと呼ぶことは、Facebook が例外的に大規模であると予想されていたため不完全だろう。また、ソフトウェアがすべての状況で496,000件の注文を処理できないと言うことも不正確である。特定された障害は、注文修正が計算と相互作用することから発生したものであり、単に大きな注文板のストレージからではなかった。
Nasdaq は確かにテストを実施したが、スケールの境界は事象をはるかに下回っていた。SEC は、最大のダミーシンボルテストが約40,000件の注文を使用したと認定した。Facebook クロスは496,000件以上を受け取った。委員会は、Nasdaq が IPO の予想サイズを反映した別のテストを実施しなかったと認定した。スケールテストだけでは、計算の実行中に現実的なキャンセルを生成しない限り、必ずしもループをトリガーしなかっただろう。したがって、求められる制御はワークロードのリアリズムだった。注文数、キャンセル率、タイミング、計算時間、ダウンストリームの照合をまとめてテストしなければならなかった。
もう一つの休眠状態にあった実装の詳細がスケジュールに影響を与えた。ランダム化関数が、クロスの開始をランダムな期間遅延させた。Nasdaq はその動作を2007年にルールから削除していたが、ソフトウェアからは削除していなかった。関数は5月18日に有効のままだった。それはキャンセルループの原因ではなかったが、その存在は、本番動作が提出されたルールに準拠しておらず、時間的制約のあるローンチを複雑化したことを意味する。これはソフトウェアライフサイクルのドリフトの証拠である。ルールが変更されても、廃止されたコードが存続することがある。
準備証拠も同様に注意深く読むべきだ。Nasdaq は5月17日に、公募をサポートするための市場全体の技術電話会議を予定していた。これは運営上の注意を示している。クロスロジック、キャパシティ、フェイルオーバー、リカバリパスが1つのシステムとして検証されていたことを証明するものではない。参加者の多い電話会議はコミュニケーション制御であり、敵対的なワークロードテストの代わりにはならない。
10時58分から11時30分:失敗したローンチの時系列
主幹事は当初、予定される開始時刻として午前11時を選択した。およそ10時58分、同社は5分間の延長を要求した。SEC は、そのような遅延に関するルール上の特定の条件が満たされていなかったと認定したが、Nasdaq はそれを認めた。11時05分10秒、ランダム化関数が終了し、IPO クロスは最初の計算を開始した。
最初の計算は通常の1~2ミリ秒ではなく、約20ミリ秒かかった。その間に1件のキャンセルが到着した。アプリケーションはそれを組み込むために2回目の計算を開始した。その計算の実行中に、さらに2件のキャンセルが到着した。コードは、保留中のすべてのキャンセルを単一の状態更新として処理しなかったため、さらなる計算が続き、さらに多くのキャンセルが到着した。検証チェックは設計どおりに機能した。すなわち、アプリケーションの状態がマッチングエンジンと一致しないクロスをブロックした。システムには、修正が継続する中で安定した状態に到達する効果的な経路がなかった。
この障害は直ちに運用インシデントとなった。Nasdaq は、上級管理者とエンジニアを「Code Blue」プロセスの下に招集した。エンジニアは検証チェックをクロスを妨げるポイントとして特定したが、それは根本原因を理解することと同じではなかった。SEC 命令は、INET マッチングエンジンを担当する上級副社長が、以前に検証チェックを認識していなかったとしている。この情報ギャップは重要である。重要なプラットフォームの責任者である意思決定者は、制御の役割、データ依存関係、障害モードが文書化され、リハーサルされていない場合、制御を無効化することの結果を評価できない。
検証チェックを無効にすることを意図した最初のコマンドは失敗した。その後エンジニアは、検証チェックコードを削除した複製マッチングエンジンインスタンスに IPO クロスを移動させることを提案した。Nasdaq は、プライマリマッチングエンジンが利用できなくなった場合の事業継続性のために複製を維持していた。提案された使用方法は実質的に異なっていた。プライマリは利用可能だったが、チームはライブの IPO 中に一貫性制御をバイパスするために修正されたコピーを起動しようとした。
公開記録は、この操作のための事前承認されたランブックを示していない。SEC は、Nasdaq がこの状況で複製の使用をテストしていなかったと認定した。エンジニアと役員は、2つの注文板間の短期間の切断について議論し、Nasdaq がエラー口座で小さな不一致の反対側を引き受ける可能性があると予想した。それらは、命令によれば、IPO を取り消すか延期する可能性、ローンチ前に市場参加者に通知すること、または下流の確認システムが分岐した注文板にどのように反応するかといった、付随的影響の全容について議論しなかった。
およそ11時25分に、あるエグゼクティブバイスプレジデントがフェイルオーバーを承認した。SEC は、彼が潜在的なエラーポジションは小さいと信じていたと認定した。根本的なキャンセルループの原因は未特定のままだった。これが重要な運営上の決定である。すなわち、遅延、延期、またはクロスの中止ではなく、定量化されていない不一致の下で状態検証制御を無効にして進行すること。これは経営陣が投資家被害を意図したという証明として記述すべきではない。説明責任を負うべき制御の失敗は、不確実性下の意思決定の質だった。すなわち、状態のギャップの信頼できる測定やテスト済みの回復経路なしにリスクが受け入れられた。
Nasdaq は複製インスタンスに切り替え、11時30分09秒に IPO クロスは7,570万株を42ドルで約定させた。開始は当初予想よりも約30分遅れた。その後、連続取引が開始された。表面的には、ローンチは成功したように見えた。状態レベルでは、すでに不整合だった。
19分間の状態ギャップと確認の失敗
複製インスタンスは、およそ11時11分までしか最新でない注文板状態からクロスを計算していた。Nasdaq の管理者は、クロスが11時30分の約定時刻までの注文を組み込んでいたと信じていたが、そうではなかった。11時11分から11時30分の間に入力された38,000件以上のマーケタブル注文は、開始計算から除外された。8,000件以上は連続取引の対象となったが、30,000件以上は IPO クロスシステム内に捕捉されたままだった。
市場には1つの可視的な手がかりがあった。ローンチの直前に、Nasdaq は約8,200万株が約定することを示す指標情報を配信した。実際のクロスは7,570万株がマッチングし、約630万株の差があった。SEC によると、Nasdaq の経営陣とチーフエコノミストはこの不一致を認識していた。彼らはローンチを停止せず、連続取引前に解決しなかった。リアルタイムのステータスチェックはまた、複製インスタンスが11時11分以降の注文を処理していないことを示すことができたはずだった。
支持される推論は、取引所は検出シグナルを持っていたが、それらを行動に変換する効果的な停止ルールを欠いていたということである。630万株の不一致は、除外された注文の正確な数や身元を明らかにしなかったが、計算結果が最新の公的表示と実質的に異なることを明らかにした。11時11分の処理タイムスタンプは、古い状態の状況をより直接的にしたはずである。堅牢なローンチゲートは、それらのシグナルの明示的な照合を要求し、注文板がほぼ一致しているというオペレーターの期待に依存しなかっただろう。
その後、約定アプリケーションは別の方向から同じ矛盾に遭遇した。それは11時30分までの注文の記録を持っていたが、クロスの出力は11時11分までの注文板しか反映していなかった。その照合ロジックは不一致をエラーとして扱い、即時の確認を送信しなかった。この動作は、アプリケーションが照合できない結果の配信を防いだが、会員はどの開始注文が約定したかを知ることができないままになった。
Nasdaq のプロプライエタリデータフィードおよび証券情報プロセッサ(SIP)は、古いまたはクロスした気配を表示した。SIP は Nasdaq の気配を非確定的とマークした。これらは表面的なデータ障害ではなかった。ブローカーやマーケットメイカーは、約定ステータスと信頼できる最良買い気配・売り気配に基づいて、在庫、顧客義務、ヘッジを管理している。ステータスが不明な注文は二者択一のリスクを生む。置き換えは約定を重複させる可能性があり、待機は価格が動く中で顧客を約定させないままにする可能性がある。
したがって、確認の遅延は、古いクロスとは別の損害メカニズムだった。一部の注文は除外または捕捉された。一部は約定したが報告されなかった。一部の参加者は、不確実性の下で購入、売却、またはキャンセルを許可することによって反応した。後の補償ルールが異なるカテゴリを認識したのは、因果経路が異なるからである。「取引損失」のような単一のラベルは、どの経路が申立人に適用されるかを立証できない。
11時35分から1時50分:検出、エスカレーション、対応
11時35分頃、Nasdaq の経営陣は Facebook の取引停止を議論した。彼らは、連続取引が稼動していたため、異常な市場活動を宣言しないことを決定した。また、確認とデータの問題は数分以内に解決されると考えていた。この決定は、マッチングエンジンと参加者が経験する市場とを分離した。連続注文はマッチングできたが、参加者はオープニングの約定報告をタイムリーに受け取れず、公開気配も損なわれていた。
次の30分間に、オープニング約定メッセージを強制通過させる試みが2度失敗した。SEC 命令は、これらの試みの後、停止しないという決定が再検討されなかったと述べている。12時01分、あるマーケットメイキング会社の CEO が Nasdaq の CEO に電子メールを送り、自社が「盲目取引」をしており、取引の停止を提案した。このメッセージは12時06分頃に Code Blue グループの経営陣に届いた。Nasdaq は取引を続行した。
このフレーズは、普遍的な企業の可視性の測定ではなく、確認された参加者報告を捉えている。一部の会員は異なる注文、システム、リスク管理を持っていた。しかし、この報告は重要な外部検出シグナルだった。なぜなら、それは内部メッセージングの問題を市場行動に変換したからだ。少なくとも1つの流動性提供者は、自社のポジションを確実に決定できないと述べた。成熟したインシデント指揮プロセスは、そのシグナルを記録し、停止基準を再評価し、当初の短時間の中断という想定が依然として有効なのか、もはや有効でないのかを文書化しただろう。
Nasdaq は復旧作業を電子経路と手動経路に分割した。会員から苦情を受け取り、不整合な状態の理解に取り組んだ。公開証拠は、すべての苦情や内部メッセージの完全な分刻みの記録を提供していない。それは、迅速な修正という当初の期待が誤りであり、取引が続く間にリスクが蓄積したことを示している。
およそ1時45分、Nasdaq は約定アプリケーションの照合プロセスをバイパスした。オープニング確認は1時49分49秒に配信された。取引所はまた、30,000件以上の捕捉された注文を、一部を連続取引にリリースし、他をキャンセルすることで解決した。SEC は、これらの措置が、影響を受けた注文が通常の順序に従って処理されなかったため、価格-時刻優先に違反したと認定した。
約13,000件の注文がリリースされ、約300万株の売り不均衡を生み出した。SEC 命令は、このリリースを1時50分から1時51分にかけての93セントの下落と関連付けた。この認定は、直後の不均衡と価格変動に関する狭い因果的主張を裏付ける。それは、その後の Facebook の価格下落すべてが Nasdaq のシステムに起因することを証明するものではなく、各投資家の損害を定量化するものでもない。
1時50分までに、確認と捕捉注文のリリースにより、主要なフローが回復した。Nasdaq の初期の技術報告書は、午後4時のクロージングクロスが正常に完了したと述べている。しかし、復旧は事象を取り消すこととは同じではない。会員はすでに、未解決のオープニングポジションを抱えたまま2時間以上取引しており、強制的な解決は予期しない株式と市場リスクを彼らの帳簿に載せた。
ブローカーと投資家への影響:既知の損失、限定された帰属
取引所の障害はブローカーを通じて波及した。なぜなら、個人投資家や機関投資家は、法的または運用的に統一された方法で IPO クロスに直接接続していなかったからである。会員は注文を提出し、約定メッセージを受信するか受信しなかったか、顧客記録を維持し、代替取引を行うか否かを決定した。この仲介層が、補償が会員請求と顧客補償を中心に構成され、Facebook を取引したすべての人への直接支払いではない理由を説明している。
Nasdaq の2012年5月21日付けの融和通知は、特定の予想された開始注文が約定しなかった、劣後価格で約定した、または速やかに確認されなかったことを認めた。その6月6日の請求データ通知は、詳細な注文、約定、損失情報を要求した。これらの通知は、取引所の対応と提案されたカテゴリの証拠である。それらは、提出されたすべての損失がクロスによって引き起こされたという独立した認定ではない。
ある公開企業の提出書類は、具体的な会員の例を示している。Knight Capital Group は、Facebook IPO に関連して税引前35.4百万ドルの取引損失を報告し、後に2013年フォーム10-Kにおいて、Nasdaq から12百万ドルの融和を受け取り、10.5百万ドルを自社に、1.5百万ドルを顧客還元に割り当てたことを開示した。Knight の提出書類は、影響を受けたあるマーケットメイカーによる主要声明である。それを業界全体の合計に外挿したり、すべてのドルについて因果関係の裁定として扱うことはできない。
顧客への影響は様々だった。クロスから除外された売り手は、後に42ドル未満を受け取る可能性があった。42ドルの買い注文が約定したが未確認だった買い手は、代替株式を購入した後、予期しないロングポジションを発見するかもしれない。ブローカーは、約定がすでに処理されたことを知る前に顧客がキャンセルすることを許可し、ブローカーが株式を保有することになるかもしれない。他の投資家は、11時30分以降、未解決の開始注文とは関係なく、価格、提供情報、または個々の判断に基づいて取引した可能性がある。証拠上のタスクは、注文識別子、タイムスタンプ、価格、確認、代替または取消、そして最終的な処分を結びつけることだ。
FINRA は、2012年5月15日付けのプレ IPO 成行注文に関する通知で、IPO の成行注文は予想と大幅に異なる約定を受ける可能性があり、企業に指値注文慣行と顧客開示を検討するよう促していた。その通知は、変動の激しい IPO 価格設定に関する会員管理策に対処した。それは取引所のソフトウェア障害を予見したり、許容するものではなかった。規則に準拠したクロスに対する取引所の責任と注文処理に対するブローカーの責任は、互いに打ち消し合うことなく共存できる。
不明点は残っている。公開記録は、投資家ごとの完全な損失台帳を提供していない。それは、各ブローカーが遅延中に各顧客に何を伝えたか、すべての代替取引が合理的だったか、または Nasdaq が開始を延期していたらどのような損失が発生したかを証明していない。反実仮想的な市場価格は特に困難である。なぜなら、クロスを遅延またはキャンセルすることそれ自体が、供給、需要、情報を変えたであろうからだ。したがって、補償規則は、独自の「なければならない」世界を再構築すると主張するのではなく、特定のベンチマークを使用した。
SEC 認定:ルール、優先順位、自己資本、制度的姿勢
SEC の2013年5月の命令は、Nasdaq を2つの立場で取り上げた。Nasdaq Stock Market は登録された全国証券取引所であり自主規制機関だった。Nasdaq Execution Services(NES)は、ルーティングおよびその他の機能のために使用される登録ブローカーディーラーだった。それらの義務は運営上重なっていたが、法的には区別されていた。
和解の姿勢の中で、委員会は Nasdaq がいくつかの点で自らのルールの遵守に失敗したと認定した。旧式のランダム化コード、引受会社要求の延長、その後の Zynga 停止クロスの処理は、規則4120に関係した。捕捉された Facebook 注文のリリースとキャンセル、および365件の Zynga 注文の不適切な処理は、価格-時刻優先に違反した。Nasdaq はまた、クロスから生じたポジションのためにエラー口座を使用したが、その規則はこの目的のためにその口座を認可していなかった。
エラー口座は、復旧設計が提出されたルールに含まれなければならない理由を示している。Nasdaq が300万株以上の Facebook 株をショートしたとき、NES はポジションをカバーし、命令によれば約1,080万ドルの利益を生み出した。問題は単にその取引が金銭を得たか失ったかではない。市場運営者が不一致な利害の反対側を取ることは、経済的エクスポージャーを変化させ、認可され、境界を定められ、透明でなければならない利益相反を引き起こす。
このポジションはまた、ブローカーディーラーの自己資本に影響を及ぼした。SEC は、Facebook ポジションに必要なヘアカットが約3,530万ドルであり、NES は事象前に約880万ドルの超過自己資本しか持っていなかったため、約2,650万ドルの不足が生じたと認定した。委員会は、証券取引所法第15条(c)(3)項および規則15c3-1 の違反を認定した。これは、顧客が2,650万ドルを失ったという認定ではなく、関連会社のリスク吸収能力に関する規制自己資本計算だった。
命令は、取引所に対し、証券取引所法とその規則を遵守し、遵守を強制することを要求する同法第19条(g)(1)に基づく違反を認定した。それは、譴責、中止命令、1,000万ドルの民事制裁金、詳細な改善措置を課した。SEC は、制裁金を取引所に対して課されたものとして当時最大と述べた。「当時」はそれが時点固有の比較であり、現在の記録主張ではないため重要である。
命令には、Facebook の開始とは別のインシデントからの Regulation NMS および空売りに関する認定も含まれていた。それらは委員会のより広範な制御評価に関連するが、Facebook のクロスに帰属させるべきではない。本稿では、Facebook の因果連鎖を拡大するためにそれらの別個の事象を使用しない。
説明責任は制裁金で終わらない。制裁金は、事後に規制違反の価値評価をするが、注文の優先順位を回復したり、事象の際にブローカーにそのポジションを伝えたり、エンジニアリング制御が変更されたことを証明したりはしない。より証拠能力の高い修復の証拠は、改善措置、実装されたコード変更、ガバナンストレース、テスト、後のルールにある。
補償:ルールに規定された融和、損害賠償の判断にあらず
Nasdaq の通常の責任ルールは、システム問題から生じる請求を実質的に制限していた。IPO 後、Nasdaq は一回限りの任意融和を提案した。SEC は最初の提案をリリース34-67507で公表し、後に修正計画をリリース34-69216で承認した。この承認は、証券取引所法第19条(b)に基づく規則制定手続であり、不法行為損害賠償の判断ではなかった。
この計画では、4つの定義されたカテゴリのために最大6,200万ドルが用意された。カテゴリ I は、11時11分から11時30分の間にエントリーされ、クロスで約定しなかった、価格42ドル以下の売り注文を対象とした。カテゴリ II は、後に42ドル未満で約定した同等の売り注文を対象とした。カテゴリ III は、クロスで約定したが速やかな確認がなく、1時50分より前に取消または追加購入につながった、正確に42ドルの買い注文を対象とした。カテゴリ IV は、速やかな確認なく約定し、顧客がキャンセルを許可され、会員が1時50分より前に取消を提出した、42ドル超の買い注文を対象とした。カテゴリ IV の補償は、ルールの根拠の下で会員の決定がポジションに寄与したため、30%減額された。
損失算定式は、1時50分から2時35分までの Facebook 取引の40.527ドルの出来高加重ベンチマークを参照して上限を設定した。顧客補償には支払優先順位があり、その後にカバーされた自己勘定損失が続いた。プールが不十分だった場合、請求は比例配分されることになっていた。会員は支払いを受け取るために IPO クロスに関する幅広い権利放棄を実行しなければならず、会員は計画を拒否して他の請求権を保持することもできた。
FINRA スタッフは、ルールに指定された中立的な審査者を務めた。彼らの役割は限定的だった。請求ワークシートと注文データを収集し、4つのカテゴリと算式を適用し、裏付けを要求し、分析を Nasdaq に報告することだった。Nasdaq の初期の請求分析アラートは、有効請求額を41,610,983.73ドルと報告した。それは最終的な数値ではなかった。追加のカテゴリ III の提出とレビューが続いた。
Nasdaq のSEC に提出された規則4626報告書は、有効請求額を、カテゴリ I で20,364,741.96ドル、カテゴリ II で9,990,901.52ドル、カテゴリ III で2,971,394.13ドル、カテゴリ IV で減額後10,702,864.00ドルとしている。最終合計は44,029,901.61ドルだった。6,200万ドルを下回ったため、Nasdaq は権利放棄と支払条件を条件に、比例配分なしで適格な顧客および自己勘定トランシェを支払うことを期待した。Nasdaq の2013年 Form 10-Kは、約4,400万ドルが第4四半期に支払われたと述べている。
SEC はその承認に重要な境界を設けた。6,200万ドルが総損害の適切な尺度であるかどうか、ベンチマークがすべての損失を捕捉しているかどうか、または Nasdaq の事実上の主張が独立して検証されたかどうかを判断しなかった。係属中の訴訟の本案、免責その他の抗弁の利用可能性について意見を表明しなかった。これらの免責条項は、承認されたルールの下での支払いを、補償されたすべての損失が法的に回復可能であることの証明として扱う、あるいはルールからの除外を損害がなかったことの証明として扱うという、一般的な分析上の誤りを防ぐ。
Nasdaq の期限および権利放棄通知は、最終プロセスを運用化した。2015年、取引所は、以前の機会に提出しなかった会員のために限定的な請求の再開を許可し、その2015年 Form 10-Kは関連する引当金と訴訟状況を記録した。これらの後の記録は、財務的な決着が2013年の支払日を超えて延びたことを示している。
訴訟の境界:免責、仲裁、和解
私的訴訟は異なる説明責任の境界を試した。すなわち、取引所が自主規制機関免責によって保護された規制者として行動している場合と、営利技術運営者として行動している場合である。原告らは証券違反と過失を主張した。申立は立証されるべき主張であり、確認された事実ではない。
2013年12月の棄却段階の意見において、ニューヨーク南部地区連邦地方裁判所は、絶対的な SRO 免責は、主張された行為が私的な事業行為であるとされる Nasdaq の技術の過失ある設計、テスト、販売促進に向けられた請求を妨げないと判断し、規制上の決定および関連する行為は保護されたままだと判示した。Facebook IPO 統合訴訟における地方裁判所の意見は、プレディングと免責の問題を解決したが、裁判で Nasdaq が過失であることやすべての請求損失がソフトウェアによって引き起こされたことを立証したものではない。
UBS との別の紛争は、フォーラムとルールの制限に関するものだった。UBS は、補償、契約、重過失の請求について FINRA 仲裁を求めた。NASDAQ OMX Group, Inc. v. UBS Securities, LLCにおいて、第2巡回区控訴裁判所は、Nasdaq 規則4626(a)の排他的文言が当事者のルールに基づく合意に含まれるとして、仲裁に対する予備的差止命令を支持した。裁判所は仲裁可能性を判断した。裁判所は、どのような代替の司法救済や抗弁が適用される可能性があるかを明示的に特定しなかった。この判決は、UBS が補償可能な損害を被ったか否かについての本案決定として報告されるべきではない。
統合された Nasdaq クラスアクションは後に和解した。連邦の保険補償意見書は、Nasdaq が2015年4月に2,650万ドルの和解に合意し、地方裁判所が2015年11月9日に最終承認を与えたと記録している。Beazley Insurance Co. v. ACE American Insurance Co.における保険補償決定は、保険会社間の配分を決定する間に和解を説明している。クラスアクション和解は、合意された条件の下で訴訟リスクを解決する。公正さのための承認は、すべての申立が真実であるという承認または裁定ではない。
これらの手続きは、狭く耐久性のある法的教訓を生み出す。取引所の規制機能には強力な免責があるかもしれないが、技術開発と販売促進は、システムが SRO に属しているというだけの理由で自動的に免責対象の規制に変換されるわけではない。同時に、提出された取引所ルールと会員契約は、フォーラムと救済を制約し得る。正確な結果は、行為、請求、ルール文言、手続き上の姿勢によって異なる。それは「取引所は免責される」または「障害は通常の過失を立証した」のいずれかに還元することはできない。
修復の証拠:コード、プロセス、ガバナンス、独立した義務
Nasdaq の最初の技術的修復は、クロスの境界を変更した。2012年5月の通知では、IPO アプリケーションは最終計算が開始された後、クロス適格注文修正を受け付けなくなると述べた。これにより、キャンセルが計算を上回ることを許した移動標的が閉じられる。SEC 命令は後に、IPO クロスと停止クロスのための注文エントリポートを計算開始後に閉じること、すべての保留中の修正を1回の再計算で処理すること、検証が失敗した場合の拡張ログを要求した。これらは障害メカニズムに直接結びついた制御である。
改善措置は1つのパッチを超えていた。Nasdaq は、技術、ビジネス、法務、規制関係者が関与する正式なライフサイクルプロセスを確立し、主要なソフトウェアイニシアチブのためのガバナンスを創設し、変更管理を標準化し、規制グループに主要リリースの日常的な可視性と承認の役割を与え、専任のシステムパフォーマンス機能を確立し、品質保証と統合テストを強化しなければならなかった。また、叙述的および文書的な証拠を提供し、取締役会のレビューを受け、その CEO に完了を認証させることが求められた。
これらの要件はインシデントに正確に対応する。共同のライフサイクルオーナーシップは、ルールとコードのドリフトや隠れた制御に対処する。パフォーマンスエンジニアリングは、40,000件のテスト注文と496,000件の事象との間のギャップに対処する。統合テストは、クロス、マッチングエンジン、約定アプリケーション、フィードの間の障害に対処する。変更管理は、検証ロジックのライブ削除に対処する。規制レビューは、提出されたルールから逸脱した本番動作に対処する。経営陣の認証は、上級管理職を口頭の保証ではなく証拠に対して説明責任を負わせる。
Nasdaq は、2013年第2四半期 Form 10-Qで実装の進捗を報告した。また、同社の CEO は、Form 8-K で提出された2013年の株主向け通信の中で、新しい技術リーダーシップ、パフォーマンスエンジニアリング、品質保証を含む組織的およびソフトウェアの変更について説明した。これらは一次当事者の修復の主張である。これらは、構造が発表され、規制当局と投資家に対して表明されたという証拠であり、その後もすべての制御が有効であったという独立した証明ではない。
より広範な規制環境も変化した。2014年、SEC は Regulation Systems Compliance and Integrity(Regulation SCI)を採択した。委員会のRegulation SCI 採択リリースは、キャパシティ、完全性、回復力、可用性、セキュリティをサポートするために合理的に設計されたポリシーと手順、是正措置と通知、事業継続性テスト、年次レビューの要件について説明した。最終規則リリースが支配的な詳細を提供している。Regulation SCI は、2012年の事象のあらゆる側面を支配する法的基準ではなかった。それは、SCI 事業体に対する制御期待を形式化した後の体系的な対応である。
重要な SCI システムの現在の成文化された定義には、17 CFR Part 242, Regulation SCIにおいて、開始、再開、クロージング、取引停止、IPO をサポートするシステムが明示的に含まれている。これは制度的なポイントを明示する。IPO クロスは補助的な便宜ではない。その障害は公正で秩序ある市場を損なう可能性があるため、重要システムのガバナンスに属する。
現在の NasdaqEquity 4ルールは、プレローンチ期間、引受会社の準備完了シグナル、予想価格、すべての成行注文が約定できることの検証、価格テスト、ローンチ前の延期または再スケジュールの能力について説明している。また、クロスプロセスが開始した後の注文エントリとキャンセルを制限している。これらの公開された制御は2012年の障害に対応している。ルールブックだけでは、非公開の実装、モニタリングカバレッジ、将来のあらゆる負荷下でのパフォーマンスを確立することはできない。永続的な保証には、テスト証拠、インシデント訓練、独立したレビュー、観察された動作が要求される。
根本原因、寄与条件、トリガー、制御オーナーシップ
技術的な根本原因は、IPO クロスアプリケーションが、計算中に到着する複数のキャンセルを単一の首尾一貫した状態遷移に組み込むことに失敗したことである。トリガーは、修正が再計算が完了する前に繰り返し到着するほど大きな注文板の下での11時05分10秒の計算だった。トリガーは根本原因を露呈したが、それを生み出したのではない。
第一の寄与条件は、代表的でないパフォーマンスと統合テストだった。第二は、最終的な計算を試行している間の注文変更の受け入れだった。第三は、責任ある経営幹部に理解されていない検証チェックや、ルール変更後に残されたランダム化コードのような、隠れた時代遅れのソフトウェア動作だった。第四は、脆弱な緊急変更ガバナンスだった。第五は、11時11分処理タイムスタンプと630万株の指標ギャップに関する不十分な可観測性とローンチゲーティングだった。第六は、確認と公開データが損なわれ続けている間も、機能している連続エンジンを十分とみなすインシデント決定フレームワークだった。
初期の検出は、クロスの完了失敗だった。そのシグナルは矛盾を示したが、根本原因は示さなかった。最終指標ギャップ、古い処理タイムスタンプ、照合エラー、古くてクロスしたフィード、会員の苦情、「盲目取引」の電子メールは、その後の検出だった。効果的な制御システムは、それぞれにエスカレーションしきい値を割り当て、前提の有効期限が切れるたびにローンチまたは停止の決定を再検討することを要求するだろう。
対応には2つのフェーズがあった。第一は、検証をバイパスし、古い状態からローンチした。これはマッチングを回復させたが、除外、捕捉、未確認の注文を生み出した。第二は、照合をバイパスし、捕捉された注文をリリースまたはキャンセルした。これはメッセージフローと注文処理を回復させたが、優先順位に違反し、集中的な売り不均衡を生み出した。復旧措置は運営上必要かもしれないが、それでも新しいルールリスクと市場リスクを生み出す。
修復は、直接的な不変条件とそれを取り巻く制度の両方に対処した。ポートを閉じ、修正をバッチ処理することは、特定のループリスクを減少させた。パフォーマンスと統合テスト、変更ガバナンス、規制関与、事業継続性、ロギング、認証は、局所的な欠陥が市場全体のイベントになることを許した条件に対処した。Regulation SCI は、この1つのクロスを超えてそれらの期待を拡大した。
制御オーナーシップは、法的責任を主張しすぎることなく、次のように述べることができる。
- Nasdaq のソフトウェアおよび品質組織は、クロスロジック、ワークロードモデル、コードレビュー、統合テスト、可観測性、リリース証拠を管理していた。
- 市場運用は、ローンチランブック、参加者コミュニケーション、停止エスカレーション、復旧順序を管理していた。
- 上級管理職は、フェイルオーバーリスクの受け入れと、根本原因と注文状態が不明のまま進行するかどうかを管理していた。
- SRO としての Nasdaq は、優先権やクロス手順を含む提出されたルールの遵守を管理し、NES はブローカーディーラーの自己資本と自己勘定エラーポジションの処理を管理していた。
- 会員企業は、顧客向けの注文慣行、リスク制限、代替取引の決定、記録、通知、請求サポートを管理していた。
- SEC は、調査、執行、取引所ルールの承認を管理していた。FINRA は、ルール4626によって割り当てられた制限付きの請求審査を実施した。その役割は、Nasdaq の責任の一般的な裁定ではなかった。
- 裁判所は、自身の前に提起された請求と手続き上の問題のみを管理した。免責、仲裁可能性、保険、和解に関する彼らの判決は、1つの普遍的な責任評決に融合しない。
争われているまたは不明なままの事項
詳細な再構成の後でも、いくつかの限界が可視的であるべきである。
第一に、公開記録は、すべてのソースコード、内部チケット、テスト計画、Code Blue コミュニケーション、または決定ログを再現していない。SEC 命令は、設計上の制限と決定を説明しているが、それは公開のソフトウェアリポジトリや完全な内部年表ではない。誰が最初に各行を書いたのか、各レビュー担当者が何を理解していたのか、引用されていないテストが存在したのかを正確に答えることはできない。
第二に、和解命令の認定は自白ではなかった。救済措置と認定は委員会の行動として権威を持つが、その姿勢は審理後の争われた認定とは異なる。個人の意図、詐欺、刑事行為は、その命令によって立証されなかった。
第三に、投資家の損失は請求固有のままである。4,403万ドルの融和合計は、4つのルールカテゴリと算式によって生成された。Knight の報告した3,540万ドルの損失は、1社の会計だった。2,650万ドルのクラスアクション和解は、訴訟解決の価格評価だった。1,000万ドルの SEC 制裁金は規制違反を罰した。約2,650万ドルの自己資本不足は自己資本計算だった。これらの数値を合計すると、異なる概念を二重計算し、防御可能な総損害額は生み出されない。
第四に、反実仮想は不明である。IPO の延期は古い状態の問題を減らしたかもしれないが、注文、ボラティリティ、価格も変えたかもしれない。11時35分または12時06分の停止は新たな約定を止めたが、未解決のポジションを残し、再開リスクを集中させたかもしれない。これらの代替案は評価されリハーサルされるべきだったが、公開証拠はそれらの正確な経済的結果を証明していない。
第五に、修復の有効性は形式的な遵守からのみ推論することはできない。改善措置、提出書類、後のルール、Regulation SCI は、特定の制御設計とガバナンスのコミットメントを示している。それらは、類似の障害が再発し得ないことを証明しない。信頼できる保証は長続きしない。それは、ソフトウェアと市場構造が変化するにつれて、現実的なテスト、監視される本番動作、独立した挑戦、信頼できる停止権限に依存する。
結論:市場インフラは状態境界において説明責任を負う
Facebook IPO は市場インフラの失敗だった。なぜなら、取引所は参加者が最も依存した瞬間に権威ある状態の制御を失ったからである。キャンセルループは安定した開始計算を妨げた。緊急フェイルオーバーは不一致を検出した安全装置を取り除いた。ローンチされたクロスは19分前の注文板を使用した。確認アプリケーションはその後、より新しい注文板を見たため結果を拒否した。参加者がポジションを確実に決定できない間に連続取引が続き、復旧は集中的な不均衡を市場に放出した。
単一のラベルはその連鎖を捉えない。「ソフトウェアのバグ」は、代表的でないテスト、古いルールのコード、テストされていないフェイルオーバー、ローンチ決定を省略する。「人為的ミス」は正確なキャンセル不変条件を不明瞭にする。「市場のボラティリティ」は原因を誤って参加者に転嫁する。「規制の失敗」だけではエンジニアリングメカニズムを無視する。防御可能な説明はそれらを結びつける。すなわち、決定論的なソフトウェア欠陥が予見可能な例外的負荷に遭遇し、ガバナンスがそれを検出して封じ込めることに失敗し、オペレーターは測定されていない状態の分岐を受け入れ、復旧は追加の優先権と市場効果を導入した。
このインシデントはまた、意味のある境界を確立した。SEC の認定は、述べられた不自認条項付きの同意命令に属する。FINRA の作業は、SEC が承認した補償ルールに属していた。裁判所の判決は、技術行為と保護される規制活動を区別し、フォーラムの制限と本案を区別したが、和解は請求を裁定するのではなく解決した。これらの境界は技術的なものではない。それらは説明責任を証拠に基づいたものに保つものである。
永続的な教訓は、制御基準である。重要な取引所プロセスは、1つの権威ある状態、制限された修正ウィンドウ、現実的なスケールと並行性テスト、エンドツーエンドの照合、可視的なフレッシュネスインジケータ、事前承認されたフェイルオーバーセマンティクス、明示的な停止および延期基準、参加者コミュニケーション、修復が機能しているという独立した証拠を必要とする。上級リーダーは、その除去を承認する前に、検証チェックが何を保護しているかを知らなければならない。規制当局は、提出されたルールと実行可能な動作を比較できなければならない。会員は、確認が失敗したときに、注文レベルの証拠を保持し、顧客リスクを管理しなければならない。
注文マッチングは、取引所への信頼がコードが決して失敗しないという信頼ではないため、説明責任の試金石となった。それは、制度がその状態がもはや権威的でないことを検出し、不確実性が執行になる前に停止し、静かに優先順位を変えることなく回復し、何が修復されたかを規制当局と参加者に示すことができるという信頼である。2012年5月18日、Nasdaq はその基準を満たさなかった。執行命令、補償記録、訴訟、その後の制御は、この失敗を異常に読みやすくしている。それらの価値は、原因、決定、影響、法的姿勢、検証された修復の間の区別を保持することにある。

