<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ZKP on kenji.blog</title><link>http://kenji.blog/ru/tags/zkp/</link><description>Recent content in ZKP on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>ru</language><copyright>kenjinote</copyright><lastBuildDate>Fri, 11 Sep 2026 19:00:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/ru/tags/zkp/index.xml" rel="self" type="application/rss+xml"/><item><title>Механизм доказательства с нулевым разглашением (ZKP) и его последние применения в Web3 и безопасности</title><link>http://kenji.blog/ru/p/zero-knowledge-proofs-zkp-web3-security/</link><pubDate>Fri, 11 Sep 2026 19:00:00 +0900</pubDate><guid>http://kenji.blog/ru/p/zero-knowledge-proofs-zkp-web3-security/</guid><description>&lt;img src="http://kenji.blog/p/zero-knowledge-proofs-zkp-web3-security/img/eyecatch.jpg" alt="Featured image of post Механизм доказательства с нулевым разглашением (ZKP) и его последние применения в Web3 и безопасности" />&lt;h2 id="введение">Введение
&lt;/h2>&lt;p>В современном цифровом обществе конфиденциальность данных и масштабируемость стали двумя наиболее важными проблемами. По мере роста риска утечек и несанкционированного использования личной информации, возникает острая необходимость в технологии, позволяющей «доказать, что вы обладаете определенной информацией, не раскрывая саму эту информацию другой стороне». Именно это и реализует &lt;strong>доказательство с нулевым разглашением (Zero-Knowledge Proof: ZKP)&lt;/strong>.&lt;/p>
&lt;p>Доказательство с нулевым разглашением — это криптографическая концепция, впервые предложенная в 1980-х годах Шафи Гольдвассер, Сильвио Микали и Чарльзом Ракоффом, однако долгое время она оставалась лишь предметом теоретических исследований. Но с появлением технологии блокчейн и Web3 ситуация кардинально изменилась. ZKP оказалось в центре внимания как «волшебная палочка», способная одновременно решить проблему масштабируемости (ограничения пропускной способности) и проблему конфиденциальности (все транзакции публичны), с которыми сталкиваются публичные блокчейны, такие как Ethereum.&lt;/p>
&lt;p>В этой статье мы подробно и глубоко с технической точки зрения рассмотрим основные концепции доказательства с нулевым разглашением, глубокие математические и криптографические механизмы &lt;strong>zk-SNARKs&lt;/strong> и &lt;strong>zk-STARKs&lt;/strong>, которые в настоящее время являются основными, а также последние примеры их применения в Web3 и сфере безопасности, такие как ZK-Rollups и децентрализованная идентификация (DID).&lt;/p>
&lt;hr>
&lt;h2 id="что-такое-доказательство-с-нулевым-разглашением-zkp">Что такое доказательство с нулевым разглашением (ZKP)?
&lt;/h2>&lt;p>Доказательство с нулевым разглашением (ZKP) означает протокол, при котором доказывающий (Prover) доказывает проверяющему (Verifier), что некое утверждение истинно, но при этом «не передает абсолютно никакой информации, кроме самого факта истинности этого утверждения».&lt;/p>
&lt;h3 id="3-требования-которым-должно-удовлетворять-zkp">3 требования, которым должно удовлетворять ZKP
&lt;/h3>&lt;p>Чтобы считаться ZKP, протокол должен строго выполнять следующие три свойства:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Полнота (Completeness)&lt;/strong>
Если утверждение истинно, и доказывающий с проверяющим добросовестно следуют протоколу, проверяющий должен принять доказательство (Accept) с подавляющей вероятностью.&lt;/li>
&lt;li>&lt;strong>Корректность (Soundness)&lt;/strong>
Если утверждение ложно, то никакой доказывающий-злоумышленник, какими бы вычислительными мощностями он ни обладал, не сможет обмануть проверяющего и заставить его принять доказательство (за исключением пренебрежимо малой вероятности).&lt;/li>
&lt;li>&lt;strong>Нулевое разглашение (Zero-Knowledge)&lt;/strong>
Если утверждение истинно, проверяющий не может получить из процесса доказательства никакой другой информации, кроме того факта, что «утверждение истинно». С точки зрения проверяющего, это доказывается математическим определением того, что процесс доказательства можно смоделировать (существует симулятор).&lt;/li>
&lt;/ol>
&lt;h3 id="интерактивные-и-неинтерактивные-доказательства">Интерактивные и неинтерактивные доказательства
&lt;/h3>&lt;p>ZKP делится на два типа: &lt;strong>интерактивное доказательство&lt;/strong>, при котором доказывающий и проверяющий обмениваются сообщениями несколько раз, и &lt;strong>неинтерактивное доказательство&lt;/strong>, при котором доказывающий отправляет данные доказательства только один раз.&lt;/p>
&lt;h4 id="интерактивное-доказательство-interactive-zkp">Интерактивное доказательство (Interactive ZKP)
&lt;/h4>&lt;p>Ранние ZKP разрабатывались как интерактивные протоколы. Известная притча о «пещере Али-Бабы» является примером такого подхода. Основной поток протокола выглядит следующим образом:&lt;/p>
&lt;div class="mermaid">sequenceDiagram
participant Prover as "Prover (Доказывающий)"
participant Verifier as "Verifier (Проверяющий)"
Note over Prover, Verifier: "Основной процесс интерактивного доказательства"
Prover->>Verifier: "1. Отправить обязательство (Commitment)"
Verifier->>Prover: "2. Отправить случайный вызов (Challenge)"
Prover->>Verifier: "3. Вычислить и отправить ответ (Response)"
Note over Verifier: "Проверить ответ (Verification)"
Verifier-->>Prover: "4. Принять или отклонить (Accept / Reject)"
Note over Prover, Verifier: "※Для повышения достоверности это повторяется десятки раз"&lt;/div>
&lt;p>Этот метод эффективен, но требует, чтобы проверяющий находился онлайн, что делает его неудобным для применения в асинхронных распределенных системах, таких как блокчейн. В блокчейне любой желающий должен иметь возможность в любое время проверить прошлые доказательства.&lt;/p>
&lt;h4 id="эвристика-фиата-шамира-fiat-shamir-heuristic-и-переход-к-неинтерактивности">Эвристика Фиата-Шамира (Fiat-Shamir Heuristic) и переход к неинтерактивности
&lt;/h4>&lt;p>Революционным методом преобразования интерактивных доказательств в неинтерактивные (Non-Interactive Zero-Knowledge Proof: NIZK) является &lt;strong>преобразование (эвристика) Фиата-Шамира&lt;/strong>.&lt;/p>
&lt;p>Вместо «случайного вызова», отправляемого проверяющим, доказывающий самостоятельно генерирует «псевдослучайный вызов», используя собственное обязательство (commitment) и хеш-значение публичной информации. При условии, что криптографическая хеш-функция (например, SHA-256 или Keccak) работает как случайный оракул (Random Oracle), доказывающий не может заранее предсказать или манипулировать вызовом. Таким образом, доказательство завершается одной отправкой сообщения с сохранением безопасности, эквивалентной интерактивному доказательству.&lt;/p>
&lt;hr>
&lt;h2 id="технические-подробности-zk-snarks">Технические подробности zk-SNARKs
&lt;/h2>&lt;p>В настоящее время наиболее широко используемым видом ZKP является &lt;strong>zk-SNARKs&lt;/strong> (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge). Как следует из названия, это аргумент знания (Argument of Knowledge), который обладает нулевым разглашением (zk), имеет очень маленький размер доказательства и быстро проверяется (Succinct), а также является неинтерактивным (Non-Interactive).&lt;/p>
&lt;p>В основе zk-SNARKs лежит передовая алгебраическая геометрия и криптография. Они преобразуют выполнение программ и вычисления в проверку уравнений определенных многочленов.&lt;/p>
&lt;h3 id="1-арифметические-схемы-и-преобразование-в-r1cs-rank-1-constraint-system">1. Арифметические схемы и преобразование в R1CS (Rank-1 Constraint System)
&lt;/h3>&lt;p>Сначала любое вычисление, которое необходимо доказать (алгоритм или логика смарт-контракта), преобразуется в &lt;strong>арифметическую схему (Arithmetic Circuit)&lt;/strong>, состоящую из вентилей сложения и умножения.&lt;/p>
&lt;p>Затем эта арифметическая схема преобразуется в набор матричных уравнений, называемый &lt;strong>R1CS (Rank-1 Constraint System)&lt;/strong>. R1CS — это задача поиска матриц $A, B, C$, удовлетворяющих следующему ограничению для вектора переменных $x$:&lt;/p>
$$ (A \cdot x) \circ (B \cdot x) = C \cdot x $$
&lt;p>Здесь $\circ$ обозначает произведение Адамара (поэлементное умножение). Это ограничение гарантирует, что все логические вентили в схеме (особенно вентили умножения) вычислены правильно.&lt;/p>
&lt;h3 id="2-преобразование-в-qap-quadratic-arithmetic-program">2. Преобразование в QAP (Quadratic Arithmetic Program)
&lt;/h3>&lt;p>Поскольку матричных ограничений R1CS существует огромное количество, проверять их по отдельности крайне неэффективно. Поэтому с помощью интерполяции Лагранжа эти ограничения сжимаются в единое полиномиальное уравнение. Это называется &lt;strong>QAP (Quadratic Arithmetic Program)&lt;/strong>.&lt;/p>
&lt;p>За счет преобразования в QAP задача, которую необходимо доказать, сводится к вопросу: «Делится ли определенный многочлен $P(x)$ на другой известный многочлен $Z(x)$?»&lt;/p>
$$ P(x) = L(x) \cdot R(x) - O(x) $$
&lt;p>Здесь $L(x), R(x), O(x)$ — многочлены, составленные из соответствующих строк матриц $A, B, C$. Если доказывающий знает правильное решение (Witness), значение $P(x)$ будет равно 0 в каждом корне (точке оценки), поэтому $P(x)$ будет иметь целевой многочлен $Z(x)$ в качестве множителя. То есть существует некоторый многочлен $H(x)$, для которого выполняется:&lt;/p>
$$ P(x) = H(x) \cdot Z(x) $$
&lt;p>Проверяющий может мгновенно проверить правильность выполнения всего вычисления, просто проверив, выполняется ли это уравнение $P(s) = H(s) \cdot Z(s)$ в некоторой случайной секретной точке $s$. В этом заключается секрет «Succinct» (краткости).&lt;/p>
&lt;h3 id="3-эллиптическая-криптография-и-спаривание-bilinear-pairings">3. Эллиптическая криптография и спаривание (Bilinear Pairings)
&lt;/h3>&lt;p>Однако, если бы проверяющий знал секретную точку $s$, доказывающий мог бы подделать ложный многочлен для удовлетворения уравнения (нарушение корректности). Поэтому вычисления необходимо проводить, пока $s$ остается зашифрованным от всех (с использованием гомоморфного шифрования).&lt;/p>
&lt;p>Это достигается с помощью &lt;strong>эллиптического спаривания (Bilinear Pairings)&lt;/strong>.
Спаривание $e$ — это специальная функция, которая из двух зашифрованных значений позволяет вычислить значение, эквивалентное шифрованию их произведения.&lt;/p>
$$ e(g_1^a, g_2^b) = e(g_1, g_2)^{ab} $$
&lt;p>Доказывающий, не зная самой $s$, использует зашифрованные значения степеней $s$ (это называется CRS: Common Reference String) для вычисления зашифрованных значений многочленов $P(s)$ и $H(s)$. Проверяющий использует функцию спаривания, чтобы проверить выполнение отношения $P(s) = H(s) \cdot Z(s)$, оперируя при этом зашифрованными значениями.&lt;/p>
&lt;h3 id="4-доверенная-установка-trusted-setup">4. Доверенная установка (Trusted Setup)
&lt;/h3>&lt;p>Главной слабостью zk-SNARKs (особенно ранних версий, таких как Groth16) является необходимость процесса генерации секретной точки $s$, так называемой &lt;strong>доверенной установки (Trusted Setup)&lt;/strong>. Если создатель $s$ сохранит это значение вместо того, чтобы уничтожить его, он сможет сгенерировать любые ложные доказательства (проблема Toxic Waste).&lt;/p>
&lt;p>Для предотвращения этого проводится ритуал, называемый «Ceremony», с использованием многосторонних вычислений (Multi-Party Computation, MPC). В нем участвует множество участников, предоставляя случайные данные. Если хотя бы один участник честно уничтожит свое случайное значение, безопасность всей системы будет сохранена. Тем не менее, исследования по устранению этой зависимости продолжались долгие годы.&lt;/p>
&lt;hr>
&lt;h2 id="технические-подробности-zk-starks">Технические подробности zk-STARKs
&lt;/h2>&lt;p>В качестве ответа на зависимость от доверенной установки и риск взлома эллиптической криптографии квантовыми компьютерами появились &lt;strong>zk-STARKs&lt;/strong> (Zero-Knowledge Scalable Transparent Argument of Knowledge).&lt;/p>
&lt;p>Разработанные Эли Бен-Сассоном (Eli Ben-Sasson) и его коллегами, STARKs обладают характеристиками, отраженными в их названии: они «прозрачны» (Transparent) и вообще не требуют доверенной установки, а также «масштабируемы» (Scalable), поскольку размер доказательства и время проверки остаются эффективными даже при увеличении объема вычислений.&lt;/p>
&lt;h3 id="1-полиномиальные-обязательства-и-протокол-fri">1. Полиномиальные обязательства и протокол FRI
&lt;/h3>&lt;p>В отличие от zk-SNARKs, zk-STARKs не используют эллиптическую криптографию, а основывают свою безопасность &lt;strong>исключительно на хеш-функциях&lt;/strong>. Благодаря этому они обладают свойствами постквантовой криптографии (Post-Quantum Cryptography).&lt;/p>
&lt;p>Проверка вычислений выполняется после их преобразования в формат под названием AIR (Algebraic Intermediate Representation) с использованием свойств одномерных или многомерных полиномов. Сердцем STARKs является протокол &lt;strong>FRI (Fast Reed-Solomon Interactive Oracle Proof of Proximity)&lt;/strong>.&lt;/p>
&lt;p>Протокол FRI — это технология проверки того, «насколько близка определенная функция к полиному определенной степени» (Proximity). Доказывающий фиксирует значения полинома в качестве листьев дерева Меркла (Merkle Tree) (это называется полиномиальным обязательством).&lt;/p>
&lt;div class="mermaid">graph TD
Root["Корень Меркла (Обязательство)"] --> Node0["Узел 0"]
Root --> Node1["Узел 1"]
Node0 --> Leaf0["P(x_0)"]
Node0 --> Leaf1["P(x_1)"]
Node1 --> Leaf2["P(x_2)"]
Node1 --> Leaf3["P(x_3)"]&lt;/div>
&lt;p>Проверяющий запрашивает раскрытие нескольких случайных точек и использует доказательства Меркла (Merkle proof), чтобы подтвердить, что они включены в обязательство. Рекурсивно повторяя этот процесс, он с подавляющей вероятностью гарантирует, что степень исходного многочлена действительно низкая.&lt;/p>
&lt;h3 id="сравнение-zk-snarks-и-zk-starks">Сравнение zk-SNARKs и zk-STARKs
&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Характеристика&lt;/th>
&lt;th style="text-align:left">zk-SNARKs&lt;/th>
&lt;th style="text-align:left">zk-STARKs&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>Криптографические предположения&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Эллиптические кривые, спаривание&lt;/td>
&lt;td style="text-align:left">Криптографические хеш-функции, устойчивые к коллизиям&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>Доверенная установка&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Требуется (в Plonk и др. — универсальная)&lt;/td>
&lt;td style="text-align:left">Не требуется (Transparent)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>Квантовая устойчивость&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Нет&lt;/td>
&lt;td style="text-align:left">Есть&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>Размер доказательства&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Очень маленький (~200 байт)&lt;/td>
&lt;td style="text-align:left">Довольно большой (десятки КБ)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>Вычислительные затраты на создание доказательства&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Высокие&lt;/td>
&lt;td style="text-align:left">Относительно ниже, чем у SNARKs&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>Затраты на проверку (Gas)&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Очень низкие (постоянные)&lt;/td>
&lt;td style="text-align:left">Низкие (логарифмический рост)&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>В последние годы появились SNARKs, такие как Plonk и Halo2, которым «не требуется доверенная установка или она нужна только один раз», поэтому граница между SNARKs и STARKs постепенно стирается, но принципиальная разница в математическом подходе остается важной.&lt;/p>
&lt;hr>
&lt;h2 id="новейшие-применения-доказательства-с-нулевым-разглашением-в-web3-и-безопасности">Новейшие применения доказательства с нулевым разглашением в Web3 и безопасности
&lt;/h2>&lt;p>Перейдя от теории к практике, ZKP в настоящее время производит революцию на переднем крае Web3 и кибербезопасности.&lt;/p>
&lt;h3 id="1-максимальное-масштабирование-ethereum-с-помощью-zk-rollups">1. Максимальное масштабирование Ethereum с помощью ZK-Rollups
&lt;/h3>&lt;p>Блокчейны уровня 1 (L1), такие как Ethereum, придают большое значение децентрализации и безопасности, но из-за этого имеют серьезные ограничения масштабируемости (трилемма). Окончательным решением уровня 2 (L2), устраняющим эту проблему, являются &lt;strong>ZK-Rollups&lt;/strong>.&lt;/p>
&lt;p>В ZK-Rollup тысячи транзакций выполняются и обрабатываются вне сети (L2), и генерируется «одно ZKP (Validity Proof)», подтверждающее правильность их выполнения. Смарт-контракту в блокчейне L1 остается только проверить это доказательство.&lt;/p>
&lt;div class="mermaid">flowchart LR
Users["Пользователи (Отправка Tx)"] --> Sequencer["Секвенсор (Сбор и выполнение Tx)"]
Sequencer --> Prover["Доказывающий (Генерация ZKP)"]
Sequencer --> L1Contract["L1 Смарт-контракт (Публикация данных Tx)"]
Prover --> L1Contract["Предоставление ZKP (Доказательства)"]
L1Contract --> Verify["Проверка и обновление состояния"]&lt;/div>
&lt;p>Главным преимуществом ZK-Rollups, в отличие от Optimistic Rollups (например, Arbitrum или Optimism), является отсутствие необходимости в периоде оспаривания (challenge period, обычно 7 дней) для доказательства мошенничества (Fraud Proof). Поскольку правильность криптографически гарантирована, как только доказательство проверено, вывод средств (Finality) на L1 завершается мгновенно. В настоящее время такие проекты, как zkSync, Starknet, Scroll и Polygon zkEVM, ведут ожесточенную конкуренцию в разработке, и реализация &lt;strong>zkEVM&lt;/strong>, совместимой с EVM (виртуальной машиной Ethereum), способствует быстрому росту экосистемы.&lt;/p>
&lt;h3 id="2-идентификация-с-сохранением-конфиденциальности-zkp-for-identity">2. Идентификация с сохранением конфиденциальности (ZKP for Identity)
&lt;/h3>&lt;p>ZKP также в корне меняет способы личной аутентификации в цифровом мире.
Например, на вопрос «Вам больше 18 лет?» в традиционных системах мы показываем водительские права или паспорт, передавая собеседнику ненужную личную информацию, такую как имя или адрес.&lt;/p>
&lt;p>Используя ZKP, на основе цифрового сертификата (Verifiable Credential), выданного государственным органом, можно &lt;strong>математически доказать только тот факт&lt;/strong>, что «согласно моей дате рождения, на текущую дату мне больше 18 лет». Проверяющему достаточно проверить подпись сертификата и ZKP, и он не сможет узнать вашу дату рождения или личность.&lt;/p>
&lt;p>Проекты «доказательства личности» (Proof of Personhood), такие как Worldcoin, также не хранят и не передают данные радужной оболочки глаза напрямую. Вместо этого они используют ZKP, чтобы доказать только то, что «вы — уникальный человек».&lt;/p>
&lt;h3 id="3-конфиденциальные-смарт-контракты-и-корпоративное-использование">3. Конфиденциальные смарт-контракты и корпоративное использование
&lt;/h3>&lt;p>Свойство публичных блокчейнов, при котором «все данные открыты», было серьезным препятствием для компаний при работе с конфиденциальными транзакциями или информацией о цепочках поставок в блокчейне.&lt;/p>
&lt;p>Используя технологии ZKP (например, сети, ориентированные на конфиденциальность, такие как Aleo или Aztec), можно записывать в публичный блокчейн только подтверждение правильности обновления состояния, оставляя входные и выходные значения транзакций и даже саму логику выполняемого смарт-контракта в зашифрованном виде. Это позволяет предотвратить фронтраннинг (MEV) в DeFi (децентрализованных финансах) и создать конфиденциальные сети консорциумов между компаниями, наслаждаясь при этом высокой безопасностью публичных блокчейнов.&lt;/p>
&lt;hr>
&lt;h2 id="будущие-проблемы-и-перспективы-zkp">Будущие проблемы и перспективы ZKP
&lt;/h2>&lt;p>ZKP, несомненно, является фундаментальной технологией следующего поколения, но остаются и некоторые проблемы.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Вычислительные затраты на генерацию доказательств и аппаратное ускорение&lt;/strong>
Генерация ZKP требует огромного количества полиномиальных операций, быстрого преобразования Фурье (FFT) и мультискалярного умножения (MSM). В настоящее время быстро продвигаются исследования в области разработки специализированного аппаратного обеспечения (FPGA или ASIC) для ускорения генерации доказательств, так называемый &lt;strong>майнинг ZKP&lt;/strong> (Prover Network).&lt;/li>
&lt;li>&lt;strong>Стандартизация и улучшение опыта разработчиков (DX)&lt;/strong>
Появилось множество специализированных языков для написания схем ZKP, таких как Circom, Cairo, Noir, Leo и другие. Зрелость компиляторов, которые автоматически генерируют схемы ZKP из существующих языков, таких как Rust или C++, и единые стандарты, объединяющие их, станут ключом к внедрению ZKP обычными инженерами-программистами.&lt;/li>
&lt;/ol>
&lt;h2 id="заключение">Заключение
&lt;/h2>&lt;p>Доказательство с нулевым разглашением (ZKP) превратилось из просто «технологии повышения анонимности криптовалют» в «универсальную технологию, переопределяющую доверие во всем интернете». Небольшие доказательства, вычисленные в глубинах формул и криптографии, станут щитом, который бесконечно расширяет масштабируемость блокчейна и надежно защищает нашу конфиденциальность.&lt;/p>
&lt;p>На пути к истинному массовому внедрению Web3 и созданию безопасного и приватного интернета следующего поколения, доказательство с нулевым разглашением будет продолжать играть роль важнейшего элемента. Мы должны внимательно следить за дальнейшей эволюцией технологий ZKP.&lt;/p>
&lt;hr>
&lt;p>&lt;em>Источники и полезные ссылки&lt;/em>&lt;/p>
&lt;ul>
&lt;li>Groth, J. (2016). &amp;ldquo;On the Size of Pairing-based Non-interactive Arguments&amp;rdquo;&lt;/li>
&lt;li>Ben-Sasson, E., et al. (2018). &amp;ldquo;Scalable, transparent, and post-quantum secure computational integrity&amp;rdquo;&lt;/li>
&lt;li>Vitalik Buterin&amp;rsquo;s blog on zk-SNARKs and zk-STARKs&lt;/li>
&lt;/ul></description></item></channel></rss>