橢圓曲線點壓縮數學原理完整指南:從代數基礎到 secp256k1 實作
橢圓曲線點壓縮是以太坊、比特幣等區塊鏈系統中廣泛使用的空間優化技術。通過僅存儲曲線點的 x 座標和一個奇偶校驗位,點壓縮可以將 64 位元組的未壓縮座標減少到僅 33 位元組,節省約 50% 的存儲空間和傳輸帶寬。本文從數學原理出發,深入解析點壓縮的代數基礎、橢圓曲線密碼學中的實際應用、以及在 secp256k1 曲線上的完整推導過程。涵蓋模平方根計算、Tonelli-Shanks 算法、SEC 1/2 標準、以太坊智能合約實作,以及側信道攻擊防禦等核心主題。
橢圓曲線點壓縮原理
點壓縮可以讓存儲空間減少 50%。
為什麼可以壓縮?
曲線方程:y² = x³ + ax + b
關鍵觀察:給定 x,y 要麼是某個值,要麼是它的負元。
(x, y) ↔ (x, -y mod p)
所以只要知道 x 和 y 的奇偶性,就能恢復完整點。
編碼格式
| 前綴 | 意義 |
|---|---|
| 0x02 | y 是偶數 |
| 0x03 | y 是奇數 |
| 0x04 | 未壓縮(x 和 y 都存) |
恢復 y 座標
給定 x 和奇偶性,求 y:
secp256k1 的特殊優化:
因為 p ≡ 3 (mod 4):
def recover_y(x, parity):
# 計算 y² = x³ + 7
y_squared = (x**3 + 7) % p
# y = ±(y²)^((p+1)/4)
y = pow(y_squared, (p + 1) // 4, p)
# 根據奇偶性選擇正確的 y
if y % 2 != parity:
y = p - y
return y
數字例子
設 p = 97(實際用 2^256 - 2^32 - ...),x = 3:
y² = 3³ + 7 = 34 (mod 97)
y = ±34^((97+1)/4) = ±34^25
34^2 = 42
34^4 = 42² = 67
34^8 = 67² = 57
34^16 = 57² = 21
34^25 = 34 * 34^8 * 34^16 = 34 * 57 * 21 = 23
所以 y = 23 或 74 (= 97-23)
如果 parity = 1(y 是奇數),選擇 y = 23。
為什麼用奇偶性?
因為:
- 實現簡單(只要一個 bit)
- 足夠區分兩個候選值
- 比其他方案(如 x 座標)更節省空間
結語
點壓縮是區塊鏈存儲優化的基礎技術。比特幣和以太坊的地址、簽名都用到了這個技巧。
COMMIT: Add elliptic curve point compression guide
相關文章
- 橢圓曲線密碼學基礎:以太坊簽章機制與零知識證明的數學理論 — 橢圓曲線密碼學(ECC)是現代密碼學的基石,也是比特幣和以太坊所採用的核心密碼學技術。secp256k1 曲線被用於以太坊的交易簽章,BLS 簽名在共識層發揮關鍵作用,而零知識證明系統(如 zk-SNARK、zk-STARK)則構建於橢圓曲線配對之上。本文將從數學原理出發,深入解析橢圓曲線密碼學的理論基礎,闡述離散對數問題的複雜性如何保障系統安全,並詳細說明這些理論如何應用於以太坊的各類密碼學實踐。
- 零知識證明數學推導完整指南:從密碼學基礎到以太坊應用實戰 — 本文從數學推導的角度,全面分析零知識證明的基本原理、主要類型(SNARK、STARK、Bulletproofs)、電路設計方法,以及在以太坊上的實際應用部署。涵蓋完整的代數推導、Groth16 和 Plonkish 約束系統、FRI 協議、以及 zkEVM 架構分析。詳細比較不同 ZK 系統的 Gas 消耗與 TPS 表現,提供量化數據支撐的事實依據。
- 以太坊、Zcash 與 Monero 隱私性完整比較指南:密碼學原理、實際應用與監管影響 — 本文深入分析以太坊、Zcash 和 Monero 三種主流密碼學貨幣的隱私保護技術架構。我們從密碼學原理出發,涵蓋零知識證明(zk-SNARKs、Halo ARC)、環簽名(Ring Signatures)、環隱藏交易(RingCT)等核心技術的數學推導,同時比較 Pedersen 承諾、Merkle 樹驗證、匿名集大小等關鍵參數。三種技術在發送者隱私、接收者隱私、金額隱私和關聯性隱私等維度上有著不同的權衡取捨。本文還分析各平台在監管環境下的合規挑戰,並預測零知識證明在以太坊 Layer 2 隱私方案中的未來應用方向。
- 隱私池聯盟成員證明深度技術實作:zkSNARK 電路設計與合規框架完整指南 — 本文深入探討隱私池中聯盟成員證明的密碼學原理、zkSNARK 電路設計、具體實現方式,以及在實際合規場景中的應用。我們提供完整的 Circom 電路代碼、Solidity 智能合約示例,以及針對不同合規框架的實施策略,涵蓋 AML/KYC 合規集成、等級驗證與監管報告等核心主題。
- ZK-SNARKs 數學推導完整指南:從零知識證明基礎到 Groth16 協議工程實踐 — 本文從工程師的視角出發,提供零知識證明數學基礎的完整推導。從密碼學安全假設出發,逐步建立零知識證明的理論框架,深入分析 zk-SNARKs 的核心協議——包括 Groth16、PLONK 與 Halo2 的設計原理與數學推導,並提供完整的程式碼範例說明如何在以太坊上實際部署零知識證明系統。
延伸閱讀與來源
- zkSNARKs 論文 Gro16 ZK-SNARK 論文
- ZK-STARKs 論文 STARK 論文,透明化零知識證明
- Aztec Network ZK Rollup 隱私協議
- Railgun System 跨鏈隱私協議
這篇文章對您有幫助嗎?
請告訴我們如何改進:
0 人覺得有帮助
評論
發表評論
注意:由於這是靜態網站,您的評論將儲存在本地瀏覽器中,不會公開顯示。
目前尚無評論,成為第一個發表評論的人吧!