69久久99精品久久久久婷婷,女同一区二区免费aⅴ,污视频在线看网站,av小说在线播放

幣圈網(wǎng)

Vitalik 關(guān)于以太坊可能的未來(六):The Splurge

有些事物很難歸入單一類別,在以太坊協(xié)議設(shè)計中,有許多「細(xì)節(jié)」對以太坊的成功非常重要。實際上,約一半的內(nèi)容涉及不同類型的 EVM 改進(jìn),其余部分則由各種小眾主題構(gòu)成,這就是「繁榮」的意義所在。

2023年路線圖:繁榮

繁榮:關(guān)鍵目標(biāo)

將 EVM 變?yōu)楦咝阅芎头€(wěn)定的「最終狀態(tài)」

將賬戶抽象引入?yún)f(xié)議,允許所有用戶享受更安全和便捷的賬戶

優(yōu)化交易費用經(jīng)濟,提高可擴展性同時降低風(fēng)險

探索先進(jìn)的密碼學(xué),使以太坊在長期內(nèi)顯著改善

EVM 改進(jìn)

解決了什么問題?

目前的 EVM 難以進(jìn)行靜態(tài)分析,這使得創(chuàng)建高效實現(xiàn)、正式驗證代碼和進(jìn)行進(jìn)一步擴展變得困難。此外,EVM 的效率較低,難以實現(xiàn)許多形式的高級密碼學(xué),除非通過預(yù)編譯顯式支持。

它是什么,如何運作?

當(dāng)前 EVM 改進(jìn)路線圖的第一步是 EVM 對象格式(EOF),計劃在下一個硬分叉中納入。EOF 是一系列 EIP,指定了一個新的 EVM 代碼版本,具有許多獨特的特征,最顯著的是:

代碼(可執(zhí)行,但無法從 EVM 中讀取)與數(shù)據(jù)(可讀取,但無法執(zhí)行)之間的分離

禁止動態(tài)跳轉(zhuǎn),僅允許靜態(tài)跳轉(zhuǎn)

EVM 代碼無法再觀察與燃料相關(guān)的信息

添加了一種新的顯式子例程機制

EOF代碼的結(jié)構(gòu)

繁榮:EVM 改進(jìn)(續(xù))

舊式合約將繼續(xù)存在并可創(chuàng)建,盡管最終可能會逐步棄用舊式合約(甚至可能強制轉(zhuǎn)換為 EOF 代碼)。新式合約將受益于 EOF 帶來的效率提升——首先是通過子例程特性稍微縮小的字節(jié)碼,隨后則是 EOF 特定的新功能或減少的 gas 成本。

在引入 EOF 后,進(jìn)一步的升級變得更加容易,目前發(fā)展最完善的是EVM 模塊算術(shù)擴展(EVM-MAX)。EVM-MAX 創(chuàng)建了一組專門針對模運算的新操作,并將其放置在一個無法通過其他操作碼訪問的新內(nèi)存空間中,這使得使用諸如 Montgomery 乘法等優(yōu)化成為可能。

一個較新的想法是將 EVM-MAX 與單指令多數(shù)據(jù)(SIMD)特性結(jié)合,SIMD 作為以太坊的一個理念已經(jīng)存在很長時間,最早由Greg Colvin 的 EIP-616提出。SIMD 可用于加速許多形式的密碼學(xué),包括哈希函數(shù)、32 位 STARKs 和基于格的密碼學(xué),EVM-MAX 和 SIMD 的結(jié)合使得這兩種性能導(dǎo)向的擴展成為自然的配對。

一個組合 EIP 的大致設(shè)計將以 EIP-6690 為起點,然后:

允許 (i) 任何奇數(shù)或 (ii) 任何最高為 2768 的 2 的冪作為模數(shù)

對于每個 EVM-MAX 操作碼(加法、減法、乘法),添加一個版本,該版本不再使用 3 個立即數(shù) x、y、z,而是使用 7 個立即數(shù):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]

)

實際實現(xiàn)中,這將以并行方式處理。

可能添加 XOR、AND、OR、NOT 和 SHIFT(包括循環(huán)和非循環(huán)),至少對于 2 的冪模數(shù)。同時添加 ISZERO(將輸出推送到 EVM 主堆棧),這將足夠強大以實現(xiàn)橢圓曲線密碼學(xué)、小域密碼學(xué)(如 Poseidon、Circle STARKs)、傳統(tǒng)哈希函數(shù)(如 SHA256、KECCAK、BLAKE)和基于格的密碼學(xué)。其他 EVM 升級也可能實現(xiàn),但迄今為止關(guān)注度較低。

現(xiàn)有研究鏈接

EOF:https://evmobjectformat.org/

EVM-MAX:https://eips.ethereum.org/EIPS/eip-6690

SIMD:https://eips.ethereum.org/EIPS/eip-616

剩下的工作及權(quán)衡

