Автор: Zhixiong Pan
На самом деле у тебя в кармане уже давно есть «аппаратный кошелек»
В наших повседневных телефонах и компьютерах на самом деле встроены специальные чипы безопасности. Например, «Secure Enclave» в iPhone или Keystore / Trust Zone / StrongBox в Android-устройствах.
Эта отдельная физическая область обычно называется TEE (Trusted Execution Environment — доверенная среда выполнения). Ее особенность — «только вход, без выхода»: приватный ключ генерируется внутри и никогда не покидает эту физическую область, извне можно только запросить подпись данных.
Это и есть стандарт аппаратного кошелька. И эти чипы при подписании повсеместно используют выбранную NIST (Национальный институт стандартов и технологий США) отраслевую стандартную алгоритмическую кривую: secp256r1. Именно она лежит в основе WebAuthn и FIDO2 (например, вход по отпечатку пальца или FaceID).
Пропасть, отличающаяся всего одной буквой
Проблема в том, что Ethereum изначально не поддерживает этот популярный secp256r1.
В свое время сообщество Bitcoin, опасаясь возможных «государственных бэкдоров» в кривых NIST, выбрало относительно малоизвестную secp256k1, поэтому при проектировании системы аккаунтов Ethereum унаследовал эту традицию.
Хотя r1 и k1 отличаются всего одной буквой, с математической точки зрения это совершенно разные языки. Это приводит к огромной проблеме: тот самый чип безопасности в твоем телефоне абсолютно не понимает Ethereum и не может напрямую подписывать транзакции Ethereum.
Если нельзя поменять железо, надо «совместить» его в этой версии
Ethereum, очевидно, не может заставить Apple или Samsung изменить дизайн чипов ради поддержки secp256k1, единственный путь — самому Ethereum адаптироваться под secp256r1.
Можно ли написать код на смарт-контракте для проверки r1-подписей? Теоретически да, но математические вычисления слишком сложны — одна проверка может стоить сотни тысяч Gas, что экономически совершенно невыгодно.
Поэтому в обновлении Fusaka разработчики применили мощное решение: предкомпилированные контракты (Precompile). Это своего рода «бэкдор» или «плагин» в виртуальной машине Ethereum (EVM). Вместо того чтобы заставлять EVM считать шаг за шагом, функцию проверки просто внедрили в базовый код клиента. Разработчику достаточно вызвать определенный адрес — и проверка выполняется с минимальными затратами.
В EIP-7951 эта стоимость зафиксирована на уровне 6900 Gas — с сотен тысяч до нескольких тысяч, наконец-то попав в диапазон «можно использовать в реальных продуктах».
Последний кусочек пазла абстракции аккаунтов
Внедрение этого EIP означает, что мы наконец-то можем подписывать и авторизовывать смарт-аккаунты Ethereum в TEE-среде телефона.
Важно отметить, что это не применимо к твоим текущим EOA-адресам MetaMask (поскольку их логика генерации публичного ключа всё ещё на k1).
Это специально подготовлено для «абстракции аккаунтов» (AA-кошельки). В будущем твой кошелек будет не мнемонической фразой, а смарт-контрактом. В этом контракте будет написано:
«Если этот отпечаток пальца (r1-подпись) подтвержден, разрешить перевод».
Резюме
EIP-7951, возможно, не заставит мнемонические фразы исчезнуть за одну ночь, но наконец-то устранил самый большой камень преткновения на пути массового распространения Ethereum.
До этого пользователю всегда приходилось делать жестокий выбор: хочешь «банковский» уровень самостоятельной безопасности? Придется купить OneKey, Keystone или Ledger и хранить мнемоническую фразу как золотой слиток; хочешь максимально плавный опыт? Придется держать монеты на бирже или в кастодиальном кошельке, жертвуя контролем (и децентрализацией).
После обновления Fusaka этот выбор исчезнет.
С внедрением EIP-7951 концепция «телефон = аппаратный кошелек» постепенно станет реальностью. Для будущих миллиардов новых пользователей, возможно, вообще не потребуется знать, что такое «приватный ключ», и не придется испытывать стресс от переписывания 12 слов.
Им будет достаточно, как при покупке кофе, приложить лицо или палец, и встроенный чип безопасности iPhone подпишет транзакцию с помощью secp256r1, а верификация пройдет через нативный предкомпилированный контракт Ethereum.
Вот правильный способ для Ethereum привлечь следующий миллиард пользователей: не требовать от них изучения сложной криптографии, а адаптироваться к общим интернет-стандартам и войти в карман каждого пользователя.
