Основы

кракен даркнет ссылка: программа, которая исполняет договор

Обновлено · 3 мин чтения

Свиток договора, превращающийся в строки программного кода

Смарт-контракт — это программа, записанная в блокчейн, которая автоматически выполняет заданные условия. Она не устает, не берет взяток и не может передумать: если условие выполнено, действие произойдет.

Что такое смарт-контракт простыми словами

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

Термин предложил криптограф Ник Сабо еще в 1990-х годах. Широкое применение идея получила после запуска эфириума в 2015 году.

Как работает смарт-контракт

  1. Написание. Разработчик описывает правила в коде: например, «если на контракт поступило 100 USDT, отправить покупателю цифровой билет».
  2. Публикация. Код компилируется и записывается в блокчейн. Контракт получает собственный адрес.
  3. Вызов. Пользователь отправляет на адрес контракта транзакцию с данными и, при необходимости, средствами.
  4. Исполнение. Все узлы сети выполняют код и получают одинаковый результат. За вычисления платится комиссия — в эфириуме она называется газом.
  5. Запись результата. Изменения состояния — балансы, владельцы, статусы — фиксируются в блокчейне.

Ключевые свойства

  • Неизменность. Опубликованный код нельзя исправить. Если обновление предусмотрено, это прописывается заранее.
  • Прозрачность. Код и все вызовы открыты для проверки.
  • Детерминированность. Одни и те же входные данные всегда дают один и тот же результат.
  • Автономность. Контракт работает, даже если его автор исчез.

Примеры применения

СфераЧто делает смарт-контракт
Обмен токеновДецентрализованная биржа меняет один токен на другой по формуле. Подробнее — в статье о DeFi
КредитованиеПринимает залог, выдает заем и автоматически ликвидирует залог при падении цены
Выпуск токеновВедет учет балансов стейблкоинов и других токенов
NFTХранит список уникальных токенов и их владельцев — см. статью о NFT
ЭскроуУдерживает оплату, пока обе стороны не подтвердят выполнение сделки
ГолосованияПодсчитывает голоса владельцев токенов и исполняет принятое решение

Языки разработки

Для Ethereum и совместимых сетей чаще всего используют Solidity — язык с синтаксисом, напоминающим JavaScript. Существует и альтернатива — Vyper, похожий на Python. В Solana контракты пишут на Rust, в Aptos и Sui — на языке Move. Перед публикацией код тестируют в тестовых сетях, где монеты ничего не стоят.

Уязвимости и ограничения

  • Ошибки в коде. Повторный вход (reentrancy), неверная проверка прав доступа, переполнение чисел. Самый известный пример — взлом The DAO в 2016 году, после которого сеть Ethereum разделилась.
  • Зависимость от оракулов. Контракт не видит внешний мир. Курсы валют и результаты событий ему передают оракулы, и их можно атаковать.
  • Права администратора. Возможность «обновить» контракт удобна, но дает команде власть над средствами пользователей.
  • Юридическая неопределенность. Код исполняется буквально, даже если результат противоречит намерениям сторон.

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

Частые вопросы

Можно ли изменить смарт-контракт после публикации?

Код опубликованного контракта неизменен. Разработчики могут заранее заложить механизм обновления через прокси-контракт, но это означает, что у кого-то есть право менять логику.

Имеет ли смарт-контракт юридическую силу?

Сам по себе это программа, а не договор в юридическом смысле. Юридическая сила зависит от законодательства и от того, как стороны оформили свои отношения.

На каком языке пишут смарт-контракты?

Для Ethereum и совместимых сетей чаще всего используют Solidity и Vyper, для Solana — Rust.