來源:BixinInstitute,原題《UTXO合并》
DavidA.Harding文
本文由幣信研究院原創編譯,原文鏈接:
https://github.com/bitcoinops/scaling-book/blob/6a7b1e9cc64ddf832b86276e7569604334f9012c/x.consolidation/consolidation.md
本文版權歸原作者所有,僅代表作者本人觀點,不代表幣信或幣信研究院的觀點或立場。
本文約6500字,閱讀全文需約20分鐘。
未使用交易輸出合并是指將存儲在多個UTXO中的比特幣價值合并為一個UTXO。這樣可以減少你控制的UTXO的數量,同時使你的余額保持大致相同,從而在為了獲得快速確認需要支付的時候,更有機會能夠創建更小、更實惠的交易。
合并示例
把交易想象成一個矩形,其高度是它的費率,其長度是它的大小,其面積是它的總費用。例如,以下所示為一筆簡單交易,它從一個P2WPKHUTXO花費到兩個P2WPKH輸出——一個輸出給客戶,另一個作為找零回到花費者那里。
大多數錢包最終都會遇到這樣的情況,即它們在一個UTXO中沒有足夠的價值來支付它們想要花費的金額。這就要求它們通過花費更多的UTXO為交易增加更多價值。例如,讓我們在示例交易中花費兩個額外的P2WPKHUTXO:
盡管這似乎是一個很小的變化,但它幾乎使我們的交易大小和成本增加了一倍。這就是合并發揮作用的地方。通過提前準備,我們可以把大型交易的三個UTXO,通過一筆自己發給自己的低費率交易,合并到一個UTXO。然后,我們可以在高費用交易中使用單個UTXO向客戶付款,交易形式與上述第一個示例交易相同:
比較總成本,我們發現兩次交易的版本比使用三個UTXO的單筆高費率交易便宜40%。即使兩次交易的版本使用了更多的總區塊空間,這也是可能的。
Lens在2月創下420萬筆月度交易和12.5萬用戶數,創歷史新高:金色財經報道,據Delphi digital報告,自新年伊始,Lens Protocol的月度交易和用戶數量大幅飆升,2023年2月創下420萬筆交易和12.5萬用戶數,創歷史新高。[2023/5/9 14:50:31]
如果合并交易在你發送第二筆給客戶的交易之前得到確認,那么,與單筆交易相比,客戶不會遇到任何額外的延遲,因此你可以節省少量的錢而完全無需改變接收方的體驗。
平均花費的UTXO
從前面的示例中,我們可以看出,當需要在一個交易中使用多個UTXO時,支出是低效的,而合并才有用。這對你來說有多頻繁?如果你可以獲取以下兩個數據,則可以使用下面提供的簡單公式估算每個交易使用的UTXO的平均數量。
轉入——你的錢包從其他人處獲得的輸出數量。
轉出——錢包創建的將比特幣發送給其他人的交易數量。如果你使用批量付款,請注意,這是交易數量,而不是付款數量。為了提高精度,你可以在此總數中包括你期望在錢包為空之前進行的交易數量。
要計算每筆交易花費的UTXO的平均數量,請使用以下公式:
average_utxos=(轉入+轉出)/轉出
之所以轉出在除號的上下都有,是因為我們預期你創建的大多數交易,也會產生一個找零輸出,把未使用的價值作為一個新UTXO返回到你的錢包。
上面等式的最小現實結果是1.0,這也是交易可包含的UTXO的最小數量。你的結果越是高于1.0,你將從UTXO合并中受益越多,這將在下一部分中看到。
預計節省
要估計使用合并可以節省多少,讓我們看看一筆典型交易的總費用如何取決于它花費了多少UTXO。查看此圖表時,請將x軸與你在上一節中計算的UTXO平均數量進行比較。
如果我們能使用僅支付上圖所用費率的1/10的合并交易,將所有多余的UTXO合并為一個UTXO,會怎么樣?然后,我們可以按足額費率只用一個UTXO去創建常規支出。將這些數據覆蓋在上圖的頂部,我們可以看到可以節省多少:
以太坊L2協議Optimism的交易量超過Arbitrum:金色財經報道,基于以太坊的L2協議Optimism和Arbitrum在交易活動方面存在顯著差異。自12月中旬以來,Optimism在交易數量方面的表現優于Arbitrum。(TheBlock)[2023/1/18 11:17:51]
讓我們以百分比的形式繪制節省的量:
顯然,我們節省的實際金額將取決于用于合并的低費率和用于支付客戶的較高費率之間的比率。使用本文附錄中提供的數據,在撰寫本文時,通常可以實現以下比率:
另一個會影響我們節省金額的事情是,為了花費每筆UTXO,我們需要向交易中添加多少數據;即交易輸入的大小。對于P2WPKH,大約為每UTXO68vbytes;但是對于P2SH2-3多簽,大約為294vbytes。假設我們將常規支出的費率統一為1/10,則各種常見腳本模板的節省為:
根據以上估計,我們預計,至少在某些時候,幾乎所有活動的比特幣服務都可以通過合并節省大量費用。例外情況是,UTXO的平均數量非常少,或者在快速費率和慢速費率之間的差額持續小的時候嘗試合并的服務。
UTXO池
上面的示例假定你將從擁有n個UTXO變為僅有一個UTXO,但是,如果你需要廣播一筆交易而你的交易其中一筆又沒有被確認,那么這可能會造成問題。
從全節點的角度來看,UTXO有兩種形式:已確認和未確認。已確認UTXO是最佳區塊鏈上一筆交易的輸出。大多數現有節點將始終接受第一眼看到的已確認UTXO的支出,前提是該支出是有效的,即支付了適當的費率,小于100000vbytes,并且遵循其他一些簡單規則。
一個未確認UTXO是一筆仍在內存池里的交易的輸出。為了防止針對節點內存池的DoS攻擊,節點對使用未確認UTXO的交易設置了其他限制。這意味著,你無法保證能夠在任意時間使用未確認UTXO。例如,在第一個交易被確認之前,錢包可能無法傳播以下所示的第二個交易:
過去24小時內加密貨幣清算金額為2.2603億美元:金色財經報道,過去24小時內加密貨幣清算金額為2.2603億美元,而周五上午為4870萬美元。過去 24 小時內清算的交易員也激增。被清算的交易員人數為 87,242 人,而周五早上為 13,916 人。加密貨幣清算增加了 12 小時、4 小時和 1 小時以上。12 小時的清算從 2882 萬美元躍升至 1.3756 億美元,四小時的清算從 730 萬美元增加到 9830 萬美元。一小時清算從 89.5 萬美元增加到 277 萬美元。[2022/12/17 21:50:49]
由于許多用戶希望在請求付款后的幾秒鐘內就在錢包里收到新的未確認交易的通知,因此許多支出者不希望自己陷入這種狀態:等待之前的一筆交易得到確認,而無法向網絡提交新交易。這會導致這些花費者維護一個UTXO池——一套可以隨時使用的已確認UTXO。
UTXO池不會顯著影響前面所述的節省,因為你始終可以等到以后將池子合并為一個UTXO。但是,你在不同UTXO之間分配資金以確保即時可花費性的次數越多,你需要付款超出你控制的任何單個UTXO的價值的可能性就越大——這削弱了UTXO合并的費用節省。
如果你很少在UTXO池中遇到該問題,則可以忽略這種情況,因為它的效率很低。如果經常發生,則有幾種選擇:
1.通過保持輸出數量相同并增加每個輸出的價值,來增加UTXO池中輸出的平均價值,從而總體上增加池子里的資金量。請注意,這還會增加你因盜竊或熱錢包意外而蒙受的金錢損失。
2.通過保持總量不變但減少輸出數量,增加UTXO池中輸出的平均價值。你可以通過批量付款來減少在任何特定時間所需的UTXO數量來完成此操作。
3.如本章稍后所述,專注于創建不找零的交易。由于后面小節中所描述的原因,不找零的交易通常不如合并有效,但可以為你節省一些錢。當優化你的UTXO池以進行不變的交易時,你希望UTXO擁有各種金額,以便你有盡可能多的不同金額組合。
最佳合并大小
要合并UTXO,你要在交易中包含的數據不只是UTXO,還必須包括輸出,該輸出將資金返還給自己,并包含一些交易樣板。你在單個交易中合并的UTXO越多,該交易的固定成本在UTXO之間的分配就越好,每個UTXO的成本漸近地接近其中一項輸入的平均大小。
Mango聯合創始人:被盜資金返還計劃很快將完成審核:10月20日消息,此前遭受黑客攻擊的Mango Markets將很快開始返還追回的被盜資金。Mango Labs聯合創始人Daffy Durairaj發推稱,存款人資金返還計劃正在審核中,明天早上應該就能完成。非常感謝為實現這一目標而不懈努力的所有Mango貢獻者。
據此前報道,10月16日,Mango發推稱,黑客已經按照約定將6700萬美元的加密資產歸還給DAO。UTC時間周一15:00,社區將在Mango Discord討論如何處理這些資產。一些開發人員已經開始負責并研究一種算法來確定相關賬戶的退還金額;此次還研究一個單獨的程序,以重新分配資金。Mango表示將進行多次DAO投票,以就確切的程序和金額達成一致。其中一些投票的時間將長達72小時。(CoinDesk)[2022/10/20 16:31:57]
如上所示,通過同時合并額外UTXO所節省的金額并不是特別大,因此即使你不注意合并大小,也可以獲得合理的效率。
冷錢包合并
某些服務在其錢包之間有著基本的職責劃分。收到的客戶存款或付款都將存入冷錢包。付款或提款是使用熱錢包進行的。必要時,一個或多個工作人員將錢從冷錢包轉移到熱錢包。
一個簡單的合并策略是將在一定時期內收到的所有UTXO都放到冷錢包里,然后將它們合并到一個UTXO。但是,你可能會想知道這是否產生了浪費,因為你可能最終在以后將單個UTXO拆分為熱錢包UTXO池的多個UTXO。例如,如果將10個UTXO合并為1個UTXO,則將其轉移回5個UTXO似乎效率很低。
但是,兩種替代選項可能更糟。第一種替代選項是你不合并冷錢包。你只用等到需要轉賬到熱錢包并執行合并。這最大程度地減少了區塊鏈空間的使用——但所有這些空間都用在了單筆大型交易里。如果你需要交易進行快速確認——例如,因為你需要這筆錢才能動熱錢包——你可能會為該交易支付高額費率,從而失去合并冷錢包的好處。
第二種替代選項是,將10個UTXO合并到冷錢包中的5個UTXO,然后將5個冷的UTXO轉移到5個熱錢包UTXO。在所有可用選項中,這將使用最多的區塊空間。它以低合并費率創建了一筆大型交易,并以較高的費率創建了一筆中等規模的交易來把錢發送到熱錢包。這使它成為表現最差的選項。
雖然最大程度地合并UTXO然后在以后進行拆分似乎有點愚蠢,但本節開頭描述的簡單合并策略確實可以提供最大的節省。
青島市市南區:將設立元宇宙產業發展基金,目標規模不低于5億元:金色財經報道,近日,青島市市南區發布《青島市市南區關于促進元宇宙產業高質量發展的若干政策措施》,提出培育元宇宙產業集聚發展、推動元宇宙領域人才集聚、以場景應用打造行業示范、推動元宇宙企業創新能力提升、創新元宇宙企業融資服務、支持龍頭企業做大做強、完善公共支撐體系建設。 除了給予元宇宙領域企業和人才補助外,該政策還在創新元宇宙企業融資服務中提到,將設立產業發展基金,三年內成立目標規模不低于5億元的元宇宙產業投資基金,2022年首期規模1億元,引導和帶動社會資本集聚,聚焦支持元宇宙產業內容生態創新創業項目,培育元宇宙產業內容生態上下游重點企業,加速培育產業新增長點。[2022/10/11 10:30:58]
隱私問題
當你收到從未使用過的新地址的付款時,查看區塊鏈歷史的分析人員將不知道誰擁有該UTXO。但是,如果你將UTXO與他們已確定屬于你的其他UTXO合并,則分析師可以做出合理的假設,即所有合并的資金均屬于你。
因此,試圖最大化自己的比特幣余額或交易歷史的私密性的用戶不應使用本文檔中描述的UTXO合并。以前使用過諸如混幣之類的技術來將其UTXO的所有權歷史與其他UTXO混合在一起的用戶,尤其應該避免這種情況。
有可能在混幣期間執行一種限量的合并,例如,在Joinmarket或Wasabi中的實現。此外,未來協議開發的構想,例如通道工廠或混合池,可能會使由多個人擁有的多個UTXO合并為一個UTXO,然后用于定期支出的情況變得更為普遍,使得分析者更不清楚誰擁有來自合并的幣。
選擇UTXO進行合并
你的目標是使用一個UTXO完成盡可能多的付款,因此你應該首先合并最低價值的UTXO。此外,通過確保每次選擇接收到特定地址的UTXO時,還選擇接收到同一地址的所有其他UTXO,可以減少隱私損失。例如,假設你想在下面的示例錢包中合并三個UTXO:
你應該選擇abcdef:0,因為它是價值最低的UTXO。然后選擇cdefab:0,因為它被發送到與abcdef:0相同的地址。最后,選擇bcdefa:0,因為它是價值次低的UTXO。
關于選擇相關UTXO的更多信息,請參閱BitcoinCore里的-avoidpartialspend配置選項。
合并與競爭技術
在使用UTXO合并的同時,無法有效地使用另一些節省費用的技術,因此以下小節將它們與合并進行了比較,同時突出了它們的優缺點。
不找零的交易
不找零的交易不包含找零輸出,這使典型交易的大小減少了約31至43vbytes。盡管在僅花費一個UTXO的時候有可能創建一筆不找零的交易,但是,通常需要同時花費兩個或更多UTXO才能產生一筆不找零的交易。這是因為,如果你愿意使用任意數量的輸入,那么,可以在交易中包括的UTXO組合的數量會極大地有助于尋找一筆不找零的交易。
不找零的交易節省了區塊空間和費用,因此強烈建議你使用。但是,與需要在同一筆交易中花費兩個或多個UTXO的不找零交易相比,有效使用UTXO合并幾乎總是可以節省更多的錢。這是因為,所有常用腳本的交易輸入都比交易輸出大得多,因此可以省略輸出省下的成本并不能彌補必須包含額外輸入的成本。
不找零的交易還會從你的錢包中刪除一個UTXO,與UTXO合并一樣,減少了你未來的交易費負擔。節省下來的錢更難分析,因為通常你會湊整交易費來創建不找零的交易,從而增加支出費率。但是,即使我們忽略這一點,因為輸入遠遠大于輸出,所以,以較低的費率進行合并仍將比以較高的支出費率創建兩個輸入的不找零交易節省更多的錢。考慮一個示例:Alice和Bob分別收到10個UTXO。Alice將其UTXO合并為單個UTXO,費用為正常支出費用的1/10,然后發送五筆付款。Bob將自己的UTXO分開存放,并自己發送五筆付款,每筆付款都使用兩個UTXO來按正常支出費率創建不找零的交易:
Alice的合并交易為679.25vbytes;她隨后的五筆付款交易是136.50vbytes。Bob的五筆不找零的交易大小為169.25vbytes。
如果Alice和Bob都以相同的費率發送他們的付款交易,我們可以使用一些簡單的代數來計算Bob進行合并交易所需的費率百分比,以便與Alice使用不找零的交易節省的錢相等:
719.25*x+5*140.50=5*177.25
x=0.26
總之,如果Alice能夠以她通常花費費率的1/4或更低進行合并,她將比Bob省下更多的錢,即使她使用了比他多將近一倍的區塊空間。本章附錄中的費率數據表明,在我們粗略的假設下,超過96%的時間都有可能節省費用。
如果Bob需要為每個交易使用兩個以上的輸入來創建不找零的交易,即使Alice為合并交易使用了相應較高的費用率,她也可以節省更多的錢。
就是說,與合并交易相比,不找零的交易的明顯優勢在于,它們使支出者節省了區塊空間并節省了適度的交易費,同時保留了他們的隱私以防上述「合并隱私」部分所述的問題。對于大多數個人消費者,甚至是花費不頻繁的小企業而言,隱私優勢對他們來說比合并節省的交易費更為重要。
預測性/有機UTXO管理
預測性UTXO管理是由BitGo提供的一種服務:「通過在高費率減少交易大小,同時在低交易費時自動清理和處理幣的小片段,來降低總體成本。」這種技術的具體實現是專有的,但它可能類似于DmitryPetuhov所描述的有機UTXO合并。
此類技術消除了合并交易使用的額外區塊鏈空間,從而使其可能更有效率并節省更多交易費。它可能更容易實現某些服務,因為不需要等待數小時或數天即可確認合并交易。此外,BitGo的預測性UTXO管理系統尤其似乎可以使用上一節中所述的不找零的交易實現部分節省,以及其中描述的額外的節省和隱私好處。
但是,在節省費用方面,對于希望在接下來的幾個區塊里確認其支出交易的支出者,UTXO合并通常會比預測性/有機技術節省更多的錢。這是因為,利用預測性/有機交易在區塊鏈空間上省下的幾十個字節,與能夠通過在較低費率支出UTXO來節省很大比例的UTXO支出成本并不匹配。實際上,在前面的插圖中對此進行了量化:
對于平均每筆交易花費兩個或更多UTXO且可以按正常費率的50%或更少的價格進行合并的人,合并至少可以使成本達到收支平衡,并且可以輕松地比發送普通交易節省更多的錢。本章附錄中包含的費率數據顯示,在我們分析的2019年11月和12月期間,有99.85%的可能性為名義上的2個區塊確認目標節省至少50%的費率。
同樣,預測性/有機方法的確具有以下優勢:與現有服務的合并相比,它的實現可能要容易得多,并且與不找零的交易相結合,可以實現適度的額外節省并增強隱私性。不過,專注于最大程度地節省費用的支出者可能會希望專注于UTXO合并。
增加交易費
節省最大的合并交易,應該以你認為允許交易在需要之前確認的最低費率發送。例如,如果你可以等待一周的時間來確認交易,那么你應該使用交易費估算工具的目標費率在1008個區塊內進行確認。
但是,來讓一筆先前發送的合并交易更快地確認,或者因為費率意外上漲,有時你可能需要增加其手續費。在這種情況下,你有幾種選擇:
對于從熱錢包到熱錢包的合并,你應發出BIP125信號,這樣你可以使用費用替代來增加交易費,這是最有效的增加交易費類型。
對于從冷錢包發送到熱錢包的合并,你可以輕松地使用「為父輩付費的子輩」來增加交易費。
對于從冷錢包發送到冷錢包的合并,你可能需要設計你的交易,以便它們始終包含支付給熱錢包的少量輸出。這樣,你就可以通過熱錢包使用CPFP收費功能,而無需重新打開冷錢包。但是,除非你打算把錢轉到你的熱錢包里,否則這種額外的輸出可能會稍微降低合并效率。
結論
對于既頻繁接收又頻繁發送付款的組織來說,合并是省錢的最有效方法之一。它相對容易實現,如果做得好,收到你付款的人將永遠不會注意到你正在這樣做。
另見
AnthonyTowns的《田野報告:在Xapo合并了400萬個UTXO》
MarkErhardt的《演講:unspent管理與幣的選擇》
附錄A:
下圖顯示了使用BitcoinCore的交易費估算的2個區塊確認目標和1008個區塊確認的目標,在一段時間內可用的預計節省。
下表總結了達到一定節省率的頻率。我們看到,幾乎總是可以通過等待一周來節省50%的費率,并且通常可以節省90%或更多。
我們使用上述的一周目標是因為,這是BitcoinCore的評估器所提供的最長期限,并且對于許多組織而言,等待一筆合并交易一周的時間來確認是很容易的。后續的有關費率估算和緊急權衡的章節將更詳細地分析不同確認目標之間的費率差異。
-TheEnd-
文:相里朋 來源:鋅鏈接 自從18世紀60年代英國發生第一次工業革命以來,人類已經歷了三次工業革命.
1900/1/1 0:00:00昨日,爭議人物CraigWright一案迎來了新的進展,不出人所料的是,CraigWright依舊沒有拿到屬于中本聰的比特幣,而他為此又編造了一個理由.
1900/1/1 0:00:00作者:LiangCHE 來源:比推bitpush.news美國證券交易委員會委員HesterPeirce正式提議在不違反美國證券法的情況下為合法的加密項目提供三年的寬限期.
1900/1/1 0:00:00來源:北京發布 編者注:原標題為《重磅!應對疫情影響,北京出臺促進中小微企業發展“16條”措施》 北京市人民政府辦公廳 關于應對新型冠狀病感染的肺炎疫情影響促進中小微企業持續健康發展的若干措施.
1900/1/1 0:00:00來源:一本區塊鏈,原題《疫情陰影下的中國區塊鏈行業:會議延期,礦機停售,從業者在家無事可做》 作者:棘輪比薩 在新型冠狀病陰影下,2020的春節并不太平.
1900/1/1 0:00:00據Decrypt2月1日報道,美國商品期貨交易委員會主席希思?塔爾伯特最近表示,他希望“美國在以太坊等數字資產和區塊鏈技術方面都處于領導地位”。其在周三釋放出了關于以太坊期貨的積極信號.
1900/1/1 0:00:00