矢諾爾簽名演算法 Schnorr Signature

Schnorr Signature,用於驗證資料的真實性與所有權,使比特幣能在維持安全性的同時,提升隱私性、降低交易成本並支援更複雜的應用場景。

矢諾爾簽名演算法 Schnorr Signature

 

Schnorr Signature 矢諾爾簽名演算法,是一種數位簽名演算法,由德國密碼學家 Claus-Peter Schnorr 於 1989 年提出。

Schnorr Signature 與 ECDSA ,同樣可用於驗證資料的真實性與所有權,而 Schnorr Signature 在簽名結構與聚合能力上更具效率優勢。但由於當時該演算法受到專利保護以及正在階段性標準化,中本聰在 2008 年撰寫比特幣協議時,優先選擇了開源的 ECDSA 演算法。

隨著專利過期,Schnorr Signature 作為比特幣新的原生數位簽名機制,於 2021 年 Taproot 軟分叉升級後正式納入比特幣共識規則之中。 Schnorr Signature 並非用來取代 ECDSA 所有用途,而是提供更有效率的簽名方案。其最大的價值在於簽名聚合能力,使比特幣能在維持安全性的同時,提升隱私性、降低交易成本並支援更複雜的應用場景。


矢諾爾簽名演算法 基本概念

  • 數位簽名 數位簽名是一種利用私鑰產生簽名、公鑰驗證簽名的機制,可用來證明訊息確實來自私鑰持有者,且內容未被竄改。

  • 橢圓曲線密碼學 ECC Schnorr Signature 與 ECDSA 同樣建立於橢圓曲線密碼學 Elliptic Curve Cryptography,ECC 之上。 比特幣目前使用 secp256k1 橢圓曲線作為其簽名演算法的數學基礎。

  • 線性特性 Schnorr Signature 具有線性特性,可作為 MultiSig 等簽名聚合協議的基礎。 在適當協議下,多個公鑰可聚合為一個公鑰,多個簽名亦可聚合為一個簽名。 這項特性是 Taproot 與 MultiSig 多重簽名方案的重要基礎。

  • Nonce 一次性隨機數生成 在 Schnorr 簽名演算法中,每次簽名都會生成一個隨機數 Nonce,用於確保安全性,抵禦其他攻擊形式。


矢諾爾簽名演算法 運作方式

  • 密鑰生成 使用者生成一組私鑰,並透過橢圓曲線點乘運算產生對應公鑰。

  • 訊息雜湊 對交易資料進行雜湊運算,產生固定長度的訊息摘要。在比特幣 BIP 340 規範中,使用 Tagged Hash 機制避免不同用途的雜湊產生衝突。

  • 簽名生成 使用私鑰與一次性 Nonce 值對訊息摘要進行運算,產生 Schnorr Signature。

  • 簽名驗證 驗證者使用公鑰與訊息摘要驗證簽名。若驗證成功,代表訊息未遭修改且確實由私鑰持有人簽署。


矢諾爾簽名演算法 應用

  • Taproot Taproot 升級透過 BIP 340 規範,正式將 Schnorr Signature 導入比特幣網路,提升比特幣的隱私性與擴展能力。

  • 多重簽名 多個簽名者可共同產生一組聚合簽名,降低鏈上資料量。

  • 閃電網路 Schnorr 的線性特性讓閃電網路得以從現行的 HTLC 雜湊時間鎖合約,升級至 PTLC 點時間鎖合約。在 HTLC 下,整個路由路徑上的節點都使用同一個雜湊值,存在隱私關聯風險。PTLC 利用 Schnorr 簽名與橢圓曲線密碼學的線性特性,使每一跳通道中的條件鎖定皆可獨立表示,看起來彼此毫無關聯,實現端到端交易隱私與更安全的通道管理。

  • 智慧腳本 搭配 Taproot 與 MAST 默克爾化抽象語法樹,Schnorr 簽名可以將複雜的條件支付機制、時間鎖或多方協調合約,隱藏於 Taproot 承諾之中,並在需要時僅揭露實際執行的腳本路徑。


矢諾爾簽名演算法 相關 BIP

  • BIP340:Schnorr Signature
2026/9/18 7:17 AM


更多文章