區塊鏈信息越來越大怎麼辦?

區塊鏈的一個很大問題在於其中會包含所有的歷史交易,這樣下去整個鏈的信息會越來越大,我昨天下載區塊鏈的完整信息已經要大於20G了。這樣下去肯定不是個辦法啊,這個問題有沒有好的解決辦法?如果不能解決的話會成為區塊鏈協議的最大問題。


數年來,隨著比特幣的蓬勃發展,比特幣交易數量越來越多,而單個區塊體積有1MB的最大值限制,因此區塊空餘空間顯得越來越小。如圖所示,區塊體積中位數在2015年里得到了翻番,從1月份的292KB快速增長至12月份的749KB。

比特幣區塊體積大小(來源:區塊元http://blockmeta.com)

擴容問題在2015年得到了充分的重視與討論,在2015年06月左右陸續推出了諸多擴容方案,代表有BIP100,BIP101,BIP102,BIP109,BIP248 等若干方案(表X)。

雖然提出來各種方案,但基本可以劃分為兩類:長期規則派與短期擱置派。長期派偏理想、規則型,一口氣敲定便不再折騰,典型代表BIP101/103,設定一個增長規則,便不再調整。短期派則認為未來不可預測,固定的規則過於簡單暴力的解決問題,希望設置一個短期數年方案暫時先避開,擱置至未來解決,代表為BIP100,但由於投票過程複雜,後簡化為BIP102/109等,而BIP248則一口推遲至2020年,近幾年就簡單採取翻番增長。

自2015年06月以來,經過了大半年來的大範圍的反覆討論,目前長期規則派基本完敗。2015 年12月比特幣香港擴容會議由Pieter Wuille提出了隔離見證(Segregated Witness)之後,擴容問題甚至已經簡化為僅升級至2MB,但陷入了關於實施時間點的爭論之中。

一個看似簡單的擴容技術問題,卻引發比特幣社區花了大半年時間,開了數次全球技術會議、私下打無數口水仗,卻依然未有明確定論。其背後深刻原因是,區塊限制值上調是無法真正解決比特幣擴容問題的。

擴容問題

總的來說,根據對比特幣網路的理解,有兩個劃分:清算系統,現金系統。

清算系統

比特幣區塊鏈是全球的、分散式的、有限容量的、代價昂貴的系統。每一筆交易的價值含量是不一樣的,當塊容量不夠用時,我們應該保障高價值的交易進塊。高價值的交易有意願有能力支付足夠高的網路手續費,從而獲得足夠高的優先順序進塊。

隨著比特幣的繁榮,交易數量會越來越大,有限的塊容量會使得低價值的交易(例如發送1分錢)永遠無法進塊,因為低價值的交易不可能支付高網路手續費。進而網路退化為清算系統,低價值含量交易被趕出,這些交易由第三方記賬系統進行代替完成。

在閃電網路出現之前,第三方記賬系統主要是鏈外錢包提供商。用戶信任某第三方錢包平台,把比特幣存入其中,同一平台用戶之間轉賬僅帶來賬戶餘額變更,並不會產生比特幣交易。

現金系統

現金系統意味著所有交易均應該進入區塊,那麼當塊容量不夠用時,則應該及時提高塊體積限制,對系統進行擴容。短時間可能發生交易入塊堵塞,但長期來看所有交易應該均可以入塊。人人都享有比特幣系統帶來的巨大便利和優勢。

擴容大小的選擇

我們進行一個簡單的估算,假設每個交易大小為512位元組,手續費單位為0.0004/KB。那麼有如下表格:

根據VISA在2015年的記錄,全年共產生92,064百萬筆支付交易,摺合比特幣網路數據:

若提高區塊體積限制至30MB,最大的問題不是CPU計算能力瓶頸,而是塊的傳播與存儲。

30MB的塊可能會導致全網孤塊率和空塊率大幅上升,一年產出1.5TB的區塊鏈數據也超出大部分節點機器的硬碟容量。基於這1.5TB的數據,區塊鏈瀏覽器、錢包服務商等則可能膨脹10倍達到15TB,對於目前來說已經遠超普通機器/資料庫的磁碟容量。

誠然,這些數據對與中性化的系統而言,並不具有多麼大的挑戰性,但對於一個全球分散式系統而言,則非常具有挑戰。會極大削弱節點數量,提高開發接入門檻,使得比特幣變得中心化。

擴容爭論的最後,還是傾向於2MB,使得升級過程更加可控一些,風險更低一些。

——《區塊鏈:從數字貨幣到信用社會》(中信出版社)本文作者:潘志彪


這個問題需要新一代的白皮書來解決

中本聰應該意識到了這個問題,但他選擇逃避,留給後人

而後人也覺得這個問題相當棘手

起因整理一下,中本聰(可能)為了規避這個問題,設定10分鐘產生一個區塊。

眾所周知,交易記錄在區塊里

如果你拿比特幣買了任何一樣東西,付錢走人的時候,此時這筆交易還在網路上流動,還沒有寫到塊里去。

也就是說這筆交易可能會失敗,被拒絕

店家讓你走人就是他承擔這個風險

然後由於比特幣本身的共識機制,即便寫進塊里也無法確認是否寫進永久記錄,一般是寫到6個塊我們承認不太可能會更改,因為記錄失敗的可能性到6個塊的時候已經非常低

簡單計算一下,理論值需要1小時。

事實上因為網路的關係,這個時間是波動很大的

這給工程帶來了很大的困擾,就是你寫塊,讀塊的時候,你不知道這個數據是不是永久存在的。

第二就是10分鐘一個塊對工程來說太難受了。

工程需要儘可能的快,需要減少到秒級

這當然也是可以得

結果就是塊增加的很快。

第三就是塊大小,網路速度,都會在大規模應用下產生瓶頸

不知道大家有沒有注意過比特幣的交易量

1個塊1600筆交易,也就是說10分鐘1600筆交易,每秒3筆交易左右

而銀聯在2016年春節的日交易量破億,

也就是說每秒1000筆交易級別

每筆交易佔用512位元組,每5秒產生一個區塊

也就是日產生8.6T數據規模

實際工程應用,至少要留出5倍的餘量

現在的技術就像開一部玩具車,這部玩具車當然很精巧,很有趣,但是當貿貿然把它開上高速,那就是一場災難。

現在比較理想的,就是把它退化成一個清算系統

這也可以拿來檢測一個人的理論水平,如果TA沒有對上述問題做出認識和回答,就貿貿然說,這也可以,那也可以。

那他還是個外行


這個是區塊鏈輕量化(lightweight)的問題。

目前據我所知沒什麼區塊鏈設計出來就是輕量化的,大部分區塊鏈的輕量化都是以犧牲可靠性和安全性為代價的。換句話說,區塊鏈的安全性是建立在每個節點都對交易進行驗證的基礎上的,輕量化節點的增加其實會降低整個區塊鏈的可靠性。

然而,具體就比特幣來說,其實用一個checkpoint就能解決,就是說規定某時間之前的區塊鏈不可更改,這樣的話就可以在輕量化節點不儲存以前的交易記錄的同時,大大減少輕量化節點對可靠性造成的影響。實際上這種做法在很多其他的公有鏈中已經在做了,但我記得之所以沒有應用於比特幣的原因是比特幣的支持者認為這是中心化的行為所以不予支持。


當初中本聰也考慮了這個問題,他認為技術也在不斷發展中,更好的存儲和網路技術有能力存儲和傳輸日益增長的區塊鏈。

即使如此,中本聰還是設置了每個區塊1M大小的限制,防止區塊鏈過度膨脹。

讓我們做一個計算:每十分鐘產生一個區塊鏈,那麼比特幣誕生10年以後,也就是到2019年,區塊鏈的大小可能會有多大:10*365*24*6 ≈ 525G。再過10年到2029年,差不多1T。即使在現在看來,問題也不大。所以倒是不必太擔心。

但區塊鏈的空間,不僅僅會隨著時間增長。現在每個區塊1M的空間,已經有些不能夠滿足比特幣的發展了。為什麼?因為交易量大了,每個區塊空間只有1M,能容納的交易數量有限,所以就要考慮擴容區塊鏈來突破這個限制。

2015年,社區對區塊鏈的擴容討論了多次。最終,仍然保持1M大小的區塊鏈空間,但可以容納更多交易的「隔離見證」技術生出,可能會作為區塊鏈擴容的第一步。後續還會有「閃電網路」其他技術來緩解區塊鏈空間緊張的問題。

但無論如何,比特幣區塊鏈也不可能無限擴容。在我的思考中,比特幣區塊鏈最終會成為一個錨,其他應用有自己的數據保存方式,不必都保存在比特幣區塊鏈上,但可以把數據的Merkle根保存在比特幣區塊鏈,一次來保證數據的安全性。 這裡有篇文章也是在介紹類似的發展: 幣看-重新發現比特幣區塊鏈:世上最強大的錨


我知道的Emercoin有一個解決方案,這家公司給微軟Azure提供區塊鏈服務

Github:GitHub - EvgenijM86/emercoin: EmerCoin Official Development Tree

Emercoin實現了解決區塊鏈數據通脹的方案

原文:Emercoin Implements Solution To Reduce Blocksize Inflation

供參考:

當進行交易時,每個加密貨幣只得耗費全部的UTXO(未花費的交易輸出 – Unspent Transaction Output)。錢包有很多歷史交易並需要新的支出交易時(支付),會選擇UTXO(未花費的交易輸出)的最優特徵子集來產生支付。

下列是該創造性的邏輯模型:

合理的子集合量是2N,N是可用UTXO(未花費的交易輸出)的數量。因此,若錢包有超過20UTXO(未花費的交易輸出),幾乎不可能檢索完它們全部並找到UTXOs(未花費的交易輸出)的最佳子集來使用。

當前解決方案

比特幣(Bitcoin)及很多其它加密貨幣錢包使用隨機法來選擇UTXOs(未花費的交易輸出)的最佳子集。在該演算法中,錢包在隨機選擇UTXO(未花費的交易輸出)的情況下完成1000次嘗試。具備最小數額的子集匹配輸出交易。然後,支付交易生成2個輸出:支付輸出和變數輸出。找到最佳解決方式的機率是UTXO(未花費的交易輸出)的總和準確匹配極低輸出值。Emercoin估計看起來相符的機率(近似公式):

說明:

N是UTXOs(未花費的交易輸出)的數量,

是可能最優交易的數量(無更改),

是1000,目前比特幣錢包的編碼。

一種必要的高效率解決方案

目前實施階段中,最優子集UTXO會很有可能消失。因此,為了增加交易的大小,產生不必要的第二個UTXO(未花費的交易輸出)加入到交易中,由於額外活躍的UTXOs(未花費的交易輸出)增加,那麼區塊鏈的大小也一樣會增加。

另外,該方法生成大量不可計值的UTXOs(未花費的交易輸出),也被稱為「金砂」或「灰塵」,在交易中被認為是垃圾類型,一般不受歡迎。隨著區塊鏈技術指數倍數日益增長,需要更好的方式來處理UTXO(未花費的交易輸出)。

該項目密切依賴於動態規則的運用。什麼是用於解決方案中的動態規則?動態規則是處理特級問題的強大技術,該動態規則必須公式簡練、思路簡明,編碼部分也要易於上手。

崛起幣(Emercoin)的解決方案

崛起幣在區塊鏈行業領域中尋求機遇,並帶來了超前思維,對區塊鏈發展和創新有前瞻性眼光。我們最近的創新是「交易優化器」,是一種向新輸出交易(付款)選擇UTXO(未花費的交易輸出)中未消耗最優子集的演算法。

如果存在給出任何與輸出數量準確對應的UTXO(未花費的交易輸出)子集,該子集會被「交易優化器」發現,並用於完成新的交易,且不再生成額外及非必要第二個的UTXO(未花費的交易輸出),減少輸入到區塊鏈上交易的信息量。「交易優化器」使用動態規則法,要求:O(V) 存儲器 和 O(V*N)時間,優化程度比目前的多很多。

說明:

V 是TX的輸出值

該「交易優化器」也能有效解決往年已產生的的「金砂」和「粉塵」交易,進一步減少區塊鏈大小並進行「清潔」。交易優化器代碼開源,也可用於其他加密貨幣和區塊鏈平台。

崛起幣首席技術官Oleg Khovayko接受CoinTelegraph採訪中說:「交易優化器節省了區塊鏈的存儲空間,我們估計節省BC 5%到10%的存儲空間。當然,這對區塊鏈中的總量來說不算太多,但這是免費的,也會緩解網路擁擠。」


這個問題有兩種解決方案。

一、大部分採用的所謂超導網路/交易,但這有一個問題即這是中心化的。

二、目前「唐盛鏈」採用的是數據分片和索引技術,可以有效緩解區塊鏈網路確認時間長的問題。

---

如果你也關注區塊鏈,關注區塊鏈的落地應用。關注我們微信公眾號:tangdaijinfu


區塊大之後,數據的存儲與傳播肯定是一個瓶頸問題。按照30兆的容量限制,每年就會產生1.5T左右的數據,這對於普通人級別的節點來說是很難承受的,無疑是提高了門檻,難以讓人人都參與,可能會有違完全去中心化的理念。

但是個人有個不成熟的想法,以後節點的維護完全可以越來越專業化,留給全球各地有一定實力的專業機構去做(個人如果肯花費精力和資源的話應該也可以做到),普通用戶只需採用輕量級錢包就行。

這種看似閹割版的「完全去中心化」,節點的數量也仍相當可觀,這種程度的去中心化仍遠優於現有的銀行系統,可保證完全安全,且更為專業高效。

總的來說,差別不大,風險極低且更加專業化,一般小白用戶完全沒有意願和能力去感知這些技術層面的事,只需要交給他們一個輕量級的足夠保證安全和便捷的錢包就夠了,專業的事交給專業的團隊和機構去處理。這樣比特幣整個系統的普及與發展可能會邁上一個新台階。

因此,BCC所走的路完全值得我們認真思考,它給了我們另一種關於比特幣發展可能的思路補充,不應對它抱有偏見。個人感覺,如果能夠對難度調整機製作出可行的改變和調整,它

的前途還是很看好。

而隔離見證與閃電網路所描述的美好技術願景自是讓每一個人都嚮往的,但它的實際可操作性卻仍存疑,且這是一種新的捆綁式科技疊加,增加了整個系統的技術度臃腫,對於它的普及來說並非是件好事,而且以後還有可能在這個新路上生髮出新的問題。而且個人感覺更為關鍵的是,這會極大的挫傷礦工挖礦(記賬)的積極性。這會導致沒有人願意去記賬,畢竟吃力不討好,如這個設想成立,這反而是比特幣系統一個足以影響其生死存亡的隱患。而擴大區塊容量在一定程度上可以促使挖礦記賬更加積極,更為專業和高效,對整個系統來說是一個長久的好處。

簡言之,區塊大小這個問題完全可以交給市場來決定,市場會給我們適合它發展的最優選擇。如總想著提前通過技術設計來解決諸後的種種問題(並非否認提前技術設計的優勢,但不可矯枉過正),反而會導致比特幣系統發展猶猶豫豫,遲滯不前,這幾年的發展也正說明了這個問題。

時刻謹記,市場才是決定技術走向的關鍵因素,是資源配置的決定性因素。


這個問題不是針對區塊鏈而是針對比特幣的吧。比特幣可以說是區塊鏈技術的的實踐,肯定存在不足和缺陷,針對這一點bitcoint core也在改進中,隨著2016年區塊鏈技術的大火,很多創業企業或者研發者在比特幣的基礎上進行了一系列的優化和改進,而針對信息越來越大的問題,Lisk和ASCH就採取了採用側鏈的方式進行改進,但這兩個平台都處於新生階段並沒有比特幣多年的數據量的積累,具體效果如何,估計要經過幾年的發展才能展現出來,但從其描述中還是值得期待的。


我還是覺得比特幣交易更需要第三方交易平台的大力發展,不一定每個用戶都需要一個比特幣賬戶。就像最近滬港通一樣,所有香港投資者持有的A股都是通過港交所持有,在龍虎榜上面只會顯示港交所。


構建一個新的區塊鏈網路,並進行跨鏈操作。參考文章搭建一個區塊鏈網路(一)為什麼需要搭建一個新的區塊鏈網路?知乎專欄


升級到0.12 版本的bitcoin core 只要下載2G


推薦閱讀:

比特幣是如何防範雙花的?
區塊鏈的隱私性如何保護?
怎麼看矽谷投資大佬預言「比特幣價格將在20年內漲到100萬美元」?

TAG:比特幣Bitcoin | 區塊鏈Blockchain |