目前,EOF 計劃在下一個硬分叉中納入。盡管總是有可能在最后一刻移除它——之前的硬分叉中曾有功能被臨時移除,但這樣做將面臨很大挑戰(zhàn)。移除 EOF 意味著未來對 EVM 的任何升級都需在沒有 EOF 的情況下進(jìn)行,雖然可以做到,但可能更困難。

EVM 的主要權(quán)衡在于 L1 復(fù)雜性與基礎(chǔ)設(shè)施復(fù)雜性,EOF 是需要添加到 EVM 實現(xiàn)中的大量代碼,靜態(tài)代碼檢查也相對復(fù)雜。然而,作為交換,我們可以簡化高級語言、簡化 EVM 實現(xiàn)以及其他好處??梢哉f,優(yōu)先考慮以太坊 L1 持續(xù)改進(jìn)的路線圖應(yīng)包括并建立在 EOF 之上。

需要做的一項重要工作是實現(xiàn)類似 EVM-MAX 加 SIMD 的功能,并對各種加密操作的 gas 消耗進(jìn)行基準(zhǔn)測試。

如何與路線圖的其他部分交互?

L1 調(diào)整其 EVM 使得 L2 也能更容易地進(jìn)行相應(yīng)調(diào)整,如果二者不進(jìn)行同步調(diào)整,可能會造成不兼容,帶來不利影響。此外,EVM-MAX 和 SIMD 可以降低許多證明系統(tǒng)的 gas 成本,從而使 L2 更加高效。它還使得通過用可以執(zhí)行相同任務(wù)的 EVM 代碼替代更多的預(yù)編譯變得更加容易,可能不會大幅影響效率。

賬戶抽象

解決了什么問題?

目前,交易只能通過一種方式進(jìn)行驗證:ECDSA 簽名。最初,賬戶抽象旨在超越這一點,允許賬戶的驗證邏輯為任意的 EVM 代碼。這可以啟用一系列應(yīng)用:

切換到抗量子密碼學(xué)

輪換舊密鑰(廣泛被認(rèn)為是推薦的安全實踐)

多重簽名錢包和社交恢復(fù)錢包

使用一個密鑰進(jìn)行低價值操作,使用另一個密鑰(或一組密鑰)進(jìn)行高價值操作

允許隱私協(xié)議在沒有中繼的情況下工作,顯著降低其復(fù)雜性,并消除一個關(guān)鍵的中央依賴點

自 2015 年賬戶抽象提出以來,其目標(biāo)也擴展到了包括大量「便利目標(biāo)」,例如,某個沒有 ETH 但擁有一些 ERC20 的賬戶能夠用 ERC20 支付 gas。以下是這些目標(biāo)的匯總圖表:

MPC(多方計算)是一種已有40 年歷史的技術(shù),用于將密鑰分成多個部分并存儲在多個設(shè)備上,利用密碼學(xué)技術(shù)生成簽名,而無需直接組合這些密鑰部分。

EIP-7702是計劃在下一個硬分叉中引入的一項提案,EIP-7702 是對提供賬戶抽象便利性以惠及所有用戶(包括 EOA 用戶)的日益認(rèn)識的結(jié)果,旨在在短期內(nèi)改善所有用戶的體驗,并避免分裂成兩個生態(tài)系統(tǒng)。

該工作始于EIP-3074,并最終形成 EIP-7702。EIP-7702 將賬戶抽象的「便利功能」提供給所有用戶,包括今天的 EOA(外部擁有賬戶,即受 ECDSA 簽名控制的賬戶)。

從圖表中可以看到,雖然一些挑戰(zhàn)(尤其是「便利性」挑戰(zhàn))可以通過漸進(jìn)技術(shù)如多方計算或 EIP-7702 解決,但最初提出賬戶抽象提案的主要安全目標(biāo)只能通過回溯并解決原始問題來實現(xiàn):允許智能合約代碼控制交易驗證。迄今為止尚未實現(xiàn)的原因在于安全地實施,這一點是一項挑戰(zhàn)。

它是什么,如何運作?

賬戶抽象的核心是簡單的:允許智能合約發(fā)起交易,而不僅僅是 EOA。整個復(fù)雜性來自于以一種對維護(hù)去中心化網(wǎng)絡(luò)友好的方式實現(xiàn)這一點,并防范拒絕服務(wù)攻擊。

一個典型的關(guān)鍵挑戰(zhàn)是多重失效問題:

如果有 1000 個賬戶的驗證函數(shù)都依賴于某個單一值 S,并且當(dāng)前值 S 使得內(nèi)存池中的交易都是有效的,那么有一個單一交易翻轉(zhuǎn) S 的值可能會使內(nèi)存池中的所有其他交易失效。這使得攻擊者能夠以極低的成本向內(nèi)存池發(fā)送垃圾交易,從而堵塞網(wǎng)絡(luò)節(jié)點的資源。

經(jīng)過多年的努力,旨在擴展功能的同時限制拒絕服務(wù)(DoS)風(fēng)險,最終得出了實現(xiàn)「理想賬戶抽象」的解決方案:ERC-4337。

