Vụ Knight Capital ngày 1/8/2012 là một trong những sự cố giao dịch tự động nổi tiếng nhất lịch sử phố Wall: chỉ trong khoảng 45 phút, một công ty tạo lập thị trường lớn của Mỹ mua bán hàng loạt cổ phiếu mà không ai ra lệnh. Bài viết kể lại nguyên nhân theo hồ sơ của SEC, từ một đoạn mã cũ có tên Power Peg đến một máy chủ bị sót. Đây là câu chuyện đáng đọc với bất kỳ ai làm hoặc dùng phần mềm.

Tóm tắt nhanh

Knight Capital mất hơn 460 triệu USD vì một chuỗi việc nhỏ chồng lên nhau chứ không phải vì máy tính tự nổi loạn. Một đoạn mã đã bỏ từ năm 2003 vẫn nằm trên máy chủ chạy thật. Cái phanh của nó bị dời đi năm 2005. Khi triển khai chương trình mới vào tháng 7/2012, một trong tám máy chủ bị bỏ sót và không ai kiểm tra lại. Sáng 1/8, máy bị sót hiểu một cờ hiệu theo nghĩa cũ và đánh thức đoạn mã ấy.

Diễn biến chính

Bối cảnh 2010–2012: thị trường sợ tốc độ

Năm 2012, Knight Capital đặt trụ sở ở Jersey City và xử lý khoảng một phần mười giao dịch cổ phiếu niêm yết ở Mỹ, phần lớn bằng máy. Bộ định tuyến lệnh SMARS của họ chẻ một lệnh lớn thành nhiều lệnh nhỏ rồi tung ra các sàn. Lúc đó thị trường vừa trải qua Flash Crash ngày 6/5/2010 và hai vụ lên sàn trục trặc của BATS và Facebook. SEC cũng ban hành quy tắc buộc các công ty môi giới có chốt chặn tự động, hiệu lực từ tháng 7/2011.

Ngày 3/7/2012, SEC duyệt Chương trình Thanh khoản Bán lẻ (RLP) của sàn New York, khai trương ngày 1/8/2012. Knight có chưa đầy một tháng để sửa nhiều hệ thống, trong đó có SMARS.

2003 và 2005: mã cũ bị bỏ lại, cái phanh bị dời đi

Power Peg là một chức năng trong SMARS. Nó có một bộ đếm cộng dồn số cổ phiếu đã khớp, đóng vai trò cái phanh: đủ số lượng thì dừng. Năm 2003 Knight thôi dùng Power Peg nhưng không xóa mã. Năm 2005, bộ đếm được dời lên vị trí sớm hơn để phục vụ việc khác, và không ai chạy thử lại Power Peg. Từ đó, nếu ai gọi đến, nó sẽ chạy mà không có phanh.

2011–2012: những lời cảnh báo bị bỏ qua

Knight không có quy trình thành văn cho việc viết và triển khai mã SMARS, cũng không bắt buộc người thứ hai kiểm tra khi đưa mã lên máy. Tháng 10/2011, sau một buổi diễn tập khôi phục thảm họa, dữ liệu diễn tập lọt vào giờ giao dịch thật và công ty mất gần 7,5 triệu USD. Knight chỉ vá đúng chỗ đó. Tháng 3/2012, bản chứng nhận hằng năm do Thomas Joyce ký có lỗi câu chữ, không cố ý, và đánh giá tuân thủ không xét tới khả năng SMARS trục trặc.

27/7/2012: triển khai lên tám máy

Mã RLP mới thay vào chỗ của Power Peg và dùng lại cờ hiệu cũ, vốn có nghĩa là gọi Power Peg. Mã được chép tay lên từng máy trong tám máy chủ, theo từng đợt. Một kỹ thuật viên không chép mã lên máy thứ tám, và không ai kiểm tra lại. Từ 8 giờ 1 phút sáng 1/8, hệ thống gửi 97 email báo Power Peg disabled, nhưng không ai đọc.

1/8/2012: 45 phút mất kiểm soát

Lúc 9 giờ 30, các lệnh mang cờ hiệu RLP đổ vào. Bảy máy chạy đúng, nhưng máy thứ tám gọi Power Peg. Không có phanh, nó liên tục bắn lệnh con dù thông tin lệnh đã khớp đủ không đến được SMARS. Từ 212 lệnh của khách hàng, hàng triệu lệnh con tuôn ra thị trường.

Các chốt chặn giá và hạn mức nội bộ không giúp được gì, công cụ theo dõi chỉ dựa vào mắt người và chạy chậm. Khi đội kỹ thuật gỡ mã mới khỏi bảy máy đang chạy đúng, cả tám máy cùng gọi Power Peg. Đến lúc dừng, Knight có hơn bốn triệu lần khớp lệnh trên 154 mã cổ phiếu, ôm vị thế mua ròng khoảng 3,5 tỷ USD và bán ròng khoảng 3,15 tỷ USD.

