來源: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%。即使兩次交易的版本使用了更多的總區塊空間,這也是可能的。
數據:YGG、GEL以及HBAR均將迎來大額解鎖:金色財經報道,據Token Unlocks數據顯示,本周(2月27日至3月5日)以下Token即將迎來大額解鎖,包括:YGG、GEL、HBAR以及ACA等,其中:2月27日21:59,有16,872,453YGG(約合542萬美元)解鎖,占總供應量1.687%;
2月28日0時,有44,172,450GEL(約合1330萬美元)解鎖,占總供應量10.5%;
3月1日8時,有3,140,110,994HBAR(約合2.33億美元)解鎖,占總供應量6.28%;
3月1日15時,有32,050,001ACA(約合453.8萬美元)解鎖,占總供應量3.205%;
3月1日20時,有586,666.67GAL(約合113.2萬美元)解鎖,占總供應量0.293%;
3月3日8時,有5,000,000NYM(約合133.2萬美元)解鎖,占總供應量0.5%。[2023/2/27 12:31:23]
如果合并交易在你發送第二筆給客戶的交易之前得到確認,那么,與單筆交易相比,客戶不會遇到任何額外的延遲,因此你可以節省少量的錢而完全無需改變接收方的體驗。
平均花費的UTXO
從前面的示例中,我們可以看出,當需要在一個交易中使用多個UTXO時,支出是低效的,而合并才有用。這對你來說有多頻繁?如果你可以獲取以下兩個數據,則可以使用下面提供的簡單公式估算每個交易使用的UTXO的平均數量。
轉入——你的錢包從其他人處獲得的輸出數量。
轉出——錢包創建的將比特幣發送給其他人的交易數量。如果你使用批量付款,請注意,這是交易數量,而不是付款數量。為了提高精度,你可以在此總數中包括你期望在錢包為空之前進行的交易數量。
要計算每筆交易花費的UTXO的平均數量,請使用以下公式:
average_utxos=(轉入+轉出)/轉出
之所以轉出在除號的上下都有,是因為我們預期你創建的大多數交易,也會產生一個找零輸出,把未使用的價值作為一個新UTXO返回到你的錢包。
上面等式的最小現實結果是1.0,這也是交易可包含的UTXO的最小數量。你的結果越是高于1.0,你將從UTXO合并中受益越多,這將在下一部分中看到。
預計節省
要估計使用合并可以節省多少,讓我們看看一筆典型交易的總費用如何取決于它花費了多少UTXO。查看此圖表時,請將x軸與你在上一節中計算的UTXO平均數量進行比較。
Coinbase與紅杉支持的DeFi應用Flint宣布終止旗艦收益服務:1月27日消息,獲得紅杉資本和Coinbase支持的DeFi應用Flint在內部郵件中表示,由于存在監管不確定性,決定終止其旗艦收益服務。Flint曾于2022年11月份告知其客戶已從加密貨幣交易平臺FTX撤出了資金。(MoneyControl)[2023/1/28 11:32:57]
如果我們能使用僅支付上圖所用費率的1/10的合并交易,將所有多余的UTXO合并為一個UTXO,會怎么樣?然后,我們可以按足額費率只用一個UTXO去創建常規支出。將這些數據覆蓋在上圖的頂部,我們可以看到可以節省多少:
讓我們以百分比的形式繪制節省的量:
顯然,我們節省的實際金額將取決于用于合并的低費率和用于支付客戶的較高費率之間的比率。使用本文附錄中提供的數據,在撰寫本文時,通常可以實現以下比率:
另一個會影響我們節省金額的事情是,為了花費每筆UTXO,我們需要向交易中添加多少數據;即交易輸入的大小。對于P2WPKH,大約為每UTXO68vbytes;但是對于P2SH2-3多簽,大約為294vbytes。假設我們將常規支出的費率統一為1/10,則各種常見腳本模板的節省為:
根據以上估計,我們預計,至少在某些時候,幾乎所有活動的比特幣服務都可以通過合并節省大量費用。例外情況是,UTXO的平均數量非常少,或者在快速費率和慢速費率之間的差額持續小的時候嘗試合并的服務。
UTXO池
上面的示例假定你將從擁有n個UTXO變為僅有一個UTXO,但是,如果你需要廣播一筆交易而你的交易其中一筆又沒有被確認,那么這可能會造成問題。
推特未來幾個月將進行大規模裁員,馬斯克計劃裁員75%:10月21日消息,據相關采訪和文件顯示,推特的員工可能會在未來幾個月遭受大規模裁員的打擊。據悉,馬斯克在收購該公司的交易中告訴潛在投資者,他計劃解雇推特7500名員工中的近75%,將公司員工數量精簡至只有2000名以上。即使馬斯克收購推特的交易失敗(現在幾乎沒有跡象表明它會失敗),預計也會有大規模裁員。推特目前的管理層計劃在明年年底前削減約8億美元的人力成本,這意味著近四分之一的員工將離職。 (華盛頓郵報)[2022/10/21 16:33:30]
從全節點的角度來看,UTXO有兩種形式:已確認和未確認。已確認UTXO是最佳區塊鏈上一筆交易的輸出。大多數現有節點將始終接受第一眼看到的已確認UTXO的支出,前提是該支出是有效的,即支付了適當的費率,小于100000vbytes,并且遵循其他一些簡單規則。
一個未確認UTXO是一筆仍在內存池里的交易的輸出。為了防止針對節點內存池的DoS攻擊,節點對使用未確認UTXO的交易設置了其他限制。這意味著,你無法保證能夠在任意時間使用未確認UTXO。例如,在第一個交易被確認之前,錢包可能無法傳播以下所示的第二個交易:
由于許多用戶希望在請求付款后的幾秒鐘內就在錢包里收到新的未確認交易的通知,因此許多支出者不希望自己陷入這種狀態:等待之前的一筆交易得到確認,而無法向網絡提交新交易。這會導致這些花費者維護一個UTXO池——一套可以隨時使用的已確認UTXO。
UTXO池不會顯著影響前面所述的節省,因為你始終可以等到以后將池子合并為一個UTXO。但是,你在不同UTXO之間分配資金以確保即時可花費性的次數越多,你需要付款超出你控制的任何單個UTXO的價值的可能性就越大——這削弱了UTXO合并的費用節省。
如果你很少在UTXO池中遇到該問題,則可以忽略這種情況,因為它的效率很低。如果經常發生,則有幾種選擇:
1.通過保持輸出數量相同并增加每個輸出的價值,來增加UTXO池中輸出的平均價值,從而總體上增加池子里的資金量。請注意,這還會增加你因盜竊或熱錢包意外而蒙受的金錢損失。
2.通過保持總量不變但減少輸出數量,增加UTXO池中輸出的平均價值。你可以通過批量付款來減少在任何特定時間所需的UTXO數量來完成此操作。
3.如本章稍后所述,專注于創建不找零的交易。由于后面小節中所描述的原因,不找零的交易通常不如合并有效,但可以為你節省一些錢。當優化你的UTXO池以進行不變的交易時,你希望UTXO擁有各種金額,以便你有盡可能多的不同金額組合。
SkaleNetwork已與ETHGlobal合作,以支持ETHOnline黑客馬拉松:9月1日,據Smart Crypto News發推表示,以太坊原生模塊化區塊鏈網絡SkaleNetwork與以太坊生態系統開發者社區ETHGlobal達成戰略合作關系,將共同支持2022年9月2 -28日舉行的ETHOnline黑客馬拉松活動。[2022/9/1 13:01:52]
最佳合并大小
要合并UTXO,你要在交易中包含的數據不只是UTXO,還必須包括輸出,該輸出將資金返還給自己,并包含一些交易樣板。你在單個交易中合并的UTXO越多,該交易的固定成本在UTXO之間的分配就越好,每個UTXO的成本漸近地接近其中一項輸入的平均大小。
如上所示,通過同時合并額外UTXO所節省的金額并不是特別大,因此即使你不注意合并大小,也可以獲得合理的效率。
冷錢包合并
某些服務在其錢包之間有著基本的職責劃分。收到的客戶存款或付款都將存入冷錢包。付款或提款是使用熱錢包進行的。必要時,一個或多個工作人員將錢從冷錢包轉移到熱錢包。
一個簡單的合并策略是將在一定時期內收到的所有UTXO都放到冷錢包里,然后將它們合并到一個UTXO。但是,你可能會想知道這是否產生了浪費,因為你可能最終在以后將單個UTXO拆分為熱錢包UTXO池的多個UTXO。例如,如果將10個UTXO合并為1個UTXO,則將其轉移回5個UTXO似乎效率很低。
但是,兩種替代選項可能更糟。第一種替代選項是你不合并冷錢包。你只用等到需要轉賬到熱錢包并執行合并。這最大程度地減少了區塊鏈空間的使用——但所有這些空間都用在了單筆大型交易里。如果你需要交易進行快速確認——例如,因為你需要這筆錢才能動熱錢包——你可能會為該交易支付高額費率,從而失去合并冷錢包的好處。
第二種替代選項是,將10個UTXO合并到冷錢包中的5個UTXO,然后將5個冷的UTXO轉移到5個熱錢包UTXO。在所有可用選項中,這將使用最多的區塊空間。它以低合并費率創建了一筆大型交易,并以較高的費率創建了一筆中等規模的交易來把錢發送到熱錢包。這使它成為表現最差的選項。
雖然最大程度地合并UTXO然后在以后進行拆分似乎有點愚蠢,但本節開頭描述的簡單合并策略確實可以提供最大的節省。
隱私問題
河南衛視推出“河大衛數字藏品”項目:金色財經報道,據河南衛視官方公眾號,河南衛視推出“河大衛數字藏品”項目并與南陽市文化廣電和旅游局簽約了《南陽市文旅數字化項目戰略合作協議》,雙方將共同打造文旅文博數字藝術品產品,包括數字助農產品; 文旅數字藏品,發行南陽文旅數字藏品;文博數字藏品,涵蓋文化館、博物館等;非遺數字藏品;歷史文化數字藏品。據悉,河南廣電衛視傳媒有限公司將提供打造數字藝術品所需要的區塊鏈技術產品,包括但不限于通過區塊鏈技術賦能,為數字藝術品生產方、持有方、驗證方等賦予身份標識,并通過可驗證憑證承載鏈上數字藝術品標識,實現數字藝術品全生命周期管理。[2022/6/11 4:18:41]
當你收到從未使用過的新地址的付款時,查看區塊鏈歷史的分析人員將不知道誰擁有該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-
據Cointelegraph1月26日報道,萊特幣創始人CharlieLee提議將礦池捐贈作為加密貨幣開發融資的新方式.
1900/1/1 0:00:00本篇內容銜接上篇,作者在文中指出,公有鏈并不是區塊鏈系統的操作系統,并介紹了正確的區塊鏈系統體系結構。高承實博士認為,發展區塊鏈需要構建統一的區塊鏈底層基礎設施.
1900/1/1 0:00:00據報道,總部位于新加坡的加密貨幣交易所Zebpay在印度中央銀行的嚴打下導致該交易所在該國關閉之后一年多才重返印度市場.
1900/1/1 0:00:00烏茲別克斯坦已宣布將建立“國家礦池”列為優先事項。該國監管加密貨幣行業的機構宣布,加入礦池的礦工將享受更低的電費。這個中亞國家還準備啟動有執照的加密貨幣交易所,使礦工能夠出售自己挖出的幣.
1900/1/1 0:00:00本周一隨著中國股市在春節假期后首次開盤迎來暴跌,比特幣一度漲至9600美元附近,Forbes發文稱對新型冠狀病的恐懼可能會使比特幣突破1萬美元.
1900/1/1 0:00:00前歐洲央行副行長、法蘭西國家銀行前行長ChristianNoyer表示,盡管目前有50多家央行對央行數字貨幣感興趣,但以消費者為中心的央行數字貨幣可能還需要10年的發展.
1900/1/1 0:00:00