區(qū)塊鏈良好用戶體驗(yàn)的一個(gè)必不可少的特性是快速的交易確認(rèn)時(shí)間。如今的以太坊與五年前相比已經(jīng)有了很大的進(jìn)步,這得益于 EIP -1559 和 PoS 合并之后穩(wěn)定的出塊時(shí)間,用戶在 L1 上發(fā)送的交易可以在 5-20 秒內(nèi)得到可靠的確認(rèn),已經(jīng)接近信用卡支付的使用體驗(yàn)。然而,以太坊的用戶體驗(yàn)仍需要進(jìn)一步的改善,因?yàn)橛行?yīng)用程序確實(shí)需要數(shù)百毫秒甚至更短的交易延遲。這篇文章將介紹加快以太坊交易確認(rèn)時(shí)間的一些實(shí)用方案。
現(xiàn)有的想法和技術(shù)概述
單 slot 最終性
現(xiàn)在以太坊的 Gasper 共識(shí)采用 slot 和 epoch 架構(gòu)。每隔 12 秒(單個(gè) slot 的時(shí)長(zhǎng)),驗(yàn)證者子集會(huì)在區(qū)塊鏈的最新區(qū)塊上發(fā)布投票,在 32 個(gè) slot(6.4 分鐘,一個(gè) epoch 包含 32 個(gè) slot)內(nèi),所有驗(yàn)證者都有機(jī)會(huì)投票一次。然后,這些投票被重新解釋為類似于 PBFT 的共識(shí)算法中的消息,該算法在兩個(gè) epoch(12.8 分鐘)后提供非常嚴(yán)格的經(jīng)濟(jì)保證,這就是最終性。
過(guò)去幾年,我們對(duì)這種方法越來(lái)越不滿意。主要原因是:(i)它很復(fù)雜,逐個(gè) slot 投票機(jī)制和逐個(gè) epoch 最終性機(jī)制之間存在許多交互錯(cuò)誤;(ii)12.8 分鐘太長(zhǎng)了,沒(méi)人愿意等那么久。
單 slot 最終性(single slot finality,SSF)用一種與 Tendermint 共識(shí)相似的機(jī)制取代了這種架構(gòu),在該機(jī)制中,區(qū)塊 N 在區(qū)塊 N+1 生成之前已經(jīng)完成。與 Tendermint 的主要不同之處在于我們保留了「非活躍泄漏(inactivity leak)」機(jī)制,這種機(jī)制允許區(qū)塊鏈在超過(guò) 1/3 的驗(yàn)證者離線時(shí)繼續(xù)運(yùn)行并恢復(fù)。


單 slot 最終性方案設(shè)計(jì)圖
SSF 的主要挑戰(zhàn)在于,它似乎暗示者每個(gè)以太坊質(zhì)押者都需要每 12 秒發(fā)布兩條消息,這對(duì)區(qū)塊鏈來(lái)說(shuō)是一個(gè)很大的負(fù)擔(dān)。有一些巧妙的想法可以緩解這種情況,包括最近的 Orbit SSF 提案(https://ethresear.ch/t/orbit-ssf-solo-staking-friendly-validator-set-management-for-ssf/19928)。即便如此,這種方案通過(guò)加快「最終確定性」能顯著改善用戶體驗(yàn),但它并沒(méi)有縮短用戶需要等待 5-20 秒的這個(gè)時(shí)間。
Rollup 預(yù)確認(rèn)
在過(guò)去的幾年中,以太坊一直遵循著以 Rollup 為中心的路線圖,圍繞支持?jǐn)?shù)據(jù)可用性和其他功能設(shè)計(jì)以太坊基礎(chǔ)層(L1)。這些功能被 Rollup(還有 Validiums 和 Plasmas )等 L2 協(xié)議使用,L2 協(xié)議可以為用戶提供與以太坊相同級(jí)別的安全性,但它們的交易規(guī)模比 L1 要大得多。
這使得以太坊生態(tài)系統(tǒng)中產(chǎn)生了一種關(guān)注點(diǎn)分離:以太坊 L1 可以專注于抗審查、可靠、穩(wěn)定以及維護(hù)和改進(jìn)某些核心基礎(chǔ)功能,而 L2 可以通過(guò)不同的文化和技術(shù)權(quán)衡專注于用戶體驗(yàn)。但如果你沿著這條路走下去,就會(huì)出現(xiàn)一個(gè)不可避免的問(wèn)題:L2 專注于為那些希望在 5-20 秒內(nèi)獲得更快確認(rèn)的用戶提供服務(wù)。
到目前為止,創(chuàng)建自己的「去中心化排序」網(wǎng)絡(luò)已經(jīng)成為 L2 不可推卸的責(zé)任。可能每隔幾百毫秒,一小部分驗(yàn)證者會(huì)簽署區(qū)塊,他們會(huì)將自己的代幣質(zhì)押在這些區(qū)塊中。最終,這些 L2 區(qū)塊的區(qū)塊頭會(huì)發(fā)布到 L1 上。


