Как проверить смарт контракт на скам
Перейти к содержимому

Как проверить смарт контракт на скам

  • автор:

Проверяем смарт-контракт BCS на «скамность»

Перед покупкой монеты на PancakeSwap обязательно нужно проверить �� проект, чтобы не нарваться на очередной скам. К слову сказать, на PancakeSwap каждый день размещается всякий шлак, потому что сам панкейк никак не проверяет размещаемые у него монеты.

�� И тут приходит на помощь очень простой сервис https://bscheck.eu/bsc/. Тут вы увидите: сколько холдеров, когда был создан контракт, инфо про создателя контракта, текущий пул ликвидности.

Пользуемся на здоровье! ��

Больше важного и полезного контента по крипте в телегрма-канале @DeeCryptos

Free Smart Contract Audit Tools For Investors

Cyberscope

Blockchain technology and smart contracts are booming. By 2025 industry experts predict that 50% of all business will be conducted on the blockchain. But with great growth comes a wealth of new problems and vulnerabilities. One major issue that most new investors face is how to actually look at the smart contract code they are investing in, and they need tools to help them. If you’re an investor looking to get into the ICO market, there are some incredibly powerful tools out there that let you see — without a doubt — what you’re investing in. We’ve put together the top free smart contract audit tools to help you with your research.

1. Cyberscan

Cyberscan is a convenient tool that helps investors to quickly gain insight into a given cryptocurrency token. The tool is very simple and easy to use, all you need to do is paste the smart contract address to the related field, click on the blockchain network from the dropdown, and press Search. Then you get to see a full report from the smart contract analysis, as well as some key indicators like if the contract ownership is present or renounced, if the contract is a proxy and if there is an audit or KYC attached to that contract amongst others. Finally, you can see the similarity of the code of your contract versus popular forks. This will help you understand if it’s minted from a specific platform and how unique it is.

2. Safescan

Safescan is an AML (Anti Money Laundering) and KYC tool for wallets. The software is very easy to use, all you do is fill the address in the form and click “Search”. The tool will then start processing and running background checks on the address provided. It will review all the transactions of the address and how it interacted with various suspicious other wallets, then cross-reference it with CEX hot wallets, popular bridges, tornado cash, and other similar money laundering applications. Safescan also cross-checks the given wallet with a database that contains more than 30k blacklisted and suspicious wallets.

The final analysis report shows all the related findings to the user in order to help him understand some of the wallet's past history. It is a great tool to help investors check the past transactions of the project team to make sure there are not any suspicious activities.

3. ScamSniper

Scamsniper is a tool developed by Coinsniper and helps you do a quick review of crypto tokens before investing. It has indicators like honeypot checks, liquidity checks and checks if there are any available audits for the token.

4. CoinTool Audit Contract

CoinTool Audit Contract runs some automated checks on a given smart contract and displays any potential security risk findings. The software checks a number of things such as if the token has anti-whale mechanisms, blacklist functions, mint functions, etc. The user can also download a pdf report with the findings.

5. Honeypot.is

Honeypot.is is another free tool that checks (I am sure you guessed it already) if a smart contract is a honeypot or not.

6. Token Sniffer

Token Sniffer gives you an automated free audit report with a score that is a measure of how well the token contract and characteristics meet the criteria for safety. This site also scans contracts for known scams, computes helpful token metrics, and maintains a list of scams.

7. BSC Check

BSC Check is yet another free software that gives you information on a given smart contract address. It has useful information about the holders of a given token that will give you a good idea on whether a project is really decentralised or not.

Conclusion

The smart contract space is new, exciting, and potentially quite profitable. But with great opportunity comes great risk — and in the world of cryptocurrency, that risk can be both financial and reputational. The good news? Investors can use the resources we’ve identified above to familiarize themselves with this new technology and make better decisions in the process.

These free smart contract audit tools and software will help investors make more informed decisions about their investments but are not by no means a replacement for an actual smart contract audit. If you are looking for an extensive and thorough smart contract audit by a respected audit firm don’t hesitate to reach out to us.

Cyberscope is one of the leading smart contract audit & KYC firms in the crypto industry having audited more than 500+blockchain projects and NFTs. Official partner of all major launchpads.

Join Coinmonks Telegram Channel and Youtube Channel learn about crypto trading and investing

Как проверить смарт-контракт на скам?

По мере того, как быстро развивается рынок децентрализованных финансов (DeFi), все больше происходит случаев мошенничества со стороны разработчиков проектов, нацеленных на быстрое извлечение прибыли за счет доверчивых новичков.

В данной статье мы хотим рассмотреть инструменты, которые позволят пользователю обнаружить откровенный скам или хотя бы вызвать определенные подозрения к рассматриваемому проекту до того, как он приобретет токен.

