概述#
量子電腦目前仍處於嬰兒期,就像萊特兄弟時代的飛機——承諾巨大,但要將承諾變為現實還需大量工作。本章在不涉及底層物理學的前提下,介紹量子運算的基本概念及其對軟體架構的潛在影響。正如高階程式語言消除了理解 CPU 和記憶體工作原理的需求,量子電腦未來也會有類似的抽象層出現。
單一量子位元(Qubit)#
量子電腦的基本計算單位是量子位元(qubit,quantum bit)。量子電腦可簡單定義為一個操作量子位元的處理器。本書出版時,最好的量子電腦包含數百個量子位元。
QPU 與 CPU 的互動#
QPU(量子處理單元)與傳統 CPU 的互動方式,類似於 GPU 與 CPU 的互動:CPU 將 QPU 視為一個服務,提供輸入並獲取輸出,兩者之間的通訊以傳統位元進行。QPU 內部如何處理輸入以產生輸出,超出 CPU 的關注範圍。
量子位元 vs 傳統位元#
傳統位元的值要麼是 0 要麼是 1,毫無模糊性,且具有非破壞性讀取特性。量子位元則在兩個特性上截然不同:
- 一個量子位元由三個數字描述:
- |α|^2:測量結果為 0 的機率
- |β|^2:測量結果為 1 的機率
- 相位(Phase):描述量子位元旋轉的角度(0 到 2π 弧度之間)
- 疊加態(Superposition):當量子位元對 0 和 1 都有非零機率時,稱其處於疊加態
- 破壞性測量:測量量子位元會返回 0 或 1(依指定機率),並摧毀當前值,替換為返回值
由此衍生兩個重要結果:
- |α|^2 + |β|^2 = 1:因為測量必定返回 0 或 1,兩個機率之和必為 1
- 無法複製量子位元:從量子位元 A 複製到 B 需要先讀取 A(會摧毀 A 的狀態),只能得到 0 或 1 的確定值,無法保留原始的機率和相位
量子位元的操作#
部分單量子位元操作類似於傳統位元操作,另一些則是量子位元特有的。大多數量子操作的特點是可逆的——給定操作結果,可以恢復輸入。唯一的例外是 READ 操作。
主要的量子操作包括:
- READ:輸入一個量子位元,根據振幅機率輸出 0 或 1,並使輸入量子位元的值崩塌
- NOT:翻轉疊加態的振幅——原來為 0 的機率變成為 1 的機率,反之亦然
- Z 操作:將相位增加 π(對 2π 取模)
- HAD(Hadamard)操作:創建等機率疊加態——0 和 1 的振幅相等
多個操作可以鏈接在一起產生更複雜的功能。主要的雙量子位元運算子是 CNOT(controlled NOT):第一個量子位元作為控制位元,若為 1 則對第二個量子位元執行 NOT,若為 0 則第二個量子位元不變。
糾纏(Entanglement)#
糾纏是量子運算的關鍵要素之一,在傳統運算中沒有對應概念,賦予量子運算一些非常奇特而奇妙的性質。
兩個量子位元若「糾纏」,則測量第二個量子位元時,其結果會匹配第一個量子位元的測量結果。糾纏可以在兩次測量之間的任何時間量和量子位元之間的任何物理距離上發生。
量子傳送(Quantum Teleportation)#
由於無法直接複製量子位元,若要將一個量子位元的狀態複製到另一個,必須使用間接方法,且必須接受原始量子位元狀態的摧毀。量子傳送就是這種狀態複製的機制——對原始和接收量子位元的物理關係或距離沒有限制,甚至可以跨越數百或數千公里。
量子傳送的四個步驟:
- 糾纏量子位元 A 和 B:A 和 B 可以在物理上分隔
- 準備「載荷」:將要傳送的狀態存入量子位元 ψ,在 A 的位置準備
- 傳播載荷:涉及透過傳統通道傳輸兩個傳統位元,並測量 A 和 ψ(摧毀兩者的狀態)
- 在 B 中重建 ψ 的狀態
量子傳送是量子通訊的核心要素。它依賴透過傳統通訊通道傳輸兩個位元,但因為 A 和 B 透過糾纏通訊而非實體通訊線路傳送,竊聽者只能截取傳統通道上的兩個位元,因此本質上是安全的。
美國國家標準技術研究所(NIST)正在考慮各種量子通訊協定,作為名為 HTTPQ 的傳輸協定的基礎,目標是在量子電腦能夠破解 HTTPS 之前完成採用。
量子運算與加密#
量子電腦極其擅長計算函數的反函數——特別是雜湊函數的反函數。密碼幾乎從不直接儲存,而是儲存其雜湊值,基於計算雜湊函數反函數在傳統電腦上極其困難的假設。量子電腦改變了這個計算。
Grover 演算法#
Grover 演算法是一個機率性演算法,可計算函數的反函數。對基於 256 位元的雜湊,它需要約 2^128 次迭代——相較於傳統演算法實現了二次加速(quantum 演算法時間大約是傳統演算法時間的平方根)。這使得大量先前被認為安全的密碼保護資料變得脆弱。
Shor 演算法#
現代安全加密演算法基於分解兩個大質數乘積的困難性。設 p 和 q 為兩個各大於 128 位元的不同質數:
- 已知 p 和 q 時,計算乘積 pq 相對容易
- 在傳統電腦上分解 pq 以恢復 p 和 q 屬於 NP-hard 問題
- Shor 演算法可以高效分解 pq,執行時間為 log(p 和 q 的位元數) 等級
這意味著一旦足夠強大的量子電腦出現,現行基於大質數乘積的加密系統將變得極度脆弱。這也是 NIST 積極推動後量子加密標準的原因。
其他演算法#
QRAM(量子隨機存取記憶體)#
QRAM 是實現和應用許多量子演算法的關鍵元素,尤其是需要高效存取大量資料的機器學習應用。目前尚無 QRAM 的實作,但多個研究團隊正在探索。
- QRAM 概念上類似傳統 RAM:輸入記憶體位置,返回該位置的內容
- 差異在於輸入可能是記憶體位置的疊加態,返回的是這些位置內容的疊加態
- 主要問題:所需的物理資源隨取回的位元數線性增長,對非常大的取回可能不切實際
矩陣求逆(Matrix Inversion)#
矩陣求逆是許多科學問題的基礎,例如機器學習需要反轉大型矩陣。HHL 演算法(Harrow, Hassidim, Lloyd)可以在量子電腦上求解線性矩陣方程 Ax = b,受以下約束:
- b 必須能快速存取(QRAM 要解決的問題)
- 矩陣 A 必須滿足特定條件(稀疏且 well-conditioned)
- 結果以疊加態呈現,需要機制有效地從疊加態中隔離實際值
潛在應用#
IBM 等公司正將量子運算聚焦於以下領域:
- 網路安全(目前最成熟——已有多個演算法被證明優於傳統演算法)
- 藥物開發
- 金融建模
- 更好的電池
- 更清潔的肥料
- 交通優化
- 天氣預報與氣候變遷
- 人工智慧與機器學習
除了網路安全之外,上述潛在應用大多仍停留在推測階段。儘管研究熱度極高,但尚未有公開的突破性成果。
對架構師的啟示#
量子運算對軟體架構的影響將是深遠的。架構師現在可以採取的行動:
- 關注突破性進展:如果你目前工作的系統涉及量子運算可能影響的領域,提前做好準備
- 隔離敏感部分:將可能受量子運算影響的系統部分隔離,以最小化未來的破壞
- 關注加密安全:特別是安全系統,追蹤該領域以了解當傳統加密演算法變得無用時該怎麼辦
- 積極想像未來:想像一個能夠即時傳輸資訊、不受物理距離限制的通訊網路能帶來什麼可能性
未來的演進方向包括:
- 量子程式語言的發展(目前處於萌芽狀態),預期將遵循傳統電腦從機器語言到高階語言的相同演進弧線
- 與量子電腦相關的新品質屬性、新架構模式、新架構視圖
- 量子電腦網路的樣貌,以及量子與傳統電腦的混合網路
你的準備不必全部是防禦性的。量子通訊網路的可能性——即時、不受距離限制的資訊傳輸——聽起來可能天方夜譚,但飛行機器在過去也曾如此。一如既往,我們滿懷期待地迎接未來。
本章小結#
量子電腦目前仍處於嬰兒期,大多數應用仍為推測,特別是需要大量資料的應用。然而,量子位元數量的增長正在快速推進,合理預期摩爾定律將適用於量子電腦。量子位元操作的鏈接式程式風格將可能經歷與傳統電腦機器語言相同的演進——從低階操作到高階語言抽象。對架構師而言,現在就應開始關注量子運算的發展,隔離系統中可能受影響的部分,並為量子時代的到來做好準備。