1. 引言
當前密碼學正處于一次代際轉變之中,從special-purpose cryptography專用密碼學過渡到programmable cryptography可編程密碼學。
- 1)所謂“專用密碼學”,指的是那些只能執行單個操作且具有密碼學安全保證的協議。
- 公鑰加密和簽名方案就是專用密碼學的典型例子:如,一個簽名方案允許我向你證明我知道一個特定的加密密鑰。
- 更復雜的專用密碼學例子包括:
- 群簽名(見2001年論文Group Signatures),這是一種特殊的簽名方案,允許某人以匿名的方式代表一個群體進行簽名;
- range proofs區間證明(見比特幣網絡的Confidential Transactions - Investigation),允許在不泄露秘密數字本身的情況下,證明該數字位于某個區間內。
- 在這些專用密碼學案例中,密碼學家們為了實現某個特定的操作,設計了專用協議,有時甚至需要發明新的數學工具。
- 在過去 50 年中,專用密碼學已成為全球通信體系中不可或缺的一部分 —— 如,今天幾乎所有在 Web 上傳輸的數據都經過某種形式的加密協議(見HTTPS encryption on the web)。
- 2)“可編程密碼學”是用來描述第二代密碼學原語的術語,且這些原語正逐漸變得實用。編程密碼學的核心特征在于相比第一代密碼學具有更強的靈活性:編程密碼學允許在密碼協議內部或之上執行通用計算。以下是一些例子:
- 2.1)全同態加密(Fully Homomorphic Encryption, FHE)允許在他人的私密數據上執行任意程序,同時對數據本身和計算結果一無所知。
- 2.2)多方安全計算(Multi-Party Computation, MPC)允許在多個人的私密數據上執行任意程序,同時除了計算結果外,對數據一無所知。
- 2.3)zkSNARKs 允許我證明一段任意代碼在某些只有我知道的秘密輸入下被正確執行,且無需透露任何關于這些輸入的信息。
- 使用“專用”零知識證明,可以聲稱:“我有一個秘密 S S S,使得 M O D E X P ( S ) = 0 x a 91 a f 3 a c . . . \mathrm{MODEXP}(S) = 0xa91af3ac... MODEXP(S)=0xa91af3ac...”(其中 M O D E X P \mathrm{MODEXP} MODEXP 是模冪運算函數),并且我可以向你證明這一點,而不泄露 S S S。
- 使用“通用” zkSNARKs,不僅限于函數 M O D E X P \mathrm{MODEXP} MODEXP,所想要驗證的任何函數,都可以做到。
- 2.4)見證加密(Witness Encryption)允許使用程序來加密消息,而非傳統的私鑰。如,可以設置一個數學研究獎金,將一個比特幣錢包加密,條件是:“只有當你能提供黎曼猜想的證明時,這個錢包(內含 1000 BTC)才可解密。”
- 2.5)程序混淆(Obfuscation)允許“加密”一個程序,即對程序進行混淆,使他人可以對其輸入任意數據并得到正確輸出,但無法學到關于程序內部狀態或結構的任何信息。【關于程序混淆(Obfuscation)的理論極限,有一些技術細節。說“可以隱藏任何東西”并不完全準確。詳情可參看 Can We Obfuscate Programs?(CRYPTO 2001論文 On the (Im)possibility of Obfuscating Programs)。】
上圖為一張簡化版的“技術樹”,展示了部分密碼學原語。
- 加粗部分是可編程密碼學。
- 箭頭表示“歸約”關系 —— 換句話說,技術樹上層的原語更加先進,能夠泛化它們下方指向的節點。靈感源自 Complexity Zoo。
過去五年左右,可編程密碼學的首批實例開始在現實世界中的開發者手中變得可用—— 不同的可編程密碼學原語處于不同的發展階段:
- zkSNARK、MPC 和 FHE 已經進入(或接近)生產可用階段;
- 而見證加密(Witness Encryption)和程序混淆(Obfuscation)仍然屬于高度理論階段,目前的構造效率極低,不具備實際應用價值。。
在接下來的十年里,可編程密碼學的性能、易用性和功能將發生巨大飛躍。
從專用硬件到可編程通用硬件的轉變,是計算史上的一次重要飛躍 —— 就像從鬧鐘進化到 CPU。隨著密碼學領域的這些新進展,當前正處在信息層面的類似轉型的邊緣,而不再僅僅是物理硬件的變革。
從專用密碼學到可編程密碼學的轉變,會帶來怎樣的可能性?人們又將如何實現這一轉變?
2. 可編程密碼學用途?
如今人們談論密碼學時,通常會聯想到諸如隱私、安全性或完整性這樣的詞匯。專用密碼學歷來是一種保護現有系統免受惡意攻擊的工具。
相比之下,由于具備高度靈活性,通用密碼學能夠構建具有前所未有強大新屬性的計算系統。這些屬性在以前根本無法實現。以下是三個例子:
- 1)通用協議(The Universal Protocol)
- 2)幻覺服務器(Hallucinated Servers)
- 3)加密自動機(Cryptomata)
2.1 通用協議(The Universal Protocol)
想象一下,有一個統一的通用協議來管理你的社交數據、數字身份、金融交互、職業履歷、醫療數據,以及與你相關的一切數字信息。這個通用協議定義了一種統一的數據格式,以及一套用于驗證任何數據的正確性和來源的程序。更重要的是,這個通用協議極其靈活 —— 事實上,它具備圖靈完備性。任何在通用協議數據上運行的可計算函數,其輸出也將符合該協議,并且保持密碼學級別的完整性。
互聯網上的每一個網站都將以與通用協議兼容的方式處理和輸出數據。此外,任何網站或機器都能夠驗證、理解和消費符合該協議的數據。【通用協議(Universal Protocol)這個概念,與語義網(Semantic Web)等項目有相似之處(并且部分受其啟發)。更廣義來說,可編程密碼學解鎖了許多互聯網早期愿景中的架構模型。】
可以將不同來源的通用協議數據包組合在一起,使用任何可計算函數對它們進行變換,可以部分混淆它們,交給其他人用他們的數據進一步組合,或者任意操作它們 —— 最終得到的輸出仍然可以被其他了解通用協議的人驗證和解釋。
這聽起來像是空想,但借助可編程密碼學,這在理論上已經觸手可及 —— 甚至不需要現有公司和服務提供商更換標準。在過去兩年里,已經利用可編程密碼學開發出了“通用加密適配器(Universal Cryptographic Adapters)”——或許更準確的說法是將這個工具描述為 “通用加密適配器(Universal Cryptographic Adapter)” 或 “元協議(Meta-Protocol)” ,而不是“通用協議”。
在實際操作中,可能會出現許多不同的協議和子協議 —— 比如,各國政府可能會采用不同方式簽發數字身份憑證。核心思想是:
- 通過可編程密碼學作為適配器,現在可以實現這些協議之間的組合與轉換。
* 如:可以利用適配器將美國國稅局(IRS)簽名的數據、銀行簽名的數據,以及以太坊區塊鏈上的狀態證明,組合成一個單獨的金融憑證,這個憑證可以被任意第三方按照他們需要的格式驗證和解讀。
上圖源自相關 XKCD 漫畫。
所開發的通用加密適配器將進一步使任何數據能夠與通用協議格式相互轉換。正如之前提到的,目前世界上大部分網絡流量已經通過類似 HTTPS 或 DKIM 這樣的專用密碼協議傳輸。所以,任何互聯網用戶都可以將自己的 HTTPS 流量通過通用適配器代理,轉換成任意目標平臺或數據消費者都能理解的格式。
通用加密適配器(基于 zkSNARKs 等技術)允許將來自任何源協議/格式的數據,轉換為任意目標格式的數據,并保證其完整性。
目前已有多個非常有前景的項目正在朝這個方向邁進,比如 TLSNotary 和 Proof Carrying Data 框架,這些項目距離生產環境已經不遠。這些項目大多建立在 zkSNARKs 之上,不過要實現更廣泛、更通用的數據轉換,還需要更高級的技術工具,如 遞歸 ZK 協議 和 多方安全計算(MPC)。
當然,要實現大規模通用協議的完整愿景,仍然需要大量的工程和基礎設施建設。不過,類似的技術變革歷史上也曾發生過——HTTPS;如果這種模式能夠被廣泛認識和接受,人們完全可以設想一種 HTTPS 的后繼協議(ZTTPS?) 被廣泛采用,它將針對這種通用組合性進行優化,使之更簡單、更易用。
通用協議的示例應用有:
- 跨平臺遷移社交數據 —— 可以無縫轉移點贊、好友、關注者、歷史記錄和聲譽,在 Facebook、Twitter、Reddit、Instagram 等平臺之間自由切換。
- 金融中介機構(如 Equifax、Transunion 或 Experian)被每個消費者設備上的加密協議取代;智能手機可以根據查詢,生成關于財務歷史或健康狀況的加密安全響應,同時保證底層數據依然私密并由用戶自行控制。
- 出現一種通用且可互操作的數字身份標準網絡,被所有網站、企業、政府機構、大學等接受。這些標準是**無許可(permissionless)**的 —— 它們依賴于密碼學,而不依賴于向某個特定機構注冊或查詢認證。
2.2 幻覺服務器(Hallucinated Servers)
假設你和幾個朋友、同事或同學想為你們的社區建立一個社交網站。這個社區希望使用這個網站來托管公共和私人討論,發布生活動態,管理不同興趣小組的成員資格,維護社區聲譽系統,等等。
按照今天的做法,大致會是這樣的流程:
- 需要找到像 Amazon Web Services 這樣的服務提供商,租用一臺云服務器。
- 接著需要編寫后端邏輯代碼,并將代碼部署到服務器上。
- 最后,所有人通過與服務器通信來使用這個應用。
- 你(以及 Amazon)會擁有對云服務器的特殊訪問權限,但你會承諾不會“過多窺探”服務器的狀態,也可能會設置一些限制,不鼓勵用戶上傳過于敏感的數據。
- 如果你想構建一個涉及更隱私或敏感數據的應用,特別是面向社交圈外的陌生人,你還需要建立大量的歷史、聲譽和信任。
然而在未來十年或二十年內,Web 應用的部署方式可能會發生巨大變化。許多應用后端可能會運行在用戶運行時“幻覺”出來的虛擬機內,并由密碼學保障其正確性。
這些數字服務不會有實體形態 —— 不會有一臺特定的物理機器保存應用狀態或執行代碼。取而代之,每個應用用戶會保存自己的私有狀態,同時持有全局應用狀態的一個加密“密碼碎片”。整個用戶群體將通過要求每個參與者在自己的碎片上執行經過密碼混淆的程序版本,共同模擬“幻覺服務器”的程序執行。
可編程密碼學原語:
- 可以確保用戶能夠讀取、寫入和修改該幻覺服務器上的狀態,
- 但只能根據預先商定的、編碼在服務器邏輯中的規則操作;
- 用戶無法讀取其他人的私有狀態,也無法讀取服務器持有的“全局私密狀態”。
可以構建無需直接接觸數據即可在用戶數據上運行的服務;實際上,甚至可以構建虛擬應用,維護和計算一種“無人知曉”的狀態!
這種結構顯然會對隱私、安全性以及用戶對數據的控制權產生深遠影響。但其意義遠不止于隱私和安全。當今人們的數字交互受限于少數幾家中心化服務提供商設計的、可行的商業模式和護城河中的狹窄、預定義操作集。在未來,可以根據自己的需求,與其他有興趣的用戶“共同幻覺”出所需的應用后端,進行點對點或多方交互。
這些幻覺服務器網絡可能會構成互聯網的新一代密碼學支撐結構;在這樣的支撐結構之上,能夠快速孵化新的數字服務 —— 這些服務在今天需要單一服務提供商積累多年品牌資本、用戶鎖定、商業模式驗證以及信任積累才能實現。
上圖為:“受信第三方”(Trusted Third Party)模型。引自 Nick Szabo 1997 年的文章,《上帝協議》(The God Protocols)。**
上圖為:與之對比的是同一篇文章中的“數學上值得信任的協議”(Mathematically Trustworthy Protocol)模型。**
這個概念比“通用協議/通用適配器”的想法要更進一步一些,但也僅僅相差幾年而已。基于通用多方計算(MPC)技術和全同態加密(FHE) 的計算網絡的早期原型——如https://github.com/phantomzone-org/phantom-zone(Rust) 開發已經在進行中。多方全同態加密(multi-party FHE) 是構建這些網絡的有希望的基礎技術候選;進一步來說,像程序混淆(program obfuscation)這樣的技術可能會降低這些網絡的通信復雜度和活性需求(liveness requirements)。
幻覺服務器的示例應用有:
- 個性化加密代理始終在為你搜索,無需你的數據離開本地設備,為你推薦產品、電影、工作,甚至是約會對象。
- 即時為你所在的社區搭建一個新的“虛擬社交平臺”,可以自動接入你在其他社交平臺上的所有數據,不需要你親自運行服務器,也無需依賴任何中心化中介。
- 自動接收有關疾病或健康風險的通知,無需向任何人共享你的醫療數據。
2.3 加密自動機(Cryptomata)
可編程密碼學中最強大的分支 —— 如 程序混淆、量子密碼學——2020年論文One-shot Signatures and Applications to Hybrid Quantum/Classical Authentication中的高級原語,以及未來區塊鏈技術的后代 —— 可能能構建“加密自動機”(cryptomata)。
加密自動機(Cryptomata,縮寫自 cryptographic automata)是:
- 自治的、自執行的程序,
- 具備完美的正確性和隱私保障。
- 沒有人能夠阻止或篡改加密自動機的執行;
- 同時,也沒有人能夠“撬開”加密自動機,讀取其內部狀態或內存。
- 這些保障不僅僅由軟件強制執行,甚至也不依賴于硬件——它們由數學本身強制執行。
加密自動機永遠不會宕機,執行過程具備可加密驗證的正確性,從不泄露數據,并且暴露出無許可(permissionless)的 API,任何人都可以調用。
這種技術的極限形態具備非凡的力量,同時也至少帶有一絲令人不安的氣息。如:
- 將通用人工智能(AGI)運行在加密自動機內部,會帶來一個真正自我主權的“頭腦”,它在內部進行完全私密的思考,與外界完全隔絕,且無法被關閉 —— 實質上,它就是一個由純信息構成的獨立智能體。
- 在加密自動機內部運行一個詳細的物理模擬,將擁有一個自主數字現實 —— 一個獨立于我們現實世界存在的數字世界,甚至其中可能存在與我們物理世界一樣真實的數字生命體。【自主運行的數字現實(Autonomous Digital Realities)這個概念,正在“自主世界(Autonomous Worlds)”社區被開發者和創作者們積極探索。目前,很多人正在構建鏈上游戲,作為自主世界的早期探索。詳情可參看0xPARC團隊2022年8月3日博客 Autonomous Worlds (Part 1)。】
更現實一些地說,在未來幾十年內,人類社會關鍵的數字公共基礎設施可能將會運行在一個加密自動機網絡中:
- 包括身份注冊系統、憑證系統、生物特征或基因數據倉庫、銀行、市場、虛擬世界等。
如:
- 我可以將自己的學歷證明和經過驗證的職業履歷上傳到一個求職用的加密自動機中,該自動機會安全地存儲這些信息,然后在有雇主上傳匹配職位時通知我。
- 另一個加密自動機則可能安全地存儲一個由自愿者分享的巨大基因數據倉庫,并持續運行各種隱私保護但有效的統計相關性分析或模式挖掘算法,供研究人員使用。
如上圖所示:
- 一個由加密自動機構成的網絡,支撐著文明的核心數字基礎設施。
- 每個加密自動機都是完全安全、自主執行、對內部內容隱私保護,并且與其他所有加密自動機高度互操作的。
- 這些系統的具體設計,將在未來決定它們是會成為人類文明的噩夢還是帶來前所未有的價值。
當前;
- 對于熟悉區塊鏈技術的人來說,可以將加密自動機理解為一個運行在智能合約中的混淆程序 —— 本質上是一個擁有 “私有狀態” 的智能合約。
- 在區塊鏈之外,加密自動機則可以通過程序混淆、zkSNARK、多方計算(MPC),甚至未來的量子密碼學等技術的組合實現。
然而,目前仍存在許多懸而未決的研究難題,甚至連一個理論上令人滿意的加密自動機構造都尚未完全達成 —— 比如,當前最大的理論限制之一是:
- 基于現有技術構建的加密自動機無法防止自身被無限復制和分叉,這意味著某些類型的信息隱藏無法實現。
加密自動機的示例應用有:
- 運行人類文明核心數字基礎設施的數字服務 —— 如身份注冊系統、憑證系統、敏感生物數據倉庫、市場等 —— 這些服務從構建之初就是完全自主、安全且高度互操作的。
- 由代碼構成的自執行、自主主權智能體,具備持有和保護自身秘密的能力。
- 具有“持續性存在”的模擬數字宇宙 —— 即使無人觀察,它們仍會持續運行,并具備由數學與密碼學保障的“物理規律正確性”。
3. 為什么要把這些技術歸在一起?
想象一下,如果回到 50 年前,單獨去審視現代計算硬件棧中的各個組件,而不是把它們視為一個整體的“計算系統”。
- 非易失性存儲器(Non-Volatile Memory,NVM):
如果只從孤立角度看,最“顯而易見”的應用是便攜式存儲 —— 軟盤、U 盤。
如果從狹隘的應用視角看 NVM,大家可能會專注于“如何做出更小更便攜的 U 盤”。 - 光纖通信(Fiber-optic cables):
光纖的直接用途看似是讓電話線和電視帶寬更大 —— 能讓更多人接收到更多電視節目。 - 液晶顯示屏(LCD):
單獨來看,LCD 技術可以實現“更薄的顯示器”,讓顯示設備從厚重的 CRT 顯示器轉向平板屏幕。
單獨來看,這些技術確實各自有用,但用途有限。
然而,一旦將它們放入更宏觀的“計算機發展”語境中,它們的作用就完全不同了:
- 非易失性存儲器可以構建硬盤 —— 關機后依然保留數據的存儲設備,這成為個人計算機的基礎特性。
- 光纖通信支撐著現代互聯網 —— 如今超過 90% 的互聯網流量都通過海底光纜傳輸。
- 液晶顯示屏成為個人電腦顯示器的基礎技術,進而誕生了現代顯示器、圖形界面(GUI),幾乎所有現代計算交互界面都依賴于它。
有了歷史回顧視角,可以清楚地看到:真正有趣的事情,發生在這些技術作為“整體計算體系的組成部分”時。
這些技術產生巨大影響的根本原因,是它們成為了更大系統中的基礎部件,這也是為什么孤立地審視這些技術是片面的。
同樣的道理,也適用于加密計算(Cryptographic Computing)。
如果只在孤立語境下去問“zkSNARKs 能做什么?”“同態加密(FHE)能做什么?”,而不把它們放進“可編程密碼學(Programmable Cryptography)”這一更廣闊的背景下去思考,
這就好比問:“LCD 顯示屏能做什么?”而不去聯想到更廣泛的計算機或互聯網的發展。
如下圖所示為一個集成式加密計算系統(作者Justin Glibert):
在過去幾年里,人們已經開始嘗試基于可編程密碼學技術開發應用。
然而,大部分應用通常只使用了“可編程密碼學”中的某一個分支。比如,目前有產品和公司圍繞以下方向展開:
- zkSNARKs 被用來讓區塊鏈變得更快(通過類似 rollups 和 validiums 的系統)。
- 全同態加密(FHE) 讓 AI 公司可以在加密數據之上訓練和推理模型,實現數據隱私保護。
- 多方計算(MPC) 讓市場中的競標者(如,Danish Sugar Beet Auction 丹麥甜菜拍賣 中的農民)能夠對賣方隱藏自己的出價,或者讓醫院之間安全地共享敏感數據以用于研究。
這些應用無疑非常重要。但它們在很多方面也顯得比較局限:在許多案例中,這些加密技術“僅僅”是被用來為現有服務增加某些增強功能。
- zkSNARK 被用來加速區塊鏈,
- FHE、MPC 和 ORAM 則被用來為已有的數字系統增加隱私或額外安全性。
這是從單一加密原語(primitive)出發反推應用的自然結果。
相較之下,上一部分描述的三個概念(通用協議、幻覺服務器、加密自動機)則指向一個計算與通信范式都發生根本性變化的未來。
尤其值得注意的是:
- 這些系統中的每一個都需要多種(甚至全部)可編程密碼學原語協同工作,才能真正實現。
如:
- 要實現幻覺服務器(Hallucinated Servers)的愿景,需要可驗證的加密計算 —— 也就是FHE 和 MPC 之上的 SNARK。
- 參與加密協商的輸入會來自通用協議(Universal Protocol),它依賴于零知識證明(ZKPs)。
為了讓這些操作具備良好的狀態性與高性能,還可能需要引入 ORAM 或類似技術(如ObliVM: A Programming Framework for Secure Computation論文)。
以上例子清楚說明了:
- 不同的可編程密碼學原語提供不同能力。
- SNARKs 可以執行可驗證正確的計算;
- FHE 和 MPC 可以在保密數據之上進行計算;
- 程序混淆(Obfuscation)和其他更先進的可編程加密原語,能夠降低網絡對實時性的要求。
必須深入理解這些原語的功能,以及它們如何彼此組合,才能理解究竟可以構建哪些系統。
前面提到的那些“未來系統”,只是可編程密碼學潛力的冰山一角。
需要有體系的努力來深入理解各種可編程密碼學工具協同帶來的綜合影響,因為最具顛覆性的應用,一定會需要多種(甚至全部)原語的深度集成。
技術人員、工程師和研究人員都將從將這些不同“分支”的密碼學技術視為統一“全棧故事”的組成部分中獲益良多。
4. 總結
自現代密碼學發明以來,已經過去近 50 年。
過去這段時間里,從一個數字世界中沒有任何加密數據的時代,走到了一個幾乎所有互聯網數據都經過加密的時代:
- 所有主流網站都采用 HTTPS 加密;
- 幾乎所有電子郵件都經過 DKIM 簽名(2024 年 2 月起,谷歌已強制要求);
- 越來越多的消息和云端數據實現了端到端加密(蘋果相關說明);
- 超過 兩萬億美元 的經濟價值被鎖定在加密貨幣中;
- 長期困擾計算機科學界的 密鑰分發問題 也終于正在大規模得到解決。
第一代密碼學技術,為人們構建了一個安全的通信系統,支撐起全球規模的信息檢索、消息傳遞、電子商務等。
接下來的 50 年,可編程密碼學可能會幫助完成從“加密數據”到“加密計算”的跨越:
- 人類最重要的數字程序 —— 而不僅僅是傳輸的數據 —— 也會默認采用密碼學保護。
這樣的轉變,將能夠構建一個更加豐富、有結構、更加民主的數字世界。
這個升級版的數字媒介,將帶來諸多益處:
- 讓用戶對自己的數據擁有更強隱私與掌控權;
- 讓所有數字服務之間實現深度互操作與無縫通信;
- 讓人們有能力創造全新的數字宇宙。【Josh Stark 對 密碼學(和區塊鏈) 的價值提出了一個有趣視角,他稱這種性質為 “硬度(Hardness)”。可參看其2022年4月13日博客Atoms, Institutions, Blockchains 和 2023年演講視頻 Atoms, Institutions, Blockchains ? Josh Stark ? Pre-Assembly 2023 來進一步了解該概念。】
在后續的文章中,將探討可編程密碼學的“技術樹”、它可能的進展方向,以及它與區塊鏈等其他技術之間的關系。
參考資料
[1] 0xPARC團隊2024年7月30日博客 Programmable Cryptography (Part 1)