Khai thác hợp đồng thông minh lợi dụng lỗi trong mã, thiết kế kinh tế, quyền hoặc phụ thuộc bên ngoài để tạo kết quả ngoài ý muốn — thường là rút hoặc đóng băng tài sản. Nó khác trộm khóa thông thường vì kẻ tấn công có thể dùng các quy tắc hợp lệ của hợp đồng theo một trình tự bất ngờ.
Bắt đầu từ mô hình rủi ro#
Các lớp lỗi phổ biến gồm kiểm soát truy cập sai, thao túng oracle giá, reentrancy, sai kế toán, nâng cấp không an toàn và khóa quản trị bị chiếm. Tổn thất nhìn thấy có thể chỉ là bước cuối của một chuỗi phụ thuộc hỏng lâu hơn.
Lần kiểm tra quyết định#
Người dùng nên đánh giá khả năng cô lập và quyền lực: giao thức có thể tạm dừng, nâng cấp hoặc phục hồi tài sản không, và ai kiểm soát các quyền đó? Cùng một kiểm soát có thể giảm hoặc tạo thêm rủi ro.
Thực hiện theo từng bước#
- Xác định hợp đồng và phiên bản triển khai bị ảnh hưởng. Kiểm tra đúng mạng, địa chỉ proxy và implementation; đừng suy rộng từ tên dự án.
- Tạm dừng tương tác và thu hồi approval liên quan nếu nguồn đã xác minh khuyến nghị. Dùng công cụ chính thức và đọc từng giao dịch thu hồi trước khi ký.
- Kiểm tra sự cố nằm ở front end, hợp đồng hay khóa quản trị. Biện pháp ứng phó khác nhau: trang web bị chiếm không nhất thiết nghĩa hợp đồng hỏng, và ngược lại.
- Theo dõi cập nhật sự cố chính thức và lưu bằng chứng giao dịch. Giữ mã giao dịch, địa chỉ, thời gian và thông báo nguyên bản để có thể tái hiện kết luận.
- Không tin liên kết hoàn tiền hoặc phục hồi được gửi bất ngờ. Kẻ gian thường lợi dụng lúc hỗn loạn để phát tán trang migration và claim giả.
Những chỗ người dùng thường mắc sai lầm#
- Cho rằng một cuộc kiểm toán đã bao phủ mọi phụ thuộc. Báo cáo có phạm vi, phiên bản và thời điểm cụ thể; oracle, bridge hoặc khóa quản trị có thể nằm ngoài phạm vi.
- Nạp thêm trong lúc sự cố chưa rõ để lấy lợi suất cao. Phần thưởng tăng có thể phản ánh rủi ro hệ thống chưa được giải quyết.
- Ký “di chuyển khẩn cấp” từ liên kết trong phần trả lời mạng xã hội. Hãy tự mở kênh chính thức và xác minh hợp đồng đích.
- Nhầm thua lỗ thị trường với lỗi mã. Giá giảm không tự chứng minh hợp đồng bị khai thác; cần bằng chứng on-chain và phân tích kỹ thuật.
Kết quả an toàn không chỉ là giao dịch đã hoàn tất, mà là trạng thái bạn có thể tự xác minh, tái hiện và phục hồi nếu dịch vụ xung quanh thất bại.
Xác nhận kết quả#
Đừng chỉ dựa vào thông báo trên giao diện. Hãy dùng bằng chứng có thể kiểm tra sau khi đóng trang.
| Điểm kiểm tra | Bằng chứng | Điều kiện phải dừng |
|---|---|---|
| Xác định hợp đồng và phiên bản bị ảnh hưởng | Địa chỉ và URL khớp tài liệu chính thức | Giả định kiểm toán bao phủ mọi phụ thuộc |
| Dừng tương tác và thu hồi quyền theo nguồn xác minh | Mã giao dịch cùng bản ghi trình khám phá | Nạp thêm khi sự cố chưa giải quyết để lấy lợi suất |
| Kiểm tra front end, hợp đồng hay khóa quản trị bị ảnh hưởng | Địa chỉ và thông báo sự cố chính thức có ngày | Liên kết “migration khẩn cấp” đến từ trả lời xã hội |
Hãy giữ mã giao dịch, mã hồ sơ chính thức hoặc ảnh chụp có ngày khi hữu ích, nhưng loại bỏ cụm từ khôi phục, khóa riêng tư và mã xác thực.
Câu hỏi thường gặp#
Hợp đồng bị khai thác có thể vá không?
Hệ thống có thể nâng cấp có thể được thay đổi, còn triển khai bất biến có thể phải migration. Khả năng phục hồi phụ thuộc thiết kế và quyền kiểm soát còn lại.
Mã nguồn mở có ngăn lỗ hổng không?
Không. Nó cho phép xem xét nhưng không bảo đảm mọi lỗi hoặc tương tác kinh tế đều được phát hiện.
Có nên thu hồi approval sau sự cố không?
Nếu bên được cấp quyền có thể lợi dụng nó, thu hồi giúp giảm phơi nhiễm tương lai; hãy xác minh mạng và hướng dẫn chính thức.
Hướng dẫn liên quan#
Nguồn tham khảo#
- Ethereum.org: Bảo mật hợp đồng thông minh
- OWASP: 10 rủi ro hàng đầu của hợp đồng thông minh
- Uniswap Support: Quyền phê duyệt token
Cảnh báo rủi ro: Giao dịch crypto có thể không thể đảo ngược. Không bao giờ chia sẻ cụm từ khôi phục, khóa riêng tư, mật khẩu hoặc mã xác thực; luôn tự kiểm tra tên miền và yêu cầu từ ví qua kênh độc lập.
Tiêu chuẩn biên tập
Bài viết mang tính giáo dục và dựa trên nguồn đáng tin cậy. Biện pháp bảo mật, quy định của sàn và yêu cầu pháp lý có thể thay đổi; hãy kiểm tra nguồn chính thức trước khi hành động.