Honeypot mã thông báo là một loại tiền điện tử có các hạn chế độc hại. Các nhà phát triển sẽ cố tình thêm các hạn chế hoặc cửa hậu vào hợp đồng thông minh để người dùng thông thường có thể Mua mã thông báo, nhưng không bình thường bán hoặc gặp phải mức phí cực cao, danh sách đen và các hạn chế khác khi bán, do đó khiến tiền bị mắc kẹt trong mã thông báo. Nhìn bề ngoài, loại mã thông báo này có thể trông bình thường: có nhóm thanh khoản, logo mã thông báo và hoạt động quảng bá cộng đồng tích cực. Nhưng một khi người dùng mua trên một sàn giao dịch phi tập trung, họ có thể thấy rằng giao dịch mua bán bị từ chối hoặc phí giao dịch cao đến mức gần như không thể lấy lại được tiền.
Cách kiểm tra và giảm thiểu rủi ro
bạn có thể OKLINK Đợi trình duyệt chuỗi khối nhập địa chỉ hợp đồng mã thông báo (như trong ví dụ bên dưới). Nếu mã thông báo đã được xác định là honeypot thì nó thường sẽ được đánh dấu tương ứng.
2. Vì trên chuỗi sẽ có mã thông báo mới trực tuyến mỗi ngày nên dấu rủi ro của trình duyệt chuỗi khối có thể không bao gồm tất cả mã thông báo trong thời gian thực, vì vậy bạn cũng có thể thực hiện tự kiểm tra thủ công thông qua phương pháp sau.
Xem tab "Đọc hợp đồng":
owner(): Nếu giá trị trả về không 0x000..., thường có nghĩa là chủ sở hữu hợp đồng giữ quyền kiểm soát.
totalSupply() và balanceOf(): Được sử dụng để kiểm tra phân bổ 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 mục đích của chúng thì giống nhau).
Trong tab "Viết hợp đồng" (chỉ truy cập được nếu bạn có Quyền):
Kiểm tra sự hiện diện của các chức năng ghi nhạy cảm, ví dụ: setFeePercent, setBlacklist, renounceOwnership hoặc setTradingEnabled. Nếu các chức năng này tồn tại và chỉ chủ sở hữu hợp đồng mới có thể gọi thì rủi ro mã thông báo sẽ cao hơn.
Tìm kiếm các từ khóa sau trong mã nguồn (không phân biệt chữ hoa chữ thường, bạn cũng có thể chú ý đến phần viết được gạch chân): blacklist, isBot, onlyOwner, setFee, maxTx, exclusionFromFee, trading, swapAndLiquify, transferFrom, approve, mint, burn, renounceOwnership, liquidity.
đặc biệt chú ý transfer,_transfer và transferFrom triển khai, kiểm tra xem liệu chúng có nhắm mục tiêu đến == cặp hoặc từ cặp == Sử dụng logic 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ư thế này:
require(!_isBlacklist[from]); if (đến == cặp) { phí = 99; }
đây là một Cờ đỏ rõ ràng.
Kiểm tra xem hợp đồng có gọi bộ định tuyến không(chẳng hạn như Bộ định tuyến Pancake/Uniswap) và liệu quá trình hoán đổi có bao gồm lockTheSwap,_tax và logic phức tạp khác. Những logic này có thể cản trở các giao dịch bình thường.

