Cross-Input-Signature-Aggregation
什麼是交叉輸入簽名聚合,它是如何工作的?
我最近看到很多關於交叉輸入簽名聚合 (CISA) 的提及。這似乎是可以用 Schnorr 簽名做的事情。CISA的主要思想是什麼?使用 CISA 的交易會是什麼樣子?
CISA 背後的想法是,即使有多個輸入,每個比特幣交易也只提供一個簽名。
Schnorr 簽名算法相對於 ECDSA 的一個關鍵優勢是它的線性度。正如Sachin 的回答已經描述的那樣,這允許多個簽名者建構一個簽名,該簽名通過多個密鑰證明消息的授權。
在比特幣中,傳統上每個輸入都需要一個簽名,以送出完整交易的摘要,
sighash
. 對於非隔離見證輸入,每個輸入sighash
都是不同的(這也導致了二次散列問題),但sighash
對於一個事務中的所有隔離見證輸入來說是統一的。由於一個事務中的所有 segwit 輸入都送出到同一個摘要,因此可以使用單個簽名來滿足多個輸入。CISA 的目前草圖建議用單字節佔位符替換除一個對應見證之外的所有見證,然後為最後一個輸入見證中的所有包含輸入僅提供單個簽名。對於具有輸入的交易,這將通過添加一字節佔位符的簽名來
n
減少交易數據。n-1``n-1
Schnorr 簽名和公鑰可以聚合(加在一起),這樣
S1 + S2 = S3 和 P1 + P2 = P3 其中 (S3, P3) 是有效的簽名-公鑰對 IFF (S1, P1) 和 (S2,P2) 是有效的簽名-公鑰對。
正因為如此,如果一筆交易有n 個輸入,那麼這些輸入的簽名可以聚合起來,因此即使輸入任意數量,交易也只需要一個簽名和公鑰,而普通交易則需要n 個簽名和公鑰。
主要好處是節省塊空間(費用)。