通過基於 DDH 的指數可驗證隨機函數 (eVRF) 進行以太坊驗證器密鑰管理

本文為機器翻譯
展示原文

通過基於 DDH 的指數可驗證隨機函數 (eVRF) 進行以太坊驗證器密鑰管理

作者: Yecheke Bonya Oryn Bonya 和 Antonio Sanso

隨著以太坊和其他區塊鏈平臺朝著更具可擴展性和安全性的共識機制發展,對可驗證隨機性的需求也日益凸顯。在權益證明 (PoS) 系統中,隨機性驅動著驗證者選擇、領導者選舉和委員會組建——這些流程必須既不可預測又可公開驗證,才能維護系統的完整性。

可驗證隨機函數 (VRF)允許證明者生成偽隨機輸出,並提供證明,證明該輸出是根據給定輸入和密鑰正確計算的。該證明可以在不洩露密鑰的情況下公開驗證。
Boneh 等人 (2025)提出的最新變體是指數 VRF (eVRF) ,它以密碼組的“指數”輸出隨機性,從而增強了隱私性、閾值能力和代數可組合性。

在本文中,我們重點介紹基於 DDH 的 eVRF ,其安全性依賴於決策迪菲-赫爾曼 (DDH) 假設,以及一種高效的零知識證明協議,用於證明正確的 eVRF 評估而不會洩露任何秘密信息。

我們的實現使用了兩條橢圓曲線:

  • BLS12-381——一種廣泛採用的配對友好曲線,用於以太坊的驗證器簽名方案,提供強大的安全性(128 位)和高效的配對操作,這對於聚合簽名和其他高級加密協議至關重要……
  • Bandersnatch——在 BLS12-381 標量場上定義的橢圓曲線,通過 GLV 自同態優化了快速標量乘法。

通過結合這些曲線,我們實現了高效的計算以及與現有以太坊加密基礎設施的兼容性


背景:VRF 和 eVRF

可驗證隨機函數(VRF)

VRF 是一組多項式時間算法(PPGen、KGen、Eval、Verify) ( P P G en , K G en , E v a l , Ver i f y ) 具有以下規格

  • PPGen(1^\lambda) → pp P P G e n ( 1 λ ) p p :公共參數生成算法,採用安全參數\lambda λ並輸出公共參數pp p p
  • KGen(1^\lambda) → (sk, pk) K G e n ( 1 λ ) ( s k , p k ) :輸出秘密/公鑰對的密鑰生成算法
  • Eval(sk, x) → (y, \pi) E v a l ( s k , x ) ( y , π ) :評估算法採用密鑰和輸入x x ,產生:
    • y y :偽隨機輸出
    • \pi π :正確計算的證明
  • Verify(pk, x, y, \pi) → \{0, 1\} V e r i f y ( p k , x , y , π ) { 0 , 1 } :接受或拒絕證明的驗證算法

VRF 必須滿足四個關鍵的安全屬性:

  1. 正確性:對於所有誠實生成的密鑰和輸入,驗證總是在誠實計算的輸出和證明上成功
  2. 唯一性:對於任何輸入x x和公鑰pk p k ,最多存在一個值y y可以為其構建有效證明
  3. 偽隨機性:對於任何先前未查詢的輸入,輸出y y在計算上與隨機不可區分
  4. 可驗證性:沒有對手可以為不正確的輸出提供有效的證明

VRF 已部署在生產區塊鏈系統中。Algorand 將其用於委員會選舉的加密抽籤,而 Cardano 則在其 Ouroboros Praos 共識協議中將其用於領導者選舉。Chainlink 的可驗證隨機函數 (VRF) 服務是一個可驗證隨機數生成器 (RNG),可為去中心化應用程序和其他需要鏈上隨機性的應用創建可證明的隨機輸出。VRF 也用於以太坊中的聚合器選擇。

指數 VRF(eVRF)

eVRF 代表了對 VRF 輸出格式的根本性修改,對隱私和可組合性具有重大影響:

