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

Приветствую!

Думаю, почти все из вас хотя бы раз слышали термин "смарт-контракт", причём особо часто в контексте децентрализованных приложений (DApps).

Но что это такое? Зачем они нужны? Каким образом используются?

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


Оглавление:

  1. Смарт-контракт
        1.1. Что это такое?
        1.2. Примеры использования
        1.3. Преимущества
        1.4. Недостатки
  2. Пишем свой собственный смарт-контракт
        2.1. Необходимые понятия из программирования
        2.2. Подготовка кошелька и получение тестовых токенов ETH
        2.3. Разработка в Remix IDE
        2.4. Развёртывание смарт-контракта
        2.5. Простое использование смарт-контракта
  3. Вывод

Вы можете перейти к любому пункту, нажав на его заголовок в оглавлении, а так же вернуться к оглавлению, нажав на заголовок пункта. Попробуйте, это очень удобно!


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

Пропустить пункт

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

Согласитесь, звучит довольно размыто и неконкретно...

Ник Сабо просто хотел найти способ заключения контрактов и договоров в цифровом виде.

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

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

Именно со смарт-контрактами на этой платформе мы и будем взаимодействовать в рамках данной статьи. Также данная технология доступна в протоколах Cosmos, EOS, Neo, TRON, Stellar, Cardano и др.

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

Сервис Etherscan предоставляет удобный интерфейс для просмотра как обычных кошельков пользователей, так и смарт-контрактов (вот ссылка на один из них):