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

Смарт-контракты — это исполняемый код, работающий без посредников, и основа DeFi, стейблкоинов и NFT. Узнайте, как они работают.

7 минут
Что такое смарт-контракт?

Смарт-контракт — это самоисполняемый код, хранящийся в блокчейн-сети, который автоматически выполняет условия соглашения при их наступлении, без участия посредника. Смарт-контракты лежат в основе приложений, DeFi, NFT и DAO, обеспечивая прозрачное и надёжное соблюдение правил. Смарт-контракты не привязаны к какой-либо одной сети: Ethereum и другие EVM-совместимые блокчейны, Solana, Cardano, Polkadot и Sui — все они поддерживают смарт-контракты, каждый используя собственный язык программирования и модель исполнения. Поскольку смарт-контракт существует в блокчейне, он работает без посредника, его правила доступны для проверки любому желающему, а после развёртывания, как правило, не может быть изменён. Смарт-контракты — это строительные блоки большинства блокчейн-приложений, включая DeFi-протоколы, стейблкоины, NFT и DAO.

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

Как работают смарт-контракты

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

Выполнение смарт-контракта также требует затрат. Каждая сеть взимает комиссию за обработку вычислений и хранения данных, которые использует контракт, — на Ethereum и большинстве EVM-цепочек это называется «gas», а в других сетях применяются иные названия и модели комиссий (комиссии за транзакцию в Solana, комиссии за транзакцию плюс единицы выполнения скриптов в Cardano, комиссии на основе веса в Polkadot). Механика различается, но принцип одинаков: выполнение кода в блокчейнах потребляет ресурсы сети, и кто-то должен за это платить.

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

Идея смарт-контрактов появилась раньше любого блокчейна. Учёный-компьютерщик и правовед Ник Сабо ввёл термин «смарт-контракт» в 1994 году и развил его в эссе 1996 года, описав компьютеризированный протокол транзакций, исполняющий условия соглашения. Он сравнил эту концепцию с торговым автоматом, который надёжно выдаёт товар после получения оплаты, не требуя доверия к другой стороне (оригинальные работы Сабо, упоминаемые в историях этой концепции). В то время не существовало платформы, способной запускать подобный код с минимальным уровнем доверия и защитой от вмешательства, поэтому идея оставалась преимущественно теоретической на протяжении двух десятилетий.

Bitcoin, запущенный в 2009 году, представил блокчейн, но лишь ограниченный язык сценариев (Bitcoin Script), намеренно не являющийся полным по Тьюрингу: он может задавать условия расходования средств, такие как требования мультиподписи и временны́е блокировки, но не способен выполнять произвольные программы общего назначения. Bitcoin Script определяет, как можно тратить существующие средства, но не может выражать открытую логику о том, что происходит дальше, — поэтому Bitcoin не считается платформой смарт-контрактов общего назначения.

Ethereum, запущенный 30 июля 2015 года, стал первым крупным блокчейном, созданным специально для выполнения смарт-контрактов общего назначения посредством Ethereum Virtual Machine (EVM) — общей среды выполнения, которую каждый узел Ethereum исполняет идентично (ethereum.org, История Ethereum). Это сделало Ethereum программируемым в той мере, в какой более ранние блокчейны не были, и именно поэтому большинство терминов смарт-контрактов — gas (сетевые комиссии), контрактные аккаунты, Solidity — берут начало именно там. За прошедшие годы другие сети создали собственные среды смарт-контрактов с использованием различных языков и моделей исполнения, включая Solana (2020), скрипты Plutus для Cardano (2021), контракты ink! для Polkadot и объекты на основе Move для Sui (2023), распространив концепцию далеко за пределы одной сети.

Где выполняются смарт-контракты?

Среда выполнения и язык смарт-контракта полностью определяются сетью, в которой он развёртывается. Одни сети отслеживают состояние как балансы аккаунтов, которые контракты читают и записывают (модель аккаунтов Ethereum); другие отслеживают состояние как дискретные, расходуемые выходы (модель eUTXO Cardano, расширение модели UTXO Bitcoin) или как индивидуально принадлежащие объекты (объектно-ориентированная модель Sui). Эти различия влияют на то, как пишутся контракты и как они могут взаимодействовать друг с другом, но не на базовую гарантию: код выполняется автоматически и после развёртывания его сложно или невозможно изменить.

Сеть

Язык

Модель исполнения

Заметное применение в экосистеме

Ethereum и EVM-сети

Solidity; Vyper; компилируется в EVM-байткод

На основе аккаунтов; один вызов контракта выполняется за раз на цепочку

