Технология анонимных транзакций, основанная на доказательствах с нулевым разглашением информации zk-SNARK, заимствованная из криптовалюты Zcash, появилась в Эфириуме после активации первой части хардфорка Metropolis (предложения EIP 198, EIP 212 (197) и EIP 213 (196)). Не прошло и трех недель, как Виталик Бутерин предложил ее улучшенную версию, zk-STARK, где буква T означает Transparent – прозрачный.
Концепция zk-SNARK на блокчейне Эфириума была реализована в ответ на пожелания корпоративных пользователей, желающих сохранить приватность своих транзакций.
Запись обычной транзакции в блокчейне Эфириума включает в себя адрес отправителя, получателя и сумму эфира, а zk-SNARK надежно скрывает эту информацию, обеспечивая приватность.
Основной особенностью технологии является использование следующего метода: шифрующий узел создает ненулевое случайное число и умножает его на произведение двух математических функций, зависящих от скрываемых параметров (эллиптические кривые), а результат вместе с этим числом отправляется в сеть для подтверждения транзакции. С помощью этой информации узел получателя может подтвердить транзакцию, почти ничего о ней не зная. Другими словами, сообщение имеет следующий вид:
Вы можете доверять мне – эта транзакция верна, но я не скажу вам почему!
zk-STARK решает основную проблему технологии: необходимость доверять исходному набору данных. Дело в том, что при переносе технологии из Zcash, разработчикам пришлось отказаться от вычисления эллиптических кривых, заменив их заранее прекомпилированными значениями. Эти вычисления весьма трудоемки и могли бы перегрузить блокчейн.
Поэтому, zk-STARK изначально предполагает намного более простые криптографические допущения: отпадает необходимость в эллиптических кривых, операции умножения и выбора случайного числа, вместо этого полагаясь исключительно на хэши и теорию информации. Помимо прозрачности процесса, побочный эффект модификации заключается в том, что новый алгоритм устойчив к взлому даже против квантового компьютера.
Однако, за все приходится платить: размер доказательства с нулевым разглашением увеличивается с 288 байт до нескольких сотен килобайт, так что применение технологии будет ограничено приложениями, требующими минимального использования доверенных источников и максимальной приватности.
Попутно, Бутерин поднимает проблему масштабируемости сети: в свете продолжающихся задержек в разработках протокола Casper и шардинга, увеличение скорости верификации транзакций приобретает особое значение. И здесь могут помочь как zk-SNARK, так и zk-STARK – с их помощью можно значительно сократить время верификации транзакции.