Bitcoin Fork
分叉的理由
從比特幣交易運作說起
假設這是一筆合法交易
(其實不是,BTC使用的是UTXO格式)
From Alice to Bob 1.5 BTC <sig>
發布的交易會先進mempool
From Alice to Bob 0.5 BTC <sig>
From Eve to Bob 2.26 BTC <sig>
From Bob to Eve 0.03 BTC <sig>
From Alice to Charlie 1 BTC <sig>
From Dave to Bob 0.87 BTC <sig>
From Alice to Bob 1.5 BTC <sig>
........
BTC資料結構中模擬暫存記憶體的功能
由礦工打包數筆交易成為block
平均 10 mins 打包一塊
From Alice to Bob 0.5 BTC <sig>
From Eve to Bob 2.26 BTC <sig>
From Bob to Eve 0.03 BTC <sig>
From Alice to Charlie 1 BTC <sig>
From Alice to Bob 1.5 BTC <sig>
Nonce : 1287550755
但區塊大小有限制 <1MB
From Alice to Bob 0.5 BTC <sig>
From Eve to Bob 2.26 BTC <sig>
From Bob to Eve 0.03 BTC <sig>
From Alice to Charlie 1 BTC <sig>
From Alice to Bob 1.5 BTC <sig>
Nonce : 1287550755
它現在快要已經爆炸了
這樣送出的交易要等很久/付更多手續費才能被寫入區塊鏈中
很不方便
打包更多交易──
單位時間內能有更多筆交易被確認
可能的方法
- 提升打包block的頻率 (導致通膨
- 把block的上限從1MB提升到更大
- 讓每個交易占用的空間變小
SegWit
隔離驗證
Bitcoin Core
掌握話語權的一坨核心開發者
把簽名移出交易格式外
From Alice to Bob 1.5 BTC <sig>
From Alice to Bob 1.5 BTC
Bitcoin Unlimited
Hard fork vs Soft Fork
分叉會變成兩種幣嗎?
如果 BU 執行硬分叉
一個 BU 節點挖出 2 MB 的"新"塊
並試著將它廣播給整個網路的其他節點
舊版節點拒絕納入該區塊
並持續尋找 1MB 的"合法"區塊,分岔出現
如果新版節點算力較高
新鏈持續變長,舊鏈較短
但因為舊節點不承認 2MB 區塊,雙方各自發展
如果舊版節點算力較高
新鏈變長,但舊鏈更長
基於最長鏈原則,新節點持續放棄挖出的 2MB 區塊
分叉的投票表決
算力即權力
成功的分岔需要礦工用算力支持
事前民調
事前民調
礦工將支持方案標註在挖出的區塊
U
U
C
C
U
U
Bitcoin Core:
如果在 1000 個新挖出的區塊中有 950 個
顯示支持 SegWit,大家就啟動它吧。
舊鏈的自然死亡
假如 BU 以80% 算力分岔成功
舊版節點 : 20%
新版節點 : 80%
新鏈可以產生更多區塊
但舊鏈將變得難用無比
Bitcoin 每 2016 塊更新一次難度
在那之前每 50 分鐘才會產生一個塊
而且這樣的情形會持續 70 天 (2016*50/1440)
.....
?
使用者只好改用新鏈
→幣價下跌 →算力進一步流失
新鏈殺死舊鏈
網路效應
高中數學 :
已知鑽石的價值和重量呈平方正比
現有一顆價值 100 萬的鑽石
摔裂成 8:2 的兩塊,請問共損失多少價值?
Ans: 32 萬
只好人道毀滅舊鏈了
╮(╯_╰)╭
比特幣分叉
By Ping Chen
比特幣分叉
- 286