1. 引言
2024 年,人權基金會(Human Rights Foundation,簡稱 HRF)啟動了一項研究獎學金計劃,旨在探討“跨輸入簽名聚合”(Cross-Input Signature Aggregation,簡稱 CISA)的潛在影響。CISA 是一個擬議中的比特幣升級提案,預計將大幅降低私密交易的成本。目前,使用隱私保護功能的比特幣交易通常需要額外費用,這限制了許多用戶使用這些功能的意愿或能力。此外,這些額外費用在威權政權下可能成為一種風險,因為當局可能會質疑為何用戶選擇使用增強隱私的方式。
該 CISA 獎學金授予了開源開發者 Fabian Jahr,他花了六個月時間研究 CISA 的潛在影響。其在一份長達 38 頁的報告——《Cross-Input Signature Aggregation for Bitcoin》中分享了他的研究成果。Jahr 在報告中出色地回顧了比特幣歷次升級的歷史,并闡述了為何 CISA 或許是繼 SegWit 和 Taproot 之后的下一個邏輯升級步驟。
1.1 內容摘要
《Cross-Input Signature Aggregation for Bitcoin》內容摘要為:
- CISA 允許將來自不同輸入的多個 Schnorr 簽名聚合為一個單一簽名,從而顯著減少交易體積并節省手續費。
- CISA 并不是一個單一概念,它包括不同的聚合模式(完全聚合和半聚合)與范圍(交易級和區塊級),需要在即將提出的提案中權衡它們的優劣。
- 通過降低多輸入交易的成本,CISA 鼓勵并常態化使用協作式隱私工具,如 CoinJoin 和 PayJoin,替代普通交易,從而增強用戶匿名性并提升網絡效率。
- 企業,尤其在進行“資金整合交易”時,能獲得顯著節省,這有助于抑制 UTXO 集合的增長,并加快交易所和電子商務平臺的采用速度。
- 實現 CISA 需要進行一次軟分叉(soft fork),并且仍需進一步的密碼學研究,以制定一項能最大化網絡收益的提案。
1.2 跨輸入簽名聚合(CISA)簡介
跨輸入簽名聚合(Cross-Input Signature Aggregation,簡稱 CISA)是一個比特幣協議的提案性增強功能,它允許將單個交易中,甚至多個交易中,不同輸入所使用的多個 Schnorr 簽名聚合為一個更小的單一簽名。這一變更將減少比特幣交易的數據體積,從而帶來潛在的手續費節省以及處理效率的提升。
除了上述優勢,CISA 還可能通過激勵特定類型的協作式交易(如包含多個輸入的 CoinJoin 和 PayJoin)來提升隱私性,這與比特幣提高可替代性(fungibility)和金融隱私的長遠目標一致。這種改進并不會以犧牲用戶體驗為代價——在最差的情況下,用戶體驗應與當今 CoinJoin 和 PayJoin 所提供的體驗相當,而這類交易仍有大量用戶體驗優化空間。
CISA 是基于 Schnorr 簽名在比特幣中通過 Taproot 軟分叉(BIP 340)所實現的激活基礎之上的進一步演進。與中本聰最初選擇用于比特幣的 ECDSA 簽名算法不同,Schnorr 簽名具備可加性和線性特性,允許多個簽名者將各自的簽名合并為一個,同時仍能被驗證。
自 Taproot 軟分叉以來,比特幣用戶已經可以在多重簽名策略(multisig policy)中使用一種被稱為“密鑰聚合”(key aggregation)的方式進行簽名聚合,如通過 MuSig2 協議。但這些方法僅適用于密鑰持有者共享同一個腳本或地址的特定場景。 而 CISA 的不同之處在于,它允許不同參與方所擁有、使用不同密鑰的獨立輸入被聚合為單個簽名進行簽名驗證。
如果 CISA 被激活,它可能會激勵用戶行為的變化,使像 CoinJoin 或 PayJoin 這樣的協作式交易變得更加便宜,從而使增強隱私的實踐變得常態化和普及,并整體上加強比特幣網絡的隱私性。對于人權倡導者或其他具有更高隱私需求的用戶來說,更低成本的隱私保護功能以及更大的匿名集(anonymity set)將是重要的好處。
與此同時,對于處理大量交易的企業(如交易所),尤其是在進行 UTXO 整合操作時,也能從中享受更低的鏈上手續費。隨著 CISA 被更廣泛采用,企業以及錢包實現應當順應趨勢,優先使用協作式交易方式進行交易。出于節省成本的動機而進入該領域的企業,將為那些因隱私原因而使用這類交易的普通用戶提供額外的法律保護屏障。
然而,實現 CISA 需要一次共識更改,即一次軟分叉(soft fork),因此比特幣社區與開發者需要就帶有聚合簽名的交易和區塊的新驗證規則達成一致。
本報告概述了 Schnorr 簽名聚合及相關概念的背景,預覽了 CISA 的潛在技術細節(包括“半聚合”與“完全聚合”的變體),探討了將其納入比特幣共識規則的可行性,并展望了未來的可能開發步驟。報告還探討了 CISA 的潛在應用,從企業視角到用戶體驗,并討論了 CISA 如何與其他比特幣協議提案相互作用。
2. 背景與歷史語境
本節將探討 Schnorr 簽名及簽名聚合在比特幣中的歷史背景,并簡要考察其他采用簽名聚合作為協議組成部分的加密貨幣項目。
2.1 比特幣之前
德國數學家與密碼學家 Claus-Peter Schnorr 于 1989 年在 CRYPTO '89 大會上發表的開創性論文中首次提出了 Schnorr 簽名方案 [schnorr-wiki]。該論文題為《適用于智能卡的高效身份認證與簽名》(Efficient Identification and Signatures for Smart Cards),其中 Schnorr 首先介紹了一種交互式身份認證協議,該協議可以在不泄露秘密的前提下證明對該秘密的掌握,隨后他展示了如何通過 Fiat–Shamir 啟發式方法將其轉化為非交互式的數字簽名方案 [schnorr-alinush]。
這個簽名方案依賴于離散對數問題的計算困難性,這使其成為最早一批完全基于離散對數假設(而非因式分解或其他問題)構建安全性的簽名設計之一 [schnorr-wiki]。
Schnorr 簽名相較于早期的數字簽名算法(如 RSA 或 ElGamal)是一種顯著的突破。它結構更為簡潔、效率更高。Schnorr 簽名不僅簽名更短,計算上也更為簡單直接——與 RSA 中的大指數運算或 ElGamal 的雙輸出相比 [schnorr-cse],Schnorr 設計體現出對實用性需求的強烈考量:該方案旨在為如智能卡等設備提供足夠高效的簽名方法,并通過減少計算與存儲開銷來改進現有方案 [schnorr-wiki]。
Schnorr 簽名提出后,引起了學術界的廣泛興趣。密碼學家們贊賞其優雅性——一位專家曾評論說,它是“理論與直覺上正確的做法,而不是(EC)DSA 這類令人厭惡的方案” [schnorr-cse]。早期研究進一步確立了 Schnorr 簽名的安全性:如 Pointcheval 與 Stern 在 1996 年證明,在假設離散對數問題難解的前提下,Schnorr 簽名在隨機預言機模型中具有可證明安全性 [schnorr-cse]。在當時,簽名算法具備形式化安全證明尚屬新穎,因此這為 Schnorr 提供了堅實的科學基礎。
盡管在密碼學界獲得高度認可,Schnorr 簽名在現實世界中的應用卻多年未能普及。主要障礙在于專利問題:Schnorr 于 1990 年為其簽名算法申請了專利(美國專利號 US 4,995,082)[schnorr-wiki],發布不久即受法律保護。這使得開發者與標準組織在面對法律風險與授權成本時望而卻步。
事實上,即便 Schnorr 方案被認為簡單而強大,美國國家標準與技術研究院(NIST)在制定數字簽名標準時仍選擇不采用,而是在 1991 年推出了與其極為相似、但刻意規避專利侵權風險的 DSA(數字簽名算法)[hackmd]。盡管 Schnorr 本人堅持認為 DSA 仍侵犯了其專利權,但該主張備受爭議 [bitmex]。
這種狀況導致 1990 至 2000 年代初期形成了一個悖論:Schnorr 簽名在理論上被認為是安全甚至更優的,但卻在標準體系與主流軟件中難覓蹤影。相比之下,NIST 的 DSA 及其橢圓曲線版本 ECDSA 已廣泛部署十余年。像 OpenSSL 這類主流密碼庫——支撐著現代網絡安全通信加密解密工作——并未提供即插即用的 Schnorr 實現,卻長期支持 ECDSA,這進一步使得新項目傾向于使用 ECDSA。
當中本聰在 2009 年推出比特幣時,Schnorr 的專利剛于 2008 年到期 [bitmex],但包括 OpenSSL 在內的工具生態尚未跟進支持 Schnorr。在當時,采用 ECDSA 是更為自然的選擇——它已被驗證、無需授權費用且開箱即用,盡管 Schnorr 從技術上可能更具優勢。正如比特幣開發者 Pieter Wuille 所指出的那樣:“在比特幣誕生時,已經為時已晚——人們更傾向于使用一個廣為人知、標準化的方案,而不是自己設計一套加密方案。” [bse-ecdsa]
直到多年之后,擺脫法律壁壘的 Schnorr 簽名重新受到比特幣技術社區的關注,并因其潛在的新應用前景再次成為研究與開發熱點。
2.2 比特幣語境下的 Schnorr 簽名聚合討論
隨著 Schnorr 簽名專利的到期以及比特幣逐漸成熟,開發者意識到,引入 Schnorr 簽名不僅能夠提升隱私性與效率,還為諸如 CISA(Cross-Input Signature Aggregation,跨輸入簽名聚合)等新型機制提供了可能性。這使得比特幣的功能可以突破 ECDSA 所能實現的實際邊界。然而,從 ECDSA 遷移到 Schnorr 需要一次軟分叉和大量審查,最終在 2021 年 11 月以 Taproot 升級的形式正式激活。
Taproot(BIP 340/341/342) 以向后兼容的方式將 Schnorr 簽名引入比特幣 [ops-taproot]。盡管最初的 Taproot 提案并未包含 CISA 功能,但它為未來實現這項增強功能奠定了基礎。事實上,本文所描述的大多數 CISA 相關構想,早在 Taproot 軟分叉籌備期間就已經陸續被社區討論。
比特幣核心開發者在 2016 年 5 月于蘇黎世舉行的 CoreDev 會議上討論了 Schnorr 簽名聚合的問題,提出了多個聚合層級的設想。其中,“跨交易輸入的簽名聚合”概念首次被提出,即將一筆交易中所有輸入的簽名合并為一個簽名。他們還進一步設想,將聚合擴展到整個區塊級別(甚至考慮使用 BLS 簽名),以及為隱私目的進行輸入/輸出方向的單向聚合,并指出若交易共享一個聚合簽名,將具備一定的抗審查能力 [coredev16]。
在 2016 年中期的一次比特幣開發者與礦工會議上,斯坦福大學著名密碼學教授 Dan Boneh 呼吁遷移至 Schnorr 簽名,并啟用交易級別的簽名聚合。他估計,若廣泛采用這種跨輸入聚合方法,可節省約 30% 的區塊空間。Boneh 還建議通過一次軟分叉引入此功能,作為邁向全區塊級簽名聚合的第一步 [boneh16]。
2016 年 10 月,Pieter Wuille 在米蘭舉行的 Scaling Bitcoin 會議上介紹了 Schnorr 簽名,并描述了一種潛在的 CISA 功能。他指出,CISA 可將區塊大小減少約 20%,這一增益雖然溫和,卻能通過允許 CoinJoin 參與者共享一個簽名來對齊激勵機制,從而共同分攤交易費用。Wuille 還解釋道,在 SegWit 激活后,實現每筆交易僅一個簽名將非常直接,并且通過批量驗證簽名的方式可以顯著提升驗證速度 [milan16]。
2017 年 5 月,Tadge Dryja 在 bitcoin-dev 郵件列表上提出了一種區塊級非交互式 Schnorr 聚合方法。他的思路是:礦工可以將整個區塊內所有 Schnorr 簽名的 s 值求和,僅將聚合后的 s 值記錄在 coinbase 交易中。這樣,每個簽名的大小可以縮減為 32 字節,不僅節省空間,也加快區塊驗證速度,因為整個區塊只需一次標量乘法即可完成驗證。他同時也指出該方案可能帶來的副作用,如增加 mempool 緩存復雜度與快速失敗驗證機制的失效,但希望社區對此提出反饋 [tadge]。
進入 2018 年初,社區開始更加關注 CISA 的安全性問題。在 BPASE 2018 大會上,Wuille 回顧了阻礙立即部署 CISA 的主要難題。他描述了天真的多重簽名方案中可能出現的“惡意密鑰攻擊”(rogue-key attack):攻擊者可以復制另一個簽名者的公鑰及消息,在不同輸入中重復使用,從而欺騙性地授權花費受害者的幣。已知的解決方法是要求每個簽名者通過額外簽名或承諾來證明其對公鑰的所有權,但這樣一來,這些證明必須寫入鏈上,反而會抵消絕大多數效率收益。因此,這些未解決的安全隱患使得 CISA 無法在 Schnorr/Taproot 升級中安全地包含 [bpase]。
在 2018 年 2 月,Greg Maxwell 提出了一項對 Taproot 的擴展——Graftroot,并指出它可以利用 CISA。Graftroot 的樸素實現通常需要額外的一個 64 字節簽名,但 Maxwell 指出,一個被稱為 “非交互式 Schnorr 聚合技巧”(現稱 half-agg)的方案可以將普通簽名與 Graftroot 簽名的 s 值統一合并為一個聚合簽名。這樣,多個 Graftroot 的代理腳本就能分別只增加約 32 字節的開銷。他認為這可以將所有簽名綁定到交易上,同時保持 Graftroot 與 Taproot 接近的成本 [graftroot]。
同年,開發者們也意識到 CISA 會使未來腳本升級更加復雜。開發者 Anthony Towns 指出,在軟分叉中將聚合簽名與新 opcode 結合將存在困難。他舉了一個關于假想 covenant opcode 的例子:若第二個簽名是條件性必需的,而舊節點無法驗證這一條件,就會錯誤驗證聚合簽名集合,破壞軟分叉的一致性假設。他提出的應對策略是將簽名劃分為不同“buckets桶”,以適應不同條件,但這也顯著增加了復雜度。這一討論強調了跨輸入聚合與某些腳本升級操作不可同時推進的技術沖突,最終促成了暫緩引入 CISA 的決定 [aj]。
在 Taproot 激活前不久,開發者們明確指出 Taproot 不包含 CISA。2020 年 8 月,在 Reddit 的 r/Bitcoin 板塊上發布的一篇帖子專門澄清了這一誤解,解釋稱雖然 Schnorr 簽名為 CISA 的實現提供了可能性,但出于工程復雜性考慮,CISA 被有意從 Taproot 提案中排除。該貼還重申了 CISA 的優勢——多個輸入共享一個簽名可極大降低大型 CoinJoin 的體積與費用成本,但同時也強調,CISA 為未來升級帶來了顯著的工程挑戰,且對比特幣協議擴展性構成復雜性,因此選擇了推遲 [reddit]。
2.3 Schnorr 聚合案例研究:MimbleWimble 協議
雖然比特幣引入 Schnorr 簽名的時間相對較晚,但一些其他加密貨幣從一開始就以支持簽名聚合的方式使用 Schnorr 簽名。其中一個尤其值得關注的協議是 MimbleWimble,它是 grin、beam 等加密貨幣的底層協議,也作為萊特幣(Litecoin)的 MWEB(MimbleWimble Extension Block,MimbleWimble 擴展區塊) 功能的基礎。
MimbleWimble 通常被稱為隱私優先協議,因為它取消了地址的概念、合并交易,并使用機密交易(Confidential Transactions)。該協議設計中的一個關鍵點是,它以聚合方式使用 Schnorr 簽名,從而實現隱私保護與區塊空間效率的雙重目標。
在 MimbleWimble 中,一筆交易的所有輸入和輸出會共同生成一個利用 MuSig 協議 的聚合簽名,用于證明對輸入的所有權,而不會暴露金額或地址。由于該協議會合并中間輸出,因此可以對交易數據進行修剪,僅保留最終狀態和一組能夠驗證整個所有權鏈條的聚合簽名。這種設計利用了 Schnorr 簽名的線性特性,實現了對所有輸入的部分簽名進行求和 [mw1][mw2][mw3]。
接下來分別看看這種機制在 grin、beam 和 Litecoin 的 MWEB 中是如何實現的:
- 1)grin:
grin 是 MimbleWimble 協議的第一個主要實現 [grin]。grin 的交易構建過程要求發送者與接收者協同生成部分簽名并進行組合。由于每位參與者都會為其輸入和輸出選擇隨機的盲因子(blinding factor),因此交易中最終包含一個 Schnorr 簽名,該簽名證明所有私鑰(即盲因子)之和在橢圓曲線階數模下等于零。
每筆交易僅包含一個聚合簽名,若多個交易的輸出相匹配,則可以在區塊內進一步合并(稱為 cut-through)。grin 通過引入交互式交易構建機制來處理這種復雜性,并仔細驗證“輸入承諾之和減去輸出承諾之和是否為零”,該驗證由 Schnorr 聚合簽名完成。盡管這種交互性在實際使用中可能不夠便捷,但它是該協議隱私性與效率性的核心基礎。 - 2)beam:
beam [beam] 是另一個基于 MimbleWimble 的加密貨幣,其交易同樣通過在每筆交易內聚合簽名來實現隱私保護。與 grin 類似,beam 的交易也依賴一個多階段流程來生成一個涵蓋所有輸入的 Schnorr 簽名。
beam 與 grin 的主要區別在于用戶體驗以及在隱私性和其他功能方面的額外層次。例如,beam 團隊引入了名為 “Bulletproofs+” 的范圍證明機制,并將其與聚合 Schnorr 簽名集成,旨在降低交易驗證的計算開銷。 - 3)MWEB(MimbleWimble Extension Block):
萊特幣在 2022 年引入了 MimbleWimble 擴展區塊(MWEB)功能 [mweb]。該擴展區塊與萊特幣主鏈并行存在,使用戶可以選擇性地參與 MimbleWimble 交易。正如 grin 與 beam 一樣,MWEB 通過聚合 Schnorr 簽名來以保密的方式證明對輸入的所有權。
每筆合并多個輸入的 MWEB 交易都會使用一個聚合 Schnorr 簽名,確保交易既具備隱私保護能力,又提升區塊空間利用率。
除了 grin、beam 和 MWEB,也存在一些小型項目使用基于 Schnorr 的聚合或多重簽名機制。但上述三種 MimbleWimble 實現依然是目前所知最主要的例子。它們表明,如果整個區塊鏈架構圍繞交互式簽名構建,Schnorr 簽名聚合完全可以成為默認的交易模型的一部分。
這為比特幣提供了寶貴的啟示:如果能夠在交易流程中盡早合并簽名,節省空間與提升隱私便能成為常態。然而,MimbleWimble 中的交互性也成為了其普及的障礙之一。此外,MimbleWimble 將所有輸入合并為一個聚合簽名的方式,屬于一種高度定制化的設計,這意味著比特幣若要引入跨輸入聚合,其路徑將必須有所不同,以確保向后兼容性與低交互性。
盡管如此,這些生態中的錢包使用體驗為此提供了一個窗口:如果 CISA 最終在比特幣中實現,未來比特幣錢包的用戶體驗可能會呈現類似的演進路徑。將在后文再次回顧 MimbleWimble 案例研究所帶來的啟發。
2.4 BLS 簽名聚合案例研究:Chia
除了使用 Schnorr 簽名進行聚合的加密貨幣之外,一些其他高知名度項目也使用了不同的簽名聚合方案或多簽構造。其中一個典型例子就是 Chia。Chia 所采用的密碼學假設與設計取舍與比特幣中 secp256k1 + Schnorr 的組合有所不同,但在協議層面部署聚合簽名的方式及其對礦工、用戶等各方的影響方面,Chia 提供了重要的借鑒意義。
Chia [chia] 與比特幣的最大區別在于其使用了 BLS(Boneh-Lynn-Shacham)簽名方案,該方案依賴于橢圓曲線雙線性對(如 BLS12-381)實現。BLS 因其近乎無縫的非交互式聚合能力而廣為人知:任何數量的 BLS 簽名,即便是針對不同消息,也都可以被組合為一個簡短的簽名。這是因為 BLS 聚合簽名的驗證通過雙線性對運算來完成,能夠驗證每個公鑰是否確實簽署了對應的消息。
Chia 的區塊鏈自始至終就是圍繞 BLS 構建的,這使得區塊生產者可以將整個區塊中所有交易的簽名合并為一個聚合簽名。
在 Chia 協議中,無論聚合了多少個獨立簽名,最終聚合簽名的大小始終為 96 字節。其主要復雜性在于如何確保每個公鑰的合法性。此外,盡管驗證一個 BLS 聚合簽名在每個簽名上的計算成本可能高于單個 Schnorr 簽名驗證,但在處理大量簽名時,整體性能仍可能更優。
對比特幣開發者而言,Chia 展示了一個真正落地的跨輸入、甚至跨交易的簽名聚合的加密貨幣實現案例。它的最大不同之處在于:BLS 簽名依賴于雙線性對運算、不同類型的橢圓曲線,以及一套完全不同的密碼學假設。
另一方面,BLS 是非交互式的。比特幣之所以選擇基于 secp256k1 曲線的 Schnorr 簽名,是出于對延續性與保守性的考慮。
Chia 在 BLS 聚合上的成功表明,如果整個鏈的設計都圍繞聚合展開,可以帶來顯著的數據效率提升。但對于比特幣來說,直接替換為 BLS 幾乎不可能:這不僅因為現有的安全模型與廣泛部署的 secp256k1 硬件,還因為社區普遍不愿意引入基于雙線性對的新型密碼學假設。
因此,比特幣目前對 Schnorr 簽名聚合的研究,更多是試圖在現有曲線與生態系統基礎上復制 BLS 的一部分優勢,盡管這可能需要在交互性上作出一些權衡。
將在后文再次回顧 Chia 案例研究所帶來的啟發。
3. CISA 深入探討
在本章節中,將探討 CISA(跨輸入簽名聚合)中可能影響未來比特幣軟分叉的各個方面。
3.1 前言:在比特幣中區分簽名聚合與密鑰聚合
對于那些希望深入理解 CISA 的人來說,**密鑰聚合(Key Aggregation)與簽名聚合(Signature Aggregation)**之間的區別一直是一個常見的困惑來源。正因如此,在進入更具體的技術細節前,首先介紹這個區別,以避免讀者在閱讀本論文時產生誤解。
密鑰聚合指的是在地址生成時,將多個公鑰合并為一個聚合公鑰,使得簽名者組之后可以共同生成一份 Schnorr 簽名。在 MuSig 簽名方案中,多個簽名者相互交互,以聯合簽署同一條消息,最終生成一份 Schnorr 簽名,該簽名可通過聚合后的公鑰驗證。驗證者無需知道個體密鑰的存在——這意味著這些密鑰不會出現在鏈上,從而提高了隱私性與交易效率。Taproot 升級引入了 Schnorr 簽名,從而支持在單個輸入內部進行此類密鑰聚合。但它并不支持 CISA。Taproot 下的共識規則并不關心簽名是如何生成的;對于每個輸入,它只看到一份 Schnorr 簽名和一個公鑰——因為密鑰聚合在簽名前就已完成。[bse-keyagg] [blkstr-keyagg]
為了說明這一點,可以舉個例子:Alice 和 Bob 使用 MuSig 進行密鑰聚合來開設一個閃電網絡通道。在設置階段,Alice 和 Bob 各自擁有一對公鑰和私鑰,分別記作 (A_pub, A_priv) 與 (B_pub, B_priv)。通過 MuSig,他們可以將各自的公鑰合并成一個聚合公鑰,稱之為 AB_pub。此過程需要他們的閃電節點在線并相互交互,盡管此時還沒有任何內容上鏈。
在通道開啟時,他們不是創建一個多簽地址來同時使用 A_pub 和 B_pub,而是直接使用聚合后的 AB_pub。這樣,從外部看起來就像是只有一個簽名者存在。
為通道注資時,Alice 和 Bob 會共同創建一筆交易,將資金發送到對應 AB_pub 的地址。由于從這個地址花費資金需要雙方合作,他們必須就交易細節達成一致。當想要關閉通道時,他們分別使用各自的私鑰(A_priv 和 B_priv)生成簽名,并通過 MuSig 簽名過程將這些簽名合并為一個,最終得出一份與 AB_pub 對應的 Schnorr 簽名。
簽名聚合則發生在簽名時或簽名之后。CISA 特指將多個簽名——每個簽名分別對應不同的輸入、公鑰與消息——合并為一份簽名。驗證這樣的聚合簽名需要一種新的算法:它接收一組公鑰與消息,以及一份聚合簽名,然后驗證每個公鑰是否確實簽署了各自的消息。這要求共識層提供額外支持,如一個新的 opcode 或驗證規則,能夠同時查看多個輸入。 目前,比特幣協議是逐個輸入地驗證簽名的。[bse-keyagg]
現在將 Alice 與 Bob 的密鑰聚合例子,與一個簽名聚合的例子進行對比:
假設在交易層引入了某種“半聚合”(half-agg)功能,Alice 和 Bob 一同參與了一筆 CoinJoin(合幣)交易,與許多其他人一起。在這個場景中,CoinJoin 的構建過程并沒有改變,仍然是一個交互式過程,但簽名聚合不必參與其中。每個參與者像往常一樣獨立為自己的輸入添加簽名。直到 CoinJoin 交易完成后,其協調者才將所有參與者的簽名聚合為一個簽名,這一步不需要 Alice 和 Bob 的再參與,然后協調者將這筆最終交易廣播到網絡上。這就是**后簽名聚合(post-signing aggregation)**的例子。
需要指出的是,CISA 本身并不會直接提升隱私性,因為所有的輸入和對應的公鑰依然是可見的,觀察者可以判斷交易使用了多個輸入。實際上,聚合簽名甚至可能透露出這些輸入是一起簽署的這一事實。相比之下,MuSig 式的密鑰聚合則可以隱藏是否存在多個簽名者。[blkstr-keyagg]
這也是為什么 Taproot 更加專注于密鑰聚合,而未納入簽名聚合功能的原因:密鑰聚合對隱私性的提升更加直接,也更容易讓用戶感受到實際影響。
3.2 完全聚合與半聚合
在 Schnorr 簽名聚合的廣義概念下,比特幣交易中的簽名聚合可以采用兩種主要方式:完全聚合(Full Aggregation)與半聚合(Half Aggregation)。這兩種方法的目標都是將多個 Schnorr 簽名壓縮成更小的整體,但它們在協調要求和最終簽名大小方面存在顯著差異。
在完全聚合(full-agg)中,所有簽名者需要協作地共同生成一份簽名,相當于他們對同一內容聯合簽署。這一過程類似于一個擴展版的 MuSig:多方交換隨機數(nonce),并合并輸入,最終輸出一份64 字節的 Schnorr 簽名,無論聚合了多少個簽名。這種最大壓縮方式可以帶來最優的空間節省效果。
但代價是,它需要一個交互式協議,所有參與者在簽名過程中需要相互通信。每個簽名者必須共享加密承諾,然后合并各自的部分簽名。這也意味著他們需要進行多輪通信以生成一個有效的聚合簽名。
如果所有簽名都來自同一個實體,這種交互就很簡單——錢包可以在內部完成所有操作,這種場景中常見的簽名安全問題大多也不再適用。但如果簽名來自多個獨立參與者(如在 CoinJoin 或 PayJoin 中),完全聚合就會帶來顯著的復雜性。每位參與者都必須同時在線并配合,或者至少能夠多次與其他參與者通信;一旦有任意一方拒絕配合或掉線,整個聚合簽名就無法完成。
這對協議的安全性和可靠性是一個重要挑戰:惡意或不穩定的參與者可能通過拒絕提供簽名數據或提交無效片段,破壞整個交易的完成。像 MuSig2 或 ROAST 這樣的強健多方簽名協議可以緩解這些風險,處理簽名者中途退出或行為異常的問題,但它們也引入了更高的復雜性。當前還沒有可用的簽名協議能支持 full-agg 在比特幣中落地,這也是 full-agg 尚無法成為軟分叉提案的一部分的重要原因。
相比之下,半聚合(half-agg)則允許在簽名各自獨立完成之后進行合并,不需要簽名者之間的任何交互。每位參與者獨立為自己的輸入生成一份標準的 Schnorr 簽名。之后,一個聚合者(可以是錢包、節點或礦工)將這些簽名集合壓縮成一份簽名,其大小大約是原始簽名總大小的一半。
具體而言,一個含 N 個簽名的 half-agg 聚合簽名大小約為 32*N + 32
字節,而非 64*N
[halfagg-bip]。這主要通過拼接所有簽名的 r 值,再加上一個聚合后的 s 值實現。
half-agg 的關鍵特性是:該過程是一個純函數,它僅依賴于已有的簽名、公鑰與消息,無需任何額外的秘密數據或交互。 因此,聚合可以在事后由礦工或中間節點完成。
它最大的優勢就是:簽名者無需協調。參與者像往常一樣單獨簽名,而聚合只是一個可選的優化步驟,完全可以在之后單獨執行。這使得 half-agg 在多方場景中更容易部署。如,CoinJoin 用戶不需要額外進行交互式簽名協作,交易協調者或礦工可以在交易組裝完畢后將簽名聚合。
此外,還可以組合使用 full-agg 與 half-agg,以降低需要交互的參與方數量。如,一部分輸入可能由單個實體或小組控制,這些輸入可以通過完全聚合方式先聚合成一個簽名;然后,這些結果再通過半聚合方式合并為一個最終簽名。
這種混合設計意味著只有小規模組內需要交互,而跨組之間的最終聚合無需交互。因此,可以將 full-agg 保留給適合交互的場景,將 half-agg 用于聚合不同組之間的簽名。這樣就能將交互限制在可控范圍內,同時獲得大部分的壓縮與效率收益。
3.3 交易級聚合與區塊級聚合
在 CISA 的設計中,另一個重要的考量維度是聚合的作用范圍:簽名應該僅在每筆交易內聚合,還是應該跨整個區塊進行聚合,或者兩者兼有?這幾種選擇在安全性權衡和性能影響方面各有不同。
3.3.1 交易級聚合(Transaction-wide Aggregation)
交易級聚合指的是將一筆交易中所有輸入的簽名聚合為一個簽名,或者聚合其中的一部分簽名。如,假設一筆交易有 5 個輸入,每個輸入都需要一個簽名,CISA 允許將這些簽名合并為一個,涵蓋全部 5 個授權驗證。
這是 CISA 最直接、最現實的應用場景之一,因為每筆交易保持自包含:它攜帶一個聚合簽名,可以獨立驗證,不依賴其他交易。
好處包括:
- 降低交易數據大小,
- 對于花費者而言可以降低手續費,
- 對像 CoinJoin 這樣的應用尤其有效,如將 100 個輸入簽名聚合成一個,使協作型花費更加高效。
在安全方面,交易級聚合作用域更有限:聚合失敗只影響該交易本身。如果簽名無效,或者簽名者未能成功生成聚合簽名,該交易將無法被轉發或打包,但不會影響其他交易或整個區塊。這種局部化的失敗模式更容易處理:如,錢包可以在聚合失敗時回退為常規簽名方式。
交易級聚合的潛在壓縮空間不如區塊級聚合那么高,因為每筆交易至少仍然保留一個簽名。如果交易數量很多而每筆交易輸入很少(比如只有 1~2 個輸入),那么節省效果就不明顯。交易級聚合的優勢在于每筆交易包含多個輸入時更為突出。不過,即使每筆交易只略微壓縮一些,積少成多,也能帶來可觀的總收益。
此外,交易級 CISA 可以在實現上保持范圍有限:比如通過引入一個新的見證版本(witness version),表明該交易的所有輸入采用聚合簽名,僅需在交易的某個部分包含該單一簽名,并讓每個輸入都對此簽名作出承諾。驗證者只需使用該簽名對所有輸入公鑰進行驗證。這確實改變了驗證規則,但作用范圍仍然局限于交易內部。
需要注意的是,full-agg(完全聚合)只適用于交易級聚合,而無法用于區塊級聚合。稍后會進一步說明原因。
3.3.2 區塊級聚合(Block-wide Aggregation)
相比之下,區塊級聚合是一個更加極端的設想:它意味著將整個區塊中所有交易的輸入簽名聚合為一份簽名。理論上,這可以實現一個區塊內僅存在一個簽名,而這個簽名覆蓋了上百甚至上千個輸入 [bse-keyagg]。由此帶來的空間節省非常顯著——除了每個區塊保留一個簽名之外,幾乎可以移除所有簽名字節。
但與此同時,區塊級聚合也帶來了更大的安全性權衡與復雜性:
- 首先,它必須是非交互式聚合,因為每個交易的用戶根本不可能事先知道自己的交易會被打包進哪個區塊,也無法與區塊中其他用戶協作;
- 聚合的責任自然就落在礦工身上。
礦工在收集交易時,最初這些交易仍然帶有各自的獨立簽名,接著礦工再在打包區塊前將所有簽名合并成一個 [bse-keyagg]。
礦工這樣做的激勵機制很清晰:聚合簽名可以釋放區塊見證區的空間,從而讓礦工能夠打包更多的交易,獲得更多手續費收入。
不過這也意味著,整個區塊的有效性將依賴于這唯一的一份聚合簽名。一旦該簽名驗證失敗,整個區塊都將作廢。在實際操作中,如果礦工在聚合過程中出錯,或者某筆交易中包含無效簽名,那么最終的聚合簽名將無法通過驗證,整個區塊會被拒絕。
從本質上講,這與當前規則并無太大不同——現在也是只要區塊中有一筆交易的簽名無效,整個區塊就會被認為無效。但在區塊級聚合中,由于只有一個簽名,驗證者失去了定位具體出錯輸入的能力,如果沒有額外數據,將很難追蹤是哪個輸入出了問題。
3.4 鏈下協議 / 點對點網絡(P2P)
值得探討的是,簽名聚合是否可以在不改變共識規則的前提下實現,如作為鏈下協議的一部分,或通過對點對點網絡的巧妙利用。即便像 CISA 這樣的軟分叉提案還需要時間落地,也有可能在某些特定場景下通過簽名聚合來提前獲得部分收益。
這種帶外優化的核心思想是對數據進行壓縮以便在網絡上傳輸。為了簡化討論,在此假設這些簽名最終并不會上鏈。在這樣的前提下,half-aggregation(半聚合)顯然更適合這類用法,因為它是非交互式的,任何人都可以對一組簽名進行聚合。
已有研究提出了一個適用于閃電網絡(Lightning Network)gossip 協議的用例:在通道公告(channel announcement)中,節點通常需要發送 4 個獨立簽名,而通過使用半聚合簽名,可以將這 4 個簽名合并為 1 個 [halfagg-bip],從而大幅減少 gossip 消息的體積。因為這些簽名不會進入區塊鏈,所以網絡中的節點可以約定使用聚合的 Schnorr 簽名來提高效率,而無需修改 Bitcoin 的共識規則。這樣做可以節省帶寬資源,是鏈下聚合的一個成功案例:閃電網絡節點只需升級以支持新的消息格式,不需要礦工或鏈上的任何變更。
除了閃電網絡之外,還有一個全新的二層協議提案原生支持半聚合簽名:Shielded CSV。這是一個注重隱私保護且具備可擴展性的協議,運行在現有區塊鏈之上,允許用戶進行幣的交換和驗證,而無需將所有交易細節上鏈。它的運作方式是:只將很小的一段“nullifier”數據廣播到區塊鏈上,用于防止雙重支付;而實際的交易證明通過點對點方式在鏈下進行傳遞,這樣不僅節省了區塊空間,也提升了隱私性。
在默認設計中,Shielded CSV 中的每個賬戶都需要在鏈上提交一份 Schnorr 簽名,以使其舊狀態作廢(nullify)并確認新交易。若輸入或參與方較多,所有簽名都上鏈會占用大量空間,從而違背 Shielded CSV 想要實現的“緊湊性”目標。
半聚合正好解決了這個問題:它可以將多個 Schnorr 簽名合并為一個壓縮后的簽名,其大小僅比一份標準簽名稍大。最終的鏈上數據,也被稱為聚合 nullifier(aggregate nullifier),包含以下三個部分:
- 一組 Schnorr 公鑰,每個代表一個被作廢的賬戶狀態;
- 一份半聚合簽名,整體證明所有參與用戶確實簽名授權;
- 一個簡短的承諾(commitment),標識是誰發布了這份聚合簽名,以便給予其小額費用(由 Shielded CSV 提供)。
由于半聚合可以將多份簽名壓縮為大約原始大小的一半,即便在大量用戶同時更新狀態的情況下,鏈上的數據負擔仍然是可控的。從概念上講,這些簽名依然是 Schnorr 簽名,只是在其中加入了“簽名綁定合約(sign-to-contract)”的技巧,使每個用戶在簽名時承諾自己對應的新交易數據。接著,由一個協調者或發布者收集這些部分簽名,執行半聚合過程,生成一個簽名并提交上鏈。
這種設計確保了每個用戶的狀態變更都是有效且可驗證的,但區塊鏈只需看到一個精簡的聚合簽名。這種最終壓縮的形式使得 Shielded CSV 能夠兌現其隱私強、數據開銷小的核心承諾。
目前,Shielded CSV 仍處于非常早期的階段,尚未出現實際實現。但它是一個非常有趣的例子,展示了未來二層協議可能如何在不依賴軟分叉的情況下使用簽名聚合技術。
4. CISA好處
4.1 空間和費用節省
從根本上說,CISA(聚合簽名提案)在節省空間方面可能帶來的影響有兩種看法,而在比特幣區塊鏈上,節省空間就等同于節省交易費用。
- 第一種方式是以過去為未來的預測:如果用戶行為保持與過去一致,我們能夠節省多少費用?
& 第二種方式則是假設用戶行為不會保持一致,而是在 CISA 推出后發生變化,甚至是劇烈變化。
在費用(以聰計算)和空間(以字節計算)的節省上,你會看到不同的表現。這是由于 SegWit(隔離見證)引入的“折扣”機制。SegWit 把驗證交易所需的數據(即“見證數據”)從交易本體中移除,并放入區塊的一個分離部分中。
每個輸入都有一個見證,通常包括一些腳本,但最關鍵的是包含了必要的簽名。雖然 SegWit 本質上是為了解決交易malleability易變性問題(不同的見證可以對應同一筆交易),但見證折扣的存在旨在激勵 SegWit 的采用,并讓花費輸出的成本更低,從而減緩 UTXO 集合的膨脹。見證數據的費用折扣為 75%,而由于CISA正在聚合簽名,節省下來的空間全都集中在見證部分,所以與之對應的費用節省就相對溫和一些。
4.1.1 外推節省模型
外推模型假設 CISA 推出后比特幣網絡的使用方式不會發生根本變化。這意味著可以使用過去交易的平均結構和大小來計算用戶采用 CISA 后可以節省的成本。Jonas Nick 編寫了一個 Python 腳本作為這項計算的基礎 [jonas-savings],此腳本內容已被稍作修改和更新 [jonas-script]。
腳本使用的是平均每筆交易的輸入和輸出數量。使用的是去年(區塊高度 833,000 至 886,000)得出的平均值,另一腳本得出的結果是:每筆交易平均輸入數為 2.12,輸出數為 2.64。
在這些條件下,若使用半聚合(half-agg),每筆交易平均可節省 6.9% 的交易費用和 19.3% 的空間。若使用全聚合(full-agg),費用節省將增至 7.3%,空間節省則為 20.5%。
這些數字可能看起來不那么驚人,特別是半聚合與全聚合之間的節省差距較小,可能會讓一些讀者感到失望。然而請記住,這些是歷史平均值,在數值上本身就不大。而對 CISA 的樂觀預期包含網絡行為會發生變化的假設,而這將在下一個模型中考慮。
4.1.2 顛覆性節省模型
顛覆性模型則假設 CISA 的引入將根本改變大多數用戶與比特幣的互動方式,也會改變人們在鏈上看到的交易類型。特別是該模型認為,在 CISA 實施后,更大型的 CoinJoin 和 PayJoin 交易將變得更加經濟可行。
撰寫本文時,CoinJoin 交易數量極少,主要是因為近期對最受歡迎的 CoinJoin 實現方案進行了打擊 [rip-wasabi][rip-samourai]。因此,若以現階段的區塊數據來預測未來 CoinJoin 的使用情況,并不合理。相反,將查看 CoinJoin 在流行時期的表現,并在樂觀情景下評估其未來可能的廣泛應用,特別是由 CISA 激活所觸發的情況。
在此將重點研究 WabiSabi 風格的 CoinJoin,因為它傾向于使用更多的輸入和輸出,因此更能從 CISA 中獲益。
首先來看一筆類似 WabiSabi 歷史平均的 CoinJoin 交易。此類交易平均包含 76 個輸入和 121 個輸出 [cjadopt]。假設每個輸入對應一個參與者,所需手續費率為 10 聰/vbyte。
在這些假設下,該 CoinJoin 交易將需支付 95,835 聰的交易費,交易大小為 13,347 字節。若使用 CISA 半聚合簽名,則需支付 89,653 聰(大小為 2,432 字節),節省 6,078 聰,費用減少 6.35%(空間減少 18.2%)。
若使用 CISA 全聚合,則費用為 83,573 聰,節省 12,157 聰(4,863 字節),費用節省 12.7%,空間節省 36.4%。
這些數字在整體網絡影響較溫和的背景下,仍屬可觀。在更樂觀的情景下,CoinJoin 的使用頻率甚至可能超過之前的水平。WabiSabi 風格的 CoinJoin 一般以 100 個輸入為目標,這是該交互式協議的自然限制。
在這種情況下,假設有 150 個輸出,100 個參與者,每人一個輸入,手續費率仍為 10 聰/vbyte。當前該交易需支付 122,105 聰費用,若采用 CISA 半聚合,則費用為 114,002 聰,節省 7,999 聰(6.6%)。采用全聚合時,費用降至 106,002 聰,節省 15,998 聰(13.1%)。
如上所述,這種大型 CoinJoin 屬于 WabiSabi 風格。而另一個流行的 CoinJoin 實現 Whirlpool(由 Samourai 推出)則采用一系列較小的交易,每筆交易包含 5 個輸入和 5 個輸出。
作為對比,這類交易在使用 CISA 半聚合時可節省 7.6% 的費用和 20.2% 的空間;使用全聚合時則可節省 15.2% 的費用和 40.3% 的空間。
這些數字可能比前面提到的大型 CoinJoin 更高,令人意外。原因在于 Whirlpool 使用了輸入輸出數量相等的模型,而 WabiSabi 風格則假設輸出多于輸入。
當然,CISA 的激勵機制可能促使 CoinJoin 的規模進一步擴大,但正如之前提到的,交互性約束可能會限制規模的上限。在 CISA 采用最樂觀的情況下,更有可能是由多筆上述規模的 CoinJoin 填滿一個區塊。
4.1.3 合并交易(Consolidation Transaction)
對于處理大量 UTXO 的企業,比如電商平臺或交易所,CISA 非常有吸引力,因為它可以顯著降低合并交易的成本。這類交易并不會像 CoinJoin 那樣受到交互性限制的影響,因為所有被聚合的 UTXO 都由同一個實體控制,避免了交互需求。
理論上,一個區塊可以被一個包含成千上萬個輸入的聚合交易完全填滿。但在實踐中,企業通常會保持合并交易在適度規模,以確保能以具競爭力的費用率參與手續費市場,并通過多個即將打包的區塊逐步完成交易。例如,加密貨幣交易所 OKX 曾因一次錯誤操作而被廣泛關注——他們在一系列合并交易中出現了“自我競價”的 bug,可能至今仍令一些讀者記憶猶新【okx】。這些合并交易中每筆使用了 150 個輸入,就以此為例進行節省情況說明,假設手續費率為 10 sat/vbyte。
這樣的交易(150 個輸入,1 個輸出)目前需支付 86,785 sats 的手續費。若使用半聚合(half-agg),手續費可降至 74,865 sats,節省 13.7%;使用完全聚合(full-agg)時,總費用進一步降至 62,945 sats,節省幅度達 27.4%。
另一類可能受益于 CISA 的交易是批量支付(batched payouts)。然而,批量支付僅在包含多個輸入時才可享受節省,這等同于合并交易。因此在此未提供這類交易的節省數據。實際上,一個管理良好的交易所更可能在手續費較低時盡可能先合并 UTXO,這樣后續的批量支付交易就只有極少數甚至只有一個輸入,也就幾乎沒有節省空間。
4.1.4 區塊級半聚合(Block-wide half-agg)
為了估算如果引入區塊級半聚合(block-wide half-agg)到比特幣后能節省多少空間,可以參考過去一年每個區塊中的平均簽名數量。
從撰寫本文之時起的一年中,每個區塊平均包含 5,941 個簽名,占用了大約 380 KB 的空間。若將來這些簽名都能聚合成 Schnorr 簽名,將可節省約 190 KB 的區塊空間。騰出的空間可用于容納更多交易,從而略微提高每個區塊的手續費收入,同時提升比特幣區塊鏈的吞吐量。
4.2 隱私(Privacy)
通過將多個輸入簽名合并為一個簽名,CISA 為比特幣的隱私相關使用場景帶來了諸多好處。它可以顯著推動 CoinJoin 和 PayJoin 的使用,特別是在經濟激勵方面使這些隱私增強技術對用戶更具吸引力。
在 CoinJoin 的場景中,多個參與者合并輸入以混淆資金的來源與去向,這樣的做法本質上追求隱私保護。在沒有 CISA 的情況下,每個參與者都必須為自己的輸入添加獨立的簽名,導致交易體積增大、消耗更多區塊空間并帶來更高手續費。而在引入 CISA 后,所有簽名可以合并成一個,顯著減少交易總體體積。這種體積上的減少直接轉換為更低的手續費,惠及交易中所有參與者。
這一節省成本的機制對 CoinJoin 用戶尤其有吸引力,因為原本較高的費用常使人望而卻步。CISA 減輕了費用負擔,降低了參與 CoinJoin 的門檻,從而可能提升其采用率。而隨著更多人參與 CoinJoin,其匿名集(anonymity set)擴大,每個用戶的隱私保護程度也隨之提升,因為外部觀察者更難追蹤具體的交易路徑。
PayJoin 也可從中受益。PayJoin 通常涉及兩方合作創建交易,各自提供一個輸入。在無 CISA 的情況下,雙方都需提供獨立簽名,導致交易體積和費用上升。而使用 CISA 后,這些簽名同樣可以合并,降低交易體積和費用。
除了直接的節省,CISA 還間接通過推動 CoinJoin 和 PayJoin 的常態化來促進比特幣基礎層的隱私提升。上述節省數據表明,使用帶有 CISA 的 CoinJoin 不僅比不帶 CISA 的便宜,甚至比用戶各自發送普通交易還要便宜。這種低成本和高可用性,可能吸引那些出于經濟考慮的用戶加入使用,從而擴大采用范圍。更廣泛的采用會形成網絡效應,使隱私增強行為成為常態,進而削弱監控和分析的有效性。
這些隱私技術被更廣泛使用后,對手方就更難通過區塊鏈分析得出準確結論。更多的采用也可能推動更好的工具和用戶體驗的誕生,形成一個“飛輪效應”。
此外,CISA 還有潛力削弱**共同輸入所有權啟發式(common-input ownership heuristic)**的分析手段。該啟發式通常用于分析交易中是否為同一實體操作多個輸入。而通過 CISA 提供的經濟激勵促成更多多人參與的交易,分析者就更難判斷一個交易到底是多個用戶參與,還是一個用戶在操作多個 UTXO,從而進一步提升了隱私性。
4.3 計算效率(Computational Efficiency)
盡管 CISA 通常被討論的是手續費或空間優化方面的優勢,但它在計算效率上同樣帶來了顯著提升,因為它減少了節點需要執行的離散簽名驗證數量。
在常規情況下,驗證一筆包含 n 個輸入的交易通常需要執行 n 次獨立的 Schnorr 或 ECDSA 簽名驗證【core-blog】。每次驗證都涉及橢圓曲線運算,盡管已有優化,但這仍是節點驗證時間中的重要部分。CISA 在交易被打包入區塊前就將這 n 個簽名聚合成一個,因此節點在首次接收該交易時只需執行一次簽名驗證。這樣一來,當區塊中包含許多多輸入交易時,節點整體的簽名驗證數量大幅減少,帶來實際的性能加速。
需要注意的是,將多個簽名交由聚合算法處理的操作僅適用于 完全聚合(full-agg)。在 半聚合(half-agg) 中,聚合簽名實質上會被“解壓”成原始數量的簽名,這些簽名仍需逐個驗證,因此 half-agg 不具備計算效率上的優勢。
此外,即使僅使用 Schnorr 簽名 也可以啟用 批量驗證(batch validation),即節點通過共享的橢圓曲線操作并行驗證多個簽名【elem】。節點可以將區塊中所有聚合簽名排隊,執行幾次群組運算后一次性完成多個簽名的驗證【halfagg-paper】。相關的研究和開發已經在進行中,并且這項技術可以在 不需要軟分叉的前提下 應用于比特幣【batch-pr】。
這并不意味著引入 full-agg CISA 不會帶來額外的效率提升。區別在于,full-agg 的聚合是在簽名時完成的,而批量驗證則是在 驗證時進行簽名合并。這意味著即便在部署了批量驗證的情況下,使用 full-agg 仍可帶來一定程度的額外效率收益。
4.4 帶寬(Bandwidth)
在上一章節中提到的 CISA 在閃電網絡(Lightning Network)P2P 層的使用,確實可以節省數據傳輸空間,但這種節省僅限于帶寬,并不影響鏈上空間或手續費開支。
5. 挑戰(Challenges)
盡管前面提到了 CISA 的諸多令人振奮的好處,但這個概念在社區中并未獲得大量關注和開發支持。造成這種情況的主要原因,可能就是 CISA 本身所帶來的挑戰性。下面將逐一深入探討這些挑戰。
5.1 交互性(Interactivity)
全聚合(full-agg)跨輸入簽名聚合面臨的關鍵難點在于它需要所有簽名參與者之間進行交互式簽名協議。這與普通交易不同,普通交易中每個輸入的簽名都可以相對獨立地完成,而 full-agg 則要求所有簽名者協同生成一個聯合簽名。
這意味著所有參與方都必須在簽名過程中在線并進行數據交換。這增加了復雜性:需要多輪通信、協調協議,如果有任意一個參與者掉線或出錯,整個簽名過程可能失敗。full-agg 在單人控制所有輸入的場景下運行良好,比如一個用戶消費自己所有的 UTXO,因為該用戶可以獨立完成聚合簽名。
然而,在 CoinJoin 或 PayJoin 這類多方交易中,實時協調所有參與者極具挑戰性。這種交互性的要求,是 CISA 實施和用戶體驗上的主要障礙。為了避免誤解,half-agg 不存在這個問題,它支持無需交互的簽名聚合。
應對交互性的主要策略,是開發一個健壯的簽名協議,就像 MuSig2 和 FROST 之于密鑰聚合所扮演的角色。如果在考慮為 full-agg CISA 進行軟分叉之前尚未開發出此類協議,那就必須視為一個嚴重的阻礙。缺乏這樣的協議,會讓外界更容易推測出所有被聚合的輸入由同一個實體擁有,這在隱私性方面是個重大問題,前文已對此進行詳細論述。
與此同時,也可能有人嘗試自行設計簽名方案并在缺乏同行評審的情況下發布,這樣會嚴重威脅用戶資金安全。
交互性是很多協議的絆腳石【inter】。在前文也提到過,MimbleWimble 協議從設計上就依賴交互式結構,即便是最流行的實現版本也面臨采用困難,一些早期支持者將其歸咎于交互性要求。幸運的是,比特幣協議永遠不會強制所有交易使用 CISA,用戶始終可以選擇不使用它,從而繞過交互性的問題。
5.2 隱私性
本報告前面已經提到,CISA 本身并不是隱私保護的“靈丹妙藥”。實際上,CISA 并不直接改善鏈上的匿名性,它的目標僅僅是通過壓縮簽名來提升效率。
任何隱私方面的收益都將是間接的,如由于手續費降低而使 CoinJoin 更加便宜——而這并不屬于協議變更本身的范圍。聚焦于潛在的不利因素,發現 CISA 在某些方面實際上可能會使隱私問題變得更復雜。
通過減少交易中可見的簽名數量,CISA 可能初期會迷惑一些鏈上分析的啟發式方法。然而,分析人員將很快適應,并針對聚合簽名開發出新的啟發式分析手段。事實上,尤其是“共同輸入啟發式”在 full-agg 初期被采用時可能變得更加強烈:因為 full-agg 需要協調,一個成功使用聚合簽名的交易很可能是由一個實體控制所有輸入而生成的。鏈上監控公司已經默認所有輸入由同一人擁有,除非存在明顯的 CoinJoin 模式;而 CISA 中的聚合簽名可能強化這一假設,因為它意味著這些輸入是在一次協調的簽名中完成的。為防止這一點,必須提前準備好一個健壯的簽名方案,使得像 PayJoin 和 CoinJoin 這樣的協作交易可以在 CISA 部署后迅速采用它。只有這樣,multi-user full-agg 才能快速傳播,從而防止鏈上分析將所有 full-agg 多輸入交易標記為單一用戶行為。
聚合簽名還可能引入一些微妙的“指紋”,這些指紋可能被監控系統所利用。分析師可以開發啟發式方法來檢測某交易是否使用了 CISA,并相應地進行標記。如果 CISA 初期使用量稀少,這些交易將非常顯眼,而如果僅有少數錢包支持 CISA,則這類交易更容易被歸因到特定錢包軟件上。
CISA 與其他隱私技術的交互也需要仔細考慮。許多高級隱私協議使用 scriptless scripts 或適配器簽名(adaptor signatures)——如,原子互換(atomic swaps)和幣互換(coin swaps)依賴于從簽名中提取秘密。盡管這也是一個隱私問題,但它將在下一節中單獨討論。
5.3 適配器簽名不兼容性
跨輸入簽名聚合(CISA)與適配器簽名不兼容,而后者被用于諸如 Lightning 網絡中的 PTLCs、基于 scriptless script 的原子交換、以及 Discreet Log Contracts 等協議。在這些協議中,鏈上的簽名可以通過與適配器簽名對比來揭示隱藏的秘密。如果所有輸入或整個區塊共用一個聚合簽名,就無法讓這個單一簽名向多個不同的參與者揭示獨立的秘密。簡而言之,經過調整的個別簽名不會出現在鏈上,無法用于秘密提取,因此依賴適配器簽名的方案在 CISA 下將無法運行。
與所有隱私保護功能一樣,目前很難判斷適配器簽名的實際采用程度。因此,為評估 CISA 的引入將對現有使用適配器簽名的應用場景造成多大影響,還需進一步研究。然而,從中長期來看,Lightning 網絡中 PTLCs 的采用似乎是確定的。雖然這本身可能并不構成嚴重問題,因為非協作式關閉本來就容易識別,但這仍然不是一個理想的前景。
5.4 區塊重組挑戰
區塊級簽名聚合在發生鏈重組(reorg)時會引入一些新的挑戰。如果某個區塊被重組,其中覆蓋所有交易的聚合簽名很可能不再有效。只要新區塊中交易稍有不同,原本的聚合簽名就會失效。即使新舊區塊中的大部分交易一致,新的聚合簽名也會不同。因此,節點必須重新從頭驗證新區塊的聚合簽名。
目前的普通交易中,每個輸入的簽名都可以獨立驗證。Bitcoin Core 會緩存驗證結果,因此某個交易如果從被孤立的區塊轉移到新的區塊中,節點在識別到它時不需要完全重新驗證。但若使用區塊級別的聚合簽名,這種基于輸入的緩存機制將無法發揮作用;“整個 half-agg 簽名 S2 都必須被重新驗證,包括此前已驗證的 X 的部分 […] 這與普通簽名不同,普通簽名在重組中不需要重新驗證。”換句話說,區塊級聚合削弱了緩存或部分驗證的好處,可能使區塊在鏈重組后的驗證效率降低。
另一個潛在問題是,在重組中被移除的交易將如何處理。假設交易 X 被包含在區塊 A 中,并作為聚合簽名的一部分,但 A 區塊被孤立,而 X 沒有被納入新的區塊 B。正常情況下,節點會將 X 返回到內存池或重新廣播,因為它仍然擁有完整簽名的交易。畢竟 A 區塊的數據中包含了全部簽名。但在區塊聚合簽名下,X 的個別簽名從未出現在鏈上——它已經被吸收到區塊 A 的聚合簽名中。一旦 A 區塊被孤立,節點無法從聚合簽名中提取 X 的原始簽名。除非節點此前就緩存了 X,否則它就從節點視角中“消失”了,因為現在它變成了一個無效的交易。即便節點曾經驗證過 X,它看到的也只是聚合簽名而非 X 的 s 值。因此,節點無法自動將 X 放回內存池或重新廣播。這會帶來安全性和可靠性風險:用戶可能以為 X 已確認并離線,但一場鏈重組卻使其被丟棄。若沒有特別的處理方式,X 的輸入資金仍可再次花費,但該交易本身可能“丟失”,直到用戶或某種“守望塔”將其重新發送。歸根結底,區塊級聚合破壞了目前比特幣協議中“一個有效交易一旦被看到,就可以在重組后重新挖出”的保證。
開發者已提出一些緩解方法來解決這些問題。其中一個方案是:即便交易已被包含在區塊中,節點仍保存每個交易的原始簽名數據,而不僅僅是區塊的聚合簽名。節點可以在區塊被確認足夠深、重組幾率極低后,再清除這些簽名緩存。在重組發生時,這種方式有兩個好處:(1)如果交易仍出現在新塊中,節點可以從緩存中“減去”原來的簽名部分,避免重復驗證;(2)如果交易被移除,節點仍然擁有完整簽名的 X,可將其返回內存池或重新廣播。這種緩存策略在消耗少量內存/存儲空間的同時保留了比特幣現有的魯棒性。
另一個緩解方式是:在錢包層處理重組,即讓交易發送者或第三方在重組后重新廣播 X。但依賴用戶手動重發是一個較弱的解決方案,因為這帶來隱私風險,并假設用戶始終在線并監控區塊鏈。
本報告早前提及 Chia 網絡使用了 BLS 簽名進行區塊級聚合,可能是一個解決此類問題的理想案例研究。然而,在研究后發現,Chia 目前尚未在協議層解決這些問題。相反,如果用戶希望確保交易被挖出,他們需要由客戶端重新提交交易。盡管如此,由于 Chia 開發速度快,仍值得持續關注其是否會提出 Bitcoin 可以借鑒的解決方案。
5.5 采用緩慢
歷史已經表明,像 CISA 這樣規模的新比特幣特性通常會緩慢地被采用們可以預期,CISA 的采用路徑將類似于之前如 SegWit 和 Taproot 等軟分叉升級的過程。
以 2017 年的 SegWit 為例,盡管它提供了交易費用節省及其他好處,但并未立即在網絡中占據主導地位。SegWit 的采用花了數年時間才達到大多數交易的水平。事實上,在 SegWit 激活約兩年后,只有大約 50% 的交易使用了 SegWit,而用了四年才達到大約 80% 的采用率。這種緩慢的推廣主要是因為錢包和服務需要時間進行升級,同時用戶可以根據自己的節奏選擇是否采用【chainalysis-taproot】。
2021 年底激活的 Taproot,其采用過程也同樣緩慢;即便節點運營商廣泛支持,實際交易中對其的使用增長依舊緩慢,因為錢包軟件需要時間來添加支持。CISA 的采用很可能也會是循序漸進的。新版本的 SegWit v2 輸出類型需要錢包、硬件設備、交易所、區塊瀏覽器等生態系統組件的支持。這需要大量的開發工作和測試,不可能一蹴而就。許多錢包可能不會在一開始就優先支持 CISA,除非他們觀察到明顯的市場需求,尤其是對于普通用戶來說,CISA 所帶來的直接收益可能并不明顯,畢竟他們還未參與復雜的交易。可以說,這形成了一個“先有雞還是先有蛋”的問題。有些軟件如果不再維護,可能永遠不會更新,這意味著某些用戶只能繼續使用舊格式,除非他們更換錢包。所有這些因素導致,即使共識升級完成,CISA 要實現廣泛普及和完全發揮潛力,可能仍需很長時間。
在此將 CISA 與 SegWit 和 Taproot 進行比較。SegWit 有一個明顯的痛點優勢:解決交易可變性和提升區塊容量,但即便如此,也花了數年才變得主流。Taproot 的優勢在于多簽名隱私和腳本靈活性,但這些對大多數用戶來說并不立即相關,因此其采用更慢、更逐步。CISA 的優勢主要體現在可擴展性/手續費節省,其次是使 CoinJoin 等隱私技術更便宜。這意味著 CISA 的采用路徑可能介于兩者之間:如果手續費壓力增大,CISA 的推廣可能比 Taproot 更快;但如果用戶興趣不高,其采用速度可能更慢。
一個樂觀的設想是:由于 CISA 可在地址合并等場景中節省成本,交易所可能會迅速采用它,并生成大量 CISA 交易,從而提升其可見性并帶動推廣。一個悲觀的情境是:僅有少部分高級用戶采用 CISA,而大多數錢包選擇忽略它,最終導致長期處于低采用狀態。無論如何,這一過渡期都需要被妥善管理。像 Bitcoin Optech 這樣的協調機構可能會再次發揮作用,通過追蹤 CISA 的采用數據,鼓勵服務提供商實現支持,就如他們在 Taproot 推廣中的做法那樣【optech】。
6. CISA 選項的可行性
本節嘗試概述不同 CISA 選項組合的可行性,并評估哪些組合在未來有望成為軟分叉提案的候選項。
6.1 有共識更改的情況
首先,簡要回顧一下所探討的選項:
-
半聚合(Half-Agg):一種非交互式方案,任何人(包括第三方)都可以將多個 Schnorr 簽名合并為一個聚合簽名,其大小約為原始簽名總和的一半。
優點:不需要簽名者在簽名時進行協調 —— 參與者可以照常簽名,然后由聚合者在之后壓縮這些簽名。這種簡化也意味著實現的復雜性相對較低。
缺點:聚合后的簽名仍然比單個簽名大,因此與完全聚合相比,節省空間有限。 -
全聚合(Full-Agg):一種交互式協議,多個簽名者協作生成一個 Schnorr 簽名,其大小固定為 64 字節,無論涉及多少個輸入/密鑰。
優點:節省空間最大。如,10 個輸入只需一個 64 字節的簽名,而不是十個64 字節的簽名,極大提升可擴展性。簽名更少也意味著驗證操作更少,可能提升全節點驗證速度。
缺點:需要復雜協調。簽名者必須多輪交換數據才能生成聯合簽名,并且要在各輪之間安全地管理隨機數/狀態。這增加了協議復雜性和出錯的可能性。在多方簽名場景中,通常意味著所有參與者需要同時在線并參與互動,實操上有一定障礙。
綜合來看,半聚合比全聚合更可能在當前階段被引入到比特幣中。不過值得注意的是,全聚合的問題主要在于研究和實現層面,被認為是可以解決的技術難題。
其他選項還包括:
-
交易級聚合(Transaction-wide Aggregation):將一筆交易中所有輸入的簽名聚合成一個簽名,取代每個輸入攜帶單獨簽名。可以通過全聚合或半聚合實現。這將減少多輸入交易的大小和費用,特別適用于合并交易(consolidation)或大量輸入的 CoinJoin。將 10 個簽名減少到 1 個,顯著節省空間,使得單筆交易中多方協作比多筆獨立交易更劃算。
-
區塊級聚合(Block-wide Aggregation):更激進的做法,將整個區塊中的簽名合并為一個理論上的超級簽名,假設所有簽名都符合聚合條件。這會帶來最大空間節省和最少驗證成本。但也伴隨著諸多潛在問題,尤其是鏈重組效率等方面。
綜上權衡,交易級半聚合(tx-wide half-agg)目前是最有可能實施的方案,因為它的問題較少、實現復雜性也較低。相對而言,區塊級全聚合(block-wide full-agg)目前幾乎可以被視為不可能,因為要實現它,不僅所有交易的參與者必須協同,還涉及到礦工在打包區塊前并不知道哪些交易會被包含的問題。這需要對交易傳播、內存池和挖礦流程進行徹底重構,而這種變革幾乎不可能發生。
本節中最有趣的問題可能是:區塊級半聚合是否比交易級全聚合更有吸引力?
目前社區對此沒有明確共識,但作者認為協議層面上的交易級全聚合復雜性更可控,且帶來的副作用風險更低。此外,CISA 支持者往往希望能在軟分叉時獲得其全部潛力。如果全聚合仍需要更多研究才能可行,那么社區很可能選擇等待這些研究完成后再推動軟分叉。
最后,還應考慮這些不同選項之間的互動。如前文節省分析所述,CISA 的潛力來自于它可能改變人們在鏈上的協作方式,催生更多大型協作交易。如果這種趨勢成真,交易級全聚合將顯著減少區塊中的簽名數量。在這種情況下,即便之后引入區塊級半聚合,其增益可能也不如在 pre-CISA 環境下那么明顯。
6.2 無共識更改的情況
即使不改變比特幣主鏈規則,在鏈下協議和合作機制中,也能實現部分簽名聚合帶來的好處。雖然 CISA 當前無法在鏈上直接實現,但在二層網絡和點對點場景中,通過創造性的技術可以模擬其效果,或在類似方面提高效率:
例如,閃電網絡(Lightning Network)的消息層也可以利用簽名聚合。LN 節點向網絡發布通道公告時,會發送一個包含四個簽名的消息。每個節點會用自己的節點密鑰和比特幣密鑰分別簽署,以驗證身份。這些通道公告雖然不上鏈,但需要在整個網絡中傳播,因此對帶寬消耗較大。
開發者指出,由于這些簽名都是由通道雙方生成的,可以使用聚合技術進行壓縮【thoughts】。如,兩個節點簽名可以合并成一個,甚至比特幣密鑰的簽名也可能被聚合。實際上,由于創建通道公告本身就需要兩個節點之間的協調,它們可以通過交互式協議將所有簽名合并成一個簽名【thoughts】。這樣,通道公告的大小將顯著縮小。
這就是在點對點場景下使用 CISA 來節省帶寬和提升效率的實例,而無需改變區塊鏈規則。雖然從技術上來說可行,但閃電網絡開發者有許多優先級更高的任務(如路由可靠性、流動性管理、安全性等),因此利用簽名聚合優化 gossip 協議可能并不是當務之急。但無疑這是 Schnorr 簽名帶來的明確利好:鏈下信息同樣可以像鏈上交易一樣被聚合。未來或許會看到 LN 協議在更新中采用這些思路,以減少網絡流量。
7. 應用場景
在 CISA(Cross-Input Signature Aggregation)上線后的比特幣網絡中,將為所有用戶帶來許多令人興奮的機遇。本節將介紹其中最具前景的一些應用想法。
7.1 從商業角度看 CISA 的采用
CISA 承諾通過減少簽名數據來降低比特幣業務的交易費用。從這個角度來看,不同行業的參與者可根據其主要盈利動機獲得各自的好處。
7.1.1 交易所(Exchanges)
高頻交易所每天處理成千上萬的充值和提現操作,通常會產生大量 UTXO(未花費交易輸出),這些 UTXO 最終需要進行合并,以避免在高手續費環境下花費時成本過高。CISA 將使得 UTXO 的合并變得更加經濟高效。
目前,交易所可能會延遲合并低價值的 UTXO,因為逐個花費它們所需的手續費超過其本身的價值。而通過跨輸入簽名聚合(CISA),即使僅價值幾百聰的 UTXO 也可以經濟地聚合處理【trezor】。如,一個交易所可以將 100 個小額輸入合并為一個輸出,僅需支付一個簽名的費用,而不是 100 個,從而大幅減少合并交易的大小。相關的節省示例可參考前文的“節省效益”部分。
這不僅能為企業節省手續費,也能凈化 UTXO 集合,減少輸出數量,利于整個網絡的健康。實際上,CISA 提高了所謂“塵埃合并(dust consolidation)”的經濟可行性,使得最小可經濟花費的 UTXO 閾值下降。
那些早期采用了 SegWit 和交易打包技術的交易所已從中受益【segwit-batching】,而 CISA 將帶來類似優勢。
因此,交易所很可能會鼓勵用戶使用兼容 CISA 的錢包進行充值/提現,就像當年推廣 SegWit 的 bech32 地址以降低自己和用戶的提現費用一樣。
7.1.2 電商 / 支付處理商(Ecommerce / Payment Processors)**
對于電商公司以及為電商提供服務的支付處理商,其需求場景與交易所非常相似。電商企業每完成一筆鏈上比特幣支付就會收到一個新的 UTXO,因此頻繁的 UTXO 合并操作是必要的。
此外,對于技術能力較強的電商企業來說,一旦 CISA 部署上線,也可能有興趣嘗試采用 PayJoin 模式,進一步提升交易隱私性和費用效率。
7.1.3 錢包服務商(Wallet Providers)
錢包軟件,尤其是托管型或企業級錢包,通常管理大量 UTXO,因此可以通過 CISA 來優化交易結構。如,一個需要使用多個輸入的支付操作在 CISA 加持下將占用更少的區塊空間。
對于個人用戶來說,當他們支付的金額超過單個 UTXO 時,也會涉及多個輸入 —— CISA 可以間接幫助他們節省手續費【trezor】。
錢包服務商采納 CISA 后,可為用戶提供更低的交易費用,這也是一個明顯的競爭優勢。
部分錢包已支持 CoinJoin 功能,在 CISA 的幫助下,它們可以以更小的權重成本整合用戶支付或合并多個 UTXO,使得這些隱私功能變得更易于常規使用。
這有望進一步推動 CoinJoin 和 PayJoin 的普及,特別是在那些注重用戶體驗、降低使用門檻的錢包中,從而提升整個網絡的隱私性,這一點在前面的“隱私效益”部分已有闡述。
7.1.4 礦工(Miners)
比特幣挖礦作為一種既有的商業模式,也將受到 CISA 引入的顯著影響。
但由于礦工的行為和激勵機制對整個網絡有廣泛影響,因此關于礦工的激勵機制及其網絡層面的效應將在下一節單獨展開討論。
7.1.5 電子現金鑄造廠(Ecash Mints)
Ecash Mints 實質上是帶有更好隱私保障的托管錢包,因此它們可以享受到與交易所和托管錢包相同的 CISA 效益,如交易費用更低、UTXO 管理更高效、交易打包更緊湊等。
7.1.6 潛在的新商業模式
除了改進現有業務流程外,CISA(跨輸入簽名聚合)還為比特幣生態系統開啟了全新的商業模式和服務的可能性。通過啟用多個獨立方在一個交易中協作,并使用“完全簽名聚合(full-agg)”實現僅需一個簽名,CISA 為促進這類協作的企業創造了機會。以下是一些潛在的新模式及其運作方式:
- 一個顯而易見的新服務是由 CISA 驅動的省手續費協調器。
- 該服務允許用戶在發起比特幣交易前加入一個交互式交易池,而不是立即發送個人交易。協調器將多個用戶的待處理交易收集起來,并使用 CISA 聚合成一個大型交易。由于所有輸入只需要一個簽名,整體手續費比用戶分別發送交易低得多。每個參與者只需支付原本個人交易手續費的一小部分。這些分攤手續費的支付可通過閃電網絡(Lightning Network)結算。
- 這種模型可以被看作是對“交易批處理(batching)”概念的擴展,但適用于彼此之間并不信任的用戶。
- 本質上,它類似于當今的 CoinJoin 實現,但其賣點轉向了手續費節省而不是隱私保護。
- 其價值主張十分明確:用戶交易成本更低,協調器通過收取小額服務費獲利。
- 這類服務對散戶錢包用戶、定期發放款項的商家,甚至希望合并提現的交易所都具有吸引力。
- 如果該服務以非托管形式結構化(即服務商不持有資金),則可能規避嚴格監管,更像是“交易中介”而非“資金保管者”。
從而,這類“手續費池”或“聚合代理”可能在比特幣經濟中成為一個新興利基,尤其在交易手續費高昂時期,節省需求最為旺盛時。
CISA 還可能為現有的 CoinJoin 商業模式提供強大助力 —— 盡管目前這類市場看起來相對低迷,但它很可能會激發新的參與者加入市場。
當前,CoinJoin 通常會帶來手續費的增加 —— 因為混幣過程中需添加額外的輸入/輸出,對追求隱私的用戶來說這是可接受的代價,但對一些用戶來說仍具有一定勸退作用。而借助 CISA 的跨輸入聚合,含有多個輸入的 CoinJoin 將變得更加經濟,甚至可能比普通的單獨支出更便宜【trezor】。
有分析指出,在 CISA 的加持下,CoinJoin 交易可能略微比普通交易還要省錢【trezor】。這就顛覆了原有的邏輯:隱私不僅不再額外收費,反而可能幫你省錢。
這催生了一個新的商業模式:低手續費甚至免費 CoinJoin 即服務(CoinJoin-as-a-Service)。服務商可以運行定期的、龐大的、基于 CISA 的 CoinJoin 池,任何人都可以加入,以獲得匿名性和低手續費的雙重好處。隨著隱私功能被手續費節省所“補貼”,這些 CoinJoin 池的匿名集可能會迅速擴大,從而大幅提高混幣的有效性。
舉例來說,目前最大的 CoinJoin 池之一 —— Samourai 的 Whirlpool —— 在某一時間內持有大約 4350 BTC 的流動性【trezor】。如果交易成本降低,可以想象池子會更大,混幣操作也會更頻繁。
已經提供混幣服務的企業可能會選擇降低服務費,或者通過從手續費節省中抽成來實現新的盈利模式,而不是直接向用戶收費。
與此同時,交易所和錢包服務商可以無額外成本地集成隱私池,這有望將隱私交易常態化。
此類交互式交易池將同時服務于隱私保護和費用優化。圍繞這一點的企業,不論是以盈利為目的還是作為產品附加值,都有望涌現。
未來,甚至可能看到合作模式的出現 —— 如交易所與 CoinJoin 提供商合作,將眾多用戶的提現交易聚合為一個大額、私密、低費的交易。這種方案在合規方面需要特別小心處理,但技術上,它完全可以實現:讓用戶只需點擊一次,即可獲得“隱私提現”服務,且該操作對交易所來說反而比單獨發送還便宜。
總的來看,CISA 有望使隱私驅動的商業模式變得更具財務可行性,并吸引更廣泛的用戶群體。
值得注意的是,雖然上文中提到的新商業模式很有可能出現,但最可能的情況是:這些功能將被現有錢包服務商添加為新特性,或者被新興錢包提供商用作差異化賣點。
7.2 從用戶視角看 CISA 的采用
為了實現 full-agg CISA 的好處,用戶必須實時與他人協同發起交易。完全簽名聚合是交互式的,要求參與者在簽名過程中交換數據。這種協調在錢包中實現起來在技術上頗具挑戰,如果沒有無縫自動化,可能會讓用戶感到不便。為用戶提供一個流暢的體驗,幫助其尋找交易伙伴、處理通訊,以及應對失敗(如某個參與者中途退出)是一個不小的難題,對于主流采用來說至關重要。
當多個獨立用戶在一筆交易中協作時,會出現新的信任問題。如果使用的是中心化的批處理服務或協調器,用戶必須信任該服務不會泄露輸入和輸出之間的關聯信息,或惡意中止流程。即使在去中心化的協調中,每位參與者也必須信任其他人會如約簽名;一個不誠實或離線的參與者就可能阻礙整筆交易。雖然沒有人能單方面盜取資金,但這種池化模型可能引入服務拒絕(DoS)攻擊風險,惡意行為者可以反復破壞 CoinJoin 交易嘗試。用戶和企業也可能擔心與“染色”幣的用戶一同交易,可能引發合規方面的顧慮。需要健壯的協議來緩解這些風險并建立對聚合交易的信任。
CISA 的效益隨著普及率而增長。在初期,只有部分錢包和 UTXO 支持新輸出類型【bse-output】。這意味著用戶可能很難找到可以聚合的交易伙伴,從而限制節省費用的機會。如果只有少數人使用 CISA,用戶節省的費用可能不夠大,難以抵消協調的額外成本,如為了等到足夠的參與者而產生的時間延遲。因此,在采用率較低的階段,激勵可能不足以引導用戶改變行為,采用 CISA 的交易也可能仍屬少數,反而更加顯眼。只有當達到一定用戶臨界點后,網絡效應才能真正發揮作用——整體費用降低、CoinJoin 式的批處理更為活躍、比特幣的可替代性也將得到改善。在此之前,用戶將面臨“啟動困難”問題,CISA 的好處只能部分實現。
廣泛采用 CISA 有助于增強如 CoinJoin 等隱私增強技術的社會與法律正當性。通過使多用戶交易在經濟上具有吸引力,CISA 為此前被視為純粹出于隱私動機的行為提供了財務上的合理性。用戶和公司可以合理地聲稱他們是為了節省手續費而聚合交易,而不僅僅是為了混淆資金流向。實際上,CISA 會讓 CoinJoin 回合的費用比普通交易更低【trezor】,這印證了早前的預測:即使只是節省一點手續費,也可能顯著增加 CoinJoin 的使用率【ops-cisa】。這種費用激勵可能極大地擴大 CoinJoin 的使用,增加整體匿名集,進而將其行為標準化。
如果為了節省費用而廣泛采用批處理和聚合交易,這將模糊普通轉賬與隱私增強轉賬之間的界限。這種“正常化”行為將保護用戶:選擇 CoinJoin 會被視為一項標準經濟決策,從而減少與之相關的污名或嫌疑。一些行業分析指出,如果 CoinJoin 被普遍采用,當前形式的鏈上監控將變得幾乎不可能【trezor】。在大多數交易都被聚合的情境中,試圖禁止或打壓 CoinJoin 的做法將面臨實際和政治上的阻力,因為這種行為將無法與普通的費用節省行為區分開。CISA 有可能通過將隱私融合進效率提升中,來增強比特幣的可替代性,保障用戶在“合理理財”名義下提升隱私的權利。最終,這應能改善當前執法機構對 CoinJoin 用戶進行偏見性調查和迫害的問題。
7.3 礦工激勵與網絡層面影響
在比特幣中,一筆交易的輸入消耗的是先前存在的輸出,并創建新的輸出,這些輸出成為 UTXO 集的一部分。如果輸入多于輸出,UTXO 集就會收縮;反之,則增長。CISA 通過大幅減少每個輸入的簽名開銷,改變了使用多個輸入的交易經濟模型。這將影響用戶清理 UTXO 或參與多輸入交易的意愿,從而改變輸出銷毀與創造之間的平衡。
在現行手續費機制下,創建輸出的成本和花費它們的成本存在差距。過去創建多個小額輸出成本較低,而花費這些輸出則成本較高。這導致了所謂的“塵埃 UTXO”,即因手續費大于其面額而長期未被花費的輸出。CISA 通過降低簽名成本,使得在交易中加入低價值 UTXO 的門檻進一步降低。即便是極小的輸出,也可以以極小的額外開銷與其他輸入一起聚合處理。
這意味著用戶更可能在手續費合適時清理塵埃 UTXO,而不是無限期擱置。提升對塵埃的清理能力,有助于逐漸優化 UTXO 集結構。因此,CISA 傾向于鼓勵銷毀輸出、使用現有 UTXO,通過提升多輸入交易的費用效率,有助于抑制 UTXO 集的膨脹。用戶在合并或使用多個輸入時將面臨更少懲罰,網絡可能在某些整合周期中出現 UTXO 總數的增長放緩,甚至出現凈減少的情況。需要再次指出的是,SegWit 減弱了這一節省效應,因為它已通過規則設計實現了類似目標。
SegWit 引入了對見證數據的“折扣”機制:在計算區塊大小時,每個見證字節只計為 0.25 字節,相當于 75% 的折扣【bse-segwit-cheap】。這個機制本就是為了降低花費輸出的成本,從而緩解塵埃問題。除非未來對 SegWit 的折扣機制有所變動,CISA 的節省效果將受到此機制的影響,盡管空間節省顯著,但費用節省并沒有那么驚人【ops-cisa】。
從礦工的視角看,SegWit 折扣和 CISA 改變了權重的分布方式,但礦工仍希望填滿每個區塊的 4M 重量單位上限,以獲取最大手續費收益。CISA 交易相比非聚合交易占用更小的權重,因此只要未達到非見證數據的 1MB 上限,礦工就能在區塊中打包更多交易數據。如果用戶對區塊空間的需求保持不變,這相當于輕微提升了網絡吞吐量,可能在長期內對手續費率造成溫和下行壓力,因為區塊空間的供給略有增加。不過,這種節省的空間也可能因新增使用場景而被抵消甚至超出(即“杰文斯悖論”)。不論如何,對礦工手續費收入的總體影響預計不大。
此外,由于見證數據的空間占用減少,礦工可能更愿意在區塊中打包大量 ordinal 交易。如,如果一個區塊中打包了大量合并交易,可能會先達到非見證數據的 1MB 上限。這種情況下,見證區部分將顯得相對較小。礦工此時可能以較低費用打包接近 3MB 的 ordinal 交易,因為 ordinals 利用見證數據在鏈上存儲各種數據。這種現象可能引發爭議,因為 ordinals 本身就具有爭議性,而 SegWit 折扣被認為是其興起的主要原因。
另一個有趣的副作用是,如果使用 half-agg 進行區塊級簽名聚合,用戶在估算手續費時將面臨新的復雜性。即他們發出的交易在傳播到網絡時的大小,可能與最終被打包入區塊的實際大小不同。這意味著注重費用的用戶可能會進一步低估當前邏輯下給出的手續費估算。因此,為了保持估算的準確性,錢包的手續費估算算法可能需要更新,以適應 CISA 啟用交易所帶來的變化。
8. 實現狀態與前景展望
在本章中,將簡要回顧 CISA(跨輸入簽名聚合)的當前規范與實現狀態,并展望其成為完整提案所需的關鍵步驟。除了已經發布的部分,其余內容都可能在遇到不可預見問題時發生變化。
8.1 共識規則的更改
本節討論需要在 BIP 中詳細說明并在代碼中實現的共識規則更改,以避免在后續章節中重復說明。
部署 CISA 并不像當前一些公開討論的新操作碼(op code)提案那樣簡單,它需要通過軟分叉引入新的 SegWit 版本。根據現有的比特幣規則,即使使用了 Schnorr 簽名,每個輸入也必須通過獨立的簽名驗證。CISA 的目標是允許使用一個簽名驗證交易中所有或部分輸入。這一變更將通過引入新的 SegWit 版本來實現,并定義不同的 witness 驗證邏輯。
實際上,這個新版本的 SegWit 將基本復制 Taproot 的規則,但會修改為只需一個簽名即可驗證受支持的所有輸入,并伴隨一些腳本更改。使用新的 SegWit 版本的一個優勢在于,不支持 CISA 的舊節點和軟件將把它視為未知 witness 版本,從而將相關輸出視為 anyone-can-spend 或未識別的輸出類型,從而實現前向兼容性。通過將新行為隔離在新的輸出類型中,可以避免對現有交易類型的歧義或回溯性更改。
如上所述,新版 SegWit 大致復制 Taproot,但需要在比特幣腳本中進行一些關鍵修改。
- 首先,需要引入新的簽名校驗操作碼,如 OP_CHECKAGGSIG 和 OP_CHECKAGGSIGADD,以實現簽名聚合。
- 其次,這些新的聚合簽名校驗操作碼與在 Taproot 中引入的 OP_SUCCESS 升級機制存在不兼容問題。簡言之:聚合簽名校驗操作碼會推遲簽名驗證,而 OP_SUCCESS 操作碼可能已被重新定義(或未定義),這將導致升級節點和未升級節點之間的共識失敗。如果腳本同時包含聚合簽名和 OP_SUCCESS,未升級的節點可能無法檢測出無效的聚合簽名,因為 OP_SUCCESS 會使整個腳本直接判定為有效。
開發者 AJ Towns 已在郵件列表中指出了這一問題,并提出了幾種解決方案 [cisa-success],但目前社區尚未就最佳解決方案達成共識。
CISA 最自然的應用場景是 Taproot 的 key-path 花費路徑,但對于 script-path(腳本路徑)是否需要支持聚合仍有爭議。目前有一個名為 “Generalized Taproot” 的替代提案,可能能優雅地解決 CISA 在腳本路徑上的支持問題,同時也解決 OP_SUCCESS 帶來的潛在共識分歧問題 [thoughts]。不過,這也會為 CISA 的提案增加額外的復雜性 [groot-cisa]。
8.2 比特幣改進提案(BIPs)
鑒于 CISA 的復雜性,完整的軟分叉提案預計將由多個 BIP 組成,這類似于 Taproot 是由 BIP 340-342 三個提案共同組成。目前提案的劃分只是一個大致框架,最終版本可能會根據社區反饋發生調整。
目前用于描述“半聚合”方案的 BIP 仍處于草案階段,只剩下少數問題待解決后即可提交至 BIP 倉庫。由于“半聚合”機制在鏈下也有重要應用價值,因此將其作為獨立 BIP 是合理的 [halfagg-bip]。
除了“半聚合”BIP外,還需要一個用于描述“全聚合”的 BIP,其核心任務是說明簽名方案,其復雜度接近 MuSig2 的 BIP。圍繞該簽名方案的研究和開發將是 CISA 全聚合版本推進中的最大難點,后文將對此進行更詳細說明。
最后,還需要至少一個新的 BIP(可能是一系列)來詳細描述新的交易版本,即 SegWit version 2。這個新版本將修改 witness 程序結構,允許在聚合簽名上下文中存在空簽名。此外,它還會引入支持聚合簽名校驗的新腳本操作碼,并提出與 OP_SUCCESS 不兼容問題的解決方案。
同時,也可能需要新的 PSBT(Partially Signed Bitcoin Transactions)BIPs 來擴展其行為,以支持包含聚合簽名或待聚合簽名的交易。
目前尚無資源專門用于開發“區塊級”聚合提案,因此尚不清楚此類提案所需 BIP 的結構和數量。
8.3 代碼實現
對于半聚合(half-agg),已經有幾個實現可供參考,最著名的是 secp256k1-zkp 中實現的該功能 [halfagg-zkp]。基于該實現的代碼,已經有一個針對 secp256k1 的拉取請求 [halfagg-secp]。此外,還有在 hacspec(待重寫為 hax)和 Python 中的實現。
由于進一步的代碼尚未編寫,因此目前只能推測實現過程中的復雜性在哪里。Bitcoin Core 需要新增代碼,允許驗證聚合簽名與多個(公鑰,消息)對的匹配。比如可以通過一個特殊的操作碼來實現,操作碼在輸入上積累聚合狀態,然后在最后一個輸入或交易級別的數據中驗證最終簽名。一個能夠反映復雜性的一些指標是,Bitcoin Core 中的批量驗證工作 [batch-core]。聚合簽名需要作為一種狀態在檢查過程中持續存在,并且在所有簽名收集到聚合簽名后才會被驗證。這要求修改檢查排隊邏輯,而這些修改在撰寫本文時尚未完全完成。
如果是針對整個交易(tx-wide)的 CISA,將會對錢包軟件進行相當大的修改,而如果是區塊級(block-wide)的半聚合,則主要增加節點軟件和礦工的工程工作量。
8.4 密碼學學研究
如前所述,形成一個全聚合簽名(full-agg signature)需要一個交互過程。交互性為任何協議增加了巨大的復雜性。如,所有簽名者在簽名時必須在線。希望集成全聚合簽名的現有協議將在未來需要實現和處理這種復雜性,包括新引入的失敗場景、隱私影響等。
截至目前,還沒有專門針對全聚合簽名的方案開發出來。但這樣的方案將使用與 MuSig 和 Bellare-Neven 類似的思想。
根據密碼學家 Jonas Nick 的說法,以下特性是全聚合方案所期望的:
- 可證明的安全性
- 允許重復的公鑰
- 不需要所有權證明(proofs-of-possession)
- 與 Taproot 調整和 MuSig 等方案兼容
- 采用像 MuSig 那樣的兩輪簽名
- 支持批量驗證
需要明確的是,目前沒有專門的研究針對這些目標。相比之下,半聚合(half-agg)已經有了更為深入的發展。目前,研究者唯一給出的建議是,Bellare-Neven 可能是一個不錯的起點 [bn]。
8.5 部署
CISA 明確設想為一次軟分叉升級 [thoughts]。通過使用新的 SegWit 輸出版本,它確保了向后兼容,因此舊節點不會驗證這些花費,但也不會拒絕它們。有關這一點的更多細節已經在共識規則更改部分進行了討論。此外,值得注意的是,新的輸出類型并不意味著地址格式也必須改變。支持 CISA 的地址很可能會使用與 Taproot 相同的 Bech32m 格式。
比特幣中的軟分叉升級通常需要礦工信號和生態系統中的廣泛共識。關于激活機制的討論超出了本文的范圍。
8.6 與其他軟分叉提案的交互與組合
目前沒有已知的阻礙因素,阻止 CISA 與任何其他目前正在認真考慮的軟分叉提案一起部署。CSFS(CHECKSIGFROMSTACK)實現將選擇不進行聚合,或者可能需要一種新的操作碼來利用聚合。然而,似乎目前還沒有這樣的提案。
與其他提案的聯合部署似乎不太可能,因為 CISA 本身已經包含了相當復雜的內容。但它可以與任何較簡單的提案配對,如單一的新操作碼(盡管今天看來可能會有爭議)或“大共識清理”(Great Consensus Cleanup)等。
一個顯著的例外是針對量子抗性(Quantum Resistance)進行的變更,盡管這些提案仍處于非常早期的討論階段,因此也被認為超出了本文的討論范圍。