В интернете есть множество таких инструментов анализа, но мы рассмотрим некоторые из них:

  1. Token Sniffer (поддерживает сети Ethereum и BNB Chain).
  2. BSCheck (поддерживает сети Ethereum, BNB Chain, Polygon, Fantom, DogeChain).

Каждый из этих инструментов имеет свои положительные и отрицательные стороны, но используя их параллельно, можно добиться хороших результатов при анализе смарт-контракта.

Для того, чтобы проверить смарт-контракт токена, вам необходимо найти его блокчейн-адрес (как узнать смарт-контракт токена?).

Обзор Token Sniffer

Token Sniffer — это инструмент для анализа смарт-контрактов, разработанный компанией Solidus Labs. Поддерживает работу с сетями Ethereum и BNB Chain и может обнаружить основные признаки мошенничества, заложенные в смарт-контракт токена.

Для проверки перейдите на страницу Token Sniffer и введите в поле поиска адрес смарт-контракта.

Как проверить смарт-контракт на скам при помощи Token Sniffer?

Для наглядного примера мы использовали контракт поддельного токена ShibaVerse (0xbb92b9d18db99c3695bc820bf2c876d4b1527fa5), который злоумышленники рассылали пользователям в виде аирдропа.

Результат следующий:

Результаты сканирования смарт-контракта в Token Sniffer

Если определенный пункт проверки прошел успешно, то он помечается зеленой галочкой, если найдена проблема, то красным крестиком.

  • Token is sallable (not a honeypot)… — в данном случае пункт не пройден, а значит данный токен не возможно будет продать (на этом пункте можно останавливаться и дальше даже не рассматривать такой токен, это однозначный скам).
  • Verified contract source — исходный код смарт-контракта не был загружен на BSCScan, а значит разработчик скрывает логику своего кода (стоит задуматься).
  • Ownership/creator wallet… — разработчик контракта не отказался от владения, что позволяет ему в любой момент менять логику смарт-контракта (в некоторых случаях это может быть допустимо, но стоит задуматься).

Далее идут менее важные пункты проверки, которые в некоторых случаях могут быть помечены красным, но не обязательно будут говорить о мошенничестве, а быть только предупреждением о не надежности проекта.

Обзор BSCheck

BSCheck — инструмент для анализа смарт-контрактов, который имеет меньше возможностей для проверки, чем Token Sniffer, но работает с большим количеством сетей (BNB Chain, Ethereum, Polygon, Fantom и DogeChain) и показывает комиссию, взымаемую с пользователя при покупке и продаже токена.

Для проверки перейдите на страницу BSCCheck и введите в поле поиска адрес смарт-контракта.

Как проверить смарт-контракт на скам в BSCheck?

Для наглядного примера мы использовали контракт заведомо мошеннического проекта Snowfall Protocol (SNW) (0x8aa19e10d52817cacba5ee066eff38330c900223).

Результат следующий:

Результаты сканирования смарт-контракта в BSCheck

Как видим, при покупке или продаже токена, с пользователя будет взыматься дополнительная комиссия в размере 2% (при покупке) и 8,7% (при продаже).

Но кроме этого, обращаем внимание на следующее:

  • DEV Wallets Info — кошельки владельца контракта содержат 61,09% от всей эмиссии токенов и в любой момент может их продать (стоит задуматься).
  • Token Owner — разработчик контракта не отказался от владения, что позволяет ему в любой момент менять логику смарт-контракта (в некоторых случаях это может быть допустимо, но стоит задуматься).
  • Top Holders Info — 5 адресов содержат почти всю эмиссию токенов и в любой момент могут их продать (стоит задуматься).

Заключение

Как видите, вариантов мошенничества может быть не мало и они часто могут быть завуалированы. В любом случае, прежде, чем покупать токен любого проекта, постарайтесь его тщательно изучить, ознакомиться с социальными сетями проекта, узнать, проходил ли проект аудит известными компаниями по блокчейн-безопасности.

Если же вы уже успели взаимодействовать при помощи своего кошелька с проектом, к которому имеются подозрения о мошенничестве, обязательно отзовите разрешение на трату средств (Approve) для данного смарт-контракта (как снять апрувы со своего кошелька?)

Как проверить смарт контракт на скам

1. Почему вы обязаны это прочитать

Большинству людей в сфере DeFi приходилось сталкиваться с мошенническими токенами, которые выпускаются с целью завлечь туда как можно больше людей. Давайте рассмотрим, какие методы используют мошенники, чтобы обманывать неопытных пользователей, и внедрим некоторые правила – как самому не попасться в руки злоумышленника и не спонсировать его на «новую яхту». В данной инструкции будут рассмотрены различные способы и уловки мошенника, на которые люди попадаются изо дня в день.

