Segregated-Witness
隔離見證是增加區塊大小還是更有效地使用區塊空間?
這個問題在 reddit 上經常被問到,我認為在這裡有一個規範的答案是有益的:
隔離見證是增加區塊大小還是更有效地使用區塊空間?
是和不是。這取決於你如何提出問題。
- 這是塊大小的增加,因為您可以將大量有用的交易放入一個塊中。
如果您想進行有用的比特幣交易,則必須對其進行簽名,以便其他人無法更改它。如果您能找到一種方法使區塊大小限制不計入簽名,那麼您可以將更多交易放入一個區塊中。因此,segwit 是塊大小的增加。 2. 這不是塊大小的增加,因為增加塊大小將是一個硬分叉,而隔離見證不是。
比特幣中有一個常數:
static const unsigned int MAX_BLOCK_SIZE = 1000000;
如果你提高一點,即使是一點點,也有可能創建一個新客戶會接受但舊客戶不會接受的區塊。這通常被稱為硬分叉。
隔離見證不是硬分叉。它不修改或刪除任何規則;它只會添加新規則。增加塊大小需要修改規則,而segwit不會修改規則,因此segwit不是塊大小增加。 3. 這是一個塊大小的增加,因為一個塊需要更多的空間來儲存和發送。
你有一個包含 800KB 交易數據和 800KB 見證數據的隔離見證塊。這是 1.6MB,大於之前的限制。由於 segwit 全節點必須擁有這些數據來驗證塊,所以 segwit 是塊大小的增加。 4. 這不是塊大小的增加,因為如果節點不理解 segwit,它需要更少或相同數量的空間來儲存和發送塊。
您擁有與上一個範例相同的塊,但它被發送到不理解 segwit 的節點。它只接收 800KB 的交易數據。這就是它需要儲存的全部內容。由於不大於 1MB,segwit 不是塊大小的增加。但是,如果它不儲存見證數據,它就無法有意義地驗證區塊。