2290 ETH — tương đương 4.39 triệu USD — vừa được chuyển vào Tornado Cash từ một địa chỉ liên quan đến Solana OG attacker. Đây là lần thứ hai trong vòng hai tuần. Không một ngân hàng nào phê duyệt giao dịch này, không một cơ quan nào kịp ngăn chặn, và trên màn hình blockchain explorer, tất cả chỉ là một dòng dữ liệu lạnh lùng. Nhưng nếu bạn nghĩ đây chỉ là một tin tức tội phạm mạng thông thường, bạn đã bỏ lỡ điều quan trọng nhất: kẻ tấn công vừa minh chứng rằng hệ thống giám sát tài chính phi tập trung — thứ mà chúng ta tự hào nhất — vẫn có một lỗ hổng chết người.
Ba tuần trước, một địa chỉ được gắn với Solana OG attacker đã gây thiệt hại khoảng 14.2 triệu USD cho nạn nhân trong hệ sinh thái Solana. Thay vì để số tiền nằm yên, kẻ tấn công bắt đầu quá trình "làm sạch". 2290 ETH vừa được chia nhỏ và đưa vào các pool ẩn danh của Tornado Cash — giao thức trộn coin trên Ethereum, dựa trên bằng chứng không tiết lộ (ZK-SNARK). Người dùng gửi ETH vào một bể chung, nhận một bằng chứng mật mã, sau đó rút tiền từ một địa chỉ hoàn toàn mới. Về mặt toán học, mối liên hệ giữa ví gốc và ví mới gần như biến mất nếu không có dữ liệu ngoài chuỗi bổ sung.
Điều đầu tiên tôi chú ý không phải con số 4.39 triệu USD. Mà là hành vi. Kẻ tấn công chia nhỏ giao dịch, thực hiện thành nhiều đợt, cách nhau hai tuần. Đây không phải một kẻ nghiệp dư đang hoảng loạn. Đây là một quy trình có phương pháp — một chiến lược phân tán rủi ro mà bất kỳ ai từng làm trong lĩnh vực chống rửa tiền đều nhận ra ngay. Trong các cuộc điều tra tôi từng chứng kiến, những kẻ chuyển toàn bộ tiền trong một lần thường bị bắt nhanh hơn. Còn những kẻ biết kiên nhẫn, biết tách giao dịch theo ngưỡng rủi ro, chúng tạo ra một bức tường vô hình giữa tài sản và cơ quan thực thi pháp luật. Tôi gọi đó là "bức tường thời gian" — thứ mà không smart contract nào xóa bỏ được, nhưng cũng không thuật toán nào nhanh chóng vượt qua.
Hãy nhìn kỹ vào kỹ thuật. Tornado Cash sử dụng ZK-SNARK — một bằng chứng mật mã cho phép bạn chứng minh rằng mình đã gửi một khoản tiền cụ thể vào pool mà không tiết lộ số tiền đó đến từ đâu. Mỗi lần gửi 100 ETH, bạn nhận một "biên nhận" được mã hóa. Khi rút, bạn sử dụng biên nhận đó từ một địa chỉ mới, và về mặt kỹ thuật, không ai nối được điểm A với điểm B. OFAC đã liệt Tornado Cash vào danh sách đen từ tháng 8/2022, chính vì khả năng này. Nhưng lệnh trừng phạt chỉ ngăn các thực thể Mỹ tương tác với giao thức. Nó không ngăn được một kẻ tấn công ở bất kỳ đâu trên thế giới — với một chiếc laptop và một ví điện tử — sử dụng giao thức như một máy xay thịt tài chính.
Tôi đã từng audit governance của nhiều giao thức DeFi, và có một điều tôi học được sau vụ ICO năm 2017, khi tôi mất 2 ETH vào một dự án hứa hẹn "cách mạng quản trị phi tập trung": công nghệ không tự đảm bảo giá trị nếu thiếu thiết kế quản trị thực sự. Tornado Cash là minh chứng hoàn hảo. Về mặt code, nó gần như hoàn hảo — được audit nhiều lần, không có lỗ hổng lớn. Nhưng về mặt quản trị, nó đã thất bại thảm hại: không có cơ chế nào để ngăn một kẻ tấn công sử dụng nó như công cụ rửa tiền. Và vì thế, toàn bộ cộng đồng quyền riêng tư đang phải trả giá.
Số liệu cũng cho thấy một điều thú vị: hai tuần giữa hai lần chuyển tiền. Tại sao là hai tuần? Có thể kẻ tấn công đang chờ mức độ chú ý của cộng đồng giảm bớt. Có thể hắn đang thử nghiệm xem các cơ quan giám sát có phản ứng gì với lần chuyển đầu tiên. Nhưng có một khả năng khác, tinh vi hơn: hắn đang sử dụng kỹ thuật phân lớp — di chuyển tiền qua nhiều tầng, giống như một người đi qua nhiều căn phòng để xóa dấu vân tay. Mỗi lần đi qua một "căn phòng" Tornado Cash, mối liên hệ với nguồn gốc ban đầu lại yếu đi một bậc. Sau hai hoặc ba vòng, ngay cả Chainalysis với kho dữ liệu khổng lồ cũng phải bó tay.
Một điểm kỹ thuật nữa mà hầu hết bản tin bỏ qua: kẻ tấn công chọn Tornado Cash thay vì một cầu nối xuyên chuỗi. Điều này nói lên nhiều điều. Nếu hắn muốn chuyển tiền sang một blockchain khác như Solana hay BSC, hắn có thể dùng bridge — nhanh hơn, và có thể "tẩy" dấu vết bằng cách đổi qua một chuỗi hoàn toàn khác. Nhưng hắn không làm vậy. Hắn ở lại Ethereum, dùng Tornado Cash. Tại sao? Tôi đoán hắn coi trọng tính thanh khoản và độ sâu của các pool ẩn danh trên Ethereum — nơi có hàng trăm nghìn ETH được trộn lẫn, khiến việc truy vết khó khăn hơn nhiều so với các pool nhỏ trên những chuỗi khác. Hắn hiểu rằng một chiếc xe nhỏ trên đường cao tốc đông đúc sẽ dễ biến mất hơn là một chiếc xe màu đỏ trên con đường vắng.
Và đừng quên: 2290 ETH chỉ là một phần. Tổng số tiền bị đánh cắp lên tới 14.2 triệu USD, nghĩa là vẫn còn khoảng 9.8 triệu USD (tương đương hơn 4,700 ETH) đang nằm trong các ví mà cơ quan điều tra vẫn đang theo dõi. Nếu lịch sử các vụ tấn công crypto lặp lại, kẻ tấn công sẽ tiếp tục di chuyển số tiền này trong những tuần tới. Mỗi lần di chuyển là một cơ hội để theo dõi, nhưng cũng là một bước gần hơn đến việc không thể truy vết. Cửa sổ cho các nhà điều tra đang thu hẹp lại từng ngày.
Đối với thị trường, sự kiện này không tạo ra cú sốc lớn — 4.39 triệu USD chỉ là một giọt nước trong đại dương thanh khoản của Ethereum. Nhưng nó gửi một tín hiệu ngầm: trong một thị trường đang tăng, khi dòng tiền FOMO chảy vào các dự án một cách thiếu kiểm soát, những sự cố như thế này thường bị bỏ qua. Tôi đã thấy điều đó lặp đi lặp lại trong chu kỳ 2017, 2021, và bây giờ. Khi mọi người mải mê với những câu chuyện tăng giá, các lỗ hổng kỹ thuật âm thầm bị bỏ qua cho đến khi quá muộn. Nếu bạn đang nắm giữ token của các giao thức từng bị tấn công, đã đến lúc hỏi một câu: đội ngũ đó đã thực sự vá lỗ hổng, hay chỉ đang vá danh tiếng của họ? Kẻ tấn công không bao giờ vội vã; họ chỉ kiên nhẫn hơn chúng ta tưởng. Và trong một thị trường tăng, sự kiên nhẫn đó được đền đáp bằng sự lãng quên. Ở Việt Nam, nơi cộng đồng đầu tư crypto đang ngày càng lớn, những sự kiện kiểu này thường bị xem nhẹ — trừ khi nó liên quan trực tiếp đến token mà họ đang cầm. Nhưng sự chủ quan chính là kẻ thù lớn nhất. Nhà đầu tư nên học cách đọc lịch sử các địa chỉ ví trước khi tin vào một câu chuyện tăng giá.
Nhưng đây là điều khiến tôi trăn trở. Chúng ta nhìn vào Tornado Cash và thấy một công cụ tội phạm. Phản ứng tự nhiên là đòi cấm, đòi trừng phạt, đòi "làm sạch" hệ sinh thái. Tôi đã từng nghĩ như vậy. Nhưng sau khi làm việc với các nhà hoạt động dân sự ở những quốc gia có chính phủ độc tài, tôi nhận ra một sự thật khó chịu: cùng một giao thức, cùng một dòng code, nhưng lại là phao cứu sinh của những người đang chạy trốn sự đàn áp. Họ không rửa tiền. Họ chỉ muốn gửi tiền cho gia đình mà không bị nhà nước theo dõi. OFAC đã chọn cách đơn giản nhất: liệt kê toàn bộ giao thức vào danh sách đen. Giống như việc cấm tất cả các con dao vì có người dùng chúng để giết người. Kết quả là gì? Kẻ tấn công vẫn dùng Tornado Cash. Còn những người cần quyền riêng tư hợp pháp thì mất đi công cụ cuối cùng.
Trong vai trò DAO Governance Architect, tôi đã thiết kế các cơ chế bỏ phiếu để chống lại sự tập trung quyền lực từ những cá voi nắm giữ token. Nhưng sự kiện này cho tôi một bài học khác: sự phi tập trung không chỉ là về quyền lực, mà còn về trách nhiệm. Khi một giao thức không có bất kỳ cơ chế nào để ngăn chặn việc sử dụng xấu, nó không phải là phi tập trung — nó là vô trách nhiệm. Và cái giá của sự vô trách nhiệm đó, như chúng ta đang thấy, không bao giờ do những kẻ tấn công trả. Nó do toàn bộ hệ sinh thái gánh chịu.
Cuối cùng, tôi tin rằng cuộc chiến thực sự không nằm ở việc cấm hay không cấm Tornado Cash. Nó nằm ở việc xây dựng những công cụ privacy có trách nhiệm — cho phép kiểm toán có chọn lọc, cho phép một bên thứ ba xác minh rằng bạn không rửa tiền mà không cần phơi bày toàn bộ đời tư tài chính. Nếu chúng ta không làm điều đó, những kẻ rửa tiền sẽ luôn dẫn trước một bước. Và những người cần quyền riêng tư thực sự — những người không làm gì sai — sẽ tiếp tục trả giá cho tội lỗi của kẻ khác. Trên blockchain, sự minh bạch là một lời nói dối nếu bạn không đọc được mã nguồn. Nhưng mã nguồn cũng là một lời nói dối nếu bạn không hiểu được con người đang vận hành nó.