首页 / / 加文·安德烈森:比特幣擴展開發路線圖

加文·安德烈森:比特幣擴展開發路線圖

  比特幣基金會首席科學家加文·安德烈森最近撰文,敘述未來幾年內比特幣擴展開發路線:通過解決比特幣區塊鏈大小問題和增加交易容量,“二十年內,即使全世界都從法幣轉向比特幣,向每個節點廣播每一筆交易,都不成問題”。

  —-


and

  我對優化新區塊公告的粗略建議,引起了關于了許多擴展性問題的討論。人們存在一些誤解,以為通過優化新區塊消息,就能解決比特幣在成長過程中將要面臨的所有問題。本博文打算概略地敘述,未來幾年將要進行的,比特幣擴展技術工作背后的,一個可能的開發路線圖。

  關于如何擴展比特幣,還有許多其它理念,一旦這些理念被證明實際可行,我樂于選擇所有的解決方案,因為沒有人能夠智慧到每次只選一個解決方案,并且是正確的方案。所以如果比特幣的開發,朝著與這份開發路線圖相反的方向進行,我將不會感到吃驚或者失望。

  初次區塊下載

  用戶初次運行比特幣核心(Bitcoin Core)錢包時,需要花費大量時間,下載和索引整個的比特幣交易記錄,這讓人很不勝其煩。現在需要下載的交易數據超過20GB,而且交易數據還在不斷增加。

  Jeff Garzik創建了一個BitTorrent下載,這將加速初次交易數據的下載。因為區塊數據是自我驗證的,所以你不必要擔心下載的安全問題。最壞的情況也只是,你浪費時間和帶寬,下載了無效的文件。然而,在某些計算機上,重新索引超過20GB的數據,仍然需要數小時。

  Pieter Wuille一直致力于“區塊頭優先”方法(headers first approach)-只下載最長區塊鏈中每個區塊80字節(byte)的區塊頭,大約只有25MB數據。用于確認你是否有最好的鏈,區塊頭數據就足夠了,而且一旦你的節點有區塊頭,它就可以以任意順序向多個節點請求完整區塊,這類似于BitTorrent同時從多個節點下載大文件。

  Pieter也一直致力于“libsecp256k1”–一個高度優化的庫,用于在橢圓曲線上執行數學計算,保護比特幣交易的安全。我們正在對它進行評估,當我們確信它沒有毛病,和完全與現有的基于OpenSSL的代碼兼容時,我們將把它納入到比特幣系統中。

  Rdponticelli請求將比特幣核心與一個“修剪過的”區塊數據庫一起運行(to run Bitcoin Core to run with a “pruned” block database)。 一旦你已經下載和索引整個區塊鏈,存儲所有舊交易數據的唯一原因,是讓它服務于正在進行初始下載的嶄新節點。

  確認新的交易不需要舊區塊,這可能讓你很吃驚。在幾個版本以前,Pieter Wuille重新架構了比特幣核心(Bitcoin Core),所以確認交易所需的所有數據,都保存在一個“未花費輸出”(UTXO,unspent transaction output )數據庫中。確認交易需要的、必須被存儲的歷史數據的數量,取決于一個區塊鏈重組的可接受深度。在主要的比特幣網絡上,曾經發生過的最長的重組,是24個區塊,發生在2013年3月11日的區塊鏈分叉期間。

  下一步將是,使得修剪區塊成為默認,但是在這樣做之前,比特幣網絡協議需要擴張,所以節點可以告訴彼此他們正在存儲的完全區塊是哪個,所以一個有一段時間沒有與網絡相連接的節點,需要發現哪一個節點有它需要的區塊數據。

  如此一來,初次區塊鏈下載能夠更加優化,直接向節點請求未花費輸出集合(UTXO set),而不是通過向它們請求區塊鏈的整個歷史來重構它。這樣做的風險在于:它們可能在哪些花費、哪些沒有花費的問題上進行欺騙,使你接受無效的交易,或當你正在挖礦時,創建無效的區塊。針對這個問題的最好解決方案,是在區塊中嵌入一個“未花費輸出保證”(UTXO commitment,a hash of all of the data in the UTXO set 未花費輸出集合中所有數據的哈希值),增加一個新的共識規則——任何一個這樣的保證有效后,區塊才能有效。

  但是取得共識需要時間。Mark Friedenbach關于如何將這樣一個保證嵌入區塊的提議,還沒有達成共識,也還沒有討論未花費輸出(UTXO)集合應該如何被表現(represented)和進行哈希計算(hashed)。

  增加交易容量

  我預期,初次區塊下載的絕大部分問題,將被下一個,或接下來的3個版本的比特幣核心錢包解決。下一個需要解決的擴展問題,是被硬編碼的區塊最大為1MB的限制,這意味著比特幣網絡的交易處理能力僅大約每秒7筆。

  對核心共識代碼的任何改變都意味著風險,所以,為什么冒險呢 為什么不保持比特幣核心錢包目前的狀態,每秒鐘處理7筆交易呢 “如果它沒壞,就不要修理它。”

  追溯到2010年,比特幣第一次被Slashdot提到和價格上漲以后,中本聰針對各種拒絕服務攻擊,推出了幾個快速解決方案。一個解決方案就是降低區塊的大小,從原來的沒有大小上限,變為區塊大小上限為1MB(在未改變以前,區塊大小的實際上限是32MB–p2p協議中一個消息的大小上限)。

  “訴諸權威”是一個邏輯謬誤,所以“因為中本聰這樣說”不是一個有效的原因。然而,忠于最初的比特幣愿景是非常重要的。正是那個愿景,激發人們將他們的時間、精力和財富投資到新的、有風險的技術中。

  我們認為比特幣區塊大小的最大上限必須增加,就像比特幣的2100萬的上限數量永遠不可更改一樣:因為人們被告知,比特幣系統可以進行擴展,能夠處理許多交易,就像他們被告知只有2100萬個比特幣一樣。

  我們現在還沒有處于一個關鍵階段。在過去的一年,比特幣每天的交易數量一直比較平穩(除了年初的價格泡沫巔峰時期)。“鏈下”(off-blockchain)交易可能在增加,但是我不認為這是正在發生的事情,因為現在美元對比特幣的交易數量變化模式,與去年交易量變化模式相同。價格和交易數量在一段時期處于穩定,之后伴隨的是驅動價格和交易量迅速增長的泡沫。再然后泡沫破裂,價格和交易量下跌到一個新的水平,新水平比巔峰值低,但是比以前的穩定值要高。

  我的最好猜測是,在下一輪價格泡沫時期,我們將遭遇區塊大小上限是1MB的限制,這是我一直花費時間致力于為比特幣核心錢包實施浮動交易費用的原因之一。大多數用戶將選擇支付更多的交易費用,而不會為了確認交易等待數小時或者數天(或者永遠確認不了),因為比特幣網絡這時候真正遭遇到了區塊大小限制造成的不便。

  更大區塊開發路線圖

  Matt Corallo已經開始實施支持更大區塊的第一步–更快的轉播(relaying)–使得一個更大區塊比一個更小的區塊,需要更長的時間在全網傳播,所帶來的風險最小化。細節請看我在八月份寫的博文。

  現在我們已經達成了共識,為了使得比特幣網絡處理交易的速度快于目前的7筆/每秒,需要作出一些改變。但是如何實現更快的交易處理速度,我們出現了分歧–有許多可能的解決方案。下面是我目前最喜歡的解決方案:

  實施一次硬分叉,增加區塊大小的上限,并實施一個隨著時間推移,增加區塊大小上限的規則,非常類似于隨著時間推移減少區塊獎勵的規則(原文:Roll out a hard fork that increases the maximum block size, and implements a rule to increase that size over time, very similar to the rule that decreases the block reward over time)。

  選擇初始的區塊大小上限,從而一個“比特幣玩家”能夠很容易地以完全節點(full node) 的身份,參加到網絡中。我這里指的“比特幣玩家”,是擁有運行較快的計算機和較快網速,運行著最新版比特幣核心錢包,并愿意將自己一半的CPU算力和帶寬貢獻給比特幣網絡的那些人。

  根據帶寬的增長速率,選擇區塊大小上限的增長速度:在過去的二十年中,帶寬平均每年增長50%。需要注意的是,這一增長速度低于CPU算力每年大約60%的增長速度。在可以預見的未來,帶寬將成為比特幣交易容量的限制因素。

  我相信這是“可能起作用的最簡單的方法”。這個方法容易實施,而且非常接近于現在網絡的規則。增加區塊大小上限,使得任何擁有配置好的計算機和帶寬的普通人能夠運行完全節點,這能夠消除成為完全節點的門檻,而且過高的門檻可能導致比特幣網絡的中心化。

  一旦比特幣網絡允許大于1MB的區塊,更進一步的網絡優化將是必要的。這將是可逆綻放查找表(Invertible Bloom Lookup Tables)或者其它數據同步算法大放異彩的地方。

  未來看起來很光明

  所以未來一些比特幣愛好者或者專業的系統管理員,將下載和運行比特幣核心錢包,按照下面的步驟快速建立和運行:

  1、連接到節點,就像現在一樣

  2、從它的節點上下載最好鏈的區塊頭(數十MB,將需要幾分鐘)

  3、下載足夠多的完整區塊,來解決區塊鏈重組,并使區塊鏈重組合理化(幾百個區塊應該足夠了,可能需要一個小時)

  4、向節點詢問未花費輸出(UTXO)集合,并核對區塊鏈所做的保證

  從此以后,它就是一個完全確認的節點。如果硬盤空間不夠了,它可以從硬盤中刪除老的區塊。

  這需要多久的時間

  現在有一個非常清晰的開發路線來擴展比特幣網絡,使它可以每秒鐘處理數千次交易(Visa級別的處理能力)。實現這一目標并不非常容易,因為寫可靠、安全的代碼需要時間,還因為達成共識很困難。幸運的是,技術一直在進步,互聯網帶寬的尼爾森定律(譯者注:Nielsen’s Law of Internet Bandwidth ,指帶寬平均每年增加50%)和摩爾定律( Moore’s Law) 使得比特幣網絡的擴展更加容易。

  如果我們開始思考如何使得比特幣網絡的擴展速度快于帶寬增長速度,這個開發路線圖將變得不現實。一些復雜的開發計劃避免向每一個節點廣播每一筆交易,這有可能實現和足夠安全。

  但是即使每年50%的增長速度就已經非常不錯了。根據我的粗略計算,現在我的高于平均水平的網速和高于平均性能的計算機,可以很容易地支持每秒5000筆交易。

  那么每天就可以處理4億筆交易。非常棒!每個美國人每天可以進行一次比特幣交易,而且比特幣處理交易的能力還可以繼續增長。

  經過12年的帶寬增長以后,我的網速可以每天處理560億筆比特幣交易–足夠全世界的人每天進行5~6筆交易了。很難想象這個交易能力滿足不了人們的需要,根據波士頓美聯儲的數據,美國消費者平均每天的交易支付次數剛超過2筆。

  所以,即使在未來二十年內,全世界的每個人都完全從使用法幣(cash)轉向使用比特幣,向每一個完整的確認節點廣播每一筆交易,將不成問題。

本文来自网络,不代表币懂得立场,转载请注明出处:http://www.blogboleh.com/1861

币懂得作者

下一篇
联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@zhutibaba.com

工作时间:周一至周五,9:00-17:30,节假日休息
关注微信
微信扫一扫关注我们

微信扫一扫关注我们

手机访问
手机扫一扫打开网站

手机扫一扫打开网站

返回顶部