Чем глубже я вникаю в @Dusk , тем больше понимаю, что самое интересное не всегда находится в большом заголовочном функционале. Иногда это небольшое дизайнерское решение, из‑за которого начинаешь задумываться. У меня был такой момент, когда я смотрел, как Moonlight и Phoenix решают задачу, казалось бы, базовую: как убедиться, что одну и ту же транзакцию или актив нельзя использовать повторно. Moonlight использует модель, которую большинство из нас уже понимает: nonce’ы. Каждому аккаунту соответствует последовательность транзакций, и как только nonce использован, эту транзакцию нельзя просто так воспроизвести заново. Это просто и предсказуемо, но если посмотреть на реальное использование, под капотом происходит больше. Кошельки, биржи и кастодиалы должны поддерживать это состояние в точности, особенно когда одновременно подписываются или отправляются несколько транзакций. Phoenix заставил меня взглянуть на ту же проблему с совершенно другого угла. Поскольку он использует скрытые заметки (shielded notes), он опирается на nullifier’ы. Когда приватная заметка расходуется, её nullifier сообщает сети, что заметка уже была потреблена. Если кто-то попытается потратить её снова, попытку можно отклонить, не раскрывая при этом саму приватную заметку. Именно это различие показалось мне самым интересным. Moonlight держит активность аккаунта в порядке, а Phoenix доказывает, что приватная ценность уже была потрачена, не раскрывая, что именно это была за ценность. Одна цель, но совершенно разные подходы. И я думаю, это хороший пример того, почему инфраструктура, ориентированная на приватность, сложнее, чем просто скрывать данные транзакций. Когда приватность становится частью архитектуры, даже базовые вещи вроде защиты от повторного воспроизведения (replay protection) и предотвращения двойных трат (double-spend prevention) нужно перестраивать под неё. Сейчас мне ещё интереснее, что будет происходить по мере масштабирования Dusk. Станет ли координация состояния аккаунтов более серьёзной задачей, или же поиск приватных заметок и отслеживание nullifier’ов станет труднее? Это те тихие инженерные решения, которые в итоге могут оказаться самыми важными.
@Dusk #dusk $DUSK
@Dusk #dusk $DUSK
