零知識證明

KZG 承諾

KZG 承諾(Kate-Zaverucha-Goldberg)是一種具有驚人性質的多項式承諾:承諾與每一個求值證明都是「單一一個群元素」——無論多項式的次數多高,都是固定大小。你對一個多項式 p(x) 做承諾的方式,是在可信設置所烤入的祕密點 τ 處「於指數中」求值,產出承諾 C = [p(τ)]。整個可能有上百萬個係數的多項式,就被壓進區區數十位元組的一個橢圓曲線點裡。

要證明就驗證者所挑的某點 z 有 p(z) = y,證明者倚靠一個簡單的代數事實:p(x) − y 能被 (x − z) 整除,當且僅當 p(z) = y。於是證明者算出商多項式 q(x) = (p(x) − y)/(x − z),把它的承諾 π = [q(τ)] 當作證明送出。驗證者檢查一個配對方程式,它成立當且僅當該整除關係屬實。一次配對檢查、一個固定大小的證明,與計算規模無關——這正是讓 KZG 對區塊鏈而言如此理想的簡潔性。

KZG 驅動了 PLONK 與許多生產級 zkEVM,也是以太坊 EIP-4844 blob 背後的承諾:每個 blob 被當成一個多項式,用 KZG 做承諾,好讓彙整能廉價地證明資料可得性。代價是需要可信設置(Powers of Tau 儀式),且仰賴對配對友善的曲線,而這些並非抗量子的。它的同態結構還帶來批次開封:橫跨多個多項式的許多次求值,基本上能用一個合併的證明一次證完。

C = [p(τ)]; q(x) = (p(x) − y)/(x − z); proof π = [q(τ)]; verify: e(π, [τ] − [z]) = e(C − [y], [1])

做承諾、藉商多項式證明一次求值,再以單一配對檢查完成驗證。

KZG 那固定大小的證明,完全來自於可信設置對 τ 的編碼。若設置祕密 τ 外洩,攻擊者就能把一個承諾開封成任何他想要的值,破壞約束性——這又是 Powers of Tau 儀式必須保持誠實的另一個原因。

又称
Kate commitmentKate 承諾