L2 驗(yàn)證者集可以作弊:他們可以先簽署區(qū)塊 B1,然后再簽署與 B1 有沖突的區(qū)塊 B2,并在 B1 之前將其提交到鏈上。但如果他們這樣做,就會(huì)面臨懲罰而失去他們的押金。在實(shí)踐中,我們已經(jīng)看到了這種做法的中心化版本,但是 Rollup 在開(kāi)發(fā)去中心化排序網(wǎng)絡(luò)方面進(jìn)展緩慢。你可以說(shuō)要求 L2 都進(jìn)行去中心化排序是一項(xiàng)不公平的交易:這相當(dāng)于要求 Rollup 做與創(chuàng)建一個(gè)全新的 L1 相同的工作。出于一些原因,以太坊基金會(huì)研究員 Justin Drake 一直在推廣一種讓所有 L2(以及 L1)訪問(wèn)共享的以太坊預(yù)確認(rèn)機(jī)制的方法:based preconfirmations()。
Based preconfirmations(Based 預(yù)確認(rèn))
Based preconfirmations 的方法假設(shè)以太坊提議者將因 MEV 相關(guān)原因而成為高度復(fù)雜的參與者。Based preconfirmations 的方法利用這種復(fù)雜性,激勵(lì)這些成熟的提議者提供預(yù)確認(rèn)服務(wù)。


基本思想是創(chuàng)建一個(gè)標(biāo)準(zhǔn)化協(xié)議,通過(guò)該協(xié)議,用戶可以提供額外的費(fèi)用,以換即時(shí)取保證自身交易被納入下一個(gè)區(qū)塊,并獲得有關(guān)執(zhí)行該交易結(jié)果的聲明。如果提議者違反了對(duì)任何用戶做出的承諾,他們就會(huì)受到懲罰。
如上所述,based preconfirmations 機(jī)制為 L1 交易提供了保障。如果 Rollup 是「Based Rollup」(注:Based Rollup 由 Justin Drake 于 2023 年 3 月提出,是一種排序完全由 L1 完成的 Rollup),那么所有 L2 區(qū)塊都是 L1 交易,因此可以使用相同的機(jī)制為任何 L2 提供預(yù)確認(rèn)。
我們實(shí)際上看到的是什么?
假設(shè)我們實(shí)現(xiàn)單 slot 最終性。我們使用類似 Orbit 的技術(shù)來(lái)減少每個(gè) slot 簽名的驗(yàn)證者數(shù)量,這樣我們也可以在減少 32 ETH 最低質(zhì)押數(shù)量,可謂是一舉兩得。結(jié)果,slot 時(shí)間可能會(huì)逐漸增加到 16 秒。然后我們使用 Rollup 預(yù)確認(rèn)或 Based preconfirmations 來(lái)為用戶提供更快的保證。我們現(xiàn)在得到了什么?一個(gè) epoch-and-slot 架構(gòu)。


