Jakarta khai sáng, giờ là lúc xây dựng. Nhưng trước khi xây, tôi muốn kể bạn nghe một câu chuyện về 5.748 tỷ USD đã biến mất âm thầm.
Con số đó không đến từ một vụ hack hoành tráng hay một rug pull kịch tính. Nó đến từ 65.340 trường hợp mà các nhà nghiên cứu tại Đại học Trung Sơn, Chiết Giang và Bắc Kinh vừa công bố. Họ gọi đó là “address misuse” – lạm dụng địa chỉ. Một lỗi ngớ ngẩn đến mức ai cũng có thể mắc phải: gửi tiền vào địa chỉ hợp đồng không có code trên mainnet, hoặc vào địa chỉ có private key đã bị lộ.
Bạn nghĩ mình an toàn? Hãy nghĩ lại.
Uniswap: nơi tôi thấy DeFi thật sự sống. Nhưng cũng chính Uniswap là nơi hé lộ một trong những cạm bẫy tinh vi nhất. Hãy tưởng tượng: bạn là một developer, đang test contract trên Sepolia testnet. Bạn dùng địa chỉ router Uniswap V2 – một địa chỉ phổ biến, được xem hơn 102.000 lần trên Stack Exchange. Sau đó, trên mainnet, bạn vô tình gửi ETH vào chính địa chỉ đó. Giao dịch thành công. Nhưng không có hợp đồng nào ở đó. Tiền của bạn chỉ nằm im trong một smart contract không có code – không thể rút, không thể chuyển. Vĩnh viễn.
Đó không phải chuyện đùa. Nghiên cứu phát hiện 22.738,41 ETH và 8.681,41 BNB đã bị khóa vĩnh viễn vì gửi nhầm vào contract address (CA) trống. Còn 104.224,53 ETH và 9.045,29 BNB nữa đã mất vì gửi vào externally owned address (EOA) mà private key đã bị lộ qua GitHub, forum hay Pastebin. Tổng cộng: 5.748 tỷ USD.
Tôi nhớ năm 2020, lần đầu swap 30 USDC trên Uniswap, cảm giác kiểm soát tài chính thật tuyệt. Nhưng nếu tôi gửi nhầm địa chỉ, số tiền đó sẽ biến mất. Và tôi sẽ không bao giờ biết tại sao. Đó là nỗi sợ thầm lặng của hàng ngàn người dùng.
Hãy đi sâu vào kỹ thuật. Nhóm nghiên cứu đã quét 2,5 triệu giao dịch, kiểm tra hơn 10 triệu địa chỉ ứng viên và 16 triệu private key lộ. Hệ thống phát hiện của họ đạt độ chính xác 99,11%. Họ phân loại hai dạng chính:
- Contract Address (CA) Misuse: Gửi token hoặc ETH vào địa chỉ hợp đồng không có code trên mainnet, nhưng có thể có code trên testnet. Người dùng tưởng giao dịch thành công, nhưng hợp đồng không tồn tại, tiền mắc kẹt.
- Externally Owned Address (EOA) Misuse: Gửi vào địa chỉ có private key đã bị lộ. Kẻ tấn công có thể rút tiền ngay lập tức. Họ tìm thấy 15.996 địa chỉ EOA với private key lộ – thường do developer vô tình commit lên GitHub.
Nhưng điều đáng sợ nhất là cross-chain address reuse. Kẻ tấn công đã phát hiện một lỗ hổng: khi bạn gửi tiền vào một địa chỉ trên Ethereum mà địa chỉ đó trên BNB Chain lại trống, họ sẽ chủ động deploy một contract độc hại lên đó để hút tiền. 469 trường hợp như vậy đã được ghi nhận, với 3.446,37 ETH và 431,79 BNB bị đánh cắp.
Và EIP-7702? Đây là một cập nhật mới cho phép tài khoản ủy quyền thực thi cho smart contract. Nghe hay đấy, nhưng nếu private key của bạn bị lộ, kẻ tấn công có thể “chiếm quyền” tài khoản của bạn và tự động chuyển hướng mọi khoản tiền gửi đến. Nghiên cứu phát hiện 17.270 trường hợp liên quan. Đây là một bề mặt tấn công mới, đang phát triển nhanh.
Tôi thường nghe mọi người nói: “DeFi không an toàn vì smart contract có bug.” Sai lầm. Nguy hiểm thực sự không phải từ code, mà từ chính chúng ta. Hành vi. Sự thiếu hiểu biết. Sự lười biếng. Trong bear market 2022, tôi đã dành 3 tháng học Cairo và ZK-Rollups, nhưng không ai dạy tôi cách kiểm tra địa chỉ trước khi gửi. Đó là lỗ hổng phổ biến nhất.
Đây là góc nhìn phản trực giác: Thị trường đang tập trung vào bảo mật hợp đồng, nhưng bỏ qua bảo mật địa chỉ. Các ví như MetaMask, Trust Wallet, Rabby đều cảnh báo khi bạn tương tác với contract lạ, nhưng không cảnh báo khi bạn gửi tiền vào một địa chỉ không có code. Họ nên làm điều đó. Nghiên cứu này là một lời kêu gọi: hãy tích hợp cảnh báo “địa chỉ trống” hoặc “private key lộ” vào giao diện ví. Nếu 99,11% độ chính xác là đủ để cứu hàng tỷ USD, thì tại sao chưa ai làm?
Blockaid, một công ty bảo mật, báo cáo 212 vụ tấn công trong nửa đầu 2026, thiệt hại 11 tỷ USD. Con số đó cộng với 5.748 tỷ USD từ lạm dụng địa chỉ cho thấy một bức tranh toàn cảnh: chúng ta đang mất tiền theo hai cách hoàn toàn khác nhau. Một là bị hack, hai là tự mình ném tiền qua cửa sổ.
Là một Open Source Evangelist, tôi tin rằng giải pháp không phải là kiểm soát tập trung, mà là công cụ minh bạch và giáo dục. Hãy tưởng tượng một tương lai nơi mỗi ví bạn dùng đều hiển thị: “Địa chỉ này không có hợp đồng trên mainnet. Gửi tiền sẽ mất vĩnh viễn.” Hoặc: “Private key của địa chỉ này đã bị rò rỉ. Không nên sử dụng.” Điều đó không khó. Chỉ cần một dòng code và một ít dữ liệu on-chain.

