Спецификации контракта
Письменное описание того, что контракт должен делать, кто может его вызывать и что не должно быть возможным никогда, согласованное до написания первой строки кода.
Блокчейн и Web3
Проектирование, поведение и безопасность контракта на той сети и языке, которые реально нужны вашему проекту, в формате выделенного разработчика, проекта, поддержки в подборе персонала или консалтинга.
Разработчика смарт-контрактов в Дубае нанимают прежде всего ради поведения контракта, а язык уже во вторую очередь. Это различие важно, потому что результат, код, который выполняется абсолютно одинаково для всех, кто его вызывает, и который после этого непросто изменить, это одна и та же задача независимо от того, лежит ли в основе Solidity на EVM-сети или другой язык в другой сети. Бизнес нанимает разработчика смарт-контрактов в Дубае, когда бриф на самом деле звучит как «спроектируйте эту логику безопасно», а не «напишите её на этом конкретном языке».
Собственная документация Ethereum для разработчиков описывает смарт-контракт как программу, которая ведёт себя «как самостоятельно работающая компьютерная программа», автоматически исполняющаяся при выполнении определённых условий, сравнивая её с цифровым вендинговым автоматом: известные входные данные дают известные результаты. Эта простота одновременно и есть риск. Поскольку логика исполняется в точности так, как написана, любая ошибка в этой логике тоже исполняется в точности так, как написана, поэтому дисциплина разработчика смарт-контрактов в вопросах дизайна, тестирования и проверки важнее, чем знание какого-то одного синтаксиса.
Эта роль стоит рядом с нашей страницей разработчик Solidity, посвящённой одному конкретному языку, и страницей разработчик блокчейна, где акцент смещается на всё, к чему контракт в итоге подключается.
Что проектирует разработчик смарт-контрактов
Результаты, определяемые поведением, а не одним языком.
Письменное описание того, что контракт должен делать, кто может его вызывать и что не должно быть возможным никогда, согласованное до написания первой строки кода.
Сам код, на том языке, который использует целевая сеть, построенный на проверенных паттернах, а не изобретённый с нуля.
Отображение каждого состояния, в котором может находиться контракт, и каждого перехода между ними, чтобы граничные случаи находили на бумаге, а не в продакшене.
Проработка того, кто и как может попытаться злоупотребить контрактом, ещё до того, как то же самое сделает независимый аудитор снаружи.
Автоматизированные тесты и, для сложных контрактов, сценарные симуляции реалистичных паттернов использования, прогоняемые до того, как что-либо попадёт в рабочую сеть.
Подготовка документации и чёткой спецификации для независимого аудитора и проработка его замечаний после получения результатов проверки.
Важные навыки
Дисциплина дизайна, сверенная с официальной документацией.
| Навык или инструмент | Как выглядит хороший результат | Почему это важно |
|---|---|---|
| Владение языком целевой сети | Подлинный, проверяемый опыт именно в том языке, который реально использует целевая сеть | Языки контрактов и их модели исполнения заметно различаются между сетями |
| Дизайн до кода | Пишет или проверяет спецификацию до начала реализации, а не после | Исправить изъян дизайна после развёртывания зачастую невозможно, в отличие от обычного софта |
| Переиспользование вместо изобретения | Строит на проверенных, широко разобранных библиотеках для типичных паттернов вместо собственного кода | Именно в самописных решениях давно решённых задач концентрируются избежимые баги |
| Дисциплина тестирования | Автоматизированные тесты и, для всего сложного, сценарные симуляции реального использования | Одна лишь ручная проверка регулярно пропускает граничные случаи, которые ловят тесты |
| Умение работать с аудиторами | Готовит документацию, которую сможет использовать внешний аудитор, и воспринимает замечания как норму, а не как личный выпад | Конфликтные отношения с аудитором замедляют именно ту проверку, которая важнее всего |
Документация Ethereum по смарт-контрактам также отмечает, что взаимодействия по умолчанию необратимы, и рекомендует мультиподписной контроль для всего, что удерживает значительную ценность, деталь, которую стоит проверить: способен ли кандидат объяснить её без подсказки. Разработчик смарт-контрактов в Дубае, который не может чётко объяснить этот компромисс, не готов к контракту, удерживающему реальные средства.
Форматы работы с нами
Проект с чётким объёмом особенно хорошо подходит этой роли: спецификация записана, контракт построен и протестирован по ней, а затем передан вместе с документацией, готовой для независимого аудита. Выделенный разработчик подходит продукту с развивающимся набором контрактов, которому нужно постоянное внимание к дизайну. Поддержка в подборе персонала подходит бизнесу, который хочет нанять разработчика смарт-контрактов напрямую в свою команду, а консалтинг подходит бизнесу, которому нужен опытный обзор дизайна или моделирования угроз для существующего контракта перед следующим шагом, но не полноценный аудит.
Оценка кандидата
Проверки, которые вскрывают дизайн-мышление, а не просто знание синтаксиса.
Опишите базовый контракт и спросите, как бы кандидат попытался его сломать. Качество его вопросов важно не меньше, чем ответы.
Кандидат с настоящей дисциплиной дизайна обычно может показать документ из прошлого проекта, а не только код.
Спросите о реальном замечании аудита по его работе: в чём оно состояло и что он изменил. Кандидат без такой истории имеет ограниченный опыт в реальных условиях.
Сильные кандидаты обычно вспоминают конкретный граничный случай, который поймали поздно, и какое изменение процесса за этим последовало.
Убедитесь, что опыт кандидата соответствует конкретной сети, на которую нацелен ваш проект, поскольку навык дизайна в одной экосистеме не переносится автоматически на модель исполнения другой.
Проводите каждого разработчика смарт-контрактов в Дубае через один и тот же набор проверок, чтобы кандидатов на разных сетях и языках всё равно можно было честно сравнить.
Сертификации
Ни один вендор не выдаёт универсальную сертификацию по смарт-контрактам.
Поскольку эта роль охватывает несколько сетей и языков, ни один официальный орган её не сертифицирует, поэтому продвигаемое удостоверение «сертифицированный разработчик смарт-контрактов» отражает конкретного провайдера курса, а не общеотраслевой стандарт.
Письменная спецификация, реальная история аудита и подтверждённый опыт именно на вашей целевой сети говорят больше, чем название сертификата, когда вы нанимаете разработчика смарт-контрактов.
Особенности ОАЭ
Регулятор Дубая в этой сфере и как его использовать.
Согласно собственному опубликованному мандату, VARA регулирует и курирует предоставление, использование и обмен виртуальных активов в Дубае и из Дубая. Нужна ли конкретному контракту, который ваш бизнес планирует развернуть, лицензия VARA, это вопрос к VARA и вашим собственным юристам, а не решение, которое команда разработки может принять за вас.
Поскольку дата запуска, разговор с регулятором и сроки аудита взаимосвязаны, решите заранее, вместе с юристами, происходит ли обращение к регулятору и независимый аудит до или параллельно друг другу, а не оставляйте оба вопроса на конец проекта.
Пункт выше называет регулятора, а не выносит решение по вашему проекту. Любой вопрос о лицензировании адресуйте VARA или собственным юристам, прежде чем брать на себя обязательства по дизайну.
Эту роль вы найдёте в нашей категории блокчейн и Web3, части раздела наём разработчиков в Дубае. Когда проект нацелен конкретно на Ethereum или другую EVM-сеть, наша страница разработчик Solidity описывает эту более узкую, языковую версию роли. Когда контракт уже спроектирован, страницы разработчик блокчейна и разработчик Web3 охватывают то, что строится вокруг него, а инженер блокчейна охватывает инфраструктуру, на которой он в итоге работает.
Прямые ответы
Близко связано, но сформулировано по-разному. Разработчик Solidity определяется одним языком, в основном используемым в Ethereum и совместимых с EVM сетях. Разработчик смарт-контрактов определяется результатом: дизайном и поведением контракта, на каком бы языке и сети это в итоге ни оказалось.
Нет. Разные сети используют разные языки и модели исполнения для своих контрактов, поэтому разработчик смарт-контрактов для одной экосистемы не подходит автоматически для другой. Скажите нам, на какую сеть нацелен ваш проект, и мы подберём разработчика под неё.
Любую логику, которую в него заложили: кто может вызвать функцию, как перемещается токен, при каких условиях высвобождаются средства. Согласно собственной документации ethereum.org, смарт-контракт ведёт себя как программа, которая каждый раз выдаёт одни и те же заранее заданные результаты для одних и тех же входных данных, без участия человека.
Через проверенные библиотеки вместо собственного кода там, где это возможно, автоматизированное тестирование, поэтапный запуск через публичную тестовую сеть и, прежде чем задействовать реальные средства, независимый аудит безопасности от специализированной компании, отдельный от нашей разработки и то, что мы помогаем вам спланировать.
Как правило, нет, не напрямую, именно поэтому так важно правильно продумать дизайн до развёртывания. Некоторые проекты изначально закладывают отдельный механизм обновления, но это добавляет собственную сложность и должно использоваться только там, где проекту это действительно нужно.
Источники
Фиксированная цена в письменном виде
Получили. Мы уже готовим ваше предложение.
В рабочее время вы получите его в течение 45 минут. Проверьте почту, там письмо с подтверждением.