「它們是同一張圖」這個(gè) meme 已經(jīng)被過(guò)度使用了,所以我只會(huì)將我?guī)啄昵袄L制的一張舊圖表與 L2 預(yù)確認(rèn)圖表放在一起,以描述 Gasper 的 slot-and-epoch 架構(gòu),我希望我能夠解釋清楚。
有一個(gè)深刻的哲學(xué)原因可以解釋為什么人們總是不可避免地使用 epoch-and-slot 架構(gòu):就某件事達(dá)成近似的一致本質(zhì)上比就某件事達(dá)成最大程度的「經(jīng)濟(jì)最終性」一致需要更少的時(shí)間。
一個(gè)簡(jiǎn)單的原因是節(jié)點(diǎn)數(shù)量。雖然由于超優(yōu)化的 BLS 聚合和不久的將來(lái)的 ZK-STARK,舊的漸進(jìn)式去中心化 / 最終確定時(shí)間 / 開(kāi)銷權(quán)衡現(xiàn)在看起來(lái)更加溫和,但從根本上來(lái)說(shuō),以下觀點(diǎn)仍然是正確的:
- 「近似一致」僅需要少量節(jié)點(diǎn),而經(jīng)濟(jì)最終性則需要所有節(jié)點(diǎn)中的相當(dāng)一部分。
- 一旦節(jié)點(diǎn)數(shù)量超過(guò)一定規(guī)模,你就需要花費(fèi)更多時(shí)間來(lái)收集簽名。
在當(dāng)前的以太坊中,12 秒的 slot 被劃分為三個(gè) sub-slots,用于 (i) 區(qū)塊發(fā)布和分發(fā)、(ii) 證明 (iii) 證明聚合。如果證明者數(shù)量少得多,我們可以將其減少到兩個(gè) sub-slots,并擁有 8 秒的 slot 時(shí)間。另一個(gè)實(shí)際上更重要的因素是節(jié)點(diǎn)的「質(zhì)量」。如果我們還可以依靠專業(yè)化的節(jié)點(diǎn)子集來(lái)達(dá)成近似協(xié)議(并且仍然使用完整的驗(yàn)證器集來(lái)實(shí)現(xiàn)最終性),我們可以合理地將其縮短到約 2 秒。
因此,我認(rèn)為 (i) slot-and-epoch 架構(gòu)顯然是正確的,但 (ii) 并非所有 slot-and-epoch 架構(gòu)都是一樣的,我們需要更充分地探索設(shè)計(jì)空間。特別是,那些不像 Gasper 那樣緊密交織的方案值得探索。
L2 應(yīng)該做些什么?
在我看來(lái),目前 L2 可以采取三種合理的策略:
- 無(wú)論是技術(shù)層面還是精神層面,都要「based」。也就是說(shuō),L2 是以太坊基礎(chǔ)層技術(shù)屬性及其價(jià)值(高度去中心化、抗審查等)更優(yōu)秀的傳遞渠道。用最簡(jiǎn)單的形式來(lái)理解,你可以將這些 Rollup 視為「品牌分片」,但它們也可以更加雄心勃勃,并且它們對(duì)新的虛擬機(jī)設(shè)計(jì)和其他技術(shù)改進(jìn)進(jìn)行了大量實(shí)驗(yàn)。
- 成為「具有區(qū)塊鏈腳手架的服務(wù)器」,并充分利用它。如果你從服務(wù)器開(kāi)始,然后添加(i)STARK 有效性證明以確保服務(wù)器遵守規(guī)則,(ii)保證用戶退出或強(qiáng)制交易的權(quán)利,以及可能的(iii)集體選擇的自由,無(wú)論是通過(guò)協(xié)調(diào)的大規(guī)模退出還是通過(guò)投票更改排序器的能力,那么你已經(jīng)獲得了很多鏈上的好處,同時(shí)保留了服務(wù)器的大部分效率。
- 折衷方案:一條擁有 100 個(gè)節(jié)點(diǎn)的快速區(qū)塊鏈,依靠以太坊提供額外的互操作性和安全性。這是許多 L2 項(xiàng)目事實(shí)上的當(dāng)前路線圖。
對(duì)于某些應(yīng)用程序(例如 ENS、keystores 以及一些支付場(chǎng)景),12 秒的區(qū)塊時(shí)間就足夠了。對(duì)于需要更短確認(rèn)時(shí)間的應(yīng)用程序,唯一的解決方案是 slot-and-epoch 架構(gòu)。在這三種情況下,「epoch」都是以太坊的 SSF(也許我們可以將該首字母縮略詞重新定義為「single slot」以外的其他含義,例如,它可以是「Secure Speedy Finality」)。但在上述三種情況下,「slot」是不同的:
- 以太坊原生的 slot-and-epoch 架構(gòu)
- 服務(wù)器預(yù)確認(rèn)
- 委員會(huì)預(yù)確認(rèn)
一個(gè)關(guān)鍵問(wèn)題是,我們能把第 (1) 類中的某樣?xùn)|西做得有多好?特別是,如果它變得非常好,那么第 (3) 類似乎就意義不大了。第 (2) 類將永遠(yuǎn)存在,因?yàn)槿魏巍竍ased」的東西都不適用于鏈下數(shù)據(jù) L2,例如 Plasma 和 Validium。但如果以太坊原生的 slot-and-epoch 架構(gòu)可以縮短到 1 秒的「slot」(即預(yù)確認(rèn))時(shí)間,那么第 (3) 類的空間就會(huì)變得小得多。
今天,我們距離得到這些問(wèn)題的最終答案還很遙遠(yuǎn)。區(qū)塊提議者將變得多么復(fù)雜?這個(gè)關(guān)鍵問(wèn)題的答案仍然存在相當(dāng)多不確定性。像 Orbit SSF 這樣的設(shè)計(jì)非常新穎,因此類似 Orbit SSF 的 slot-and-epoch 方案的設(shè)計(jì)空間還需要更多的探索。我們擁有的選擇越多,我們就能為 L1 和 L2 上的用戶做得更好,我們也能簡(jiǎn)化 L2 開(kāi)發(fā)人員的工作。