Главная / Прогнозы / Аудит смарт контракта Smart-Pyramid от BitStat. Все чисто, подходит для инвестиций

Аудит смарт контракта Smart-Pyramid от BitStat. Все чисто, подходит для инвестиций

Аудит смарт контракта Smart-Pyramid от BitStat. Все чисто, подходит для инвестиций

На аудит нам попал довольно интересный и необычный контракт Аудит смарт контракта Smart-Pyramid от BitStat. Все чисто, подходит для инвестицийSmart-Pyramid. Исходный код контракта содержит 309 строк текста из них 60 строк это подробное описание проекта с примерами! Необычно? Необычно… Акцентировать своё внимание в рамках данного аудита мы не будем, так как его цель совсем в другом. Тем более, описание на привычном русском языке уже имеется на блоге. Поэтому, приступим к анализу рабочей части кода.

Аудит смарт контракта Smart-Pyramid от BitStat. Все чисто, подходит для инвестиций

В строки 65 – 103 расположилась знакомая уже нам библиотека «безопасной математики». Здесь всё стандартно за исключением того, что добавилась пятая функция mod, которая до сих пор нам не встречалась. Функция безопасно возвращает остаток от деления числа a на b.

А вот самое интересное в данном проекте появляется со строки 105. В этой строке начинается контракт под названием InvestorStorage. Получается, что проект состоит из нескольких контрактов. Если учесть, что с точки зрения классического программирования, контракт представляет собой не что иное, как класс, то такой подход только радует. Впереди ожидается структурированный и красивый код.

Рассматриваемый контракт имеет 3 скрытые от посторонних глаз переменные:

owner – адрес владельца контракта;

investors – хранилище, где собраны все инвесторы;

investor – структура, которая содержит в себе информацию об каждом инвесторе: сумму вклада(deposit), время начала вклада(checkpoint), адрес реферера(referrer).

Аудит смарт контракта Smart-Pyramid от BitStat. Все чисто, подходит для инвестиций

Далее идёт конструктор, который передаёт в переменную owner адрес владельца контракта. Модификатор onlyOwner описывает условие при котором запуск функций будет происходить только от имени владельца контракта. Т.е., никто другой запустить их не сможет. Уже тут можно начать подозревать что-то неладное… Идём дальше!

Строки 125-136 содержат 3 функции:

updateInfo – изменяет информацию об инвесторе: сумму вклада и время вклада;

updateCheckpoint – изменяет время вклада любого инвестора;

addReferrer – добавляет реферера инвестору;

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

Строки 138 – 155 содержат функции для просмотра информации об инвесторах: текущий процент, сумму депозита, время старта и реферера. Строка 140 содержит тот самый заявленный 1,23% + 0,01% в день.

По сути, контракт InvestorsStorage представляет собой базу данных всех инвесторов и описывает способы взаимодействия с окружающим миром. Доступ к ней имеет только владелец. Осталось только узнать одно – а кто владелец? А для этого заглянем в код второго контракта.

Аудит смарт контракта Smart-Pyramid от BitStat. Все чисто, подходит для инвестиций

По правилам хорошего тона, сперва объявляются переменный контракта.

admin – адрес ethereum-кошелька администрации;

waveStartUp – время старта проекта;

nextPayDay – дата следующего розыгрыша призов;

top – хранилище инвесторов, которые лидируют по суммам вклада;

Строки 166-170 содержат в себе описание событий, которые будут вызываться при определённых действиях контракта. Они несут лишь информативную функцию и помогают обновлять статистику на сайте проекта.

x – является ни что иным, как объект контракта InvestorsStorage, который содержит всю информацию об инвесторах.

Аудит смарт контракта Smart-Pyramid от BitStat. Все чисто, подходит для инвестиций

Модификатор notOnPause проверяет не находится ли проект в паузе. Забегая вперёд, сообщим, что проект умеет рестартовать, после чего прекращает работу на 7 дней. Берёт отпуск. Структура Leader является описанием лидирующих инвесторов, которая содержит адрес и сумму лидеров. Функция bytesToAddress традиционно конвертирует массив байт из поля Data в понятный для чтения адрес реферера.

Аудит смарт контракта Smart-Pyramid от BitStat. Все чисто, подходит для инвестиций