2/8/2012 đến 2013: cứu trợ, sáp nhập và xử phạt

Cổ phiếu Knight mất khoảng một phần ba giá trị trong ngày 1/8, rồi tổng cộng khoảng 77% sau hai ngày. Citigroup và TD Ameritrade tạm ngừng chuyển lệnh qua Knight. Ngày 6/8/2012, nhóm nhà đầu tư do Jefferies dẫn đầu, có cả đối thủ GETCO, rót 400 triệu USD với giá chuyển đổi 1,50 USD mỗi cổ phiếu, khiến cổ đông cũ gần như mất trắng phần của mình. Knight hợp nhất với GETCO thành KCG ngày 1/7/2013.

Ngày 16/10/2013, SEC phạt Knight Capital Americas 12 triệu USD, vụ đầu tiên theo quy tắc người gác cổng. Công ty chấp nhận mà không thừa nhận hay phủ nhận các phát hiện.

Điều còn tranh cãi hoặc cần thận trọng

  • Con số thiệt hại: khoảng 440 triệu USD là con số Knight tự báo ngày 2/8/2012, còn SEC ghi hơn 460 triệu USD sau khi cộng chi phí. Có báo đặt tít là 30 phút, trong khi văn bản chính thức ghi khoảng 45 phút.
  • Lập trình viên tội đồ: SEC chỉ viết rằng một kỹ thuật viên đã không chép mã lên một máy. Trọng tâm của SEC là thiếu quy trình bắt người khác kiểm tra lại.
  • Phá sản trong 45 phút: không đúng. Knight được cứu sau khoảng năm ngày rồi sáp nhập.
  • Power Peg là mã thử nghiệm để đẩy giá: nhiều blog kể vậy nhưng chưa thấy nguồn gốc nào.
  • Không có công tắc ngắt: câu này đến từ bài viết của Doug Seven năm 2014, độ chắc trung bình. Theo SEC, điều chắc chắn là công ty không có thủ tục ngắt hệ thống khi sự cố xảy ra.

Vì sao câu chuyện này đáng nhớ?

Không có kẻ phản diện nào trong câu chuyện này. Mỗi người làm một việc hợp lý vào đúng lúc của nó: để lại mã cũ vì xóa thì tốn công, dời bộ đếm vì cần cho việc khác, vá nhanh để kịp giờ khai trương. Văn bản của SEC kể từng chi tiết ấy mà không hề nhắc đến trí thông minh của máy.

SEC cũng nhận định rằng chỉ cần một quy trình thành văn, bắt buộc kiểm tra lại việc triển khai mã RLP, là đã có thể phát hiện máy chủ bị sót. Khi các hệ thống AI ngày càng được trao quyền quyết định, câu hỏi từ tập này vẫn nguyên giá trị: ai kiểm tra đường ống đưa chúng ra chạy thật, ai đọc email cảnh báo, và nút ngắt nằm ở đâu.

Câu hỏi thường gặp

Knight Capital đã mất bao nhiêu tiền và trong bao lâu?

Sự cố kéo dài khoảng 45 phút theo văn bản của SEC. Knight tự ước lỗ trước thuế khoảng 440 triệu USD ngay hôm sau; SEC ghi hơn 460 triệu USD khi cộng thêm chi phí. Các con số khác nhau vì cách tính khác nhau.

Vụ Knight Capital có phải do trí tuệ nhân tạo gây ra không?

Không. SMARS là bộ định tuyến lệnh tốc độ cao, không biết suy nghĩ và không tự học. Nó chỉ làm đúng những gì được viết ra.

Power Peg là gì?

Là một chức năng cũ trong SMARS, nhận lệnh mẹ và bắn ra các lệnh con. Knight thôi dùng nó từ năm 2003 nhưng vẫn để mã trên máy chạy thật. Chưa thấy nguồn nào cho thấy đó là mã thử nghiệm dùng để đẩy giá.

Một lập trình viên quên chép file có phải nguyên nhân chính không?

SEC chỉ ghi một kỹ thuật viên đã không chép mã lên một máy. Điều SEC nhấn mạnh là không có quy trình nào buộc người khác kiểm tra lại việc triển khai.

Knight Capital có phá sản không?

Không phá sản trong 45 phút như một số bài viết nói. Ngày 6/8/2012 công ty nhận 400 triệu USD từ nhóm nhà đầu tư do Jefferies dẫn đầu, rồi hợp nhất với GETCO thành KCG ngày 1/7/2013.

SEC đã xử lý Knight Capital thế nào?

Ngày 16/10/2013, Knight Capital Americas nộp phạt 12 triệu USD, vụ đầu tiên theo quy tắc người gác cổng. Công ty chấp nhận mà không thừa nhận hay phủ nhận các phát hiện.

Nguồn tham khảo

Bài viết tóm tắt từ video của kênh; nội dung mang tính giới thiệu.