DeFi; стейблкоины; токены ERC-20 и ERC-721

Solana

Rust, как правило, с фреймворком Anchor

Sealevel: выполняет транзакции параллельно, если они не затрагивают одни и те же данные

Высокопроизводительный DeFi; NFT-маркетплейсы

Cardano

Plutus (на основе Haskell)

Extended UTXO (eUTXO): результаты транзакций можно проверить до их отправки

DeFi; выпуск нативных токенов

Polkadot (через парачейны)

ink! (на основе Rust); EVM-парачейны, такие как Moonbeam, также поддерживают Solidity

Работает поверх парачейнов на основе Substrate; развёртывание без разрешений

Приложения парачейнов; прототипирование

Sui

Move

Объектно-ориентированная: транзакции изменяют принадлежащие объекты, обеспечивая параллельную обработку

NFT; игры; DeFi

Bitcoin

Bitcoin Script

Ограниченный, не полный по Тьюрингу; только задаёт условия расходования средств

Кошельки с мультиподписью; временны́е блокировки; протоколы второго уровня

Источник: ethereum.org; Solana Sealevel; Cardano eUTXO; документация use.ink; концепции Sui Move.

Кто пишет смарт-контракты и использует их?

Разработчики пишут и развёртывают смарт-контракты; это может сделать любой, у кого есть необходимые инструменты и достаточное количество нативных токенов сети для покрытия расходов на развёртывание, причём разрешение от базовой сети для этого не требуется. После того как контракт запущен, любой желающий может взаимодействовать с ним — как правило, через интерфейс приложения, а не путём написания кода напрямую. Человек, обменивающий токены, создающий NFT или голосующий в DAO, запускает выполнение смарт-контракта, как правило, не нуждаясь в понимании базового языка или среды выполнения.

Стандарты токенов

Многие активы, называемые «токенами», представляют собой смарт-контракты, следующие общему стандарту, который позволяет кошелькам и приложениям взаимодействовать с любым совместимым токеном одинаковым образом. На Ethereum и других EVM-цепочках ERC-20 является стандартом для взаимозаменяемых токенов, включая большинство стейблкоинов и утилитарных токенов, а ERC-721 — стандартом для NFT, где каждый токен уникален. Другие сети имеют собственные аналоги — например, стандарт токенов SPL в Solana — разработанные для соответствующих моделей исполнения.

Что обеспечивают смарт-контракты?

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

Зачем нужны смарт-контракты?

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

Разрешения на токены и безопасность

Использование приложения нередко предполагает предоставление смарт-контракту разрешения на токены — права перемещать определённый токен от вашего имени. Это обычная практика, но она также является распространённым вектором атак, поскольку вредоносный контракт может запросить разрешение, позволяющее ему перемещать больше средств, чем намеревался пользователь. Разрешение на токен может быть ограничено конкретной суммой или быть неограниченным. Расширение MetaMask отображает полный объём разрешения на токен — включая адрес контракта и то, является ли разрешение ограниченным или неограниченным, — до подписания, что позволяет пользователю предварительно его проверить. Наше руководство по разрешениям на токены рассказывает, как их проверять и отзывать.

Риски смарт-контрактов

  • Ошибки необратимы: неизменяемый код с уязвимостью, как правило, нельзя исправить после развёртывания.

  • Аудиты снижают, но не устраняют риск: проверенные аудитом контракты всё равно подвергались эксплойтам.

  • Вредоносные контракты существуют в каждой поддерживающей их сети, а не только в одной.

Часто задаваемые вопросы об умных контрактах

Переведено ИИ. Может содержать ошибки. Пожалуйста, всегда проверяйте информацию.

Оцените перевод

Автор статьи:

  • MetaMask
    MetaMask

    MetaMask, ранее известная как Consensys Software Inc, — крупнейшая в мире самостоятельная финансовая платформа, предоставляющая людям единое место для хранения, расходования, накопления и приумножения средств как в криптовалюте, так и в традиционных активах. Компания создаёт потребительскую платформу, объединяющую платежи, сбережения, инвестиции и цифровые активы в едином бесшовном опыте. Вырастая из самого широко используемого в мире self-custodial кошелька, MetaMask предоставляет пользователям прямой контроль над их деньгами и активами, охватывая около 190 стран. MetaMask сыграл основополагающую роль в развитии Ethereum с 2016 года. Сегодня MetaMask занимает центральное место в экономике блокчейна, создавая операционную систему для Open Money и предоставляя людям полный контроль над их финансовой жизнью.

    Читать все статьи