<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Quantum Computing on kenji.blog</title><link>http://kenji.blog/ru/tags/quantum-computing/</link><description>Recent content in Quantum Computing on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>ru</language><copyright>kenjinote</copyright><lastBuildDate>Fri, 11 Sep 2026 20:00:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/ru/tags/quantum-computing/index.xml" rel="self" type="application/rss+xml"/><item><title>Сверхкраткое введение в квантовое программирование с использованием Qiskit</title><link>http://kenji.blog/ru/p/qiskit-quantum-programming-intro/</link><pubDate>Fri, 11 Sep 2026 20:00:00 +0900</pubDate><guid>http://kenji.blog/ru/p/qiskit-quantum-programming-intro/</guid><description>&lt;img src="http://kenji.blog/p/qiskit-quantum-programming-intro/img/eyecatch.jpg" alt="Featured image of post Сверхкраткое введение в квантовое программирование с использованием Qiskit" />&lt;h2 id="1-введение">1. Введение
&lt;/h2>&lt;p>Современные компьютеры (классические компьютеры) кардинально изменили нашу жизнь, поддерживая все аспекты жизни общества благодаря своим высоким вычислительным возможностям. Однако известно, что для решения некоторых специфических задач (например, факторизации очень больших чисел, симуляции сложных молекулярных структур, задач оптимизации и т. д.) даже самым современным суперкомпьютерам потребуется время, превышающее возраст Вселенной.&lt;/p>
&lt;p>Эти «ограничения классических компьютеров» обладает потенциалом преодолеть &lt;strong>квантовый компьютер (Quantum Computer)&lt;/strong>. Считается, что за счет использования удивительных свойств квантовой механики (суперпозиции и квантовой запутанности) в качестве вычислительных ресурсов, можно радикально ускорить решение определенных задач.&lt;/p>
&lt;p>В этой статье мы сделаем первый шаг в мир квантового программирования, используя &lt;strong>Qiskit&lt;/strong>, фреймворк для квантовых вычислений с открытым исходным кодом от IBM. Это очень подробное вводное руководство, в котором тщательно объясняются основы физики и математики, а также охватывается весь процесс написания кода на Python и запуска квантовых схем на симуляторе.&lt;/p>
&lt;hr>
&lt;h2 id="2-физические-и-математические-основы-квантовых-вычислений">2. Физические и математические основы квантовых вычислений
&lt;/h2>&lt;p>Чтобы понять квантовое программирование, сначала необходимо понять базовые концепции квантовой механики. Здесь мы обсудим три важных столпа: кубиты, суперпозицию и квантовую запутанность.&lt;/p>
&lt;h3 id="21-классические-биты-и-квантовые-биты-qubit">2.1 Классические биты и квантовые биты (Qubit)
&lt;/h3>&lt;p>Единицей информации в классическом компьютере является &amp;ldquo;бит (Bit)&amp;rdquo;. Бит всегда находится в одном из двух состояний: &lt;code>0&lt;/code> или &lt;code>1&lt;/code>.&lt;/p>
&lt;p>С другой стороны, минимальная единица информации в квантовом компьютере называется &lt;strong>квантовым битом (Qubit: Quantum bit)&lt;/strong>. Кубит может находиться не только в состояниях &lt;code>0&lt;/code> и &lt;code>1&lt;/code>, но и &lt;strong>в обоих этих состояниях одновременно&lt;/strong>.&lt;/p>
&lt;p>Математически состояние кубита $|\psi\rangle$ выражается как линейная комбинация (суперпозиция) базисных состояний $|0\rangle$ и $|1\rangle$.&lt;/p>
$$
|\psi\rangle = \alpha|0\rangle + \beta|1\rangle
$$
&lt;p>Где $\alpha$ и $\beta$ - комплексные числа, представляющие амплитуды вероятности наблюдения состояний $|0\rangle$ и $|1\rangle$ соответственно. Согласно фундаментальному принципу квантовой механики, сумма вероятностей должна быть равна 1, поэтому выполняется следующее условие нормировки:&lt;/p>
$$
|\alpha|^2 + |\beta|^2 = 1
$$
&lt;p>Другими словами, когда мы &amp;ldquo;измеряем (наблюдаем)&amp;rdquo; этот кубит, вероятность получения $|0\rangle$ равна $|\alpha|^2$, а вероятность получения $|1\rangle$ равна $|\beta|^2$. Решающее отличие от классических битов состоит в том, что до измерения состояние определяется лишь вероятностно.&lt;/p>
&lt;div class="mermaid">graph LR
A["Классический бит (Classical Bit)"] --> B["Определенное состояние: 0 или 1"]
C["Квантовый бит (Qubit)"] --> D["Суперпозиция: и 0, и 1"]
D --> E["Состояние определяется вероятностно после измерения"]&lt;/div>
&lt;h3 id="22-суперпозиция-superposition">2.2 Суперпозиция (Superposition)
&lt;/h3>&lt;p>Как упоминалось ранее, состояние, в котором состояния $|0\rangle$ и $|1\rangle$ смешаны, называется &lt;strong>суперпозицией (Superposition)&lt;/strong>.&lt;/p>
&lt;p>Например, когда один кубит находится в полностью равномерной суперпозиции, $\alpha = \frac{1}{\sqrt{2}}$ и $\beta = \frac{1}{\sqrt{2}}$.&lt;/p>
$$
|\psi\rangle = \frac{1}{\sqrt{2}}|0\rangle + \frac{1}{\sqrt{2}}|1\rangle
$$
&lt;p>При измерении этого состояния, $|0\rangle$ и $|1\rangle$ наблюдаются с вероятностью 50% каждое.
Если у нас есть два кубита, мы можем создать суперпозицию 4 состояний: $|00\rangle, |01\rangle, |10\rangle, |11\rangle$. С $n$ кубитами можно одновременно представить $2^n$ состояний, что является одним из источников возможности параллельной обработки квантовых компьютеров.&lt;/p>
&lt;h3 id="23-квантовая-запутанность-entanglement">2.3 Квантовая запутанность (Entanglement)
&lt;/h3>&lt;p>Самое мощное и таинственное свойство в квантовых вычислениях — &lt;strong>квантовая запутанность (Entanglement)&lt;/strong>. Эйнштейн называл это явление &amp;ldquo;жутким дальнодействием&amp;rdquo;. Это свойство, при котором два или более кубитов настолько сильно связаны друг с другом, что как только состояние одного кубита определяется, состояние другого определяется мгновенно, независимо от того, насколько далеко физически они находятся друг от друга.&lt;/p>
&lt;p>Одно из самых известных квантово-запутанных состояний — &amp;ldquo;Состояние Белла (Bell State)&amp;rdquo;, состояние $\Phi^+$, выражается следующим образом:&lt;/p>
$$
|\Phi^+\rangle = \frac{|00\rangle + |11\rangle}{\sqrt{2}}
$$
&lt;p>В этом состоянии не существуют таких вариантов, как $|01\rangle$ или $|10\rangle$. Поэтому, если мы измерим первый кубит и он окажется $|0\rangle$, то даже не измеряя второй кубит, можно с уверенностью утверждать, что он будет $|0\rangle$. И наоборот, если первый кубит $|1\rangle$, то второй кубит обязательно будет $|1\rangle$.&lt;/p>
&lt;hr>
&lt;h2 id="3-квантовые-логические-вентили-quantum-logic-gates">3. Квантовые логические вентили (Quantum Logic Gates)
&lt;/h2>&lt;p>Точно так же, как классические компьютеры выполняют вычисления с помощью логических вентилей, таких как AND, OR, NOT, квантовые компьютеры используют &lt;strong>квантовые вентили&lt;/strong> для управления состояниями кубитов. Поскольку квантовые состояния являются векторами, квантовые вентили представляются как &amp;ldquo;унитарные матрицы&amp;rdquo;, действующие на эти векторы.&lt;/p>
&lt;h3 id="31-вентили-паули-pauli-x-y-z">3.1 Вентили Паули (Pauli-X, Y, Z)
&lt;/h3>&lt;p>Вентили Паули — это базовые операции над одним кубитом.&lt;/p>
&lt;p>&lt;strong>・Вентиль Pauli-X (Вентиль NOT)&lt;/strong>
Эквивалентен классическому вентилю NOT. Он инвертирует $|0\rangle$ в $|1\rangle$ и $|1\rangle$ в $|0\rangle$. (Поворот на 180 градусов вокруг оси X на сфере Блоха)&lt;/p>
$$
X = \begin{pmatrix} 0 &amp; 1 \\ 1 &amp; 0 \end{pmatrix}
$$
&lt;p>&lt;strong>・Вентиль Pauli-Y&lt;/strong>
Выполняет поворот на 180 градусов вокруг оси Y. Обладает эффектом инвертирования как фазы, так и бита.&lt;/p>
$$
Y = \begin{pmatrix} 0 &amp; -i \\ i &amp; 0 \end{pmatrix}
$$
&lt;p>&lt;strong>・Вентиль Pauli-Z (Вентиль инверсии фазы)&lt;/strong>
Оставляет состояние $|0\rangle$ без изменений и инвертирует фазу (умножает на $-1$) состояния $|1\rangle$. (Поворот на 180 градусов вокруг оси Z)&lt;/p>
$$
Z = \begin{pmatrix} 1 &amp; 0 \\ 0 &amp; -1 \end{pmatrix}
$$
&lt;h3 id="32-вентиль-адамара-hadamard-gate">3.2 Вентиль Адамара (Hadamard Gate)
&lt;/h3>&lt;p>Вентиль Адамара (H-вентиль) — это чрезвычайно важный вентиль, который преобразует определенные состояния ($|0\rangle$ или $|1\rangle$) в состояния суперпозиции.&lt;/p>
$$
H = \frac{1}{\sqrt{2}}
\begin{pmatrix}
1 &amp; 1 \\
1 &amp; -1
\end{pmatrix}
$$
&lt;p>При применении H-вентиля к $|0\rangle$, оно переходит в состояние $|+\rangle$, которое является равномерной суперпозицией.&lt;/p>
$$
H|0\rangle = \frac{1}{\sqrt{2}}|0\rangle + \frac{1}{\sqrt{2}}|1\rangle = |+\rangle
$$
&lt;h3 id="33-фазовые-вентили-phase-gates">3.3 Фазовые вентили (Phase Gates)
&lt;/h3>&lt;p>Фазовый вентиль является обобщением Z-вентиля; он вращает фазу состояния $|1\rangle$ на заданный угол $\theta$.&lt;/p>
$$
P(\theta) = \begin{pmatrix} 1 &amp; 0 \\ 0 &amp; e^{i\theta} \end{pmatrix}
$$
&lt;p>Типичными примерами являются S-вентиль ($\theta = \pi/2$) и T-вентиль ($\theta = \pi/4$).&lt;/p>
&lt;h3 id="34-вентиль-cnot-controlled-not-gate">3.4 Вентиль CNOT (Controlled-NOT Gate)
&lt;/h3>&lt;p>Вентиль CNOT (CX-вентиль) — это вентиль, выполняющий операцию между двумя кубитами, и он незаменим для создания квантовой запутанности. Он состоит из &amp;ldquo;Управляющего (Control) бита&amp;rdquo; и &amp;ldquo;Целевого (Target) бита&amp;rdquo;.&lt;/p>
&lt;p>X-вентиль (операция NOT) применяется к целевому биту только тогда, когда управляющий бит находится в состоянии $|1\rangle$, и ничего не делает, если управляющий бит находится в состоянии $|0\rangle$.&lt;/p>
$$
CNOT = \begin{pmatrix}
1 &amp; 0 &amp; 0 &amp; 0 \\
0 &amp; 1 &amp; 0 &amp; 0 \\
0 &amp; 0 &amp; 0 &amp; 1 \\
0 &amp; 0 &amp; 1 &amp; 0
\end{pmatrix}
$$
&lt;hr>
&lt;h2 id="4-основы-qiskit-и-настройка-среды">4. Основы Qiskit и настройка среды
&lt;/h2>&lt;p>С этого момента мы фактически будем писать квантовые программы, используя Python и Qiskit.&lt;/p>
&lt;h3 id="41-что-такое-qiskit">4.1 Что такое Qiskit?
&lt;/h3>&lt;p>&lt;strong>Qiskit&lt;/strong> — это набор для разработки программного обеспечения (SDK) с открытым исходным кодом для квантовых вычислений, разработанный IBM Quantum. Используя Python, вы можете интуитивно строить квантовые схемы и запускать их на локальных симуляторах или на реальных квантовых компьютерах IBM через облако.&lt;/p>
&lt;h3 id="42-способ-установки">4.2 Способ установки
&lt;/h3>&lt;p>Для использования Qiskit требуется среда Python. Установите Qiskit и связанные с ним пакеты (симуляторы и библиотеки для построения графиков) с помощью следующей команды:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">pip install qiskit qiskit-aer qiskit-ibm-runtime matplotlib pylatexenc
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="43-базовый-рабочий-процесс-программирования">4.3 Базовый рабочий процесс программирования
&lt;/h3>&lt;p>Квантовое программирование с использованием Qiskit в основном состоит из следующих шагов:&lt;/p>
&lt;div class="mermaid">graph TD
A["1. Построение схемы (Build)"] --> B["2. Компиляция/Транспиляция (Compile)"]
B --> C["3. Выполнение (Execute)"]
C --> D["4. Анализ результатов и визуализация (Analyze)"]&lt;/div>
&lt;ol>
&lt;li>&lt;strong>Построение схемы&lt;/strong>: Создайте объект &lt;code>QuantumCircuit&lt;/code> и добавляйте вентили.&lt;/li>
&lt;li>&lt;strong>Компиляция&lt;/strong>: Оптимизируйте схему под целевой бэкенд (реальное оборудование или симулятор).&lt;/li>
&lt;li>&lt;strong>Выполнение&lt;/strong>: Отправьте задание на бэкенд и получите результаты.&lt;/li>
&lt;li>&lt;strong>Анализ&lt;/strong>: Постройте графики, например, гистограмму результатов измерений.&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="5-практика-построение-схемы-для-создания-состояния-белла-квантовая-запутанность">5. Практика: Построение схемы для создания состояния Белла (Квантовая запутанность)
&lt;/h2>&lt;p>Давайте фактически создадим «квантовую запутанность (состояние Белла)», о которой мы узнали в теории, с помощью Qiskit. Наше целевое состояние — $|\Phi^+\rangle = \frac{|00\rangle + |11\rangle}{\sqrt{2}}$.&lt;/p>
&lt;h3 id="51-проектирование-схемы">5.1 Проектирование схемы
&lt;/h3>&lt;p>Чтобы создать состояние Белла, мы выполним следующие шаги:&lt;/p>
&lt;ol>
&lt;li>Подготовить два кубита (оба инициализируются в состоянии $|0\rangle$).&lt;/li>
&lt;li>Применить вентиль Адамара (H) к первому кубиту, чтобы перевести его в состояние суперпозиции.&lt;/li>
&lt;li>Применить вентиль CNOT, используя первый кубит как &amp;ldquo;управляющий бит&amp;rdquo;, а второй как &amp;ldquo;целевой бит&amp;rdquo;.&lt;/li>
&lt;li>Выполнить измерение (Measure) для считывания результатов.&lt;/li>
&lt;/ol>
&lt;h3 id="52-реализация-кода-на-pythonqiskit">5.2 Реализация кода на Python/Qiskit
&lt;/h3>&lt;p>Давайте теперь посмотрим на реальный код.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">numpy&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">np&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">qiskit&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">QuantumCircuit&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">transpile&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">qiskit_aer&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">Aer&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">qiskit.visualization&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">plot_histogram&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">matplotlib.pyplot&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">plt&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 1. Инициализация схемы&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Создание квантовой схемы с 2 квантовыми и 2 классическими битами&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">qc&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">QuantumCircuit&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 2. Применение H-вентиля&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Применяем вентиль Адамара к кубиту 0 (q0)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">qc&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">h&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 3. Применение CNOT-вентиля&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Применяем CNOT: q0 - управляющий бит, q1 - целевой бит&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">qc&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">cx&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 4. Измерение&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Измеряем кубиты 0 и 1, и записываем результаты в классические биты 0 и 1 соответственно&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">qc&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">measure&lt;/span>&lt;span class="p">([&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Отрисовка схемы (с использованием matplotlib)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># qc.draw(&amp;#39;mpl&amp;#39;)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">qc&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">draw&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>При запуске этого кода на консоли отобразится следующая квантовая схема в виде ASCII-графики:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl"> ┌───┐ ┌─┐
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">q_0: ┤ H ├──■──┤M├───
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> └───┘┌─┴─┐└╥┘┌─┐
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">q_1: ─────┤ X ├─╫─┤M├
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> └───┘ ║ └╥┘
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">c: 2/═══════════╩══╩═
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> 0 1
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;code>H&lt;/code> обозначает вентиль Адамара, комбинация &lt;code>■&lt;/code> и &lt;code>X&lt;/code> — вентиль CNOT, а &lt;code>M&lt;/code> — измерение.&lt;/p>
&lt;h3 id="53-выполнение-на-симуляторе-и-интерпретация-результатов">5.3 Выполнение на симуляторе и интерпретация результатов
&lt;/h3>&lt;p>Затем мы запустим эту схему на высокопроизводительном симуляторе IBM &lt;code>Aer&lt;/code> и проверим результаты.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Получение бэкенда симулятора Aer&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">simulator&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Aer&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get_backend&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;qasm_simulator&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Транспиляция (оптимизация) схемы для симулятора&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">compiled_circuit&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">transpile&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">qc&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">simulator&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Выполнение схемы (здесь мы делаем 1000 запусков (shots))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">job&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">simulator&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">run&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">compiled_circuit&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">shots&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">1000&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Получение результатов&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">result&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">job&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">result&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Получение частот наблюдения состояний (counts)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">counts&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">result&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get_counts&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">compiled_circuit&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">Результаты измерений:&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">counts&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Построение гистограммы&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># plot_histogram(counts)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># plt.show()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>&lt;strong>Интерпретация результатов&lt;/strong>&lt;/p>
&lt;p>Вывод в консоли должен выглядеть примерно так:
&lt;code>Результаты измерений: {'00': 495, '11': 505}&lt;/code>
(※Поскольку вероятности случайны, значения будут немного отличаться при каждом запуске)&lt;/p>
&lt;p>В идеальной симуляционной среде состояния &lt;code>00&lt;/code> и &lt;code>11&lt;/code> будут наблюдаться примерно в 50% случаев каждое, а &lt;code>01&lt;/code> или &lt;code>10&lt;/code> не будут наблюдаться вообще.
Это полностью соответствует нашему теоретическому предсказанию созданного состояния Белла $|\Phi^+\rangle = \frac{|00\rangle + |11\rangle}{\sqrt{2}}$. Точно смоделирована &amp;ldquo;квантовая запутанность&amp;rdquo;, при которой если первый кубит равен 0, то второй всегда 0, а если первый 1, то второй всегда 1.&lt;/p>
&lt;p>Отметим, что при запуске на реальном квантовом компьютере (IBM Quantum Hardware) состояния &lt;code>01&lt;/code> или &lt;code>10&lt;/code> могут наблюдаться в небольших количествах из-за влияния шума (квантовой декогеренции или ошибок вентилей). То, как уменьшить этот шум (квантовая коррекция ошибок), является одной из самых больших проблем в современной разработке квантовых компьютеров.&lt;/p>
&lt;hr>
&lt;h2 id="6-масштабирование-до-более-продвинутых-алгоритмов">6. Масштабирование до более продвинутых алгоритмов
&lt;/h2>&lt;p>Создание состояния Белла можно назвать квантовой версией «Hello World». Развивая эту концепцию дальше, мы можем создавать мощные алгоритмы, превосходящие классические компьютеры.&lt;/p>
&lt;h3 id="61-алгоритм-дойча-йожи-deutsch-jozsa-algorithm">6.1 Алгоритм Дойча-Йожи (Deutsch-Jozsa Algorithm)
&lt;/h3>&lt;p>Это задача по определению, является ли заданная функция $f(x)$ &amp;ldquo;константной функцией&amp;rdquo; (которая всегда выводит 0 или всегда 1 независимо от входа) или &amp;ldquo;сбалансированной функцией&amp;rdquo; (которая выводит 0 для половины возможных входов и 1 для другой половины).
Классическому компьютеру в худшем случае потребовалось бы $2^{n-1} + 1$ вычислений функции, но алгоритм Дойча-Йожи может решить эту задачу всего за &lt;strong>одно вычисление&lt;/strong>, используя квантовый параллелизм. Это демонстрирует базовый шаблон квантовых алгоритмов: ввод состояния суперпозиции и использование интерференции (Interference) для подавления ненужных состояний и усиления правильного ответа.&lt;/p>
&lt;h3 id="62-алгоритм-гровера-grovers-algorithm">6.2 Алгоритм Гровера (Grover&amp;rsquo;s Algorithm)
&lt;/h3>&lt;p>В задаче поиска конкретных данных в неструктурированной базе данных из $N$ элементов классическому алгоритму требуется в среднем $N/2$ вычислений, в то время как алгоритм Гровера может найти нужные данные за $\sqrt{N}$ вычислений.
Этот алгоритм использует черный ящик, называемый &amp;ldquo;оракулом (Oracle)&amp;rdquo;, для инвертирования фазы целевого решения, а затем применяет &amp;ldquo;усиление амплитуды (Amplitude Amplification)&amp;rdquo; для резкого повышения вероятности наблюдения искомого решения.&lt;/p>
&lt;div class="mermaid">graph TD
A["Инициализация (Суперпозиция всех состояний)"] --> B["Оракул (Инверсия фазы правильного ответа)"]
B --> C["Оператор диффузии (Усиление амплитуды путем инверсии вокруг среднего)"]
C --> D{"Достигнута ли достаточная вероятность?"}
D -- "Нет" --> B
D -- "Да" --> E["Измерение"]&lt;/div>
&lt;hr>
&lt;h2 id="7-заключение-и-дальнейшее-обучение">7. Заключение и дальнейшее обучение
&lt;/h2>&lt;p>В этой статье подробно объясняются темы от фундаментальных концепций квантовых вычислений, таких как суперпозиция и квантовая запутанность, до управления квантовыми логическими вентилями с помощью Qiskit, а также практическое построение состояния Белла, симуляция и интерпретация результатов.&lt;/p>
&lt;p>Поскольку Qiskit позволяет писать код на доступном языке Python, это мощный инструмент, который позволяет вам преодолеть математические и физические барьеры и сосредоточиться на построении алгоритмов. Квантовые компьютеры в настоящее время находятся в эпохе шумных квантовых устройств промежуточного масштаба (NISQ: Noisy Intermediate-Scale Quantum), но во всем мире стремительно ведутся прикладные исследования в многочисленных областях, таких как квантовое машинное обучение (Quantum Machine Learning), квантовая химия (Quantum Chemistry) и криптоанализ.&lt;/p>
&lt;p>Пожалуйста, воспользуйтесь этой возможностью, чтобы создать различные квантовые схемы с помощью Qiskit и запустить их на реальных квантовых процессорах IBM. Вы сможете своими руками испытать парадигму вычислений будущего.&lt;/p>
&lt;h3 id="справочные-материалы">Справочные материалы
&lt;/h3>&lt;ul>
&lt;li>&lt;a class="link" href="https://qiskit.org/documentation/" target="_blank" rel="noopener"
>Официальная документация Qiskit&lt;/a>&lt;/li>
&lt;li>&lt;a class="link" href="https://qiskit.org/textbook/ja/preface.html" target="_blank" rel="noopener"
>Учебник Qiskit&lt;/a> - Официальный учебник, рекомендуемый для тех, кто хочет глубже изучить математические основы и алгоритмы&lt;/li>
&lt;li>IBM Quantum Learning&lt;/li>
&lt;/ul>
&lt;p>Добро пожаловать в квантовый мир!&lt;/p></description></item><item><title>Что такое квантовое превосходство? Последние тенденции Google и IBM</title><link>http://kenji.blog/ru/p/what-is-quantum-supremacy-google-ibm/</link><pubDate>Fri, 11 Sep 2026 18:00:00 +0900</pubDate><guid>http://kenji.blog/ru/p/what-is-quantum-supremacy-google-ibm/</guid><description>&lt;img src="http://kenji.blog/p/what-is-quantum-supremacy-google-ibm/img/eyecatch.jpg" alt="Featured image of post Что такое квантовое превосходство? Последние тенденции Google и IBM" />&lt;h2 id="1-введение-рассвет-квантовых-вычислений-и-квантовое-превосходство">1. Введение: Рассвет квантовых вычислений и «квантовое превосходство»
&lt;/h2>&lt;p>Квантовые вычисления таят в себе потенциал решения сложных проблем, которые классические компьютеры (ПК и суперкомпьютеры, которыми мы пользуемся каждый день) не могут решить за разумное время, применяя квантовую механику, фундаментальный принцип физики, к обработке информации. Эта область долгое время оставалась преимущественно теоретической, но в последние годы из-за быстрого развития аппаратного обеспечения конкуренция за практическое применение обострилась.&lt;/p>
&lt;p>Одним из ключевых слов, привлекших наибольшее внимание в этом контексте, является «квантовое превосходство» (Quantum Supremacy). Оно означает момент, когда квантовый компьютер демонстрирует вычислительную мощность, превосходящую возможности классического компьютера в выполнении определенной вычислительной задачи. В этой статье мы начнем со строгого определения квантового превосходства, подробно рассмотрим эксперимент с процессором Google «Sycamore», который, как было объявлено в 2019 году, впервые в мире достиг этой вехи, возражения IBM и их собственный подход, а также углубимся в технические и математические детали последней дорожной карты к «квантовому исправлению ошибок» (Quantum Error Correction: QEC) и «отказоустойчивым квантовым вычислениям» (Fault-Tolerant Quantum Computing: FTQC), которые являются главными препятствиями на пути к истинному практическому применению.&lt;/p>
&lt;hr>
&lt;h2 id="2-теоретические-основы-основы-квантовых-вычислений-и-классы-сложности">2. Теоретические основы: Основы квантовых вычислений и классы сложности
&lt;/h2>&lt;p>Чтобы понять квантовое превосходство, сначала необходимо понять математические основы квантовых вычислений и их место в теории вычислительной сложности.&lt;/p>
&lt;h3 id="квантовые-биты-и-суперпозиция">Квантовые биты и суперпозиция
&lt;/h3>&lt;p>Наименьшей единицей информации в классическом компьютере является бит (0 или 1), но в квантовом компьютере используются квантовые биты (кубиты, Qubit). Состояние одного кубита $|\psi\rangle$ выражается как комплексная линейная комбинация базисных состояний $|0\rangle$ и $|1\rangle$.&lt;/p>
$$
|\psi\rangle = \alpha|0\rangle + \beta|1\rangle
$$
&lt;p>Здесь $\alpha, \beta \in \mathbb{C}$ и удовлетворяют условию нормировки $|\alpha|^2 + |\beta|^2 = 1$. Это свойство называется «суперпозицией» (Superposition).&lt;/p>
&lt;h3 id="запутанность-entanglement-и-тензорное-произведение">Запутанность (Entanglement) и тензорное произведение
&lt;/h3>&lt;p>Когда присутствует несколько кубитов, состояние всей системы выражается тензорным произведением пространств состояний отдельных кубитов. Система из $n$ кубитов является вектором в $2^n$-мерном гильбертовом пространстве $\mathcal{H}^{\otimes n}$.&lt;/p>
$$
|\Psi\rangle = \sum_{x \in \{0, 1\}^n} c_x |x\rangle
$$
&lt;p>Здесь $\sum |c_x|^2 = 1$. Состояние, в котором кубиты не независимы, а состояние одного зависит от состояния другого, называется «квантовой запутанностью» (Quantum Entanglement). Это дает квантовым компьютерам потенциал для одновременной обработки экспоненциально огромного пространства состояний.&lt;/p>
&lt;h3 id="определение-квантового-превосходства-с-точки-зрения-теории-вычислительной-сложности">Определение квантового превосходства с точки зрения теории вычислительной сложности
&lt;/h3>&lt;p>В теории вычислительной сложности класс задач, которые эффективно (за полиномиальное время) могут быть решены классическим компьютером, называется &lt;strong>BPP&lt;/strong> (Bounded-error Probabilistic Polynomial time). С другой стороны, класс задач, которые эффективно решает квантовый компьютер, — это &lt;strong>BQP&lt;/strong> (Bounded-error Quantum Polynomial time).&lt;/p>
&lt;p>Демонстрация квантового превосходства означает «выполнение определенной задачи, которая принадлежит классу BQP, но не принадлежит BPP (или вероятность этого крайне высока), на реальном квантовом оборудовании, и превосходство над симуляцией на классическом суперкомпьютере по времени и ресурсам». Это можно назвать исторической попыткой физического опровержения расширенного тезиса Черча-Тьюринга («любая физически реализуемая вычислительная модель может быть смоделирована вероятностной машиной Тьюринга за полиномиальное время»).&lt;/p>
&lt;hr>
&lt;h2 id="3-2019-год-демонстрация-квантового-превосходства-от-google">3. 2019 год: Демонстрация квантового превосходства от Google
&lt;/h2>&lt;p>В октябре 2019 года команда Google Quantum AI объявила в научном журнале &lt;em>Nature&lt;/em>, что они достигли квантового превосходства, используя сверхпроводящий процессор «Sycamore» с 53 кубитами.&lt;/p>
&lt;h3 id="архитектура-процессора-sycamore">Архитектура процессора Sycamore
&lt;/h3>&lt;p>Процессор Sycamore состоит из 54 сверхпроводящих кубитов типа трансмон (Transmon), расположенных в виде двумерной решетки (в эксперименте использовалось 53, так как один был неисправен). Между соседними кубитами расположены перестраиваемые связи (Tunable Coupler), реализующие высокоскоростные и высокоточные двухкубитные вентили (гибрид вентиля iSWAP и управляемого Z-вентиля).&lt;/p>
&lt;div class="mermaid">graph TD
A["Ввод квантового алгоритма"] --> B["Процессор Sycamore (53 кубита)"]
B --> C["Применение случайных квантовых вентилей"]
C --> D["Измерение квантовых состояний (Битовые строки)"]
D --> E["Оценка перекрестной энтропии (XEB)"]
E --> F["Подтверждение квантового превосходства"]&lt;/div>
&lt;h3 id="сэмплинг-случайных-квантовых-цепей-random-circuit-sampling-rcs">Сэмплинг случайных квантовых цепей (Random Circuit Sampling: RCS)
&lt;/h3>&lt;p>Задача, выбранная Google, — «сэмплинг случайных квантовых цепей». Она заключается в применении случайно выбранных однокубитных и двухкубитных вентилей на протяжении нескольких циклов (глубина $m$), измерении конечного состояния и получении сэмплов из результирующего распределения вероятностей битовых строк.&lt;/p>
&lt;p>Вероятность получения битовой строки $x$ на выходе идеальной (без шума) случайной квантовой цепи представляет собой не равномерное распределение, а паттерн, похожий на интерференционную картину, называемый распределением Портера-Томаса (Porter-Thomas distribution). Чтобы получить выборку из этого распределения на классическом компьютере, необходимо смоделировать весь вектор состояния, и вычислительная сложность возрастает экспоненциально относительно количества кубитов $n$ и глубины цепи $m$.&lt;/p>
&lt;h3 id="оценка-точности-fidelity-линейная-перекрестная-энтропия-xeb">Оценка точности (Fidelity): Линейная перекрестная энтропия (XEB)
&lt;/h3>&lt;p>Чтобы доказать, что результаты эксперимента — это не просто шум, а результаты реально выполненных квантовых вычислений, Google использовала оценку линейной перекрестной энтропии (Linear Cross-Entropy Benchmarking: XEB). Идеальная вероятность цепи $P(x_i)$ для битовой строки $x_i$, полученной в эксперименте, рассчитывается на классическом компьютере, и точность $\mathcal{F}_{\text{XEB}}$ определяется по следующей формуле:&lt;/p>
$$
\mathcal{F}_{\text{XEB}} = 2^n \langle P(x_i) \rangle_{i} - 1
$$
&lt;p>Если $\mathcal{F}_{\text{XEB}}$ равно 0, это означает полный шум, если 1 — идеальный квантовый процессор без шума. Процессор Sycamore достиг $\mathcal{F}_{\text{XEB}} \approx 0.002$ (0,2%) для цепи глубиной 20. На первый взгляд это значение кажется низким, но это статистически значимая величина, превышающая ноль, и она стала удивительным достижением контроля над пространством состояний размером $2^{53} \approx 9 \times 10^{15}$.&lt;/p>
&lt;p>Общий уровень ошибок приближенно моделировался как произведение ошибок отдельных вентилей, ошибок измерения и т.д.&lt;/p>
$$
\mathcal{F} \approx (1 - e_1)^{N_1}(1 - e_2)^{N_2} \cdots \approx \prod_{g \in 1Q} (1 - e_g) \prod_{g \in 2Q} (1 - e_g) \prod_{q} (1 - e_{RO})
$$
&lt;p>(※ $e_g$ — ошибка вентиля, $e_{RO}$ — ошибка измерения)&lt;/p>
&lt;p>Google утверждала, что моделирование этой цепи на классическом суперкомпьютере (Summit) займет около 10 000 лет. Sycamore, напротив, завершил сэмплинг всего за 200 секунд.&lt;/p>
&lt;hr>
&lt;h2 id="4-возражения-ibm-от-превосходства-к-полезности-utility">4. Возражения IBM: От «превосходства» к «полезности» (Utility)
&lt;/h2>&lt;p>Объявление Google шокировало мир, но IBM, разработчик крупнейшего в мире суперкомпьютера «Summit» и лидер в разработке квантовых компьютеров, немедленно опубликовала статью, опровергающую это заявление.&lt;/p>
&lt;h3 id="улучшение-классической-симуляции-за-счет-свертки-тензорных-сетей">Улучшение классической симуляции за счет свертки тензорных сетей
&lt;/h3>&lt;p>Суть возражений IBM заключалась в том, что «алгоритмы и оптимизация ресурсов на стороне классического компьютера были недостаточны». Оценка Google в 10 000 лет основывалась на симуляторе вектора состояния, который напрямую вычисляет эволюцию во времени уравнения Шрёдингера, но IBM отметила, что время симуляции можно резко сократить, используя метод, называемый «тензорной сетью» (Tensor Network).&lt;/p>
&lt;p>В тензорных сетях операции вентилей в квантовой цепи представляются как вычисления с многомерными массивами (тензорами), и оптимизируется порядок «свертки» (Contraction) сети. Кроме того, они утверждали, что если полностью использовать огромное хранилище Summit объемом 250 ПБ (иерархическая структура дисков и памяти), можно выполнить более точную симуляцию всего за «два с половиной дня», сохраняя при этом весь вектор состояния.&lt;/p>
&lt;h3 id="квантовое-преимущество-quantum-advantage-и-квантовая-полезность-quantum-utility">Квантовое преимущество (Quantum Advantage) и Квантовая полезность (Quantum Utility)
&lt;/h3>&lt;p>Под влиянием этих дебатов тенденция во всей индустрии сместилась от простой зацикленности на «выполнении искусственных задач, невозможных для классических компьютеров (Supremacy)» к фазе «демонстрации существенного преимущества над классическими подходами в полезных задачах реального мира (Quantum Advantage)», а затем и к фазе, когда «квантовые компьютеры служат новым инструментом для научных открытий (Quantum Utility)».&lt;/p>
&lt;p>Сама компания IBM избегает слова «превосходство» и предлагает «Квантовый объем» (Quantum Volume) и «CLOPS (Circuit Layer Operations Per Second)» в качестве комплексных показателей производительности квантовых процессоров, продвигая разработки с акцентом на баланс масштаба и качества оборудования.&lt;/p>
&lt;div class="mermaid">timeline
title "Эволюция квантовых вех"
2019 : "Google Sycamore (53Q)" : "Объявление о квантовом превосходстве"
2019 : "Возражение IBM" : "Симуляция на суперкомпьютере Summit за 2,5 дня"
2021 : "IBM Eagle (127Q)" : "Преодоление барьера в 100 кубитов"
2022 : "IBM Osprey (433Q)" : "Увеличение масштаба процессора"
2023 : "Поверхностный код Google" : "Масштабирование исправления ошибок (от d=3 до d=5)"
2023 : "Квантовая полезность IBM" : "Сложное моделирование спиновой модели на 127Q"
2024 : "Будущее" : "Эра логических кубитов и смягчения ошибок"&lt;/div>
&lt;hr>
&lt;h2 id="5-следующий-рубеж-смягчение-ошибок-error-mitigation-и-квантовое-исправление-ошибок-qec">5. Следующий рубеж: Смягчение ошибок (Error Mitigation) и квантовое исправление ошибок (QEC)
&lt;/h2>&lt;p>Современные квантовые компьютеры называются «NISQ» (Noisy Intermediate-Scale Quantum) и подвержены влиянию шума (ошибок, вызванных взаимодействием с внешней средой и несовершенством управления), из-за чего результаты длительных вычислений тонут в шуме. Подходы к преодолению этой проблемы можно разделить на две основные категории: «смягчение ошибок» (Error Mitigation) и «квантовое исправление ошибок» (Quantum Error Correction).&lt;/p>
&lt;h3 id="смягчение-ошибок-error-mitigation">Смягчение ошибок (Error Mitigation)
&lt;/h3>&lt;p>Смягчение ошибок — это метод устранения влияния шума на ожидаемое значение результатов вычислений с помощью классической постобработки, без изменения квантового аппаратного обеспечения. В 2023 году IBM, объединив 127-кубитный процессор «Eagle» с методами смягчения ошибок, такими как «экстраполяция нулевого шума» (Zero-Noise Extrapolation: ZNE), достигла точности, превосходящей передовые методы аппроксимации тензорных сетей, в моделировании временной эволюции сложной модели Изинга, тем самым продемонстрировав «Квантовую полезность» (Quantum Utility).&lt;/p>
&lt;h3 id="квантовое-исправление-ошибок-qec-и-логические-кубиты">Квантовое исправление ошибок (QEC) и логические кубиты
&lt;/h3>&lt;p>Однако для выполнения алгоритмов произвольной сложности (например, алгоритма факторизации Шора или сложных квантово-химических расчетов) одного лишь смягчения ошибок недостаточно. Совершенно необходимо «квантовое исправление ошибок» (QEC), которое динамически обнаруживает и исправляет ошибки.&lt;/p>
&lt;p>Основным подходом к QEC является «поверхностный код» (Surface Code). В этом методе множество физических кубитов (кубитов данных) размещаются в виде двумерной решетки, а между ними располагаются кубиты для измерения (вспомогательные кубиты, Ancilla), которые непрерывно выполняют проверки четности, называемые «стабилизаторами» (Stabilizer).&lt;/p>
&lt;div class="mermaid">graph LR
Q1["Кубит данных (Данные)"] --- M1["Измерение X-стабилизатора (Вспомогательный)"]
Q2["Кубит данных (Данные)"] --- M1
Q3["Кубит данных (Данные)"] --- M2["Измерение Z-стабилизатора (Вспомогательный)"]
Q4["Кубит данных (Данные)"] --- M2
M1 --> EC["Декодирование синдрома ошибки (Классическое)"]
M2 --> EC
EC --> LQ["Обновление состояния логического кубита"]&lt;/div>
&lt;h4 id="теорема-о-пороге-threshold-theorem-и-расстояние-d">Теорема о пороге (Threshold Theorem) и расстояние $d$
&lt;/h4>&lt;p>Для квантового исправления ошибок существует «теорема о пороге». Если уровень ошибок физического кубита $p$ падает ниже определенного порога $p_{th}$ (для поверхностного кода это около 1%), то путем увеличения кодового расстояния (Distance) $d$ (назначения большего количества физических кубитов одному логическому кубиту) можно экспоненциально снизить уровень логических ошибок $p_L$.&lt;/p>
&lt;p>Приближенная формула для уровня логических ошибок выглядит следующим образом:&lt;/p>
$$
p_L \approx \Lambda \left( \frac{p}{p_{th}} \right)^{\frac{d+1}{2}}
$$
&lt;p>Где $\Lambda$ — константа. Если $p &lt; p_{th}$, то чем больше $d$, тем меньше становится $p_L$. Однако если $p > p_{th}$, увеличение количества физических кубитов, наоборот, приводит к накоплению шума и ухудшению уровня логических ошибок.&lt;/p>
&lt;h4 id="веха-google-2023-года-демонстрация-снижения-ошибок-за-счет-увеличения-расстояния">Веха Google 2023 года: Демонстрация снижения ошибок за счет увеличения расстояния
&lt;/h4>&lt;p>В феврале 2023 года Google опубликовала эпохальную статью в журнале &lt;em>Nature&lt;/em>. Используя процессор Sycamore 3-го поколения, они впервые в мире продемонстрировали, что при увеличении расстояния поверхностного кода с $d=3$ (используется 17 физических кубитов) до $d=5$ (используется 49 физических кубитов), уровень логических ошибок незначительно снижается с 3,028% до 2,914%.&lt;/p>
&lt;p>Это означает вступление в область $p &lt; p_{th}$ и свидетельствует о завершении важнейшей проверки концепции (Proof of Concept) на пути к FTQC, подтверждающей, что чем больше физических кубитов, тем выше производительность.&lt;/p>
&lt;hr>
&lt;h2 id="6-дорожная-карта-и-перспективы-ftqc-отказоустойчивых-квантовых-вычислений">6. Дорожная карта и перспективы FTQC (отказоустойчивых квантовых вычислений)
&lt;/h2>&lt;p>Google и IBM ведут ожесточенную конкуренцию в разработке на пути к своей конечной цели — FTQC (Fault-Tolerant Quantum Computing), применяя при этом разные архитектуры и подходы.&lt;/p>
&lt;h3 id="подход-ibm-модульность-и-решетка-heavy-hex">Подход IBM: Модульность и решетка Heavy-Hex
&lt;/h3>&lt;p>IBM фокусируется на масштабировании процессоров наряду с радикальным снижением уровня ошибок. Бросая вызов ограничениям одного чипа с помощью процессоров «Eagle (127Q)», «Osprey (433Q)» и «Condor (1121Q)», они также анонсировали модульную архитектуру под названием «Quantum System Two». Кроме того, для топологии связи кубитов они используют решетку «Heavy-Hex», которая снижает нежелательные перекрестные помехи и повышает стабильность. Стратегия IBM — это гибридный подход, при котором в краткосрочной перспективе они стремятся к полезности за счет продвинутого смягчения ошибок, постепенно внедряя QEC.&lt;/p>
&lt;h3 id="подход-google-повышение-качества-логических-кубитов">Подход Google: Повышение качества логических кубитов
&lt;/h3>&lt;p>Стратегия Google больше сосредоточена на максимальном снижении уровня ошибок одного логического кубита (например, до $10^{-6}$), чем на быстром увеличении количества физических кубитов. Опираясь на это, они стремятся создать крупномасштабные системы, в которых работают параллельно тысячи и десятки тысяч физических кубитов, разрабатывая технологии передачи квантовых состояний между модулями (Quantum Interconnects).&lt;/p>
&lt;p>Реализация протоколов для отказоустойчивого выполнения неклиффордовых вентилей, таких как дистилляция магических состояний (Magic State Distillation), также станет серьезным техническим препятствием в будущем. Считается, что для выполнения практического алгоритма Шора и взлома 2048-битного шифра RSA потребуются тысячи логических кубитов с уровнем ошибок ниже $10^{-8}$, что эквивалентно миллионам или десяткам миллионов физических кубитов, так что путь еще долгий.&lt;/p>
&lt;hr>
&lt;h2 id="7-заключение">7. Заключение
&lt;/h2>&lt;p>«Квантовое превосходство» стало важной вехой в истории квантовых компьютеров, физически доказавшей теоретический потенциал этих вычислительных машин. Демонстрация Google в 2019 году и конструктивные возражения IBM перевели всю индустрию от простых теоретических доказательств к поиску реальной полезности (Utility) и началу эпохи серьезной инженерии, направленной на достижение отказоустойчивых квантовых вычислений (FTQC).&lt;/p>
&lt;p>Сейчас мы являемся свидетелями переходного периода от зашумленных устройств NISQ к устройствам на логических кубитах с исправлением ошибок. В течение следующих нескольких лет или десятилетия новые открытия в материаловедении, революция в процессах разработки лекарств и прорывы в решении задач оптимизации станут реальностью благодаря эволюции этого квантового оборудования.&lt;/p>
&lt;p>В дальнейшем мы будем пристально следить за развитием Google, IBM и исследователей со всего мира, которые формируют будущее компьютерных наук.&lt;/p></description></item><item><title>Блокчейн и криптовалюты в постквантовую эру: что изменится?</title><link>http://kenji.blog/ru/p/post-quantum-blockchain-and-crypto/</link><pubDate>Fri, 11 Sep 2026 17:00:00 +0900</pubDate><guid>http://kenji.blog/ru/p/post-quantum-blockchain-and-crypto/</guid><description>&lt;img src="http://kenji.blog/p/post-quantum-blockchain-and-crypto/img/eyecatch.jpg" alt="Featured image of post Блокчейн и криптовалюты в постквантовую эру: что изменится?" />&lt;h2 id="1-введение-приближение-постквантовой-эры-и-кризис-блокчейна">1. Введение: Приближение постквантовой эры и кризис блокчейна
&lt;/h2>&lt;p>С момента создания Биткоина (Bitcoin) Сатоши Накамото в 2009 году, технология блокчейн выросла в основу финансовых систем и приложений по всему миру как «децентрализованный реестр, устойчивый к фальсификациям». Эта надежная безопасность опирается на современную криптографию: &lt;strong>криптографию с открытым ключом (Public Key Cryptography)&lt;/strong> и &lt;strong>криптографические хеш-функции (Cryptographic Hash Functions)&lt;/strong>.&lt;/p>
&lt;p>Эти криптографические технологии гарантируют безопасность на основе математической «вычислительной сложности», подразумевающей, что классическим компьютерам (ПК и суперкомпьютерам, которые мы используем сегодня) потребовалось бы время, сравнимое с возрастом Вселенной, для их взлома.&lt;/p>
&lt;p>Однако это предположение вот-вот будет фундаментально опровергнуто стремительным развитием и практическим применением &lt;strong>квантовых компьютеров (Quantum Computers)&lt;/strong> — передового рубежа физики и информатики. Используя квантово-механические явления, такие как «суперпозиция (Superposition)» и «квантовая запутанность (Entanglement)», квантовые компьютеры демонстрируют вычислительную мощь, превосходящую традиционные классические компьютеры в определенных математических задачах, что называется «квантовым превосходством (Quantum Supremacy)».&lt;/p>
&lt;p>В этой статье мы глубоко и детально, с технической и математической точек зрения, рассмотрим, с какими конкретными угрозами со стороны квантовых компьютеров сталкивается технология блокчейн, а также новейшие тенденции в области &lt;strong>постквантовой криптографии (PQC: Post-Quantum Cryptography)&lt;/strong> как решения этой проблемы, и сценарии миграции криптовалютных сетей.&lt;/p>
&lt;hr>
&lt;h2 id="2-основы-квантовых-компьютеров-и-две-главные-угрозы-для-блокчейна">2. Основы квантовых компьютеров и две главные угрозы для блокчейна
&lt;/h2>&lt;p>Современные блокчейн-системы в основном состоят из следующих двух криптографических элементов, каждый из которых подвержен различным угрозам со стороны квантовых алгоритмов.&lt;/p>
&lt;div class="mermaid">graph TD
A["Невероятная вычислительная мощность квантовых компьютеров"] --> B["Алгоритм Шора (Shor's Algorithm)"]
A --> C["Алгоритм Гровера (Grover's Algorithm)"]
B --> D["Крах криптографии с открытым ключом (ECDSA/RSA/DSA)"]
C --> E["Влияние на криптографические хеш-функции (SHA-256)"]
D --> F["Определение чужого закрытого ключа и подделка транзакций"]
E --> G["Преимущество в майнинге PoW и атаки на некоторые адреса"]
F --> H["Фатальная и прямая угроза в блокчейне"]
G --> I["Угроза, решаемая настройкой алгоритма (например, увеличением длины ключа)"]
style H fill:#ff9999,stroke:#cc0000,stroke-width:2px;
style I fill:#ffff99,stroke:#cccc00,stroke-width:2px;&lt;/div>
&lt;h3 id="21-основы-криптографии-на-эллиптических-кривых-ecdsa-и-вычислительная-сложность">2.1. Основы криптографии на эллиптических кривых (ECDSA) и вычислительная сложность
&lt;/h3>&lt;p>Многие блокчейны, включая Bitcoin и Ethereum, используют &lt;strong>алгоритм цифровой подписи на эллиптических кривых (ECDSA: Elliptic Curve Digital Signature Algorithm)&lt;/strong> в качестве алгоритма цифровой подписи. В частности, Биткоин использует эллиптическую кривую с параметрами &lt;code>secp256k1&lt;/code>.&lt;/p>
&lt;p>Безопасность криптографии на эллиптических кривых зависит от вычислительной сложности &lt;strong>задачи дискретного логарифмирования на эллиптической кривой (ECDLP: Elliptic Curve Discrete Logarithm Problem)&lt;/strong>.
Эллиптическая кривая определяется уравнением в нормальной форме Вейерштрасса:&lt;/p>
$$
y^2 \equiv x^3 + ax + b \pmod{p}
$$
&lt;p>В &lt;code>secp256k1&lt;/code> Биткоина $a = 0, b = 7$, а $p$ — очень большое простое число.
Пусть базовая точка на этой кривой равна $G$, а закрытый ключ $k$ — это огромное случайно выбранное 256-битное целое число. Тогда открытый ключ $K$ находится путем сложения базовой точки $G$ с самой собой $k$ раз (скалярное умножение).&lt;/p>
$$
K = k \times G = \underbrace{G + G + \dots + G}_{k \text{ раз}}
$$
&lt;p>Использование классического компьютера для обратного вычисления закрытого ключа $k$ (нахождение дискретного логарифма) из известного открытого ключа $K$ и базовой точки $G$ требует экспоненциального времени вычислений $\mathcal{O}(\sqrt{p})$ даже при использовании лучших классических алгоритмов, таких как ро-алгоритм Полларда. Для 256-битного ключа потребуется около $2^{128}$ операций, что является уровнем, который современные суперкомпьютеры не смогли бы решить, даже проработав миллиарды лет.&lt;/p>
&lt;h3 id="22-крах-из-за-алгоритма-шора-shors-algorithm">2.2. Крах из-за алгоритма Шора (Shor&amp;rsquo;s Algorithm)
&lt;/h3>&lt;p>Однако &lt;strong>алгоритм Шора&lt;/strong>, опубликованный Питером Шором в 1994 году, полностью разрушил это предположение. Изначально алгоритм Шора был предложен для решения задачи факторизации (основы криптографии RSA) за полиномиальное время, но он также применим к задаче дискретного логарифмирования и задаче дискретного логарифмирования на эллиптической кривой.&lt;/p>
&lt;p>Суть алгоритма Шора заключается в использовании &lt;strong>квантового преобразования Фурье (QFT: Quantum Fourier Transform)&lt;/strong> для быстрого нахождения «периода (Period)» функции.&lt;/p>
$$
\text{Классическая сложность вычислений} = \mathcal{O}(2^{n/2}) \quad (n\text{ — длина в битах})
$$
$$
\text{Сложность квантового алгоритма} = \mathcal{O}(n^3)
$$
&lt;p>Таким образом, алгоритм Шора радикально сокращает время с экспоненциального до &lt;strong>полиномиального (Polynomial Time)&lt;/strong>. Если будет создан квантовый компьютер с достаточным количеством логических кубитов, он сможет определить закрытый ключ $k$ из опубликованного в сети открытого ключа $K$ за несколько минут или секунд. Это позволит злоумышленникам легко получать закрытые ключи от чужих кошельков и полностью контролировать их средства.&lt;/p>
&lt;h4 id="221-пошаговый-взлом-ecdlp-с-помощью-алгоритма-шора">2.2.1 Пошаговый взлом ECDLP с помощью алгоритма Шора
&lt;/h4>&lt;p>Давайте шаг за шагом рассмотрим внутренний процесс того, как квантовый компьютер решает задачу дискретного логарифмирования на эллиптической кривой (ECDLP).&lt;/p>
&lt;p>Постановка задачи: В $K = k \times G$, где $G$ и $K$ известны, мы хотим найти неизвестное целое число $k$ (закрытый ключ). Пусть порядок эллиптической кривой равен $N$.&lt;/p>
&lt;p>&lt;strong>Шаг 1: Создание состояния суперпозиции&lt;/strong>
Сначала мы подготавливаем два квантовых регистра и применяем к каждому из них вентиль Адамара (Hadamard Gate), чтобы создать состояние суперпозиции всех возможных комбинаций целых чисел.
&lt;/p>
$$
|\psi_1\rangle = \frac{1}{N} \sum_{x=0}^{N-1} \sum_{y=0}^{N-1} |x\rangle |y\rangle |0\rangle
$$
&lt;p>&lt;strong>Шаг 2: Применение квантового оракула (вычисление функции)&lt;/strong>
Затем с помощью квантовой цепи (оракула), которая выполняет сложение точек на эллиптической кривой, мы вычисляем функцию $f(x, y) = x \times G + y \times K$ в третьем регистре.
&lt;/p>
$$
|\psi_2\rangle = \frac{1}{N} \sum_{x=0}^{N-1} \sum_{y=0}^{N-1} |x\rangle |y\rangle |x \times G + y \times K\rangle
$$
&lt;p>
Здесь важно то, что, поскольку $K = k \times G$, это можно переписать как $f(x, y) = (x + y \cdot k) \times G$.&lt;/p>
&lt;p>&lt;strong>Шаг 3: Измерение третьего регистра&lt;/strong>
Когда мы измеряем третий регистр, он коллапсирует в некоторую точку $R$ на эллиптической кривой. В результате первый и второй регистры коллапсируют в состояние суперпозиции пар $(x, y)$, которые удовлетворяют условию $x + y \cdot k \equiv c \pmod{N}$ (где $c$ — константа).
&lt;/p>
$$
|\psi_3\rangle = \frac{1}{\sqrt{N}} \sum_{y=0}^{N-1} |c - y \cdot k \pmod{N}\rangle |y\rangle
$$
&lt;p>&lt;strong>Шаг 4: Применение квантового преобразования Фурье (QFT)&lt;/strong>
Это состояние имеет периодичность, связанную с периодом $k$. Применяя к нему обратное квантовое преобразование Фурье (Inverse QFT), мы вызываем фазовую интерференцию и преобразуем информацию о периоде в амплитуду.&lt;/p>
&lt;p>&lt;strong>Шаг 5: Измерение и классическая постобработка&lt;/strong>
Когда мы измеряем первый и второй регистры, с высокой вероятностью получается значение, содержащее информацию о $k$. Применяя классические теоретико-числовые алгоритмы, такие как разложение в непрерывные дроби (Continued Fractions), к измеренным значениям, можно полностью определить неизвестный закрытый ключ $k$.&lt;/p>
&lt;p>Количество квантовых вентилей, требуемых для всего этого процесса, составляет $\mathcal{O}(\log^3 N)$, что позволяет раскрывать закрытые ключи с молниеносной скоростью по сравнению с классическим поиском компьютера за $\mathcal{O}(\sqrt{N})$.&lt;/p>
&lt;h3 id="23-алгоритм-гровера-grovers-algorithm-и-влияние-на-хеш-функции">2.3. Алгоритм Гровера (Grover&amp;rsquo;s Algorithm) и влияние на хеш-функции
&lt;/h3>&lt;p>Еще одна угроза — &lt;strong>алгоритм Гровера&lt;/strong>, предложенный Ловом Гровером в 1996 году. Он оказывает значительное влияние на хеш-функции (например, SHA-256).&lt;/p>
&lt;p>В блокчейне хеш-функции используются для обеспечения целостности данных, генерации адресов, а также в качестве основы для майнинга &lt;strong>PoW (Proof of Work)&lt;/strong> в Биткоине. Обратное вычисление хеш-функции (нахождение прообраза) можно рассматривать как «задачу поиска в неструктурированной базе данных», где ищется входное значение $x$, для которого $H(x) = y$ при заданном выходном значении $y$.&lt;/p>
&lt;p>На классическом компьютере, чтобы найти правильный ответ из $N$ вариантов, требуется в среднем $\frac{N}{2}$ и в худшем случае $N$ попыток. Иными словами, сложность составляет $\mathcal{O}(N)$.
Однако алгоритм Гровера использует квантовый метод, называемый «усилением амплитуды (Amplitude Amplification)». Итеративно усиливая амплитуду вероятности правильного состояния среди всех возможных состояний в суперпозиции, он сокращает время поиска до квадратного корня.&lt;/p>
$$
\text{Сложность алгоритма Гровера} = \mathcal{O}(\sqrt{N})
$$
&lt;p>Для SHA-256 $N = 2^{256}$, поэтому классический поиск полным перебором требует около $2^{256}$ попыток. Однако при использовании алгоритма Гровера потребуется всего $\sqrt{2^{256}} = 2^{128}$ попыток. Это означает, что для квантового компьютера криптографическая стойкость 256-битной хеш-функции &lt;strong>фактически снижается вдвое, до уровня 128 бит&lt;/strong>.&lt;/p>
&lt;h4 id="231-выживет-ли-sha-256-quantum-supremacy-in-hashing">2.3.1. Выживет ли SHA-256? (Quantum Supremacy in Hashing)
&lt;/h4>&lt;p>Хотя безопасность уменьшается вдвое, «128-битная безопасность» все еще остается чрезвычайно надежной. $2^{128}$ операций — это астрономическое число даже при нынешнем уровне технологий, для выполнения которого потребуется время в масштабах жизни Вселенной.
Поэтому широко распространено мнение, что &lt;strong>«SHA-256 сохранит практическую безопасность даже против квантовых компьютеров»&lt;/strong>. Если в будущем потребуется увеличить запас прочности безопасности, то простое удвоение длины выходного хеша (например, переход от SHA-256 к SHA-512) позволит сохранить 256-битный уровень классической безопасности в квантовом мире.&lt;/p>
&lt;p>В заключение можно сказать, что квантовая угроза для хеш-функций «незначительна и решаема», тогда как угроза для криптографии с открытым ключом (ECDSA) является «фатальной».&lt;/p>
&lt;hr>
&lt;h2 id="3-анализ-конкретного-влияния-на-современные-криптоактивы-bitcoin-ethereum">3. Анализ конкретного влияния на современные криптоактивы (Bitcoin, Ethereum)
&lt;/h2>&lt;p>С какими конкретными уязвимостями столкнутся сети криптовалют в мире, где ECDSA можно будет взломать с помощью квантового компьютера? Здесь мы проведем подробный анализ на примере механизма Биткоина с точки зрения &lt;strong>«момента раскрытия открытого ключа»&lt;/strong>.&lt;/p>
&lt;h3 id="31-генерация-адреса-и-непубличность-открытого-ключа">3.1. Генерация адреса и «непубличность» открытого ключа
&lt;/h3>&lt;p>Адреса Биткоина (P2PKH: Pay-to-Public-Key-Hash или P2WPKH: Pay-to-Witness-Public-Key-Hash) не являются самими открытыми ключами, а представляют собой результат многократного хеширования открытого ключа.&lt;/p>
$$
\text{Bitcoin Address} = \text{Base58Check}(\text{RIPEMD160}(\text{SHA256}(\text{Public Key})))
$$
&lt;p>Как упоминалось ранее, поскольку хеш-функции устойчивы к квантовым атакам (алгоритм Гровера), обратное вычисление исходного «открытого ключа» из хеш-значения («адреса») невозможно даже для квантового компьютера.
То есть, для &lt;strong>«неиспользованных адресов (с которых никогда не отправлялись средства)»&lt;/strong> открытый ключ вообще не представлен в блокчейне, записано только хеш-значение. Таким образом, пока открытый ключ неизвестен, не существует цели для выполнения алгоритма Шора, и закрытый ключ не может быть определен. Кошелек в этом состоянии можно считать квантово-безопасным (Quantum-safe).&lt;/p>
&lt;h3 id="32-фатальная-уязвимость-при-отправке-транзакции-атака-фронтраннинга">3.2. Фатальная уязвимость при отправке транзакции (атака фронтраннинга)
&lt;/h3>&lt;p>Проблема возникает в тот момент, когда пользователь отправляет средства.
При широковещательной рассылке (отправке) транзакции в сеть пользователь должен включить &lt;strong>свой открытый ключ в данные транзакции и опубликовать его для всей сети&lt;/strong> для проверки вместе с цифровой подписью.&lt;/p>
&lt;div class="mermaid">sequenceDiagram
participant User as "Пользователь (Алиса)"
participant Mempool as "Mempool (Пул неподтвержденных транзакций)"
participant QuantumAttacker as "Квантовый злоумышленник"
participant Miner as "Майнер (Создание блока)"
User->>Mempool: Отправка транзакции (включает открытый ключ + подпись)
Mempool-->>QuantumAttacker: Перехват открытого ключа в сети
note right of QuantumAttacker: Выполнение алгоритма Шора за несколько минут&lt;br/>(Вычисление закрытого ключа из открытого ключа)
QuantumAttacker->>QuantumAttacker: Создание новой подписи с использованием закрытого ключа Алисы
QuantumAttacker->>Mempool: Широковещательная рассылка мошеннической транзакции с более высокой комиссией
Miner->>Miner: Приоритетное включение мошеннической транзакции с высокой комиссией (Gas) в блок
Miner-->>User: Запись в блокчейн (Потеря средств Алисы)&lt;/div>
&lt;p>Как только открытый ключ попадает в Mempool (место ожидания неподтвержденных транзакций), эти данные передаются узлам по всему миру. Если у злоумышленника есть сверхбыстрый квантовый компьютер, он может украсть средства с помощью следующего процесса:&lt;/p>
&lt;ol>
&lt;li>Перехватить транзакцию легитимного пользователя (Алисы) в Mempool и &lt;strong>извлечь открытый ключ&lt;/strong>.&lt;/li>
&lt;li>Выполнить алгоритм Шора и &lt;strong>вычислить закрытый ключ из открытого ключа за несколько минут&lt;/strong> (до того, как блок будет подтвержден).&lt;/li>
&lt;li>Используя полученный закрытый ключ, &lt;strong>создать фальшивую транзакцию&lt;/strong>, которая переводит средства Алисы на адрес злоумышленника.&lt;/li>
&lt;li>Отправить эту фальшивую транзакцию в сеть с &lt;strong>гораздо более высокой комиссией майнеру (Fee)&lt;/strong>, чем у исходной транзакции Алисы.&lt;/li>
&lt;/ol>
&lt;p>Майнеры, следуя экономическим стимулам, будут отдавать приоритет транзакциям с более высокими комиссиями при их включении в блок. В результате мошеннический перевод злоумышленника будет подтвержден (Confirm) первым, а законный перевод Алисы будет отклонен как попытка «двойной траты (Double Spend)».
Эта последовательность действий называется &lt;strong>атакой фронтраннинга (Front-running Attack)&lt;/strong>, и в мире, где квантовые компьютеры станут реальностью, это приведет к ужасающей ситуации, когда средства будут украдены хакерами в ту же секунду, как кто-то нажмет кнопку «отправить».&lt;/p>
&lt;h3 id="33-опасность-повторного-использования-адресов-и-старых-адресов-p2pk">3.3. Опасность повторного использования адресов и старых адресов (P2PK)
&lt;/h3>&lt;p>Еще более серьезная проблема заключается в том, что адреса, которые использовались для перевода средств хотя бы раз в прошлом (например, повторно используемые в качестве адресов для сдачи), уже навсегда сохранили свой открытый ключ в блокчейне. Эти адреса находятся под угрозой того, что их закрытый ключ будет вычислен, а баланс украден в любой момент, даже без ожидания отправки транзакции.&lt;/p>
&lt;p>Кроме того, в формате &lt;strong>P2PK (Pay-to-Public-Key)&lt;/strong>, который был популярен примерно в 2009–2010 годах, открытый ключ напрямую записывался в блокчейн в качестве адреса, а не его хеш. Сюда входят ранние награды Сатоши Накамото за майнинг (более 1 миллиона BTC). Эти огромные запасы «спящих» биткоинов станут самой легкой мишенью для квантовых компьютеров; они могут быть украдены все разом и сброшены на рынок, что приведет к катастрофическому обвалу цен.&lt;/p>
&lt;hr>
&lt;h2 id="4-сценарий-перехода-на-постквантовую-криптографию-pqc-post-quantum-cryptography">4. Сценарий перехода на постквантовую криптографию (PQC: Post-Quantum Cryptography)
&lt;/h2>&lt;p>Чтобы избежать катастрофы «Q-Day» (дня, когда квантовые компьютеры взломают криптографию), криптографическое сообщество и сообщество блокчейна планируют переход на &lt;strong>постквантовую криптографию (PQC)&lt;/strong>, которую трудно взломать даже с помощью квантовых алгоритмов.
Национальный институт стандартов и технологий США (NIST) на протяжении многих лет проводит процесс стандартизации PQC, и после нескольких раундов строгой оценки несколько перспективных схем шифрования были выбраны в качестве окончательных стандартов.&lt;/p>
&lt;p>Ниже приводится подробное описание, включая математические механизмы, основных алгоритмов PQC, которые привлекают внимание как альтернативы цифровым подписям в блокчейне.&lt;/p>
&lt;h3 id="41-подписи-на-основе-хешей-hash-based-signatures">4.1. Подписи на основе хешей (Hash-Based Signatures)
&lt;/h3>&lt;p>Подписи на основе хешей — это криптографическая схема, безопасность которой зависит исключительно от очень простой и надежной основы: «устойчивости хеш-функций к коллизиям». Поскольку устойчивость хеш-функций к квантовым компьютерам уже доказана (как упоминалось ранее, запаса безопасности в 128 бит вполне достаточно), это очень надежный подход.
Типичными примерами являются &lt;strong>подпись Лэмпорта (Lamport Signatures)&lt;/strong>, ее расширение WOTS (Winternitz One-Time Signature), а также кандидат на стандартизацию NIST &lt;strong>SPHINCS+&lt;/strong> (в настоящее время называемый SLH-DSA в рамках FIPS 205).&lt;/p>
&lt;h4 id="411-математические-детали-подписи-лэмпорта-one-time-signature">4.1.1. Математические детали подписи Лэмпорта (One-Time Signature)
&lt;/h4>&lt;p>Давайте подробнее рассмотрим математику подписи Лэмпорта.
Пусть хеш-функция будет $H: \{0, 1\}^* \to \{0, 1\}^{256}$.&lt;/p>
&lt;p>&lt;strong>[Генерация ключей]&lt;/strong>
Алиса (отправитель) использует аппаратный генератор случайных чисел (TRNG) для генерации 256 пар закрытых ключей.
&lt;/p>
$$
\text{sk}_{i,0} \in \{0, 1\}^{256}, \quad \text{sk}_{i,1} \in \{0, 1\}^{256} \quad (1 \le i \le 256)
$$
&lt;p>
В результате закрытый ключ $\text{sk}$ состоит в общей сложности из 512 строк по 256 бит (размер: $512 \times 32 = 16 384$ байта).&lt;/p>
&lt;p>Затем она вычисляет открытый ключ $\text{pk}$. Каждый компонент закрытого ключа хешируется.
&lt;/p>
$$
\text{pk}_{i,0} = H(\text{sk}_{i,0}), \quad \text{pk}_{i,1} = H(\text{sk}_{i,1})
$$
&lt;p>
Размер открытого ключа также составляет $16 384$ байта. Он публикуется в сети блокчейн.&lt;/p>
&lt;p>&lt;strong>[Создание подписи]&lt;/strong>
Чтобы подписать данные транзакции $M$, Алиса сначала вычисляет их хеш-значение.
&lt;/p>
$$
h = H(M) \in \{0, 1\}^{256}
$$
&lt;p>
Обозначим $i$-й бит хеш-значения $h$ как $h_i \in \{0, 1\}$.
Подпись Алисы $\sigma$ представляет собой набор компонентов закрытого ключа, соответствующих каждому биту $h_i$.
&lt;/p>
$$
\sigma = (\text{sk}_{1, h_1}, \text{sk}_{2, h_2}, \dots, \text{sk}_{256, h_{256}})
$$
&lt;p>
То есть, если бит хеша сообщения равен &lt;code>0&lt;/code>, раскрывается $\text{sk}_{i,0}$, а если он равен &lt;code>1&lt;/code>, раскрывается $\text{sk}_{i,1}$. Размер подписи составит $256 \times 32 = 8 192$ байта.&lt;/p>
&lt;p>&lt;strong>[Проверка подписи]&lt;/strong>
Майнер (проверяющий) использует полученную транзакцию $M$, подпись $\sigma = (s_1, s_2, \dots, s_{256})$ и открытый ключ $\text{pk}$ для проверки.
Он заново вычисляет хеш транзакции $h = H(M)$ и проверяет, совпадает ли хеш каждого $s_i$ с соответствующим элементом открытого ключа $\text{pk}_{i, h_i}$.
&lt;/p>
$$
H(s_i) \overset{?}{=} \text{pk}_{i, h_i} \quad (\text{для всех } 1 \le i \le 256)
$$
&lt;p>Этот процесс математически предельно прост, и до тех пор, пока квантовый компьютер не сможет вычислить обратную функцию $H$, подделать подпись невозможно. Однако после однократного подписания половина закрытого ключа раскрывается в сети, и если та же пара ключей будет использована для подписания другого сообщения, комбинация раскрытых закрытых ключей даст злоумышленнику возможность подделать подпись. Отсюда возникает строгое ограничение на использование ключа &lt;strong>только один раз (One-Time)&lt;/strong>.
Для практического применения были разработаны такие технологии, как &lt;strong>XMSS&lt;/strong>, использующая деревья Меркла для объединения множества одноразовых ключей в один корневой открытый ключ, и &lt;strong>SPHINCS+&lt;/strong> без сохранения состояния (stateless), но они имеют недостаток в виде размера подписей, достигающего десятков килобайт.&lt;/p>
&lt;h3 id="42-криптография-на-решетках-lattice-based-cryptography">4.2. Криптография на решетках (Lattice-Based Cryptography)
&lt;/h3>&lt;p>В настоящее время наиболее перспективным направлением PQC, принятым в качестве основного стандарта NIST (FIPS 204: ML-DSA / ранее CRYSTALS-Dilithium, а также Falcon и др.), является &lt;strong>криптография на решетках&lt;/strong>.&lt;/p>
&lt;p>Безопасность криптографии на решетках основана на математически доказанных сложных задачах, таких как «задача о кратчайшем векторе в многомерной решетке (SVP: Shortest Vector Problem)» и «задача обучения с ошибками (LWE: Learning With Errors)». Алгоритмов для эффективного решения задач на решетках не найдено даже для квантовых компьютеров.&lt;/p>
&lt;p>&lt;strong>Математическая модель LWE (Learning With Errors):&lt;/strong>
Основная идея задачи LWE заключается в том, что намеренное добавление «небольшого шума (ошибок)» в систему линейных уравнений делает задачу экспоненциально сложнее.
Пусть секретный вектор $\mathbf{s} \in \mathbb{Z}_q^n$.
Имеется огромная случайно выбранная открытая матрица $\mathbf{A} \in \mathbb{Z}_q^{m \times n}$ и вектор небольшого шума $\mathbf{e} \in \mathbb{Z}_q^m$, который добавляется намеренно.
Открытый ключ $\mathbf{b}$ вычисляется следующим образом:&lt;/p>
$$
\mathbf{b} = \mathbf{A}\mathbf{s} + \mathbf{e} \pmod{q}
$$
&lt;p>Даже если матрица $\mathbf{A}$ и вектор $\mathbf{b}$ (открытый ключ) известны, вычислить из них закрытый ключ $\mathbf{s}$ чрезвычайно сложно из-за наличия шума $\mathbf{e}$. Без шума задачу можно было бы решить простым методом Гаусса, но присутствие шума приводит к взрывному росту пространства поиска во всех измерениях, обеспечивая надежную безопасность как против классических, так и против квантовых компьютеров.
В реальных алгоритмах, используемых в блокчейне (таких как Dilithium), применяется &lt;strong>Ring-LWE (или Module-LWE)&lt;/strong>, развернутая над кольцом многочленов, что позволяет уменьшить размер ключа и ускорить вычисления.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Преимущества&lt;/strong>: По сравнению с подписями на основе хешей размер открытого ключа и подписи относительно невелик (несколько килобайт), а скорость генерации и проверки подписи очень высока (на уровне ECDSA или даже быстрее).&lt;/li>
&lt;li>&lt;strong>Недостатки&lt;/strong>: Математическая структура сложна, и история тестирования относительно коротка, поэтому риск того, что в будущем будет обнаружен новый алгоритм дешифрования, не равен нулю.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="5-технические-трудности-перехода-блокчейна-на-pqc">5. Технические трудности перехода блокчейна на PQC
&lt;/h2>&lt;p>Наличие алгоритмов PQC (таких как Dilithium или SPHINCS+) не означает, что их можно внедрить в Bitcoin или Ethereum прямо завтра. Существует ряд серьезных проблем, характерных для децентрализованных систем.&lt;/p>
&lt;h3 id="51-раздувание-размера-подписей-и-коллапс-масштабируемости">5.1. Раздувание размера подписей и коллапс масштабируемости
&lt;/h3>&lt;p>Самым большим препятствием для внедрения PQC является значительное увеличение размера данных.
В то время как текущий размер подписи ECDSA составляет около 70 байт, подпись Dilithium (ML-DSA) на основе решеток занимает около 2420–4595 байт (в зависимости от уровня безопасности), а размер открытого ключа превышает 1300 байт. Для SPHINCS+ на основе хешей размер только одной подписи достигает десятков тысяч байт.&lt;/p>
&lt;p>Если бы Биткоин внедрил PQC при текущем пределе размера блока (около 4 МБ с учетом SegWit), количество транзакций, которое можно уместить в одном блоке, резко бы сократилось. Пропускная способность сети (TPS: Transactions Per Second) катастрофически упала бы, а задержки при переводе стали бы нормой.
Для решения этой проблемы потребуется значительное увеличение размера блока, но это, в свою очередь, увеличит требования к хранилищу полных узлов (full nodes) и пропускной способности сети, что усложнит запуск узлов для обычных пользователей и, как следствие, приведет к дилемме — &lt;strong>централизации сети&lt;/strong>.&lt;/p>
&lt;div class="mermaid">pie title "Сравнение размеров данных подписи в блокчейне (Концептуальная диаграмма)"
"ECDSA (Около 70 байт)" : 2
"Dilithium ML-DSA (Около 2500 байт)" : 58
"SPHINCS+ (Около 17000 байт)" : 40&lt;/div>
&lt;p>&lt;em>(※ Увеличение размера данных транзакций из-за внедрения PQC станет фатальным узким местом для масштабируемости)&lt;/em>&lt;/p>
&lt;h3 id="52-влияние-на-ethereum-virtual-machine-evm-и-предварительно-скомпилированные-смарт-контракты">5.2. Влияние на Ethereum Virtual Machine (EVM) и предварительно скомпилированные смарт-контракты
&lt;/h3>&lt;p>В таких тьюринг-полных платформах смарт-контрактов, как Ethereum, внедрение PQC потребует фундаментального обновления EVM (виртуальной машины Ethereum).
В текущей версии EVM для проверки подписей ECDSA предусмотрен предварительно скомпилированный контракт (Precompiled Contract) под названием &lt;code>ecrecover&lt;/code> (адрес: &lt;code>0x01&lt;/code>), который оптимизирован для выполнения проверки с очень низкой комиссией (3000 Gas).&lt;/p>
&lt;p>Однако процесс проверки для новых алгоритмов на решетках, таких как Dilithium или Falcon, включает сложные полиномиальные и матричные операции. Если их реализовать только с использованием существующих опкодов (Opcodes) EVM, одна проверка подписи может потреблять от нескольких миллионов до десятков миллионов единиц газа. Это уровень, при котором весь лимит газа блока (около 30 миллионов Gas) исчерпывается одной транзакцией.&lt;/p>
&lt;p>Чтобы избежать этого, необходимо интегрировать новые предварительно скомпилированные контракты для проверки PQC (например, назначив DilithiumVerify на &lt;code>0x10&lt;/code>) непосредственно в саму EVM через хардфорк сети. Это потребует длительного процесса, в ходе которого основные разработчики каждого клиента Ethereum (Geth, Nethermind, Erigon и др.) будут сотрудничать для оптимизации логики проверки криптографии на решетках на таких языках, как C++, Go или Rust, и проведения аудита безопасности.&lt;/p>
&lt;h3 id="53-сложность-достижения-консенсуса-через-хардфорк">5.3. Сложность достижения консенсуса через хардфорк
&lt;/h3>&lt;p>Изменение базового алгоритма подписи требует &lt;strong>хардфорка (Hard Fork)&lt;/strong> — обновления протокола всей сети. Однако в сообществах, которые придают большое значение «неизменности правил и децентрализации», таких как Биткоин, процесс достижения консенсуса очень сложен с политической точки зрения. От момента предложения BIP (Bitcoin Improvement Proposal) о переходе на PQC до его внедрения, вероятно, потребуются годы обсуждений и тестирования.&lt;/p>
&lt;hr>
&lt;h2 id="6-когда-наступит-q-day-дорожная-карта-перехода">6. Когда наступит «Q-Day»? Дорожная карта перехода
&lt;/h2>&lt;p>Когда наступит «день, когда квантовые компьютеры полностью взломают 256-битную криптографию на эллиптических кривых (Q-Day)»?
Хотя мнения исследователей расходятся, многие эксперты прогнозируют, что масштабные квантовые компьютеры с тысячами или десятками тысяч стабильных логических кубитов (с исправлением ошибок и устойчивостью к шуму) появятся в период &lt;strong>«с середины 2030-х до 2040-х годов»&lt;/strong>. Однако, в зависимости от прорывов в архитектуре аппаратного обеспечения или открытия более эффективных квантовых алгоритмов, нельзя исключать, что это может произойти и раньше (около 2030 года).&lt;/p>
&lt;p>Дорожная карта, которой должна следовать экосистема криптоактивов, пока не стало слишком поздно, выглядит следующим образом:&lt;/p>
&lt;h3 id="фаза-1-гибридные-подписи-и-абстракция-аккаунта-от-настоящего-момента-до-2028-года">Фаза 1: Гибридные подписи и абстракция аккаунта (От настоящего момента до ~2028 года)
&lt;/h3>&lt;p>В текущей сфере блокчейна, особенно среди разработчиков Ethereum (таких как Виталик Бутерин), рассматриваются &lt;strong>«гибридные подписи»&lt;/strong>, сочетающие ECDSA и PQC (подписи на основе хешей или на решетках). Это подход, при котором к транзакции прикрепляются как существующая безопасная подпись ECDSA, так и подпись PQC, обеспечивая безопасность, даже если одна из них будет взломана.
Кроме того, благодаря использованию абстракции аккаунта (Account Abstraction, ERC-4337), предпринимаются усилия по внедрению и поддержке подписей PQC в смарт-контрактных кошельках по принципу opt-in (только для желающих пользователей) без ожидания хардфорка на уровне протокола.&lt;/p>
&lt;h3 id="фаза-2-использование-доказательств-с-нулевым-разглашением-zk-rollups-с-2025-года">Фаза 2: Использование доказательств с нулевым разглашением (ZK-Rollups) (С 2025 года)
&lt;/h3>&lt;p>Ожидается, что козырем для решения самой большой слабости PQC — «раздувания данных подписи» — станет использование технологии масштабирования второго уровня (Layer 2) &lt;strong>ZK-Rollups (Доказательства с нулевым разглашением)&lt;/strong>.
Вместо того, чтобы записывать огромные данные подписей PQC непосредственно в Layer 1 (основную цепь), большое количество PQC-транзакций будет проверяться и агрегироваться на Layer 2. Затем с помощью ZK-SNARKs или ZK-STARKs они будут сжиматься в одни крошечные «данные доказательства (Proof)» и записываться в Layer 1.
Поскольку некоторые конфигурации SNARKs (например, Groth16) сами по себе уязвимы к квантовым атакам, ключом станет использование &lt;strong>ZK-STARKs&lt;/strong>, безопасность которых опирается исключительно на хеш-функции, обладающие квантовой устойчивостью.&lt;/p>
&lt;h3 id="фаза-3-хардфорк-на-уровне-протокола-около-2030-года">Фаза 3: Хардфорк на уровне протокола (Около 2030 года)
&lt;/h3>&lt;p>Когда стандартизация PQC от NIST будет полностью закреплена, а отраслевые стандарты библиотек станут доступны и достаточно протестированы, ожидается проведение хардфорков в основных сетях, таких как Bitcoin и Ethereum, для полного перехода на PQC в качестве метода цифровой подписи по умолчанию. В течение этого переходного периода будут проводиться масштабные кампании, призывающие пользователей «перевести свои средства со старых кошельков на новые кошельки с поддержкой PQC».&lt;/p>
&lt;h3 id="примеры-новаторских-проектов">Примеры новаторских проектов
&lt;/h3>&lt;p>Некоторые блокчейн-проекты предвидели эту квантовую угрозу и с самого начала разрабатывались с заявленной квантовой устойчивостью.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>QRL (Quantum Resistant Ledger)&lt;/strong>: Ранний блокчейн, в котором на уровне протокола изначально реализована схема PQC на основе хешей под названием XMSS (eXtended Merkle Signature Scheme).&lt;/li>
&lt;li>&lt;strong>Algorand / Cellframe&lt;/strong>: Проекты с гибкой модульной архитектурой криптографического уровня, которые готовятся к будущим обновлениям PQC и активно изучают возможности интеграции криптографии на решетках.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="7-заключение-будущее-криптоактивов-и-защита-наших-средств">7. Заключение: Будущее криптоактивов и защита наших средств
&lt;/h2>&lt;p>Наступление «постквантовой эры» выходит за рамки научной фантастики и уже стало реальной технической проблемой для современных криптографических систем, стоящей прямо перед нами.&lt;/p>
&lt;p>Два «меча» квантовых вычислений — алгоритмы Шора и Гровера — угрожают основе современных блокчейнов: криптографии с открытым ключом и хеш-функциям соответственно. В частности, уязвимость ECDSA является фатальной, и чтобы избежать риска кражи средств с помощью атак фронтраннинга, переход на постквантовую криптографию (PQC) абсолютно неизбежен.&lt;/p>
&lt;p>Однако технологическая отрасль и блокчейн-сообщество не сидят сложа руки в ожидании краха. Процесс выбора и стандартизации алгоритмов PQC, таких как криптография на решетках и подписи на основе хешей, неуклонно продвигается вперед, и использование доказательств с нулевым разглашением (ZK-STARKs) и технологий масштабирования Layer 2 открывает путь к преодолению самого большого барьера для внедрения PQC — «раздувания размера данных».&lt;/p>
&lt;p>Обычным пользователям криптовалют и инвесторам не нужно паниковать и продавать все свои средства прямо сейчас. Однако важно иметь базовую техническую грамотность и осознавать необходимость самозащиты:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Избегать повторного использования адресов&lt;/strong>: Из соображений не только конфиденциальности, но и безопасности, избегайте длительного хранения средств на «использованных адресах (с которых хотя бы раз отправлялись средства, и чей открытый ключ раскрыт в блокчейне)».&lt;/li>
&lt;li>&lt;strong>Следить за технологическими тенденциями&lt;/strong>: Будьте в курсе обсуждений перехода на PQC, таких как BIP в Биткоине или EIP в Ethereum, а также новостей о хардфорках, чтобы вовремя перевести свои средства на новые кошельки, когда это потребуется.&lt;/li>
&lt;/ul>
&lt;p>История блокчейна — это также история обновлений и устойчивости (resilience) перед лицом новых технологических угроз. Подобно тому, как экосистема преодолела проблемы масштабируемости и экологические проблемы (например, переход от PoW к PoS), она, несомненно, найдет решения и адаптируется к этой беспрецедентной квантовой угрозе.
Остается надеяться на будущее, в котором новая мудрость человечества — квантовые компьютеры — и технология доверия — децентрализованный распределенный реестр — не уничтожат друг друга при столкновении, а сольются в более совершенную и надежную систему на более высоком уровне.&lt;/p>
&lt;hr>
&lt;p>&lt;em>Ссылки и сопутствующие материалы:&lt;/em>&lt;/p>
&lt;ul>
&lt;li>National Institute of Standards and Technology (NIST) - Post-Quantum Cryptography Standardization Project&lt;/li>
&lt;li>Shor, P. W. (1994). Algorithms for quantum computation: discrete logarithms and factoring.&lt;/li>
&lt;li>Grover, L. K. (1996). A fast quantum mechanical algorithm for database search.&lt;/li>
&lt;li>Buterin, V. (2024). How to hard-fork to save most users&amp;rsquo; funds in a quantum emergency.&lt;/li>
&lt;/ul></description></item></channel></rss>