在2018年11月的BCH 分叉中,Bitcoin SV 陣營但願將區塊大小在現有的基礎上繼續增長,增長到 128MB 大小。而 Bitcoin ABC 陣營認爲 32MB 大小已經足夠。和比特幣最初的 1MB 大小相比,一年多來分叉鏈對區塊大小的調整就像是一場大躍進同樣。這麼作真的沒問題嗎?咱們從學術研究的結論中爲您尋找答案。安全
咱們都知道,在比特幣創世時,採用了 1MB 區塊大小的限制。在最初的幾年,比特幣受到的關注有限, 1MB 大小被填滿的次數也很少,你們彷佛沒有以爲 1MB 有很大問題。微信
隨着比特幣受到的關注愈來愈多,比特幣的吞吐率侷限性日益凸顯。按平均一筆交易 250 字節計算,比特幣每秒只能處理不到 7 筆交易。網絡
爲了緩解效率問題,隔離見證,2M 區塊大小的等方案被提出。2017年8月,BCH 從比特幣分叉,而且將區塊定到了 8MB 大小,今年 5 月將區塊大小調整到 32MB。在本次分叉中,Bitcoin SV 更是提出了 128MB 的巨大區塊。ide
早在2015年的時候,學術界就對區塊大小和出塊時間對安全性的影響進行了研究。其結論簡單來講,在最長鏈規則下,區塊大小和出塊速度的對安全性的影響能夠用一個比值歸納:設計
這個比值會影響雙花攻擊須要的算力。比值越大,進行雙花攻擊須要的算力越小,安全性越低。cdn
(注:若是誠實的礦工們算力相對集中,也會提升安全性。區塊傳遍全網的時間能夠把長尾切掉,好比說,傳遍95%的算力節點視爲傳遍全網。)blog
和十年前的網絡環境相比,現在的網速大大提升。發送一樣大小的數據須要的時間更少。不只如此,在2016年的時候,比特幣還經過實現緊湊區塊(Compact Block)來下降傳輸時間。flux
與保留所有交易信息的完整區塊不一樣,緊湊區塊中只保留交易的短 ID(僅6個字節)。當一個節點挖出區塊時,只在網絡中傳播緊湊區塊。收到緊湊區塊的節點先嚐試從本身的交易池中恢復完整區塊,當恢復失敗時,再嘗試向鄰居節點請求衝突或丟失的交易。ci
對於 1MB 大小的完整區塊,緊湊區塊僅有 15KB 的大小。據報道,直接恢復完整區塊的成功率高達 86%. 這大大下降了比特幣區塊傳遍全網的時間。統計數據顯示,2016 年 12 月的區塊傳播時間只有 1 月的不到六分之一。get
和比特幣運行初期相比,現在區塊傳遍全網時間已經大大下降。就安全性而言,1M 的區塊大小已經很是地保守了。即便將區塊大小增長到 8MB , 也能夠得到近似於 3 到 5 年前比特幣的安全性。
然而,對於 32MB 這樣大的區塊,其安全性就須要謹慎考量了。雖然使用緊湊區塊技術依然能夠作到大約 500KB 大小的實際傳輸量。但當網絡中的交易愈來愈多的時候,可能有大量交易堵在路上,致使完整區塊的恢復成功率大大下降,最終致使傳輸時間過長。
而 128MB 區塊大小就近乎瘋狂了,更可怕的是,這個方案的擁護者們彷佛徹底沒有考慮過上述問題。筆者粗略估計,除非算力集中,不然 128MB 區塊可能面臨嚴重的安全性問題。但若是算力真的集中起來,它和一箇中心化系統的區別又有多少呢?
歸納來講,適當地調大區塊能夠緩解吞吐率問題,可是無底線地調大區塊,勢必會形成嚴重的安全性問題。
上面所述的問題,只侷限在最長鏈規則之下,因此咱們能夠從另外一個維度去考慮。GHOST 共識協議設計了最重鏈規則,不管區塊大小和出塊速度怎麼調整,雙花攻擊都須要 50% 的算力。
Conflux 基於 GHOST 協議改進和實現,經過有向無環圖結構,在保證安全性的前提下,在跨大洲模擬實驗中實現了每秒 1.6MB 數據的吞吐,至關於 6400 筆交易。這一表現爲打造高效率的 PoW 公鏈提供了堅實的共識基礎。
參考文獻:
[1] Sompolinsky, Yonatan, and Aviv Zohar. "Secure high-rate transaction processing in bitcoin." International Conference on Financial Cryptography and Data Security. Springer, Berlin, Heidelberg, 2015.
[2] Li, Chenxing, et al. "Scaling Nakamoto Consensus to Thousands of Transactions per Second." arXiv preprint arXiv:1805.03870 (2018).
做者:李辰星(lylcx2007@gmail.com), 公鏈項目 Conflux 研究成員
歡迎關注咱們的微信公衆號:Conflux中文社區(Conflux-Chain)
添加微信羣管理員 Confluxgroup 回覆「加羣」加入 Conflux官方交流羣