Mã thông báo Honeypot là một loại tiền điện tử độc hại được tạo bởi các nhà phát triển cố tình chèn các hạn chế hoặc cửa hậu vào hợp đồng thông minh. Điều này cho phép người dùng thông thường mua mã thông báo nhưng ngăn họ bán nó (hoặc khiến việc bán phải chịu mức phí cực cao/cơ chế danh sách đen), bẫy tiền của họ trong ví một cách hiệu quả. Nhìn bề ngoài, những token như vậy có vẻ hợp pháp — chúng có thể có các cặp thanh khoản, logo token và hoạt động quảng bá cộng đồng tích cực — nhưng khi người dùng mua token trên một sàn giao dịch phi tập trung, họ sẽ sớm phát hiện ra rằng việc bán bị từ chối hoặc phí giao dịch quá cao đến mức không thể thu hồi được khoản đầu tư của họ.
Cách tránh thua lỗ và cách kiểm tra
Bạn có thể nhập địa chỉ hợp đồng của mã thông báo vào trình khám phá blockchain, chẳng hạn như OKLINK (như trong ví dụ bên dưới). Nếu mã thông báo là Honeypot, nó thường sẽ được đánh dấu tương ứng.
2. Vì các mã thông báo mới được tung ra trên blockchain mỗi ngày và người khám phá có thể không cập nhật kịp thời nên bạn có thể thực hiện tự kiểm tra thủ công bằng các phương pháp sau.
Kiểm tra trong tab Hợp đồng đã đọc:
owner() — Nếu nó trả về một giá trị khác 0x000..., điều đó có nghĩa là chủ sở hữu vẫn có quyền kiểm soát.
totalSupply() và balanceOf() — Xác minh việc phân phối mã thông báo ban đầu.
Hãy tìm các hàm hoặc biến như isExcludedFromFee(address), isBlacklist(address), maxTxAmount() và tradingEnabled() (các hợp đồng khác nhau có thể sử dụng các tên khác nhau nhưng chúng phục vụ các mục đích tương tự).
Trong tab Viết hợp đồng (chỉ có thể truy cập nếu bạn có quyền):
Kiểm tra xem có các chức năng ghi nhạy cảm như setFeePercent, setBlacklist, từ bỏ quyền sở hữu hoặc setTradingEnabled. Nếu những điều này tồn tại và chỉ chủ sở hữu mới có thể gọi thì mã thông báo sẽ có rủi ro cao.
Tìm kiếm mã nguồn cho các từ khóa sau (không phân biệt chữ hoa chữ thường hoặc có dấu gạch dưới): danh sách đen, isBot, onlyOwner, setFee, maxTx, excludedFromFee, trading, swapAndLiquify, transferFrom, approve, mint, burn, từ bỏ quyền sở hữu, thanh khoản.
Đặc biệt chú ý đến việc triển khai transfer, _transfer và transferFrom — kiểm tra xem chúng xử lý to == pair hay from == pair theo cách khác nhau (để phân biệt giữa hoạt động mua và bán).
Nếu bạn tìm thấy mã như
require(!_isBlacklist[from]); if (đến == cặp) { phí = 99; }
đây là cờ đỏ rõ ràng.
Kiểm tra xem hợp đồng có gọi bộ định tuyến (ví dụ: Bộ định tuyến Pancake/Uniswap) hay không và liệu quy trình swap có bao gồm logic phức tạp như lockTheSwap hoặc _tax hay không, điều này có thể ngăn cản việc hoán đổi thông thường.

