ZK² Rollup 包含了兩層或多層 SNARKs,遞歸證明增加了方案實現難度。

推薦閱讀:《以太坊網絡隱私保護實用指南

原文標題:《隱私方案 ZK² Rollup:如何在以太坊上實現高速、廉價的隱私交易》(Aztec: Fast Privacy with ZK² Rollup)
撰文:Thomas Walton-Pocock
編譯:灑脫喜

據以太坊聯合創始人 Vitalik 表示,隱私協議團隊 AZTEC 正在研發 ZK-ZK Rollup 方案,以在以太坊主網上實現每秒數百筆的隱私交易,同時可降低每筆隱私交易的成本。

一文了解 AZTEC 開發的 ZK² Rollup:在以太坊實現高速廉價的隱私交易

對於 ZK Rollup 方案,一些讀者可能已經有所瞭解,那這個 ZK-ZK Rollup,又是個啥呢?我們來看 AZTEC 官方給出的解釋:

啥是 ZK² Rollup

AZTEC 團隊正在爲 PLONK 證明進行 ZK-ZK Rollup 的研發工作,以減少在以太坊主網上進行隱私交易的 gas 成本。

傳統的 ZK Rollup 利用了 SNARKs 的「簡潔性」屬性來擴展公共區塊鏈,這種技術允許將大量交易「彙總」爲一筆聚合交易,因此以太坊可以一次執行 100 筆或 1000 筆交易,而所消耗的 gas 成本就相當於一筆以太坊交易的花費。

所以 ZK-SNARKs 也可以是一種用於擴容的核心工具,此外,我們已經認識到用戶可以使用 ZK-SNARKs 來保護隱私。那兩者可以同時兼得嗎?

答案是:「yes」。

AZTEC 目前正在積極部署 ZK-ZK Rollup,或簡稱 ZK²,因爲它包含了兩層或多層 SNARKs:

  • 「低層」ZK-SNARKs 每個都代表了一筆隱私交易;
  • 「上層」ZK-SNARKs (即 Rollup SNARK),則簡潔地證明了低層 SNARK 的正確性;

注意:這個術語有點粗糙,因爲實際上不需要將「上層」彙總爲 ZK (零知識),一旦創建了「低層」SNARKs (隱私交易),這些交易的隱私就得到了保證。事實上,Rollup 只依賴於縮寫「SNARK」中的「S」屬性,意思就是「簡潔」。我們需要花費高昂的成本來檢查隱私交易,並用一個簡潔的 Rollup 證明來替換它們,然後它的成本就會分攤給所有的交易。

一文了解 AZTEC 開發的 ZK² Rollup:在以太坊實現高速廉價的隱私交易100 筆交易「彙總」到單個 SNARK 證明

AZTEC 很快就會允許你在以太坊主網上以 100 tps 的速度發送隱私交易,這同時兼顧了餘額隱私和用戶隱私。

而在理想情況下,Rollup 理論上是可以達到 2,000 tps 的。

那爲何隱私 Rollup 交易會如此困難呢?

是什麼使 ZK² Rollup 如此困難?

遞歸:證明的證明

在標準的 ZK Rollup 中, Rollup SNARK 證明是非常適合 SNARK 的數學推理,圍繞公共 token 傳輸的邏輯可以很容易地轉換爲「算術電路」。

但是對於 ZK² Rollup 而言,你需要在另一個 SNARK 電路(上層 Rollup SNARK)中驗證一個 SNARK 證明(下層隱私 SNARK)。

這就被稱爲遞歸(指在 SNARKs 中證明 SNARKs 的行爲)。

而遞歸是很困難的,因爲你要麼需要非常特殊的數學條件,要麼你就會面臨像山一樣龐大的計算量。

具體來說,你需要以下條件之一:

  1. 要找到所謂的「配對友好」曲線循環,而這是非常罕見的存在,而且在它們存在的地方,其安全性是非常低的,你需要選擇非常大且計算成本很高的數字系統來描述它們(例如,MNT4 和 MNT6 曲線),或者
  2. 模擬電路中的二進制算術,而二進制算術又可以用於模擬素數域運算。這需要大量使用範圍證明(range proofs),而範圍證明(range proofs)是很消耗成本的;

狀態更新

除了計算上的不利因素之外,狀態更新的管理比公共 ZK Rollup 要具有更多的開銷。ZK² Rollups 需要更多的狀態更新,並且需要發送更多的數據:

  1. 對於標準(公開) ZK Rollup 而言,用戶可以使用基於帳戶的模型,這需要每筆交易進行 2 次狀態更新。但是,爲了防止統計攻擊,保護隱私的 ZK² Rollups 就需要用到 2 倍的數據,其中 2 個狀態變量被添加到狀態樹中,另外 2 個變量被添加到 nullifier 樹中。
  2. 也許一個更大的瓶頸,是數據傳輸要求,傳統的 Rollup 涉及每筆交易 4–8 字節的負載,而隱私隱蔽 Rollup 涉及每筆交易 32–64 字節的負載,而在以太坊的數據,仍然是昂貴的。

可證明隨機性

AZTEC 還需要驗證隨機性的來源(將「交互式證明」轉換爲「非交互式證明」的魔法,這樣你就不必每次在花錢時都要忍受與以太坊進行痛苦的交互)。

這種隨機性意味着哈希。而在 SNARKs 中的哈希就是一個真正的問題:

  1. 對 SNARK 友好的哈希算法(例如 Pedersen 哈希)缺乏傳統哈希函數的僞隨機性:將輸入的一部分更改爲 Pedersen 哈希,你就會知道輸出會發生什麼。 由於缺少此屬性,我們無法輕鬆生成證明者無法操縱的數字;
  2. 我們可以轉向不太被廣泛接受的 SNARK 友好哈希函數(例如 Poseidon, Rescue),但「已定型」和「廣泛採用」這兩大屬性,是我們對密碼學原語信心的基礎,而在有價值的密碼學系統中部署這些未被證明的哈希函數,可能還爲時過早;
  3. 因此,我們別無選擇,只能求助於對 SNARK「不友好」哈希算法(例如 Blake2 或 SHA256),而它們大量使用了二進制邏輯和範圍證明(range proof)。

然而,AZTEC 在 2020 年已取得了一些關鍵的研發突破,這包括其最新發表的研究論文 PLOOKUP,這使得實踐者能夠在 SNARKs 高效地進行一些對 SNARK 非友好的任務。

在結合其他創新的情況下,遞歸的大門就被打破了。

PLONK: 一種新的 ZK 標準

據悉,AZTEC 的 SNARK 證明是使用該公司 CTO Zac Williamson 和現任首席科學家 Ariel Gabizon 創建的稱爲 PLONK 的最新數學成果構建的。

在過去的幾個月裏,一些領先的擴展性和隱私項目選擇加入了 PLONK 生態系統,其中包括:

  1. Dusk Network 最近宣佈他們改用 PLONK;
  2. Matter Labs 正在透明設置環境中實現 PLONK;

AZTEC 的通用 SNARK 系統描述了一種連接電路的新方法(R1CS 是現有的標準),而轉換標準總是要付出代價的,這需要重寫行業標準代碼庫。隨着 TurboPLONK 的推出,關於「自定義門」的選擇公認標準,目前僅是在形成的初期階段。

來源鏈接:medium.com