以太坊隱私技術密碼學基礎:Confidential Transactions 數學推導與整合方式

本文從密碼學的數學原理出發,深入分析以太坊隱私技術的核心原語:Pedersen 承諾、環簽名、Confidential Transactions、以及以太坊狀態樹的隱私優化。我們提供完整的數學推導,展示這些技術如何整合到以太坊生態系統中,以及它們在實際應用中的權衡取捨。

以太坊隱私交易密碼學基礎

Confidential Transactions = 隱藏交易金額的密碼學技術。

Pedersen 承諾

隱私交易的核心:

C = v·G + r·H

同態性

C₁ + C₂ = (v₁ + v₂)·G + (r₁ + r₂)·H

好處:可以驗證金額守恆,不透露具體數字!

範圍證明

確保金額非負(防止盜竊):

證明:0 ≤ v < 2^n

方法:把 v 拆成二進制,證明每個 bit 是 0 或 1:

template RangeProof(n) {
    signal input value;
    signal output bits[n];
    
    var lc = 0;
    for (var i = 0; i < n; i++) {
        bits[i] <-- value % 2;
        bits[i] * (1 - bits[i]) === 0;  // bit 只能是 0 或 1
        lc += bits[i] * (2 ** i);
    }
    lc === value;
}

保密轉帳的數學

假設 Alice 轉給 Bob:

Alice 這邊

驗證者只看到

但不能確定

資產證明

要提款時,需要證明你知道:

1. commitment 對應的秘密 (v, r)
2. v > 0(範圍證明)
3. commitment 沒有被花費(nullifier)
template Withdraw() {
    signal input commitment;
    signal input nullifier;
    signal input secret;
    signal input blinding;
    
    // 驗證 commitment
    commitment === PedersenHash(secret) + blinding * H;
    
    // 驗證 nullifier
    nullifier === Poseidon(secret);
    
    // 範圍證明
    rangeCheck(secret, 252);
}

結語

Confidential Transactions 的核心思想很簡單:用承諾代替明文,用零知識證明代替揭示。數學不複雜,複雜的是把所有東西整合起來還要保持安全。

COMMIT: Add Ethereum confidential transactions cryptography foundations

延伸閱讀與來源

這篇文章對您有幫助嗎?

評論

發表評論

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

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