Zk-Rollups, или роллапы нулевого знания, – это решения для масштабирования второго уровня, которые увеличивают пропускную способность в сети Ethereum за счет отключения вычислений и хранения состояния. Когда в 2018 году на GitHub под псевдонимом Barry Whitehat был загружен репозиторий с именем “roll_up”, впервые была представлена идея роллапов. Вскоре после этого Виталик Бутерин, создатель Ethereum, опубликовал усовершенствованную версию этой первоначальной идеи под названием zk-Rollups.
По сути, технология zk-Rollups группирует транзакции в партии, которые затем обрабатываются вне цепочки. Объем данных, которые необходимо размещать в блокчейне, уменьшается за счет выполнения вычислений вне цепочки. Вместо того, чтобы отправлять каждую транзакцию отдельно, операторы zk-Rollup отправляют сводку изменений, необходимых для представления всех транзакций в партии. Состояние zk-Rollup сохраняется с помощью смарт-контракта, запущенного в сети Ethereum. Узлы Zk-Rollup должны представить доказательства достоверности для утверждения, прежде чем обновлять это состояние. Доказательство достоверности предоставляет криптографическую гарантию того, что изменение состояния, предложенное роллапом, действительно произошло в результате выполнения указанной партии транзакций. Это означает, что в отличие от оптимистичных роллапов, которые должны публиковать полную информацию о транзакциях на цепочке, zk-роллапам достаточно предоставить доказательства достоверности для завершения транзакций на блокчейне Ethereum.