Блог Помощь

TREZOR добавит поддержку экранированных транзакций Zcash

9 июня 2021 Технический директор Trezor Павол Руснак на форуме сообщества Zcash опубликовал заявку в фонд основных грантов на финансирование разработок, направленных на добавление в аппаратные кошельки Trezor поддержки транзакций в новом экранированном пуле Zcash Orchard.

Текст заявки приводится ниже:

Описание проблемы или возможности
Изначально дизайн Zcash исключал возможность подписания защищенных транзакций в аппаратных кошельках, поскольку вычислительные ресурсы и ресурсы памяти, необходимые для расчета транзакции, разрешающей zk-доказательство, были огромными. В 2018 году обновление саженцев способствовало этому, отделив полномочия по расходованию средств от полномочий по доказательствам. Это открывает новые возможности для реализации защищенных транзакций в аппаратных кошельках.

Мы считаем Zcash важным игроком в области инноваций в области криптовалют, поэтому мы хотели бы внести свой вклад в массовое внедрение защищенных транзакций, позволив пользователям безопасно хранить свои защищенные средства на аппаратном кошельке Trezor.

Предложенное решение
Предметом этого гранта является полная поддержка Trezor для защищенных транзакций Zcash Orchard (ZIP-224). Это включает в себя необходимые дополнения к прошивке Trezor, приложению Trezor Suite и API Trezor Connect, что облегчает дальнейшую интеграцию со сторонними кошельками.

Формат решения
Новый код добавлен в прошивку Trezor, Trezor Suite и Trezor Connect через запросы на вытягивание GitHub (примечание — команда «git push»).

Технический Подход
С начала 2021 года Zcash работает над обновлением Orchard, которое предлагает новый формат транзакций, унифицированные адреса и другие функции. Старый экранированный пул Sapling перестанет быть актуальным после обновления, которое запланировано на октябрь 2021 года. Пользователям будет предложено перевести свои средства из старого экранированного пула в новый пул конфиденциальности с одноимённым названием Orchard. Вся предстоящая работа для Trezor направленна на поддержку нового пула.

После этого мы будем следовать дизайну в ZIP305. Согласно которому, приватный ключ никогда не покидает устройство, подтверждение авторизации и полный просмотр отправляются на компьютер для делегирования вычислительно сложных задач, таких как авторизация zk-proof и сканирование блокчейна.

Мы будем использовать код Rust с открытым исходным кодом из репозиториев zcash/librustzcash и zcash/orchard. Поскольку мы уже используем Rust в кодовой базе прошивки Trezor, интеграция этого нового кода должна быть простой. Весь исходный код прошивки и модульные тесты будут доступны по лицензии GPLv3. Новый код Zcash для Suite и API Connect будет написан на машинописном языке и будет доступен по лицензии MIT.

Прошивка Trezor
Компонент Zcash прошивки Trezor будет расширен, чтобы полностью поддерживать защищенные транзакции Zcash. (Прозрачные адреса уже поддерживаются). Код будет разработан для модели Trezor T. Поддержка Trezor One будет обеспечена (если не будут обнаружены непредвиденные блокировщики) путем переноса прошивки Trezor Model T на Trezor One и не является частью этого гранта. В отличие от приложения Zcash Ledger от Zondax, экранированные адреса будут получены в соответствии с ZIP32 (версия Orchard) для поддержания совместимости с другими сторонними кошельками на базе ZIP32.

Trezor Connect API
Connect API позволит сторонним кошелькам Zcash выполнять все необходимые операции, такие как получение защищенного адреса и подписание защищенной транзакции.

Trezor Suite
Мы внедрим защищенные транзакции Zcash в пакет Trezor, официальный десктопный кошелек Trezor. Этот шаг требует реализации сканирования блокчейна, авторизации транзакции zk-proof и связи с полным узлом Zcash.

Насколько большой проблемой было бы не решить эту проблему?
Пользователи Trezor не могут использовать защищенные транзакции Zcash с Trezor и будут использовать другие поддерживаемые криптовалюты, ориентированные на конфиденциальность, такие как Monero.

Риски исполнения
Поскольку обновление сада все еще продолжается, а дорожная карта еще не заложена в камень, весь проект может быть отложен из-за ожидания определенных компонентов сада и документации. Кроме того, мы можем обнаружить новые ошибки в ящике для сада во время работы с ним.

Непредвиденные Последствия и Недостатки
Сеть Zcash развивается, это потребует дополнительных усилий по поддержанию недавно добавленного кода в прошивке Trezor.

План оценки
По итогам реализации данного проекта пользователь получит возможность получать, хранить, тратить и управлять своими защищенными и прозрачными средствами Zcash с помощью Trezor и Trezor Suite. Третьи лица могут интегрировать транзакции Trezor Zcash в свои кошельки с помощью API.

Предыстория заявителя
SatoshiLabs: Изобретатели Trezor, первого аппаратного кошелька. Создатели многих стандартов, используемых во всей индустрии криптовалют.

Томас Крнак (примечание — программист исполнитель): Увлечение концепцией защищенных транзакций было одной из причин, по которой я решил изучать криптографию. Мой энтузиазм не угас. Спустя четыре года и тысячу страниц о zk-доказательствах я заканчиваю магистратуру по криптографии в Чарльзовском университете и рад, что у меня будет возможность в полной мере использовать свои теоретические знания и навыки кодирования для реализации этого проекта.

RuZcash