Iurii Shyshatskyi
Критика по сути.
Допустим у них есть нода которая располагает “блокчейном” размером в 22KB=176000 bit и снарком (или пятью снарками) с помощью которого в частности может
a) проверить валидность любой транзакции и/или баланс аккаунта в аккаунт модели не полагаясь запросы информации от других “полных нод” и нод “блок продюсеров”.
b) Проверить что имеющийся в распоряжении “блокчейн” соответствует главной цепочке. (пункт b обсуждать не будем)
Допустим пространство допустимых аккаунт балансов / допустимых транзакций имеет размер порядка N=2^250 из которых некоторое подмножество размером не более M=2^20 являются валидными в данный момент времени.
Не буду приводить все выкладки, но проблема в том что “снарка” который бы выдавал требуемый результат без “ложноположительный срабатываний” в природе быть не может. (Если для каких-то аккаунтов будут “ложноотрицательные срабатывания” то про деньги на них можно забыть, а потому этот кейс куда неприятнее)
Таким образом есть некоторый “шум” из аккаунтов, которых никогда не было, но если кто-то случайно подберет “правильный ключ” он сможет скормить “полным нодам” несуществующие монеты и снарк им никак не поможет. Если вероятность подобрать “правильный ключ” небольшая, то бояться как бы нечего. Но к сожалению, как правило снарки имеют нехорошие свойства. После многократного эффективного рекурсивного и гомоморфного упаковывания данных в снарки и снарков в снарки, шум начинает быстро расти и, в какой-то момент, проверка снарком становится не более эффективна чем подбрасывание монеты. Это цена многократного упаковывания.
Если сравнить первый и второй вайтпейпер Коды, то в первом пейпере были какие-то попытки выписать эти самые снарки и даже сделать какие-то оценки шума. Во второй же версии все “самые интересные вопросы” куда-то уплыли или утонули между новыми примитивами, алгоритмами и т.д.
Первая половина вашего аргумента применима к деревьям меркла. Если я знаю корень дерева, то я могу доказать баланс любого аккаунта за меньше чем 22К. Если я правильно понимаю ваш аргумент, для которого вы не приводите выкладки, доказательства в дереве меркла не может работать.
В частности, в Кода доказательство баланса на аккаунте — это не снарк, а путь в дереве меркла. Снарк используется только чтобы доказать что корень в дереве соответствует состоянию канонической валидной цепи.
Про накапливаемый шум — где почитать подробнее?