ERC-4337 的工作原理是將用戶操作的處理分為兩個階段:驗證和執(zhí)行。所有驗證首先被處理,所有執(zhí)行隨后被處理。在內(nèi)存池中,只有當(dāng)用戶操作的驗證階段只涉及其自身賬戶并且不讀取環(huán)境變量時,才會被接受。這可以防止多重失效攻擊。此外,對驗證步驟也強制實施嚴(yán)格的 gas 限制。

ERC-4337 被設(shè)計為一種額外協(xié)議標(biāo)準(zhǔn)(ERC),因為在當(dāng)時以太坊客戶端開發(fā)者專注于合并(Merge),沒有額外的精力來處理其他功能。這就是為什么 ERC-4337 使用了名為用戶操作的對象,而不是常規(guī)交易。然而,最近我們意識到需要將其中至少部分內(nèi)容寫入?yún)f(xié)議中。

兩個關(guān)鍵原因如下:

EntryPoint 作為合約的固有低效性:每個捆綁約有 100,000 gas 的固定開銷,以及每個用戶操作額外的數(shù)千 gas。

確保以太坊屬性的必要性:如包含列表所創(chuàng)建的包含保證需要轉(zhuǎn)移到賬戶抽象用戶。

此外,ERC-4337 還擴展了兩個功能:

支付代理(Paymasters):允許一個賬戶代表另一個賬戶支付費用的功能,這違反了驗證階段只能訪問發(fā)送者賬戶本身的規(guī)則,因此引入了特殊處理以確保支付代理機制的安全性。

聚合器(Aggregators):支持簽名聚合的功能,如 BLS 聚合或基于 SNARK 的聚合。這對于在 Rollup 上實現(xiàn)最高的數(shù)據(jù)效率是必要的。

現(xiàn)有研究鏈接

關(guān)于賬戶抽象歷史的演講: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(寫入?yún)f(xié)議的賬戶抽象):https://eips.ethereum.org/EIPS/eip-7562

EIP-7701(基于 EOF 的寫入?yún)f(xié)議賬戶抽象):https://eips.ethereum.org/EIPS/eip-7701

剩下的工作及權(quán)衡

目前主要需要解決的是如何將賬戶抽象完全引入?yún)f(xié)議,最近受到歡迎的寫入?yún)f(xié)議賬戶抽象 EIP 是EIP-7701,該提案在 EOF 之上實現(xiàn)賬戶抽象。一個賬戶可以擁有一個單獨的代碼部分用于驗證,如果賬戶設(shè)置了該代碼部分,則該代碼將在來自該賬戶的交易的驗證步驟中執(zhí)行。

這種方法的迷人之處在于,它清晰地表明了本地賬戶抽象的兩種等效視角:

將 EIP-4337 作為協(xié)議的一部分

一種新的 EOA 類型,其中簽名算法為 EVM 代碼執(zhí)行

如果我們從對驗證期間可執(zhí)行代碼復(fù)雜性設(shè)定嚴(yán)格界限開始——不允許訪問外部狀態(tài),甚至在初期設(shè)定的 gas 限制也低到對量子抗性或隱私保護(hù)應(yīng)用無效——那么這種方法的安全性就非常明確:只是將 ECDSA 驗證替換為需要相似時間的 EVM 代碼執(zhí)行。

然而,隨著時間的推移,我們需要放寬這些界限,因為允許隱私保護(hù)應(yīng)用在沒有中繼的情況下工作,以及量子抗性都是非常重要的。為此,我們需要找到更靈活地解決拒絕服務(wù)(DoS)風(fēng)險的方法,而不要求驗證步驟必須極度簡約。

主要的權(quán)衡似乎是「快速寫入一種讓較少人滿意的方案」與「等待更長時間,可能獲得更理想的解決方案」,理想的方法可能是某種混合方法。一種混合方法是更快地寫入一些用例,并留出更多時間來探索其他用例。另一種方法是在 L2 上首先部署更雄心勃勃的賬戶抽象版本。然而,這面臨的挑戰(zhàn)是,L2 團(tuán)隊需要對采用提案的工作充滿信心,才能愿意進(jìn)行實施,尤其是要確保 L1 和 / 或其他 L2 未來能夠采用兼容的方案。

我們還需要明確考慮的另一個應(yīng)用是密鑰存儲賬戶,這些賬戶在 L1 或?qū)S?L2 上存儲賬戶相關(guān)狀態(tài),但可以在 L1 和任何兼容的 L2 上使用。有效地做到這一點可能要求 L2 支持諸如L1SLOAD或REMOTESTATICCALL的操作碼,但這也需要 L2 上的賬戶抽象實現(xiàn)支持這些操作。

它如何與路線圖的其他部分互動?

