篡改交易(由hash保證不可能的)
拒絕服務攻擊(我拒絕,別人不一定拒絕啊)
雙花交易攻擊(一筆錢,花兩次)
如果2筆交易,同一個礦工收到。 第一次驗證OK,收入交易池;第二次驗證:沒餘額,不要。
如果2筆交易,被兩個礦工收到,礦工1把他上鍊了,成爲正式的交易。礦工2看到鏈上,會排除交易。
否則POW半天,辛苦找出Nonce,結果交易池裏面有問題,別人驗證後,不承認我的區塊,就白費了。
分叉
如果兩個礦工AB,同時發現Nonce,一堆人接着A開始挖礦,另一堆人接着B開始挖礦。
隨着時間推移,大家都知道兩個區塊可以的,這時候繼續挖,直到最長鏈出現。
如果我付了10個BTC拿車,車行的人看了 交易記錄進了最新的區塊A,放車。
如果我想篡改交易,需要找礦工朋友,在father(A)接着挖,開發出B區塊(與A並列),並且超過A。
實際上,這樣達不到。
分叉攻擊(51%攻擊)
如果我擁有51%以上算力,我想讓主鏈上最新5個藍色區塊作廢,
我可以不沿着最後一個塊,而是沿着區塊[-6]開始挖,因爲我算力佔優,所以我出塊速度快,一直超越主鏈,則我變成主鏈。
其他好的礦工,也會沿着我的鏈條繼續挖,以爲我最長。
這種情況,我付了10個BTC買車,即使進入了主鏈,車行也不放心,因爲會被別的鏈條超越。
中本聰
實幹派,寫代碼後再給出理論。
學量化,先別研究深入理論,搞了再說!
軟分叉/硬分叉
軟分叉
BTC程序更新,大部分節點更新了,小部分節點保留原來的版本。
如果新區看是新版本結點產生的,大家都接收,老版本結點沿着這個繼續往下挖。
如果新區塊是老版本結點產生的,新版本的不接收!老版本挖出來的作廢。
老版本發現挖出來的都是廢區塊,就更新了。
硬分叉
新老版本 互相不接受!
主鏈分成兩條,old + 新版本結點繼續挖的 ; old + 舊版本結點繼續挖的 ;
BTC核心團隊分歧,產生了BCH。