Первоначальная разработка под именем «умных контрактов» принадлежала криптографу по фамилии Сабо. В Работе под одноименным названием, он детально описал концепцию автоматизированного компьютеризированного протокола транзакций на условиях договора. Впоследствии их разработка стала одним из наиболее многообещающих направлений в блокчейн-индустрии.
Однако вокруг смарт-контрактов постепенно появляется все больше путаницы, что связано с быстрыми темпами их развития. Бытует также множество заблуждений касательно их природы. Ниже приведены мифы, получившие широкое распространенные.
Смарт-контракты представляют собой простой набор кода
Зачастую пользователи, которые считают, что умные контракты представляют собой просто обычный код, плохо разбираются в их строении. Они отличаются, прежде всего, более обширным набором характеристик. Тогда как состав обычных договоров предполагает наличие двух основных составляющих: операционной и денотационной семантики.
Говоря о необходимости контрактов, нужно отметить, что основной предпосылкой для обращения к ним стало недоверие между сторонами соглашения. На втором месте находится необходимость подтверждения законности совершаемой сделки. В таком случае, смарт-контракт представляет собой некий итог соглашения сторон вне зависимости от их количества. Его можно рассматривать как семантический элемент обычного «соглашения», созданный на совершенно другом языке.
Решение проблемных вопросов, возникающих в процессе применения умных контрактов, возможно традиционными способами. Имеется в виду посредством проведения переговоров или обращением в суд, если мирным способом конфликт решить не удалось. Сам процесс будет отличаться тем, что передача определенной ценности будет уже совершена, поскольку условия умного контракта выполняются автоматически.
Автономная работа смарт-контрактов
Многие пользователи считают, что смарт-контракты обладают способностью изучать окружение и от качества полученной информации, вносить коррективы в цикл своего исполнения. Другими словами, они могут контактировать с внешними источниками информации и менять статус, исходя от предложенных сведений.
Как известно, работа блокчейна обеспечивается благодаря транзакциям. На этом же основывается и любой умный контракт. Принцип их действия можно назвать реактивным. Код смарт-контракт исполняться только при активировании последнего прямым сообщением или осуществлением транзакции. Сделать это можно через аккаунт, владельцем которого является частное лицо или посредством другого смарт-контракта, пославшего соответствующее сообщение.
Не стоит забывать об ограничении объема информации, с которой может работать умный контракт. Ethereum в ряде документов фиксирует необходимость полной детерминированности при их исполнении. Единственным контекстом должно являться определение позиции конкретного блока в блокчейне наряду с данными, доступными при этом. Также важным условием является полная изолированность смарт-контракта. Таким образом, должна быть исключена возможность доступа кода к любым внешним файлам и процессам. Взаимодействие между этими контрактами всегда имеет ограниченный вид.
Доступные данные включают в себя информацию, посылаемую непосредственно контрактам через транзакцию, а также сведения, которые сберегаются в памяти системы или в специальном хранилище. В некоторых случаях контракты могут взаимодействовать между собой, например, для считывания баланса. Но при этом подобную операцию можно проводить только однажды.
Количество производимых операций умных контрактов невелико. Так, например, они в состоянии осуществлять, в основном, самые простые вычислительные действия. Анализ значительного количества данных им недоступен.
Таким образом, говоря о разработке определенных процессов с возможностью включения в них умных контрактов, не стоит забывать об их ограниченных способностях как в вычислениях, так и в обработке информации. Однако это относится, в основном, к смарт-контрактам Ethereumа.
Ложное определение
Нередко пользователи употребляют понятие «типового умного контракта». В таких случаях они ошибаются, как если бы говорили о «типичном блокчейне», подразумевая определенную сеть.
Как известно, относительно немногие системы могут успешно создавать смарт-контракты. Но если даже блокчейн в состоянии выполнить эту задачу, то ему придется задействовать побочные сети. И контракт в этом случае получится достаточно ограниченным.
Таким образом, заводя речь о разработке процессов, связанных с ними, стоит помнить, что «типовой умный контракт» — это ошибочное определение. Чтобы создать продукт, полностью подпадающий под определенные требования, необходимо со всей серьезностью подойти к выбору блокчейна.