高昂的成本不僅僅是阻礙區(qū)塊鏈技術(shù)在現(xiàn)實(shí)中被廣泛采用的障礙。這似乎與它最初的原則有分歧,即通過切斷其交易中受信任的權(quán)威來降低成本。此外,比特幣、以太坊和其他公共區(qū)塊鏈正面臨著自身的根本問題——可伸縮性。目前,比特幣交易處理能力的最大值是每秒3到7個交易,而稍微好一點(diǎn)的以太坊只能處理大約15-30個交易1 2。與Visa和萬事達(dá)等傳統(tǒng)競爭對手相比,顯然,公共區(qū)塊鏈仍有很長的路要走。不僅這些區(qū)塊鏈的吞吐量仍然是一個值得注意的問題,而且是公共分類帳的存儲問題也同樣值得注意。從2016年1月到2017年1月,比特幣區(qū)塊鏈從50 GB增長到100 GB 。以太坊也面臨著同樣的問題。由于每年的存儲容量至少翻了一倍,這將是一個在公共區(qū)塊鏈中處理的難題。分片方法可以減輕痛苦,但不能治愈它,因?yàn)樗鼈冇锌赡軙`反區(qū)塊鏈純粹的分散原則。
區(qū)塊鏈的可擴(kuò)展性受到其共識算法和系統(tǒng)架構(gòu)的嚴(yán)重影響。在比特幣和以太坊等早期區(qū)塊鏈基礎(chǔ)設(shè)施中廣泛使用的工作原理(PoW)已經(jīng)被證明是低效率和低性能的。Stack證明是一種很有前途的共識算法,它正在被考慮取代它的前身PoW,然而,如果應(yīng)用到公共區(qū)塊鏈,它將會帶來嚴(yán)重的安全問題。另一個因素,即系統(tǒng)架構(gòu)也對區(qū)塊鏈的可伸縮性起著至關(guān)重要的作用。區(qū)塊鏈?zhǔn)且粋€軟件系統(tǒng),因此它必須遵循軟件設(shè)計(jì)原則。比特幣和以太坊都是用單片架構(gòu)構(gòu)建的,這是很難擴(kuò)展的。對于現(xiàn)代的軟件架構(gòu)設(shè)計(jì),單片被認(rèn)為是一個糟糕的實(shí)踐。
開發(fā)分散應(yīng)用程序不友好和耗費(fèi)時間,這是為什么區(qū)塊鏈仍然具有挑戰(zhàn)性的兩個原因。大多數(shù)著名的可編程的區(qū)塊鏈,如Ethereum,都缺乏一個分散的應(yīng)用程序模型控制器(MVC)框架,大多數(shù)都是在每一種高級編程語言中看到的。MVC框架支持快速開發(fā)和輕松部署軟件應(yīng)用程序。
MVC是一個典型的軟件架構(gòu)范例,它幫助構(gòu)建一個簡便的軟件系統(tǒng),以實(shí)現(xiàn)高維護(hù)性和提高安全性。此外,MVC設(shè)計(jì)范式支持并行軟件開發(fā),因此它提高了開發(fā)人員的生產(chǎn)力。由于MVC設(shè)計(jì)模型已經(jīng)在軟件開發(fā)人員中廣泛使用,所以應(yīng)用它有助于減少基于MVC系統(tǒng)的學(xué)習(xí)曲線。
公共的區(qū)塊鏈把他們的注意力集中在透明度而不是隱私上。對于一些企業(yè)來說,透明度是值得歡迎的,但對其他企業(yè)來說,它的價值會更低。對于這些企業(yè)來說,隱私是至關(guān)重要的,而且比透明度更重要。例如,在金融和銀行業(yè),他們不希望與競爭對手分享和發(fā)布他們自己的客戶信息。但是,他們?nèi)匀徽湟晠^(qū)塊鏈技術(shù)所具有的高度安全和歷史不可逆轉(zhuǎn)的特性。因此,將區(qū)塊鏈技術(shù)應(yīng)用于金融和銀行系統(tǒng)尤其需要考慮到隱私問題。在一些主要處理微事務(wù)的區(qū)塊鏈網(wǎng)絡(luò)中,為了實(shí)現(xiàn)完全的透明性,每一個轉(zhuǎn)換都需要被廣播到整個網(wǎng)絡(luò)中的所有節(jié)點(diǎn)。這實(shí)際上會損害系統(tǒng)的吞吐量或可伸縮性。
區(qū)塊鏈的建立是為了系統(tǒng)的高度穩(wěn)定。比特幣在理論上能夠抵抗小于51%的攻擊。這意味著,即使在網(wǎng)絡(luò)中有多達(dá)半的惡意節(jié)點(diǎn),比特幣仍然能夠很好地運(yùn)行。其他無信任的區(qū)塊鏈基礎(chǔ)設(shè)施具有內(nèi)置的共識PoS,理論上可以在網(wǎng)絡(luò)中使用最多的惡意節(jié)點(diǎn)。IIBM Hyperledger Fabric 或Intel Sawtooth都是一個許可的區(qū)塊鏈,它是為那些在隱私、性能和安全方面有很大保護(hù)的企業(yè)設(shè)計(jì)和建造的。然而,通過對其底層網(wǎng)絡(luò)基礎(chǔ)設(shè)施的依賴,包括Google Kubernetes和Docker Swarm,這不僅會導(dǎo)致系統(tǒng)難以設(shè)置和維護(hù),而且還會暴露出嚴(yán)重的安全問題。這兩種容器編制系統(tǒng)都使用分布式鍵值存儲,比如Zookeeper、etcd和consul,,它們使用的是非對即錯的共識算法。每個鍵值存儲的實(shí)現(xiàn)略有不同,通常為分布式系統(tǒng)提供基本的服務(wù),如動態(tài)配置、服務(wù)發(fā)現(xiàn)、鎖定、領(lǐng)導(dǎo),選舉等。這些系統(tǒng)的設(shè)計(jì)目的是為了容忍在典型的集群中,減少在半節(jié)點(diǎn)或機(jī)器上的崩潰故障。盡管如此,即使是一個拜占庭式的斷層也能摧毀這些系統(tǒng),因?yàn)樗鼈兌际鞘褂玫姆菍村e共識算法。