В прошлую ночь я снова нырнул в очередную кроличью нору с @Dusk и на этот раз попытался понять, как на самом деле работают в связке Moonlight и Phoenix.
На базовом уровне Moonlight ощущается знакомым. Он использует аккаунты, где балансы и nonce хранятся в открытом состоянии. А Phoenix — это место, где всё становится более приватным. Вместо того чтобы напрямую показывать баланс аккаунта, значение хранится в нотах. Нота привязана к ключу получателя, а доказательства с нулевым разглашением позволяют кому-то потратить её, не раскрывая саму ноту. Дерево Меркла доказывает, что нота входит в систему, а nullifier не даёт потратить ту же ноту повторно.
Вот это мне понятно.
Тот момент, о котором я всё ещё думаю, — это точка, где значение перемещается между Moonlight и Phoenix. На бумаге депозиты и выводы звучат просто, но меня больше интересуют те допущения, которые лежат под этими транзакциями.
Если конвертация каким-то образом окажется некорректной или завершится неожиданным образом, насколько изолирована будет эта проблема? Может ли она повлиять на глобальный набор nullifier’ов или на прозрачные балансы, которые используют смарт-контракты?
И есть ещё более широкий вопрос о том, где фактически находится «вес» системы. Если со временем пользователи хранят большую часть ценности внутри Phoenix, но контракты и другие приложения в основном взаимодействуют с Moonlight, остаётся ли прозрачный слой всё ещё главным центром активности и влияния?
Также я не до конца уверен, какие части дизайна стоит считать зафиксированными на сегодня. Лимит 2^64−1 — это одно, но мне интересно, как устроена генерация нот, глубина дерева Меркла и правила уникальности nullifier’ов.
Похоже, я здесь упускаю некоторые детали, так что мне правда хотелось бы услышать от кого угодно, кто потратил время на реальные схемы и доказательства. Именно там, как мне кажется, находятся самые интересные ответы.
#dusk $DUSK
На базовом уровне Moonlight ощущается знакомым. Он использует аккаунты, где балансы и nonce хранятся в открытом состоянии. А Phoenix — это место, где всё становится более приватным. Вместо того чтобы напрямую показывать баланс аккаунта, значение хранится в нотах. Нота привязана к ключу получателя, а доказательства с нулевым разглашением позволяют кому-то потратить её, не раскрывая саму ноту. Дерево Меркла доказывает, что нота входит в систему, а nullifier не даёт потратить ту же ноту повторно.
Вот это мне понятно.
Тот момент, о котором я всё ещё думаю, — это точка, где значение перемещается между Moonlight и Phoenix. На бумаге депозиты и выводы звучат просто, но меня больше интересуют те допущения, которые лежат под этими транзакциями.
Если конвертация каким-то образом окажется некорректной или завершится неожиданным образом, насколько изолирована будет эта проблема? Может ли она повлиять на глобальный набор nullifier’ов или на прозрачные балансы, которые используют смарт-контракты?
И есть ещё более широкий вопрос о том, где фактически находится «вес» системы. Если со временем пользователи хранят большую часть ценности внутри Phoenix, но контракты и другие приложения в основном взаимодействуют с Moonlight, остаётся ли прозрачный слой всё ещё главным центром активности и влияния?
Также я не до конца уверен, какие части дизайна стоит считать зафиксированными на сегодня. Лимит 2^64−1 — это одно, но мне интересно, как устроена генерация нот, глубина дерева Меркла и правила уникальности nullifier’ов.
Похоже, я здесь упускаю некоторые детали, так что мне правда хотелось бы услышать от кого угодно, кто потратил время на реальные схемы и доказательства. Именно там, как мне кажется, находятся самые интересные ответы.
#dusk $DUSK
