Transaction-Verification
礦工 VS 有和沒有 SegWit 的全節點的交易驗證
我正在嘗試填補我對交易驗證的理解中的一些空白,並希望有任何見解。
沒有隔離見證
- 礦工在每筆交易中廣播包含簽名的新區塊。
- 礦工可以選擇決定是否驗證區塊中的每一筆交易。他們被激勵去驗證每筆交易,否則區塊可能無效,他們將失去獎勵。
- 全節點儲存所有區塊鏈數據,也可以選擇驗證交易。
Q1:全節點是否有任何動機來驗證他們沒有直接受益的交易?全節點多久驗證一次交易?
使用隔離見證
- 礦工廣播可能包含或不包含見證人的新區塊。
- 和以前一樣,礦工被激勵驗證交易,但也被激勵在廣播新塊時省略見證以最小化頻寬。
- 完整節點可能會也可能不會將見證數據儲存為完整區塊鏈的一部分。
Q2:如果全節點想要驗證交易,但礦工沒有將見證作為新區塊的一部分廣播,那麼全節點會向誰請求籤名?據我了解,從長遠來看,有計劃進行見證“修剪”以最小化整個區塊鏈的大小,但是在短期內強制保留簽名是什麼?
全節點是否有任何動機來驗證他們沒有直接受益的交易?
是的。如果他們沒有驗證所有區塊和交易,他們最終可能會出現在區塊鏈分叉上,而這可能會被攻擊者促成。驗證所有區塊和交易可以讓他們確保節點位於正確的區塊鏈上。
全節點多久驗證一次交易?
對於新的區塊和交易,始終如此。節點收到的每一個新區塊和交易都會根據節點的共識規則進行充分驗證。在初始區塊鏈同步期間,事務和塊僅在達到某個硬編碼塊雜湊的部分驗證(未驗證簽名),並且僅當該塊雜湊是最佳標頭鏈的一部分時。
如果全節點想要驗證交易,但礦工沒有將見證作為新區塊的一部分廣播,那麼全節點會向誰請求籤名?據我了解,從長遠來看,有計劃進行見證“修剪”以最小化整個區塊鏈的大小,但是在短期內強制保留簽名是什麼?
Segwit 節點將始終要求有見證人的塊。如果在沒有見證人的情況下向他們發送了一個區塊,即使要求見證人,該區塊將被視為無效,並且發送該區塊的節點將暫時與該節點斷開連接並被禁止。交易也是如此,但沒有斷開和禁止 IIRC。為了始終確保區塊帶有見證人,隔離見證節點永遠不會向非隔離見證節點請求區塊。