Простыми словами: смарт-контракты, Ethereum, ICO

    Автор статьи — Алексей Маланов, эксперт отдела развития антивирусных технологий «Лаборатории Касперского»

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

    Так вот, Биткойн — на данный момент однозначно номер один. А знаете, какая криптовалюта на втором месте? Ethereum. Когда мы говорим про места, мы имеем в виду капитализацию, то есть суммарную стоимость всех монет валюты.


    Капитализация и цены TOP-5 криптовалют. Источник

    Как видите, Ethereum с большим отрывом опережает другие «альткойны», а в июне 2017 чуть было даже не обогнал Биткойн, «великий и ужасный». Давайте разберемся, что же в Ethereum такого особенного и почему подавляющее большинство проводимых в этом году ICO используют именно его.

    Идея Ethereum


    Ethereum запустился совсем недавно, 30 июля 2015 года. Одним из его создателей был нынче известный в блокчейн-тусовке и, не побоюсь этого слова, влиятельный Виталик Бутерин. Он родился в России, но с шести лет жил в Канаде. На тот момент, когда он изложил свои идеи, которые в итоге легли в основу сети Ethereum, ему было 19 лет.

    Так вот, в чем же идея? В сети Биткойн с точки зрения пользователя все устроено довольно просто. Есть кошельки, можно передавать деньги с одного кошелька на другой или на несколько сразу. Сеть построена на весьма остроумных принципах, позволяющих обходиться без единого центра, но задачи решаются вполне классические. Обычная платежная система, по большому счету: люди, деньги, переводы — все, больше ничего нет.

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

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

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

    И вот это нововведение существенно расширило сферу применения блокчейн-валют.

    Примеры смарт-контрактов


    Какие программы можно написать? Да какие угодно. Например, финансовую пирамиду. Для этого в сети Ethereum достаточно создать смарт-контракт со следующими правилами:

    1. Если с адреса кошелька A пришла сумма X, запомнить это в табличке долгов.
    2. Если после этого с адреса B пришла сумма Y > 2*X, отправить 2*Х денег на адрес А, запомнить долг участнику B.
    3. И так далее для каждого участника.
    4. Опционально: отправлять 5% всех поступающих денег автору смарт-контракта.

    Или можно устроить аукцион. Пишем программу:

    1. Если аукцион еще не окончен, запоминаем адреса отправителей и суммы ставок каждого участника.
    2. Когда аукцион окончен, выбираем максимальную ставку, объявляем победителя, высылаем обратно все остальные ставки.
    3. Опционально: высылаем выигранный лот, если Ethereum имеет представление, что это такое.

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

    Напомним преимущество: это блокчейн — все уверены, что никто не жульничает, все видят текст программы и понимают, что она работает именно так, как в ней написано. Программа — не человек. Она не скроется с деньгами, не обанкротится, и так далее. Если, конечно, в ней нет багов или «неожиданного поведения».

    Ограничения смарт-контрактов


    Но есть и существенные ограничения, вот некоторые из них:

    1. В программе очень сложно получить случайные числа и другую неопределенность. В некоторых лотереях умным участникам удается «подгадать» джекпот.
    2. Не так просто «спрятать» какую-то информацию. Например, список участников аукциона или их ставки.
    3. Если для работы контракта требуется информация, которой в блокчейне нет (например, текущий курс какой-нибудь валюты), то кто-то доверенный должен добавлять эту информацию в блокчейн.
    4. Для взаимодействия с контрактами пользователям нужен эфир — это внутренняя валюта Ethereum. Нельзя устроить голосование среди тех, у кого еще нет кошельков с деньгами.
    5. Смарт-контракты работают довольно медленно. На весь мир можно выполнять 3-5 транзакций в секунду.
    6. Сами смарт-контракты обычно выполняют немного действий, ведь в блокчейне каждый майнер должен будет эти действия повторить и сверить результат. Вдруг у него будет медленный компьютер.
    7. Если в смарт-контракте есть ошибки, то это навсегда. Единственный выход исправить ошибку — перейти на другой смарт-контракт, но только если возможность вывода денег и такого перехода была предусмотрена в программе изначально. Как правило, очень мало кто это предусматривает.
    8. Смарт-контракты могут зависнуть или вообще работать не так, как все ожидали, потому что не разобрались в программном коде.

    Иными словами, как и в других областях, многое зависит от профессионализма авторов контрактов.

    Главное использование смарт-контрактов



    Простой смарт-контракт Ethereum. Имеющаяся ошибка позволяет украсть все деньги, кто нашел — молодец

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

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

    Смарт-контракты дали миллиону «криптоинвесторов» возможность «швырять деньги в монитор».

    ICO — Initial Coin Offering


    Нащупал эту нишу Ethereum не сразу. На 1 января 2017 стоимость одного эфира составляла $8, а своего пика (во всяком случае, пока) в $400 курс достиг к июню. Все благодаря большому количеству проводимых ICO — первичному предложению акций стартапов. Желание вложить эфир в какой-либо проект стимулирует спрос на эфир. А проектов этих сейчас — тьма.


    График стоимости Ethereum. Источник

    Обсудим ICO поподробнее. Типичная схема криптостартапа такова:

    1. У вас есть идея. Обычно она как-то связана с криптовалютой или блокчейном.
    2. На ее реализацию и запуск вам нужны деньги.
    3. Вы объявляете всем, что принимаете эфир, а взамен выдаете акции/токены/фантики при помощи смарт-контракта.
    4. Вы рекламируете свой проект и собираете требуемую сумму.

    Сумма обычно составляет 10-20 миллионов долларов и собирается буквально за несколько минут, иногда дней. Как правило, ICO ограничено по времени или собираемой сумме — и это формирует ажиотаж.

    Доходит до комических случаев. Например, в ходе ICO одного из проектов 35 миллионов долларов собрали за 24 секунды. А чтобы попасть в число «счастливчиков-участников», фанаты проекта платили до $6600 комиссии за транзакцию. Большой спрос и низкая пропускная способность Ethereum’а заставляет увеличивать комиссионные, чтобы отправить деньги и поучаствовать, а не остаться в хвосте очереди.

    Окупаемость криптоинвестиций


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

    Как правило, сами токены выводятся на криптобиржу, и открываются торги. Те, кто не успел поучаствовать в ICO, могут купить их уже на бирже — скорее всего, подороже. Те, кто участвовал в ICO, чтобы потом перепродать подороже, могут их на бирже продать.

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

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

    В 2017 году (к сентябрю) на ICO разные проекты уже собрали порядка 1,7 миллиарда долларов. Об успешных проектах слышно мало, но инвесторы не теряют оптимизма.
    • +8
    • 10,7k
    • 7
    «Лаборатория Касперского» 118,95
    Ловим вирусы, исследуем угрозы, спасаем мир
    Поделиться публикацией
    Комментарии 7
    • +1
      <offtop?>

      Капитализация = кол-во монет * стоимость 1-й монеты.

      Чем больше монет тем легче задрать капитализацию. Ripple на 3-м месте, — совершенно бесполезная монета, испольуемая только для автоматических маржинальных торгов на шлюзах Ripple для USD/USD и USD/EUR переводов между шлюзами и пользователями, и конечно-же для спекуляций. Объём использования Ripple на биржевых торгах, многократно выше чем на шлюзах. Если считать полное кол-во монет (уже эммитированных), а не то которое в ходу ( ~99 миллиардов), то внезапно это бесполезное топливо для транзакций, окажется на 1-м месте по капитализации. Такой себе показатель…

      </offtop?>
      • 0
        Ну, по такой логике все криптовалюты можно будет считать бесполезными. Ведь объем торгов многократно выше, чем оплата товаров. Нормальный показатель.
      • 0
        А в чем ошибка в примере смарт-контракта?
        • 0
          я могу ошибаться, но мне кажется что при операции «вычитания» в uint необходимо проверять баланс на ноль, иначе число станет велико.
          • +1
            я думаю надо сначала вычесть из баланса, а потом вызывать функцию
            • +1
              Ага. Именно так своровали 60 миллионов долларов у The DAO. Но там была еще вторая ошибка (использовался Transfer вместо transfer), что усугубило ситуацию в 50 раз.
            • +1

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

            Самое читаемое