包含列表需要支持賬戶抽象交易,在實踐中,包含列表的需求與去中心化內(nèi)存池的需求實際上非常相似,盡管對于包含列表來說靈活性稍大。此外,賬戶抽象實現(xiàn)應(yīng)該盡可能在 L1 和 L2 之間實現(xiàn)協(xié)調(diào)。如果將來我們期望大多數(shù)用戶使用密鑰存儲 Rollup,賬戶抽象設(shè)計應(yīng)以此為基礎(chǔ)。

EIP-1559 改進(jìn)

它解決了什么問題?

EIP-1559 于 2021 年在以太坊上激活,顯著改善了平均區(qū)塊包含時間。

等待時間

然而,當(dāng)前EIP-1559的實施在多個方面并不完美:

公式略有缺陷:它并不是以 50% 的區(qū)塊為目標(biāo),而是針對約 50-53% 的滿區(qū)塊,這取決于方差(這與數(shù)學(xué)家所稱的「算術(shù) - 幾何均值不等式」有關(guān))。

在極端情況下調(diào)整不夠迅速。

后面用于 blobs 的公式(EIP-4844)是專門設(shè)計來解決第一個問題的,整體上也更簡潔。然而,EIP-1559 本身以及 EIP-4844 都未嘗試解決第二個問題。因此,現(xiàn)狀是一個混亂的中間狀態(tài),涉及兩種不同的機制,并且有一種觀點認(rèn)為,隨著時間的推移,兩者都需要進(jìn)行改進(jìn)。

此外,還有其他與 EIP-1559 無關(guān)的以太坊資源定價的弱點,但可以通過對 EIP-1559 的調(diào)整來解決。其中一個主要問題是平均情況與最壞情況的差異:以太坊中的資源價格必須設(shè)置得能夠處理最壞情況,即一個區(qū)塊的全部 gas 消耗占用一個資源,但實際的平均使用遠(yuǎn)低于此,導(dǎo)致了低效。

什么是多維 Gas,它是如何運作的?

解決這些低效問題的方案是多維 Gas:為不同資源設(shè)定不同的價格和限制。這個概念在技術(shù)上獨立于 EIP-1559,但 EIP-1559 的存在使得實現(xiàn)這一方案更為容易。如果沒有 EIP-1559,最優(yōu)地打包一個包含多種資源約束的區(qū)塊就是一個復(fù)雜的多維背包問題。而有了 EIP-1559,大多數(shù)區(qū)塊在任何資源上都不會達(dá)到滿負(fù)荷,因此「接受任何支付足夠費用的交易」這樣簡單的算法就足夠了。

目前我們已經(jīng)有了用于執(zhí)行和數(shù)據(jù)塊的多維 Gas;原則上,我們可以將其擴展到更多維度:如 calldata(交易數(shù)據(jù)),狀態(tài)讀取 / 寫入,和狀態(tài)大小擴展。

EIP-7706引入了一種新的 gas 維度,專門針對 calldata。同時,它還通過將三種類型的 gas 統(tǒng)一到一個(EIP-4844 風(fēng)格的)框架中,簡化了多維 Gas 機制,從而也解決了 EIP-1559 的數(shù)學(xué)缺陷。EIP-7623是一種更為精準(zhǔn)的解決方案,針對平均情況與最壞情況的資源問題,更嚴(yán)格地限制最大 calldata,而不引入整個新維度。

一個進(jìn)一步的研究方向是解決更新速率問題,尋找一種更快速的基礎(chǔ)費用計算算法,同時保留 EIP-4844 機制所引入的關(guān)鍵不變量(即:在長期內(nèi),平均使用量正好接近目標(biāo)值)。

現(xiàn)有研究鏈接

EIP-1559 FAQ:EIP-1559 FAQ

關(guān)于 EIP-1559 的實證分析:Empirical analysis

允許快速調(diào)整的改進(jìn)提案:Proposed improvements

EIP-4844 FAQ 中關(guān)于基礎(chǔ)費用機制的部分:EIP-4844 FAQ

EIP-7706:EIP-7706

EIP-7623:EIP-7623

多維 Gas:Multidimensional gas

剩下的工作和權(quán)衡是什么?

多維 Gas 的主要權(quán)衡有兩個:

增加協(xié)議復(fù)雜性:引入多維 Gas 會使協(xié)議變得更復(fù)雜。

增加填充區(qū)塊所需的最優(yōu)算法復(fù)雜性:為了使區(qū)塊達(dá)到容量的最佳算法也會變得復(fù)雜。

協(xié)議復(fù)雜性對于 calldata 來說相對較小,但對于那些在 EVM 內(nèi)部的 Gas 維度(如存儲讀取和寫入)來說,復(fù)雜性就會增加。問題在于,不僅用戶設(shè)置 gas 限制,合約在調(diào)用其他合約時也會設(shè)置限制。而目前,它們設(shè)置限制的唯一方式是單維的。

