コピーされなかった1つのファイル。 45分間で4億4000万ドル。

あるマーケットメーカーのデプロイスクリプトが、8台あるサーバーのうち1台にコピーされませんでした。そのサーバーには8年前の休眠中のテストコードがそのまま残っており——転用されたフラグがそれを目覚めさせ、暴走する取引の洪水を引き起こし、昼食前に会社をほぼ終わらせるところでした。

Knight Capital取引障害 Knight Capital 4億4000万ドルの損失 アルゴリズム取引の障害 不良デプロイのコスト事例
スクロールしてタイムラインを見る
45分 市場開場から取引停止まで
4億4000万ドル 損失——ほぼ同社の時価総額全体に相当

1つの表でわかる、事の経緯。

出典は本文中にリンクしています。SECによるその後の調査と公開命令のおかげで、この事件は異例なほど詳細に記録されています。

日付 2012年8月1日、米国東部時間午前9時30分の市場開場から。
何が起きたか 新しい注文ルーティングコードをデプロイしていた技術者が、Knightの8台の本番サーバーのうち1台にそれをコピーし忘れました。そのサーバーには「Power Peg」と呼ばれる古い未使用のテスト関数がまだ残っており、新しいコードで転用されたフラグが誤ってそれを再起動させてしまい——意図しない大量の買い注文と売り注文が市場に送信されました。
規模 約45分間で、Knightのシステムはわずか212件の正規の顧客注文を処理しようとしている間に400万件を超える注文を送信し、約154銘柄にわたって約3億9700万株を取引し、大規模かつ意図しないポジションを積み上げました。
検知と停止 Knightのエンジニアは、この異常な取引の原因を突き止めてシステムを停止させるまでに、ほぼ45分を費やしました——特定の誤動作プロセスを単独で停止できる自動サーキットブレーカーやキルスイッチは存在していませんでした。
報告されたコスト Knight Capitalは4億4000万ドルの取引損失を公表しました——これは過去数年分の利益の合計を上回る額でした。この損失により同社の時価総額はほぼ吹き飛び、緊急の資本調達を余儀なくされ、数か月以内に競合のGetcoによる救済買収を受けることになりました。

ロールバック計画もキルスイッチもなかった。

これはこのリストの中で最も速く、最も集中的な損失であり——自動化システムにおいては検知速度がほとんど何よりも重要であることを思い起こさせます。

01

死んだコードは無害なコードではない

Power Peg関数は何年も使われていませんでしたが、削除されることはありませんでした——コードベースの別の場所で転用されたフラグ1つで、それを目覚めさせるには十分でした。非推奨のコードパスは、存在し続ける限り潜在的なリスクを抱え続けます。

02

部分的なデプロイは、デプロイしないより悪い結果を招く

8台のサーバーのうち7台は正しい更新を受け取りましたが、8台目は受け取りませんでした。すべてのノードが意図した状態と一致していることを自動的に検証する仕組みのないデプロイプロセスは、変更前よりも悪い状態にシステムを陥れる可能性があります。

03

検知時間がこの事件のコストのほぼすべてを占める

システムが稼働し続けた1分ごとに、このリストの他のほとんどの事件に匹敵しない速度で損失が積み上がりました——自動化された取引においては、迅速で自動的なキルスイッチは、他のほぼどの信頼性投資よりも価値があります。

Knight Capitalについての質問。

この事件をデプロイ安全性や取引インフラの事例として引用する際によくある質問。

これはハッキングや相場操縦の試みだったのですか? いいえ——規制当局もKnight自身も、外部からの攻撃や意図的な操縦ではなく、内部のデプロイミスが原因であるとしています。
Knight Capitalはその後回復したのですか? 単独では回復しませんでした——同社は投資家からの緊急の資本注入によってのみ存続し、数か月以内にGetcoに買収され、その後KCG Holdingsの一部となりました。
その後、業界では何が変わったのですか? この事件は、人間によるレビューなしに金融上の行動を取り得るあらゆるシステムにおいて、デプロイ前チェックリスト、カナリアリリース、自動サーキットブレーカーの重要性を示す広く引用される事例となりました。
これは計算ツールにどう対応しますか? ブローカーディーラー計算ツールをご覧ください。これはまさにこの種の低頻度・高深刻度の取引インフラリスクを、短いMTTR目標でモデル化しています。

45分間の暴走自動化は、あなたにいくらのコストをもたらすでしょうか?

同じ数式を使って、自社の取引システム、収益エクスポージャー、復旧時間をモデル化してください。

モード

アクセントカラー