Разработаю формально верифицируемые смарт-контракты на языке Pact для блокчейна Kadena, которые выполняют строго вашу бизнес-логику и ничего сверх неё. Pact — это человекочитаемый язык Kadena, и он специально сделан неполным по Тьюрингу: уже одно это решение исключает целые классы уязвимостей, характерных для других сетей, — нет бесконечных циклов, нет неконтролируемого расхода газа, нет проблем с повторным входом (reentrancy).
Дополнительно я применяю встроенную в Pact формальную верификацию (модель свойств и инвариантов), чтобы строго доказать, что контракт соблюдает нужные вам правила: суммарная эмиссия не растёт бесконтрольно, средствами управляют только авторизованные guard'ы, а балансы не опускаются ниже нуля.
В результате вы получаете опрятный модуль с capabilities и guard'ами для разграничения доступа, полный набор тестов, проверяемые машиной свойства и — так как контракты Pact поддерживают обновление — безопасный способ выпускать правки и новые возможности без повторного деплоя всей системы и без переноса пользовательского состояния. Частые задачи: взаимозаменяемые и невзаимозаменяемые токены, маркетплейсы, эскроу и вестинг, голосование DAO, любая произвольная логика в сети.
Как идёт работа: вместе определяем инварианты, я пишу модуль, доказываю свойства, покрываю юнит-тестами на локальном devnet и отдаю документированный, готовый к аудиту код со скриптами развёртывания для тестовой и основной сети. При переходе с Solidity помогу перевести архитектуру на более безопасную модель Pact.
Дополнительно я применяю встроенную в Pact формальную верификацию (модель свойств и инвариантов), чтобы строго доказать, что контракт соблюдает нужные вам правила: суммарная эмиссия не растёт бесконтрольно, средствами управляют только авторизованные guard'ы, а балансы не опускаются ниже нуля.
В результате вы получаете опрятный модуль с capabilities и guard'ами для разграничения доступа, полный набор тестов, проверяемые машиной свойства и — так как контракты Pact поддерживают обновление — безопасный способ выпускать правки и новые возможности без повторного деплоя всей системы и без переноса пользовательского состояния. Частые задачи: взаимозаменяемые и невзаимозаменяемые токены, маркетплейсы, эскроу и вестинг, голосование DAO, любая произвольная логика в сети.
Как идёт работа: вместе определяем инварианты, я пишу модуль, доказываю свойства, покрываю юнит-тестами на локальном devnet и отдаю документированный, готовый к аудиту код со скриптами развёртывания для тестовой и основной сети. При переходе с Solidity помогу перевести архитектуру на более безопасную модель Pact.