尋找參數及其調整

本文為機器翻譯
展示原文

在建構 =nil 的佔位符證明系統時;基金會,我們使用基於 Aztec 研究人員的Plookup 論文的查找參數。我們以 Plookup 技術為起點,然後針對編寫具有複雜邏輯的大型 PLONK 電路進行了一些實際改進。

尋找參數允許證明者證明素數字段上的某些表(以下稱為分配表)滿足特定限制:從分配表(查找輸入)計算的一些單元屬於也從分配表(查找表)計算的值列表。

連接和分裂演算法

Plookup技術的核心是排序演算法。我們稱之為連接和拆分,因為它包括兩個步驟:

  • join — 使用特殊的重新排序演算法將查找表列與輸入列連接到單一大向量。
  • split — 建構的向量再次分割成原始大小的部分。

Plookup 論文詳細描述了單一查找表和單一輸入列的情況。但這對於我們的用例來說還不夠。我們需要大量高效打包的查找表和應用於任意行和列的查找約束,並且我們不想為每個(input, table)對重複查找參數。

因此,我們修改了連接和分割演算法,使其能夠連接兩列以上。它允許我們使用多個查找約束,即使它們應用於相同的行並使用大型查找表,即使其大小大於整個分配表行數(透過將列而不是行附加到分配表)。分配表格行和列數量之間的平衡有助於找到最佳證明效能和驗證成本的完美平衡。

選擇器列

原始文章包含尋找位於相同或相鄰行中的值元組的技術。它使用隨機因子構造列的線性組合。將此方法與用於查找表和輸入列的多項式表達式結合,我們實現了選擇器列的完全支援。電路設計人員現在可以管理哪些行受到確切約束以及哪些行被保留用於查找表存儲。

Plookup 論文也描述了多查找表支援的技術。他們建議將每個查找表與其唯一識別碼相關聯,並填入標記列以標記哪些行包含具有哪個標識符的查找表。輸入的標記列有助於標記哪些約束應用於標記行。標記列應該是分別為查找表和輸入列構造的隨機線性組合的一部分。這種方法顯然是有限制的。找出表格大小的總和應小於整個表的行數。

我們將查找表標識符的使用與大型查找表的選擇器列構造和演算法結合。這些修改允許儲存和使用查找表,而不考慮查找參數限制,而是根據最佳電路設計。它使我們的查找參數成為一個通用且靈活的工具。

我們的修改的詳細說明可以在我們的HackMD頁面上找到。歡迎分享您的評論!

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