KZG 承諾代數推導與 PLONK 電路約束完整指南:從多項式承諾到零知識電路的數學原理

KZG 承諾方案是以太坊 Layer 2 生態系統中 ZK-Rollup 的核心密碼學基礎。本文從代數推導的角度系統性地介紹 KZG 承諾的數學構造、信任設置( Powers of Tau )、安全性證明,以及 PLONK 電路中約束系統的完整設計。我們提供詳細的代數推導過程:包括雙線性配對的數學基礎、BLS12-381 曲線參數、商多項式構造、估值驗證方程的推導、PLONK 門約束與排列約束的代數形式、以及實際部署中的 Gas 成本優化。同時包含 Circom 電路設計範例和 zkSync、Starknet 等項目的工程實踐分析。

KZG 承諾代數推導與 PLONK 約束

承諾方案

Commit(f) = f(τ)·G

τ = 信任設置的秘密值

PLONK 約束格式

Q_L·a + Q_R·b + Q_M·a·b + Q_O·c + Q_C = 0

電路約束

// PLONKish 約束
template PlonkGate() {
    signal input a, b, c;
    signal output out;
    
    // 自訂約束
    a * b === c;
}

與 Groth16 的比較

特性Groth16PLONK
設置每個電路通用一次
靈活性
約束數

結語

PLONK 的通用性是亮點。

COMMIT: Add KZG commitment PLONK constraints guide

延伸閱讀與來源

這篇文章對您有幫助嗎?

評論

發表評論

注意:由於這是靜態網站,您的評論將儲存在本地瀏覽器中,不會公開顯示。

目前尚無評論,成為第一個發表評論的人吧!