比特幣交易結構里的 Witness(見證)什麼時候會用到?
我的理解是,區塊里所有東西的計算都不需要 Witness,只有在節點驗證新挖出的塊是否合法時需要用到它。
那麼
1) 在區塊被挖出並確認後,驗證交易和區塊合法性是不是都不需要 Witness?
2) 極端一點想,一旦 SegWit 交易被上鏈確認,是不是他們的 Witness 就可以被丟棄了?即使網路中沒有人保留它們,對整個鏈的安全性也不會產生影響?
3) 隔離見證後,為什麼區塊內的交易數量沒有增加?簽名占區塊的大部分空間,按理說應該增長很明顯。
謝邀。
witness就是簽名,或者說,一個交易的見證,是一個「我有權支配這個輸出」的證明。
所以,其實你理解得八九不離十,而且提到了一個很現實也很嚴肅的問題,也是隔離見證的一個重要的爭議。
首先,要搞清楚比特幣的原理——銀行的轉賬記錄里,每筆交易並沒有見證,但是我們依舊相信銀行轉賬記錄,原因何在?因為交易經過銀行,只要被銀行記錄的交易,我們都相信它是合法的,這叫中心化。
見證或者說簽名的目的,就是說所有的交易記錄對於每個人來說都是可以驗證的。相對的,你只相信你自己驗證的結果,而不相信任何其他人告訴你它們驗證的結果,這叫做去中心化。
—————————————————————————————————————
記住這個前提,我們再來看這個問題——
對於非礦工,從來都不需要witness,因為首先你得是個完全節點才能真正驗證交易,而維護完全節點而不挖礦的話,是沒有任何收益的,所以非礦工沒有必要去維護完全節點,因此也沒有驗證區塊和交易的能力。
對於礦工而言,驗證新區快是需要witness的。然後,如果採用了segwit,那麼對於他們而言,他們驗證完交易之後,的確它們就不需要witness了。
乍看起來,就是你說的,如果交易被確認了,那麼似乎所有人都丟棄了witness,對於比特幣的安全也不會產生影響。
然而你再看看之前的前提,你會發現並非如此——
假設你是個剛入網的新節點,你不相信別人,你要驗證之前的每筆交易。
然而,並沒有見證數據了,這相當於比特幣系統告訴你:「這些交易記錄都是以前的礦工驗證過的,相信我准沒錯。」這就打破了比特幣系統的設定,換句話說,如果見證記錄不存在了,那麼新節點是無法自己驗證整條鏈的,而必須得相信別人的驗證結果,這就是中心化。
至於中心化影不影響安全,這就見仁見智了(此處刪去之前的回答)。
—————————————————————————————————————
回答你最後一個問題。
因為現在隔離見證的交易太少了,所以增加並不顯著。
SegWit Charts
隔離見證部分的大小才6-8%,如果按照見證部分是本體的三倍來算,也就是目前才增加了2%的交易。
1驗證交易合法性(輸入部分)需要見證。
2極端一點想,為了自己的安全,沒理由冒險去節約那點空間。一塊硬碟才500元而已。
不保留見證就不能驗證交易合法性,那麼當偽造區塊與真實區塊衝突時,你不能辨認出哪邊是真的。
比特幣白皮書第八節
當此情形,只要誠實的節點控制了網路,檢驗機制就是可靠的。但是,當全網被一個計算力佔優的攻擊者攻擊時,將變得較為脆弱。因為網路節點能夠自行確認交易的有效性,只要攻擊者能夠持續地保持計算力優勢,簡化的機制會被攻擊者焊接的(fabricated)交易欺騙。那麼一個可行的策略就是,只要他們發現了一個無效的區塊,就立刻發出警報,收到警報的用戶將立刻開始下載被警告有問題的區塊或交易的完整信息,以便對信息的不一致進行判定。對於日常會發生大量收付的商業機構,可能仍會希望運行他們自己的完整節點,以保持較大的獨立完全性和檢驗的快速性。
推薦閱讀:
※如何看待Telegram或將ICO?
※中本聰有能力用一句話毀滅比特幣嗎?
※比特股有什麼用?
※【幣圈掃盲帖】你的數字貨幣持倉比例是怎樣的?投資數字貨幣真能賺錢嗎?比特幣和以太坊,更看好哪一個?
※如何看待最近瘋傳2018年1月25號的國家即將對虛擬貨幣出台政策?
TAG:虛擬貨幣 | 比特幣Bitcoin | 區塊鏈Blockchain | 隔離見證 |