一個簡單的解決方案是將多維 Gas 僅在 EOF 內(nèi)部可用,因為 EOF 不允許合約在調(diào)用其他合約時設(shè)置 gas 限制。非 EOF 合約在進(jìn)行存儲操作時需要支付所有類型 Gas 的費用(例如,如果 SLOAD 占用區(qū)塊存儲訪問 gas 限制的 0.03%,那么非 EOF 用戶也會被收取 0.03% 的執(zhí)行 gas 限制費用)。

對多維 Gas 進(jìn)行更多研究將有助于理解這些權(quán)衡,并找到理想的平衡點。

它如何與路線圖的其他部分互動?

成功實施多維 Gas 可以大大降低某些「最壞情況」的資源使用,從而減少優(yōu)化性能的壓力,以支持例如 STARKed 哈?;A(chǔ)的二叉樹等需求。對于狀態(tài)大小增長設(shè)定一個明確的目標(biāo),將使客戶端開發(fā)者在未來進(jìn)行規(guī)劃和需求估算變得更加容易。

如前所述,EOF 的存在使得實現(xiàn)更極端版本的多維 Gas 變得更加簡單,因為其 Gas 不可觀察的特性。

可驗證延遲函數(shù)(VDFs)

它解決了什么問題?

目前,以太坊使用基于 RANDAO 的隨機性來選擇提議者,RANDAO 的隨機性是通過要求每個提議者揭示他們提前承諾的秘密,并將每個揭示的秘密混合到隨機性中來工作的。

每個提議者因此有「1 位操控權(quán)」:他們可以通過不出現(xiàn)來改變隨機性(有成本)。這種方式對于尋找提議者來說是合理的,因為你放棄一個機會而獲得兩個新提議機會的情況非常少見。但對于需要隨機性的鏈上應(yīng)用程序來說,這并不理想。理想情況下,我們應(yīng)該找到一個更穩(wěn)健的隨機性來源。

什么是 VDF,它是如何運作的?

可驗證延遲函數(shù)是一種只能順序計算的函數(shù),無法通過并行化加速。一個簡單的例子是重復(fù)哈希:for i in range(10**9): x = hash(x)。輸出結(jié)果,使用 SNARK 證明其正確性,可以用作隨機值。

這個思路是輸入基于時間 T 可用的信息進(jìn)行選擇,而在時間 T 時輸出尚不可知:輸出只有在某人完全運行計算后才會在 T 之后的某個時刻可用。因為任何人都可以運行計算,所以不存在隱瞞結(jié)果的可能性,因此也沒有操控結(jié)果的能力。

可驗證延遲函數(shù)的主要風(fēng)險是意外優(yōu)化:有人發(fā)現(xiàn)以比預(yù)期更快的速度運行該函數(shù),從而操控他們在時間 T 揭示的信息。

意外優(yōu)化可以通過兩種方式發(fā)生:

硬件加速:有人制造出比現(xiàn)有硬件更快運行計算循環(huán)的 ASIC。

意外并行化:有人找到一種方法,通過并行化運行函數(shù)以更快的速度,即使這樣做需要 100 倍的資源。

創(chuàng)建成功的 VDF 的任務(wù)是避免這兩種問題,同時保持效率實用(例如,基于哈希的方法一個問題是實時對哈希進(jìn)行 SNARK 證明需要重型硬件)。硬件加速通常通過一個公共利益參與者自行創(chuàng)建和分發(fā)接近最佳的 VDF ASIC 來解決。

現(xiàn)有研究鏈接

VDF 研究網(wǎng)站:vdfresearch.org

關(guān)于以太坊中 VDF 的攻擊思考,2018 年:Thinking on attacks

針對提議的 VDF MinRoot 的攻擊:Attacks against MinRoot

剩下的工作和權(quán)衡是什么?

目前,沒有一種 VDF 構(gòu)造能夠完全滿足以太坊研究人員在所有方面的要求。仍需更多工作來尋找這樣的函數(shù)。如果找到了,主要的權(quán)衡就是是否將其納入:功能性與協(xié)議復(fù)雜性及安全風(fēng)險之間的簡單權(quán)衡。

如果我們認(rèn)為 VDF 是安全的,但最終它卻不安全,則根據(jù)其實現(xiàn)方式,安全性將退化到 RANDAO 假設(shè)(每個攻擊者 1 位操控權(quán))或稍微糟糕的情況。因此,即使 VDF 失效,也不會破壞協(xié)議,但會破壞強烈依賴于它的應(yīng)用程序或任何新協(xié)議特性。

它如何與路線圖的其他部分互動?

VDF 是以太坊協(xié)議中相對自包含的一個組成部分,除了增加提議者選擇的安全性外,它在(i)依賴隨機性的鏈上應(yīng)用程序以及(ii)加密內(nèi)存池中也有應(yīng)用,盡管基于 VDF 制作加密內(nèi)存池仍依賴于尚未發(fā)生的額外密碼學(xué)發(fā)現(xiàn)。

一個需要記住的要點是,考慮到硬件的不確定性,VDF 輸出產(chǎn)生與需要之間會有一些「余量」。這意味著信息將在幾個區(qū)塊之前可用。這可以是一個可接受的成本,但在單槽最終確定或委員會選擇設(shè)計中應(yīng)該加以考慮。

