Свежие новости
Главная / Аналитика криптовалют / Аудит смарт контракта x2invest от BitStat. Все чисто, подходит для инвестиций

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

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

Исходный код смарт-контракта x2invest.

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

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

Напомним, что данная библиотека реализует простейшие математические действия (сложение, вычитание, умножение и деление) в более безопасном варианте, учитывая особенности языка программирования. Тем не менее, нет никаких гарантий, что программисты внесли туда свои изменения, которые позволят обмануть инвесторов. Поэтому, обходить стороной блок кода SafeMath не стоит. К счастью, никаких серьёзных и криминальных изменений кода не наблюдается. Стандартные проверки валидности результатов вычислений. Всё чисто.

Переменные

За библиотекой SafeMath начинается описание контракта. Причём, контракт начинается с комментария, который гласит, что исходный код копировать запрещено и не законно. Так что, не делайте этого.

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

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

userDeposit – хранилище величины вклада инвестора.

userTime – хранилище времени, когда был сделан вклад.

persentWithdraw – хранилище суммы всех выплат для каждого вкладчика.

projectFund = 0x15e3aAD84394012f450d7A6965f2f4C59Ca7071a – адрес, куда направляется комиссия.

charityFund = 0x6c3607D37A000d7879F02b98c59376c7DAc91151 – адрес, куда поступают средства для благотворительных целей.

projectPercent = 8 – процент комиссии.

charityPercent = 1 – процент на благотворительность.

chargingTime = 1 hours – временной промежуток, раньше которого нельзя заказать выплату.

Строки 59-62 содержат величины процентов, которые могут начисляться по истечению 1 часа.

Проценты и вклады

Строки 64-66 содержат суммы вкладов, которые будут определять начисляемый процент.

Как можно заметить, проценты и категории инвесторов соответствуют заявленным на сайте проекта. Это идёт как маленький, но всё же плюс в карму администрации. Хочется всегда иметь дело с честными людьми.

countOfInvestors – счётчик количества всех инвесторов в проекте.

countOfCharity – общая сумма средств, которая уйдёт на благотворительность.

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

Блок кода isIssetUser проверяет имеет ли вклад инвестор в проекте (сумма инвестиций больше нуля).

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

Блок кода timePayment проверяет не слишком ли рано инвестор хочет получить свои дивиденды. Иными словами, проверяет прошёл ли час (chargingTime) с момента совершения вклада.

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

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

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

Первым действием данная функция проверяет поступившую сумму, если она равна 0.00000112 ether, то вызывается функция returnDeposit(), которая отвечает за возврат депозита. В противном случае, вызывается функция makeDeposit(). Рассмотрим функция возврата депозита.

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

При вызове происходит проверка, имеет ли вклад инвестор (модификатор isIssetUser). Если вклад совершался, то в строке 148 идёт вычисление суммы выплаты равная сумме вклада минус сумма, которая уже была выведена и минус 8% штрафа за возврат. Затем идёт обнуление всех данных инвестора и отправка средств.

Как мы помним, если возвращать мы ничего не хотим, то вызывается функция makeDeposit.

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

В свою очередь функция рассматривает вариант того, что инвестор прислал какие-то средства (msg.value>0). Если при этом такого инвестора нет в хранилище, то общее количество инвесторов увеличивается на единицу. Если же инвестор уже является участником проекта и он обращается не ранее часа после совершения вклада, то вызывается функция подсчёта и выплаты процента collectPercent. Работу данной функции рассмотрим чуть позже. А сейчас, двигаемся дальше. Строка 132 прибавляет пришедшую сумму вклада в общую копилку инвестора. Записывается текущее время вклада в хранилище. Вычисляется и отправляется комиссия 8% + 1%. На этом приём инвестиции заканчивается. Средства поступили на счёт контракта и работают. Строка кода 140 рассматривает вариант, когда поступившая сумма равна нулю и вызывает уже упомянутую функцию collectPercent.

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

Строка 83 проверяет общую сумму выплат инвестору. Если она равна или превышает 200%, то информацию о пользователе обнуляется. В противном случае идёт вызов функции payoutAmount, которая вычисляет размер выплаты. Далее записывается время выплаты и производится выплата полагаемых средств. Следует отметить, что выполнение контракта завершается именно этой функцией. Так что, в любом случае, средства будут выплачиваться до тех пор, пока на счету контракта они есть.

Заглянем в функцию payoutAmount, которая занимается вычислением суммы выплат.

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

Первым делом идёт вычисление процента, который зависит от величины баланса контракта. Величину его возвращает функция persentRate. Путём нехитрой математики в строках 117-119 вычисляется сумма выплаты, которая зависит от полагаемого процента и временного промежутка вклада.

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

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

Как мы видим, ничего запрещённого и подозрительного тут нет. Чем больше в кассе денег, тем выше процент.

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

  • 0-1000 eth — 0.25% (в час) 6% в сутки
  • 1000-2500 eth — 0.3% (в час) 7.2% в сутки
  • 2500-5000 eth — 0.35% (в час) 8.4% в сутки
  • > 5000 eth — 0.375% (в час) 9% в сутки

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

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

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

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

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

О нас binvestcoin

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

Очередные манипуляции на крипторынке. Обзор от BitStat

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