原文標題:ZPU: The Zero-Knowledge Processing Unit
原文作者:Ingonyama
原文來源:medium
編譯:Kate, Marsbit
TL;DR:
在本部落格中,我們提出了零知識處理單元(ZPU),這是一種通用的可程式設計硬體加速器,旨在解決零知識處理的新需求。
我們將介紹ZPU架構和設計注意事項。我們解釋了ZPU生態系統不同部分背後的設計選擇:ISA,資料流,記憶體和處理元件(PE)內部結構。最後,我們將 ZK 和全同態加密 (FHE) 與最先進的 ASIC 架構進行比較。
介紹
資料驅動的應用程式的快速增長和對隱私的日益增長的需求導致了對保護敏感資訊的加密協議的興趣激增。在這些協議中,零知識證明(ZKP)作為確保計算完整性和隱私性的強大工具脫穎而出。ZKP使一方能夠在不洩露任何額外資訊的情況下向另一方證明宣告的有效性。這一特性導致ZKP在各種以隱私為重點的應用中得到廣泛採用,包括區塊鏈技術、安全雲端計算解決方案和可驗證的外包服務。
然而,在實際應用程式中採用ZKP面臨著一個重大挑戰:與證明生成相關的效能開銷。ZKP演算法通常涉及對非常大的整數的複雜數學運算,例如橢圓曲線上的大型多項式計算和多標量乘法。此外,密碼演算法在不斷髮展,新的和更有效的方案正在快速發展。因此,現有的硬體加速器很難跟上各種各樣的加密原語和不斷變化的加密演算法。
在這篇部落格中,我們提出了零知識處理單元(ZPU),這是一種新穎的多功能硬體加速器,旨在解決零知識處理的新需求。ZPU建立在指令集架構(ISA)上,支援可程式設計性,使其能夠適應快速發展的加密演算法。ZPU 具有處理元件 (PE) 的互連網路,具有對大字模組化演算法的本地支援。PE的核心結構受到乘法累加(MAC)引擎的啟發,該引擎是數字訊號處理(DSP)和其他計算系統中的基本處理元素。PE的運算子使用模組化演算法,其核心元件專門用於支援ZK演算法中的常見運算,例如NTT蝴蝶運算和用於多標量乘法的橢圓曲線點加法。
指令集架構
ZPU架構的特點是一個由指令集架構(ISA)定義的處理元件(PE)的互連網路,如下圖1所示。我們選擇這種架構是為了適應零知識協議不斷變化的環境。
ISA 方法使 ZPU 能夠保持靈活性,適應ZK演算法的變化,並支援廣泛的加密原語。此外,使用ISA而不是固定的硬體可以在製造後持續改進軟體,確保即使在該領域出現新的進展,ZPU也能保持相關性和效率。
ISA是處理器可以執行的一組指令。它作為硬體和軟體之間的介面,定義了軟體與硬體互動的方式。通過定製ISA來設計ZPU,我們可以針對ZK處理任務的特定要求對其進行優化,例如大字模算術運算、橢圓曲線加密和其他複雜的密碼運算。
圖1:PE網路結構
PE核心部件
每個PE都設計了一個核心,其中包括模乘法器、加法器和減法器,如圖2所示。這些核心元件的靈感來自數字訊號處理(DSP)和其他計算系統的基本處理元件,乘法累加(MAC)引擎。MAC引擎有效地執行乘法累加運算,包括將兩個數字相乘並將乘積加到累加器中。
PE的核心結構是為ZK中常見的運算量身定製的,例如用於多標量乘法的橢圓曲線點加法和用於數論變換(NTT)的NTT蝴蝶運算。蝴蝶運算包括加法、減法和乘法,都是在模運算下進行的。該操作的名稱來源於其計算流程圖的蝴蝶外觀,它非常適合PE的核心硬體元件,因為它們通過專用的蝴蝶指令實現原生蝴蝶計算。
此外,每個PE包含幾個專用記憶體單元,包括:
1.到達休息室:用於儲存到達PE的資料的儲存器。
2.出發休息室:用於儲存從PE出發的資料的儲存器。
3.運算元A、B和C的暫存儲存器:三個單獨的儲存器用於儲存中間結果。
4.記憶體擴充套件器:用於處理各種演算法需求的多用途記憶體,例如用於多標量乘法(MSM)的桶聚合。
5.程式儲存器:用於儲存指令佇列的儲存器。
圖2:PE核心元件
PE位寬
PE本機支援大字模組算術運算(最多256位字)。PE中高位寬本機支援和低位寬本機支援之間的權衡源於需要平衡不同運算元大小的效率。
當PE具有高位寬本機支援時,它會針對處理大運算元大小進行優化,而不需要將它們分解成更小的塊。然而,這種優化的代價是較小位寬操作的效率降低,因為PE未得到充分利用。另一方面,當PE具有低位寬本機支援時,它被優化為更有效地處理小運算元大小。然而,當處理較大位寬的操作時,這種優化會導致效率低下,因為PE需要將較大的運算元分解成較小的塊,並依次處理這些塊。
挑戰在於找到高低位寬本機支援之間的適當平衡,以確保在廣泛的運算元大小範圍內進行有效處理。這種平衡應該考慮目標應用程式領域(即ZK協議)中普遍存在的常見位寬度,並權衡每種設計選擇的優缺點。在ZPU架構的情況下,選擇256位字長作為一個很好的平衡。
PE的連線
所有PE之間採用環形連線,每個PE直接與相鄰的兩個PE相連,形成一個環形網路。這種環形連線允許控制資料在不同PE之間有效地傳播。PE也通過互連元件連線,這是一種類似於桶形移位器的機制,可以隨著時間的推移在不同的PE之間實現直接連線。這種設定允許PE傳送和接收來自所有其他PE的資訊。
周邊元件
該架構還整合了片外高頻寬記憶體(HBM),以支援高記憶體容量和高記憶體頻寬。將多個PE聚在一起組成一個PE叢集,每個PE叢集與一個HBM bank或通道相連。此外,還包括一個基於ARM的片上CPU子系統來管理整個系統操作。
績效評估
為了評估ZPU的效能,我們考慮了我們旨在加速的演算法的關鍵操作。我們主要研究的是NTT蝴蝶運算和橢圓曲線(EC)點加法運算。為了評估MSM和NTT操作的總計算時間,我們計算了它們所需的計算指令的總量,並將它們除以時脈頻率和PE的數量。
NTT 蝶形運算在每個時鐘週期執行。對於多標量乘法(MSM)中的關鍵元素橢圓曲線點加法運算,我們將其解構為可以在單個PE上執行的基本機器級指令。我們隨後計算完成此操作所需的時鐘週期數。通過分析,我們確定每個橢圓曲線點相加運算可以每18個時鐘週期執行一次。
這些假設為我們的效能評估提供了基礎,並且可以根據需要進行調整,以反映不同的演算法要求或硬體功能。
根據我們的計算,在GPU的1.305 GHz頻率上執行72個PE的配置足以匹配Zprize的MSM操作中GPU類別獲勝者的效能。Yrrid Software和Matter Labs都實現了這一壯舉,使用A40 NVIDIA GPU每4次MSM計算達到2.52秒的結果。該比較基於固定基點 MSM 計算,涉及從 BLS 12-377 標量場中隨機選擇的 2²⁶ 標量,以及來自 BLS 12-377 G1 曲線的一組固定橢圓曲線點和有限的隨機取樣輸入向量來自標量場的場元素。
根據我們對PE的面積估計,使用8nm工藝的ASIC,與A40 GPU中採用的工藝技術相同,可以在與A40 GPU相同的628 mm2面積內容納大約925個PE。這意味著我們實現了比A40 GPU高約13倍的效率。
PipeZK是一種高效的流水線加速器,旨在提高零知識證明(ZKP)生成的效能,具有專用的MSM和NTT核心,分別優化了多標量乘法和大型多項式計算的處理。
與 PipeZK 相比,我們發現僅 17 個以 PipeZK 頻率 300 MHz 執行的 PE 的配置就足以匹配 PipeZK 的 MSM 操作效能。PipeZK在BN128曲線中的2²⁰長度的MSM上以 300 MHz 執行 MSM 操作,耗時0.061秒完成。此外,為了匹配PipeZK的NTT操作效能,在300MHz下執行256位元素的2²⁰元素NTT,耗時0.011秒,我們需要大約 4 個以相同頻率執行的 PE。總的來說,為了匹配PipeZK同時執行MSM和NTT的效能,我們需要21個PE。
根據我們的面積估計,使用28nm工藝的ASIC(與PipeZK中採用的工藝技術相同)可以在與PipeZK晶片相同的50.75 mm2面積內容納大約16個PE。這意味著我們的效率略低於PipeZK的固定架構(效率低25%),同時仍然可以完全靈活地適應不同的橢圓曲線和ZK協議。
環處理單元(RPU)是最近的一項工作,旨在加速基於環的帶錯誤學習(RLWE)的計算,這是各種安全和隱私增強技術的基礎,如同態加密和後量子加密。
與RPU相比,我們的計算表明,當計算128位元素的64K NTT時,為了匹配RPU在最佳配置(128 bank和HPLEs)下的效能,我們將需要大約23個PE在RPU的1.68GHz頻率上執行。我們的分析表明,採用與RPU相同的12nm工藝技術的ASIC可以在RPU佔用的20.5 mm²面積內容納大約19.65個PE。這意味著我們的效率略低於RPU(效率低15%),同時與NTT以外的原語相容。
TREBUCHET是一個完全同態加密(FHE)加速器,它使用環處理單元(RPU)作為片上區塊。切片還通過將資料排程到接近計算元素的位置來促進記憶體管理。RPU在整個裝置中被複制,使軟體能夠最大限度地減少資料移動並利用資料級並行性。
TREBUCHET和ZPU都基於ISA架構和大型算術單詞引擎,這些引擎在模組化演算法下支援非常長的單詞(128位或更高)。然而,與RPU或TREBUCHET SoC相比,ZPU的附加價值在於它擴大了該架構旨在解決的問題集。RPU和TREBUCHET主要關注NTT,而ZPU支援更多的原語,如多標量乘法(MSM)和麵向算術的雜湊函式。
總結
我們的效能評估表明,ZPU可以匹配甚至超過現有最先進的ASIC設計的效能,同時對ZK演算法和加密原語的變化提供更大的適應性。雖然需要考慮權衡,例如PE 中高位寬和低位寬支援之間的平衡,但ZPU的設計經過精心優化,以確保在廣泛的運算元尺寸範圍內進行高效處理。對於那些有興趣瞭解更多關於ZPU或探索潛在合作的人,請隨時與我們聯絡。我們期待與大家分享更多關於ZPU項目進展和未來發展的最新資訊。
感謝Weikeng Chen的審閱。