Чтение ограничений схемы Phoenix остановило меня. На Dusk $DUSK #dusk @Duskfoundation Контракт Transfer никогда не смотрит на реальные значения нот и на то, какой именно Merkle-лист используется.
Он лишь проверяет PLONK-доказательство, что приватные входные данные удовлетворяют пяти условиям: хэш ноты открывается против недавнего Merkle-корня набора нот, доказчик знает секретный ключ ноты, нуллификатор равен Poseidon(npk′ ‖ position), выходные коммитменты корректно открываются, и сумма входных значений равна сумме выходов плюс fee, плюс любые депозиты.
Сами нуллификаторы публикуются, чтобы сеть могла отклонять повторное использование. Поскольку каждый нуллификатор выводится из скрытого ключа ноты и позиции, ни один наблюдатель не может сопоставить нуллификатор обратно с конкретным листом. Проверка корректности полностью живёт внутри удовлетворения схемы; содержимое никогда не попадает в реестр.
Для меня изменилось понимание того, что защита от двойных трат и целостность баланса обе встроены в доказательство, а не в какие-либо видимые изменения состояния.
Следующая проверка: остаются ли опубликованные нуллификаторы каждого принятого транзакционного Phoenix уникальными в on-chain наборе нуллификаторов после финализации.
@Dusk
Он лишь проверяет PLONK-доказательство, что приватные входные данные удовлетворяют пяти условиям: хэш ноты открывается против недавнего Merkle-корня набора нот, доказчик знает секретный ключ ноты, нуллификатор равен Poseidon(npk′ ‖ position), выходные коммитменты корректно открываются, и сумма входных значений равна сумме выходов плюс fee, плюс любые депозиты.
Сами нуллификаторы публикуются, чтобы сеть могла отклонять повторное использование. Поскольку каждый нуллификатор выводится из скрытого ключа ноты и позиции, ни один наблюдатель не может сопоставить нуллификатор обратно с конкретным листом. Проверка корректности полностью живёт внутри удовлетворения схемы; содержимое никогда не попадает в реестр.
Для меня изменилось понимание того, что защита от двойных трат и целостность баланса обе встроены в доказательство, а не в какие-либо видимые изменения состояния.
Следующая проверка: остаются ли опубликованные нуллификаторы каждого принятого транзакционного Phoenix уникальными в on-chain наборе нуллификаторов после финализации.
@Dusk
