Vitalik關於以太坊可能的未來(六):The Splurge
原文標題:《Possible futures of the Ethereum protocol, part 6: The Splurge》
原文作者:@VitalikButerin
原文編譯:zhouzhou,BlockBeats
以下為原文內容(為便於閱讀理解,原內容有所整編):
有些事物很難歸入單一類別,在以太坊協議設計中,有許多「細節」對以太坊的成功非常重要。實際上,約一半的內容涉及不同類型的 EVM 改進,其余部分則由各種小衆主題構成,這就是「繁榮」的意義所在。
2023 年路线圖:繁榮
繁榮:關鍵目標
將 EVM 變為高性能和穩定的「最終狀態」
將账戶抽象引入協議,允許所有用戶享受更安全和便捷的账戶
優化交易費用經濟,提高可擴展性同時降低風險
探索先進的密碼學,使以太坊在長期內顯著改善
本章內容
EVM 改進
账戶抽象
EIP-1559 改進
VDF(可驗證延遲函數)
混淆和一次性籤名:密碼學的遠期未來
EVM 改進
解決了什么問題?
目前的 EVM 難以進行靜態分析,這使得創建高效實現、正式驗證代碼和進行進一步擴展變得困難。此外,EVM 的效率較低,難以實現許多形式的高級密碼學,除非通過預編譯顯式支持。
它是什么,如何運作?
當前 EVM 改進路线圖的第一步是 EVM 對象格式(EOF),計劃在下一個硬分叉中納入。EOF 是一系列 EIP,指定了一個新的 EVM 代碼版本,具有許多獨特的特徵,
最顯著的是:
·代碼(可執行,但無法從 EVM 中讀取)與數據(可讀取,但無法執行)之間的分離
·禁止動態跳轉,僅允許靜態跳轉
·EVM 代碼無法再觀察與燃料相關的信息
·添加了一種新的顯式子例程機制
EOF 代碼的結構
繁榮:EVM 改進(續)
舊式合約將繼續存在並可創建,盡管最終可能會逐步棄用舊式合約(甚至可能強制轉換為 EOF 代碼)。新式合約將受益於 EOF 帶來的效率提升——首先是通過子例程特性稍微縮小的字節碼,隨後則是 EOF 特定的新功能或減少的 gas 成本。
在引入 EOF 後,進一步的升級變得更加容易,目前發展最完善的是 EVM 模塊算術擴展(EVM-MAX) 。EVM-MAX 創建了一組專門針對模運算的新操作,並將其放置在一個無法通過其他操作碼訪問的新內存空間中,這使得使用諸如 Montgomery 乘法 等優化成為可能。
一個較新的想法是將 EVM-MAX 與單指令多數據(SIMD)特性結合,SIMD 作為以太坊的一個理念已經存在很長時間,最早由 Greg Colvin 的 EIP-616 提出。SIMD 可用於加速許多形式的密碼學,包括哈希函數、32 位 STARKs 和基於格的密碼學,EVM-MAX 和 SIMD 的結合使得這兩種性能導向的擴展成為自然的配對。
一個組合 EIP 的大致設計將以 EIP-6690 為起點,然後:
·允許 (i) 任何奇數或 (ii) 任何最高為 2768 的 2 的冪作為模數
·對於每個 EVM-MAX 操作碼(加法、減法、乘法),添加一個版本,該版本不再使用 3 個立即數 x、y、z,而是使用 7 個立即數:x_start、x_skip、y_start、y_skip、z_start、z_skip、count。 在 Python 代碼中,這些操作碼的作用類似於:
·for i in range(count):
mem[z_start + z_skip * count] = op(
mem[x_start + x_skip * count],
mem[y_start + y_skip * count]
)
實際實現中,這將以並行方式處理。
·可能添加 XOR、AND、OR、NOT 和 SHIFT(包括循環和非循環),至少對於 2 的冪模數。同時添加 ISZERO(將輸出推送到 EVM 主堆棧),這將足夠強大以實現橢圓曲线密碼學、小域密碼學(如 Poseidon、Circle STARKs)、傳統哈希函數(如 SHA256、KECCAK、BLAKE)和基於格的密碼學。其他 EVM 升級也可能實現,但迄今為止關注度較低。
現有研究鏈接
EOF: https://evmobjectformat.org/
EVM-MAX: https://eips.ethereum.org/EIPS/eip-6690
SIMD: https://eips.ethereum.org/EIPS/eip-616
剩下的工作及權衡
目前,EOF 計劃在下一個硬分叉中納入。盡管總是有可能在最後一刻移除它——之前的硬分叉中曾有功能被臨時移除,但這樣做將面臨很大挑战。移除 EOF 意味着未來對 EVM 的任何升級都需在沒有 EOF 的情況下進行,雖然可以做到,但可能更困難。
EVM 的主要權衡在於 L1 復雜性與基礎設施復雜性,EOF 是需要添加到 EVM 實現中的大量代碼,靜態代碼檢查也相對復雜。然而,作為交換,我們可以簡化高級語言、簡化 EVM 實現以及其他好處。可以說,優先考慮以太坊 L1 持續改進的路线圖應包括並建立在 EOF 之上。
需要做的一項重要工作是實現類似 EVM-MAX 加 SIMD 的功能,並對各種加密操作的 gas 消耗進行基准測試。
如何與路线圖的其他部分交互?
L1 調整其 EVM 使得 L2 也能更容易地進行相應調整,如果二者不進行同步調整,可能會造成不兼容,帶來不利影響。此外,EVM-MAX 和 SIMD 可以降低許多證明系統的 gas 成本,從而使 L2 更加高效。它還使得通過用可以執行相同任務的 EVM 代碼替代更多的預編譯變得更加容易,可能不會大幅影響效率。
账戶抽象
解決了什么問題?
目前,交易只能通過一種方式進行驗證:ECDSA 籤名。最初,账戶抽象旨在超越這一點,允許账戶的驗證邏輯為任意的 EVM 代碼。
這可以啓用一系列應用:
·切換到抗量子密碼學
·輪換舊密鑰(廣泛 被認為是推薦的安全實踐 )
·多重籤名錢包和 社交恢復錢包
·使用一個密鑰進行低價值操作,使用另一個密鑰(或一組密鑰)進行高價值操作
允許隱私協議在沒有中繼的情況下工作,顯著降低其復雜性,並消除一個關鍵的中央依賴點
自 2015 年账戶抽象提出以來,其目標也擴展到了包括大量「便利目標」,例如,某個沒有 ETH 但擁有一些 ERC20 的账戶能夠用 ERC20 支付 gas。 以下是這些目標的匯總圖表:
MPC(多方計算)是一種已有 40 年歷史的技術 ,用於將密鑰分成多個部分並存儲在多個設備上,利用密碼學技術生成籤名,而無需直接組合這些密鑰部分。
EIP-7702 是計劃在下一個硬分叉中引入的一項提案,EIP-7702 是對提供账戶抽象便利性以惠及所有用戶(包括 EOA 用戶)的日益認識的結果,旨在在短期內改善所有用戶的體驗,並避免分裂成兩個生態系統。
該工作始於 EIP-3074 ,並最終形成 EIP-7702。EIP-7702 將账戶抽象的「便利功能」提供給所有用戶,包括今天的 EOA(外部擁有账戶,即受 ECDSA 籤名控制的账戶)。
從圖表中可以看到,雖然一些挑战(尤其是「便利性」挑战)可以通過漸進技術如多方計算或 EIP-7702 解決,但最初提出账戶抽象提案的主要安全目標只能通過回溯並解決原始問題來實現:允許智能合約代碼控制交易驗證。迄今為止尚未實現的原因在於安全地實施,這一點是一項挑战。
它是什么,如何運作?
账戶抽象的核心是簡單的:允許智能合約發起交易,而不僅僅是 EOA。整個復雜性來自於以一種對維護去中心化網絡友好的方式實現這一點,並防範拒絕服務攻擊。
一個典型的關鍵挑战是多重失效問題:
如果有 1000 個账戶的驗證函數都依賴於某個單一值 S,並且當前值 S 使得內存池中的交易都是有效的,那么有一個單一交易翻轉 S 的值可能會使內存池中的所有其他交易失效。這使得攻擊者能夠以極低的成本向內存池發送垃圾交易,從而堵塞網絡節點的資源。
經過多年的努力,旨在擴展功能的同時限制拒絕服務(DoS)風險,最終得出了實現「理想账戶抽象」的解決方案:ERC-4337。
ERC-4337 的工作原理是將用戶操作的處理分為兩個階段:驗證和執行。所有驗證首先被處理,所有執行隨後被處理。在內存池中,只有當用戶操作的驗證階段只涉及其自身账戶並且不讀取環境變量時,才會被接受。這可以防止多重失效攻擊。此外,對驗證步驟也強制實施嚴格的 gas 限制。
ERC-4337 被設計為一種額外協議標准(ERC),因為在當時以太坊客戶端开發者專注於合並(Merge),沒有額外的精力來處理其他功能。這就是為什么 ERC-4337 使用了名為用戶操作的對象,而不是常規交易。然而,最近我們意識到需要將其中至少部分內容寫入協議中。
兩個關鍵原因如下:
1.EntryPoint 作為合約的固有低效性:每個捆綁約有 100,000 gas 的固定开銷,以及每個用戶操作額外的數千 gas。
2. 確保以太坊屬性的必要性:如包含列表所創建的包含保證需要轉移到账戶抽象用戶。
此外,ERC-4337 還擴展了兩個功能:
·支付代理(Paymasters):允許一個账戶代表另一個账戶支付費用的功能,這違反了驗證階段只能訪問發送者账戶本身的規則,因此引入了特殊處理以確保支付代理機制的安全性。
·聚合器(Aggregators):支持籤名聚合的功能,如 BLS 聚合或基於 SNARK 的聚合。這對於在 Rollup 上實現最高的數據效率是必要的。
現有研究鏈接
關於账戶抽象歷史的演講: https://www.youtube.com/watch?v=iLf8qpOmxQc
ERC-4337: https://eips.ethereum.org/EIPS/eip-4337
EIP-7702: https://eips.ethereum.org/EIPS/eip-7702
BLSWallet 代碼(使用聚合功能): https://github.com/getwax/bls-wallet
EIP-7562(寫入協議的账戶抽象): https://eips.ethereum.org/EIPS/eip-7562
EIP-7701(基於 EOF 的寫入協議账戶抽象): https://eips.ethereum.org/EIPS/eip-7701
剩下的工作及權衡
目前主要需要解決的是如何將账戶抽象完全引入協議,最近受到歡迎的寫入協議账戶抽象 EIP 是 EIP-7701 ,該提案在 EOF 之上實現账戶抽象。一個账戶可以擁有一個單獨的代碼部分用於驗證,如果账戶設置了該代碼部分,則該代碼將在來自該账戶的交易的驗證步驟中執行。
這種方法的迷人之處在於,它清晰地表明了本地账戶抽象的兩種等效視角:
1. 將 EIP-4337 作為協議的一部分
2. 一種新的 EOA 類型,其中籤名算法為 EVM 代碼執行
如果我們從對驗證期間可執行代碼復雜性設定嚴格界限开始——不允許訪問外部狀態,甚至在初期設定的 gas 限制也低到對量子抗性或隱私保護應用無效——那么這種方法的安全性就非常明確:只是將 ECDSA 驗證替換為需要相似時間的 EVM 代碼執行。
然而,隨着時間的推移,我們需要放寬這些界限,因為允許隱私保護應用在沒有中繼的情況下工作,以及量子抗性都是非常重要的。為此,我們需要找到更靈活地解決拒絕服務(DoS)風險的方法,而不要求驗證步驟必須極度簡約。
主要的權衡似乎是「快速寫入一種讓較少人滿意的方案」與「等待更長時間,可能獲得更理想的解決方案」,理想的方法可能是某種混合方法。一種混合方法是更快地寫入一些用例,並留出更多時間來探索其他用例。另一種方法是在 L2 上首先部署更雄心勃勃的账戶抽象版本。然而,這面臨的挑战是,L2 團隊需要對採用提案的工作充滿信心,才能愿意進行實施,尤其是要確保 L1 和/或其他 L2 未來能夠採用兼容的方案。
我們還需要明確考慮的另一個應用是 密鑰存儲账戶 ,這些账戶在 L1 或專用 L2 上存儲账戶相關狀態,但可以在 L1 和任何兼容的 L2 上使用。有效地做到這一點可能要求 L2 支持諸如 L1SLOAD 或 REMOTESTATICCALL 的操作碼,但這也需要 L2 上的账戶抽象實現支持這些操作。
它如何與路线圖的其他部分互動?
包含列表需要支持账戶抽象交易,在實踐中,包含列表的需求與去中心化內存池的需求實際上非常相似,盡管對於包含列表來說靈活性稍大。此外,账戶抽象實現應該盡可能在 L1 和 L2 之間實現協調。如果將來我們期望大多數用戶使用密鑰存儲 Rollup,账戶抽象設計應以此為基礎。
EIP-1559 改進
它解決了什么問題?
EIP-1559 於 2021 年在以太坊上激活,顯著改善了平均區塊包含時間。
等待時間
然而,當前 EIP-1559 的實施在多個方面並不完美:
1. 公式略有缺陷:它並不是以 50% 的區塊為目標,而是針對約 50-53% 的滿區塊,這取決於方差(這與數學家所稱的「算術-幾何均值不等式」有關)。
2. 在極端情況下調整不夠迅速。
後面用於 blobs 的公式(EIP-4844)是專門設計來解決第一個問題的,整體上也更簡潔。然而,EIP-1559 本身以及 EIP-4844 都未嘗試解決第二個問題。因此,現狀是一個混亂的中間狀態,涉及兩種不同的機制,並且有一種觀點認為,隨着時間的推移,兩者都需要進行改進。
此外,還有其他與 EIP-1559 無關的以太坊資源定價的弱點,但可以通過對 EIP-1559 的調整來解決。其中一個主要問題是平均情況與最壞情況的差異:以太坊中的資源價格必須設置得能夠處理最壞情況,即一個區塊的全部 gas 消耗佔用一個資源,但實際的平均使用遠低於此,導致了低效。
什么是多維 Gas,它是如何運作的?
解決這些低效問題的方案是
多維 Gas
:為不同資源設定不同的價格和限制。這個概念在技術上獨立於 EIP-1559,但 EIP-1559 的存在使得實現這一方案更為容易。如果沒有 EIP-1559,最優地打包一個包含多種資源約束的區塊就是一個
復雜的多維背包問題
。而有了 EIP-1559,大多數區塊在任何資源上都不會達到滿負荷,因此「接受任何支付足夠費用的交易」這樣簡單的算法就足夠了。
目前我們已經有了用於執行和數據塊的多維 Gas;原則上,我們可以將其擴展到更多維度:如 calldata(交易數據),狀態讀取/寫入,和狀態大小擴展。
EIP-7706 引入了一種新的 gas 維度,專門針對 calldata。同時,它還通過將三種類型的 gas 統一到一個(EIP-4844 風格的)框架中,簡化了多維 Gas 機制,從而也解決了 EIP-1559 的數學缺陷。 EIP-7623 是一種更為精准的解決方案,針對平均情況與最壞情況的資源問題,更嚴格地限制最大 calldata,而不引入整個新維度。
一個進一步的研究方向是解決更新速率問題,尋找一種更快速的基礎費用計算算法,同時保留 EIP-4844 機制所引入的關鍵不變量(即:在長期內,平均使用量正好接近目標值)。
現有研究鏈接
EIP-1559 FAQ: EIP-1559 FAQ
關於 EIP-1559 的實證分析: Empirical analysis
允許快速調整的改進提案: Proposed improvements
EIP-4844 FAQ 中關於基礎費用機制的部分: EIP-4844 FAQ
EIP-7706: EIP-7706
EIP-7623: EIP-7623
多維 Gas: Multidimensional gas
剩下的工作和權衡是什么?
多維 Gas 的主要權衡有兩個:
1. 增加協議復雜性:引入多維 Gas 會使協議變得更復雜。
2. 增加填充區塊所需的最優算法復雜性:為了使區塊達到容量的最佳算法也會變得復雜。
協議復雜性對於 calldata 來說相對較小,但對於那些在 EVM 內部的 Gas 維度(如存儲讀取和寫入)來說,復雜性就會增加。問題在於,不僅用戶設置 gas 限制,合約在調用其他合約時也會設置限制。而目前,它們設置限制的唯一方式是單維的。
一個簡單的解決方案是將多維 Gas 僅在 EOF 內部可用,因為 EOF 不允許合約在調用其他合約時設置 gas 限制。非 EOF 合約在進行存儲操作時需要支付所有類型 Gas 的費用(例如,如果 SLOAD 佔用區塊存儲訪問 gas 限制的 0.03%,那么非 EOF 用戶也會被收取 0.03% 的執行 gas 限制費用)。
對多維 Gas 進行更多研究將有助於理解這些權衡,並找到理想的平衡點。
它如何與路线圖的其他部分互動?
成功實施多維 Gas 可以大大降低某些「最壞情況」的資源使用,從而減少優化性能的壓力,以支持例如 STARKed 哈希基礎的二叉樹等需求。對於狀態大小增長設定一個明確的目標,將使客戶端开發者在未來進行規劃和需求估算變得更加容易。
如前所述,EOF 的存在使得實現更極端版本的多維 Gas 變得更加簡單,因為其 Gas 不可觀察的特性。
可驗證延遲函數(VDFs)
它解決了什么問題?
目前,以太坊使用基於 RANDAO 的隨機性來選擇提議者,RANDAO 的隨機性是通過要求每個提議者揭示他們提前承諾的祕密,並將每個揭示的祕密混合到隨機性中來工作的。
每個提議者因此有「1 位操控權」:他們可以通過不出現來改變隨機性(有成本)。這種方式對於尋找提議者來說是合理的,因為你放棄一個機會而獲得兩個新提議機會的情況非常少見。但對於需要隨機性的鏈上應用程序來說,這並不理想。理想情況下,我們應該找到一個更穩健的隨機性來源。
什么是 VDF,它是如何運作的?
可驗證延遲函數是一種只能順序計算的函數,無法通過並行化加速。一個簡單的例子是重復哈希:for i in range(10**9): x = hash(x)。輸出結果,使用 SNARK 證明其正確性,可以用作隨機值。
這個思路是輸入基於時間 T 可用的信息進行選擇,而在時間 T 時輸出尚不可知:輸出只有在某人完全運行計算後才會在 T 之後的某個時刻可用。因為任何人都可以運行計算,所以不存在隱瞞結果的可能性,因此也沒有操控結果的能力。
可驗證延遲函數的主要風險是意外優化:有人發現以比預期更快的速度運行該函數,從而操控他們在時間 T 揭示的信息。
意外優化可以通過兩種方式發生:
1. 硬件加速:有人制造出比現有硬件更快運行計算循環的 ASIC。
2. 意外並行化:有人找到一種方法,通過並行化運行函數以更快的速度,即使這樣做需要 100 倍的資源。
創建成功的 VDF 的任務是避免這兩種問題,同時保持效率實用(例如,基於哈希的方法一個問題是實時對哈希進行 SNARK 證明需要重型硬件)。硬件加速通常通過一個公共利益參與者自行創建和分發接近最佳的 VDF ASIC 來解決。
現有研究鏈接
VDF 研究網站: vdfresearch.org
關於以太坊中 VDF 的攻擊思考,2018 年: Thinking on attacks
針對提議的 VDF MinRoot 的攻擊: Attacks against MinRoot
剩下的工作和權衡是什么?
目前,沒有一種 VDF 構造能夠完全滿足以太坊研究人員在所有方面的要求。仍需更多工作來尋找這樣的函數。如果找到了,主要的權衡就是是否將其納入:功能性與協議復雜性及安全風險之間的簡單權衡。
如果我們認為 VDF 是安全的,但最終它卻不安全,則根據其實現方式,安全性將退化到 RANDAO 假設(每個攻擊者 1 位操控權)或稍微糟糕的情況。因此,即使 VDF 失效,也不會破壞協議,但會破壞強烈依賴於它的應用程序或任何新協議特性。
它如何與路线圖的其他部分互動?
VDF 是以太坊協議中相對自包含的一個組成部分,除了增加提議者選擇的安全性外,它在(i)依賴隨機性的鏈上應用程序以及(ii)加密內存池中也有應用,盡管基於 VDF 制作加密內存池仍依賴於尚未發生的額外密碼學發現。
一個需要記住的要點是,考慮到硬件的不確定性,VDF 輸出產生與需要之間會有一些「余量」。這意味着信息將在幾個區塊之前可用。這可以是一個可接受的成本,但在單槽最終確定或委員會選擇設計中應該加以考慮。
模糊化和一次性籤名:密碼學的遙遠未來
它解決了什么問題?
Nick Szabo 最著名的文章之一是他在 1997 年撰寫的關於「上帝協議」的論文。在這篇論文中,他指出,許多多方應用依賴於「受信任的第三方」來管理互動。在他看來,密碼學的作用是創建一個模擬的受信任第三方,完成同樣的工作,而實際上並不需要對任何特定參與者的信任。
到目前為止,我們只能部分實現這一理想。如果我們所需的僅僅是一個透明的虛擬計算機,其數據和計算無法被關閉、審查或篡改,而隱私並不是目標,那么區塊鏈可以實現這個目標,盡管其可擴展性有限。
如果隱私是目標,那么直到最近,我們只能針對特定應用开發一些具體的協議:用於基本身份驗證的數字籤名、用於原始匿名性的環籤名和可鏈接環籤名、基於身份的加密以在對可信發行者的特定假設下實現更方便的加密、以及用於查姆式電子現金的盲籤名等等。這種方法要求為每個新應用進行大量工作。
在 2010 年代,我們首次瞥見了一種不同且更強大的方法,這種方法基於可編程密碼學。與其為每個新應用創建一個新協議,我們可以使用強大的新協議——具體來說是 ZK-SNARKs——為任意程序添加密碼學保證。
ZK-SNARKs 允許用戶證明他們持有的數據的任意聲明,且證明(i)易於驗證,且(ii)不會泄露除聲明本身之外的任何數據。這在隱私和可擴展性上都是一個巨大的進步,我將其比作人工智能中的變換器(transformers)所帶來的影響。成千上萬的人年應用特定的工作,突然被這一通用解決方案所取代,這個解決方案能夠處理意想不到的廣泛問題。
然而,ZK-SNARKs 只是類似的三種極其強大的通用原語中的第一種。這些協議強大到當我想到它們時,它們讓我想起了一組在《遊戲王》中非常強大的卡片——我小時候玩過的卡片遊戲和電視節目:埃及神卡。
埃及神卡是三張極其強大的卡片,傳說中制造這些卡片的過程可能致命,並且它們的強大使得在決鬥中禁止使用。類似地,在密碼學中, 我們也有這組三種埃及神協議:
什么是 ZK-SNARKs,它是如何工作的?
ZK-SNARKs 是我們已經擁有的三種協議之一,具有較高的成熟度。在過去五年中,證明者速度和开發者友好性的大幅提升使得 ZK-SNARKs 成為以太坊可擴展性和隱私策略的基石。但 ZK-SNARKs 有一個重要的限制:你需要知道數據才能對其進行證明。每個 ZK-SNARK 應用中的狀態必須有一個唯一的「所有者」,他必須在場才能批准對該狀態的讀取或寫入。
第二種沒有這一限制的協議是完全同態加密(FHE),FHE 允許你在不查看數據的情況下,對加密數據進行任何計算。這使得你能夠在用戶的數據上進行計算,以用戶的利益為出發點,同時保持數據和算法的私密性。
它還使你能夠擴展如 MACI 等投票系統,以獲得幾乎完美的安全性和隱私保證。長期以來,FHE 被認為效率太低,無法實際使用,但現在它終於變得足夠高效,开始出現實際應用。
Cursive 是一款應用程序,利用雙方計算和完全同態加密(FHE)進行隱私保護的共同興趣發現。
然而,FHE 也有其局限性:任何基於 FHE 的技術仍然需要某人持有解密密鑰。這可以是一個 M-of-N 的分布式設置,你甚至可以使用可信執行環境(TEEs)增加第二層防護,但這仍然是一個限制。
接下來是第三種協議,它比前兩者的組合更為強大:不可區分混淆(indistinguishability obfuscation)。雖然這項技術距離成熟仍然很遠,但截至 2020 年,我們已基於標准安全假設獲得理論上有效的協議,最近也开始着手實現。
不可區分混淆允許你創建一個「加密程序」,執行任意計算,同時隱藏程序的所有內部細節。舉個簡單的例子,你可以將私鑰放入一個混淆程序中,這個程序僅允許你用它來籤署素數,並將此程序分發給他人。他們可以使用這個程序籤署任何素數,但無法提取密鑰。然而,它的能力遠不止於此:結合哈希,它可以用來實現任何其他密碼學原語,以及更多功能。
不可區分混淆程序唯一不能做到的,就是防止自身被復制。不過,對於這一點,前景中還有更強大的技術在等待着,盡管它依賴於每個人都擁有量子計算機:量子一次性籤名(quantum one-shot signatures)。
通過結合混淆和一次性籤名,我們可以構建幾乎完美的無信任第三方。唯一無法僅靠密碼學實現的目標,仍然需要區塊鏈來保證的是審查抗性。這些技術不僅可以使以太坊本身更安全,還可以在其上構建更強大的應用。
為了更好地理解這些原語如何增加額外的能力,我們以投票為關鍵例子。投票是一個有趣的問題,因為它需要滿足許多復雜的安全屬性,包括非常強的可驗證性和隱私性。雖然擁有強安全屬性的投票協議已經存在數十年,但我們可以自我加大難度,要求設計能夠處理任意投票協議:如二次投票、成對限制的二次資助、集群匹配的二次資助等等。換句話說,我們希望「計票」步驟成為一個任意程序。
首先,假設我們將投票結果公开放在區塊鏈上。這使我們獲得了公开可驗證性(任何人都可以驗證最終結果是否正確,包括計票規則和資格規則)和審查抗性(無法阻止人們投票)。但我們沒有隱私。
接着,我們添加了 ZK-SNARKs,現在,我們有了隱私:每一票都是匿名的,同時確保只有授權選民可以投票,每位選民只能投票一次。
接下來,我們引入了 MACI 機制,投票被加密為中央服務器的解密密鑰。中央服務器負責進行計票過程,包括剔除重復投票,並發布 ZK-SNARK 證明結果。這保留了之前的保證(即使服務器作弊!),但如果服務器誠實,它還增加了一種抗強迫的保證:用戶無法證明他們的投票方式,即使他們想這樣做。這是因為雖然用戶可以證明他們的投票,但他們無法證明自己沒有投票以抵消該票。這防止了賄賂和其他攻擊。
我們在 FHE 中運行計票,然後進行 N/2-of-N 閾值解密計算。這使得抗強迫保證提升至 N/2-of-N,而不是 1-of-1。
我們將計票程序進行混淆,並設計混淆程序,使其只有在獲得授權時才能輸出結果,授權方式可以是區塊鏈共識的證明、某種工作量證明,或兩者結合。這使得抗強迫保證幾乎完美:在區塊鏈共識情況下,需有 51% 的驗證者串通才能破解;在工作量證明情況下,即使所有人串通,重新以不同選民子集進行計票以試圖提取單個選民的行為也將極為昂貴。我們甚至可以讓程序對最終計票結果進行小幅隨機調整,以進一步增加提取單個選民行為的難度。
我們添加了一次性籤名,這是一種依賴於量子計算的原語,允許籤名僅用於一次特定類型的信息。這使得抗強迫保證變得真正完美。
不可區分混淆還支持其他強大的應用。例如:
1.去中心化自治組織(DAOs)、鏈上拍賣以及其他具有任意內部祕密狀態的應用。
2.真正的通用可信設置:某人可以創建一個包含密鑰的混淆程序,並運行任何程序並提供輸出,將 hash(key, program) 作為輸入放入程序中。給定這樣的程序,任何人都可以將程序3放入自身中,結合程序的預先密鑰和他們自己的密鑰,從而擴展設置。這可用於為任何協議生成 1-of-N 的可信設置。
3.ZK-SNARKs 的驗證僅需一個籤名:實現這一點非常簡單:設置一個可信環境,讓某人創建一個混淆程序,只有在有效的 ZK-SNARK 情況下才會使用密鑰籤署消息。
4.加密的內存池:加密交易變得非常簡單,這樣交易只有在未來發生某個鏈上事件時才能被解密。這甚至可以包括成功執行的可驗證延遲函數(VDF)。
借助一次性籤名,我們可以使區塊鏈免受最終性反轉的 51% 攻擊,盡管審查攻擊仍然可能。類似一次性籤名的原語使得量子貨幣成為可能,從而解決了無區塊鏈的雙重支付問題,盡管許多更復雜的應用仍需要鏈。
如果這些原語能變得足夠高效,那么世界上大多數應用都可以實現去中心化。主要的瓶頸將是驗證實現的正確性。
以下是一些現有研究的鏈接:
1. 不可區分混淆協議(2021): Indistinguishability Obfuscation
2. 混淆如何幫助以太坊: How Obfuscation Can Help Ethereum
3. 第一次已知的一次性籤名構造: First Known Construction of One-Shot Signatures
4. 混淆的嘗試實現(1): Attempted Implementation of Obfuscation (1)
5. 混淆的嘗試實現(2): Attempted Implementation of Obfuscation (2)
還有哪些工作要做,以及權衡是什么?
還有很多工作要做,不可區分混淆仍然非常不成熟,候選構造的運行速度慢得驚人(如果不是更多的話),以至於無法在應用中使用。不可區分混淆以「理論上」多項式時間而聞名,但在實際應用中,其運行時間可能比宇宙的生命周期還長。最近的協議在運行時間上有所緩解,但开銷仍然太高,無法進行常規使用:一位實施者預計運行時間為一年。
量子計算機甚至還不存在:你在互聯網上看到的所有構造,要么是無法進行超過 4 位運算的原型,要么根本不是實質性的量子計算機,雖然它們可能有量子部分,但無法運行諸如 Shor 算法或 Grover 算法這樣的有意義計算。最近有跡象表明,「真正的」量子計算機離我們並不遙遠。然而,即使「真正的」量子計算機不久後出現,普通人要在自己的筆記本電腦或手機上使用量子計算機,可能還要等幾十年,才能在強大的機構能夠破解橢圓曲线密碼學的那一天。
對於不可區分混淆,一個關鍵的權衡在於安全假設,存在使用特殊假設的更激進設計。這些設計通常具有更現實的運行時間,但特殊假設有時最終會被破壞。隨着時間的推移,我們可能會更好地理解格,從而提出不易被破壞的假設。然而,這條路更具風險。更保守的做法是堅持使用那些安全性可證明減少到「標准」假設的協議,但這可能意味着我們需要更長時間才能獲得足夠快速運行的協議。
它如何與路线圖的其他部分互動?
極其強大的密碼學可能會徹底改變遊戲,例如:
1. 如果我們獲得的 ZK-SNARKs 的驗證與籤名一樣簡單,那么我們可能不再需要任何聚合協議;我們可以直接在鏈上進行驗證。
2. 一次性籤名可能意味着更安全的權益證明協議。
3. 許多復雜的隱私協議可能僅需一個隱私保護的以太坊虛擬機(EVM)來替代。
4. 加密的內存池變得更易於實現。
起初,益處將在應用層出現,因為以太坊的 L1 本質上需要在安全假設上保持保守。然而,僅應用層的使用就可能是顛覆性的,就像 ZK-SNARKs 的出現一樣。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
歐盟打響穩定幣战爭:21家發行商爭奪,Circle搶先登陸,Tether扶持“代理人”
作者:Weilin,PANews 歐盟《加密資產市場監管法案》(MiCA)對穩定幣發行方的監管規則...
Fractal Bitcoin分形比特幣深度研究報告:原生擴展的比特幣高速公路,重新定義比特幣的可能性
比特幣網絡擴展問題一直是區塊鏈領域的核心話題。從最初的隔離見證(SegWit)到閃電網絡(Ligh...
Stacks完成Nakamoto升級,BTC DeFi會是下一個關注點嗎?
當比特幣突破 9 萬美金,加密市場各個生態都开始了自己的狂歡。 AI 敘事持續火熱,Meme 持續...
律動BlockBeats
文章數量
106粉絲數
0