374 ví, 16,1 triệu USD, và một lỗ hổng không cần click: Câu chuyện SecondFi
374 ví. 1,61 triệu ADA. Một dòng log bất thường. SecondFi – một giao thức DeFi trên Cardano – đã xác nhận sẽ không bao giờ hoạt động trở lại sau vụ tấn công khiến họ mất khoảng 16,1 triệu USD vào tháng 6/2025. Nhưng điều đáng sợ nhất không nằm ở con số, mà ở cách kẻ tấn công vận hành: không cần bất kỳ nạn nhân nào phải "ký" một giao dịch độc hại, không cần lừa ai nhấp vào link phishing. Tôi đã thấy nhiều vụ sập, từ EOS ICO sập ngay khi tôi nhấn deploy, đến DeFi Summer kết thúc bằng một dòng log. Nhưng đây là lần đầu tiên tôi thấy một dự án chết vì chính cách nó tạo ra chìa khóa của người dùng.
SecondFi là một trong những nền tảng DeFi tương đối nổi bật trên Cardano, cung cấp các dịch vụ cho vay, staking và tổng hợp thanh khoản. Vào tháng 6/2025, một kẻ tấn công đã rút tổng cộng 161 triệu ADA từ 374 ví người dùng, tương đương khoảng 16,1 triệu USD tại thời điểm đó.
Công ty an ninh Groom Lake, đơn vị đầu tiên công bố báo cáo chi tiết, mô tả đây là một "lỗ hổng nghiêm trọng trong quá trình tạo khóa" – không phải lỗi trong smart contract, không phải lỗi ở chain Cardano, mà là cách SecondFi sinh ra các khóa riêng tư, seed phrase và đường dẫn ký cho ví của người dùng. Các nhà nghiên cứu nhận thấy một số điểm tương đồng về kỹ thuật với các vụ tấn công được cho là do nhóm Lazarus Group của Triều Tiên thực hiện. Tuy nhiên, kết luận về Lazarus vẫn chưa được xác nhận chính thức. Điều này có nghĩa, nếu không có thêm bằng chứng pháp lý, chúng ta chỉ có thể coi đó là một "mô hình hành vi tương tự" – và trong giới phân tích, đây là một vùng xám nguy hiểm.
Sau sự cố, SecondFi tạm dừng hoạt động, tung ra chương trình bounty và yêu cầu kẻ tấn công trả lại tiền. Trong một thông báo mới nhất, họ tuyên bố "tiếp tục gia hạn bounty" nhưng đồng thời xác nhận: giao thức sẽ không hoạt động trở lại. Về bản chất, đây là một lời thừa nhận thất bại toàn diện. Không phải vì họ không muốn sửa bug, mà vì không thể sửa được nữa. Khi toàn bộ hệ thống khóa của hàng trăm người dùng đã bị xâm phạm từ gốc, việc "nâng cấp" chỉ là vẽ lại một ngôi nhà đã cháy sạch phần móng.
"Phân tích mã? Tôi chỉ mất 3 phút." – Đó là câu tôi thường nói khi ai đó hỏi tôi có chắc chắn về một phát hiện bảo mật hay không. Với SecondFi, chỉ cần đọc cách họ mô tả sự cố là có thể đoán được họ đã thất bại ở đâu. Lỗ hổng nằm ở lớp tạo khóa – hoặc nói đúng hơn là lớp không được bảo vệ. Khi một nhóm 374 ví cùng bị rút sạch, và tất cả các ví này đều được sinh ra từ một quy trình chung, thì khả năng cao là kẻ tấn công không cần phải tấn công từng ví một. Chúng tấn công vào "nhà máy sản xuất ví".
Trong một hệ thống blockchain, việc tạo khóa an toàn phụ thuộc vào ba yếu tố: nguồn entropy (ngẫu nhiên), thuật toán dẫn xuất khóa (derivation path), và quy trình lưu trữ khóa. Nếu một trong ba yếu tố này yếu hoặc có thể dự đoán trước, kẻ tấn công có thể tái tạo lại toàn bộ khóa của người dùng mà không cần đánh cắp từng chiếc điện thoại hay từng file. Năm 2017, tôi từng phát hiện một lỗi nghiêm trọng trong hợp đồng ICO EOS – lỗi nằm ở cơ chế đặt cược có thể dẫn đến mất token. Nhưng lỗi đó vẫn đòi hỏi người dùng phải tương tác với hợp đồng. Còn ở SecondFi, người dùng chỉ cần tạo ví, nạp tiền, và ngồi nhìn tiền biến mất.
Trong các cuộc kiểm toán của tôi, chẳng hạn như khi kiểm toán Uniswap v2 vào năm 2020, tôi dành 3 tuần để rà soát từng dòng khí gas, tìm điểm tối ưu và phát hiện ra một lỗ hổng front-running. Điều đó khiến tôi nhận ra rằng hầu hết các bản kiểm toán smart contract chỉ tập trung vào logic của hợp đồng, còn quy trình tạo khóa – thứ thường nằm ngoài chuỗi – lại hiếm khi được kiểm tra. Đây chính là điểm mù chết người trong toàn ngành. Kẻ tấn công SecondFi có thể đã tận dụng một bộ sinh số ngẫu nhiên (RNG) yếu, một đường dẫn dẫn xuất dễ đoán, hoặc một dịch vụ tạo khóa tập trung có thể bị xâm nhập. Hiện tại, chưa có công bố kỹ thuật chi tiết, nhưng sự kiện 374 ví cùng bị ảnh hưởng cho thấy một quy trình gây lỗi mang tính hệ thống. Đây cũng là lý do SecondFi chọn đóng cửa: thay thế toàn bộ khóa cho hàng trăm người dùng không chỉ là vấn đề kỹ thuật, mà còn là vấn đề niềm tin. Một khi người dùng biết rằng "cha đẻ" của chiếc khóa của bạn đã bị hack, bạn sẽ không bao giờ sử dụng lại sản phẩm đó nữa.
Tôi không ngạc nhiên khi thấy một dự án nhỏ như SecondFi thiếu sót trong quy trình tạo khóa. Điều tôi ngạc nhiên là các công ty kiểm toán có thể đã bỏ qua phần này. Trong hợp đồng kiểm toán thông thường, phạm vi thường giới hạn trong mã smart contract, không bao gồm hạ tầng ngoài chuỗi. Nhưng với DeFi, ranh giới này ngày càng mờ nhạt. Một giao thức không chỉ là smart contract; nó là một hệ thống bao gồm frontend, backend, dịch vụ tạo khóa và quy trình vận hành. Nếu các công ty kiểm toán không cập nhật phương pháp luận, chúng ta sẽ còn thấy nhiều vụ việc tương tự.
Đáng lo hơn, những lỗ hổng thuộc loại này không phải là cá biệt. Nếu SecondFi dùng một thư viện mã nguồn mở phổ biến hoặc một dịch vụ tạo khóa của bên thứ ba, thì các giao thức khác trên Cardano có thể cũng đang ngồi trên một quả bom hẹn giờ. Tôi đã cảnh báo điều này từ thời điểm kiểm toán OpenSea vào năm 2021: vấn đề của NFT không nằm ở việc mint mà nằm ở cơ chế royalty – và vấn đề của Cardano DeFi bây giờ không nằm ở chain, mà nằm ở lớp kỹ thuật ít ai ngó tới. Groom Lake trong báo cáo của mình cũng nhiều lần nhấn mạnh rằng các nhóm phát triển cần xem lại toàn bộ chuỗi cung ứng phần mềm, từ thư viện mã hóa đến hạ tầng backend. Nhưng trên thực tế, rất ít dự án sẵn sàng công bố chi tiết về quy trình này, vì họ sợ mất uy tín. Sự thiếu minh bạch đó chính là mảnh đất màu mỡ cho tội phạm mạng.
Trong bối cảnh thị trường tăng như hiện tại, những lỗi kiểu này thường bị che giấu bởi sự phấn khích. Nhìn vào các dự án mới huy động được hàng trăm triệu USD, bạn sẽ thấy họ chạy đua TVL, chạy đua listing, nhưng rất ít người tự hỏi: khóa của tôi đang được tạo ra ở đâu, bởi ai, và bằng thuật toán nào? Kẻ tấn công không cần phá hợp đồng thông minh; chỉ cần tấn công vào quy trình tạo khóa, hay nói đúng hơn là tấn công vào một điểm mù trong vòng đời phát triển phần mềm. Khi một dự án sụp đổ, mọi người thường nhìn vào "bug" và "exploit" như một sự cố kỹ thuật đơn lẻ, nhưng tôi nhìn thấy một quy trình thiếu kiểm soát từ đầu đến cuối.
Giải pháp an toàn vốn đã tồn tại: ví MPC (multi-party computation), mô-đun bảo mật phần cứng HSM, hoặc các giao thức ngưỡng chữ ký có thể giảm đáng kể rủi ro này. Nhưng chi phí triển khai cao và vận hành phức tạp khiến nhiều dự án nhỏ lựa chọn "vẽ khóa" theo cách thủ công. Điều này giống như việc dùng một ổ khóa giấy để khóa két sắt – nhìn thì bảo mật, nhưng chỉ cần một cơn gió nhẹ là mất sạch. Nếu không có áp lực từ cộng đồng hoặc quy định, những dự án tương tự sẽ tiếp tục tồn tại với cùng một lỗ hổng tiềm ẩn. Đây không phải là vấn đề của riêng SecondFi, mà là vấn đề mang tính hệ thống của các lớp ứng dụng DeFi trên mọi nền tảng. Trên Ethereum, chúng ta đã chứng kiến những vụ hack bridge hàng trăm triệu USD; trên Cardano, chúng ta bắt đầu chứng kiến một cuộc tấn công tinh vi hơn, nhắm vào lớp yếu nhất trong kiến trúc.
Với những ai đang nắm giữ ADA, vụ việc này không nên bị hiểu là một lý do để bán tháo. Nhưng với những ai đang cân nhắc đầu tư vào các giao thức DeFi trên Cardano, đây là lúc cần đặt câu hỏi về quy trình tạo khóa, lưu trữ khóa và kế hoạch ứng phó sự cố. Hãy nhìn vào danh sách các dự án có TVL lớn, xem họ có công bố chính sách bảo mật hay không. Nếu một dự án không thể trả lời "khóa của tôi được tạo ra như thế nào", hãy coi đó là một red flag. Nếu bạn đang vận hành một giao thức DeFi, hãy tự kiểm tra: hệ thống của bạn có một quy trình tạo khóa tập trung duy nhất? Có ai có thể truy cập vào máy chủ chứa seed phrase? Bạn có chắc rằng bộ phát sinh số ngẫu nhiên của bạn không lấy từ thư viện có độ trễ thấp? Nếu bạn không trả lời được, hãy nhớ rằng SecondFi cũng đã từng rất tự tin trước ngày 6/2025.
Nhiều người đổ lỗi cho Cardano vì sự cố này, nói rằng mạng lưới không an toàn. Điều đó vừa đúng vừa sai về mặt bản chất. Đúng ở chỗ hệ sinh thái Cardano chịu ảnh hưởng nặng nề; sai ở chỗ chain vốn dĩ vẫn hoạt động bình thường. Sự thật là một blockchain an toàn không thể cứu một ứng dụng dở. Nhưng chúng ta cần nhìn xa hơn: các cuộc kiểm toán hiện tại trên thị trường quá tập trung vào "smart contract" mà quên mất "khóa". Điều này tạo ra một loại mù quáng nguy hiểm. Các dự án có thể khoe 10 bản audit, nhưng nếu khóa được tạo ra từ một máy chủ yếu kém, thì mọi thứ khác chỉ là trang trí.
Tôi cũng muốn phản bác lại giả định rằng bounty là một chiến lược hiệu quả. Khi nghi phạm là một nhóm tội phạm có tổ chức như Lazarus, treo thưởng chỉ là một hành động PR. Những kẻ này không có khái niệm "trả lại tiền vì đạo đức". Nếu bounty thực sự hoạt động, họ đã không cần gia hạn. Điều này cho thấy đội ngũ SecondFi đang trong trạng thái "cầm chừng" hơn là chủ động. Họ đóng cửa vì biết không thể cứu được, nhưng vẫn muốn giữ hình ảnh có trách nhiệm với người dùng. Trong khi đó, các chủ thể trên chuỗi có thể đã bắt đầu rửa tiền qua các cầu nối và sàn giao dịch phi tập trung, một quá trình có thể kéo dài hàng tháng và gần như không thể đảo ngược.
Khi nào các dự án DeFi bắt đầu coi quản lý khóa như một phần của mã nguồn? Câu hỏi đó có thể sẽ được trả lời trong 12 tháng tới, khi các cơ quan quản lý bắt đầu yêu cầu kiểm toán mật mã chuyên sâu, không chỉ kiểm toán hợp đồng. Vụ SecondFi là một cột mốc: nó cho thấy sự khác biệt giữa "chạy trên blockchain" và "được blockchain bảo vệ". Sự kiện này có thể không phải là vụ hack lớn nhất trong lịch sử, nhưng nó là hồi chuông cảnh tỉnh cho toàn bộ tầng lớp ứng dụng. Bây giờ, hãy xem những dự án Cardano khác có dám công bố quy trình tạo khóa của mình hay không. Còn tôi, tôi lại mở trình duyệt, đọc tiếp một dòng log mới.