Blockchain

區塊權重和隔離見證的概念仍不清楚

  • May 25, 2019

這似乎是重複的問題,但我閱讀了很多文章和文章以了解 segwit。

下面的連結是我讀過的東西

什麼是塊重量,它與塊大小有何不同?

隔離見證啟動後,可能的最大塊大小是多少?

了解 Segwit 塊大小

塊重

但我需要範例來明確塊重量 T_T

了解隔離見證塊大小的文章中,作者說

Segwit 塊受到稱為塊權重的限制。區塊權重是隔離見證中引入的一個新概念,它是基於每筆交易計算的。每筆交易都有一個“權重”,它是這樣定義的:

(tx size with witness data stripped) * 3 + (tx size)

我認為 tx 大小是

tx = transactions + witness data

然後我陷入了遞歸……我無法理解。

在我看來,這似乎是矛盾的。

因為要定義 tx 大小,需要塊權重來限制見證數據大小。但是要獲得權重,需要一個 tx 大小。

我知道如果沒有見證數據,那麼最大塊大小為 1mb(隔離見證之前)。是的,很清楚。但是有些人使用與字節相同的權重。

比如有人說(尤其是比特幣wiki- Block weight

weight = 1mb * 3 + 1mb = 4mb

還有人說(什麼是塊重量,它與塊大小有什麼不同?

即使在這篇文章中,Sam Jone 說 4,000,000 WU 但塊仍然是 1mb

weight = 1mb * 3 + 1mb = 4,000,000 Weight unit(WU) Or 4mWU

確切的表達方式是什麼?

如果沒有見證數據,那麼剩下的 3mb 或 3mWU 是什麼?是空的嗎?

#577639塊中,塊大小為 1158.038 kB

見證數據是如何儲存的?

1mb 交易 + 見證數據對吧…?

要麼

交易和見證數據共享 1mb 塊?

segwit 的基本概念是將塊大小保持為 1mb 用於交易並添加見證數據,對嗎…?

這意味著交易的大小(不包括見證數據)是 1158.038kB?或者交易+見證數據是1158.038kb?

眾所周知,最大塊重量為 4mWU 或 4m​​b。因此,如果沒有見證數據的交易大約是 1.1mb,那麼這似乎很奇怪

block weight = 1.1mb * 3 + (1.1mb + witnessdata)

因為它大於可能的最大尺寸。

如果交易 + 見證數據約為 1.1mb

block weight = (1.1mb - witnessdata) * 3 + 1.1mb

這個計算似乎更合理。但如果見證數據小於 0.1mb,則塊權重大於 4mb。有沒有可能這麼少的證人數據?

如果只有交易數據,沒有見證數據,比如 1mb 交易數據和 0 見證數據(區塊權重為 4mb 或 4m​​WU,這是理論上的最大大小),那麼如何解決交易延展性問題?

我很抱歉。問題很長,但我希望它不僅對我有幫助,對正在研究區塊鏈的人也有幫助。

感謝您閱讀

看看:https ://blockchair.com/bitcoin/block/0000000000000000000cbbceb342e07071f9621607e044ec909aa86fcdf88e8a

Size = 1,158,038 bytes
Weight units = 3,992,825 WU

現在是什麼意思?所以大小是你可能很好理解的——當你在磁碟上有一個文件時,它的大小以字節為單位,這正是這里大小的含義。它是在記憶體或磁碟上儲存這樣一個塊所需的字節數。這是非見證數據 (nWD) 和見證數據 (WD) 的總和。為清楚起見,我們稱其為絕對大小 (AS)。

還有一種叫做虛擬大小(VS)的東西。這是一個新概念,它以新的單位來衡量塊,稱為 vBytes。它的計算公式為(非見證數據的絕對大小)+(見證數據的絕對大小)/4。

塊的權重(BW)以權重單位計算,計算方式為(非見證數據的絕對大小)* 4 +(見證數據的絕對大小)。這實際上等於您在文章中提到的內容:(tx size with witness data stripped) * 3 + (tx size)因為交易本身包含見證數據和非見證數據。

所以,現在我們知道了:

AS = 1,158,038 bytes = nWD bytes + WD bytes
BW = 3,992,825 WU = nWD * 4 weight units + WD weight units

協議中有哪些限制?目前不再有塊大小限制。塊重量只有一個限制。此限制設置為 4,000,000 WU。因此,對於沒有 Segwit txs 的塊,每個字節的權重為 4 WU,因此,這樣的塊沒有 Segwit txs 的絕對大小受到 1 MB 的限制。

包含 Segwit txs 的塊可能比這更大,並且有一些理論計算表明你可以達到 3.7 MB 的絕對大小的塊。但這個理論上的極限就是——理論上的。在實踐中,即使該塊充滿了 Segwit txs,其絕對大小也不會達到此限制。

目前,大多數塊都包含 txs - Segwit 和 legacy,因此我們看到完整塊的塊大小通常在 1 - 2.2 MB 之間。如果塊的權重非常接近 4,000,000 WU 的協議限制,則該塊已滿。

這意味著認為一個大小為 1.1 MB 的塊由 1,000,000 字節的 nWD 組成,其餘的是 WD 是不正確的。那是行不通的,因為 1,000,000 nWD 字節的權重已經是 4,000,000 WU,因此如果我們將 WD 的權重添加到它,我們將超過限制。這是不可能的。

因此,如果我們知道 AS = 1,158,038 KB,那麼寧可有 944,929 字節的 nWD,權重為 3,779,716 WU,其餘的是 213,109 字節的 WD,權重為 213,109。這使得塊的總重量為 3,779,716 + 213,109 = 3,992,825 WU。

我們現在可以計算 VS:

VS = nWD vBytes + WD/4 vBytes = 944,929 + 213,109 / 4 = 998,206.25 vBytes

因此,虛擬大小 (VS) 不能大於 1,000,000 vBytes,因此如果有人說新塊大小仍受 1 MB 限制,這就是這個意思——他們實際上是指 100 萬 vBytes。

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