如果相同數量的數據儲存在區塊鏈中,隔離見證如何提高交易吞吐量?
我在閱讀了這個答案後發布了這個:SegWit 交易中的簽名儲存在哪裡?
我從閱讀中發現,在隔離見證中,驗證交易真實性的“見證人”(或簽名)仍然儲存在區塊鏈上。在這種情況下,給定的交易應該使用相同數量的比特,就好像沒有使用隔離見證一樣。如果塊大小保持不變,比如說 1MB,那麼它應該擁有完全相同數量的事務。
我有另一種可能。假設實際發送到節點的是帶有空簽名欄位的交易(我認為由於多重簽名的東西和腳本,這樣的欄位並不完全存在,但請耐心等待)。然後可以通過單獨的通道發送簽名。實際上被印在區塊鏈上的是一個帶有空簽名欄位的交易。然後由於最長區塊鏈總是獲勝的規則,非隔離見證節點將簡單地接受交易數量最多的區塊鏈,包括一些有趣的無簽名交易,是權威區塊鏈。
但顯然現實要復雜得多。
此外,還有一個問題是最長的區塊鏈總是獲勝規則可以被濫用到什麼程度。(“濫用”一詞並不意味著負面意見)。例如,假設我想出了 FoobarWit。FoobarWit 與比特幣相同,但具有更大的塊大小(沒有 Segwit)。一旦有足夠多的節點採用 FoobarWit,那麼更多這樣的節點將贏得挖礦競賽,因此其他節點將有效地接受更大的區塊,因為歷史更長。我知道事實並非如此,但為什麼呢?
“隔離見證見證人是區塊鏈的一部分”這個問題的答案取決於您對區塊鏈的定義:
- 根據舊的 pre-segwit 節點,答案是否定的,因為它們不關心或接收見證人。
- 根據新的segwit節點,答案是肯定的;見證人與其他所有事物一樣都是鏈的一部分,並且受制於同樣多的驗證規則。
因此,segwit 會稍微增加吞吐量,但代價是增加區塊鏈的大小。這裡沒有靈丹妙藥,segwit 的這一方面只是增加了塊大小。這不是可擴展性的改進。
隔離見證主要是解決交易延展性問題的解決方案,它為各種高級協議打開了大門,這些協議因無法推理未來尚未發布的鏈上交易而受到阻礙。此外,它還稍微改善了激勵結構(使創造產出的支出相對便宜)。作為最終的副作用,它還以向後兼容的方式增加了塊大小。
至於你關於另一個更進一步的分叉的問題:你的軟體所做的對那些不採用它的人沒有影響。即使它擁有世界上所有的雜湊率,舊節點也不會關心或看到你的額外數據。
1MB 區塊限制在隔離見證啟動後仍然有效,但它僅指以隔離見證前格式序列化的區塊交易,其中不包括見證人。這個 1MB 今天仍然是共識。
啟動 segwit 後,還有一個額外的塊大小限制,它確實適用於 segwit 數據:它是每個塊 4M 的“重量”限制。
權重計算如下:
- 事務字節(預先序列化)x 3
- 加上隔離見證的交易字節 x 1
隨著總交易數據的見證部分增加到 100%,以字節為單位的有效塊大小限制接近 4MB。