以下路線圖最初由 Gregory Maxwell 於 2015 年 12 月 7 日發布到 bitcoin-dev 郵件列表。
香港的 Scaling Bitcoin 研討會剛剛結束。許多令人著迷的提案被展示出來。 我認為這是分享我對 Bitcoin 系統容量增加近期發展方向看法的好時機。 我相信我們現在處於一個絕佳的位置,社群已經準備好提供一個清晰的前進路徑,並有一個共同的願景來解決系統的需求,同時維護其價值。
我認為首先清楚表達我認為應該指導 Bitcoin 系統持續發展的一些相關原則很重要。
Bitcoin 是點對點電子現金,由於透過去中心化為使用者帶來貨幣自主權,因此相對於傳統系統具有價值。Bitcoin 試圖解決傳統貨幣的根本問題:使其運作所需的所有信任–
– 並不是說正當的信任是壞事,但信任使系統變得脆弱、不透明且運營成本高昂。 信任失敗導致系統性崩潰,信任管理創造不平等和壟斷鎖定,自然產生的信任阻塞點可能被濫用以拒絕正當程序的存取。 透過使用加密證明和去中心化網路,Bitcoin 最小化並取代了這些信任成本。
使用現有技術,規模和去中心化之間存在基本的權衡。 如果系統成本太高,人們將被迫信任第三方,而不是獨立執行系統規則。 如果 Bitcoin 區塊鏈的資源使用量相對於可用技術來說太大,Bitcoin 將失去相對於傳統系統的競爭優勢,因為驗證成本太高(將許多使用者定價排除在外),迫使信任重新進入系統。 如果容量太低,我們的交易方法效率太低,存取鏈進行爭議解決的成本將太高,再次將信任推回系統。
由於 Bitcoin 是電子現金,它_不是_一個通用資料庫;對廉價高度複製永久儲存的需求是無限的,Bitcoin 不能也不會滿足非電子現金(非 Bitcoin)使用的需求,這並不可恥。 幸運的是,Bitcoin 可以與解決其他應用程式的其他系統互操作,而且–憑藉運氣和努力–Bitcoin 系統可以並且將會滿足世界對電子現金的需求。
幸運的是,許多偉大的技術正在開發中,使得導航權衡變得更容易。
首先:經過幾年的開發,Bitcoin Core 最近合併了 libsecp256k1,這導致簽名驗證效能大幅提高。 結合其他最近的工作,我們現在在 0.12 中獲得的 ConnectTip 效能比以前的版本高 7 倍。這 已經醞釀了很長時間,如果沒有對它的預期和早期工作(如 headers-first),我可能會在去年主張減少區塊大小。 這種廣泛可用的生產 Bitcoin 軟體技術水平的改進為一些容量增加奠定了基礎,同時仍在彌補我們的去中心化赤字。這將瓶頸從 CPU 轉移到更強烈地轉移到傳播延遲和頻寬上。
Versionbits (BIP9) 正在接近成熟,將允許 Bitcoin 網路擁有多個進行中的軟分叉。到目前為止,我們必須完全序列化軟分叉工作,而且也沒有真正的方法來處理在核心中合併但被網路拒絕的軟分叉。 所有這些都在 BIP9 中得到解決,這應該允許我們加快網路改進的步伐。看起來 versionbits 將準備好在網路上執行的下一個軟分叉中使用。
接下來是,在香港的 Scaling Bitcoin 上,Pieter Wuille 介紹了將隔離見證帶到 Bitcoin。 提議的是一個_軟分叉_,透過重組區塊中的資料以單獨處理簽名,從而增加 Bitcoin 的可擴展性和容量,並在此過程中將它們從當前區塊大小限制的範圍中移除。
該特定提案最多相當於 4MB 區塊大小增加。這種分離允許新的安全模型,例如跳過下載您不打算檢查的資料以及改善輕客戶端的效能(尤其是具有高隱私性的客戶端)。 該提案還包括欺詐證明,這使得違反 Bitcoin 系統的行為可以用緊湊的證明來證明。 這完成了 Bitcoin 白皮書「簡化支付驗證」部分中描述的「警報」願景,並將使輕客戶端能夠執行系統的所有規則(在他們不會與會產生證明的人分離的新強假設下)。 該設計具有許多其他功能,例如使進一步的增強更安全並消除簽名可塑性 問題。如果廣泛使用,該提案將提供 2 倍的容量增加(如果廣泛使用多重簽名則更多),但最重要的是,它透過提高效率和允許更多權衡(特別是,您可以使用更少的頻寬來換取強大的非分區假設)使該額外容量–以及未來更多的容量–更安全。
在 https://github.com/sipa/bitcoin/commits/segwit 有一個工作實作(儘管它還沒有欺詐證明)。
我在 Elements Alpha 側鏈中成功部署了早期(硬分叉)版本的 segwit;現在提議的軟分叉 segwit 是第二代設計。我認為在相對較短的時間內部署它是相當合理的。 segwit 設計要求未來進行與 bitcoinj 相容的硬分叉以進一步提高其效率–但這不是獲得大部分好處所必需的,這意味著它可以按照自己的時間表並以非爭議的方式發生。
超越 segwit,圍繞更高效的區塊中繼一直有相當大的活動在醞釀。有一系列提案,有些源於我受 p2pool 啟發的非正式草圖,有些是獨立發明的,稱為「弱區塊」、「瘦區塊」或「軟區塊」。 這些提案建立在高效中繼技術(如中繼網路協定或 IBLT)之上,並在找到區塊之前將區塊的幾乎所有傳輸時間移至之前,從孤塊競賽計算中消除大小。我們在當前區塊大小下已經迫切需要這個。這些尚未實作,但幸運的是路徑似乎很清晰。 我至少看到了一個或多或少完整的規範,我預計在幾個月內會看到使用它的東西執行。這個工具將在礦工沒有策略行為的情況下消除傳播延遲成為問題。當礦工策略性地行為時更好地理解他們的行為是一個開放的問題。
同時,有很多關於「非頻寬」擴展機制的活動正在進行。 非頻寬擴展機制是像交易切割和雙向支付通道這樣的工具,它們使用聰明的智慧合約而不是增加頻寬來增加 Bitcoin 的容量和速度。 關鍵的是,這些方法直接針對容量與自主性權衡的核心,並可能允許我們實現非常高的容量和非常高的去中心化。CLTV (BIP65) 於一個月前部署,現在在網路上活躍,對這些技術非常有用(對於使保留退款工作至關重要);CSV (BIP68 / BIP112) 正在核心中合併的管道中並取得良好進展(並且可能會在 segwit 之前準備好)。 正在開發用於非頻寬擴展的進一步 Bitcoin 協定改進:許多這些提案確實需要反可塑性修復(將由 segwit 提供),並且已經提供了 checksig 標誌改進,還有更多正在開發中,使用 segwit 部署會容易得多。 我預計在六個月內,我們可以有更多功能準備好部署以啟用這些技術。即使沒有它們,我相信我們在近期容量方面的位置也是可以接受的,但為未來啟用它們很重要。
http://diyhpl.us/wiki/transcripts/scalingbitcoin/hong-kong/overview-of-bips-necessary-for-lightning 是關於 Lightning 所需的一些網路功能的相關演講,Lightning 是一個雙向支付通道提案,許多方現在正在研究;過去討論的其他非頻寬改進包括交易切割,我認為這是理解交易容量如何大於區塊鏈容量的基本直覺的必讀: https://bitcointalk.org/index.php?topic=281848.0,儘管還有許多其他的。)
更遠一點,有幾個與彈性上限或基於允許礦工以某種成本生產更大區塊的激勵對齊動態區塊大小控制相關的提案。 這些提案有助於保持礦工和一般節點運營商之間的激勵一致,並防止礦工之間的背叛破壞最終將為安全提供資金的手續費市場行為。 我認為現在容量足夠高,所需容量足夠低,我們不會立即需要這些提案,但它們長期來說將是至關重要的。 我計劃在接下來的幾個月裡幫助並推動這些提案朝著更具體的方向發展。
最後–在某個時候,上述的容量增加可能還不夠。 在中繼改進、segwit 欺詐證明、動態區塊大小控制和其他技術進步上的交付將降低風險,因此降低圍繞適度區塊大小增加提案的爭議(例如 2/4/8 重新調整以尊重 segwit 的增加)。 當改進和理解使其風險相對於不部署它們的風險而言被廣泛接受時,Bitcoin 將能夠推進這些增加。 在 Bitcoin Core 中,我們應該準備好補丁來實作它們,當需要和意願出現時,以防止基本軟體工程成為限制因素。
我們最近和當前的進展很好地定位了 Bitcoin 生態系統來處理其當前的容量需求。 我認為上述內容提出了一些明確可實現的里程碑,以繼續推進 Bitcoin 容量的技術,同時使我們處於進一步改進和演進的良好位置。
TL;DR: 我建議我們立即致力於 segwit 4MB 區塊軟分叉,它增加了容量和可擴展性,最近的加速和即將到來的中繼改進使 segwit 成為合理的風險。BIP9 和 segwit 也將使進一步的改進更容易和更快地部署。 我們將繼續為基於非頻寬增加的擴展奠定基礎,同時構建額外的工具,使頻寬增加長期更安全。 進一步的工作將為 Bitcoin 準備進一步的增加,當有理由時這將成為可能,同時也提供使它們合理的基礎。
感謝您的時間,
最初由 Gregory Maxwell 於 2015 年 12 月 7 日發布到 bitcoin-dev 郵件列表 https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-December/011865.html
