Sông Hồng Finance mất 43% tổng giá trị khóa trong bảy ngày. Kênh Telegram không một dòng thông báo. Twitter đứng yên từ mười hai ngày trước. Discord vẫn sáng đèn nhưng không ai trả lời. Trang web hoạt động bình thường, số liệu trên DefiLlama vẫn tự cập nhật. Im lặng trên chuỗi là dấu hiệu lớn nhất.
Tôi bắt đầu theo dõi giao thức này từ tháng ba, khi TVL chạm mốc một trăm hai mươi triệu đô la. Con số đó gây chú ý vì một dự án có trụ sở tại TP.HCM hiếm khi vươn tới quy mô đó mà không có đội ngũ kỹ thuật mạnh. Đội ngũ Sông Hồng Finance từng xuất hiện tại một hội thảo blockchain ở Hà Nội, công bố quan hệ đối tác với một quỹ đầu tư Nhật Bản. Họ vận hành ba pool thanh khoản cốt lõi: một pool stablecoin hoán đổi USDT sang USDC, một pool cho vay tài sản thế chấp bằng BNB, và một cơ chế oracle giá chéo để tính lãi suất biến động.
Bảy ngày trước, tôi nhận được cảnh báo từ script theo dõi TVL của mình. Mức giảm 43% không phải dạng sụt giảm tự nhiên do thị trường đi ngang. Tôi mở BscScan và bắt đầu truy vết giao dịch rút tiền. Bài toán trở nên rõ ràng khi tôi lọc tất cả sự kiện Transfer trong khoảng thời gian từ thứ hai đến thứ bảy.
Có mười hai ví lớn rút USDT trong ba ngày liên tiếp. Mỗi ví rút từ năm trăm nghìn đến hai triệu USDT. Điều đáng ngờ không phải số tiền — mà là nguồn gốc tài trợ. Tất cả mười hai ví này đều nhận BNB từ một địa chỉ trung tâm duy nhất để trả phí giao dịch. Địa chỉ trung tâm đó nạp tiền từ một ví nóng của sàn giao dịch lớn. Mô hình này lặp lại chính xác những gì tôi phát hiện ở BitConnect năm 2018: một nhóm ví nhỏ gom tài sản về một địa chỉ trung tâm, tạo ảo giác thanh khoản. Lần này thì ngược lại — cùng một nhóm, cùng một địa chỉ trung tâm, nhưng tài sản bị rút ra ngoài.
Tôi viết một script Python bằng Web3.py để nhóm các địa chỉ theo lịch sử tương tác. Script kéo toàn bộ sự kiện Transfer của hợp đồng Sông Hồng Finance trong ba mươi ngày, lưu vào DataFrame, rồi phân cụm theo tần suất xuất hiện chung. Kết quả: ba mươi tám trong số bốn mươi bảy ví rút tiền có chung một hợp đồng tiền gửi nội bộ. Không phải ngẫu nhiên. Xác suất ba mươi tám ví độc lập cùng tương tác với một hợp đồng nội bộ là gần bằng không. Đây là hành vi rút lui có tổ chức.
Tôi tiếp tục đào sâu vào hợp đồng thông minh. Mã nguồn đã được xác minh trên BscScan, nhưng có một hàm mà tài liệu chính thức không nhắc tới: adminEmergencyWithdraw. Hàm này cho phép một địa chỉ admin rút bất kỳ tài sản nào từ pool mà không cần chữ ký của người dùng. Địa chỉ admin được kiểm soát bởi ba chữ ký đa chữ ký — nhưng hai trong số ba chữ ký đó thuộc về hai ví đã tham gia rút tiền trong bảy ngày qua. Nói cách khác, những người kiểm soát quỹ chính là những người đang rút quỹ. Không có thông báo nào cho người dùng.
Oracle của Sông Hồng Finance là điểm yếu thứ hai. Cơ chế oracle giá chéo của họ tổng hợp từ ba nguồn: một sàn giao dịch tập trung, một sàn phi tập trung, và một node dữ liệu nội bộ. Khi tôi kiểm tra thanh khoản của sàn phi tập trung đó, pool giao dịch USDT sang BUSD có độ sâu chỉ hai trăm nghìn đô la. Nếu ai đó tung một lệnh bán một triệu đô la vào pool này, giá sẽ lệch hơn mười phần trăm. Giá chéo sẽ phản ánh mức lệch đó, kéo lãi suất cho vay của toàn bộ giao thức đi chệch hướng. Oracle không chết, chỉ bị thao túng. Với một pool thanh khoản mỏng như vậy, không cần thao túng — chỉ cần một cú sốc nhỏ cũng đủ làm sụp đổ cơ chế định giá.
Bằng chứng cho thấy quy trình vận hành của Sông Hồng Finance có ba lỗ hổng cấu trúc. Thứ nhất, thanh khoản nằm rải rác trong các pool riêng biệt, không có cơ chế bảo hiểm chéo. Thứ hai, oracle phụ thuộc vào hai nguồn có cùng bản chất — một sàn tập trung và một sàn phi tập trung đều có thể bị tác động bởi cùng một nhà tạo lập thị trường. Thứ ba, hàm adminEmergencyWithdraw có quyền lực tuyệt đối, và hai trong ba người nắm quyền đó đã hành động trước khi thị trường biết chuyện gì đang xảy ra.
Tôi không vội kết luận đội ngũ này là lừa đảo. Có một kịch bản khác, một kịch bản mà phe bò hoàn toàn có lý: thị trường đi ngang, tất cả giao thức DeFi đều mất thanh khoản. Nhà đầu tư lớn rút vốn để tái cân bằng danh mục. Quỹ đầu tư Nhật Bản rút hai triệu đô la vì lo ngại rủi ro thanh khoản mùa hè. Ba mươi tám ví tương tác với hợp đồng nội bộ có thể đơn giản là các nhà đầu tư sớm sử dụng ví thông minh, và hợp đồng nội bộ đó chỉ là công cụ gom tài sản của họ trước khi đầu tư vào giao thức. Trong kịch bản này, Sông Hồng Finance chỉ là một dự án quản lý rủi ro kém, không phải một âm mưu.
Phe bò đúng ở một điểm: TVL giảm không phải tín hiệu duy nhất. Nhưng phe bò bỏ qua câu hỏi vì sao đội ngũ không công bố thông tin. Mất 43% TVL là một sự kiện lớn. Bất kỳ đội ngũ nghiêm túc nào cũng sẽ lên tiếng trong vòng hai mươi bốn giờ. Im lặng kéo dài bảy ngày không phải do họ đang bận — im lặng là một lựa chọn. Khi một giao thức chọn im lặng trong lúc thanh khoản bốc hơi, người dùng nên tự hỏi: họ đang xếp hàng chờ rút tiền, hay đang tìm cách thoát khỏi trách nhiệm?
Tôi đã thấy mô hình này nhiều lần. BitConnect năm 2018, Terra năm 2022 — đều bắt đầu bằng một đợt rút tiền không lời giải thích. Cộng đồng luôn tìm cách biện minh bằng lý thuyết âm mưu ngược: quỹ đầu tư rút vốn, thị trường điều chỉnh, nhà đầu tư nhỏ hoảng loạn. Nhưng dữ liệu on-chain không bao giờ hoảng loạn. Nó chỉ ghi lại sự thật. Ba mươi tám ví cùng tương tác với một hợp đồng nội bộ là sự thật. Hai chữ ký admin tham gia rút tiền là sự thật. Hàm adminEmergencyWithdraw tồn tại là sự thật.
Một bài học khác tôi rút ra từ chính sai lầm của mình: năm 2022 tôi đã short LUNA quá muộn vì tôi tin vào dữ liệu nhưng không tin vào tốc độ lan truyền của dữ liệu đó. Dữ liệu đúng không có nghĩa là thị trường sẽ hành động đúng ngay lập tức. Sông Hồng Finance có thể vẫn tồn tại thêm vài tháng. Nhưng một giao thức không phản hồi khi một phần ba tài sản rời đi là một giao thức đã chết trước khi sụp đổ. Cái chết đó chỉ chờ một cú huých nữa.
Tôi không thể xác nhận rằng Sông Hồng Finance là lừa đảo. Tôi chỉ có thể xác nhận một điều: mọi tín hiệu kỹ thuật đều chỉ về một hướng. Thanh khoản tập trung ở một nhóm ví có tổ chức. Oracle có thể bị thao túng. Hàm rút tiền khẩn cấp nằm trong tay những người đã rút tiền. Sự im lặng của đội ngũ là một dữ liệu, và dữ liệu đó nằm cùng phía với những dữ liệu khác.
Nếu bạn đang giữ token của Sông Hồng Finance, tôi không khuyên bạn rút ngay. Tôi khuyên bạn hãy tự chạy script phân tích. Tôi đã công bố công cụ phát hiện họp đồng rút tiền có tổ chức trên GitHub, sử dụng phương pháp phân cụm ví — cùng phương pháp tôi dùng để phát hiện mô hình BitConnect và Terra. Hãy tự kiểm tra. Im lặng trên chuỗi là dấu hiệu lớn nhất. Nhưng dấu hiệu đó chỉ có ý nghĩa khi bạn biết cách đọc.
Khi nào bạn bắt đầu kiểm tra từng opcode? Khi tiền của bạn đã nằm trong một hợp đồng có hàm rút tiền khẩn cấp do người lạ kiểm soát, hay khi bạn ngồi trước màn hình và tự hỏi vì sao đội ngũ không trả lời? Câu trả lời không nằm trên Telegram. Nó nằm trên chuỗi.


