Термин «смарт-контракт», так же как и слова «блокчейн», «ИИ», «облако», в последнее время очень часто становится объектом обсуждений. И в этом нет ничего удивительного — лучше быть уверенным в том, что произойдет дальше, чем просто полагаться на существующую правовую систему.
Основные преимущества смарт-контрактов заключаются в следующем:
- контракты вступают в силу автоматически, они точные и надежные;
- контракты создаются, обрабатываются и завершаются без посредников;
- (как следствие) сторонам не нужны юристы.
Но что же такое смарт-контракты? Они существуют только в сети Эфириума? Можно ли сказать, что смарт-контракты — это наше будущее? В этой статье мы подробно рассмотрим, что собой представляют смарт-контракты и чем они, напротив, не являются.
Что такое смарт-контракт?
Прежде всего, давайте дадим общее определение слову «контракт». Контракт — это сделка между двумя или более участниками, которая обязывает их к чему-либо. Например, платить за прокат автомобилей или ремонтировать поврежденную машину в обмен на ежемесячную страховку.
В отличие от обычного контракта, смарт-контракт поддерживается компьютерным кодом, который проверяет все условия сделки и автоматически их выполняет. Предположим, один человек согласился доставить другому товар через три месяца. Код проверяет подлинность этой сделки (был ли товар доставлен вовремя?) и выполняет необходимые действия (денежный перевод) без возможности отменить операцию.
Главная особенность смарт-контрактов заключается в том, что они не нуждаются в доверии. А это значит, что сторонам не нужен посредник, который будет следить за выполнением всех условий. Вместо того, чтобы полагаться на компании и правительства или ждать, пока кто-то проверит сделку, люди могут использовать смарт-контракты, которые будут выполнять все необходимые действия вовремя и честно.
Смарт-контракты довольно примитивны
Слово «смарт» (от англ. smart − умный) на самом деле не имеет ничего общего с умом, поскольку у контрактов не может быть врожденного интеллекта в принципе. «Смарт» означает необходимость того, чтобы одна из сторон сотрудничала с другой для выполнения условий соглашения. В то время как интеллектуальный контракт действовал бы как судья — принимал бы во внимание смягчающие обстоятельства, ссылался бы на дух закона и т.д., смарт-контракт, напротив, представляет собой букву закона, в которой нет места двусмысленности, которая не меняет правила и не учитывает никаких вторичных условий.
Смарт-контракты сложны
Многие ошибочно полагают, что смарт-контракты существуют только в пространстве Эфириума (здесь следует отдать должное маркетологам). Но правда в том, что изначально Биткоин был написан на Script (язык программирования, позволяющий писать смарт-контракты). Более того, первые смарт-контракты были написаны еще в 1995 году, задолго до создания Биткоина. Разница между смарт-контрактами в Биткоине и Эфириуме кроется в языковых деталях. В отличие от Script, Solidity (язык программирования в Эфириуме) полный по Тьюрингу. Вот почему смарт-контракты в Эфириуме такие трудные в изучении.
Из-за их сложности возникают нежелательные последствия, например, потенциальное нарушение безопасности. Всё как в реальной жизни: чем сложнее контракт, тем труднее предсказать возможные недостатки и ошибки. Но в случае со смарт-контрактами безопасность охватывает все варианты исполнения контракта и все его результаты. Иногда даже сам автор может быть удивлен поведением контракта.
Полнота по Тьюрингу в языке смарт-контрактов вызывает проблемы во время анализа. Это связано с особенностями такого рода программных языков. Чтобы доказать надежность контракта, нужно проверить программу на отсутствие багов, что практически невозможно из-за сложности программного обеспечения. Вам понадобилось бы несколько лет, чтобы научиться правильно излагать текст бумажного контракта. Смарт-контракты требуют такого же уровня компетенции. Контракты, написанные неквалифицированными людьми, небезопасны — многие из таковых уже были исследованы и проанализированы.
В сети Биткоин такой проблемы нет, так как у участников нет возможности написать сложную структуру. Смарт-контракты в Биткоине не могут быть сложными, а простые контракты легко проверить на достоверность и безопасность.
Эфириум обязывает всех авторов договора отвечать за последствия исполнения контракта.
ETH смарт-контракты на самом деле не являются контрактами
В теории, довольно разумно перенести ответственность за результаты контракта на авторов. Однако на практике появляется все больше последствий в виде централизации.
«Код есть закон» («code is law») — одна из основных особенностей Эфириума. Это означает, что результаты контракта неоспоримы. Авторы смарт-контрактов должны понимать, что они в ответе за то, что разрабатывают. Создание неправильного смарт-контракта — уже само по себе наказание. Именно это и произошло в свое время с The DAO, что привело к краху компании.
The DAO (Децентрализованная автономная организация) — это учреждение, призванное показать, насколько сложными могут быть смарт-контракты в Эфириуме. The DAO предложила своим пользователям делать депозиты для получения прибыли в соответствии с инвестициями, осуществляемыми Организацией. Сами решения должны были достигаться в сравнении с консенсусом между заинтересованными сторонами. Учитывая стоимость ETH на тот период ($20), The DAO могла привлечь $150 миллионов в ETH. К сожалению, код не был должным образом защищен, поэтому его взломали, а The DAO в результате потеряла все свои средства.
Впрочем, взломщиков The DAO технически нельзя назвать хакерами. Основная идея взлома заключается в том, чтобы проникнуть в систему, используя ее уязвимости. The DAO была взломана кем-то, но это не было нарушением безопасности. Это было больше похоже на использование непредвиденного поведения системы, которая вообще не была подвержена хакерской атаке.
После этого Эфириум отказался от догмы «Код есть закон» и откатил систему, вернув все украденные деньги. Проще говоря, разработчики Эфириума исправили все ошибки, допущенные разработчиками и инвесторами The DAO.
Так появился Ethereum Classic — форк Эфириума. Некоторые участники сети отказались отступать от правила «Код есть закон». Кроме того, разработчики решили удалить полноту по Тьюрингу, считая ее потенциально опасным свойством. ERC20 и ERC721 — это общепринятые стандарты в отношении смарт-контрактов, и оба типа контрактов могут быть созданы без полноты по Тьюрингу.
Смарт-контракты действуют только в цифровом мире
Смарт-контракты хороши даже без полноты по Тьюрингу. В отличие от традиционных контрактов, гораздо проще использовать смарт-контракты. По крайней мере, они не требуют обращения в суд в случае возникновения проблем.
Например, одна сторона сделки может доказать, что машина была сдана в аренду. Другая сторона может доказать, что деньги были переведены, и получить автомобиль. Однако здесь возникают две проблемы.
Первая из них связана с тем, что доверие централизованной третьей стороны неприемлемо. Смарт-контракты не могут полагаться на один источник, это просто бессмысленно в блокчейн-парадигме. Характер смарт-контрактов должен быть распределенным.
Затем возникает вторая проблема. Смарт-контракты требуют тесной связи с физическими компонентами в рамках децентрализованного подхода. Цифровой мир должен быть привязан к физическому. Эта проблема известна как «проблема Оракула».
Фактическое перемещение автомобиля от одного участника соглашения к другому должно быть зафиксировано. Существует несколько подходов для записи, но все они требуют централизации физического мира. Рассматривая автомобиль как токен, основанный на Эфириуме, мы можем представить его перемещение в атомный своп ETH. Но второй участник должен верить, что этот токен действительно коррелирует с автомобилем. Таким образом, нужен Оракул, который может гарантировать, что передача токена фактически означает официальную передачу автомобиля в реальной жизни.
Более того, даже если правительство примет токен как замену автомобиля, что случится, если он будет украден или утерян? Повторная выдача, получение и любые другие подобные проблемы вызывают множество вопросов.
Подключение цифрового пространства к реальному — это очень сложная проблема. Реальные активы контролируются законодательством — они регулируются централизованным способом. Это делает цифровые и реальные вещи существенно разными. Доверительная третья сторона неприемлема для смарт-контрактов.
Цифровые объекты, такие как музыка, фильмы или книги, могут столкнуться с такой же проблемой. Они существуют в «реальном» законодательстве и нуждаются в Оракулах, когда встает вопрос о доверии. Оракулы, в свою очередь, — обыкновенные судьи. Вместо машинной простоты необходимо предусмотреть различные расклады, как в реальной жизни. Это непросто, а главное — ненадежно.
Только цифровые акции на предъявителя могут работать без Оракулов. И это касается всех сторон сделки. Токен не может коррелировать с чем-то вне блокчейна. Единственный выход — сделать смарт-контракты цифровой акцией на предъявителя.
Вывод
К сожалению, смарт-контракты не столь практичны, как может показаться. В данном контексте с ними связано намного больше проблем, чем готовых решений. Полнота по Тьюрингу усугубила ситуацию, что привело к непредвиденным последствиям. Смарт-контракты не могут быть надлежащим образом защищенными, надежными и независимыми. В качестве цифровых носителей они все еще ограничены децентрализованными протоколами, как у Биткоина.
Сергей Борсук, Blockspoint