ZK 協議使用代數上簡單的特殊哈希函數。 但如果我們的證明系統支持查找表,我們能做得更好嗎? 介紹 Polocolo:一種新的 ZK 友好的哈希函數,為 PlonKup 共同創作,作者是 Zellic 密碼學家 @baaaaaarkingdog。
在ZK友好的哈希函數中,這些函數在代數上是簡單的,以提高效率。 因此,對ZK友好哈希函數的攻擊集中在受限輸入受限輸出(CICO)問題上,因為解決方程組通常是對ZK友好哈希函數最有效的攻擊方式。 儘管設計者在考慮這些攻擊向量時仔細選擇其結構和參數,但ZK友好的哈希函數仍然常常受到攻擊。
如果 ZK 證明系統僅允許加法和乘法閘,那麼無法用代數表示的操作只需要大量的約束。 但如果 ZK 證明系統支持查找閘,所需的閘數量將大幅減少。 因此,在 ZK 友好的哈希函數中使用查找閘的主要優勢在於,它們不是以簡單的代數方式表達的,這可以提供對代數攻擊的抵抗力。
加強混凝土是第一個基於查找的ZK友好哈希函數,由磚、混凝土和鋼筋層組成(這裡使用了查找表)。 然而,一個主要的缺點是在ZK環境中評估鋼筋層的高成本。在加強混凝土的15個層中,只有一個是鋼筋層。 在多輪中迭代一個簡單層是可取且自然的,因為降低鋼筋層的成本並在多輪中迭代可能增強安全性,並允許在效率和安全性之間進行權衡。 這激勵了Polocolo的設計。
為了解決 Bars 層的高成本,提出了一種替代方法,稱為功率餘數法。 Polocolo 是一種基於查找的 ZK 友好哈希函數,具有不同的設計原則。 Polocolo 這個名字源於功率餘數,用於降低成本的表查找。
冪剩餘法有效地將查找表應用於大質數的 Fp 元素:p(≈2^256)。 使用冪剩餘法構建的 S-box 具有高階,只需 14 個 PLONK 閘,這比 Reinforced Concrete 的 Bar 函數所需的 94 個閘少得多。 利用這個 S-box,我們提出了 Polocolo,一種基於查找的 ZK 友好哈希函數。
Polocolo 是由 Zellic 密碼學家 @baaaaaarkingdog 設計的,他是 KAIST CryptLab 的成員,還有來自同一實驗室的其他研究人員。 在第二部分中,我們將介紹 Polocolo 的詳細規格和密碼分析,以及與其他 ZK 友好的哈希函數的性能比較。
5.51K