Bitcoin-Core

Taproot 等比特幣升級將如何幫助增加區塊大小?

  • December 22, 2021

比特幣的塊大小(硬編碼為 1MB)受到其最弱全節點能力的限制。塊大小限制了第 2 層解決方案之外的區塊鏈上的交易數量,從而增加了費用。更少的人使用自己的完整節點使比特幣的去中心化程度降低。但是,如果最弱的全節點可以處理更大的塊,比特幣可以安全地增加其塊大小而不會失去去中心化。Taproot 等比特幣升級將如何幫助增加區塊大小?

Belcher 告訴 CoinDesk,Schnorr 簽名還將啟用“批量驗證”,其中比特幣全節點可以“在驗證一個 [ECDSA] 簽名所需的幾乎相同時間內驗證 1,000 個 Taproot 簽名”。–比特幣的 Taproot 升級將如何改進比特幣軟體堆棧的技術

如果上面的引用是正確的,那麼驗證一個塊將花費更少的 CPU 功率。這可能會允許網路中最不強大的完整節點處理更大的區塊,這將有助於比特幣在不犧牲去中心化的情況下擴展。

如果阻止比特幣最不強大的完整節點增加區塊大小的限制因素是頻寬(每秒千比特),那麼這次升級將不允許比特幣增加其區塊大小。

比特幣節點必須接收一個塊,然後在重新傳輸之前對其進行驗證。如果驗證所需的 CPU 功率更少,這也可能意味著塊可以更快地通過網路傳播。

可能還有其他升級可以改善塊傳播時間。這些是什麼?

中本聰曾經說過:

比特幣已經可以比現有硬體的規模大得多 [..] 根據摩爾定律,我們可以預期硬體速度將在 5 年內快 10 倍,在 10 年內快 100 倍。即使比特幣以瘋狂的採用率增長,我認為電腦速度將領先於交易數量。

請注意,塊可以並且已經大於 1 MB。它們通常約為 1.5 MB。此外,限制不是以字節為單位的大小,而是通過稱為權重的計算參數。目前的限制是 400 萬個重量單位。根據區塊中交易的種類,實際的區塊大小可以在 1 MB 到 4 MB 之間變化。

一般來說,比特幣的改進主要集中在效率上,而不僅僅是增加區塊大小限制。他們專注於加快驗證交易並縮小交易規模。通過減少交易的權重,可以在相同的權重中容納更多的交易。這減少了所需的網路頻寬,因為可以在相同數量的數據中發送更多事務。

通常,比特幣的瓶頸不是網路頻寬,而是驗證區塊和交易。塊仍然足夠小,大多數網際網路連接可以在合理的時間內中繼它們。瓶頸通常在 CPU 或磁碟 I/O 上。然而,頻寬和儲存空間是正在解決的問題。

CPU 是一個瓶頸,因為它需要時間來驗證每個事務中的腳本和簽名。磁碟 I/O 是一個瓶頸,因為需要從永久儲存讀取和寫入塊和 UTXO 集。區塊鏈中最重要的是 UTXO 集。隨著它變得越來越大,將其保存在記憶體中(以便快速訪問)變得更加困難,並且需要更長的時間來搜尋。這會對驗證交易所需的時間產生很大影響。

Taproot 的引入為我們提供了批量驗證,這可以大大減少驗證簽名所需的時間。這使得 CPU 不再是瓶頸。Taproot 還減少了交易的重量,特別是多重簽名和其他更複雜的腳本。因為 taproot 實現了 MAST,所以只有實際使用的腳本部分需要在事務中顯示。其餘的仍然隱藏在雜湊後面。這通常更節省空間。此外,使用像 MuSig2 這樣的簽名聚合方案,多重簽名與單一簽名輸出無法區分。這顯著降低了交易權重,因為交易中只需要一個公鑰和簽名,而不是該多重簽名中涉及的每個單獨的公鑰和簽名。

就 UTXO 集而言,taproot 不提供任何更改。通過軟分叉更改 UTXO 集通常更難(除了聲明某些類型的輸出不可使用,但我們不想這樣做)。但是,可以進行更改以鼓勵使用者合併他們的 UTXO,並鼓勵使用 UTXO 而不是創建 UTXO。Segwit 通過引入塊重量限制來做到這一點,它使 Segwit UTXO 的花費更便宜。

2017 年,當 segwit 軟分叉啟動時,1 MB 的塊大小限制被 4,000,000 weightunit 塊重量限制所取代。

在此處輸入圖像描述

從那時起,平均塊大小一直相當穩定地增長到現在的平均約 1.33 MiB。在同一時間範圍內,每天的付款也一直在持續增長:

在此處輸入圖像描述

這是怎麼回事?不斷增長的極限,激勵整個網路的使用者採用最佳實踐並更有效地使用塊權。今天,在 2021 年 4 月,只有 45% 的輸入使用 pre-segwit 輸出類型。42% 使用封裝隔離見證,約 13% 使用原生隔離見證。隨著原生 segwit 採用率的增加,平均區塊大小將趨向於 2.5 MiB 左右——在相同的區塊重量限制下,將有更多的支付。

Taproot 以同樣的方式提供了進一步的效率改進。Pay to Taproot (P2TR) 輸入上的簽名減少了 11%,因為 Schnorr 簽名的編碼更加緊湊。Taproot 中的腳本樹允許在單獨的葉子中編碼多個支出條件,並允許通過僅顯示使用的一個葉子腳本來進行支出——以前,多個條件將被編碼在一個必須完整寫入區塊鏈的複雜腳本中。Schnorr 簽名具有線性,允許聚合多個簽名。這開啟了執行無腳本腳本的可能性像原子交換或基於預言機的交易,而無需向交易添加更多數據。希望我們會看到公鑰聚合的廣泛採用,它允許我們在看起來像單個公鑰的情況下對多重簽名或門檻值仲裁進行編碼。同時,批量驗證將允許 P2TR 輸入更有效地驗證。

顯然,所有這些可擴展性改進的潛力都是有限的。對於 Taproot keypath-spends,僅對已用 UTXO 的引用就構成了輸入權重的 62%。因此,噹噹前塊重提高效率的潛力已經完全耗盡時,我們可能想要重新考慮增加塊重限制的想法,或者甚至可能實現塊重的持續增長功能。與此同時,建立在比特幣之上的其他層正在緩慢成熟,例如閃電網路據報導目前在早期採用者中呈指數增長。

引用自:https://bitcoin.stackexchange.com/questions/105884