Контракт аккаунта

Ваш кошелёк — не внутренняя структура данных приложения. Это смарт-аккаунт Safe v1.4.1 — тот же контракт, в котором держат казначейства куда крупнее всего, что Vela когда-либо увидит, — развёрнутый ровно в том виде, в каком его публикует Safe, без единой правки.

Фраза короткая, а следствия нет, поэтому страница расписывает их подробно.

В этой цепочке нет ничего нашего

Между вами и вашими деньгами стоят четыре контракта. Vela не писала ни одного:

КонтрактКто написал
Safe v1.4.1 (сам аккаунт, прокси)Safe
Safe 4337 ModuleSafe
SafeWebAuthnSharedSigner (проверяет ваш ключ P-256)Safe
ERC-4337 EntryPoint v0.7Авторы ERC-4337

Никакого «контракта Vela» не существует. В репозитории вообще нет Solidity — проверяется одной командой:

git clone https://github.com/mondaylabsltd/vela-wallet
find vela-wallet -name '*.sol'   # ничего не выводит

Когда Vela добавляет сеть, она разворачивает именно эти контракты по их каноническим адресам. Она не разворачивает контракт собственной конструкции и не имеет в вашем никакой привилегированной роли: ни админского ключа, ни пути обновления, ни модуля, который мы могли бы подключить.

Почему ключевое слово здесь — «неизменённый»

Множество кошельков заявляют, что построены «на Safe», «на форке Safe» или на «аккаунте по мотивам Safe». Форк — это новый контракт со старой репутацией. На практике разница такая:

Аудиты относятся к тому, чем вы действительно пользуетесь. Отчёты Safe покрывают байт-код именно этих релизов. Аудиты форка покрывают код до форка. Если кошелёк изменил контракт аккаунта, каждый цитируемый им аудит — это аудит чего-то другого, а изменение как раз и есть та часть, которую никто не смотрел.

Экосистема считает ваш аккаунт Safe, потому что он и есть Safe. Обозреватели блоков его разбирают. Инструменты самой Safe его понимают. Если Vela завтра не станет, ваш кошелёк не превратится в осиротевший формат: это самый обеспеченный инструментами смарт-аккаунт в Ethereum, и управлять им может любой Safe-совместимый интерфейс. Именно поэтому «если Vela исчезнет, ваш кошелёк — нет» — утверждение о контрактах, а не о наших намерениях.

Поверхность атаки та же, за которой следят все остальные. За индивидуальным контрактом аккаунта следит только его автор. За этим следят все, кто держит деньги в Safe.

Чего это стоит

Быть стандартным — не бесплатно, и компромиссы настоящие:

  • Газ. Смарт-аккаунт проверяет подпись в блокчейне. Рассчитывайте примерно на 1,5–3 раза больше газа, чем у простого перевода с EOA, в зависимости от сети. См. сети и комиссии.
  • Аккаунт нужно развернуть. Адрес вычисляется через CREATE2 ещё до того, как в блокчейне что-то появится, так что получать можно сразу, но первая исходящая транзакция оплачивает развёртывание контракта.
  • Подходит не всякая сеть. Подписывающий WebAuthn проверяет подпись P-256 в блокчейне, а для этого нужен прекомпайл RIP-7212. Vela скорее откажется включать сеть без него, чем перейдёт на более слабый верификатор.
  • Риск Safe теперь и ваш риск. Доверять широко используемому контракту — всё равно доверять контракту. Всё, что может сказать Vela: она не добавила поверх ещё одну вещь, которой нужно доверять.

Что проверено аудитом, а что нет

Контракты Safe и модуль подписи WebAuthn проверены сторонними аудиторами, и эти отчёты публичны. Код самого приложения Vela независимого аудита не проходил, и он не запланирован — это цель на момент, когда проект сможет его оплатить, а не обещание с датой. Каждый контракт, от которого зависит Vela, его отчёт об аудите и проблемы, за которыми мы следим, перечислены в аудитах и известных проблемах.

Проверьте сами

Ваш аккаунт в блокчейне. Откройте его в обозревателе блоков и посмотрите адрес реализации: это будет каноническое развёртывание Safe v1.4.1, байт в байт, в каждой сети, которую поддерживает Vela.