\mathbb{G} G為素數階群q q ,其生成器為G G 。指數 VRF(eVRF)由多項式時間非均勻算法(PPGen、KGen、Eval、Verify)組成 P P G e n K G e n E v a l Ver i f y 其中

  • PPGen(1^\lambda) → pp P P Gen ( 1 λ ) p p :公共參數生成算法
  • KGen(1^\lambda) → (sk, pk) K G e n ( 1 λ ) ( s k , p k ) :密鑰生成輸出私鑰 sk 和公鑰 pk
  • Eval(sk, x) → (y, Y, \pi) E v a l ( sk , x ) ( y , Y , π )其中
    • y ∈ \mathbb{Z}_q y Z q :實際偽隨機值(保密)
    • Y = y · G ∈ \mathbb{G} Y = y G G :輸出“在指數中”
    • \pi π :正確計算的零知識證明
  • Verify(pk, x, Y, \pi) → \{0, 1\} V e r i f y ( p k , x , Y , π ) { 0 , 1 } :驗證在不學習y y 的情況下檢查證明

eVRF 的安全屬性與標準 VRF 的安全屬性相似,但還需注意以下幾點:

  1. 可模擬性:存在一個模擬器,可以在不知道密鑰的情況下產生無法區分的證明

關鍵區別在於輸出格式:標準 VRF 直接顯示y y ,而 eVRF 僅顯示Y = y · G Y = y G ,將實際隨機值 y 隱藏在“指數中”。


數學構造

我們提出了兩種基於 DDH 的 eVRF 構造:基本構造和完全構造。基本構造運算高效,但只覆蓋了域中大約一半的組元素。完全構造通過應用剩餘的哈希引理將覆蓋範圍擴展到所有組元素,從而確保完全域覆蓋,但會增加計算開銷。

在我們的實現中,Bandersnatch 用作源曲線( \mathbb{G}_S G S ),而 BLS12-381 用作目標曲線( \mathbb{G}_T G T ),利用這些曲線之間的兼容性,其中 BLS12-381 的標量場等於 Bandersnatch 的基場。

1. 基於DDH的基本eVRF

(\mathbb{G}_S, \mathbb{G}_T) ( G S , G T )為一對群,其中|\mathbb{G}_S| = s | G S | = s|\mathbb{G}_T| = q | G T | = q ,且\ell = \lfloor \log_2 \min(s, q) \rfloor - 1 = log 2最小值 s q 1
G_{T,1}, G_{T,2} G T , 1 , G T , 2G_T G T的生成器。
H : \mathcal{X} \times \mathbb{G}_T \to \mathbb{G}_S^* H : X × G T G S為哈希曲線函數。

密鑰生成

k \xleftarrow{\$} [2^{\ell+1} - 1], \quad Q = k \cdot G_{T,1}
k $ [ 2 + 1 1 ] Q = k⋅GT , 1

輸出sk=k s k = k , vk=Q v k = Q

評估

  1. Q \gets k \cdot G_{T,1} Q k G T , 1

  2. X \gets H(x, Q) \in \mathbb{G}_S^* X H ( x , Q ) G S

  3. P \gets k \cdot X P k X其中P = (x_P, y_P) \in \mathbb{F}_q^2 P = ( x P , y P ) F 2 q

  4. y \gets x_P \in \mathbb{F}_q y x P F q

  5. Y \gets y \cdot G_{T,2} \in \mathbb{G}_T Y y G T , 2 G T

  6. 對關係進行證明\pi π

    R_{\text{eDDH}} = \{ (Q, X, Y) : k \ |\ Q = k \cdot G_{T,1},\ Y = x_P \cdot G_{T,2},\ P = k \cdot X \}
    REDDH = { Q X Y k | Q = k⋅GT 1  Y = xP⋅GT 2  P = k X }

確認
檢查\pi π驗證(Q, H(x, Q), Y) \in R_{\text{eDDH}} ( Q , H ( x , Q ) , Y ) R eDDH


2. 基於DDH的完整eVRF

使用附加標量k' k 和兩個哈希點來擴展基本構造。

H_1, H_2 : \mathcal{X} \times \mathbb{G}_T \to \mathbb{G}_S^* H 1 , H 2 : X × G T G S為獨立哈希函數。

密鑰生成

k \xleftarrow{\$} [2^{\ell+1} - 1], \quad k' \xleftarrow{\$} \mathbb{F}_q, \quad Q = k \cdot G_{T,1}
k $ [ 2 + 1 1 ] k $ Fq Q = k⋅GT , 1