模糊化和一次性簽名:密碼學(xué)的遙遠(yuǎn)未來

它解決了什么問題?

Nick Szabo 最著名的文章之一是他在 1997 年撰寫的關(guān)于「上帝協(xié)議」的論文。在這篇論文中,他指出,許多多方應(yīng)用依賴于「受信任的第三方」來管理互動。在他看來,密碼學(xué)的作用是創(chuàng)建一個模擬的受信任第三方,完成同樣的工作,而實際上并不需要對任何特定參與者的信任。

到目前為止,我們只能部分實現(xiàn)這一理想。如果我們所需的僅僅是一個透明的虛擬計算機,其數(shù)據(jù)和計算無法被關(guān)閉、審查或篡改,而隱私并不是目標(biāo),那么區(qū)塊鏈可以實現(xiàn)這個目標(biāo),盡管其可擴展性有限。

如果隱私是目標(biāo),那么直到最近,我們只能針對特定應(yīng)用開發(fā)一些具體的協(xié)議:用于基本身份驗證的數(shù)字簽名、用于原始匿名性的環(huán)簽名和可鏈接環(huán)簽名、基于身份的加密以在對可信發(fā)行者的特定假設(shè)下實現(xiàn)更方便的加密、以及用于查姆式電子現(xiàn)金的盲簽名等等。這種方法要求為每個新應(yīng)用進(jìn)行大量工作。

在 2010 年代,我們首次瞥見了一種不同且更強大的方法,這種方法基于可編程密碼學(xué)。與其為每個新應(yīng)用創(chuàng)建一個新協(xié)議,我們可以使用強大的新協(xié)議——具體來說是 ZK-SNARKs——為任意程序添加密碼學(xué)保證。

ZK-SNARKs 允許用戶證明他們持有的數(shù)據(jù)的任意聲明,且證明(i)易于驗證,且(ii)不會泄露除聲明本身之外的任何數(shù)據(jù)。這在隱私和可擴展性上都是一個巨大的進(jìn)步,我將其比作人工智能中的變換器(transformers)所帶來的影響。成千上萬的人年應(yīng)用特定的工作,突然被這一通用解決方案所取代,這個解決方案能夠處理意想不到的廣泛問題。

然而,ZK-SNARKs 只是類似的三種極其強大的通用原語中的第一種。這些協(xié)議強大到當(dāng)我想到它們時,它們讓我想起了一組在《游戲王》中非常強大的卡片——我小時候玩過的卡片游戲和電視節(jié)目:埃及神卡。

埃及神卡是三張極其強大的卡片,傳說中制造這些卡片的過程可能致命,并且它們的強大使得在決斗中禁止使用。類似地,在密碼學(xué)中,我們也有這組三種埃及神協(xié)議:

什么是 ZK-SNARKs,它是如何工作的?

ZK-SNARKs 是我們已經(jīng)擁有的三種協(xié)議之一,具有較高的成熟度。在過去五年中,證明者速度和開發(fā)者友好性的大幅提升使得 ZK-SNARKs 成為以太坊可擴展性和隱私策略的基石。但 ZK-SNARKs 有一個重要的限制:你需要知道數(shù)據(jù)才能對其進(jìn)行證明。每個 ZK-SNARK 應(yīng)用中的狀態(tài)必須有一個唯一的「所有者」,他必須在場才能批準(zhǔn)對該狀態(tài)的讀取或?qū)懭搿?/p>

第二種沒有這一限制的協(xié)議是完全同態(tài)加密(FHE),F(xiàn)HE 允許你在不查看數(shù)據(jù)的情況下,對加密數(shù)據(jù)進(jìn)行任何計算。這使得你能夠在用戶的數(shù)據(jù)上進(jìn)行計算,以用戶的利益為出發(fā)點,同時保持?jǐn)?shù)據(jù)和算法的私密性。

它還使你能夠擴展如 MACI 等投票系統(tǒng),以獲得幾乎完美的安全性和隱私保證。長期以來,F(xiàn)HE 被認(rèn)為效率太低,無法實際使用,但現(xiàn)在它終于變得足夠高效,開始出現(xiàn)實際應(yīng)用。

Cursive 是一款應(yīng)用程序,利用雙方計算和完全同態(tài)加密(FHE)進(jìn)行隱私保護(hù)的共同興趣發(fā)現(xiàn)。

然而,F(xiàn)HE 也有其局限性:任何基于 FHE 的技術(shù)仍然需要某人持有解密密鑰。這可以是一個 M-of-N 的分布式設(shè)置,你甚至可以使用可信執(zhí)行環(huán)境(TEEs)增加第二層防護(hù),但這仍然是一個限制。

