比特幣保證安全性及解決51%攻擊

2022-09-07T16:55:35+08:00

比特幣的安全性保證源於其獨特的PoW共識機制│↟│☁,以及其每個節點都可以獨立正確驗證的交易指令碼機制·✘│╃。 要分析比特幣系統的安全性│↟│☁,我們應首先考慮在比特幣系統中可能存在的攻擊形式·✘│╃。一個攻擊者若想透過攻擊比特幣系統獲益│↟│☁,顯然是需要掌控“記賬權”│↟│☁,即產生區塊的權力·✘│╃。由於比特幣系統中│↟│☁,由誰來產生下一個區塊是一個完全隨機的事件│↟│☁,因此│↟│☁,由一個攻擊者節點產生部分割槽塊是完全有可能的│↟│☁,但由於比特幣中的正常節點都會對產生區塊中的交易進行驗證(透過執行交易中的鎖定指令碼和解鎖指令碼)│↟│☁,因此│↟│☁,所有誠實的節點都不會接受包含了無效交易的區塊│↟│☁,這意味著攻擊者無法憑空創造價值│↟│☁,也無法對不屬於自己的比特幣進行掠奪│↟│☁,攻擊者所能夠進行的僅僅是對自己發出的交易資訊進行修改(因為它無法偽造其他參與者的簽名等資訊)·✘│╃。 一個典型的攻擊場景即為“雙花攻擊”│↟│☁,在這種攻擊中│↟│☁,攻擊者先將自己所擁有的資產(UTXO)在一筆交易(記為TX1)中支付給另一個參與者以換取某些其他資產│↟│☁,該交易被寫入當前比特幣區塊鏈(記為鏈A)的第N+1個區塊;此時攻擊者同時秘密地準備另一條基於原比特幣區塊鏈第N個區塊的後續鏈(記為鏈B)│↟│☁,該鏈中並不包含TX1;攻擊者等待實際獲取到TX1交易中所涉及的其他資產之後│↟│☁,再使用自己準備的這條秘密鏈B同原記錄有TX1交易的鏈A進行替換│↟│☁,便可“抹消”自己所參與的TX1交易│↟│☁,收回自己在TX1交易中所使用的UTXO·✘│╃。 當然│↟│☁,由於比特幣的“最長鏈勝出”原則│↟│☁,攻擊者秘密生成的鏈B需要在替換時比原有鏈A更長│↟│☁,才能夠成功實行雙花攻擊·✘│╃。而比特幣系統中採用的PoW機制保證了│↟│☁,某節點產生下一個區塊的機率與該節點的算力佔所有參與PoW的節點的算力的比例成正比│↟│☁,因此│↟│☁,雙花攻擊的成功機率與攻擊節點的算力密切相關·✘│╃。