工作量證明(Proof-of-work)機制將比特幣牢固地固定在物理世界中,并使其服從熱力學定律。礦工們消耗的能量確保了區(qū)塊鏈的安全性,但這個有用工作伴隨著熵的增加及廢熱的產生。如果比特幣區(qū)塊鏈是一臺引擎,那么粉塵UTXO將成為其所排放的廢熱的一部分。正如沒有引擎是完全有效的,比特幣也永遠不會停止制造粉塵UTXO。
而我們要做的,就是提升比特幣這臺引擎的效率。
原文作者是物理學家兼金融服務公司Unha.Capital的聯(lián)合創(chuàng)始人Dhruv Bansal,以下為譯文內容:
長話短說:我們調查了粉塵(dust)的歷史和未來:比特幣容器(UTXO)所花費的費用,已經超過了它們持有的資金。
區(qū)塊鏈中的粉塵數(shù)量,是由當前UTXO集和交易費用市場所決定的。在費用高峰期 (2017年12月),比特幣區(qū)塊鏈中25%-50%的UTXO可能是被粉塵占據(jù)的!同時,這些粉塵UTXO中含有的BTC數(shù)量很少:17年底時價值約為幾千萬美元,而目前已降低到數(shù)十萬美元。所以,根據(jù)你如何衡量粉塵UTXO,其要么是一個大問題,要么是一個微不足道的問題。無論哪種方式,我們會討論盡可能減少新粉塵UTXO和清理現(xiàn)有粉塵UTXO的可能解決方案。
什么是粉塵UTXO,它們來自哪里?
比特幣使用了稱為未使用交易輸出(UTXO)的會計結構。任何比特幣交易的輸出都是新的UTXO,而輸入則是現(xiàn)有的UTXO,其會被該筆交易所消耗。在比特幣區(qū)塊鏈當中,BTC總是“存儲”在這樣的UTXO中。
該圖顯示了錢包構造發(fā)送0.5BTC交易的兩種可能方式。第一筆交易消耗了兩個UTXO,因此費用更高。第二筆交易只消耗一個UTXO,因此更便宜,但是會產生非常低額的找零輸出。錢包軟件必須平衡這些權衡,這是一個難題。
當錢包構造交易時,它必須決定使用哪個UTXO作為輸入。
這聽起來很簡單,但它確實是一個困難的優(yōu)化問題。
Jameson Lopp定義了錢包軟件作者必須追求的,三個同時存在且相互沖突的目標:
· 通過在錢包中保留很多UTXO來支持高交易量;
· 通過不確定性和掩蓋輸出的變化來保護隱私。
· 盡量減少交易費用,無論是現(xiàn)在還是以后;
“顯然,對于這個問題,沒有“一刀切”的解決方案,事實上,上面概述的三個廣泛的優(yōu)化目標,往往是直接對立的。” - Jameson Lopp
此外,錢包軟件通常是通用的,這意味著其由很多不同類型的用戶所共享。錢包作者不知道給定用戶計劃進行什么樣的未來交易,也不知道交易費用市場將會如何發(fā)展。
這意味著,錢包沒法幫忙,而且有時其會創(chuàng)建低額的粉塵UTXO。錢包中的UTXO管理是一個困難的優(yōu)化問題,沒有全局最優(yōu)的解決方案。這是粉塵的最終來源。
粉塵UTXO是什么形成的?
直覺上,低余額的UTXO很可能是粉塵。下圖顯示了UTXO余額隨時間的分布:
?
UTXO余額隨時間的分布圖。較冷的顏色(藍色和綠色)代表低余額UTXO,較暖色(橙色和紅色)則是高余額UTXO。我們選擇繪制的百分位數(shù)突出了分布的下端和上端。UTXO余額的范圍是巨大的:在分布上端存在包含數(shù)千BTC的UTXO,而下端有一些包含少于100聰?shù)腢TXO(兩者相差11-12個數(shù)量級!)
該圖確實證實了存在大量低余額的UTXO,但我們能否更精確地定義這些低余額UTXO當中,哪些屬于粉塵UTXO?
在一筆交易中使用UTXO需要引用該UTXO(通過提供創(chuàng)建該UTXO的交易ID以及它在該交易中作為輸出出現(xiàn)的順序),以及使用所需的密鑰對其進行簽名。所有這些都需要一定數(shù)量的字節(jié)來表達,并且礦工必須得到交易費作為補償。
一筆交易從其輸入UTXO借記其交易費用。這通常不是一個問題,因為交易費用通常比它們消費的所有UTXO余額總和小。但是,如果UTXO的余額非常低,或者如果交易費用非常高,或者UTXO需要花費大量字節(jié),則所得到的輸出UTXO,其花費可能要比它包含的資金要更多。
我們將UTXO的值密度,定義為它的余額除以使用它所需的字節(jié)數(shù)。
UTXO的值密度衡量每個字節(jié)所需的BTC數(shù)量。
根據(jù)這個定義,將UTXO分類為粉塵UTXO需要比較兩件事:
· 礦工目前接收的最低交易費用;
· UTXO的值密度;
這兩個數(shù)量都有聰/字節(jié)的單位,因此可以直接進行比較:如果UTXO的值密度小于礦工當前接受的最低交易費,則該UTXO當前就是粉塵UTXO。隨著交易費用市場的變化(通常是不穩(wěn)定的),UTXO可能會跌至“粉塵線”以下,隨后又會升至“粉塵線”之上。
花費一個UTXO需要多少字節(jié)?
將UTXO分類為粉塵需知道花費多少字節(jié),但是這個數(shù)目并沒有被很好地定義:平均而言,花費UTXO所需的字節(jié)數(shù)隨著UTXO在單個交易中花費越多而減少,因為它們都可共享頭部或隔離見證(segwit)信息。
無論如何,如果UTXO是交易中的單個輸入,我們至少可以做出任意選擇,并詢問花費UTXO所需的字節(jié)數(shù)。
答案取決于UTXO地址的類型。下表總結了這種關系:
地址類型與在該地址處使用UTXO所需的字節(jié)數(shù)之間的關系。該表來自Pérez-Solà, Delgado-Segura, Navarro-Arribas, Herrera-Joancomart的表3
上面的表格對于“簡單”的地址類型(如P2PK和P2PKH)有確定的大小。但是對于P2SH地址,不可能先驗地計算從這個地址花費UTXO需要多少字節(jié)。只有在交易中顯示該地址的贖回腳本之后,才能知道從該地址花費多少字節(jié)。
盡管如此,大多數(shù)P2SH地址是具有可預測結構的多簽地址。而且,我們可以從區(qū)塊鏈歷史中的開銷推斷出很多P2SH地址:
根據(jù)歷史數(shù)據(jù)估計每個給定地址類型花費UTXO所需的字節(jié)數(shù)。該表來自Pérez-Solà, Delgado-Segura, Navarro-Arribas, Herrera-Joancomart的表6
給定UTXO在地址類型之間的分布,我們可以使用上表中的估值來計算在任何時間花費UTXO所需的平均字節(jié)數(shù)。下面的圖表總結了這些數(shù)據(jù):
?
比特幣UTXO集關于地址類型的分布圖,黑線顯示了對當時使用平均UTXO所需字節(jié)數(shù)的最佳估計。如今的地址優(yōu)勢已經從P2PK轉移到P2PKH和P2SH。
根據(jù)上面的圖表,我們估計花費平均UTXO的開銷為172字節(jié)。
注:按結構計算,這個數(shù)字過高了。在比特幣的大部分歷史中,使用UTXO所需的平均字節(jié)數(shù)不僅低于172字節(jié),而且通過智能交易批處理,可以顯著降低這種估算值。
比特幣區(qū)塊鏈中有多少粉塵UTXO?
根據(jù)比特幣歷史中任何區(qū)塊的UTXO集,以及用于花費UTXO的172字節(jié)估算值,我們可通過將每個UTXO的余額除以花費UTXO所需字節(jié)數(shù)來構造UTXO值密度分布:
?
有色帶表示圖例中每個百分點處的值密度。黑色虛線表示隨時間推移的平均費用,實黑線表示最低費用。值密度低于最低費用的UTXO不能使用,而那些低于平均費用的UTXO則更難使用。該圖假定花費任何給定UTXO所需的平均字節(jié)數(shù)為172。
這個圖與前面的UTXO平衡分布圖非常相似,它只是根據(jù)每個UTXO所需的字節(jié)數(shù)(172)重新調整大小。這個新分布的單位是聰/字節(jié),所以我們可直接將它與那個區(qū)塊(黑線)的費用市場進行比較,單靠UTXO余額無法做到這一點。
那這個圖代表著什么?
有很多粉塵UTXO!
在2017年末的高費用市場中,15%–20%的UTXO的值密度低于最低50-60 聰/字節(jié)的費用,這使得它們幾乎無法被使用。40%-50%的UTXO值密度低于600-700 聰/字節(jié)的平均費用,這使得它們很難被使用。這里有很多是粉塵UTXO!
到了2018年,比特幣的費用市場急劇降溫,今天,10%-15%的UTXO值密度仍然低于20-30 聰/字節(jié)的平均費用,3%-5%的UTXO值密度低于1-2 聰/字節(jié)的最低費用。雖然粉塵UTXO少了很多,但仍是很多的。
這些粉塵UTXO并不值錢!
讓我們換個角度來看:很多UTXO可能被歸類為粉塵UTXO,但是這些粉塵UTXO總共包含了多少比特幣呢?雖然它們有很多,但是根據(jù)定義,它們的余額很低,所以總的來說,它們加起來也沒有多少。下圖顯示了低值密度UTXO中包含的比特幣百分比:
?
有色帶顯示了給定值密度的UTXO所保留的比特幣占比。由于大部分比特幣是由高值密度UTXO所包含,因此只顯示了低值密度UTXO(這些可能是粉塵)的能帶。放大過去幾個月,看看最近低值密度UTXO的減少。該圖假定花費任何給定UTXO所需的平均172字節(jié)。
雖然有許多低值密度的UTXO,但是上面的圖表顯示,粉塵UTXO中聚集的比特幣是非常少的。按價值計算,只有0.01-0.02%的比特幣是粉塵,即使在費用峰值時期也是如此。以當時的比特幣總市值2250億美元計算,則相當于粉塵UTXO的值大約在2500萬-5000萬美元之間。
而市場在今天的平均費用比2017年末要低得多。按今天的收費,比特幣網絡當中只有0.0005%是粉塵UTXO。而在今天比特幣市值跌至650億美元的情況下,這代表全網只有價值30萬美元的粉塵UTXO!
這代表被困于比特幣網絡的粉塵UTXO價值從2017年底的5000萬美元縮水至如今的30萬美元。
注:這些數(shù)字過高了。通過智能交易批處理,我們可有效減少使用UTXO所需的平均字節(jié)數(shù),因此可減少我們對粉塵UTXO的數(shù)量和值的估計。
我們能減少粉塵UTXO嗎?
比特幣是一個無需領導的系統(tǒng),這使得很難設計自上而下的方法來消除現(xiàn)有的粉塵UTXO,并減少未來的粉塵。相反,我們必須依賴對行業(yè)用戶、礦工和企業(yè)的激勵。那這種激勵措施存在嗎?
交易所及其他業(yè)務
是的,它們是存在的。雖然暴跌的價格和費用市場是減少粉塵量的主要原因,但在2018年,交易所等大型企業(yè)(尤其是Coinbase)采取了積極的降塵措施。下圖直接顯示了這些有效措施的影響:
?
市場作為一個整體,無論是緩慢(HODLs)還是快速地(反彈)增加粉塵量。單個參與者可以顯著增加(2015年的“壓力測試”)或減少(2018年的Coinbase)粉塵量。但是粉塵交易的產生從來沒有停止過,請注意最近增加的粉塵交易和正在進行的清理工作。
Coinbase等公司已經制造了大量的粉塵UTXO,并且由于沒有充分批量處理客戶的交易,因此它們使用區(qū)塊空間的效率很低。由于像Coinbase這樣的主要交易所在2017年的牛市期間會非常受歡迎,這種行為影響了比特幣網絡的其他部分,很多人也抱怨得對。
當收費市場在2018年初回落時,Coinbase既有動力也有能力減少他們現(xiàn)有的粉塵足跡和未來的粉塵生成。批量交易節(jié)省了交易業(yè)務費用,同時也減少了粉塵UTXO的生成。Antoine Le Calvez的優(yōu)秀作品《當比特幣的粉塵問題被解決時》分析了這個“UTXO合并”整理活動。
比特幣生態(tài)系統(tǒng)中的其他成員是否有同樣的激勵機制來減少粉塵UTXO呢?
對用戶來說
用戶不受粉塵UTXO的直接影響。由于使用的錢包軟件效率低下,用戶可能會生成粉塵UTXO,但是很少有個體比特幣用戶會創(chuàng)建大量的粉塵UTXO。
用戶不喜歡高手續(xù)費,但粉塵UTXO不會直接影響收費市場。低效的UTXO管理,既會產生粉塵UTXO,又會導致更多小額的交易,這是導致費用增加的更大原因。因此,用戶只有適度的激勵來減少粉塵UTXO。
即使他們缺乏動力,那用戶是否有能力限制粉塵呢?畢竟,正如2017年UASF運動所證明的那樣,用戶在密碼貨幣方面是具有很大能力的。但是,粉塵UTXO是一個共同的問題,它是一個公地悲劇,因此需要一些協(xié)調一致的解決方案。用戶將需要來自開發(fā)者或交易所或礦商的幫助,以清除他們擁有的任何粉塵。
個人用戶可能愿意“捐贈”他們的粉塵,比特幣確實為用戶提供了捐贈粉塵的機制(例如,ALL|ANYONECANPAY或NONE|ANYONECANPAY 類型簽名)。如果錢包支持它,一個社區(qū)協(xié)調的公共春季大掃除,可能會是一個有趣的,為各種用戶選擇的慈善機構或項目增加資金來源的方式,從而受益于比特幣生態(tài)系統(tǒng)。
對于礦工而言
大多數(shù)礦工會忽視粉塵。
礦池運營者需要管理UTXO集,并處理它包含的任何膨脹,但他們也可以自由地簡單地從他們的mempool中丟掉低值密度的粉塵UTXO。無論如何,沒有用戶愿意花錢!這將為清道夫礦池提供拾取并試圖挖取這些粉塵UTXO的機會,但這仍然需要用戶采取行動來花費它們。用戶可能不會注意或者關心。
關心粉塵的獨立礦工或礦池運營者可選擇安排一個費用假期,在此期間,這些礦工將故意允許零費用交易,這些交易(僅)花費低值密度UTXO,這可能是在春季清潔期間完成的。
這將允許用戶清理錢包,同時幫助礦工和節(jié)點運營者顯著減少UTXO集的memory占用。
諸如BetterHash之類的提議(可分配選擇交易的能力),可能會鼓勵更多的個體礦工離開傳統(tǒng)礦池(礦池運營者來確定待挖取的區(qū)塊)并構建自己的區(qū)塊。那么,他們可能必須對付/關心更多的粉塵。
從理論上講,礦工也可以拒絕處理產生粉塵UTXO的交易。
但是,他們真的愿意在短期內犧牲費用收入來防止長期產生粉塵嗎?考慮到礦池在主導挖礦,而且這些礦池并不特別關心粉塵,這似乎不太可能。
對于全節(jié)點運營者
全節(jié)點運營者是那些備份區(qū)塊鏈、中繼和驗證交易但不做挖礦工作的運營者,他們對粉塵生成也有一定的控制能力。bitcoind軟件中的minRelayTxFee參數(shù)允許節(jié)點運營者設置最小值密度,而低于該密度,節(jié)點運營者將忽略/刪除UTXO(以及創(chuàng)造它們的交易)。在某種程度上,這種設置已經防止了極低值密度UTXO的產生,如果從未實施這種設置,那么今天可能會有更多的粉塵。
但是,很少會有節(jié)點運營者將配置設置調整到這種詳細級別。這是因為,開發(fā)人員對bitcoind軟件的默認設置并沒有啟用這個參數(shù)。
開發(fā)人員
在很多方面,開發(fā)者是最有能力限制粉塵產生的存在。
開發(fā)人員編寫錢包軟件和撰寫相關文檔。他們在面臨困難優(yōu)化問題時的權衡(和失敗)是粉塵生成的根本原因。新的策略和最佳實踐,是減少未來粉塵生成的最佳途徑。
開發(fā)人員定義默認節(jié)點設置,這些設置滲透至全節(jié)點運營者、礦工、交易所。這提供了對粉塵的群體免疫,從惡意的或低效的錢包中過濾掉粉塵。
通過基層活動(就像UASF一樣),開發(fā)者可以直接與用戶和礦工合作,構建必要的社交軟件,以安排和操作春季清潔運動和費用假期。
通過構建第二層網絡(例如閃電網絡),開發(fā)人員甚至可大幅克服粉塵問題。
粉塵不可避免
但是,我們沒法完全杜絕粉塵的產生。盡管在2017年期間,人們對粉塵的認識在不斷提高,并于2018年3月開始試圖清理粉塵,但粉塵仍然在不斷產生:
1. 值密度小于50 聰/字節(jié)的UTXO顯示出連續(xù)生產的鋸齒曲線,然后是快速回調:這表示有人正在積極地制造粉塵,但至少也有人也在做清理。
2. 此外,值密度小于 100 聰/字節(jié)的UTXO(以美元計)已經增加了10%,這些UTXO今天已不再是粉塵了,但如果收費市場再次像2017年那樣上升,它們將迅速變成粉塵。
粉塵產生是比特幣固有的低效率問題導致的。
粉塵只影響比特幣嗎?
并非所有的區(qū)塊鏈都使用了UTXO模型。例如,以太坊就使用了賬戶模型。
1.通過不同的交易向一個地址存入以太幣是會混合的;
2. 交易費用由廣播交易的地址支付,而不是被轉移以太幣的地址;
這兩種差異都大大減少了粉塵的產生,但并沒有完全消除它。
以太坊開發(fā)者也會擔心粉塵,以及其可能導致的以太坊區(qū)塊鏈膨脹問題。
粉塵的生成,似乎在各種區(qū)塊鏈中是一個普遍存在的低效率問題。
區(qū)塊鏈的熱力學?
粉塵UTXO和普通UTXO的區(qū)別在于實用性。在一個粉塵UTXO中的1聰,其不如在正常UTXO中相同數(shù)量的1聰有用。但它們在其他方面是相同的。
礦工們?yōu)榱吮Wo比特幣區(qū)塊鏈而押注的算力,既保護了粉塵UTXO,也保護了更有用的UTXO。這讓粉塵UTXO中的聰(比特幣單位)顯得更加無用,這看起來是不是在浪費能源?
“能源浪費”對于比特幣來說可能是一個敏感的問題。有些人已經對工作量證明為確保比特幣交易安全所消耗的能量表示嘆息。那如果他們知道,大量的安全保護工作是不會被使用的話,他們的反對是否會更強烈呢?
比特幣安全性的能效如何?
比特幣是否有能源效率的概念呢?指使用算力來保護有用經濟資產的效率?人們可通過將比特幣礦機視為空間加熱器來簡單地定義其能量效率,但是對于整個比特幣網絡,是否存在更有趣、區(qū)塊鏈層的能源效率定義?而這個定義,會導致比特幣的效率因為粉塵的存在,而變得比人們想象地要更低?
物理與經濟學
關于能量效率的問題可以用熱力學來陳述,因此可以用物理學的工具來回答。
近幾十年來,物理學家曾多次嘗試使用他們的工具來模擬經濟系統(tǒng)。有時,這些嘗試在簡單性和應用范圍上都是非常漂亮的:例如有數(shù)十億美元是由Black-Scholes方程導出的模型管理的,該方程通過類比熱通過物理物質的擴散來計算期權價格。
這些(“經濟物理學”)領域的其他嘗試,感覺像是奇怪的、孤立的嵌合體,其被父學科都拒絕了。
對于物理學家的定量分析和理論模型來說,區(qū)塊鏈是一個合適的學科嗎?考慮:
1. 比特幣,盡管其市場仍然較小(而且在減少!),但現(xiàn)在它已經有了10年歷史,它已經足夠大了,可顯示用戶數(shù)量、投資、價格、數(shù)量和價值的各種有趣模式;
2. 區(qū)塊鏈也屬于分布式賬本,它們以偽匿名方式記錄它們的數(shù)據(jù),但是具有足夠的結構來精確地分析大規(guī)模行為;
3.最有趣的是,通過使用大量的能量,比特幣被錨定在物理世界中。這為物理學家思考區(qū)塊鏈的熱力學提供了依據(jù)。
區(qū)塊鏈是結合經濟學和物理學見解的一個前所未有的機會。
區(qū)塊鏈作為熱力引擎
這些屬性的結合表明,我們可能想更認真地對待“粉塵UTXO是一種能源浪費”這種隨意說法:實際上,更確切地說,UTXO是在“浪費”能源,因為它們對任何人都沒有做有用的“功”。這降低了我們尋求測量的效率。
物理學家定義了一個簡單的框架來理解有用的熱、功和熵如何與機械引擎的效率相關,即:熱力學的經典理論。
像這樣的熱力學方程式,將輸入能量和發(fā)動機所做的功與發(fā)動機內部能量的變化及其產生的熵量聯(lián)系起來。這個特別的方程式僅僅是暗示性的,還不清楚如何將這些術語用于區(qū)塊鏈。
沒有哪種經典的引擎是完美的,提取有用功總是伴隨著熵的增加,通常表現(xiàn)為系統(tǒng)中的廢熱:
在反應室中分布在空氣和燃料分子中的能量的焦耳,比在發(fā)動機的熱排氣中分子之間的隨機振動存在的相同能量焦耳更有用。發(fā)動機的效率是指發(fā)動機避免產生廢熱的程度,其效率越高,越有利于有用機械功。
粉塵UTXO是沒有用的,但它們是安全的,就像發(fā)動機排出的廢熱沒有用,但無論如何都會產生一樣。
正如工程師們已設計出聰明的系統(tǒng)來避免產生廢熱并快速釋放廢熱一樣,區(qū)塊鏈工程師們正在開發(fā)更智能的錢包軟件,而區(qū)塊鏈公司正在“冷卻”自己的粉塵,以努力提高區(qū)塊鏈的效率。企業(yè)先清理高值密度粉塵,然后再清理低值密度粉塵,這也是Antoine Le Calvez在他的文章中提到的。
評論
查看更多