Что такое смарт-контракты
Приветствую!
Думаю, почти все из вас хотя бы раз слышали термин "смарт-контракт", причём особо часто в контексте децентрализованных приложений (DApps).
Но что это такое? Зачем они нужны? Каким образом используются?
На эти и на другие вопросы я постараюсь ответить в данной статье. Более того, к её концу мы даже соорудим простенький, но зато свой собственный, смарт-контракт и научимся с ним взаимодействовать!
Оглавление:
- Смарт-контракт
1.1. Что это такое?
1.2. Примеры использования
1.3. Преимущества
1.4. Недостатки - Пишем свой собственный смарт-контракт
2.1. Необходимые понятия из программирования
2.2. Подготовка кошелька и получение тестовых токенов ETH
2.3. Разработка в Remix IDE
2.4. Развёртывание смарт-контракта
2.5. Простое использование смарт-контракта - Вывод
Вы можете перейти к любому пункту, нажав на его заголовок в оглавлении, а так же вернуться к оглавлению, нажав на заголовок пункта. Попробуйте, это очень удобно!
Что такое смарт-контракт
Впервые эту концепцию ещё в 90-ых описал Ник Сабо — известный криптограф, которому часто приписывают создание Bitcoin.
Он назвал смарт-контрактом набор записанных в цифровой форме договорённостей и протоколов, по которым стороны выполняют эти договорённости.
Также Сабо отметил, что затраты на то, чтобы хакнуть смарт-контракт, должны быть выше выгоды, которую можно получить от такого взлома.
Согласитесь, звучит довольно размыто и неконкретно...
Ник Сабо просто хотел найти способ заключения контрактов и договоров в цифровом виде.
Реальное же применение умные контракты нашли в мире криптовалют, где это - просто программы, работающие на блокчейне.
Код обычной прикладной программы (например, браузера) хранится у вас на компьютере, а код смарт-контракта находится по определённому адресу в блокчейне (так же, как и любая другая информация в нём, например, обычные транзакции с переводом средств).
Самой известной криптовалютой, реализовавшей данную концепцию, является Ethereum. На базе умных контрактов на этой платформе создаются и работают децентрализованные приложения. Грубо говоря, Ethereum — виртуальный компьютер, вычисления которого распределяются между майнерами.
Именно со смарт-контрактами на этой платформе мы и будем взаимодействовать в рамках данной статьи. Также данная технология доступна в протоколах Cosmos, EOS, Neo, TRON, Stellar, Cardano и др.
У каждого умного контракта на Ethereum есть свой адрес (выглядит так же, как и любой обычный пользовательский адрес кошелька), через который с ним можно взаимодействовать, отправляя транзакции с различными параметрами (ниже мы будем всё это подробно разбирать). Самую первую транзакцию отправляет создатель контракта.
Сервис Etherscan предоставляет удобный интерфейс для просмотра как обычных кошельков пользователей, так и смарт-контрактов (вот ссылка на один из них):