比特幣Optech 通訊為讀者提供了比特幣中發生的最重要技術新聞的頂級摘要,以及幫助他們了解更多信息的資源。為了幫助我們的讀者及時了解比特幣,我們將在下方重新發布本時事通訊的最新一期。請記住訂閱以直接在您的收件箱中接收此內容。
本週的時事通訊包括我們的常規部分,描述如何為主根做準備,總結最新版本和候選版本,並列出流行的比特幣基礎設施項目的顯著變化。
消息
本週沒有重大消息。
準備主根#7:多重簽名
每週一次 系列 關於開發人員和服務提供商如何為即將在區塊高度709,632 處激活主根做準備。
在撰寫本文之前收到的1,000 個區塊中,11% 的所有交易輸入包含多重簽名操作碼。如果創建這些交易的許多用戶和服務從多重簽名操作碼切換到無腳本,taproot 的兩個最大和最直接的好處將顯現出來 多重簽名.
第一個主要好處將是交易規模的減少。隨著需要更多的密鑰和簽名,基於腳本的多重簽名的大小會增加,但多重簽名的大小不變。最小的有效多重簽名策略(1-of-2)比可能涉及數千個簽名者的多重簽名策略需要更多空間。規模的減小導致多重簽名用戶的費用直接減少,所有用戶的費用間接減少,因為可以使用更少量的塊空間來滿足對確認交易的相同數量的需求。
第二個主要好處是改善隱私。多重簽名的每次使用都被明確記錄到區塊鏈中,監控者可以使用它們對個人用戶的錢包歷史和當前餘額進行明智的猜測。例如,查看塊692,039,我們不僅可以區分多重簽名支出和單簽名支出,還可以區分多重簽名的不同集合大小和閾值。
相比之下,僅查看區塊鏈數據的第三方無法判斷消費者是否使用了多重簽名。當多重簽名用於關鍵路徑支出時,它與單簽名支出沒有區別。如果上面塊中的所有單籤和多簽都切換到P2TR 密鑰路徑花費,那麼只有少數奇特的花費可以通過它們的腳本來區分(甚至那些在最好的情況下也可以使用密鑰路徑花費)。
使用多重簽名
我們知道三個專為比特幣設計的基於schnorr 的多重簽名方案,所有成員 信號 家庭:
- MuSig(也稱為MuSig1),它應該易於實現,但在簽名過程中需要進行三輪通信。
- MuSig2,也很容易實現。它消除了一輪通信,並允許將另一輪與密鑰交換結合起來。這允許使用類似於我們今天使用的基於腳本的多重簽名的簽名過程。這確實需要存儲額外的數據並確保您的簽名軟件或硬件不會被欺騙而在不知不覺中重複部分簽名會話。
- MuSig-DN(確定性隨機數),實施起來要復雜得多。它的參與者之間的通信不能與密鑰交換結合,但它的優點是不易受到重複會話攻擊。
所有簽名者都必須就要使用的協議達成一致,因此可能存在網絡效應,許多實現選擇使用相同的協議。 MuSig 提案的作者 建議 由於其相對簡單和實用性高,這將是MuSig2。
有一個開放且積極開發的 公關 到libsecp256k1-zkp 項目以添加MuSig2 支持。我們預計基本的多重簽名工作流程如下所示:
- 每個參與者的錢包生成一個 BIP32 與所有其他參與者共享的xpub 輸出腳本描述符 或另一種方法(與現在通常用於多重簽名的方法相同)。
- 錢包還會生成一組隨機數,這些隨機數也與其他參與者共享。錢包可以使用BIP32 強化派生生成這些隨機數。 Nonce 是32 個字節,每個簽名需要兩個。對於不經常使用的錢包,整個錢包生命週期所需的所有隨機數都可以預先共享。對於更常用的錢包(例如LN 路由節點),每個錢包都可以發送其當前交易的簽名以及下一筆交易的nonce。
- 然後,任何錢包都可以通過將特定BIP32 深度的公鑰與來自多重簽名關聯中所有其他錢包的相同深度的公鑰組合來生成聚合公鑰。聚合的公鑰可用於接收P2TR 付款。
- 當其中一個錢包想要花費資金時,它使用 PSBT-基於工作流類似於基於腳本的多重簽名使用的工作流。與多重簽名不同,錢包使用其下一個隨機數和所有其他參與者的下一個隨機數根據MuSig2 算法創建共享隨機數; 然後它會在該隨機數和交易上創建部分簽名。
- 當其他錢包收到PSBT 時,它們使用相同的程序。然後將部分簽名組合以創建最終簽名並廣播交易。
門檻簽署
就其本身而言,MuSig 系列的多重簽名方案只為您提供n-of-n 簽名——為聚合公鑰提供密鑰的每一方都必須為最終簽名提供部分簽名。這非常適合作為當今基於腳本的多重簽名的某些用途的直接替代品,例如花費2-of-2 LN 資金輸出,但它與其他流行的政策(例如2-of-3 多重簽名腳本)背道而馳許多交流。
幾個開發人員正在工作 閾值簽名 這些方案將為k-of-n 場景帶來與多重簽名相同的效率和隱私優勢,但是在這些方案可用之前,可以使用一個簡單的技巧。
在許多門檻案例中,提前知道哪些參與者最有可能簽署。例如,在2-of-3 的情況下,通常知道Alice 和Bob 將共同簽名,而Carol 僅在其他人中的一個不可用時才簽名。對於這組情況,主鍵可以對主根密鑰路徑花費使用多重簽名(例如在Alice 和Bob 之間),並且附加結果(Alice 和Carol,或Bob 和Carol)可以在不同的分支中使用帶有OP_CHECKSIG 操作碼的多重簽名一棵樹 腳本.
在正常情況下,上述交易具有與單籤或多簽交易一樣多的效率和隱私。在異常情況下,支出仍然按預期進行,並且比在鏈上發布多重簽名參數更高效和私密。
雖然用戶想要最小的費用和最大的隱私最終可能會轉向純閾值簽名方案,但上述 方案 也可能繼續使用,因為它向審計員(如果他們知道所有參與者的公鑰)提供了關於使用哪些相應私鑰進行簽名的鏈上證明。
發布和發布候選
流行的比特幣基礎設施項目的新版本和候選版本。請考慮升級到新版本或幫助測試候選版本。
- C-Lightning 0.10.1rc2 是升級的候選版本,其中包含許多新功能、幾個錯誤修復以及對開發協議的一些更新(包括 雙重資助 和 提供)。
顯著的代碼和文檔更改
本週的顯著變化 比特幣核心, C-閃電, 泡芙, 蘭德, 鐵鏽閃電, libsecp256k1, 硬件錢包接口(HWI), 銹比特幣, 比特幣支付服務器, 比特幣改進提案(BIP), 和 閃電.
- 比特幣核心#22006 添加 文件 用於用戶空間、靜態定義跟踪(USDT) 和前三個跟踪點- 為其添加了構建支持和宏 比特幣核心#19866. 在啟用eBPF 跟踪的情況下構建比特幣核心的用戶可以使用提供的跟踪點掛鉤 示例腳本 或者在連接新塊、接收入站P2P 消息和發送出站P2P 消息時編寫自己的跟踪腳本,以提高節點的可觀察性。該文檔還包括添加新跟踪點的使用示例和指南。
- 泡芙#1893 允許單獨配置費率 未宣布的頻道、宣布的頻道,以及 蹦床 繼電器最小值。與已宣布的頻道(0.02%) 相比,此PR 還為未宣布的頻道(0.01%) 設置了不同的默認中繼費率。
- 鐵鏽閃電#967 添加對製作的支持 按鍵式自發支付 通過send_spontaneous_payment 函數調用。通過此更改,我們涵蓋的所有四個LN 實現都將支持密鑰發送。
作者還提交了 相應的文件 (尚未合併)作為密鑰發送支付 BLIP (比特幣閃電改進提案),一種記錄不屬於LN BOLT 規範一部分的功能和最佳實踐的提議方式
找出 原帖在這裡。
請 訂閱比特幣Optech 通訊 直接接收此內容直接到您的收件箱每個月。
.