跳至內容
0%

Validity(ZK)證明 vs. Fraud 證明

Alchemy team headshot

作者 Alchemy

發布於 2022年10月19日閱讀時間 2 分鐘

Ethereum 的指數型成長為資料處理與儲存帶來了困難,尤其是在區塊限制的約束下——這些限制是為了在鏈上驗證每一筆交易,藉此維持去中心化與資料安全性所必需的。

不同於與 Ethereum 平行運作、卻無法獲得其安全性優勢的側鏈,以及依賴自身共識機制來確保狀態有效性的單體式區塊鏈(monolithic blockchains),layer 2 區塊鏈在其架構中使用了證明機制。

哪些類型的區塊鏈使用證明機制?

證明機制最常見於使用 Rollups 來達成擴展性與提升吞吐量、同時確保基礎鏈狀態正確的 layer 2 區塊鏈中。 Rollup 是一種擴展方案,它在另一條區塊鏈上批次處理交易,並使用證明機制來確保交易的真實性。

Rollups 主要有兩種類型:

  1. Optimistic Rollups — 假設所有交易皆為有效,並使用**詐欺證明(fraud proofs)**在 7 天內證明不實交易
  2. 零知識(ZK)Rollups — 使用**有效性證明(validity proofs)**立即證明交易是否有效

有效性證明與詐欺證明皆用於在交易被記錄至基礎鏈狀態之前,驗證其合法性。

什麼是有效性證明?

有效性證明,也稱為零知識(ZK)證明,是一種交易驗證方法,發生在證明者(prover,即為某項資訊建立證明的一方)與驗證者(verifier,即驗證該證明的一方)之間,過程中雙方不會共享任何資訊

證明者與驗證者之間共享的資訊稱為見證(witness),通常是某個複雜數學方程式的解。簡而言之,證明者需要證明自己確實掌握該見證,而驗證者則需要能夠可靠地判斷證明者是否真的知曉該見證。

有效性證明如何運作?

有效性證明的設計目的是難以被破解,其依賴一種稱為多項式承諾(polynomial commitments)的密碼學技術。在多項式承諾中,驗證運算每一步驟的資訊都會被編碼為多項式,一個經過因式分解的多項式表達式可以代表大量數字之間的方程式。

透過驗證這些多項式方程式,即可間接驗證其中的數值計算,但對這些多項式進行雜湊處理的過程相當複雜。用於多項式承諾的三種主要多項式雜湊方案為:

  1. KZG(Kate)多項式承諾
  2. Bulletproofs
  3. FRIs

FRI 全稱為「Fast Reed-Solomon Interactive Oracle Proofs of Proximity(快速 Reed-Solomon 交互式預言機接近性證明)」。

哪些區塊鏈使用 ZK 證明?

使用零知識證明與 Rollups 的區塊鏈範例包括 zkSync、StarkNet 與 Zcash。

所有 ZK rollups 都高度專注於安全性與交易驗證,這使它們得以可靠地應用於各種使用情境。zkSync 與 Zcash 較著重於交易本身,而 StarkNet 則已多元發展,支援各種 dapp 與 DeFi 專案,其中包括 Immutable X——一個為遊戲社群提供安全 NFT 與 web3 開發的框架。

什麼是詐欺證明?

詐欺證明(fraud proof),也稱為故障證明(fault proof),是驗證者提交、用以質疑某項交易狀態的證明。根據實作方式不同,詐欺證明會重新執行一段交易並嘗試對其進行驗證。

以下是簡單的說明:

  • 若詐欺證明發現錯誤,則批次中插入的交易會被移除,該批次會回復至先前可驗證為正確的狀態。
  • 若在爭議期間內未有任何詐欺證明被提交,則該狀態變更會被樂觀地視為正確。

詐欺證明如何運作?

詐欺證明的運作方式是比對 Merkle 根,並透過單輪運算(如 Optimism)或多輪運算(如 Arbitrum)來驗證起始與結束狀態根。

區塊鏈是建立在一種稱為 Merkle Tree 的資料結構上,其中每筆交易皆為樹中的一個葉節點,而後續的分支則由越來越複雜的雜湊值所組成。

根節點,也稱為 Merkle 根(Merkle Root),是一個能有效壓縮資料的雜湊值,使使用者不必持續下載整條主鏈的完整資料。