接下來是第三種協(xié)議,它比前兩者的組合更為強大:不可區(qū)分混淆(indistinguishability obfuscation)。雖然這項技術(shù)距離成熟仍然很遠(yuǎn),但截至 2020 年,我們已基于標(biāo)準(zhǔn)安全假設(shè)獲得理論上有效的協(xié)議,最近也開始著手實現(xiàn)。

不可區(qū)分混淆允許你創(chuàng)建一個「加密程序」,執(zhí)行任意計算,同時隱藏程序的所有內(nèi)部細(xì)節(jié)。舉個簡單的例子,你可以將私鑰放入一個混淆程序中,這個程序僅允許你用它來簽署素數(shù),并將此程序分發(fā)給他人。他們可以使用這個程序簽署任何素數(shù),但無法提取密鑰。然而,它的能力遠(yuǎn)不止于此:結(jié)合哈希,它可以用來實現(xiàn)任何其他密碼學(xué)原語,以及更多功能。

不可區(qū)分混淆程序唯一不能做到的,就是防止自身被復(fù)制。不過,對于這一點,前景中還有更強大的技術(shù)在等待著,盡管它依賴于每個人都擁有量子計算機:量子一次性簽名(quantum one-shot signatures)。

通過結(jié)合混淆和一次性簽名,我們可以構(gòu)建幾乎完美的無信任第三方。唯一無法僅靠密碼學(xué)實現(xiàn)的目標(biāo),仍然需要區(qū)塊鏈來保證的是審查抗性。這些技術(shù)不僅可以使以太坊本身更安全,還可以在其上構(gòu)建更強大的應(yīng)用。

為了更好地理解這些原語如何增加額外的能力,我們以投票為關(guān)鍵例子。投票是一個有趣的問題,因為它需要滿足許多復(fù)雜的安全屬性,包括非常強的可驗證性和隱私性。雖然擁有強安全屬性的投票協(xié)議已經(jīng)存在數(shù)十年,但我們可以自我加大難度,要求設(shè)計能夠處理任意投票協(xié)議:如二次投票、成對限制的二次資助、集群匹配的二次資助等等。換句話說,我們希望「計票」步驟成為一個任意程序。

首先,假設(shè)我們將投票結(jié)果公開放在區(qū)塊鏈上。這使我們獲得了公開可驗證性(任何人都可以驗證最終結(jié)果是否正確,包括計票規(guī)則和資格規(guī)則)和審查抗性(無法阻止人們投票)。但我們沒有隱私。

接著,我們添加了 ZK-SNARKs,現(xiàn)在,我們有了隱私:每一票都是匿名的,同時確保只有授權(quán)選民可以投票,每位選民只能投票一次。

接下來,我們引入了 MACI 機制,投票被加密為中央服務(wù)器的解密密鑰。中央服務(wù)器負(fù)責(zé)進(jìn)行計票過程,包括剔除重復(fù)投票,并發(fā)布 ZK-SNARK 證明結(jié)果。這保留了之前的保證(即使服務(wù)器作弊?。?,但如果服務(wù)器誠實,它還增加了一種抗強迫的保證:用戶無法證明他們的投票方式,即使他們想這樣做。這是因為雖然用戶可以證明他們的投票,但他們無法證明自己沒有投票以抵消該票。這防止了賄賂和其他攻擊。

我們在 FHE 中運行計票,然后進(jìn)行 N/2-of-N 閾值解密計算。這使得抗強迫保證提升至 N/2-of-N,而不是 1-of-1。

我們將計票程序進(jìn)行混淆,并設(shè)計混淆程序,使其只有在獲得授權(quán)時才能輸出結(jié)果,授權(quán)方式可以是區(qū)塊鏈共識的證明、某種工作量證明,或兩者結(jié)合。這使得抗強迫保證幾乎完美:在區(qū)塊鏈共識情況下,需有 51% 的驗證者串通才能破解;在工作量證明情況下,即使所有人串通,重新以不同選民子集進(jìn)行計票以試圖提取單個選民的行為也將極為昂貴。我們甚至可以讓程序?qū)ψ罱K計票結(jié)果進(jìn)行小幅隨機調(diào)整,以進(jìn)一步增加提取單個選民行為的難度。

我們添加了一次性簽名,這是一種依賴于量子計算的原語,允許簽名僅用于一次特定類型的信息。這使得抗強迫保證變得真正完美。

不可區(qū)分混淆還支持其他強大的應(yīng)用。例如:

去中心化自治組織(DAOs)、鏈上拍賣以及其他具有任意內(nèi)部秘密狀態(tài)的應(yīng)用。

真正的通用可信設(shè)置:某人可以創(chuàng)建一個包含密鑰的混淆程序,并運行任何程序并提供輸出,將 hash(key, program) 作為輸入放入程序中。給定這樣的程序,任何人都可以將程序 3 放入自身中,結(jié)合程序的預(yù)先密鑰和他們自己的密鑰,從而擴展設(shè)置。這可用于為任何協(xié)議生成 1-of-N 的可信設(shè)置。

