Вопросы на собеседовании: Блокчейн-разработчик
100 реальных вопросов с образцовыми ответами и пояснениями для уровня Senior.
Смотреть пример резюме: Блокчейн-разработчик →Тренировка флешкарточками
Интервальное повторение · Hunter Pass
Вопросы
Инвариант задает допустимый результат обмена, а учет резервов и комиссий определяет, кому принадлежат итоговые балансы.
- В пуле с постоянным произведением чистая входная сумма после комиссии двигает цену по кривой x умножить на y и ограничивает выходную сумму.
- Если комиссия остается в пуле, фактическое произведение резервов после обмена обычно растет, поэтому инвариант не означает, что численное значение k навсегда фиксировано.
- Хранимые резервы, токен-балансы и предложение LP-долей могут разойтись после donation или rebase, поэтому протокол должен явно определить момент синхронизации и то, как эта стоимость достается LP.
Зачем это спрашивают: Интервьюер проверяет, отделяет ли кандидат математику обмена от учета владения активами и комиссиями.
LP-доли должны сохранять пропорциональное право каждого провайдера и округляться так, чтобы пул не отдавал неучтенную стоимость.
- Для существующего пула число новых долей обычно равно минимуму из произведения каждого депозита на общее предложение, деленного на соответствующий резерв, а при сжигании владелец получает свою долю обоих резервов.
- Первый депозит требует отдельной логики, например долей по геометрическому среднему с небольшой навсегда заблокированной частью, потому что готового курса еще нет.
- Выходные доли и суммы при выводе округляются вниз, а вход для получения точного числа долей округляется вверх, чтобы повторные операции с пылью не извлекали стоимость.
Зачем это спрашивают: Интервьюер оценивает пропорциональную математику долей, инициализацию, обработку donation и округление не в пользу вызывающего как единую систему учета.
Концентрированная ликвидность превращает общую LP-долю пула во множество позиций с ценовыми диапазонами, которые активируются на границах тиков.
- Каждый инициализированный тик хранит чистое изменение ликвидности, и при его пересечении эта величина добавляется к активной ликвидности или вычитается из нее.
- Позиция хранит владельца, нижний тик, верхний тик и объем ликвидности, часто в виде NFT, потому что провайдеры выбирают разные диапазоны и их доли больше не взаимозаменяемы.
- Комиссии рассчитываются по глобальному росту комиссий и росту за пределами двух границ, поэтому позиция зарабатывает только пока цена находится внутри диапазона.
- Узкие диапазоны повышают эффективность капитала, но требуют активного управления и делают обмен дороже при пересечении множества инициализированных тиков.
Зачем это спрашивают: Интервьюер проверяет, связывает ли кандидат активацию диапазонов, идентичность позиций, учет комиссий и компромисс эффективности капитала.
LTV ограничивает начальную сумму займа, а порог ликвидации определяет момент, когда позиции уже не хватает обеспечения.
- Доступный заем рассчитывается по стоимости залога из оракула, умноженной на LTV каждого актива, поэтому залог стоимостью 100 при LTV 80 процентов поддерживает не более 80 долга.
- Платежеспособность сравнивает залог с поправкой на порог ликвидации и текущий долг, обычно через health factor, при значении ниже 1 позицию можно ликвидировать.
- Разница между LTV и порогом ликвидации служит запасом на движение цены и накопление процентов, а не дополнительной ликвидностью для свободного вывода.
Зачем это спрашивают: Интервьюер оценивает, умеет ли кандидат отделять лимит открытия займа от постоянной границы платежеспособности.
Модель должна повышать стоимость займа вместе с утилизацией, причем резко около точки, где пулу уже трудно обслуживать выводы.
- Утилизация обычно равна объему займов, деленному на сумму свободных средств и займов, при последовательном учете резервов по правилам конкретного протокола.
- Ломаная кривая плавно растет ниже целевого уровня, например 80 процентов, и круто выше него, чтобы стимулировать погашение и приток депозитов.
- Доходность поставщика выводится из ставки займа, утилизации и reserve factor, поэтому она ниже объявленной ставки заемщика.
- Высокая ставка оценивает дефицит ликвидности, но не создает деньги мгновенно, поэтому дизайн вывода и резервов не должен считать доступность гарантированной кривой.
Зачем это спрашивают: Интервьюер проверяет понимание и экономики кривой утилизации, и предела ее влияния на доступную ликвидность.
Бонус платит ликвидатору за восстановление платежеспособности, а close factor ограничивает долю долга, которую можно погасить за одну ликвидацию.
- Ликвидатор погашает долг и получает залог стоимостью погашения плюс бонус, который должен покрывать gas, движение цены и риск исполнения без лишнего изъятия залога.
- Close factor в 50 процентов не дает одному вызову закрыть весь долг, но при быстром падении цены может оставить позицию под риском на несколько ликвидаций.
- Безнадежный долг появляется, когда оставшегося залога с учетом бонуса и рыночной цены недостаточно для покрытия оставшегося долга.
- Тогда протоколу нужен явный путь распределения убытка через резервы, страховку или поставщиков, потому что больший бонус не вернет стоимость, которой уже нет.
Зачем это спрашивают: Интервьюер оценивает, умеет ли кандидат проследить экономику частичной ликвидации до непокрытого остатка.
Я бы выбрал изоляцию, когда ограничение заражения от одного залога, оракула или рынка важнее максимальной эффективности капитала.
- В изолированном рынке дефицит остается у его поставщиков и резервов, а не расходует ликвидность, обеспечивающую несвязанные активы.
- Общая ликвидность улучшает утилизацию, глубину займов и доступ к кросс-залогам, но один слабый актив может вызвать убытки или заморозить выводы по всему пулу.
- Изоляция также дробит ликвидность и требует отдельных лимитов, кривых ставок и настроек оракула, поэтому зрелые активы с низким риском могут оправдать общий пул, а новый залог нет.
Зачем это спрашивают: Интервьюер проверяет, умеет ли кандидат сопоставить эффективность капитала с радиусом распространения неплатежеспособности.
Он переводит новые награды в глобальную накопленную сумму на один застейканный токен и рассчитывается с пользователем только при его взаимодействии.
- В контрольной точке контракт добавляет к аккумулятору новые награды, умноженные на коэффициент точности и разделенные на общий стейк.
- Ожидающая награда пользователя равна его стейку, умноженному на аккумулятор и деленному на коэффициент точности, минус reward debt, поэтому награду нужно зафиксировать до изменения стейка.
- После депозита, вывода или получения награды reward debt устанавливается по новому стейку пользователя и текущему аккумулятору с делением на тот же коэффициент.
- Дизайн должен определить судьбу наград при нулевом общем стейке и сохранить достаточную точность, чтобы пыль от целочисленного деления нельзя было извлекать повторно.
Зачем это спрашивают: Интервьюер оценивает понимание учета наград за постоянное время, порядка обновлений и инвариантов точности.
Unbonding сохраняет возможность штрафа достаточно долго, чтобы нарушение успели обнаружить и финализировать до вывода стейка валидатором.
- Задержка должна покрывать окно доказательства, оспаривания и финальности сети, а ожидающий вывода стейк должен оставаться доступным для штрафа весь этот период.
- Условия штрафа должны объективно доказываться и иметь предел, причем нарушения безопасности вроде equivocation требуют более сильного наказания, чем короткий простой.
- Начало unbonding не должно отвязывать стейк от периода совершенного нарушения, чтобы более позднее доказательство все еще позволяло применить штраф до закрытия окна.
- Более долгая задержка усиливает ответственность, но повышает стоимость блокировки капитала и спрос на liquid staking, поэтому ее выбирают по реальной задержке обнаружения.
Зачем это спрашивают: Интервьюер проверяет, связывает ли кандидат время вывода с исполнимой экономической безопасностью, а не считает unbonding задержкой интерфейса.
После callback кредитор должен получить обратно основную сумму и согласованную комиссию либо откатить всю транзакцию.
- Кредитор фиксирует баланс, переводит актив, вызывает получателя, а затем проверяет итоговый баланс или списывает точную сумму с комиссией по одобренному стандарту вроде ERC-3156.
- Успешное возвращаемое значение callback не доказывает погашение, поэтому баланс или результат перевода проверяется независимо от внутреннего учета получателя.
- Получатель должен проверить кредитора и инициатора до выполнения действий, чтобы произвольный вызывающий не мог запустить approvals или привилегированную callback-логику.
- Любая ошибка погашения атомарно откатывает перевод и все вложенные действия, что и делает возможным необеспеченный заем на одну транзакцию.
Зачем это спрашивают: Интервьюер оценивает, рассматривает ли кандидат callback как недоверенное исполнение, защищенное инвариантом погашения в конце транзакции.
Я бы проводил границы вокруг владения инвариантами и полномочий, а не только вокруг бизнес-сущностей.
- Каждый критический факт учёта, например общий долг или объём выпущенных долей, должен принадлежать одному модулю, который раскрывает узкие команды вместо общего изменяемого состояния.
- У межмодульной операции должен быть один атомарный координатор, который проверяет предусловия и применяет все связанные переходы, с явными точками проверки инварианта и правилами reentrancy вокруг обязательных callback.
- Интерфейсы должны фиксировать единицы измерения, округление, предположения о доверии и поведение при ошибке, чтобы вызывающий модуль не переосмысливал значения другого модуля.
- Направление зависимостей, полномочия обновления и область паузы должны следовать той же границе, ограничивая состояние и права, затронутые ошибкой модуля.
Зачем это спрашивают: Интервьюер проверяет, умеет ли кандидат превращать общие инварианты в явное владение, контракты и границы отказа.
Я бы исходил из обещанной модели доверия, ожидаемых изменений и реального пути миграции, а не делал обновляемость вариантом по умолчанию.
- Неизменяемость подходит небольшому устоявшемуся ядру, когда пользователи могут проверить постоянные правила и перенести активы в замену без привилегированной миграции.
- Обновляемость подходит компонентам, чьи интеграции или параметры риска должны развиваться, но добавляет ограничения хранилища и полномочие заменить всю делегируемую логику.
- Гибрид может оставить хранение активов и основной учёт неизменяемыми, а настраиваемую политику или интеграции вынести в строго ограниченные заменяемые модули.
- Архитектура должна явно показывать область обновления, задержку, пределы отката и возможность выхода пользователя, поскольку это гарантии протокола, а не детали реализации.
Зачем это спрашивают: Сильный ответ сопоставляет изменяемость со стоимостью миграции, риском полномочий и гарантиями для пользователей.
Я бы выбирал паттерн по размеру парка, гранулярности обновлений, стоимости развёртывания и тому, кому доверено менять код.
- UUPS подходит независимо обновляемым экземплярам с небольшими прокси, если каждая реализация сохраняет совместимую логику обновления и строго авторизует обновления.
- Transparent-прокси подходят независимым экземплярам, когда отдельный ProxyAdmin и разделение административных вызовов по отправителю оправдывают более тяжёлое развёртывание.
- Beacon-прокси подходят однородному парку, который должен обновляться целиком через один beacon, с принятием общего радиуса поражения одного обновления beacon.
- Минимальные клоны подходят множеству дешёвых экземпляров с фиксированной реализацией; если им нужны согласованные обновления, парк beacon обычно понятнее, чем скрытая изменяемость клонов.
Зачем это спрашивают: Интервьюер оценивает, следует ли выбор прокси топологии парка и границам доверия, а не только стоимости газа.
Diamond сопоставляет маршрутизируемые селекторы функций с facets и делегирует эти вызовы, поэтому код facet работает с адресом и хранилищем diamond.
- Неизменяемые функции исполняются прямо в diamond, а fallback для остальных msg.sig находит facet, передает calldata через delegatecall и возвращает его данные либо ошибку.
- diamondCut атомарно добавляет, заменяет и удаляет селекторы, а затем может через delegatecall выполнить инициализацию нового состава.
- Функции loupe раскрывают facets и соответствия селекторов, чтобы клиенты и инструменты могли проверить текущий интерфейс.
- Поэтому полномочие diamondCut позволяет менять код всего diamond и должно быть защищено так же, как обновление прокси.
Зачем это спрашивают: Интервьюер проверяет понимание маршрутизации селекторов, контекста delegatecall, атомарных cuts и интроспекции.
Я бы считал пространства имён хранилища и таблицу селекторов постоянными схемами, которые должна проверять каждая операция cut.
- Каждый домен facet может закрепить структуру хранилища за уникальным детерминированным слотом, а поля внутри пространства имён должны добавляться только в конец и сохранять совместимые типы.
- Общее для facets состояние должно иметь одно каноническое представление и accessor, чтобы разные facets не создали конкурирующие копии одного инварианта.
- Cut должен отклонять добавление существующего селектора, замену на тот же facet, удаление отсутствующего селектора или потерю обязательных селекторов интерфейса.
- Перед атомарным применением всех изменений манифест cut должен сравнить старое и новое владение селекторами, layouts хранилища, поддержку интерфейсов и эффекты инициализации.
Зачем это спрашивают: Сильный ответ рассматривает namespaced storage и владение селекторами как связанные контракты совместимости, а не отдельные механики diamond.
Я бы моделировал роли как узкие полномочия с явными административными связями и отделял рабочие права от права их выдавать.
- Роли должны соответствовать ограниченным действиям и ресурсам, например паузе одного рынка или обновлению одного оракула, вместо широкого операторского доступа ко всему протоколу.
- Корень с высоким уровнем доверия должен управлять менеджерами ролей, но не иметь повседневной рабочей роли, а после начальной настройки должно остаться только намеренно управляемое самоуправление.
- Выдача, отзыв, обновление, казначейские и экстренные полномочия должны иметь разные пути, с задержкой или сроком действия там, где немедленный постоянный доступ не нужен.
- Полный граф должен допускать автоматическую проверку от каждой внешней функции до её роли и от каждой роли до субъектов, способных её создать или отозвать.
Зачем это спрашивают: Интервьюер проверяет, охватывает ли наименьшая привилегия прямые разрешения и все пути их выдачи.
Я бы дал каждому механизму одну задачу: multisig подтверждает порог подписей, timelock задерживает обычные изменения, а guardian только ограничивает ущерб.
- Обновления, переводы казначейства и долгосрочные изменения параметров должны исполняться через timelock после авторизованного предложения и задержки на проверку, а не напрямую ключами подписантов.
- Multisig может владеть ролями proposer или администратора, но его порог и разнообразие подписантов не заменяют публичную задержку исполнения.
- Guardian может поставить ограниченную область на паузу или отменить действие в очереди, но не должен обновлять код, перемещать средства пользователей или обходить timelock.
- Снятие паузы и восстановление обычных полномочий должны идти по более строгому пути, чтобы компрометация самого быстрого ключа не дала постоянный контроль.
Зачем это спрашивают: Интервьюер оценивает, разделены ли аутентификация, отложенное исполнение и экстренное ограничение ущерба как разные границы доверия.
Я бы ставил на паузу действия, увеличивающие риск, и сохранял самый безопасный путь уменьшить позицию и выйти.
- Управление паузой должно быть гранулярным по модулю и действию, блокируя займы, плечо, рискованные сделки и небезопасные выводы, но по возможности сохраняя погашения, получение средств, отмены и добавление залога.
- Путь выхода должен использовать консервативный учёт и не зависеть от необязательных компонентов, которые может отключить та же авария, например изменяемой интеграции или нового рискованного чтения оракула.
- Guardian может быстро включить ограниченную паузу, а её снятие и любое расширение ограничений требуют более сильного отложенного полномочия.
- Если немедленный вывод нарушает платёжеспособность или порядок расчётов, протоколу заранее нужен механизм пропорционального погашения или отложенного выхода вместо бессрочной заморозки.
Зачем это спрашивают: Сильный ответ рассматривает выход пользователя и живучесть протокола как явные инварианты экстренного управления.
Я бы рассчитывал все три параметра по исторической силе голоса и настраивал их по участию и концентрации, а не по текущим балансам токенов.
- Checkpoints делегирования должны фиксировать силу голоса каждого аккаунта на snapshot предложения, чтобы переводы во время голосования не дублировали и не перемещали голоса.
- Ненулевая задержка голосования даёт делегатам время отреагировать и помещает snapshot после создания предложения по явно выбранным часам на основе блоков или timestamps.
- Quorum должен быть документированной долей исторического доступного supply с ясным учётом воздержавшихся, чтобы изменения supply не переписывали требование активного предложения.
- Proposal threshold должен сдерживать спам, но допускать обоснованные предложения меньшинства, а изменение threshold или quorum само должно проходить через отложенное управление.
Зачем это спрашивают: Интервьюер проверяет, являются ли параметры управления согласованными историческими правилами, а не произвольными константами.
Я бы сделал краткосрочное получение силы голоса дорогим и ограничил действия временного или захватившего власть большинства.
- Голоса и право создать предложение должны читаться из checkpoints до активации, а задержка голосования должна исключать полезную силу токенов, взятых и возвращённых в одной транзакции.
- Если токены голосования широко доступны для займа, возраст стейка, срок блокировки или усреднённая по времени сила голоса защищают от краткосрочных позиций, которые всё ещё допускает простой snapshot блока.
- Quorum и proposal threshold должны использовать тот же исторический источник голосов, а концентрацию делегирования и wrapper-контракты нужно включать в модель захвата.
- Timelock, ограниченное право guardian на отмену, неизменяемые пределы критических полномочий и окно выхода пользователей сдерживают вредоносные предложения, но не делают честным действительно купленное большинство.
Зачем это спрашивают: Интервьюер оценивает, различает ли кандидат атомарный заём голосов и долгосрочный экономический захват и строит ли защиту слоями.
Закрытые вопросы
- 21
Как вы построите модель угроз для нового DeFi-протокола?
threat-modelingtypingdefi - 22
Какой процесс аудита вы пройдете от спецификации до итоговых находок?
concurrency - 23
Чем инварианты протокола отличаются от локальных проверок?
typing - 24
Как вы построите stateful fuzz-тест с обработчиками и ghost state?
design - 25
Когда формальная верификация полезна для протокола смарт-контрактов и каковы ее ограничения?
typing - 26
В чем сильные стороны символического исполнения и почему важен взрыв путей?
- 27
Как вы спроектируете надежную архитектуру оракулов для кредитного протокола?
designoraclestyping - 28
Как учесть MEV в обмене, не обещая полностью устранить его?
- 29
Как сделать протокол совместимым с произвольными токенами и callback-хуками?
callbackstypinghooks - 30
Как вы оцените прибыльность экономической атаки на протокол?
typing - 31
Как найти баланс между упаковкой storage и стоимостью доступа в обновляемом протоколе?
upgradeabilitytyping - 32
Как вы применили бы namespaced storage из ERC-7201 в протоколе с большим числом обновляемых модулей?
upgradeabilitytypingkubernetes - 33
Как стоимость calldata, постоянного storage и доступности данных меняет архитектуру между Ethereum L1 и роллапами?
designethereumlayer2 - 34
Как спроектировать события и индексатор, чтобы приложение оставалось корректным при реорганизациях сети?
indexesdesign - 35
Когда transient storage из EIP-1153 уместен и как он может нарушить компонуемость?
- 36
Как экономить gas с помощью batching, не создавая неограниченные переходы состояния?
batchgas - 37
Каких предположений вы избегали бы при интеграции произвольного хранилища ERC-4626?
secrets - 38
Как спроектировать typed permit, который поддерживает и EOA, и смарт-кошельки ERC-1271?
designsmart-contractswallets - 39
Какие инварианты важны, когда протокол оборачивает batch-переводы ERC-1155 и receiver hooks?
batchtokenshooks - 40
Что может доказать определение интерфейса через ERC-165 и что все равно требует проверки поведения?
validationtypes - 41
Мост будет защищать активы примерно на 200 миллионов долларов между двумя сетями. Как выбрать между мультиподписью 5 из 8, мостом с легким клиентом и оптимистическим мостом?
lockingbridges - 42
Пользователи переносят один и тот же стейблкоин через канонический мост сети или через два сторонних моста, и все три версии теперь торгуются отдельно. Как моделировать эти активы?
bridgesdependencies - 43
Сервис межсетевых заявок должен переживать повторную доставку, реорганизации исходной сети и приход сообщений не по порядку. Какой протокол сообщений вы используете?
typing - 44
У протокола есть контракты в L1 и двух L2, а обновление через управление меняет формат межсетевых сообщений. Как развернуть его без требования обновить все сети в одном блоке?
governancetyping - 45
Оптимистический роллап публикует корень состояния каждую минуту и заявляет финальность за одну минуту, но вывод средств занимает семь дней. Как объяснить и оценить такую схему?
designlayer2locking - 46
ZK-роллап создает доказательства корректности, но хранит данные транзакций у отдельного комитета и использует доверенную настройку. Что гарантирует доказательство и какие риски остаются?
layer2transactions - 47
Секвенсор L2 подтверждает транзакции за две секунды, но может бесконечно игнорировать транзакцию пользователя. Как должно работать принудительное включение и что продукту называть финальным?
transactions - 48
Как ERC-4337 разделяет проверку аккаунта и исполнение и какие риски должен контролировать paymaster?
validation - 49
Новая сеть со стейкингом предлагает 28% годовых наград в токенах, комиссии протокола покрывают только 3% наград, а токены команды разблокируются через 12 месяцев. Как оценить устойчивость стимулов?
tokenstypingstaking - 50
DEX использует токены с блокировкой для голосования, чтобы распределять 8 миллионов долларов годовых стимулов ликвидности, а внешние протоколы платят избирателям за вес гейджей. Как оценить такую схему?
designdefitokens - 51
DeFi-продукту нужны дешёвые частые транзакции, доступ к ликвидности Ethereum и не нужны особые правила исполнения. Где вы развернёте его: на L1, существующем L2 или appchain?
ethereumdefitransactions - 52
Бирже нужна совместимость с EVM и выводы, которые становятся финальными на L1 в течение часа. Вы выберете optimistic- или ZK-rollup?
evmlayer2locking - 53
Бирже бессрочных контрактов нужны сопоставление заявок быстрее секунды, on-chain хранение средств и проверяемый через Ethereum расчет. Какую архитектуру вы выберете?
ethereum - 54
Казначейство хочет провести $100 миллионов через недавно запущенный сторонний мост, потому что он дешевле канонического маршрута. Как вы примете решение?
bridgesdependencies - 55
Вы проектируете стейблкоин, который сжигается в одной сети и выпускается в другой, хотя сообщения могут задержаться или откатиться из-за реорганизации. Как сохранить целостность supply?
designerror-handling - 56
Кредитный продукт хочет принимать залог на одном L2 и выдавать заём на другом. Как сохранить платёжеспособность позиций при задержке cross-chain сообщений?
- 57
DEX работает на четырёх L2, ликвидность раздроблена, а перемещение общих активов между сетями слишком медленное для хороших котировок. Какую архитектуру вы выберете?
defideployment - 58
В неизменяемом кредитном протоколе есть открытые позиции, но новый релиз меняет учёт процентов и ликвидаций. Как перенести пользователей, не переписывая историю?
immutabilitytyping - 59
Работающая appchain переносит контракты и bridged-активы в rollup. Как выполнить переключение, не создав два авторитетных состояния?
layer2bridges - 60
Rollup достигает целей по скорости и стоимости с одним секвенсором, но теперь команда хочет реальную децентрализацию без резкого ухудшения продукта. Что вы поставите в приоритет?
layer2 - 61
Мониторинг показывает, что атакующий выводит средства из работающего хранилища. Что вы делаете в первые десять минут?
secretsmonitoring - 62
Кредитный рынок начинает ликвидировать здоровые позиции после резкого расхождения цены одного залогового актива с остальным рынком. Как вы реагируете?
- 63
Вы узнаете, что скомпрометировано достаточно ключей подписантов моста для авторизации сообщений. Как вы реагируете?
bridges - 64
Вредоносное governance-предложение прошло голосование и ожидает перевода казначейства. Как вы поступите?
governancedata-structures - 65
Секвенсор L2 восстановился после сбоя, а затем реорганизация удалила транзакции, которые пользователи считали подтвержденными. Что вы делаете?
transactions - 66
Как вы распределите роли в war room во время инцидента протокола?
incidentstyping - 67
Какие доказательства вы сохраните во время эксплойта протокола и как обеспечите их достоверность?
typing - 68
После эксплойта украденные средства продолжают перемещаться между сетями и биржами. Как вы организуете возврат?
- 69
Как вы будете общаться публично, пока крупный инцидент протокола еще продолжается?
communicationincidentstyping - 70
Когда вы возобновите работу протокола после эксплойта и что должно быть в post-mortem?
incidentstyping - 71
Как спланировать внутреннюю проверку безопасности, если до релиза протокола осталось четыре недели?
typing - 72
В конце релизного цикла появляется критический diff контракта. Как вы его проверите?
- 73
Как выбрать внешнего аудитора смарт-контрактов и управлять его работой?
- 74
Как определить scope bug bounty для DeFi-протокола перед выходом в mainnet?
defityping - 75
Набор формальных доказательств выполняется шесть часов, и разработчики начали обходить его. Как встроить его в поставку?
- 76
Какие security gates должен пройти релиз смарт-контрактов перед mainnet?
- 77
Как управлять риском безопасности при обновлении компилятора Solidity или зависимости контракта?
soliddependenciessolidity - 78
Как сохранить пользу инвариантных и fuzz-тестов на протяжении разработки, а не только перед аудитом?
testing - 79
Что должно входить в репетицию деплоя обновления протокола?
typing - 80
Какой on-chain мониторинг должен быть готов к моменту выхода релиза протокола?
monitoringtyping - 81
Мост должен ротировать набор валидаторов, пока Solidity-verifier, клиент валидатора на Rust и релеер на Go продолжают работать. Как вы проведете изменение?
solidbridgesvalidation - 82
Инженер исправляет ошибку учета долей одним дополнительным условием, но не может объяснить, какой инвариант округления восстанавливает патч. Как вы проведете его через ревью?
mentoring - 83
Security-ревьюер считает, что проблема повторного исполнения должна блокировать запуск, а владелец функции утверждает, что этот путь недостижим. Как разрешить разногласие?
conflict - 84
RFC предлагает универсальный интерфейс плагинов для любых кредитных протоколов, хотя первому релизу нужна только одна интеграция. Какое решение вы примете?
genericstypestyping - 85
Функция вывода требует согласованных изменений escrow в L1 на Solidity, prover в L2 на Rust и релеера на Go. Как вы организуете поставку?
solidsolidity - 86
Как вы оцените сторонний DeFi-протокол, прежде чем разрешить своим контрактам размещать в нем средства пользователей?
decision-makingdependenciestyping - 87
Продукт хочет принимать liquid restaking token в залог из-за глубокой вторичной ликвидности. Что вы потребуете до интеграции?
tokens - 88
Адаптер в целевой сети получает callbacks от одобренного моста. Что он должен проверить до исполнения сообщения или возврата?
validationcallbacksbridges - 89
Внешний аудитор за два дня до запуска передает отчет с неясным ущербом и без повторной проверки исправлений. Как вы поступите?
- 90
Сторонний протокол за вашим адаптером обновляем и может изменить комиссии или поведение вывода. Как определить владение интеграцией и план выхода?
ownershipdependenciestyping - 91
Токен запускается при низкой ликвидности, и команда ожидает, что боты захватят первые блоки. Какой механизм запуска вы одобрите?
tokensdefi - 92
Управление хочет принять малоликвидный токен в залог, потому что его сообщество растет. Вы добавите его?
tokensgovernance - 93
Кредитный рынок каждую неделю достигает лимита депозитов, и бизнес просит убрать лимит. Как вы определите следующий предел?
- 94
Кампания ликвидности в основном награждает кошельки, которые прокручивают один и тот же капитал и уходят после каждой эпохи. Что вы измените?
walletsdefi - 95
Рынок бессрочных контрактов может столкнуться с коррелированными ликвидациями больше страхового фонда. Как вы спроектируете порядок покрытия убытка?
methodologydesign - 96
Управление одобрило обновление прокси с изменением хранилища, которое нужно провести при открытых позициях пользователей. Как вы его выполните?
proxyupgradeabilitygovernance - 97
Выполненное обновление ломает выводы, но часть транзакций уже изменила состояние под новой реализацией. Что вы сделаете?
transactionserror-handling - 98
Timelock на 48 часов слишком медленный для лимитов кредитного рынка при волатильности, и команда предлагает risk council с мгновенным изменением любых параметров. Какие полномочия вы одобрите?
- 99
Комиссионный доход падает, но DAO хочет удвоить эмиссию токена, чтобы удержать TVL. Какое изменение вы предложите?
tokensdao - 100
Работающему кредитному протоколу нужно заменить поставщика оракула при открытых позициях. Как выполнить переключение без ценового разрыва?
oraclestyping