Segregated-Witness

Segwit 實際上會為實際交易增加多少比特幣容量?

  • August 20, 2017

我經常看到有人聲稱隔離見證將每個區塊的交易量增加了 1.7 倍至 2 倍。我不確定這是否屬實,但如果我自己算一算,我不會得到這個數字。

我的理解是:

1)“重量”計算從:

weight = transaction size
to:
weight = non_sig_siz * 4 + sig_size

每個塊的總最大“重量”從1024^2 to 4*(1024^2).

真正的重量是一個新概念,以前它以字節為單位。

2)典型的交易大約是 500b,簽名是 65b。它們各不相同,但您可以在此處查看平均歷史交易規模:

<https://tradeblock.com/bitcoin/historical/1h-f-tsize_per_avg-01101>

((500.0 – 65.0)*4+65)/4.0 = 451.25
1-(451.25/500) = 9.7% 

建議我們只能通過隔離見證獲得大約 10% 而不是 70-100% 的交易。

我不確定我的數學是否有錯誤,或者我對 segwit 權重的理解,或者典型的 tx 大小,或者其他什麼。我已經看到比我知識淵博的人發布的文章的 1.7 到 2 倍,所以我很想看看它是如何工作的。

當然,如果交易不是典型的,並且其中幾乎只有簽名數據,那麼您可以在一個塊中容納更多的交易。例如,如果你能找到一種方法來創建僅包含簽名數據的交易,那麼每個區塊可以容納大約 8 倍的交易,儘管這些交易將毫無用處。

對於典型的實際案例,我的 10% 數字是否處於正確的數量級,或者我是否遺漏了一些可以允許 2 倍實際有用事務的東西?

請注意,scriptSig 欄位不僅是 ECDSA 簽名本身(65 個字節),而且是 P2PKH 輸入的公鑰,或 P2SH 輸入的兌換腳本,以及更多字節的大小。此外,每個輸入都有一個 scriptSig,而不僅僅是每個交易一個。您正在查看平均交易大小,其中大部分包含多個輸入,但假設只有一個 65 字節的簽名。

讓我們以單個輸入和輸出的交易為例:https ://blockchain.info/tx/82d62d5f4e69ae8338c39b7ae2e1d33db59bdf62c869ded7344adc936bab8653

本次交易為 226 字節,其中 108 字節為 scriptSig(包括長度字節),接近交易大小的一半。因為平均交易不止一個輸入,多個 scriptSig 在這些交易中佔總交易規模的比例更高——平均約佔交易的 60%。考慮到這一點,您可以估計平均增長,這是基於我相信根據目前使用情況使用新規則執行的模擬。

真正的重量是一個新概念,以前它以字節為單位。

事實上,在定義這個新權重之前說權重是以字節為單位的事務大小是一種誤導,你應該將舊大小與新的虛擬事務大小進行比較(這基本上就是你所做的除以 4)

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