綠色部分的資料,加上上方所示的 batch,足以驗證 post-state root。(來源:Vitalik's Blog)
綠色部分的資料,加上上方所示的 batch,足以驗證 post-state root。(來源:Vitalik's Blog)

若驗證者想要質疑某筆交易的狀態變更,他們只需提交目前的後狀態根(post-state root),以及可用來計算正確後狀態根的 Merkle tree 特定部分。若兩者不一致,該交易狀態變更將被回復,雜湊值也會重設為可證明正確的狀態根。

哪些區塊鏈使用詐欺證明?

詐欺證明與 optimistic rollup 模式相較於主鏈上的交易,成本顯著更低、速度也更快,這正是 Arbitrum、Optimism 與 Metis Andromeda 等區塊鏈偏好採用此方式的原因

Optimism 與 Arbitrum 皆使用自家、與 EVM 相容的虛擬機,專門為 optimistic rollup 功能設計,尤其著重於批次處理交易與提升吞吐量的能力;而 Metis 則更著重於其 L2 系統的實用性,提供多種功能以協助建立與開發應用程式(apps)DAOs 以及 DeFi 生態系。

有效性證明與詐欺證明有何相似之處?

ZK 證明與詐欺證明的相似之處在於,兩者皆使用 rollup 方案來達成擴展性,且兩者都有多種因應不同使用情境的實作方式。

1. 兩者皆用於 layer 2 的 rollup 型方案,以提升可擴展性

Rollups 的設計目的是將大部分負載從 Ethereum 主鏈上移除。Rollups 不在主網上執行交易,而是將運算移至鏈下進行,同時只在 Ethereum 上保留每筆交易的少量資料。透過壓縮交易,rollups 得以提升每秒交易數(TPS)的可擴展性,並降低平均 gas 成本。

Rollups 主要分為兩種類型:optimistic rollups 與 ZK rollups。

Optimistic rollups 的關鍵特徵在於,它們一開始便假設所有交易皆為有效,並允許這些交易加入批次。提交後會有一段爭議期,期間交易可透過詐欺證明被提出質疑。

零知識 rollups 與 optimistic rollups 相似,因為兩者都會將交易彙整為批次後提交,但兩者的一項主要差異在於,ZK rollups 在交易被寫入 rollup 之前,會使用有效性證明驗證每筆交易,且過程中不會共享任何個人資訊。

2. 有效性證明與詐欺證明皆有多種實作方式

有效性證明的實作方式包括但不限於 SNARKs 與 STARKs,而詐欺證明的實作方式則包括單輪 rollups 與多輪 rollups。

SNARKs 與 STARKs 的比較

兩種常見的 ZK 證明實作方式為 SNARKs 與 STARKs

SNARK 代表:

  • Succinct(簡潔)
  • Non-interactive(非互動式)
  • ARgument of(論證)
  • Knowledge(知識)

ZK SNARKs 建立的是簡短、可快速驗證的知識論證(即計算上可靠的密碼學證明),除了證明本身之外不需要任何額外資訊。

同樣地,STARK 代表:

  • Scalable(可擴展)
  • TRansparent(透明)
  • Argument of(論證)
  • Knowledge(知識)

SNARK 與 STARK 的主要差異在於 STARK 所具備的可擴展、透明特性。STARKs 之所以具可擴展性,是因為其證明規模呈線性成長,而 SNARK 證明的規模則僅為擬線性成長。因此,STARKs 更適用於較大規模的交易。

此外,SNARKs 具有透明性,因為它們可以使用可公開驗證的隨機性,來建立證明者與驗證者之間的互動,而不需依賴較為集中化、需要信任的初始設定。

單輪 rollups 與多輪 rollups 的比較

Optimistic rollups 主要分為單輪與多輪兩種類型,分別由 Optimism 與 Arbitrum 採用。當驗證者在 Optimism 上提交詐欺證明以質疑某筆交易時,整個證明過程會在 EVM 上執行完畢,這是一個相對快速且簡單的流程,唯一的限制是一週的爭議延遲時間(DTD)。

相較之下,Arbitrum 的詐欺證明驗證流程依賴一套互動式的鏈下爭議驗證機制,斷言者(asserter)與挑戰者(challenger)會在多個回合中反覆縮小交易範圍,直到找出雙方意見分歧的部分。

有效性證明與詐欺證明有何差異?

ZK 證明與詐欺證明存在多項差異,包括所需的運算量、驗證交易所花費的時間、安全性,以及實作的難度。

1. 有效性證明的運算量比詐欺證明更大

ZK 證明本質上在數學驗證上具有相當高的難度,由於真正的零知識驗證過程需要一定的技術性,通常需要密集的運算。

詐欺證明每批次的成本通常較低,約為 40,000 gas,而 ZK SNARK 證明則需要 500,000 gas。然而,ZK SNARKs 在鏈上的成本反而較低,因為 optimistic rollups 需要將所有資料重新發佈回主鏈,詐欺證明才能對結果進行證實或推翻。

2. 有效性證明即時完成,而詐欺證明有爭議延遲時間

ZK 證明與詐欺證明的一項主要差異在於,ZK 證明能立即驗證交易,而詐欺證明則存在固有的爭議延遲時間(Dispute Time Delay,DTD),會拖慢交易速度。只有當驗證者在該批次相關的爭議期內未提交任何詐欺證明時,該批次才會實際被發佈至 Ethereum。

3. 有效性證明具有更高的去中心化程度與資料安全性

由於 ZK 證明所需的互動極少(例如僅需將證明分享給驗證者),且此過程可以安全地完成,因此其去中心化程度非常高。

此外,由於這些證明屬於零知識、且準確無誤,有效性證明能夠保護使用者隱私,並將 51% 攻擊等針對 L1 鏈的重大威脅風險降至最低。

然而,optimistic rollups 需要驗證者提交詐欺證明,而此證明可能遭到攔截或 DDoS 攻擊,導致交易狀態的質疑無法送達至該批次。

4. 有效性證明較難實作

雖然 optimistic rollups(以及隨之而來的詐欺證明)可在任何 EVM 或 Optimistic 虛擬機(OVM)上運作,但零知識證明與 ZK rollups 則需要專門的虛擬機——稱為零知識 Ethereum 虛擬機(zkEVMs)。這類虛擬機能夠以符合 ZK 運算與密碼學有效性證明的方式執行智能合約。

直到最近,zkEVMs 一直被認為僅在理論上可行,即使到了現在,要將 EVM 進行改造以支援 ZK 證明仍具挑戰性。不過,ZK 領域近期出現了一些新進展,使 ZK 證明在吞吐量與可擴展性方面得以提升。

其中最值得注意的是,Polygon 正在打造自家的 rollup 技術,該技術使用遞迴式 ZK SNARKs,能更有效率地在鏈下執行交易,再回傳至主鏈。遞迴證明的運作方式,是一次證明多個交易區塊,接著再證明一個彙整後的區塊。

簡而言之,這是 SNARKs 在證明其他 SNARKs,最終產生一筆交易,其效率甚至比多筆彙整交易更高。Polygon 旗下的 Polygon Zero 使用 Plonky2 來建立這些遞迴證明,這也是目前速度最快的證明方案。

Validity Proofs (STARKs or SNARKs)

Validity Proofs (STARKs or SNARKs)

Fraud Proofs

On-Chain Data

zK-Rollup

Volition

Optimistic Rollup

Off-Chain Data

Validium

Volition

Plasma

另一種選項是 Validum,這是一種 ZK Rollup,與其在鏈上儲存部分資料不同,它將所有資料皆儲存於鏈下。這種架構的一項風險在於,StarkEx 操作者可能會阻擋存取或竄改鏈下資料,但這項風險可透過建立資料可用性委員會(Data Availability Committee,DAC)來緩解,該委員會負責提供中立且誠實的資料儲存服務。

我該使用哪種 layer 2 擴展方案?

直到最近,詐欺證明與 optimistic rollups 一直較受青睞,因為 ZK 證明過去實作困難、且運算量遠更為龐大,但零知識領域出現的一系列新進展,正使 ZK rollups 變得比以往更容易採用。

隨著越來越多 zkEVMs 的出現,加上更安全、不涉及個人資訊、且非互動式交易的保證,ZK rollups 正逐漸成為新興的首選 layer 2 擴展方案。

Background gradient

打造區塊鏈魔法

Alchemy 結合最強大的 Web3 開發者產品與工具,並提供資源、社群與卓越的支援。