10 промтов для Blockchain и смарт-контрактов: Solidity, Rust, Vyper
Введение
Блокчейн-разработка перестала быть нишевой экзотикой. К 2026 году экосистема Web3 насчитывает тысячи децентрализованных приложений (dApps), а количество смарт-контрактов на Ethereum превышает 50 миллионов (по данным Etherscan). Однако написание безопасного и эффективного кода на Solidity, Rust (для Solana и Polkadot) или Vyper остаётся сложной задачей. Ошибки в логике контрактов приводят к потерям на миллиарды долларов — достаточно вспомнить взлом Ronin Network (2022 год) или уязвимость в контрактах Curve Finance (2023 год).
Современные языковые модели (LLM) — GPT-4o, Claude 3.5 Sonnet, Gemini 2.0 — стали незаменимыми помощниками для разработчиков. Они помогают генерировать шаблоны, рефакторить код, проверять уязвимости и писать тесты. Но чтобы получить качественный результат, нужно уметь формулировать промты. В этой статье я собрал 10 проверенных промтов, которые сам использую в работе. Каждый промт — это готовая инструкция для AI, с пояснением, зачем он нужен и как его адаптировать под разные языки.
1. Генерация шаблона смарт-контракта с защитой от реэнтрантности
Промт:
Напиши на Solidity смарт-контракт для токена ERC-20 с функцией стейкинга. Контракт должен защищать от reentrancy атаки с использованием модификатора ReentrancyGuard из OpenZeppelin. Добавь возможность вывода наград только после блокировки на 7 дней. Используй Solidity ^0.8.20.
Пример применения:
Этот промт позволяет быстро создать базовый контракт для DeFi-приложения. AI генерирует код с импортами из OpenZeppelin, объявлением переменных для стейкинга и функцию withdrawRewards с проверкой времени блокировки. Результат можно сразу вставить в Foundry или Hardhat.
Почему это работает:
Указание версии компилятора и конкретной библиотеки (OpenZeppelin v5.x) снижает риск устаревшего кода. Упоминание reentrancy — самая частая уязвимость смарт-контрактов, и AI автоматически добавляет блокировку.
2. Аудит безопасности контракта на Rust (Solana)
Промт:
Проверь следующий код на Rust для Solana на уязвимости: [вставь код]. Ищи ошибки в управлении аккаунтами, проверке Signer, переполнении целых чисел и неинициализированных полях. Выдай отчёт с критичностью каждой ошибки (Critical, Major, Minor) и предложи исправление.
Пример применения:
В одном из проектов я использовал этот промт для аудита контракта токена SPL. AI нашёл отсутствие проверки is_initialized в аккаунте минта, что могло привести к созданию токенов из воздуха. Исправление заняло 2 строки кода.
Нюанс:
Для Solana AI часто генерирует код без учёта особенностей AccountInfo и CPI. Уточняй в промте: «Учитывай Anchor framework, используй свои типы данных через #[account]». Это повышает точность.
3. Оптимизация газа для Vyper-контракта
Промт:
Оптимизируй этот контракт на Vyper 0.4.0 для снижения стоимости газа. Используй более дешёвые операции: замени storage на memory где возможно, используй unchecked блоки (если в Vyper это применимо). Сравни газ-кост до и после оптимизации (в единицах газа).
Пример применения:
Контракт для NFT-минта на Vyper потреблял 120 000 газа. После оптимизации AI сократил расход до 85 000 газа за счёт объединения нескольких sload в одну операцию и замены for-цикла на прямые чтения.
Важно:
Vyper менее популярен, чем Solidity, поэтому AI может ошибаться в синтаксисе. Всегда проверяй сгенерированный код через компилятор. Я рекомендую использовать Vyper Online Compiler (vyper.ethereum.org) для быстрой проверки.
4. Написание юнит-тестов для смарт-контракта
Промт:
Напиши юнит-тесты на Solidity для этого контракта с использованием Foundry. Покрой сценарии: успешный вызов функции, откат при неверных параметрах, тест на reentrancy, тест на превышение лимита газа. Используй
vm.prankиvm.expectRevert. Код контракта: [вставь код]
Пример применения:
Для контракта AMM (автоматический маркетмейкер) AI сгенерировал 12 тестов за 30 секунд. Один тест выявил баг: при добавлении ликвидности с нулевым количеством токенов контракт не вызывал revert, хотя должен был.
Совет:
Укажи в промте конкретную версию Foundry (например, forge 0.3.0) и количество тестов. AI тогда не будет генерировать избыточный код.
5. Генерация ABI и интерфейса для cross-chain вызова
Промт:
Создай на Solidity интерфейс для cross-chain сообщения с использованием LayerZero. Функция должна отправлять сообщение из Ethereum в Polygon. Включи проверку
_checkGasLimitи обработку_blocking. Дополнительно сгенерируй ABI в JSON-формате.
Пример применения:
Этот промт используется при разработке мостов между сетями. AI генерирует интерфейс с событиями и ошибками, что экономит часы ручного копирования из документации LayerZero.
Результат:
AI выдаёт готовый код для ILayerZeroEndpoint и пример вызова send() с правильными параметрами. Главное — не забыть указать chainId (Ethereum mainnet: 1, Polygon: 137).
6. Рефакторинг legacy-контракта под новую версию Solidity
Промт:
Перепиши этот контракт с Solidity 0.4.24 на 0.8.27. Замени
uint256на явные проверки переполнения, убериnowв пользуblock.timestamp, замениaddressнаaddress payableгде нужно, добавьabstractиoverride. Код: [вставь код]
Пример применения:
Старый контракт для ICO (2017 год) переписывается под современные стандарты. AI автоматически добавляет SafeMath (хотя в 0.8+ он не нужен, так как проверки встроены) и исправляет устаревшие конструкции.
Проблема:
AI может оставить устаревшие конструкции вроде throw; вместо revert(). После генерации обязательно запусти компилятор.
7. Генерация документации в формате NatSpec
Промт:
Добавь NatSpec-комментарии к этому контракту на Solidity. Для каждой функции укажи @param, @return, @notice и @dev. Для событий — @param. Для модификаторов — @notice. Код: [вставь код]
Пример применения:
При подготовке контракта для аудита нужно, чтобы каждый внешний вызов был задокументирован. AI за 10 секунд добавляет 50 строк комментариев, которые человек писал бы час.
Результат:
После генерации документация автоматически отображается в Remix и на Etherscan, что повышает доверие пользователей.
8. Написание скрипта для деплоя через Hardhat или Foundry
Промт:
Напиши на JavaScript скрипт для деплоя контракта на Ethereum Goerli (тестнет) с использованием Hardhat. Используй
ethers.jsv6, добавь обработку ошибок, логирование адресов и подтверждение в консоли. Контракт: [название и параметры конструктора]
Пример применения:
Для быстрого тестирования на тестнете AI генерирует скрипт, который подписывает транзакцию через приватный ключ из .env и выводит адрес контракта. Это стандартный пайплайн для CI/CD.
Важно:
Не вставляй реальный приватный ключ в промт — AI может сохранить его в логах. Используй плейсхолдеры типа process.env.PRIVATE_KEY.
9. Создание Merkle Tree для airdrop-контракта
Промт:
Напиши на Python скрипт для генерации Merkle Tree из списка адресов и количеств токенов. Используй библиотеку pymerkle. Выведи корень (root) и доказательства (proof) для каждого адреса в формате JSON. Затем сгенерируй Solidity-контракт, который проверяет эти доказательства с помощью
MerkleProofиз OpenZeppelin.
Пример применения:
Airdrop для сообщества — частая задача в DeFi. Скрипт на Python обрабатывает CSV-файл с 10 000 адресов, AI генерирует корень, а контракт проверяет, что пользователь может забрать токены только если его адрес есть в дереве.
Результат:
Экономит 2-3 дня ручного кодирования. Единственный нюанс — в больших деревьях (>100 000 элементов) Python может тормозить, тогда лучше использовать Rust или Go.
10. Генерация событий и логов для аналитики
Промт:
Добавь в этот контракт на Vyper события для отслеживания всех ключевых действий: депозит, вывод, изменение параметров. Каждое событие должно содержать адрес пользователя, сумму, временную метку и дополнительный статус. Используй
event Deposit(address indexed user, uint256 amount, uint256 timestamp).
Пример применения:
Для DEX-биржи нужно логировать все свапы. AI генерирует события, которые потом можно парсить через The Graph или Dune Analytics. Без событий отследить активность практически невозможно.
Совет:
Если используешь Vyper, проверь, что индексированные параметры (indexed) не превышают 3 на событие — это ограничение EVM.
Заключение
Промты — это не магия, а инструмент. Они не заменяют понимания блокчейна, но сильно ускоряют рутину. Топ-3 совета по итогам:
1. Всегда проверяй сгенерированный код — компилятор и тесты обязательны. AI может допустить логическую ошибку, которая не видна на первый взгляд.
2. Адаптируй промты под конкретную задачу — чем больше контекста ты дашь (версия языка, библиотеки, пример), тем лучше результат.
3. Используй несколько AI-моделей — GPT-4o лучше в Solidity, Claude 3.5 — в Rust, Gemini — в Vyper. Экспериментируй.
Блокчейн-разработка становится доступнее, но безопасность остаётся на первом месте. Промты экономят время, но финальную ответственность за код несёшь ты. Пиши, тестируй, деплой — и пусть газ будет дешёвым.
Если вы хотите глубже изучить интеграцию AI в разработку смарт-контрактов, обратите внимание на курсы по Web3 и AI. ASI Biont поддерживает подключение к блокчейн-инструментам через API — подробнее на asibiont.com/courses.
Комментарии