輸出sk = (k, k') s k = ( k , k ) , vk = (Q, k') v k = ( Q , k )

評估

  1. Q \gets k \cdot G_{T,1} Q k G T , 1

  2. X_1 \得到 H_1(x, Q) X 1 H 1 ( x , Q )X_2 \得到 H_2(x, Q) \in \mathbb{G}_S^* X 2 H 2 ( x , Q ) G S

  3. P_1 \gets k \cdot X_1 P 1 k X 1P_2 \gets k \cdot X_2 P 2 k X 2

  4. y \gets k' \cdot x_{P_1} + x_{P_2} \in \mathbb{F}_q y k x P 1 + x P 2 F q

  5. Y \gets y \cdot G_{T,2} \in \mathbb{G}_T Y y G T , 2 G T

  6. 對關係進行證明\pi π

    R^*_{\text{eDDH}} = \{ (Q, k', X_1, X_2, Y) : k \ |\ Q = k \cdot G_{T,1},\ Y = y \cdot G_{T,2},\ y = k' x_{P_1} + x_{P_2} \}
    R eDDH = { Q k X1 X2 Y k | Q = k⋅GT 1  Y = y⋅GT 2  y = k′xP1 + xP2 }

確認
檢查\pi π驗證(Q, k', H_1(x, Q), H_2(x, Q), Y) \in R^*_{\text{eDDH}} ( Q , k , H 1 ( x , Q ) , H 2 ( x , Q ) , Y ) R eDDH


證明協議

為了在不洩露秘密信息的情況下證明 eVRF 評估的正確性,我們基於R1CS 的 Bulletproofs實現了一個零知識證明系統,並對其進行了Segev 的改進。我們的協議將關係R_{\text{eDDH}} R eDDHR^*_{\text{eDDH}} R eDDH編譯成結構化約束系統。

R1CS框架

我們的證明系統以 Bulletproofs 的改進型 R1CS 關係為基礎。Bulletproofs 最初由 Benedikt Bünz 等人於2018 年提出,是零知識證明系統的一項重大進步,它無需可信設置即可提供對數級大小的證明。Bulletproofs 的核心基於內積論證,該論證允許通過一種優雅的遞歸方法來證明向量的知識,從而降低每輪向量的維度。

R1CS 實例由矩陣A, B, C \in \mathbb{Z}_q^{m \times n} A , B , C Z m × n q和見證向量z \in \mathbb{Z}_q^n z Z n q定義,且必須滿足:

$$Az \circ Bz = Cz$$

其中\circ 表示 Hadamard 乘積(逐元素)。R1CS 關係精確地捕捉了一組既滿足完備性又滿足穩健性,同時又不影響性能的實例。

Schnorr 證明集成

為了建立支撐 eVRF 安全模型的離散對數關係,我們在協議的兩個關鍵點採用了 Schnorr 證明。第一個 Schnorr 證明,記為\pi_Q π Q ,表明證明者知曉密鑰k k ,且Q = k \cdot G_{T,1} Q = k G T , 1 。此證明對於將公鑰與 eVRF 評估中使用的密鑰綁定至關重要,從而確保只有合法的密鑰持有者才能生成有效的證明。第二個 Schnorr 證明\pi_Y π Y ,表明證明者知曉值y y ,且Y = y \cdot G_{T,2} Y = y G T , 2 ,將 eVRF 輸出與計算結果直接關聯。這些 Schnorr 證明遵循標準的三步協議結構,但通過 Fiat-Shamir 轉換呈現非交互式,其中挑戰值是使用應用於承諾和公共參數的加密哈希函數生成的。

防彈協議執行

我們的證明系統的核心實現了針對 R1CS* 的改進的 Bulletproofs 協議,該協議為約束滿足提供了零知識論證。

執行從設置階段開始,在此階段建立公共參數,包括素數階q q的群\mathbb{G} G和生成器\mathbf{G}, \mathbf{H} \in \mathbb{G}^{n+m} G , H G n + m以及附加生成器G, H \in \mathbb{G} G , H G 。證明者持有一個代表承諾和約束矩陣的實例(T, A, B, C) ( T , A , B , C ) ,以及一個滿足 R1CS* 關係要求的見證(x, x', y, y', \eta) ( x , x , y , y , η )其中z = (x||y) z = ( x | | y )z' = (x'||y') z = ( x | | y )

在承諾生成階段,證明者採樣隨機性$$r \xleftarrow{$} \mathbb{Z}_q$$並構建承諾:

$$S = \langle ((x' | y) | Az), \mathbf{G} \rangle + \langle (0^n | Bz), \mathbf{H} \rangle + r \cdot H$$

然後,證明者使用 Fiat-Shamir 變換,並使用加密哈希函數根據承諾和公共參數確定性地生成挑戰\alpha、\beta、\gamma、\delta α β γ δ,這些函數用於創建約束方程的線性組合。

該協議通過複雜的內積論證進行,以遞歸方式降低證明的維數。這種遞歸結構實現了對數證明大小O(\log n) O ( log n )其中n n表示約束的數量,這使得該系統即使對於具有數百個約束的複雜 eVRF 構造也是實用的。

最後的驗證步驟通過單次內積檢驗確認所有約束均已滿足,從而完成零知識論證。整個協議通過在每個步驟中謹慎的隨機化來維護安全性,確保見證人的信息不會洩露給驗證者,同時確保 eVRF 評估的正確性。

我們的實現將這三個證明組件(離散對數 Schnorr 證明和 R1CS* Bulletproof)組合成一個統一的論證\pi = \{\pi_Q, \pi_Y, \pi_{BP}\} π = { π Q , π Y , π B P } ,該論證以對數通信複雜度和無可信設置要求提供 eVRF 正確性的完整驗證。


BLS 驗證器密鑰生成

在以太坊的權益證明 (Proof-of-Stake) 共識機制中,每個驗證者必須使用唯一的BLS12-381 密鑰對才能參與網絡的共識過程。這些加密密鑰是安全架構的基礎,因為它們用於簽署關鍵的共識消息,包括證明(對區塊鏈狀態的投票)、區塊提案和驗證者職責分配。整個驗證者集的完整性取決於這些密鑰的安全生成、存儲和正確使用。

根據以太坊更新後的質押要求,驗證者現在可以為每個驗證者身份質押 32 ETH 至 2,048 ETH ,這既支持獨立的獨立驗證者,也支持運行廣泛驗證者集的大型機構運營商。這種靈活性使機構能夠有效地管理資金配置,同時鼓勵更多不同規模的驗證者參與。

然而,這種設計給大規模驗證者運營商帶來了巨大的運營挑戰。運行數百或數千個驗證者的權益池、交易所和機構驗證者必須管理相應數量的 BLS 密鑰。這種情況會引入嚴重的漏洞:

  1. 密鑰管理開銷——安全地存儲、備份和跟蹤數千個私鑰需要複雜的基礎設施,並會成倍增加操作複雜性。每個密鑰都必須單獨保護,這給密鑰輪換、備份程序和訪問控制系統帶來了後勤挑戰。

  2. 攻擊面擴大——每增加一個私鑰都意味著一個潛在的攻擊點。如果任何一個驗證者密鑰洩露或被盜,運營者將面臨直接風險,包括大幅削減懲罰(因違反協議而自動減少質押的 ETH)、可能喪失驗證者身份,以及可能影響其整體運營的聲譽損害。

  3. 操作風險放大——傳統密鑰管理方法擴展性較差,人為錯誤、系統故障或安全漏洞的風險會隨著管理的密鑰數量的增加而成比例增加。

為了應對這些挑戰,我們的實現引入了一種確定性驗證器密鑰派生方案,該方案利用基於 DDH 的 eVRF 的數學特性將密鑰管理從 O(n)複雜度問題轉變為 O(1)解決方案。

我們採用分層密鑰派生架構,重新構想了驗證器密鑰管理。我們不再為每個驗證器生成獨立的密鑰,而是使用單個 Bandersnatch 主密鑰作為加密信任根,所有驗證器密鑰均使用 eVRF 評估函數從該主密鑰確定性地派生。

主密鑰生成和基於 eVRF 的派生

派生過程始於生成Bandersnatch 主密鑰對。設(\mathbb{G}_s, \mathbb{G}_T) ( G s , G T )為群對,其中|\mathbb{G}_s| = s | G s | = s|\mathbb{G}_T| = q | G T | = q ,且\ell = \lfloor \log_2 \min(s, q) \rfloor - 1 = log 2最小值 s q 1

主密鑰生成:
$$k \xleftarrow{$} [2^{\ell+1} - 1], \quad Q = k \cdot G_{T,1}$$

其中sk_{\text{master}} = k s k master = kvk_{\text{master}} = Q v k master = Q

確定性驗證器密鑰派生:系統採用 eVRF 評估函數,將驗證器索引確定性地映射到加密安全的種子,以生成 BLS12-381 密鑰。對於索引為i驗證器,派生過程如下:

  1. 索引編碼:驗證器索引被編碼為 4 字節大端整數:
    $$x = \text{encode}(i) \text{ 其中 } i \in [0, 2^{32}-1]$$

  2. eVRF 評估:主密鑰和編碼索引作為 eVRF 評估函數的輸入:
    $$y, Y, \pi \gets Eval(sk_{\text{master}}, x)$$

  3. 加密種子生成: eVRF 輸出y y通過 SHA-256 處理,以確保在 BLS12-381 標量場中均勻分佈:
    $$\text{seed} = \text{SHA256}(\text{encode}_{32}(y))$$

  4. BLS 密鑰計算:最終的 BLS 驗證器密鑰計算如下:
    $$sk_i = \text{bytes_to_int}(\text{seed}) \bmod r_{\text{BLS}}$$
    $$pk_i = sk_i \cdot G_{\text{BLS}}$$

其中r_{\text{BLS}} r BLS是 BLS12-381 的標量場階, G_{\text{BLS}} G BLS是以太坊驗證器簽名方案中使用的生成點。

驗證流程

驗證過程確保對於任何驗證器索引i i ,派生的 BLS 密鑰對(sk_{\text{BLS},i}, pk_{\text{BLS},i}) ( s k BLS , i , p k BLS , i )都是從主密鑰正確計算出來的,而不會洩露sk_{\text{master}} s k master

eVRF 驗證:首先,驗證 eVRF 證明組件:
$$\mathsf{驗證}(vk_{\text{master}}, x, Y, \pi)$$

BLS 密鑰驗證:然後驗證 BLS 密鑰派生:
$$sk' i = \text{bytes_to_int}(\text{SHA256}(\text{encode} {32}(y))) \bmod r_{\text{BLS}}$$
$$pk'_i = sk' i \cdot G {\text{BLS}}$$
$$\text{驗證:} pk'_i \stackrel{?}{=} pk_i$$

該驗證過程提供了數學確定性,即密鑰是根據協議生成的,同時保持零知識屬性。

影響和現實利益

增強的安全態勢:通過消除存儲多個私鑰的需要,系統大大減少了攻擊面,同時保持了驗證器之間的加密獨立性。

合規性和可審計性:衍生過程的可驗證性質使得全面的審計跟蹤成為可能,而不會損害安全性,滿足機構採用的監管要求。

災難恢復:確定性生成確保了可靠的密鑰恢復能力。給定主密鑰sk_{\text{master}} s k master和索引i i ,驗證者密鑰始終可以重建。

可擴展性:系統可以有效擴展以支持大型驗證器操作,而無需相應增加安全基礎設施、操作複雜性或合規開銷。

這種基於 DDH 的 eVRF 方法代表了區塊鏈驗證器密鑰管理的轉變,提供了大規模部署所需的簡單性,同時保持了保護重大財務利益和網絡完整性所必需的加密安全保障。


結論

這項工作證明了基於 DDH 的 eVRF可以通過實用的零知識證明高效地實現,並應用於區塊鏈。通過利用BLS12-381Bandersnatch ,我們實現了強大的安全性、快速的計算能力以及與以太坊驗證器基礎設施的兼容性。

我們的代碼庫提供:

  • 概念驗證 eVRF 實現及其證明可在此處找到。
  • 驗證器密鑰派生和管理的框架。

來源
免責聲明:以上內容僅為作者觀點,不代表Followin的任何立場,不構成與Followin相關的任何投資建議。
喜歡
收藏
評論