Я поднял фактический ключевой пакет для модели Dusk's Phoenix, а не просто читал разборы — и один структурный момент меня остановил: погодите — ViewKey не является меньшей версией spend key. Он собран из совершенно других частей.
В коде SecretKey — это два скаляра. ViewKey — один скаляр и одна точка — намеренно неполная пара. Это не флажок-права, прикрученный к тому же секрету; ему не хватает точного компонента, нужного для формирования корректной spend-подписи. $DUSK #dusk @Dusk
Для меня всё изменилось, когда я понял, что «доступ на просмотр» здесь — это не обещание, подкреплённое политикой. Он обеспечивается тем, что ключ математически содержит. Передать кому-то ViewKey нельзя утечкой получить властные полномочия на spend, потому что отсутствующий скаляр изначально не входил в него. Это более узкая граница воздействия, чем у большинства «чтения без изменений» утверждений в этой области, которые обычно просто означают: «пожалуйста, не делайте этого».
Остался открытым вопрос: это подтверждает сам тип ключа, а не то, кому в итоге он попадает. Документация описывает, что ViewKeys позволяют раскрывать сведения аудиторам и регуляторам — но на уровне типа нигде не сказано, тот ли это же ключ, которым владелец ноты сканирует свой собственный баланс, или отдельный маршрут делегирования, сделанный специально для сторонних аудиторов. Стоит проверить, как именно устроена эта передача.
---