Свежие новости
Главная / Аналитика криптовалют / Аудит смарт контракта ETH7 от BitStat

Аудит смарт контракта ETH7 от BitStat

Аудит смарт контракта ETH7 от BitStat

Смарт-контракт Аудит смарт контракта ETH7 от BitStatETH7 на данный момент лидирует по количеству строк исходного кода на нашем блоге. Исходный код содержит всё, что только можно: подробное описание контракта, библиотеку безопасной математики, встроенную защиту, рабочую бизнес-логику и огромное количество повторяющейся информации. Поэтому, усаживайтесь поудобнее, так как будет много текста и картинок.

Аудит смарт контракта ETH7 от BitStat

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

Аудит смарт контракта ETH7 от BitStat

Библиотека SafeMath представлена такими математическими операциями как умножение, деление, сложение и вычитание. Для полноценной работы данного кода больше ничего не требуется. Ничего постороннего в библиотеку не добавлено.

Исходный код контракта Eth7 начинается с предупреждения о том, что копировать данный код строго запрещено. Затем начинается объявление переменных, которые мы и рассмотрим.

Аудит смарт контракта ETH7 от BitStat

Используются следующие хранилища (массивы):

userDeposit – сумма вклада для каждого инвестора;

userReferral – реферер для каждого инвестора;

refferalCollected – сумма дохода от рефералов;

usersCashback – сумма всех кешбеков;

userTime – начальная точка отсчёта работы депозита (дата/время);

persentWithdraw – общая сумма всех выплат;

alreadyDeposited – признак новичка (false – новичек/ true – бывалый инвестор);

Адреса Ethereum-кошельков администрациипроекта:

0xFEfF6b5811AEa737E03f526fD8C4E72924fdEA54 – маркетинг;

0x03e08ce26C93F6403C84365FF58498feA6c88A6a – комиссия сервиса;

Используемые переменные:

marketingPersent = 8 – процент рекламного бюджета;

devPercent = 3 – процент комиссии;

refPercent = 4 – процент партнёрской программы;

chargingTime = 12 hours – промежуток времени, спустя который можно повторно обращаться к системе;

persent =1850 – переменная-константа для вычисления процентного дохода за 12 часов;

countOfInvestors – количество инвесторов;

countOfDev – сумма всех комиссионных сборов;

Строки 136 – 196 содержат подробную информацию о кэшбеках и акциях.

Аудит смарт контракта ETH7 от BitStat

Строки 137-140 устанавливают 3 уровня порогов по суммам вкладов:

  • 1 уровень – 0.1 ETH – 3 ETH;
  • 2 уровень – 3 ETH — 7 ETH;
  • 3 уровень – 7 ETH – 10000 ETH;

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

Аудит смарт контракта ETH7 от BitStat

Cashback day № 1

Акция действует один день с 05.11.2018 23:59 по 06.11.2018 23:59 UTC

  • 0.1 ETH – 3 ETH кэшбек – 2.5%
  • 3 ETH – 7 ETH кэшбек – 3.5%
  • 7 ETH – 10000 ETH кэшбек – 5%

Cashback day № 2

Акция действует один день с 15.11.2018 23:59 по 17.11.2018 23:59 UTC

  • 0.1 ETH – 3 ETH кэшбек – 3%
  • 3 ETH – 7 ETH кэшбек – 5%
  • 7 ETH – 10000 ETH кэшбек – 7%

Cashback day № 3

Акция действует один день с 27.11.2018 23:59 по 29.11.2018 23:59 UTC

  • 0.1 ETH – 3 ETH кэшбек – 5%
  • 3 ETH – 7 ETH кэшбек – 8%
  • 7 ETH – 10000 ETH кэшбек – 10%

Cashback day № 4

Акция действует один день с 09.12.2018 23:59 по 11.12.2018 23:59 UTC

  • 0.1 ETH – 3 ETH кэшбек – 7%
  • 3 ETH – 7 ETH кэшбек – 10%
  • 7 ETH – 10000 ETH кэшбек – 15%

Cashback day № 5

Акция действует один день с 21.12.2018 23:59 по 22.12.2018 23:59 UTC

  • 0.1 ETH – 3 ETH кэшбек – 2.5%
  • 3 ETH – 7 ETH кэшбек – 3.5%
  • 7 ETH – 10000 ETH кэшбек – 5%

Cashback day № 6

Акция действует один день с 02.01.2019 23:59 по 04.01.2019 23:59 UTC

  • 0.1 ETH – 3 ETH кэшбек – 3%
  • 3 ETH – 7 ETH кэшбек – 5%
  • 7 ETH – 10000 ETH кэшбек – 7%

Cashback day № 7

Акция действует один день с 14.01.2019 23:59 по 16.01.2019 23:59 UTC

  • 0.1 ETH – 3 ETH кэшбек – 5%
  • 3 ETH – 7 ETH кэшбек – 8%
  • 7 ETH – 10000 ETH кэшбек – 10%

Cashback day № 8

Акция действует один день с 26.01.2019 23:59 по 28.01.2019 23:59 UTC

  • 0.1 ETH – 3 ETH кэшбек – 7%
  • 3 ETH – 7 ETH кэшбек – 10%
  • 7 ETH – 10000 ETH кэшбек – 15%

Используемые модификаторы:

Аудит смарт контракта ETH7 от BitStat

