Несмотря на хороший бизнес рейтинг и восторженные отзывы, с технической точки зрения проект UBEX выглядит как техническое мошенничество: план разработки не раскрыт, имитация плана — «вода», выпуск токенов на грани фола, SoftCap — обман , технический уровень первого продукта (смарт-контракт) — крайне низок, сборы в размере $7 млн намеренно не проверить.

UBEX, вероятно, самое популярное ICO в июле 2018 года. Оно собрало очень большое количество заинтересованных, множество восторженных обзоров, видеороликов, хвалебных статей и позитивных прогнозов. Но …

В статье рассматривается аудит следующих объектов ICO кампании на www.ubex.com, проведенный программистами CryptoB2B 12 июля 2018 по заказу частного инвестора:

методы функционирования Личного кабинета про продаже токенов

аудит смарт контракта

техническая составляющая идеи проекта (на основе чтения Белой бумаги).

Предварительный вывод:

критически ошибочный подход в понимании авторами блокчейна

серьезные проблемы смарт контракта

полное отсутствие объяснения в WP, как и что собираются делать авторы проекта

не смотря на крутой бизнес рейтинг, наш рейтинг технической стороны проекта UBEX: 0/10.

Подробнее:

Метод приема денег

Прием денег в ETH осуществляется на единый адрес 0x2cc1060de78aa44e3e6a86102fac93f1de49adb2, а для приема BTC, LTC (возможно еще чего-то) используются лично генерируемые под каждого пользователя кошельки. Это дает сразу пакет потенциальных угроз и проблем.

Прием денег на разные кошельки означает, что никто не может проверить, а были ли собраны деньги. Смарт контракт 0x2cc1060d** пересылает деньги только на кошелек бенефициара https://etherscan.io/address/0xf8eed1ae306a07d8899de8dabc3783974a680830 А там сейчас собрано 1,400 ETH ($600K). А на сайте у них написано, что собрали более $7 млн. Если бы собирали на единый кошелек в биткоинах тоже — это можно было бы проверить. А так — проверить невозможно. Лично я не верю. Согласно моей статистики по проведенным ICO, в эфире поступает около 25% денег. И то статистика работает, когда фаундеры не скрывают собранные деньги. Сразу отвечу, зачем они делают индивидуальные кошельки для BTC. Для того, чтобы было легче идентифицировать инвестора. Ключевое слово — легче. Но есть варианты, когда криптовалюта принимается на единый адрес и там нет никаких проблем с идентификацией, зато всем видны сборы. Что лучше — немного напрячь ленивых программистов и сделать единый кошелек с открытыми сборами или облегчить жизнь программистам? Конечно, решать фаундеру. В случае взлома (хакер, нелояльный программист, администратор веб-хостинга, да кто угодно) может тайно подменить алгоритм, по которому генерируются персональные кошельки, то взлом не будет обнаружен очень быстро. Если бы кошелек был единый — сами инвесторы бы начали задавать вопросы. Угроза потерять деньги и вовремя не заметить взлом — это самое серьезное обоснование, почему нельзя собирать деньги на персональные кошельки. Пункт (3) повторяется, если в проект сам по себе потеряет ключевую фразу (mnemo code) для восстановления кошельков или их закрытые ключи. Уважаемые инвесторы, вы хоть разок поинтересовались, сделали ли фаундеры проекта бекап? Представим, что хакер (или программист / сисадмин проекта) взломал сайт на 5 минут и вернул все назад. Инвестор получил индивидуальный кошелек хакера и заплатил туда. Потом обновил страницу и BTC для приема уже иной (верный). Что делать инвестору в такой ситуации? Понятно, что деньги не вернуть, но суть в том, что инвестор даже не сможет доказать, что он ни в чем не виноват! Такой инвестор будет выглядеть дураком с жалобой, что сайт заставил его заплатить не туда, куда надо.

Промежуточный вывод:

Небезопасно: велик шанс, что при взломе это не будет быстро обнаружено. Схема сбора денег реализована на простецком уровне. Фаундеры или программисты не в курсе, как реализовать сборы на единый адрес, что говорит о слегка низком техническом уровне. Крипто сообщество хотело бы иметь инструмент узнать, сколько принято денег, а не верить байкам на сайте ICO. Блокчейн — это история, когда все можно проверить и сам глагол «верьте нам» не нужен.

Вывод: потенциально уязвимо; дешевая разработка; невозможно провести аудит.

Распределения токенов

https://etherscan.io/token/0x6704b673c70de9bf74c8fba4b4bd748f0e2190e1

Из этой страницы видно, что программист компании с кошелька 0x474e028b9710bef801D3a0bA3c282e729C0e3591 получил токены при публикации контракта, благодаря этому коду

contract UbexToken is DetailedERC20, StandardToken, BurnableToken, PausableToken { function UbexToken( uint256 totalSupply ) DetailedERC20 ( "UBEX Token", "UBEX", 18 ) { totalSupply_ = totalSupply; balances[msg.sender] = totalSupply; } }

Далее основной смарт контракт только распределяет токены, причем только за ETH. Токены за non-ETH будут распределены по желанию фаундера, а остаток по его же желанию, вероятно, обещают сжечь.

Налицо злостная профанация самой идеи блокчейна. Суть ее — никому ничего не обещать. Компания идет в блокчейн и объясняет его надобность в своем проекте, но при этом в своем же первом (или одном из первых) технических продуктов (смарт контракт) показывает полное пренебрежение идеологией блокчейна. Токены распределяются по желанию человека. Никакого смысла в смарт контракте нет. Фаундер может обмануть инвесторов, например, некоторым зачислив больше токенов, чем они заплатили или вообще не сжечь лишние.

Думаете, что пунктом (4) никто не воспользуется, т.к. все честные? Я не сомневаюсь, что фаундер — честный. Но только до того момента, как к нему придет фонд (вернее, посредник от фонда) и скажет «Готов в вас инвестировать 1 млн долларов, за что хочу двухкратный бонус от вашего максимально возможного бонуса за токены + 30% денег в виде отката», то фаундер легко согласится на такие условия. Конечно, это предположения, но суть в том, что безалаберное отношение к смарт контракту позволяет в таком случае фаундеру оставаться полностью безнаказанным и даже не считать это ущемлением прав всех остальных инвесторов.

Вывод: критичное пренебрежение идеологией блокчейна; критичная незащенность прав инвесторов.

Отдельный пример низкого качества смарт контракта

Если посмотреть, какие команды сделал программист с etherscan.io/address/0x474e028b9710bef801d3a0ba3c282e729c0e3591 то выделяются следующие

https://etherscan.io/tx/0x46984fd49af4e9b4ea3645234e494ae63767b8801d59784e3181a66e99131cc9 https://etherscan.io/tx/0xaf17a7abaeaff2e579bc5ab64e6071c49f4f4e13485ca5ee149a22279e347107 https://etherscan.io/tx/0x1e8045a3b7d53cf15258280d2929ffe7b33355701d040ef6fc20e237575cac19 https://etherscan.io/tx/0x7accd8fae97be69897454f61a49bf72c2f08ceb6b48d68707f7369737df7e2c6 https://etherscan.io/tx/0x0b10c212b23ec3c84b6e697afc92e4c161482eaa40cb771d746e9e457f18b1bc https://etherscan.io/tx/0xc96338031e375c121afe01d200a5f2ea1403c4b8df6a19f7614e510288d5cc49 https://etherscan.io/tx/0x16f8769c119f472fc9b63464571241a7ae76d6a1aa31d648c6b56257d9b3c493 https://etherscan.io/tx/0xda9e9b28c82a60ceeb30e214881983afc341f5f2f74077e213ce0d9dfea1de6a

