Что такое смарт-контракты?

смарт-контракт

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

Такие контракты основаны на блокчейн-технологии, которая является основой биткоина и большинства других криптовалют. Входная информация представляет собой значения, задаваемые разработчиками, и когда эти значения соблюдаются, контракт исполняется самостоятельно на основе правил, на выполнение которых он был запрограммирован.

Смарт-контракты являются эквивалентом интерфейса прикладного программирования (API), но вместо использования на обычной веб-платформе они применяются на блокчейне. Интерфейс прикладного программирования (API) даёт пользователям возможность взаимодействовать и внедрять определённые функции на платформе, с которой они работают.

Что делают смарт-контракты

Смарт-контракт позволяет пользователю децентрализованного приложения (dApp) получать доступ к определённой информации, находящейся в децентрализованной базе данных блокчейна. В одном приложении может быть несколько смарт-контрактов, которые могут выполнять различные функции при взаимодействии с блокчейном.

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

История смарт-контрактов

Ник Сабо (Nick Szabo), которому приписывают создание основ криптовалют, был первым, кто предложил концепцию смарт-контрактов в 1994 году. Когда эта концепция только появилась, не было платформ, которые могли бы поддерживать смарт-контракты, и поэтому, очевидно, к ним не проявляли никакого интереса.

В 2008 году была создана первая криптовалюта биткоин, а вместе с ней и блокчейн-технология. Эта инновация обеспечила подходящую среду для разработки кода смарт-контрактов.

Поначалу блокчейн использовался преимущественно для совершения транзакций и создания новых монет, но с появлением Ethereum всё изменилось. Ethereum стал первой блокчейн-платформой, разработавшей код, для разработки децентрализованных приложений (dApp).

Это был переломный момент, после которого появилось множество других платформ, например, NEO и EOS. Растущая популярность блокчейн-технологии привлекла внимание к смарт-контрактам и возможностям их использования, что, в свою очередь, привело к расширению dApp на основе блокчейнов.

За прошедшие годы на таких платформах, как TRON и Ethereum, количество игровых и гемблинговых Dapps заметно подросло. Платформа Cardano, например, работает над тем, чтобы в этом году внедрить функциональность смарт-контракта посредством обновления Goguen.

NEM, Stellar, Waves и Tezos — популярные блокчейн-проекты, которые позволяют также создавать и запускать смарт-контракты.

смарт-контракт

Приложения и блокчейны со смарт-контрактами

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

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

Смарт-контракт: устройство изнутри

Взаимозависимость

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

Теоретически смарт-контракты могут использоваться для полного мониторинга и управления системами и организациями. Данный тип системы был в некоторой степени реализован в различных криптовалютах, в которых условия управления сетью были определены предварительно, что позволило платформе автономно и независимо управлять собой.

Объекты смарт-контракта

Каждый смарт-контракт состоит из трёх составных частей, которые также называются объектами:

  • Первый объект называется «подписывающие стороны» — это две или более сторон, которые используют смарт-контракт; они дают своё согласие или несогласие относительно предложенных условий с помощью цифровых подписей;
  • Второй объект представляет собой предмет соглашения. Существование этого объекта ограничено и касается только среды смарт-контракта. В противном случае смарт-контракты должны бы иметь возможность свободного доступа к объекту;
  • Третий объект смарт-контракта — это конкретные условия. Исходя из этих условий, договор будет исполняться сам. Они должны быть описаны в подробных математических терминах и реализованы на языке программирования, который совместим с блокчейном данного смарт-контракта.

Среда смарт-контракта

Чтобы существовать, смарт-контракты должны иметь подходящую среду, в которой они могут работать. Первым критерием такой среды является поддержка шифрования публичным ключом, что позволяет подписывать транзакции с помощью шифровальных кодов, которые генерируются уникально для каждого пользователя. Это система, которая используется при доступе к криптовалюте из кошелька.

Второе условие, которое должно быть выполнено, — это наличие открытой и децентрализованной базы данных, к которой имеют доступ все стороны договора. База данных должна быть надёжной и полностью автоматизированной.

Наконец, введённые в смарт-контракт цифровые данные должны поступать из абсолютно надёжного источника. Это включает в себя использование корневых сертификатов безопасности SSL, HTTPS и различных протоколов для безопасного подключения.

Кодирование смарт-контрактов

Solidity — это язык программирования, на котором основан смарт-контракт. Также с 2015 года он является языком программирования Ethereum. Он имеет синтаксис, похожий на синтаксис JavaScript, и специально создан для компиляции кода Ethereum Virtual Machine.

Самым удобным инструментом для разработки смарт-контрактов считается Remix — онлайн IDE (интегрированная среда разработки). Вы просто копируете исходный код и вставляете его в Remix; код должен автоматически скомпилироваться.

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

Смарт-контракты предоставляют своим сторонам определённую степень доверия и действуют в качестве нейтральной стороны при подписании сделки. Кроме того, поскольку процесс автоматизирован, участвующим сторонам не нужно куда-либо ездить и лично присутствовать при заключении контракта. Люди из двух разных мест могут легко совершать сделки, даже не встречаясь лицом к лицу. Это экономит время и деньги каждого человека.

Так как смарт-контракт зашифрован и распределён между нодами, его нельзя потерять или изменить без разрешения. Другое преимущество заключается в том, что из процесса исключается большинство посредников, и только разработчик, заключающий договор, является единственным требуемым лицом.

Также в смарт-контракт могут быть интегрированы функции безопасности для автоматического создания резервных копий и дубликатов в случае повреждения или потери данных исходника. Криптография, или шифрование — это технология, используемая для защиты документов. Хакерам придётся потратить огромное количество времени, усилий и денег, чтобы проникнуть туда и скомпрометировать их.

Кроме того, смарт-контракты увеличивают скорость и эффективность, так как здесь не требуется ручной обработки документов.

Недостатки смарт-контрактов

Вместе с тем смарт-контракты имеют ряд недостатков. Из-за новизны этой технологии потребители могут проявлять к ней осторожность, поскольку ещё не понимают всей сути.

Смарт-контракты — это коды, которые написаны людьми. И здесь не исключён человеческий фактор, ведь программисты, как и все мы, тоже совершают ошибки. К сожалению, некоторые ошибки обходятся очень дорого (инцидент с DAO).

Если данные уже записаны в блокчейн, то внести коррективы будет очень сложно, и это может привести к большему количеству системных ошибок и снижению безопасности.

Другая проблема заключается в том, что смарт-контракты не имеют чёткого юридического статуса. В настоящее время не существует официального государственного регулирования, применяемого к сфере смарт-контрактов.

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

Даже если вы хороший программист, вы не можете просто сделать свой смарт-контракт и использовать его для сделки с недвижимостью. Вам всё равно придётся в какой-то момент проконсультироваться с ИТ-специалистом, чтобы проверить точность вашего кода.

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

В настоящее время технология смарт-контрактов всё ещё находится в зачаточном состоянии и требует более интенсивных разработок для использования в более сложных решениях будущего.

Это также будет Вам интересно:

Источник

iMag.one - Самые важные новости достойные вашего внимания из более чем 300 изданий!