Tôi sẽ không nói “hãy cẩn thận”. Ai cũng biết điều đó. Tôi nói: hãy yêu cầu ví của bạn cập nhật. Hãy tự kiểm tra trước khi gửi. Hãy dùng Etherscan để xem contract code có tồn tại không. Hãy dùng các công cụ như Revoke.cash để kiểm tra phê duyệt. Nhưng trên hết, hãy nhận ra rằng: một giao dịch thành công không có nghĩa là bạn đã làm đúng.
Jakarta khai sáng, giờ là lúc xây dựng. Tôi đã thấy điều này từ năm 2017, tại meetup Ethereum đầu tiên ở Jakarta. Một bài giảng về smart contract đã mở mắt tôi: blockchain không chỉ là code, mà là trao quyền. Nhưng trao quyền cũng đi kèm trách nhiệm. Và trách nhiệm đó không nên đặt hết lên vai người dùng. Công cụ phải thông minh hơn.
Uniswap: nơi tôi thấy DeFi thật sự sống. Nhưng cũng là nơi tôi thấy những dòng ETH chết yểu trong địa chỉ không có hợp đồng. Tôi mong một ngày, mỗi lần swap, ví sẽ nhắc tôi: “Bạn có chắc địa chỉ này có thể nhận tiền không?”

Và câu trả lời sẽ là “Có” – không phải vì tôi tin, mà vì tôi đã kiểm tra.