В каждой из транзакции вызывается функция:

Function: setBonusMultiplier(uint256 bonusMultiplier_) MethodID: 0xfd58e63a [0]: 0000000000000000000000000000000000000000000000000000000000000460

Не вдавался в логику, зачем это делает, но просто по названиям очевидно, что это настройка текущего бонуса ICO.

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

Автор смарт контракта начинающий программист, который не подозревал, что в Solidity существуют массивы и что смарт контракт сам по времени может переключать бонусы.

Момент переключения бонуса слабо регламентируется. Очевидно в ICO details обещают переключения, к примеру, строго в 00:00, а человек так синхронно не сделает. Большая часть запросов сделана около 2am, но транзакция 0xaf17a7abae** сделана в 4am, на 2 часа позже регулярного действия. Были ли в это время транзакции от инвесторов?

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

Программист все понимал, но ему было лень.

Делать руками то, что легко может сделать сам смарт контракт — профанация идеи блокчейна.

Вывод: не уязвимость; ничего критичного нет; нарушение прав инвесторов; низкий уровень квалификации при подготовке к ICO.

Обзор Белой бумаги

Главы «Ubex: Service for Advertisers», «Ubex: Service for Publishers» и «The Ubex Platform» — авторы молодцы, упомянули слово блокчейн всего раз. Проект к блокчейну отношения не имеет и не описан в технической части — это ок.

Очень красивая диаграмма на 31 странице, дизайнеры — молодцы! Правда, картинка ничего не поясняет с технической точки зрения.

Это — вранье. Никак не описаны процессы, как именно программисты собираются в real-time делать поисковые запросы в блокчейне, чтобы получать ответ. Как это работает в централизованном SQL — все ясно. Главная функция системы с очень красивым названием просто не объясняется. Как они собираются делать банальный фильтр + сортировку объектов?

Всего полгода назад мы в CryptoB2B.io делали аудит точно такого же проекта HOQU.io (их вообще десятки одинаковых), только там было меньше пафоса (про нейронные сети). Досконально с программистами разбирали, как они банальный поиск собираются делать и причем тут блокчейн. Разумеется, в течении пары ответов выясняется, что главная страница сайта проекта или его мобильная версия абсолютно точно вынуждена будет использовать SQL.

В принципе, на 32 странице авторы так и пишут «Consider such a node as a black box». Просто черный ящик. Ноу-хау. Секрет. Ок.

Далее идет нормальное описание (33 и 34 стр), как все должно работать, сказки про DSP-1. Все прекрасно, кроме следующего:

описанные функции никак блокчейна не касаются

описано именно как должно быть, а не как авторы собираются это реализовать

На 35-37 странице авторы Белой бумаги рассказывают читателю что такое нейронная сеть. Ок, но к проекту то какое это имеет отношение? И зачем держать потенциального инвестора за дурака, которому это надо объяснять? Хотя, судя по большой сумме сборов от инвесторов…

Сама суть проекта описана в главе «Neural Network Model» на 38-41 страницах. Если удалить картинку, пустое пространство и разряженный текст (из-за списка) получается примерно 1,5 страницы самой сути, которая должна объяснять «А чего они там вообще делают-то?».

Примерно половина ключевого текста описывает, какие бывают параметры в рекламных сетях, типа там аргументы: стоимость объявления, параметры пользователя, ключевые настройки… И что эти числа можно сложить. Но, извините, а дальше то что???

Где хоть какие-то намеки, как именно программист будет реализовывать нейронную сеть? А на чем вы ее будете обучать? Чем не устраивает обычный таргетинг в уже существующих сетях? Как будете переобучать сеть при изменении модели и набора аргументов?

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

Разумеется, все написанное это личное мнение и оценочное суждение, а гуру нейронных сетей по 2-м формулам поймут тайный смысл и, особенно, про его связь с блокчейном…

Вывод по Белой бумаге:

Никакие функции рекламного поискового движка в блокчейне работать не будут, для этого нужен старый добрый SQL или noSQL. Эту тему просто обошли даже не пытались осветить в WP.

Самая суть проекта (нейронные сети) не описана, как реализовывать — неизвестно, в чем ноу-хау — не раскрыто.

WP состоит из деклараций, как должно быть. Но это очевидно и без ICO.

Места, где упоминаются блокчейн и нейронные сети — тавтология.

Авторы дизайна WP плохо выполнили свои обязанности — диаграмм/схем (ничего не значащих) очень мало. Могли бы больше сочинить.

Судя по серьезному сбору на дату написания аудита, либо инвесторы вообще не читали WP и не видели, что идея проекта не раскрыта, либо сборы — обман.

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

Угроза для проекта

Судя по WP, проект будет делаться на блокчейне. Судя по моему опыту, ключевые и простейшие функции (поиск, сортировка) сделать на блокчейне невозможно, а только на традиционных SQL или noSQL базах данных. Ни один, даже малейший компонент системы, не обойдется без SQL. Я не буду давать прогнозы, смогут ли фаундеры реализовать проект, вероятно да, но прогнозирую проблему. Проект, если он и будет сделан, точно не будет на блокчейне, хотя фаундеры будут имитировать блокчейн функции. Аналогично и с нейронными сетями. Хвалю за попытку развивать их, но сомневаюсь, что ключевой движок будет реально их использовать, а не имитировать.

Это дает повод инвесторам подать в суд на компанию за нарушение обещаний, т.к. уже сейчас понятно, что выполнить обещания невозможно. Сделать проект без блокчейна и поднять стоимость токена — да, это возможно, я желаю удачи и команде проекта, и инвесторам.

Выход из ситуации

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

Если инвесторы верят фаундеру и собранные 7+ млн действительно есть, тогда все хорошо. На честном слове тоже можно реализовать проекты.

Технический рейтинг проекта UBEX

Описание основной технической идеи? Отсутствует (негативно): -8.

[-10=отстуствует, 0=нейтрально, +5=присутствует]

Найдено ли явное техническое вранье (мошенничество)? Не найдено (позитивно, нейтрально). +3.

[-10=найдено, 0=не оценивали, +3=позитивно]

Имеет ли отношение к блокчейну основные функции проекта? Нет (негативно), -7.

[-10=не имеет, 0=имеет, +10=экосистема]

Адекватность продажи токенов, защита интересов инвесторов? Ужасающе (негативно), -10.

[-10=нарушения, 0=не оценивали, +5=честное ICO]

Качество кода, ошибки в смарт контракте?* Не найдено (позитивно). +1.

[-10=найдены ошибки, 0=не оценивали и/или ошибок нет, +5=хорошее качество]



Открытость команды к проведению аудита и ответам на неудобные вопросы? Не проводили (нейтрально), 0.

[-10=враждебность, 0=не проводили, +2=открыты к сотрудничеству]



Субъективно, призовые баллы за ИТ технологи: за попытку развивать нейронные сетями (позитивно), +2.

[0=не оценивали, +5=позитивно]



* — по итогам беглого осмотра смарт контракта, т.к. программист cryptob2b еще не искал менее явные ошибки, будет сделано чуть позже и это будет поводом пересмотреть оценку.

Промежуточная оценка по формуле: -8+3-7-10+1+0+2 = -19 баллов. Числа меньше нуля или более 10 округляются до диапазона [0…10]. Итого: «-19» округляется до «0».

Градации оценки:

-50 … -21 = экстремально плохо

-20 .. -10 = очень плохо

-9 … +0 = плохо

+1 … +3 = так себе

+4 … +9 = позитивно

+10 .. +20 = отлично

+21 и более = превосходно

Итоговый технический рейтинг cryptob2b по сумме показателей: 0 из 10, оценка — очень плохо.