ZK-SNARKs 的驗證僅需一個簽名:實現(xiàn)這一點非常簡單:設(shè)置一個可信環(huán)境,讓某人創(chuàng)建一個混淆程序,只有在有效的 ZK-SNARK 情況下才會使用密鑰簽署消息。

加密的內(nèi)存池:加密交易變得非常簡單,這樣交易只有在未來發(fā)生某個鏈上事件時才能被解密。這甚至可以包括成功執(zhí)行的可驗證延遲函數(shù)(VDF)。

借助一次性簽名,我們可以使區(qū)塊鏈免受最終性反轉(zhuǎn)的 51% 攻擊,盡管審查攻擊仍然可能。類似一次性簽名的原語使得量子貨幣成為可能,從而解決了無區(qū)塊鏈的雙重支付問題,盡管許多更復(fù)雜的應(yīng)用仍需要鏈。

如果這些原語能變得足夠高效,那么世界上大多數(shù)應(yīng)用都可以實現(xiàn)去中心化。主要的瓶頸將是驗證實現(xiàn)的正確性。

以下是一些現(xiàn)有研究的鏈接:

不可區(qū)分混淆協(xié)議(2021):Indistinguishability Obfuscation

混淆如何幫助以太坊:How Obfuscation Can Help Ethereum

第一次已知的一次性簽名構(gòu)造:First Known Construction of One-Shot Signatures

混淆的嘗試實現(xiàn)(1):Attempted Implementation of Obfuscation (1)

混淆的嘗試實現(xiàn)(2):Attempted Implementation of Obfuscation (2)

還有哪些工作要做,以及權(quán)衡是什么?

還有很多工作要做,不可區(qū)分混淆仍然非常不成熟,候選構(gòu)造的運行速度慢得驚人(如果不是更多的話),以至于無法在應(yīng)用中使用。不可區(qū)分混淆以「理論上」多項式時間而聞名,但在實際應(yīng)用中,其運行時間可能比宇宙的生命周期還長。最近的協(xié)議在運行時間上有所緩解,但開銷仍然太高,無法進(jìn)行常規(guī)使用:一位實施者預(yù)計運行時間為一年。

量子計算機甚至還不存在:你在互聯(lián)網(wǎng)上看到的所有構(gòu)造,要么是無法進(jìn)行超過 4 位運算的原型,要么根本不是實質(zhì)性的量子計算機,雖然它們可能有量子部分,但無法運行諸如 Shor 算法或 Grover 算法這樣的有意義計算。最近有跡象表明,「真正的」量子計算機離我們并不遙遠(yuǎn)。然而,即使「真正的」量子計算機不久后出現(xiàn),普通人要在自己的筆記本電腦或手機上使用量子計算機,可能還要等幾十年,才能在強大的機構(gòu)能夠破解橢圓曲線密碼學(xué)的那一天。

對于不可區(qū)分混淆,一個關(guān)鍵的權(quán)衡在于安全假設(shè),存在使用特殊假設(shè)的更激進(jìn)設(shè)計。這些設(shè)計通常具有更現(xiàn)實的運行時間,但特殊假設(shè)有時最終會被破壞。隨著時間的推移,我們可能會更好地理解格,從而提出不易被破壞的假設(shè)。然而,這條路更具風(fēng)險。更保守的做法是堅持使用那些安全性可證明減少到「標(biāo)準(zhǔn)」假設(shè)的協(xié)議,但這可能意味著我們需要更長時間才能獲得足夠快速運行的協(xié)議。

它如何與路線圖的其他部分互動?

極其強大的密碼學(xué)可能會徹底改變游戲,例如:

如果我們獲得的 ZK-SNARKs 的驗證與簽名一樣簡單,那么我們可能不再需要任何聚合協(xié)議;我們可以直接在鏈上進(jìn)行驗證。

一次性簽名可能意味著更安全的權(quán)益證明協(xié)議。

許多復(fù)雜的隱私協(xié)議可能僅需一個隱私保護(hù)的以太坊虛擬機(EVM)來替代。

加密的內(nèi)存池變得更易于實現(xiàn)。

起初,益處將在應(yīng)用層出現(xiàn),因為以太坊的 L1 本質(zhì)上需要在安全假設(shè)上保持保守。然而,僅應(yīng)用層的使用就可能是顛覆性的,就像 ZK-SNARKs 的出現(xiàn)一樣。

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 柳林县| 万州区| 鸡泽县| 长武县| 天柱县| 宝清县| 逊克县| 库车县| 阿拉善右旗| 濮阳县| 柘城县| 保亭| 美姑县| 师宗县| 渑池县| 土默特左旗| 门头沟区| 阳曲县| 黎川县| 辽中县| 两当县| 高邑县| 桓台县| 富宁县| 凤冈县| 河北区| 中西区| 苏州市| 大连市| 喀什市| 敦煌市| 茂名市| 屯昌县| 九台市| 香格里拉县| 东乡| 东丰县| 庄浪县| 瓦房店市| 巫山县| 伊宁市|