Но если код генерации контракта не использует состояние блокчейна или данные текущей транзакции, то адрес, вычисляемый для CREATE2 является гарантией семантики контракта. И это может проверить аудитор. Так что для аудитируемости я бы делал CREATE2 только внутри смарт-контрактов-фабрик. Именно эти фабрики и нужно отдавать на аудит.
При этом, вместе с предвычисляемыми адресами выдавал бы клиентам некий witness (по факту - nonce), позволяющий убедиться, что на этот адрес может попасть ТОЛЬКО смарт-контракт, сгенерированный данной фабрикой, плюс в фабрике pure метод для проверки этого witness...
@khovratovich мож я переусложняю?