isIssetUser – определяет пользователя, у которого есть вклад в проекте;

timePayment – определяет прошло ли 12 часов с предыдущего обращения или нет;

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

В строке 209 начинается безымянная функция, которая запускается при осуществлении транзакции в адрес контракта.

Аудит смарт контракта ETH7 от BitStat

Запрещается осуществлять какие-либо действия с контрактом с адресов администрации (строка 210). Далее идёт вызов одной единственной функции makeDeposit(), которая отвечает за создание депозита в проекте.

Аудит смарт контракта ETH7 от BitStat

Функция создание депозита состоит из кучи условий и ветвлений. Сперва проверяется есть ли начисленный кэшбек. Если таковой имеется, то тут же выплачивается (строка 217). Далее проверяется сумма, которую прислал инвестор. Если она больше нуля (строка 218), то запускается алгоритм инвестирования. Иначе, запускается функция collectPercent(), которая отвечает за выплату дивидендов. Инвестирование начинается с того, что проверяется впервые пришёл инвестор или нет. В зависимости от этого, увеличивается общее число инвесторов. Затем идёт определение и запоминание адреса реферера. Если он не равен нулевому значению и не является адресом самого инвестора, то тут же идёт выплата вознаграждения рефереру (строка 229) и обновление статистики. Стоит заметить, что реферер указывается только в первом депозите. Если забыли – инвестируйте в следующий раз с другого адреса. В строке 233 определяется реинвест. При реинвесте дополнительно выплачиваются положенные дивиденды по старому вкладу. Присланная сумма суммируется с уже имеющейся, обновляется время вклада и определяется сумма кэшбека. В завершении функции идёт выплата комиссионных сборов и отчисления на маркетинг с присланной суммы (строки 242 — 246). Стоит отметить, что при реинвестировании пропадает прибыль с предыдущего депозита за первые 12 часов. Стандартная ошибка для проектов с такой логикой.

Некоторым плюсом функции makeDeposit является тот факт, что реализована защита от reentrancy attacks добавлением модификатора nonReentrant из контракта ReentrancyGuard. Простыми словами, функцию создания/выплаты депозита нельзя вызвать до того момента, как её не закончил выполнять предыдущий инвестор. Нельзя одновременно запустить makeDeposit несколько раз.

Функция collectCashback() отвечает за выплату и обнуление суммы кэшбека.

Аудит смарт контракта ETH7 от BitStat

Размер кэшбека определяется функцией chargeCashBack(), основная задача которой пробежаться по всем датам акций и начислить требуемую сумму. Все даты и размеры вкладов были указаны в тексте аудита выше.

Аудит смарт контракта ETH7 от BitStat

Рассмотрим функцию возврата депозита collectPercent().

Аудит смарт контракта ETH7 от BitStat

Функция запускается только в том случае, если инвестор существует и уже прошло 12 часов. В строке 317 идёт сравнение со 150% от суммы вклада. Если инвестор получил такую сумму или больше, то его данные по депозиту, времени и выплатам обнуляются. Знакомый нам уже по прошлым проектам лайфхак – снять 149% и ждать до последнего, хоть до 500%. Если инвестор не получил ещё свои 150%, то идёт определение положенной ему выплаты, обнуление счётчика времени, выплата и добавление суммы выплаты в статистику.

Сумма выплаты вычисляется функцией payoutAmount().

Аудит смарт контракта ETH7 от BitStat

Вычисление довольно стандартное для проектов подобного плана. Сперва определяется сумма в единицу времени, затем она умножается на промежуток времени работы вклада, что и является суммой к выплате withdrawlAmount. В строке 340 к общей сумме выплаты прибавляется сумма кэшбека. Замечено, что в этом месте она всегда будет равна нулю, так как выплата кэшбека идёт первой и сразу же обнуляется.

Для удобства использования смарт-контракта добавлена возможность просмотра статистики по каждому инвестору во вкладке Read Contract на странице с исходным кодом.

Аудит смарт контракта ETH7 от BitStat

userPayoutAmount – показывает, сколько будет начислено дивидендов на данный момент, если отправить нулевую транзакцию;

getInvestedAmount – возвращает сумму депозита инвестора;

getLastDepositTime – показывает время последнего обращения инвестора к контракту;

getPercentWithdraw – показывает сколько всего выведено из проекта конкретным инвестором;

getRefferalsCollected – расскажет сколько получено инвестором от рефералов;

Итоги аудита смарт контракта ETH7 от BitStat

При реинвестировании идёт потеря дивидендов, если обратиться менее чем через 12 часов. Присутствует возможность выйти за 150% от суммы вклада.

Владелец контракта Аудит смарт контракта ETH7 от BitStatETH7 не имеет доступа ко всей «кассе». Остановить, изменить контракт или повлиять на бизнес-логику также нет возможности. Дыр и бекдоров нет. Заявленные проценты на сайте проекта соответствуют тем, что есть в коде. Все чисто, подходит для инвестиций.

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

Приходите на обсуждение проектов в наш чат: https://t.me/joinchat/C1ie2RK-ocDXAyuh2f00rA.

Предупреждение

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

О нас binvestcoin

Смотрите также

Биржа Poloniex уже готова к форку Bitcoin Cash (BCH). Добавлено два еще не существующих актива

Биржевая платформа подготовила листинг двух потенциальных цифровых активов в преддверии хард форка Bitcoin Cash (BCH), ...