Получи случайную криптовалюту за регистрацию!

Лёгкий способ поменять приватник на аккаунте Braavos В предыд | Разнорабочий | Заметки

Лёгкий способ поменять приватник на аккаунте Braavos

В предыдущей статье про Бравос я рассказывал про случай, как скамер развёртывал собственный модифицированный контракт Бравоса и менял приватник функцией setPublicKey.

Давайте ещё раз посмотрим на скриншот.

DECLARE – это деплой контракта, upgrade – обновление кошелька на этот контракт, setPublicKey – смена приватника.

Звучит сложно, нужно скачать код контракта, пропатчить его, задеплоить. Но на самом деле, аккаунты Бравоса работают используя паттерн прокси, то есть деплоится имплементация контракта один раз, а дальше все аккаунты ссылаются на эту имплементацию. То есть мы можем взять адрес задеплоенного скаммером контракта из угнанного аккаунта Ильдара – 0x02b0d2bf21052d789f9dc24aa401f8360ccc6971be8149851a36ec53554bcdbe
и просто передать этот адрес в вызов upgrade(0x02b0d2bf21052d789f9dc24aa401f8360ccc6971be8149851a36ec53554bcdbe), а дальше вызвать setPublicKey

получится всего 2 транзакции для смены приватника. Кроме этого я бы добавил ещё один upgrade(0x05dec330eebf36c8672b60db4a718d44762d3ae6d1333e553197acb47ee5a062) – это возвращаем оригинальную имплементацию Браавос версии 000.000.011, потому что мы точно не знаем что именно ещё дописал в контракт скамер и может быть там есть бекдор, маловероятно, но возможно.

Единственный минус в этом решении, это то, что аккаунты по сути связываются так как все ссылаются на имплементацию скамера, скорее всего именно по этой причине он деплоит новый контракт для каждого угнанного аккаунта. Но если снепшот уже был, это не проблема. В следующей статье я всё таки выложу код для добавления Hardware Signer'а, это более безопасный метод.

Вот пример моего тестового аккаунта, где я поменял приватник: https://voyager.online/contract/0x01f752facbf0b8a4577bb45436fa396423bf972b5dbfef57fef9e20a9f554498

Ссылка на репозиторий с кодом: https://github.com/raznorabochiy/braavos-set-public-key