<?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/zh-cn/tags/quantum-computing/</link><description>Recent content in Quantum Computing on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><copyright>kenjinote</copyright><lastBuildDate>Fri, 11 Sep 2026 20:00:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/zh-cn/tags/quantum-computing/index.xml" rel="self" type="application/rss+xml"/><item><title>使用Qiskit的量子编程超入门</title><link>http://kenji.blog/zh-cn/p/qiskit-quantum-programming-intro/</link><pubDate>Fri, 11 Sep 2026 20:00:00 +0900</pubDate><guid>http://kenji.blog/zh-cn/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>在本文中，我们将使用IBM提供的开源量子计算框架&lt;strong>Qiskit&lt;/strong>，迈出进入量子编程世界的第一步。这是一份非常详细的入门指南，涵盖了从仔细讲解物理和数学基础，到实际使用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>经典计算机的信息单位是“比特（Bit）”。比特总是处于 &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>也就是说，当我们“测量（观测）”这个量子比特时，得到 $|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>例如，如果1个量子比特处于完全均匀的叠加态中，则 $\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>当测量这个状态时，将各有50%的概率观测到 $|0\rangle$ 和 $|1\rangle$。
如果有2个量子比特，就可以产生 $|00\rangle, |01\rangle, |10\rangle, |11\rangle$ 4种状态的叠加。如果有 $n$ 个量子比特，就可以同时表示 $2^n$ 种状态，这也是量子计算机并行处理能力的一个源泉。&lt;/p>
&lt;h3 id="23-量子纠缠entanglement">2.3 量子纠缠（Entanglement）
&lt;/h3>&lt;p>在量子计算中，最强大且最神奇的特性是&lt;strong>量子纠缠（Entanglement）&lt;/strong>。爱因斯坦将其称为“幽灵般的超距作用”，这种现象是指两个或多个量子比特之间产生强烈的联系，一旦其中一个量子比特的状态被确定，无论物理距离有多远，另一个量子比特的状态也会瞬间确定。&lt;/p>
&lt;p>最著名的量子纠缠态之一“贝尔态（Bell State）”的 $\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>来操作量子比特的状态。由于量子态是一个向量，因此量子门表现为作用于该向量的“幺正矩阵”。&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$。（在布洛赫球中绕X轴旋转180度）&lt;/p>
$$
X = \begin{pmatrix} 0 &amp; 1 \\ 1 &amp; 0 \end{pmatrix}
$$
&lt;p>&lt;strong>・Pauli-Y 门&lt;/strong>
绕Y轴进行180度旋转。具有同时翻转相位和比特的效果。&lt;/p>
$$
Y = \begin{pmatrix} 0 &amp; -i \\ i &amp; 0 \end{pmatrix}
$$
&lt;p>&lt;strong>・Pauli-Z 门 (相位翻转门)&lt;/strong>
保持 $|0\rangle$ 的状态不变，将 $|1\rangle$ 状态的相位翻转（乘以 $-1$）。（在布洛赫球中绕Z轴旋转180度）&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门）是在两个量子比特之间进行操作的门，对于生成量子纠缠是不可或缺的。它由“控制（Control）比特”和“目标（Target）比特”组成。&lt;/p>
&lt;p>仅当控制比特为 $|1\rangle$ 时，才对目标比特应用X门（NOT操作）；如果控制比特为 $|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> 是IBM Quantum开发的开源量子计算软件开发工具包（SDK）。通过使用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>准备2个量子比特（初始状态均为 $|0\rangle$）。&lt;/li>
&lt;li>对第1个量子比特应用哈达玛门（H），使其变为叠加态。&lt;/li>
&lt;li>将第1个量子比特作为“控制比特”，第2个量子比特作为“目标比特”，应用CNOT门。&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"># 将 q0 作为控制比特，q1 作为目标比特，应用 CNOT&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 次 shot）&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"># 获取状态的观测次数（计数）&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}}$ 的理论预测完全一致。精确地模拟了“如果第一个量子比特是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)$ 到底是“常数函数”（无论输入什么，总是输出0或总是输出1）还是“平衡函数”（对一半的输入输出0，另一半输出1）的问题。
在最坏的情况下，经典计算机需要评估 $2^{n-1} + 1$ 次函数，而使用多伊奇-乔萨算法，利用量子并行性，&lt;strong>仅需评估1次&lt;/strong>即可做出判断。这展示了量子算法的基本模式：输入叠加态，利用干涉（Interference）抵消不需要的状态，并放大想要的答案。&lt;/p>
&lt;h3 id="62-grover-算法grovers-algorithm">6.2 Grover 算法（Grover&amp;rsquo;s Algorithm）
&lt;/h3>&lt;p>在从 $N$ 个未排序的数据库中寻找特定数据的搜索问题中，经典算法平均需要 $N/2$ 次计算，而Grover算法只需 $\sqrt{N}$ 次即可找到目标数据。
该算法使用称为“神谕（Oracle）”的黑盒来反转目标解的相位，然后进行“振幅放大（Amplitude Amplification）”，从而极大地提高观测到目标解的概率。&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 Quantum的真实处理器上运行一下。你一定能亲手体验到未来的计算范式。&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 Textbook&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/zh-cn/p/what-is-quantum-supremacy-google-ibm/</link><pubDate>Fri, 11 Sep 2026 18:00:00 +0900</pubDate><guid>http://kenji.blog/zh-cn/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）”。这指的是在特定的计算任务中，量子计算机展现出压倒经典计算机计算能力的瞬间。本文将从量子超越性的严格定义出发，详细探讨2019年宣布在世界上首次达成这一里程碑的Google“Sycamore”处理器的实验细节、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）。1个量子比特的状态 $|\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年10月，Google Quantum AI团队在科学期刊《Nature》上宣布，他们使用53个量子比特的超导处理器“Sycamore（悬铃木）”实现了量子超越性。&lt;/p>
&lt;h3 id="sycamore处理器的架构">Sycamore处理器的架构
&lt;/h3>&lt;p>Sycamore处理器由呈二维网格状排列的54个Transmon型超导量子比特组成（实验中由于1个出现故障，实际使用了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）。通过经典计算机计算实验中获得的比特串 $x_i$ 对应的电路理想概率 $P(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处理器在深度为20的电路中实现了 $\mathcal{F}_{\text{XEB}} \approx 0.002$ (0.2%)。乍一看似乎很低，但它在统计学上是显著大于零的值，并且是控制了 $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）模拟这个电路需要大约1万年。相比之下，Sycamore仅用了200秒就完成了采样。&lt;/p>
&lt;hr>
&lt;h2 id="4-ibm的反驳从超越性到实用性utility">4. IBM的反驳：从“超越性”到“实用性（Utility）”
&lt;/h2>&lt;p>Google的宣布震惊了世界，但开发了世界最大超级计算机“Summit”并同样引领量子计算机开发的IBM，立即发表论文反驳了这一主张。&lt;/p>
&lt;h3 id="通过张量网络收缩改善经典模拟">通过张量网络收缩改善经典模拟
&lt;/h3>&lt;p>IBM反驳的核心在于“经典计算机一侧的算法和资源优化不足”。Google基于直接计算薛定谔方程时间演化的状态向量模拟器，得出了需要1万年的估计，但IBM指出，通过使用一种称为“张量网络（Tensor Network）”的方法，可以显著缩短模拟时间。&lt;/p>
&lt;p>在张量网络中，量子电路的门操作被表示为多维数组（张量）的运算，并对网络的“收缩（Contraction）”顺序进行优化。此外，IBM主张如果充分利用Summit拥有的250 PB巨大存储空间（磁盘与内存分层），可以在保留整个状态向量的同时，在仅仅“两天半”内进行更高精度的模拟。&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>错误缓解是一种不改变量子硬件，通过经典后处理从计算结果的期望值中去除噪声影响的方法。IBM在2023年将127量子比特的“Eagle”处理器与“零噪声外推（Zero-Noise Extrapolation: ZNE）”等错误缓解技术相结合，在复杂伊辛模型的时间演化模拟中，达到了超越最先进近似张量网络法的精度，从而实证了“Quantum Utility（量子实用性）”。&lt;/p>
&lt;h3 id="量子纠错qec与逻辑量子比特">量子纠错（QEC）与逻辑量子比特
&lt;/h3>&lt;p>然而，为了最终执行任意复杂的算法（例如Shor的因数分解算法或复杂的量子化学计算），仅靠错误缓解是不够的，必须要有动态检测并纠正错误的“量子纠错（QEC）”。&lt;/p>
&lt;p>QEC的主流方法是“表面码（Surface Code）”。这种方法将多个物理量子比特（数据量子比特）排列成二维网格，并在它们之间放置用于测量的量子比特（辅助量子比特），以连续进行被称为“稳定子（Stabilizer）”的奇偶校验。&lt;/p>
&lt;div class="mermaid">graph LR
Q1["数据量子比特（Data）"] --- M1["测量X稳定子（辅助）"]
Q2["数据量子比特（Data）"] --- M1
Q3["数据量子比特（Data）"] --- M2["测量Z稳定子（辅助）"]
Q4["数据量子比特（Data）"] --- 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$（将更多物理量子比特分配给1个逻辑量子比特），可以呈指数级地降低逻辑错误率 $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年2月，Google在《Nature》上发表了一篇具有里程碑意义的论文。他们使用第三代Sycamore处理器，在世界上首次实证了当表面码的距离从 $d=3$（使用17个物理量子比特）扩展到 $d=5$（使用49个物理量子比特）时，逻辑错误率从 3.028% 略微下降到 2.914%。&lt;/p>
&lt;p>这意味着他们已经踏入了 $p &lt; p_{th}$ 的区域，表明随着物理量子比特数量的增加，性能也会随之提升，这标志着迈向FTQC最重要的原理验证（Proof of Concept）已经完成。&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的方法模块化与重六边形网格">IBM的方法：模块化与重六边形网格
&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）等非克利福德门，相关的协议实现也将是未来重大的技术障碍。据说为了执行实用的Shor算法以破解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/zh-cn/p/post-quantum-blockchain-and-crypto/</link><pubDate>Fri, 11 Sep 2026 17:00:00 +0900</pubDate><guid>http://kenji.blog/zh-cn/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>自2009年中本聪（Satoshi Nakamoto）创造比特币（Bitcoin）以来，区块链技术作为“去中心化且不可篡改的账本”，已成长为全球金融系统和应用程序的基础设施。支撑这种坚如磐石的安全性的是**公钥密码学（Public Key Cryptography）&lt;strong>和&lt;/strong>密码学哈希函数（Cryptographic Hash Functions）**等现代密码技术。&lt;/p>
&lt;p>这些密码技术保证安全性的依据是数学上的“计算困难性”，即使用经典计算机（我们现在使用的个人电脑和超级计算机），即使花费宇宙寿命般漫长的时间也无法破解。&lt;/p>
&lt;p>然而，这一前提正随着物理学和信息科学的前沿领域——**量子计算机（Quantum Computers）**的快速发展和实用化，面临着被彻底颠覆的危险。利用量子力学特有的“叠加态（Superposition）”和“量子纠缠（Entanglement）”，量子计算机在某些特定数学问题上展现出压倒传统经典计算机的计算能力，即所谓的“量子霸权（Quantum Supremacy）”。&lt;/p>
&lt;p>本文将深入探讨区块链技术具体面临着量子计算机的哪些威胁，并从技术和数学的角度，彻底解析作为解决方案的**抗量子计算密码学（PQC：Post-Quantum Cryptography）**的最新动态，以及加密资产网络的过渡方案。&lt;/p>
&lt;hr>
&lt;h2 id="2-量子计算机的基础及对区块链的两大威胁">2. 量子计算机的基础及对区块链的两大威胁
&lt;/h2>&lt;p>当前的区块链系统主要由以下两种密码要素构成，它们分别面临着不同量子算法的威胁。&lt;/p>
&lt;div class="mermaid">graph TD
A["量子计算机惊人的计算能力"] --> B["Shor算法 (Shor's Algorithm)"]
A --> C["Grover算法 (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>包括比特币和以太坊（Ethereum）在内的许多区块链，都采用了**椭圆曲线数字签名算法（ECDSA：Elliptic Curve Digital Signature Algorithm）**作为其数字签名算法。具体而言，比特币使用的是参数名为 &lt;code>secp256k1&lt;/code> 的椭圆曲线。&lt;/p>
&lt;p>椭圆曲线密码学的安全性依赖于**椭圆曲线离散对数问题（ECDLP：Elliptic Curve Discrete Logarithm Problem）**的计算困难性。
椭圆曲线由以下Weierstrass标准形式的方程定义：&lt;/p>
$$
y^2 \equiv x^3 + ax + b \pmod{p}
$$
&lt;p>在比特币的 &lt;code>secp256k1&lt;/code> 中，$a = 0, b = 7$，且 $p$ 是一个极大的素数。
设该曲线上的一基点（参考点）为 $G$，随机选择的256位巨大整数（私钥）为 $k$。此时，公钥 $K$ 可以通过对基点进行 $k$ 次加法（标量乘法）求得。&lt;/p>
$$
K = k \times G = \underbrace{G + G + \dots + G}_{k \text{ 次}}
$$
&lt;p>使用经典计算机，从公开的公钥 $K$ 和基点 $G$ 反推私钥 $k$（求解离散对数），即使使用Pollard&amp;rsquo;s rho算法等最佳经典算法，也需要 $\mathcal{O}(\sqrt{p})$ 的指数级计算时间。对于256位的密钥，大约需要进行 $2^{128}$ 次运算，这即使让目前的超级计算机运行几十亿年也无法破解。&lt;/p>
&lt;h3 id="22-shor算法shors-algorithm导致的崩溃">2.2. Shor算法（Shor&amp;rsquo;s Algorithm）导致的崩溃
&lt;/h3>&lt;p>然而，彼得·肖尔（Peter Shor）在1994年提出的&lt;strong>Shor算法&lt;/strong>彻底打破了这一前提。Shor算法最初是为了在多项式时间内解决整数分解问题（RSA密码的基础）而提出的，但它同样适用于离散对数问题和椭圆曲线离散对数问题。&lt;/p>
&lt;p>Shor算法的核心在于利用**量子傅里叶变换（QFT：Quantum Fourier Transform）**来快速找到函数的“周期（Period）”。&lt;/p>
$$
\text{经典计算的复杂度} = \mathcal{O}(2^{n/2}) \quad (n\text{为位长})
$$
$$
\text{量子算法的复杂度} = \mathcal{O}(n^3)
$$
&lt;p>这样，Shor算法将指数级的时间急剧缩短到了&lt;strong>多项式时间（Polynomial Time）&lt;/strong>。一旦拥有足够多逻辑量子比特的量子计算机问世，攻击者就能在几分钟甚至几秒钟内，从网络上公开的公钥 $K$ 中推导出私钥 $k$。这将使攻击者能够轻易获取他人钱包的私钥，从而完全控制其资金。&lt;/p>
&lt;h4 id="221-shor算法破解ecdlp的分步解析">2.2.1 Shor算法破解ECDLP的分步解析
&lt;/h4>&lt;p>让我们逐步了解量子计算机是如何解决椭圆曲线离散对数问题（ECDLP）的。&lt;/p>
&lt;p>问题设定：在 $K = k \times G$ 中，$G$ 和 $K$ 已知，求未知的整数 $k$（私钥）。设椭圆曲线的阶为 $N$。&lt;/p>
&lt;p>&lt;strong>Step 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>Step 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>Step 3: 测量第三个寄存器&lt;/strong>
当测量第三个寄存器时，它会坍缩到椭圆曲线上的某个点 $R$。此时，第一和第二个寄存器会坍缩到满足 $x + y \cdot k \equiv c \pmod{N}$（$c$ 为常数）的 $(x, y)$ 组合的叠加态。
&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>Step 4: 应用量子傅里叶变换（QFT）&lt;/strong>
这个状态具有与周期 $k$ 相关的周期性。通过对其应用逆量子傅里叶变换（Inverse QFT），可以引起相位干涉，将周期信息转换为振幅。&lt;/p>
&lt;p>&lt;strong>Step 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-grover算法grovers-algorithm及对哈希函数的影响">2.3. Grover算法（Grover&amp;rsquo;s Algorithm）及对哈希函数的影响
&lt;/h3>&lt;p>另一个威胁是洛夫·格罗弗（Lov Grover）在1996年提出的&lt;strong>Grover算法&lt;/strong>。这会对哈希函数（例如：SHA-256）产生重大影响。&lt;/p>
&lt;p>在区块链中，哈希函数被用于保证数据的完整性、生成地址，以及作为比特币&lt;strong>PoW（工作量证明）挖矿&lt;/strong>的基础。哈希函数的反向计算（原像计算）可以被视为一个“非结构化数据库搜索问题”，即寻找一个输入值 $x$，使得 $H(x)$ 等于某个特定的输出值 $y$。&lt;/p>
&lt;p>在经典计算机中，要从 $N$ 个可能性中找到正确答案，平均需要 $\frac{N}{2}$ 次尝试，最坏情况下需要 $N$ 次尝试。即计算复杂度为 $\mathcal{O}(N)$。
然而，Grover算法使用了一种称为“振幅放大（Amplitude Amplification）”的量子技术。通过迭代放大处于叠加态的所有可能性中正确答案状态的概率振幅，将搜索时间缩短到其平方根。&lt;/p>
$$
\text{Grover算法的计算复杂度} = \mathcal{O}(\sqrt{N})
$$
&lt;p>对于SHA-256而言，$N = 2^{256}$，因此经典的穷举搜索大约需要 $2^{256}$ 次尝试。但是，如果使用Grover算法，则只需要 $\sqrt{2^{256}} = 2^{128}$ 次尝试。这意味着，256位的哈希函数在面对量子计算机时，其&lt;strong>安全强度实质上减半至128位&lt;/strong>。&lt;/p>
&lt;h4 id="231-sha-256-能否幸存哈希中的量子霸权">2.3.1. SHA-256 能否幸存？（哈希中的量子霸权）
&lt;/h4>&lt;p>尽管安全性减半，但“128位的安全性”依然极其坚固。即使从当前的技术水平来看，$2^{128}$ 次运算也是一个天文数字，需要耗费宇宙寿命级别的时间。
因此，业界普遍认为**“SHA-256 在面对量子计算机时依然能够保持实用的安全性”**。如果未来需要提高安全余量，只需简单地将哈希的输出长度加倍（例如从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;/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{比特币地址} = \text{Base58Check}(\text{RIPEMD160}(\text{SHA256}(\text{公钥})))
$$
&lt;p>如前所述，哈希函数对量子攻击（Grover算法）具有抗性，因此即使是量子计算机，也无法从作为哈希值的“地址”反推出原始的“公钥”。
也就是说，对于**“未使用的地址（从未进行过资金发送的地址）”**，公钥完全没有暴露在区块链上，只记录了哈希值。因此，由于不知道公钥，Shor算法就没有执行的目标，也就无法计算出私钥。这种状态下的钱包可以说是量子安全的（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 "用户 (Alice)"
participant Mempool as "Mempool (未确认交易池)"
participant QuantumAttacker as "量子攻击者"
participant Miner as "矿工 (生成区块)"
User->>Mempool: 发送交易 (包含公钥 + 签名)
Mempool-->>QuantumAttacker: 拦截网络上的公钥
note right of QuantumAttacker: 在几分钟内运行Shor算法&lt;br/>(从公钥计算出私钥)
QuantumAttacker->>QuantumAttacker: 使用Alice的私钥生成新签名
QuantumAttacker->>Mempool: 以更高的矿工费广播欺诈转账
Miner->>Miner: 优先将高费用(Gas)的欺诈交易打包进区块
Miner-->>User: 记录到区块链 (Alice损失资金)&lt;/div>
&lt;p>一旦公钥被发送到Mempool（未确认交易的等待区），该数据就会被全球的节点共享。如果攻击者拥有超高速的量子计算机，就可以通过以下过程盗取资金：&lt;/p>
&lt;ol>
&lt;li>从Mempool中拦截合法用户（Alice）的交易，并&lt;strong>提取公钥&lt;/strong>。&lt;/li>
&lt;li>运行Shor算法，在**几分钟内（区块确认之前）**从公钥计算出私钥。&lt;/li>
&lt;li>使用获取的私钥，&lt;strong>创建一笔伪造的交易&lt;/strong>，将Alice的资金发送到攻击者的地址。&lt;/li>
&lt;li>为这笔伪造的交易设置比Alice原交易&lt;strong>高得多的矿工费（Fee）&lt;/strong>，并发送到网络中。&lt;/li>
&lt;/ol>
&lt;p>矿工受经济利益驱使，会优先将手续费高的交易打包进区块。结果就是，攻击者的欺诈转账被率先确认（Confirm），而Alice的合法转账则因“余额不足（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>此外，包括中本聪早期挖矿奖励（约100万枚以上的BTC）在内的，在2009年至2010年间主流的**P2PK（Pay-to-Public-Key）**格式中，公钥本身并没有经过哈希处理，而是直接作为地址记录在区块链上。这些大量休眠的比特币将成为量子计算机最容易攻击的目标，一旦被集中盗取并在市场上抛售，可能会引发价格的暴跌。&lt;/p>
&lt;hr>
&lt;h2 id="4-向抗量子计算密码学pqc-post-quantum-cryptography的过渡方案">4. 向抗量子计算密码学（PQC: Post-Quantum Cryptography）的过渡方案
&lt;/h2>&lt;p>为了避免这种“Q-Day（量子计算机破解密码之日）”的灾难，密码学界和区块链社区正在计划向**抗量子计算密码学（PQC）**过渡，这种密码学即使使用量子算法也很难破解。
美国国家标准与技术研究院（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签名（Lamport Signatures）&lt;/strong>、其扩展版WOTS（Winternitz One-Time Signature），以及NIST标准化候选算法&lt;strong>SPHINCS+&lt;/strong>（现在称为FIPS 205，即SLH-DSA）。&lt;/p>
&lt;h4 id="411-lamport签名的数学细节一次性签名">4.1.1. Lamport签名的数学细节（一次性签名）
&lt;/h4>&lt;p>让我们进一步从数学上详细了解Lamport签名的机制。
设哈希函数为 $H: \{0, 1\}^* \to \{0, 1\}^{256}$。&lt;/p>
&lt;p>&lt;strong>【密钥生成】&lt;/strong>
Alice（发送方）使用真随机数生成器（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$ 进行签名，Alice首先计算其哈希值。
&lt;/p>
$$
h = H(M) \in \{0, 1\}^{256}
$$
&lt;p>
设哈希值 $h$ 的第 $i$ 位为 $h_i \in \{0, 1\}$。
Alice的签名 $\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$ 进行逆向计算，就不可能伪造签名。但是，由于一旦签名，一半的私钥就会暴露在网络上，如果使用同一个密钥对为另一条消息签名，暴露的私钥组件就会增加，从而给攻击者留下伪造的余地。因此产生了“只能使用一次（One-Time）”的强限制。
为了使其能够投入实际应用，研究人员开发了使用默克尔树（Merkle Tree）将大量一次性密钥捆绑到一个根公钥上的&lt;strong>XMSS&lt;/strong>技术，以及无状态的**SPHINCS+**等技术，但它们的缺点是签名大小动辄达到几十KB。&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>格密码学（Lattice-Based Cryptography）&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{e}$ 的存在，从中反推私钥 $\mathbf{s}$ 会变得极其困难。如果没有噪声，仅用高斯消元法就能解开；但加入了噪声之后，所有维度上的搜索空间将呈爆炸性增长，从而为对抗经典和量子计算机提供了坚固的安全性。
在区块链等实际使用的算法（如Dilithium等）中，会将此问题扩展到多项式环上（即&lt;strong>Ring-LWE&lt;/strong>或&lt;strong>Module-LWE&lt;/strong>），以减小密钥大小并提高计算速度。&lt;/p>
&lt;ul>
&lt;li>&lt;strong>优点&lt;/strong>：与基于哈希的签名相比，其公钥和签名大小相对较小（几KB左右），而且签名生成和验证的计算速度非常快（等于或快于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+等）已经存在，但这并不意味着我们明天就可以直接将其引入到比特币或以太坊中。分布式系统特有的许多沉重课题仍然存在。&lt;/p>
&lt;h3 id="51-签名大小膨胀与可扩展性的崩溃">5.1. 签名大小膨胀与可扩展性的崩溃
&lt;/h3>&lt;p>引入PQC面临的最大障碍是数据量的大幅膨胀。
目前的ECDSA签名大小约为70字节，而格密码学Dilithium（ML-DSA）的签名大小约为2,420到4,595字节（取决于安全级别），公钥大小也超过1,300字节。基于哈希的SPHINCS+的单个签名大小更是高达几万字节。&lt;/p>
&lt;p>如果比特币在不改变现有区块大小上限（包含SegWit在内约4MB的权重）的情况下引入PQC，那么一个区块能容纳的交易数量将急剧下降。网络的吞吐量（TPS：Transactions Per Second）将遭到毁灭性打击，转账拥堵将成为常态。
为了解决这个问题，需要大幅提高区块大小，但这会增加全节点的存储和网络带宽要求，让个人运行节点变得更加困难，从而陷入导致&lt;strong>网络中心化&lt;/strong>的困境。&lt;/p>
&lt;div class="mermaid">pie title "区块链中签名数据大小比较 (概念图)"
"ECDSA (约70 Bytes)" : 2
"Dilithium ML-DSA (约2,500 Bytes)" : 58
"SPHINCS+ (约17,000 Bytes)" : 40&lt;/div>
&lt;p>&lt;em>(※ 引入PQC带来的交易数据膨胀，将成为限制可扩展性的致命瓶颈)&lt;/em>&lt;/p>
&lt;h3 id="52-对以太坊虚拟机evm的影响及预编译合约">5.2. 对以太坊虚拟机（EVM）的影响及预编译合约
&lt;/h3>&lt;p>在像以太坊这样图灵完备的智能合约平台中，引入PQC需要对EVM（以太坊虚拟机）进行底层的升级。
在当前的EVM中，为了验证ECDSA签名，准备了一个名为 &lt;code>ecrecover&lt;/code>（地址：&lt;code>0x01&lt;/code>）的预编译合约（Precompiled Contract），它经过了优化，能以非常低的Gas费用（3000 Gas）执行签名验证。&lt;/p>
&lt;p>然而，Dilithium或Falcon等新格密码算法的验证处理涉及复杂的多项式和矩阵运算，如果仅使用现有的EVM操作码（Opcode）来实现，一次签名验证可能就会消耗数百万甚至数千万Gas。这足以在单笔交易中就耗尽目前的区块Gas限制（约3000万Gas）。&lt;/p>
&lt;p>为了避免这种情况，必须通过网络硬分叉，将用于验证PQC的新预编译合约（例如：将 &lt;code>0x10&lt;/code> 分配给 DilithiumVerify）直接内置到EVM中。这需要各个以太坊客户端（如Geth、Nethermind、Erigon等）的核心开发者协同合作，在C++、Go、Rust等语言层面上优化实现格密码学验证逻辑，并进行安全审计，这是一个极其漫长的过程。&lt;/p>
&lt;h3 id="53-硬分叉达成共识的困难性">5.3. 硬分叉达成共识的困难性
&lt;/h3>&lt;p>要更改底层的签名算法，就必须进行**硬分叉（Hard Fork）**以更新整个网络的协议。然而，在一个像比特币这样极度重视“不改变规则、保持去中心化”的社区中，达成共识的过程在政治层面上是极其艰难的。关于过渡到PQC的BIP（比特币改进提案）从提出到最终实现，可能需要长达数年的讨论和测试。&lt;/p>
&lt;hr>
&lt;h2 id="6-q-day何时到来-过渡路线图">6. “Q-Day”何时到来？ 过渡路线图
&lt;/h2>&lt;p>“量子计算机完全破解256位椭圆曲线密码学的日子（Q-Day）”究竟何时到来？
虽然研究人员之间存在分歧，但许多专家预测，拥有数千至数万个稳定的逻辑量子比特（具备容错和错误纠正能力的量子比特）的大规模量子计算机，将会在**“2030年代中期到2040年代”**出现。不过，如果硬件架构取得突破，或是发现了更高效的量子算法，这一时间表也有可能提前（2030年左右）。&lt;/p>
&lt;p>加密资产的生态系统应当在为时已晚之前采取以下路线图：&lt;/p>
&lt;h3 id="阶段1混合签名与账户抽象现在2028年左右">阶段1：混合签名与账户抽象（现在〜2028年左右）
&lt;/h3>&lt;p>当前的区块链领域，尤其是以太坊的核心开发团队（如Vitalik Buterin等），正在探讨将ECDSA和PQC（基于哈希的签名或格密码学）相结合的**“混合签名”**方案。这是一种在交易中同时附加现有的、安全的ECDSA签名和PQC签名的方法，即使其中一种被破解也能保持安全性。
此外，借助账户抽象（Account Abstraction, ERC-4337），开发者正在努力让智能合约钱包能够在无需等待协议层硬分叉的情况下，选择性地（Opt-in，仅限有意愿的用户）实现和支持PQC签名。&lt;/p>
&lt;h3 id="阶段2利用零知识证明zk-rollups2025年">阶段2：利用零知识证明（ZK-Rollups）（2025年〜）
&lt;/h3>&lt;p>作为解决PQC最大弱点——“签名数据膨胀”的王牌，业界寄希望于Layer 2技术的&lt;strong>ZK-Rollups（零知识证明）&lt;/strong>。
不是将庞大的PQC签名数据直接写入Layer 1（主链），而是在Layer 2上验证并汇总大量PQC交易。然后，使用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>当NIST的PQC标准化完全落地，行业标准库也已齐备并经过充分测试后，预计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>：一个早期的区块链项目，在协议层原生实现了一种名为XMSS（扩展默克尔签名方案）的基于哈希的PQC。&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>“后量子时代”的到来不再仅仅是科幻小说（SF）中的空想，它已经作为现实密码系统面临的具体技术挑战，逼近了我们的眼前。&lt;/p>
&lt;p>Shor算法和Grover算法这两把量子计算机的利剑，分别威胁着当前区块链根基的公钥密码学和哈希函数。特别是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迁移的讨论或硬分叉新闻（如Bitcoin的BIP、Ethereum的EIP等），确保在需要时能妥善完成钱包的迁移工作。&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>