Проекты

ChatGPT для разработки смарт-контрактов

4 способа, как web3-разработчикам использовать большую языковую модель

ChatGPT для разработки смарт-контрактов

Нейросети, большие языковые модели и, в частности ChatGPT, стали самой волнующей темой последних лет. Скорее всего, вы уже просили ChatGPT написать стихи, песню или объяснить теорию струн простым языком. Но это далеко не единственный способ применения этого инструмента. Нейросеть может стать эффективным подспорьем в работе и обучении.

В статье расскажем, как web3-разработчики могут использовать ChatGPT в своих интересах уже сегодня: для быстрого ресерча, улучшения разработки смарт-контрактов, исправления багов и отработки навыков программирования. При грамотном использовании нейросеть может ускорить написание смарт-контрактов в 10 раз.

Начало работы с ChatGPT

В настоящее время ChatGPT можно использовать бесплатно через веб-интерфейс, именно так мы и поступим. Создаем учетную запись в OpenAI и попадаем на страницу Welcome to ChatGPT. Она выглядит примерно так:

Скриншот велком-экрана ChatGPT

Теперь испробуем четыре способа, которыми ChatGPT может помочь в web3-разработке:

  1. Консультирование.
  2. Написание кода смарт-контракта.
  3. Исправление багов и тестирование.
  4. Отработка навыков программирования.

1. Консультирование с ChatGPT

Обычно при возникновении проблемы с кодом разработчики заходят на StackOverflow и смотрят документацию по используемому языку, библиотеке или инструменту или просто гуглят. Это приносит результат, но занимает много времени.

ChatGPT — более простая альтернатива. Она сразу выдает развернутый ответ со всеми нюансами. Нейросеть хорошо разбирается в web3-разработке и знает большинство известных инструментов, таких как Solidity, Infura, Ethers и MetaMask. Это как иметь более опытного наставника, которому можно задавать любые вопросы, а он не отправит «учить матчасть». Например, спросим ChatGPT о значении ключевого слова payable:

запрос1

Получим ответ наподобие следующего:

ответ1

Объяснение ChatGPT удивительно точное. В этом можно убедиться, сравнив его с документацией Solidity или ответами на Ethereum StackExchange. Однако оно гораздо проще для понимания и получено за секунду.

Конечно, на подобный вопрос довольно просто найти ответ в интернете. По-настоящему хорошо ChatGPT показывает себя в ответах на концептуальные вопросы, которые не имеют очевидного и доступного ответа. Например:

запрос2

Ответ нейросети:

ответ1

2. Написание кода смарт-контракта с помощью ChatGPT

ChatGPT — достаточно мощная языковая модель. Она может написать код смарт-контракта и предоставить к нему инструкции для создания dapp или смарт-контракта. Если хорошо сформулировать запрос, нейросеть предоставит все необходимое: от создания проекта до развертывания контракта на блокчейне.

Допустим, мы хотим создать смарт-контракт для майнинга NFT. Все, что нам известно, это наличие таких инструментов, как Solidity, Truffle и OpenZeppelin. Сформулируем запрос:

запрос3

ChatGPT пишет подробную пошаговую инструкцию. Вот ее фрагмент:

ответ3

Советы по улучшению опыта использования ChatGPT

  • Не надеяться только на ChatGPT. Ее знания ограничиваются сентябрем 2021 года (на момент написания этой статьи). Она не всегда может знать о последних методах и инструментах, а в web3 это особенно важно, учитывая темпы развития технологий. Стоит самостоятельно отслеживать события, чтобы судить об актуальности ответов нейросети.
  • Конкретизировать вопросы. Запрос на разработку смарт-контракта в нашем примере был крайне расплывчатым. Ответ нейросети можно было значительно улучшить, если указать, хотим ли мы получить один NFT или коллекцию, хотим ли, чтобы пользователи могли оплачивать и минтить, хотим ли иметь возможность открывать и закрывать продажи. Чем подробнее изложен вопрос, тем выше качество ответа.
  • Задавать контекст. ChatGPT можно подготовить, чтобы она генерировала ответы так, как пользователь от нее ожидает: попросить ее отвечать как эксперт-разработчик или функциональный программист, использовать описательные имена, критиковать саму себя, проверить собственный код на наличие ошибок. Системы обратной связи удивительно хорошо работают в языковых моделях.
  • Использовать платную версию. На момент написания статьи в бесплатном доступе есть только модель GPT-3.5. Более продвинутая GPT-4 дает лучшие ответы, но требует оплаты подписки. Если делать ChatGPT своим полноценным помощником и поручать ей важные рабочие вопросы, лучше использовать коммерческую версию.

3. Аудит и тестирование кода с помощью ChatGPT

Еще одно применение ChatGPT — запрос фидбэка о коде смарт-контракта. Нейросеть может провести базовый аудит и указать на дыры в безопасности. Для примера мы создали очень простой смарт-контракт Ethereum, который позволяет принимать пожертвования от любого человека в мире, а затем выводить полученную сумму из смарт-контракта. Предложим ChatGPT найти лазейки в защите:

запрос4

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

ответ4

Как и при генерации кода с нуля, следует учитывать дату последнего обновления данных ChatGPT. Она может не знать о новых подходах.

4. Отработка навыков программирования с ChatGPT

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

запрос5

Именно это ChatGPT и делает:

ответ5

ChatGPT — эффективный инструмент для улучшения web3-разработки

Мы едва коснулись того, что можно сделать с помощью ChatGPT для разработки смарт-контрактов и dapp. Этот инструмент можно рассматривать как чрезвычайно компетентного наставника, способного ответить практически на любой вопрос, который может возникнуть у разработчика на пути к web3.

Получите ответ по смс

Ваше сообщение успешно отправлено!
Представьтесь пожалуйста
Укажите номер, на который придет ответ
Нажимая на кнопку, вы даете согласие
на обработку персональных данных.

Перезвонить вам, чтобы ответить на вопросы?

Когда с вами связаться?

Связаться по телефону:+7 499 321-59-32

Нажимая на кнопку, я принимаю условия политики и пользовательского соглашения

Фото эксперта
Дмитрий

Проектный менеджер

Получите ответ на ваш вопрос в любимом мессенджере

Выберите удобный мессенджер и начните диалог прямо сейчас

Telegram WhatsApp

Рассчитать стоимость проекта

Расскажите о вашем проекте, чтобы мы могли проконсультировать вас.

Напишите ваше имя
Укажите ваш email

Выберите удобный для вас способ связи

Мы сразу получим ваш запрос и поможем в решении проблемы

Написать в Telegram

Написать в WhatsApp

Позвонить нам