Функция addReferrer получает адрес реферера при помощи вышеупомянутой функции bytesToAddress, а затем сравнивает с адресом инвестора. Если адреса не совпадают, то адрес сохраняется в базе инвесторов x и на него отправляется 5% от суммы вклада (строка 195). Далее генерируются события для уведомления.

Строки 201-204 являются ключевыми. В них находится конструктор, который запускается при создании контракта. Как видно из кода, в него передаётся адрес админа, который скрыт для посторонних глаз и происходит создание базы x, которая хранит в себе информацию обо всём. И как мы помним, изменять информацию может только создатель базы. В данном случае, владельцем является сам контракт SmartPyramid. Получается, что изменять информацию основного хранилища может только контракт, а не админ контракта. Это очень хорошая новость!

Аудит смарт контракта Smart-Pyramid от BitStat. Все чисто, подходит для инвестиций

Функция getInfo возвращает сумму выплаты, которая будет выплачиваться на данный момент времени. Причём, если прошло меньше 10 минут с момента вклада, то сумма выплаты равна нулю.

Функция getTop возвращает адреса и суммы топовых вкладчиков. Как мы видим, их будет ровно 3.

Аудит смарт контракта Smart-Pyramid от BitStat. Все чисто, подходит для инвестиций

Строки 219-225 представляют собой функцию, которая будет выполняться при поступлении средств на счёт контракта. Тут всё просто как дважды два: прислали 0 – получили выплату, иначе начинаем инвестирование. Рассмотрим как проходит процесс инвестирования.

Аудит смарт контракта Smart-Pyramid от BitStat. Все чисто, подходит для инвестиций

Всё начинается с отчисления админу, его законных 4/25 = 16% части от вклада. Цифра соответствует заявленной. Затем проверяется сумма перевода. Если она больше нуля, то вызывается функция выплаты прибыли (реинвест) и заносятся изменения в базу. Идёт проверка топовых вкладчиков – вдруг Вы лучший (строка 237)? Завершается всё определением реферера и выплаты ему положенных 5%.

Аудит смарт контракта Smart-Pyramid от BitStat. Все чисто, подходит для инвестиций

Функция withdraw отвечает за выплату процентов инвестору. Начинается она с проверки времени вклада. Обязательно должно пройти 10 минут после совершения инвестиции. Строка 256 вычисляет сумму, которая будет выплачиваться инвестору исходя из того какой ему полагается процент и сколько времени прошло. Если полученная сумма больше нуля, то она отправляется инвестору. Время снятия процентов записывается в базу и счётчик начинает крутиться заново. Стоит отметить, что строка 262 сравнивает баланс контракта с суммой выплаты. Если сумма выплаты превышает общий баланс контракта, то вызывается функция nextWave.

Аудит смарт контракта Smart-Pyramid от BitStat. Все чисто, подходит для инвестиций

Функция toTheTop совершает простейшую сортировку 3 лучших инвесторов между собой по возрастанию. Вызывается она в момент инвестирования, если сумма инвестиции превышает сумму того, кто находится на 3-ем месте (строка 237).

Аудит смарт контракта Smart-Pyramid от BitStat. Все чисто, подходит для инвестиций

Функция PayDay выполняет выплату бонусов лучшим инвесторам. Строка 288 проверяет наступил ли день выплаты. Если наступил, то совершается выплата 2, 1 и 0.5 Ether финалистам. После выплаты Топ-3 обнуляется и конкурс начинается заново. Строка 291 определяет следующий день выплаты.
Ну и завершается контракт рестартом. Да, функция nextWave перезапускает работу контракта.

Аудит смарт контракта Smart-Pyramid от BitStat. Все чисто, подходит для инвестиций

Строки 302-304 обнуляют Топ-3. Затем идёт создание чистой базы инвесторов и переменная получает значение «сегодня + 7 дней» . После этого контракт встанет остановится на 7 дней, так как условие notOnPause перестанет выполняться и основные функции контракта не будут запускаться.

Итоги аудита смарт контракта Smart-Pyramid от BitStat

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

Также отличные аудиты смарт контрактов делает ютуб канал CryptoManiac:

  • Полная версия
  • Итоги аудита

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

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

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

О нас investcoin

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

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

Обзор и отзывы о смарт-контракте Project 424 — 4.24-6%. Зашли в project424.us на 5 эфиров

По традиции начнем с огромного плюса проекта — Project 424 при инвестировании более 4.24 ETH ...