Я разбирался, как Phoenix предотвращает двойное расходование, и ожидал стандартную историю про UTXO: проверь входные данные, отметь как потраченное и двигайся дальше. Но так происходит не совсем.
Каждая заметка, которую Dusk отслеживает, живёт в виде хеша в дереве Меркла. Когда вы тратите одну, вы не указываете на неё напрямую — вы генерируете нуллификатор: значение, вычисляемое из вашего секретного ключа и самой заметки. Оно достаточно детерминированное, чтобы блокировать повторное использование, но при этом достаточно неотслеживаемое, чтобы ни один наблюдатель не смог восстановить, к какому листу в дереве относится.
Вот в чём хитрость. Но это означает, что сеть не может проверить расходование так, как это делает прозрачная цепочка: просто проверив конкретную запись. Ей приходится доверять единому агрегированному ZK-доказательству, которое одновременно подтверждает владение, отсутствие двойного расходования и соблюдение баланса. По замыслу, после факта нет способа инспектировать отдельные утверждения.
Та же неотслеживаемость, которая даёт приватность, одновременно заставляет корректность системы целиком опираться на саму систему доказательств, а не на проверяемое состояние. Приватность и верифицируемость оказываются в противоречии, а не в дополнении.
Заставляет задуматься, как подход Dusk к проверке схем масштабируется, когда Phoenix видит больше институционального объёма.
#dusk $DUSK @Dusk
Каждая заметка, которую Dusk отслеживает, живёт в виде хеша в дереве Меркла. Когда вы тратите одну, вы не указываете на неё напрямую — вы генерируете нуллификатор: значение, вычисляемое из вашего секретного ключа и самой заметки. Оно достаточно детерминированное, чтобы блокировать повторное использование, но при этом достаточно неотслеживаемое, чтобы ни один наблюдатель не смог восстановить, к какому листу в дереве относится.
Вот в чём хитрость. Но это означает, что сеть не может проверить расходование так, как это делает прозрачная цепочка: просто проверив конкретную запись. Ей приходится доверять единому агрегированному ZK-доказательству, которое одновременно подтверждает владение, отсутствие двойного расходования и соблюдение баланса. По замыслу, после факта нет способа инспектировать отдельные утверждения.
Та же неотслеживаемость, которая даёт приватность, одновременно заставляет корректность системы целиком опираться на саму систему доказательств, а не на проверяемое состояние. Приватность и верифицируемость оказываются в противоречии, а не в дополнении.
Заставляет задуматься, как подход Dusk к проверке схем масштабируется, когда Phoenix видит больше институционального объёма.
#dusk $DUSK @Dusk
