segwit 刪除了什麼?
據說Segwit從交易中刪除了簽名數據,這使得區塊有更多的空間容納更多的交易。
問題1)
如果 SegWit 刪除簽名數據,它究竟放在哪裡?它放在交易結束時是什麼意思?它如何使一個塊包含更多的交易?
我知道 segwit 通過添加 segwitTxid 解決了交易的延展性,但我主要是好奇 segwit 是如何增加區塊大小的。
問題 2)我知道塊大小是以重量單位衡量的。我們可以閱讀以下內容:
不是見證數據的交易的每個字節(因此非隔離見證節點會看到的所有內容)都值 4 個權重單位。每個見證數據字節值 1 個重量單位。塊限制為 4000000 個權重單位,如果充滿非隔離見證交易,則為 1 MB。–
通過閱讀本文,如何增加塊大小限制仍然沒有意義。如果我們以 MB 為單位計算大小,segwit 實現可能需要比非 segwit 實現(舊比特幣)更多的 MB。
我會很感激一個很好的解釋..
如果 SegWit 刪除簽名數據,它究竟放在哪裡?它放在交易結束時是什麼意思?它如何使一個塊包含更多的交易?
它不會刪除任何東西。它將見證數據移動到一個單獨的區域,即隔離見證,它 (a) 對 txid 沒有貢獻,並且 (b) 以不同方式計算。
但是,見證數據仍然是交易的一個組成部分。它沒有被 txid 覆蓋,但它被一個新的單獨標識符 wtxid 覆蓋。這些 wtxid 由 segwit 塊送出。因此,您仍然無法更改/刪除/…見證數據,而不會使包含它們的塊無效。
通過閱讀本文,如何增加塊大小限制仍然沒有意義。如果我們以 MB 為單位計算大小,segwit 實現可能需要比非 segwit 實現(舊比特幣)更多的 MB。
是的,一點沒錯。從較新節點的角度來看,這是一個塊大小的增加。這不是直接乘以 4,但 segwit 塊確實允許更多事務,並且它們的總大小(以字節為單位)可以(並且現在)大於 1 MB。
重要的是,這個額外的空間都在見證數據中,舊節點看不到。因此,他們的 1 MB 限制要求仍然得到滿足。
添加到彼得的答案這裡是一個圖表。未啟用 SegWit 的舊節點看不到默克爾樹底部的見證人。因此,這些舊節點的塊大小限制 (1MB) 並未違反。只有啟用了 SegWit 的新節點才能看到這些見證並處理實際上大於之前 1MB 塊大小限制的塊。
該圖取自 Kalle Rosenbaum 的書 Grokking Bitcoin,您可以在這裡免費閱讀或從出版商Manning 購買。