Перейти к содержимому
5 человек
в команде
5 месяцев
в работе
Спроектировали и разработали совместно с IOHK децентрализованное приложение на платформе Plutus. Созданный DApp — это один из первых NFT-маркетплейсов на Cardano
Узнать больше
Web3 book by MetaLamp
Blockchain

Ethereum и смарт-контракты

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

Тем не менее значение Ethereum для web3 сложно переоценить. Ведь именно он стал первой полноценной платформой для создания децентрализованных приложений. Bitcoin стал цифровым золотом, активом для передачи ценности. Ethereum же расширил область применения до других сфер бизнеса: например, сферы финансовых инструментов, логистики и даже цифрового искусства.

Стало это возможным благодаря тому, что создатели Ethereum заложили в него архитектуру и создали ряд инструментов для написания смарт-контрактов. Чего не сделали создатели Bitcoin, но у них и не было такой цели.

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

Ключевые элементы, которые вы изучите:

  1. Суть смарт-контрактов
    В общем виде это просто код, который позволяет разработчикам писать бизнес-логику и записывать в блокчейне результат её исполнения. Это позволяет избавляться от всех посреднических функций и делать все взаимоотношения доверительными, прозрачными и безопасными.
  2. Отличия Ethereum от Bitcoin
    Вам предстоит узнать, что такое полнота по Тьюрингу и почему для Bitcoin нельзя писать сложные Dapps, а для Ethereum — можно. Как хранится информация о балансах в обоих блокчейнах и какие это даёт преимущества для Ethereum. Для чего добавили хранилище данных и многие другие вопросы.
  3. Ограничения смарт-контрактов
    Хоть смарт-контракты — это код программистов, они не могут использовать все те же возможности из мира веб2. Например, нельзя взять и послать запрос из смарт-контракта в какой-нибудь сервис посредством API. Или как вам такое: нельзя взять и поменять написанный код в смарт-контракте. Это имеет свои причины, и, хоть вы и не программист, вам это очень важно знать.
  4. Комиссии
    Любое исполнение контракта и добавление транзакции в блок стоит денег. Комиссия — это мотивация для тех, кто работает с вашей транзакцией. В этом вопросе довольно много интересных вещей. Например, кто эту комиссию платит, как вычисляется размер, что нужно сделать, чтобы твою транзакцию обработали быстрее других.
  5. Ethereum Virtual Machine
    Это среда исполнения смарт-контрактов. Каждый, кто исполняет код смарт-контракта, должен получать один и тот же результат. Это одно из обязательных условий децентрализации.
  6. Примеры приложений
    Намеренно не хотим вас погружать с ходу в сложные финансовые инструменты и начнём с довольно простых примеров, которые продемонстрируют всю красоту и пользу смарт-контрактов.
Если без биткоина нельзя представить криптовалюту, то без Ethereum и его смарт-контрактов невозможно представить массовое и удобное их использование.
Материалы для изучения
Контрольные вопросы
  1. Что такое смарт-контракты? Какую проблему они решают?
  2. Почему невозможно писать смарт-контракты для биткойна, но возможно для Ethereum?
  3. Как сделать HTTP-запрос из функции смарт-контракта?
  4. Можно ли вызвать функцию другого смарт-контракта изнутри функции смарт-контракта?
  5. Можно ли вызвать функцию смарт-контракта с задержкой с использованием таймера? Может ли контракт автоматически вернуть средства пользователю, если транзакция была нарушена?
  6. Кто оплачивает комиссию за вызов метода смарт-контракта? Как рассчитывается эта комиссия?
  7. Что такое Gas Price и Gas Limit?
  8. Что произойдёт, если комиссии недостаточно для выполнения функции смарт-контракта?
  9. В чём разница между кошельком и контрактом в сети Ethereum?
  10. В чём разница между цепочкой состояний и цепочкой изменений?
  11. Что такое хранилище в смарт-контракте сети Ethereum?
  12. Можно ли изменить код контракта после деплоя его в сеть?
Практическое задание
Просто посмотрите, как выглядит код из публичных и верифицированных смарт-контрактов
VKontakte GitHub Telegram vc.ru