29 августа команда Zakura представила открытый набор криптографических и протокольных библиотек для экосистемы Zcash. По утверждению разработчиков, Zakura Common в ряде сценариев позволяет сократить время подготовки приватной транзакции в кошельке с более чем трех секунд до менее 200 мс.
Речь идет не о подтверждении транзакции в блокчейне, а о вычислениях, которые устройство пользователя выполняет перед ее отправкой в сеть.
Оптимизации не требуют обновления протокола Zcash. Библиотеки доступны под двойной лицензией MIT/Apache 2.0 и могут использоваться разработчиками кошельков в действующей сети.
Генерация доказательств и библиотеки
По результатам собственных тестов Zakura, отдельные компоненты нового стека показали следующее ускорение:
Разработчики связали результат не с одной крупной оптимизацией, а с изменениями сразу в нескольких компонентах. Часть основана на известных подходах из криптографии и разработки компиляторов, другие решения команда разработала специально для Zcash.
Основная разработка собрана в монорепозитории zakura-core/common. Он содержит модифицированные версии librustzcash и ряда других библиотек на Rust.
Отдельно команда развивает zakura-core/wallet-libraries — набор компонентов для приватных кошельков и сторонних интеграций. В перспективе туда планируют добавить инструменты PIR (Private Information Retrieval), позволяющие запрашивать данные без раскрытия серверу того, какой именно элемент интересует пользователя.
В первоначальном анонсе Zakura 1.3.0 называлась предстоящей версией. В тот же день, 29 августа, разработчики опубликовали релиз v1.3.0.
В анонсе команда также сообщила о переходе Zakura на Zakura Common и предложила разработчикам сторонних кошельков использовать новый стек вместо прежних библиотек librustzcash. По данным Zakura, на него также перешел проект Tachyon.
Масштабирование Zcash
Команда Zakura утверждает, что сеть на базе ее узлов уже справляется с предложенным для NU7 25-секундным целевым интервалом между блоками. Соответствующий ZIP 218 предусматривает сокращение целевого интервала с нынешних 75 до 25 секунд. При сохранении сопоставимого уровня защиты от отката фактическое снижение задержки может оказаться немного меньше трехкратного.
Также предложение предусматривает ограничения на количество операций в приватных пулах Sapling и Orchard. По расчетам авторов, это сократит максимальный объем данных для синхронизации легких кошельков на 37% — с 271 до 169 МБ в сутки, а число пробных расшифровок — с 4,8 млн до 2,3 млн.
Расчетная пропускная способность Orchard при этом увеличится с 2,9 до 6,6 транзакции в секунду.
Напомним, 28 июля в Zcash активировали обновление после обнаружения критической уязвимости в Orchard. Апгрейд ограничил прежний пул и запустил новый приватный Ironwood.