Я предположил, что «DuskEVM поддерживает Solidity», значит разработчики смогут прийти с уже готовыми инструментами для Ethereum и просто закончить дело. Собственные материалы для быстрого старта Dusk незаметно добавляют шаг, который многие пропускают: верификацию исходников.

Развертывание — это простая часть. DuskEVM использует Blockscout в качестве обозревателя, и чтобы верифицировать там контракт, «Verify & Publish» означает, что нужно воспроизвести байткод, который фактически развернут: соответствующие настройки сборки, версию компилятора, конфигурацию оптимизации, исходные файлы, аргументы конструктора.

Это другой уровень требований, чем совместимость с EVM. Развертывание доказывает, что код может работать. Верификация позволяет кому-то другому проверить, что именно запущено. Контракт может быть развернут и функционировать, но при этом оставаться не подверженным верификации, из-за чего никто другой не сможет независимо проверить, действительно ли опубликованный исходный код совпадает с тем, что сейчас работает.

А значит, «EVM-совместимый» и «готовый для разработчиков» — не совсем одно и то же. Первое про то, будет ли ваш код работать здесь. Второе — про то, сможет ли аудитор, организация или пользователь реально подтвердить, что запущенное совпадает с заявленным.

«Цепочка может выполнять ваш Solidity-контракт и при этом оставить вас без возможности доказать, что это за контракт на самом деле».

Что хотелось бы увидеть дальше: можно ли надежно верифицировать контракт, развернутый по стандартному пути Solidity/Hardhat, сопоставив его с развернутым байткодом, а не просто проверив, что он успешно развернулся.

#dusk $DUSK @Dusk