Б значит Бюрократия
Современный человек регулярно сталкивается с большим количеством официальных контрактов и договоров. Это может быть аренда жилья, покупка недвижимости, трудоустройство или простая покупка в магазине. Каждый подобный контракт изложен весьма специфическим юридическим языком и полностью понятен далеко не всякому. А сколько требуется времени, чтобы вчитаться в тонкости взаимоотношения с банком при банальном открытии дебетового счёта — вопрос исключительно фантазии банковских юристов и маркетологов.
Современная бюрократия способна повергнуть в отчаяние самых крепких духом. Коррупция, отсутствие синхронизации между отдельными её блоками, человеческий фактор и дублирование информации — безусловное зло. Каждый из нас хоть раз задумывался о смысле жизни, стоя в бесконечной очереди за очередными документами.
Прекрасный мир за горизонтом
А теперь представьте себе прекрасный мир будущего, где для покупки квартиры достаточно обговорить условия с продавцом и провести транзакцию в сети, где для перевода денег не нужно будет открывать счёт в банке и платить комиссию банкирам. Прекрасный мир, в котором решив срочно жениться, не придётся ехать в Вегас. А фраза «Я согласна» будет заменена галочкой ознакомления с условиями брака. Именно для реализации подобной мечты в 1994-м году и была предложена идея смарт-контракта.
Что же такое смарт-контракт? Это программный код, регулирующий условия и предмет контракта, подписанный электронными ключами двумя или более участниками. Такой код хранится и выполняется в распределённой, надёжной и прозрачной системе. В этой системе любой контракт может быть подтверждён произвольным узлом, а все они хранятся в виде цепочки транзакций или блоков. На реальный мир эти смарт-контракты влияют путём специальных узлов-оракулов.
Первой подобной системой стал биткоин. Реализация смарт-контрактов в биткоине довольно проста и не обладает полнотой по тьюрингу. Это привело к появлению Ethereum с полновесной реализацией смарт-контрактов. Ввиду появления циклов и потенциально сложных вычислений в смарт-контрактах Ethereum, была введена единица проделанной работы “газ”. При создании транзакции пользователь может сам выбрать лимит газа и установить цену на него. Узел сети, который обработает транзакцию и израсходует некий объём газа на вычисления, получит за это соответствующее вознаграждение.
Любой смарт-контракт обладает следующими атрибутами:
- Электронная подпись участников.
Любой контракт должен быть подписан двумя или более участниками. Эта подпись идентифицирует каждого из подписантов и упраздняет такой странный социальный институт, как нотариусы. - Распределённая публичная среда сохранения и выполнения контракта.
Такой средой могут служить Ethereum, узлы которого сохраняют информацию о контракте и выполняют его. - Предмет договора и наличие инструментов для его реализации
Для продажи квартиры через смарт-контракты необходимо иметь как запись, подтверждающую владение этой квартирой, так и реализацию алгоритма контракта, позволяющего обмен этой записи владения взамен на что либо иное.
Современные смарт-контракты не могут заменить юридические ввиду отсутствия узлов-оракулов и на их плечи ложатся наиболее простые задачи, такие как автоматизация платежей или мультиподписи. В первую очередь ожидают внедрения смарт-контрактов в финансовой сфере и межбанковских переводах.
Беспощадная реальность
А мы же поговорим о практическом использовании смарт-контрактов прямо сейчас.
В конце ноября появилась игра cryptokitties. В этой игре вы коллекционируете криптокотиков, скрещиваете их с котейками друзей или своими, продаёте их и покупаете. Можно даже заделаться котосутенёром и выставлять котеек на панель. Каждый котейка уникален, обладает своим набором генов, которые передаются его потомству. Основная же особенность этой игры в том, что сами котики являются записями в блокчейне Ethereum, а все действия над ними являются смарт-контрактами.
Это означает, что когда вы решаете скрестить своего котейку с другим, используете смарт-контракт, где входящими параметрами являются ваши котики и цена, выставленная другом-сутенёром на скрещивание, результатом этой операции будет создание нового котика, принадлежащего вам. И всё это подписано вашими электронными подписями, находится в публичной сети и выполняется на множестве узлов блокчейна. У Ника Сабо (идеолога смарт-контрактов) в день релиза криптокотиков определённо дёргался глаз. И не только скрещивание котеек является смарт-контрактом. Выставление на аукцион, продажа, даже снятие с аукциона — всё это смарт-контракты.
Тысячи людей поспешили выкупать наиболее красивых котиков, в течение недели работы игры было создано уже более ста тысяч уникальных особей, о котах писали в газетах и даже показывали по ТВ. В то время, как одни пользователи высказывались нелестно о криптокотиках и интеллекте игроков, другие весело скрещивали котеек и хихикали, третьи спешили выставить купленных задёшево у «непрофессионалов» редких котеек и алчно потирали ладошки, а весь остальной мир взирал на это с явным удивлением и не знал, как на это реагировать.
Результатом появления котов стал резкий рост цены газа (газ — единица измерения вычислений в сети Ethereum, любая транзакция тратит определённое количество вычислительных мощностей системы и пользователь может управлять приоритетностью вычисления и подписи его транзакции путём повышения цены газа для этой транзакции)
Сотни тысяч транзакций простых пользователей зависли на этапе подтверждения и добавления в блоки, вытесненные дорогими транзакциями любителей криптокотов, вся система находилась в состоянии дикого превышения максимальных нагрузок. До 20% обрабатываемых транзакций приходилось на криптокотиков.
Сейчас, спустя 3 недели после релиза, шумиха спала. Общая нагрузка снизилась, доля криптокотиков в общей массе обрабатываемых транзакций составляет меньше 5%. Ethereum снова функционирует в штатном режиме, курсы криптовалют растут как на дрожжах и кажется, что этот инцидент не смог подорвать веру людей в системы блокчейн. Лишь разработчики сделали свои выводы и стараются решить проблему с масштабируемостью. От того, удастся ли им это, зависит всё будущее блокчейн и смарт-контрактов.
Вывод
Если подвести итог, то криптокотики показали следующее:
- Любой инструмент можно использовать для очень странных вещей.
- Нынешние публичные блокчейн среды не готовы к сколь-нибудь серьёзным нагрузкам.
- Криптовалюта для пользователей не является полным эквивалентом денег. Она схожа с премиальными валютами из игр в том, что пользователь не совсем представляет, сколько он тратит на своё развлечение.
- Продать картинку в браузере за 120 тысяч долларов — реально.
Возможности Ethereum обрабатывать порядка 10 транзакций в секунду серьёзно ограничивают серьёзное использование этой среды для коммерческого использования и хорошо, что эта проблема всплыла при запуске криптокотов, а не при переводе всей финансовой системы какой нибудь страны на смарт-контракты. Эта проблема на данный момент приоритетная для разработчиков и есть надежда на скорое её решение.
А до тех пор нам остаются лишь криптокотейки.
Автор статьи: Алексей Шафранов, Старший Java разработчик, Maxilect