Для начала разберем, что такое смарт-контракт. Зачастую злоумышленники используют уловки, так как в код смарт-контракта можно «зашить» пару строк, которые по определению будут разделять обычные токены от мошеннических.

Что такое смарт-контракт

Смарт-контракт – это своего рода алгоритм определенных действий, интегрированный в код блокчейна. При соблюдении установленных договоренностей, которые в нем прописаны, выполняется автоматический запуск последовательности.

Поэтому обязательно нужно понимать, что в нем происходит, так как при выполнении той или иной операции запускается алгоритм действий, который невозможно предотвратить. Было ли у вас такое, что вы купили токены, но не смогли их продать, либо же при вызове функции «approve» у вас сразу же списывали все средства с кошелька? Неважно, какой будет ответ на данный вопрос, наша цель – обезопасить себя на будущее, чтобы больше не терять свои средства. Мы уверены, никто не хочет потерять лишние $, ведь для них можно найти лучшее применение, чем просто выкинуть их на ветер. Данный метод мошенничества является одним из самых распространенных и будет рассмотрен по ходу инструкции.

Смарт-контракт представляет собой совокупность блоков кода, каждый из которых отвечает за те или иные действия при вызове различных функций. Например, блок описания интерфейса (interface IERC20), блок описания контракта (contract 0wnable), блок описания библиотек (library SafeMath) и т. д.

Обращаем ваше внимание, что все примеры будут взяты из первого попавшегося смарт-контракта, поэтому некоторые блоки могут отличаться в различных монетах/токенах, но они нам и не нужны. Главное – понять суть и дальше с этим работать. Не переживайте, при внимательном прочтении любой человек сможет понять и впоследствии отфильтровывать скам-токены. Именно для этого написана эта инструкция – с целью, чтобы каждый человек понял и применял прочитанное на практике!

Следующая вещь, которую нужно понять, – в рамках контракта всегда существует основной контракт (contract BMON is IERC20, 0wnable), а все остальные контракты являются вспомогательными. Блоки кода, которые мы упоминали ранее, а именно – блок описания интерфейса, контракта, библиотек – все это является подключаемой частью основного контракта. В основном эти блоки всегда одни и те же.

Если вы будете периодически анализировать код смарт-контракта, то впоследствии сможете сразу определить, какие блоки в него включены и что в целом от него ждать.

Функции смарт-контракта могут быть вызваны извне (с кошелька любого пользователя или из другого контракта). Они делятся на две группы:

  1. Вызов функций первой группы не стоит газа и денег и не уходит дальше ближайшей ноды, к которой мы подключены (пример: BalanceOf, TotalSupply, Allowance и др.). В BSC scan эти функции перечислены во вкладке «READ».
  2. Вызов функций второй группы превращается в полноценную транзакцию, которая майнится, включается в блок и результат, которой записывается в блокчейн (пример: Approve, Transfer, TransferFrom и др.). В BSC scan эти функции перечислены во вкладке «WRITE».

2. Рассмотрим код основного контракта на примере токена BMON

Не тратьте время на понимание каждой строки. Сейчас показаны отрывки из кода для наглядного примера, что он из себя представляет и какие основные блоки в него входят:

Любой контракт делится на:

  • Описание переменных контракта:
    1. string private constant _name = «Binamon»;
    2. string private constant _symbol = «BMON»;
    3. uint8 private constant _decimals = 18;
    4. uint256 private _totalSupply = 300 * 10**6 * 10**18;
    5. address public seedAndPresale;
    6. mapping(address => uint256) private balances;
    7. mapping(address => mapping (address => uint256)) private allowed;
    8. mapping(address => address) private boosterBuyingAllowed;
    9. // listing restrictions
    10. uint256 private restrictionLiftTime;
    11. uint256 private maxRestrictionAmount = 300 * 10**6 * 10**18;
    12. mapping (address => bool) private isWhitelisted;
    13. mapping (address => uint256) private lastTx;
    14. // end restrictions

  • Описание различных функций контракта: (в текстовом варианте представлен неполный код. Полный код смотрите на скрине):
    1. using SafeMath for uint256;
    2. enum State
    3. Locked,
    4. Restricted, // Bot protection for liquidity pool
    5. Unlocked
    6. State public state;
    7. constructor()
    8. state = State.Locked;
    9. balances[msg.sender] = _totalSupply;
    10. emit Transfer(address(0), msg.sender, _totalSupply);
    11. function name() public pure returns (string memory)
    12. return _name;
    13. function symbol() public pure returns (string memory)
    14. return _symbol;
    15. function decimals() public pure returns (uint8)
    16. return _decimals;
    17. function totalSupply() public override view returns (uint256)
    18. return _totalSupply;
    19. function balanceOf(address tokenOwner) public override view
    20. returns (uint256)
    21. return balances[tokenOwner]; и т. д.

