45분 동안 4억6천만 달러 손실을 본 Knight Capital의 소프트웨어 버그

2012년 HFT[1] 투자그룹인 Knight Capital이 2012년 소프트웨어 버그로 인해 45분동안 4억 6천만달러의 손실을 일으킨 사건[2]은 유명한데, 일전에 읽은 카카오 AI 리포트[3;p114]에서도 짧게 언급되어 있다.

이에 대해 SEC의 보고서[4]에 대한 어느 블로그 글[5]이 해커뉴스[6]에 공유되어 있길래 잠깐 봤다.

물론 본인은 SEC의 보고서[4]를 읽기에는 능력이 부족하므로 이 블로거[5]의 설명을 내가 이해한 대로 여기에 대충 써 본다. 본인은 미국 증권 거래에 관해 완전히 무지하므로 그냥 개소리라고 흘려 들으시길 바란다. ㅎㅎㅎㅎㅎ

뉴욕 증권 거래소에는 Retail Liquidity Program이라는 게 있는 모양인데, 잘은 모르겠지만 여하간 월스트리트 저널에 따르면[7] 이것 때문에 열라 작은 금액 단위의 매매 금액이 가능한 것 같다. 이런 작은 단위의 주문을 이용하여 다크풀에서 HFT의 전략은 마이클 루이스플래시 보이스[8]에서도 짧게 설명이 있다. 참고로 국내에서는 그런 전략이 내가 알기로는 불가능함.

뉴욕 증권 거래소에서 2012년에 새롭게 Retail Liquidity Program을 도입하면서 Knight Capital에서도 자신들이 운용하는 SMARS라는 이름의 소프트웨어를 여기에 맞게 업데이트를 했다고 한다. 이 과정에서 수년 전부터 기능적으로 사용되지 않는 Power Peg이라 부르는 부분을 제거 하였다. 이 Power Peg를 제거하는 과정에서 사용되지 않는 변수의 값을 Yes로 할당한 것 같다.

Power Peg의 코드는 child 주문이 실행될 시, child들의 주식의 숫자가 누적되어 parent 주문이 실행되도록 이루어진 구조라고 한다. parent 주문이 완전히 끝난 이후에 child 주문은 정지 되는 기능을 갖는다. 근데 2003년에 Knight Capital은 Power Peg 사용을 중지했다고 한다. 2005년에 Knight Capital은 SMARS에 Power Peg의 일부 기능을 이식할 때 재테스트를 하지 않았고, 나름 잘 작동하는 듯이 보였다고 한다.

2012년 7월 27일에 새롭게 도입되는 Retail Liquidity Program에 대응하기 위해 SMARS에 새로운 코드가 삽입되었는데, Knight Capital의 한 기술자가 새 코드를 8개 서버 중에 한 군데에 카피하지 않은 실수를 범하고 만다. Knight Capital 측에서는 이를 확인하지 않았고, 여덟 번째 서버에 Power Peg 코드가 제거되지 않은 사실을 아무도 눈치채지 못했다.

8월 1일에 Knight Capital은 주식 중개자로부터 Retail Liquidity Program에 참여 가능하다는 이야기를 들었고, 일곱 개의 서버는 정확하게 일을 처리했다. 근데 여덟 번째 서버에는 폐기된 Power Peg 코드가 여전히 남아있었고, 이 서버는 오류 주문을 보내고야 만다. 내부 시스템에서 오류 관련 이메일이 자동발송되었는데, Knight Capital의 관리자는 이 이메일을 자세히 보지 않은 모양이다.

게다가 문제를 해결하는 과정에서 Knight Capital은 새로운 Retail Liquidity Program 대응 코드를 언인스톨했는데, 이게 Power Peg 코드의 주문을 활성화시키면서 문제가 더 확대했다고 한다. 음…

8년 넘게 숨어있던 해묵은 버그가 돌고 돌아서 사람 뒤통수를 친 격인데-_- 여러모로 운명의 장난이라고나 할까. ㅎㅎ

여러모로 기술에 의한 문제라기 보다는 크로스 체킹을 소홀히 한 문제 같아 보이는데, 어쨌든 기계가 문제를 일으켜도 책임은 사람이 지게 돼 있으니 그렇게 보일지도 모르겠다-_- 기계에게 책임을 물을 수 있을 정도로 기술이 발전한다면 모를까… ㅎㅎ

.


[1] 내 백과사전 초고속 매매 High-frequency trading 2013년 10월 18일
[2] 뉴욕타임즈 Knight Capital Says Trading Glitch Cost It $440 Million AUGUST 2, 2012 9:07 AM
[3] 내 백과사전 [서평] 카카오 AI 리포트 – 인간과 인공지능을 말하다 2018년 9월 14일
[4] United States of America Before the Securities and Exchange Commission, Securities Exchange Act of 1934 Release No. 70694 (October 16, 2013) Administrative Proceeding File No. 3-15570 “In the Matter of Knight Capital Americas LLC Respondent.” https://www.sec.gov/litigation/admin/2013/34-70694.pdf
[5] How to lose $172,222 per second for 45 minutes (sweetness.hmmz.org)
[6] How to lose $172k per second for 45 minutes (2013) (hacker news)
[7] 월스트리트 저널 What Exactly Is NYSE’s Retail Liquidity Program? Aug 2, 2012 1:41 pm ET
[8] 내 백과사전 [서평] 플래시 보이스- 0.001초의 약탈자들, 그들은 어떻게 월스트리트를 조종하는가 2014년 10월 7일