3項比特幣(BTC)改進提案已合併至提案儲存庫。依輸入100筆、輸出1筆的交易計算,採用「完整聚合」可讓用來計算手續費的虛擬大小減少27.3%。
GitHub上的Bitcoin改進提案(BIP)儲存庫顯示,BIP458、BIP459與BIP460分別於11月2日、3日及4日合併。BIP458定義「半聚合」簽名方式,BIP459定義完整聚合方式,BIP460則提出將兩種方式用於交易的設計。
截至11日,這3份文件都仍處於草案狀態。提案合併至儲存庫,不代表比特幣網路規則已變更,也不表示相關方式已啟用。
比特幣交易包含用來支用既有資金的輸入,以及接收資金的輸出。若將多筆小額餘額合併為一筆交易,或由多人共同參與交易,輸入數量可能增加。這些提案旨在減少輸入所需的簽名資料。
半聚合會將各參與者分別產生的簽名事後合併。10個簽名合併後,資料大小可由640位元組降至352位元組;此方式不需要參與者共同進行簽名程序。
完整聚合則由多名簽署者經過兩輪互動,產生固定為64位元組的結果,不受簽名數量影響。相較半聚合,完整聚合可進一步縮減資料,但需要簽署者彼此協調。
交易手續費不只取決於簽名資料大小。BIP141的計算方式是將整筆交易的重量除以4後無條件進位,所得虛擬大小(vB)用於計算手續費。交易空間與手續費的關係,本報此前也曾報導。
依照BIP460的輸入格式與BIP141公式計算,一筆有10個輸入、10個輸出的共同支付交易,虛擬大小可由基本設定下的1016 vB,降至半聚合的944 vB或完整聚合的872 vB。假設手續費率相同,虛擬大小分別減少7.1%與14.2%;這不是在比特幣網路實測的降幅。
若交易將100個輸入合併為1個輸出,虛擬大小則可由基本設定下的5804 vB,降至半聚合的5012 vB或完整聚合的4220 vB。完整聚合減少27.3%的估算適用於這種交易組成,計算前提包括所有輸入都加入同一個聚合群組、採用基本簽名設定、不含額外見證資料與附屬資料,且輸出指令碼為34位元組。
BIP460提議在新的見證資料版本v2中,將聚合用於Taproot金鑰路徑支用。既有Taproot輸出無法追溯套用聚合功能;指令碼路徑支用也不在聚合範圍內。若要用新格式建立或支用比特幣,錢包必須支援該格式。
在公開的Delving Bitcoin開發者討論中,有人擔心同時導入新輸出格式與聚合功能,會增加錢包和託管業者的支援負擔。BIP460允許逐一選擇是否對輸入使用聚合;未聚合的輸入仍採用既有BIP341簽名方式。提案提出者另在討論中回覆,新輸出格式的支援與聚合功能的實作不必同時進行。
完整聚合需要簽署者協調並管理秘密臨時值。BIP459警告,若錯誤重複使用臨時值,可能導致私鑰外洩。半聚合則可在個別簽名產生後再行合併,不需要共同簽名程序。
BIP460明確指出,實際導入需要透過軟分叉;提案尚未訂定啟用方式與參數。其他提案也以v2為目標,因此後續可能還需要協調版本設定。
Comment 0