Смарт-контракты — это договоры, которые представлены в формате алгоритмов для компьютеров. Если сделать ошибку в алгоритме, это может серьёзно отразиться на существовании проекта. Cryptonomist разобрался, какие ошибки совершают разработчики смарт-контрактов и на что обращать внимание при анализе таких алгоритмов.
1. Составление смарт-контракта без учёта сферы применения
Обычный договор может использоваться для регулирования любой области. Однако в смарт-контракте можно описать достаточно узкое число операций. Лучше всего использовать их вместо счетов-аккредитивов. К примеру, смарт-контракт удобен, если стороны совершают сделку купли-продажи, но не доверяют друг другу.
Купля-продажа по смарт-контракту происходит следующим образом: система проверяет, есть ли у покупателя на счету криптовалюта. Затем смарт-контракт начинает переводить её на счёт продавца, чтобы покупатель не мог потратить криптовалюту на другие цели, и отслеживает внесение записи в нужный реестр (к примеру, в ЕГРН или реестр договоров долевого участия при сделках с недвижимостью). Как только запись добавлена в реестр, смарт-контракт завершает перевод средства на счет продавца.
Но смарт-контракты стоит заключать только в отношении объектов, которые либо уже существуют в цифровом формате, либо имеют электронный аналог. К примеру, ящик яблок по смарт-контракту просто так не продашь. Потому что акт приёма-передачи будет, но в процессе потеряется объективность, независимость от человеческого фактора и автоматизация. В случае же с недвижимостью отслеживание записей в реестре имеет смысл.
2. Игнорирование денежных единиц
Смарт-контракты работают на основе блокчейна, и все расчёты по ним осуществляются в криптовалюте. Если же криптовалюты нет, это препятствует реализации контракта.
Криптовалюта добывается с помощью майнинга (непосредственно путем вычисления хешей, начислением токенов пропорционально остатку в кошельке и другими способами). Конечно, можно купить криптовалюту за фиат, но рядовому пользователю это не всегда удобно делать.
Достаточно мало стран в мире легализовали криптовалюты, в частности, их покупку и продажу. Пока ситуация не изменится, она будет препятствовать полноценному применению смарт-контрактов. Если разработчик не понимает, почему пользователь будет платить именно криптовалютой, смарт-контракт не имеет особого смысла.
3. Надежда на внесение изменений в смарт-контракт
Нередко уже после создания договора разработчики хотят внести в него изменения или уточнения. Если это стандартный контракт, то можно написать приложение к нему, которое будет иметь юридическую силу.
Но смарт-контракт не предполагает изменений. В децентрализованной сети попросту нет администратора, который обладал бы правами внесения исправлений в смарт-контракт. Нет и кнопки, которая может остановить запущенную программу.
Фактически история знает лишь один случай, когда работу смарт-контракта пришлось регулировать вручную. В июне 2016 года систему The DAO взломали хакеры и стали выводить токены на свои кошельки. Ошибка в смарт-контракте позволила им сделать это, а заодно и обрушить курс биткоина и эфира.
Но даже тогда контракт не переписали. Использовали хардфорк, в результате которого криптовалюта разделилась на две — Ethereum и Ethereum Classic.
4. Игнорирование законодательства
Практически любой традиционный договор можно оспорить в суде. Со смарт-контрактами это не работает. Их невозможно признать недействительными. Точнее, признать-то можно, но это ни на что не повлияет, к тому же участники системы будут по-прежнему видеть информацию о транзакции.
Пока история не знает случаев, когда стороны, заключившие смарт-контракт, хотели оспорить его в суде. Ведь, в самом деле, глупо оспаривать компьютерный алгоритм, ещё и в отсутствие правового поля.
Однако с легализацией криптовалют и смарт-контрактов такие прецеденты наверняка появится. Поэтому составлять смарт-контракты, которые не противоречили бы законодательству, стоит уже сегодня.
5. Надежда на конфиденциальность
Криптовалюты и смарт-контракты не так анонимны, как нам хотелось бы. Даже если личные данные участников платежей не сообщат никому, детали транзакций всё равно останутся доступны всем — таковы принципы блокчейна.
В интернете можно найти примеры смарт-контрактов, на базе которых построены блокчейн-казино. Анализ кода позволяет сделать вывод, что казино не обманывает каждого участника игры в рулетку.
Но отнюдь не всегда открытость идёт на пользу бизнесу. Так, в блокчейне чаще всего можно отследить все транзакции с определенного кошелька, с кошельков, на которые данный пользователь переводил криптовалюту,
Резюме
Смарт-контракты — мощный механизм реализации договоров в цифровом формате, но пока его целесообразно применять отнюдь не везде. Ошибки при составлении смарт-контрактов могут стоить миллионы, как в случае с The DAO. Также стоит помнить, что смарт-контракты не обеспечивают анонимность и их нельзя оспорить в суде.