
Reentrancy được giải mã – Lỗi hợp đồng thông minh vẫn đang làm cạn hàng triệu đô la vào năm 2026, và mẫu hình Checks-Effects-Interactions giúp ngăn chặn nó trong mã nguồn Reentrancy không phải là phép màu. Đó là một lỗi về thứ tự: hợp đồng của bạn cập nhật trạng thái của chính nó SAU khi thực hiện một lời gọi bên ngoài thay vì trước đó, và kẻ tấn công gọi lại trong khoảng thời gian đó. Sửa lại thứ tự và lỗi sẽ biến mất. DAO đã mất khoảng 3,6 triệu ETH (khoảng 60 triệu USD, tương đương khoảng 5% tổng số ETH đang lưu hành lúc đó) do lỗi chính xác này vào ngày 17 tháng 6 năm 2016. Hậu quả dẫn đến việc chia Ethereum thành ETH và ETC. Mười năm sau, nó vẫn đang làm cạn nguồn vốn. Solv Protocol đã mất 2,73 triệu USD do reentrancy vào ngày 5 tháng 3 năm 2026, và khoảng 52 triệu USD đã bị đánh cắp trên các giao thức onchain trong tháng 5 năm 2026 (DeFiLlama qua CryptoTimes, ngày 31 tháng 5 năm 2026). Mẫu hình dễ bị tấn công: đọc số dư, gửi ETH bằng lời gọi cấp thấp, SAU ĐÓ mới đặt số dư về không. Hàm receive() của kẻ tấn công tái nhập vào withdraw() trước khi giá trị không được ghi, và lặp lại cho đến khi hợp đồng trống rỗng. Hai biện pháp khắc phục, nên sử dụng kết hợp: Checks-Effects-Interactions. Xác minh, cập nhật TẤT CẢ trạng thái, sau đó thực hiện lời gọi bên ngoài CUỐI CÙNG. Di chuyển balances[msg.sender] = 0 lên trên lời gọi, khi đó lời gọi tái nhập sẽ đọc giá trị bằng không và bị hủy bỏ. Bộ bảo vệ nonReentrant của OpenZeppelin. Một mutex lưu trữ (NOT_ENTERED sang ENTERED) sẽ hủy bỏ khi có tái nhập. Hãy sử dụng cả hai, không chỉ một trong hai. Hai điều mà hầu hết các nhà phát triển vẫn đang sai lầm. 1. .transfer() không còn là lá chắn: khoản gas 2300 không còn là giả định an toàn kể từ khi EIP-1884 tăng chi phí SLOAD vào năm 2019. Hãy dùng .call{value:}("") kết hợp với CEI. 2. Reentrancy chỉ đọc có thể vượt qua bộ bảo vệ tiêu chuẩn, vì hàm view đọc giữa quá trình cập nhật sẽ trả về trạng thái bị hỏng và có thể làm nhiễu oracle giá (dForce, 3,64 triệu USD). Chỉ mang tính chất giáo dục. Không phải lời khuyên tài chính. Theo dõi để nhận insights hàng ngày – nơi blockchain gặp gỡ AI, từng lần vuốt nhẹ đầy hứng thú. #Solidity #SmartContractSecurity #Web3Security #Ethereum #DeFi #SmartContracts #BlockchainDeveloper #SolidityDev #EVM #OpenZeppelin #Reentrancy #Web3Dev #BlockchainSecurity #DeFiSecurity #SmartContractAudit #CodeSecurity #OnChain #BlockchainEducation