Описание различных дополнительных инструментов, которые помогают функциям выполнять свою задачу

Сейчас в отдельности рассмотрим несколько кусков из разных блоков кода. Вы спросите, зачем. Это нужно для того, чтобы иметь общее и минимальное представление о коде. Таким образом, в будущем вы не будете теряться в новых контрактах, а сразу сможете находить нужную информацию.

3. Описание переменных

Тип переменной – он всегда идет первым словом. Здесь все довольно просто. Нужно понимать, что все это находится в блоке описания переменных:

  • string private constant _name = “Binamon”;
  • string private constant _symbol = “BMON”;
  • uint8 private constant _decimals = 18;
  • uint256 private _totalSupply = 300 * 10**6 * 10**18;
  • address public seedAndPresale;
  • mapping(address => uint256) private balances;
  • mapping(address => mapping (address => uint256)) private allowed;
  • mapping(address => address) private boosterBuyingAllowed;
  • address – это адрес сети блокчейна. Т. е. это либо адрес контракта, либо адрес какого-то кошелька;
  • mapping – конструкция mapping представляет из себя хэш-таблицу, в которой ключом является адрес (address => uint256). Как видим, название у этой переменной – balances. Т. е. мы можем понять, что в этой переменной balances хранится таблица внутренних держателей токенов.

Важно! Разобравшись с основными конструкциями, стоит подчеркнуть важную особенность. Представленные ниже строки в том или ином виде существуют в каждом смарт-контракте:

  • string private constant _name = “Binamon”;
  • string private constant _symbol = “BMON”;
  • uint8 private constant _decimals = 18;
  • uint256 private _totalSupply = 300 * 10**6 * 10**18.

Эти строки задают основные параметры смарт-контракта:

  • Имя токена: Binamon.
  • Символ токена: BMON.
  • Количество десятичных знаков токена: 18.
  • Общая эмиссия токена: 300 * 10**6 * 10**18.

Аналогично в том или ином виде вы увидите следующие строки в каждом смарт-контракте:

Строка mapping(address => uint256) private balances – отображает балансы всех адресов, которые хранят свои токены.

Строка mapping(address => mapping (address => uint256)) private allowed – нужна для того, чтобы можно было запустить TransferFrom от имени того же Pancake. Это необходимо, чтобы заапрувить этот адрес. Таким образом, он будет иметь возможность снимать деньги с вашего кошелька.

Итак, каждая переменная в контракте имеет свой тип, имеет свой модификатор (не обозревали его в данном блоке, это – public и private) и значение.

Описание функций

Перейдем к описанию функций. Нельзя сказать, что функции являются ключевой частью контракта, но в совокупности этот блок является самым важным.

Для начала отметим, что функции могут иметь модификаторы public и private. В предыдущем блоке мы намеренно не стали поднимать данный вопрос, чтобы пояснить его в блоке описания функций. Итак, если функция имеет модификатор private, то она будет видна только внутри контракта. Если функция имеет модификатор public, то, соответственно, данная функция видна снаружи, и мы можем ее увидеть. Точно такая же аналогия будет и в блоке описания переменных.

Как мы уже говорили ранее, все функции в контракте делятся на две большие группы:

  • Первая группа – те, которые НЕ меняют состояние блокчейна, а только читают из текущего состояния, и запрос на эту функцию в контракте не уходит дальше ближайшей ноды – эти функции видны у нас во вкладке «READ».
  • Вторая группа – функции, которые проходят через нормальную цепочку майнинга, как стандартная транзакция, включаются в блок, в цепочку – мы за это платим газ и т. п. Именно эти функции, которые требуют транзакции, если они описаны как public, то они у нас видны во вкладке «WRITE» в блокчейне.
  • Функция READ – это все функции и переменные, которые мы можем прочитать из контракта.
  • Функция WRITE – это те рычаги управления контрактом, с помощью которых можно управлять значением переменных и которые мы можем использовать для себя (позже рассмотрим, в каких ситуациях). По стандарту ERC-20, на котором построены все токены, у каждого из них должны быть три основные WRITE-функции: transfer, transferFrom, approve. Тем самым, во вкладке WRITE вы увидите как минимум эти три функции у стандартного токена, в ином же случае этот токен не был бы токеном.

Помимо стандартных функций разработчик может добавить другие функции, с помощью которых он может сам управлять поведением контракта.

Давайте рассмотрим наиболее удачный вариант кода функции Transfer:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *