Разработчики Zcash обсуждают отказ от branch ID, чтобы кошельки не ломались при каждом апгрейде
В сети Zcash каждое сетевое обновление делает недействительными все заранее подписанные транзакции — разработчики на форуме предлагают изменить этот механизм в рамках апгрейда NU8.
Разработчики Zcash уже набрасывают план апгрейда NU8, запланированного на конец января, и один из пунктов способен изменить то, как кошельки переживают сетевые обновления. Речь идёт о branch ID — идентификаторе, который делает подписи недействительными после апгрейда.
В посте на форуме 9 ноября участник ValarDragon включил отказ от обновления consensus branch ID в список из семи целей NU8 и заявил: пора прекратить практику, при которой «каждый NU ломает кошельки». Поводом стал свежий случай: апгрейд NU7 активировался на прошлой неделе на блоке 3 543 405 и формат транзакций не менял, но, как отметил в том же треде участник strahncryptography, каждому кошельку всё равно понадобилось новое обновление или прошивка, чтобы снова отправлять средства. Владельцы устройств без интернета или неподдерживаемых гаджетов остались заблокированы.
Каждая подпись в Zcash привязана к consensus branch ID — метке набора правил, действующих в сети. Механизм ввели по стандарту ZIP 200, чтобы транзакцию, подписанную для одной цепи, нельзя было повторно провести в форке с общей историей. При активации апгрейда ID меняется, и всё, что подписано под старым идентификатором, теряет силу.
Разработчик вольта Konclave Даниэль Горгонья (Deega Labs) показал, к чему это приводит на практике. Konclave сначала формирует транзакцию, а затем собирает пороговые подписи участников, поэтому все подписанты должны успеть уложиться в окно действия транзакции — около 50 минут согласно ZIP 203. После NU7 это 120 блоков при целевом интервале 25 секунд. Апгрейд, случившийся в середине этого окна, аннулирует всю транзакцию.
В обсуждении оформились три позиции: полностью убрать механизм branch ID, оставить его, но сделать опциональным, либо признать, что дело не в истечении подписей, а в устаревании самих кошельков. Опциональный вариант, по мнению участника nuttycom, снижает размер анонимного множества в экранированных транзакциях и создаёт риск replay-атак для операторов узлов, которые не обновились. Общий формат транзакций ZIP 248, от которого зависит реализация, пока остаётся черновиком и ни к одному апгрейду не привязан.
Источник
- coindoo.comZcash Wallets Break at Every Upgrade – Devs Weigh a Fix (Coindoo)





