区块链技术应用的关键问题和挑战
目前區塊鏈雖然發展迅速,但也面臨著以下問題:
1.密碼學技術
如何證明交易雙方的身份,防止交易記錄被篡改,保護交易雙方的隱私?這都是區塊鏈面臨的核心問題。密碼學的發展為解決這些問題提供了不少手段。傳統方案包括Hash算法、加解密算法、數字證書和簽名(盲簽名、環簽名)等。隨著區塊鏈技術的應用,新出現的需求將刺激密碼學的進一步發展,包括更高效的隨機數產生、更高強度的加密、更快速的加解密處理等。同時,量子計算等新技術的出現,也會帶來更多的挑戰,例如,RSA算法等目前商用的加密算法,在來來可能無法提供足夠的安全性。能否滿足這些新的需求,將依賴于數學科學的進一步發展和新一代計算技術的突破。
2.分布式共識
分布式共識問題的核心在于如何解決某個變更在分布式網絡中得到一致的執行結果,是被參與多方都承認的,同時這個信息是被確定的,不可推翻的。
最初,比特幣區塊鏈考慮的是公開匿名場景下的最壞保證。通過引入了“工作量證明“策略來規避少數人的惡意行為,并通過概率模型保證最后參與方共識到最長鏈。算法在核心思想上是基于經擠利益的博弈,讓惡意破壞的參與者損失經濟利益,從而保證大部分人的合作。同時,確認必須經過多個區塊的生成之后達成,從概率上進行保證。這類算法的主要問題在于效率的低下。類似算法還有以權益為抵押的DPoS和PoS等。后來更多的區塊鏈技術(如超級賬本)在帶權限管理的場景下,開始考慮支持更多的確定性的共識機制,包括經典的拜占庭算法等,可以解決快速確認的問題。
共識問題在很長一段時間內都將是極具學術價值的研究熱點,核心的指標將包括容錯的節點比例、決策收斂速度.出錯后的恢復、動態特性等。PoW等基于概率的系列算法理論上允許少于一半的不合作節點。PBFT等確定性算法理論上則允許不超過1/3的不合作節點。
3.處理性能
與傳統分布式系統不同,區塊鏈系統處理性能很難通過單純增加節點數來進行橫向擴展。實際上,傳統區塊鏈系統的性能,在很大程度上取決于單個節點的處理能力。高性能、安全、穩定性、硬件輔助加解密能力,都將是考查節點性能的核心要素。
一般來說,區塊鏈不適用于高頻交易場景,但由于金融系統的需求,業界目前十分關心如何提高區塊鏈系統交易的吞吐量,同時降低交易的確認延遲。目前,公開的比特幣區塊鏈只能支持平均每秒約7筆的吞吐量,一般認為對于大額交易來說,安全的交易確認時間為一個小時左右。以太坊區塊鏈的吞吐量略高一些,每秒10-20筆交易,但交易性能也被認為是較大的瓶頸。這種場景下,為了提高處理性能,一方面可以提升單個節點的性能,同時設計優化的策略和算法;另外一方面試圖將大量高頻的交易放到鏈外來,只用區塊鏈記錄最終交易信息,如比特幣社區提出的“閃電網絡”等設計。類似地,側鏈、影子鏈等思路在當前階段也有一定的借鑒意義。類似設計可以將交易性能提升l-2個數量級。
此外,在聯盟鏈的場景下,參與多方存在一定的信任前提和利益約束,可以采取更優化的設計,換來性能的提升。以超級賬本項目為例,在普通虛擬機配置下,單客戶端交易吞吐量tps可達幾百次每秒;在有一定優化或硬件加速情況下可以達到每秒數千次的吞吐量。
目前開源區塊鏈系統已經可以滿足不少應用場景的性能需求,但離大規模交易系統在峰值每秒數萬筆的吞吐性能還有較大差距。
4.擴展性
常見的分布式系統可以通過增加節點來橫向擴展整個系統的處理能力。對于區塊鏈網絡系統來說,根據共識機制的不同,這個問題往往并非那么簡單。例如,對于比特幣和以太坊區塊鏈而言,網絡中每個參與維護的核心節點都要保持一份完整的存儲,并且進行智能合約的處理。此時,整個網絡的總存儲和計算能力取決于單個節點的能力。甚至當網絡中節點數過多時,可能會因為一致性的達成過程延遲,降低整個網絡的性能。尤其在公有網絡中,由于存在大量低性能處理節點,導致這個問題將更加明顯。
要解決這個問題,根本上是在網絡中節點能合作完成完整的處理前提下,放松對每個節點都必須參與完整處理的限制,這個思路已經在超級賬本中得到應用。同時還要盡量減少核心層的處理工作。在聯盟鏈模式下,還可采用高性能的節點作為核心節點,相對較弱的節點僅作為代理訪問節點。
5.系統安全
目前區塊鏈最熱門的應用場景是金融相關服務,安全自然是討論最多、挑戰最大的話題。雖然區塊鏈在設計上大量采用了現代成熟的密碼學算法,但世界上并沒有絕對安全的系統。系統是由人設計的,也是由人來運營的。只要有人參與的系統,就難免出現漏洞。比如下面幾個方面就:
a、一般認為,只要物理上可接觸就不是徹底的安全。公有鏈所有記錄都是公開可見的,這意味著所有的交易即便被匿名化加密處理,但總會在未來被破解。根據已有文獻證明,比特幣區塊鏈的交易記錄很大可能是能追蹤到真實用戶的。
b、法律層面。攻擊區塊鏈系統是否屬于犯罪?對區塊鏈系統如何進行監管?目前還沒有相關法律保護區塊鏈以及基于它的實現,特別是公有鏈。
c、智能合約漏洞管控。運行在區塊鏈上的智能合約種類繁多.可能存在潛在的漏洞,必須進行安全管控,在注冊和運行前需要有合理的機制進行探測,以規避惡意代碼的破壞。
d、公有鏈缺乏有效的調整機制。作為一套完全分布式的系統,一且運行起來.出現問題也難以修正。即使是讓它變得更高效、更完善的修改,只要有部分既得利益者聯合起來反對,就無法得到實施。
6.數據庫和存儲系統
區塊鏈網絡中的大量信息需要寫到文件和數據庫中進行存儲,而區塊鏈中,大量的讀寫操作、哈希計算和驗證操作,跟傳統數據庫的行為有很大不同。前人根據互聯網應用大量非事務性的查詢操作,設計了非關系型( NoSQL)數據庫。LeveIDB、RocksDB等鍵值數據庫,具備很高的隨機寫和順序讀、寫性能,以及相對較差的隨機讀的性能,被廣泛應用到了區塊鏈信息存儲中,但目前來看,面向區塊鏈的數據庫技術仍然是需要突破的技術難點之一,特別是如何支持更豐富語義的操作。
由需求緊迫性可以預測,未來將可能出現更具針對性的“塊數據庫”,專門服務類似區塊鏈這樣的新型數據業務,其中所有操作的最小單位將是一個塊。每條記錄將包括一個完整的區塊信息,并天然地跟歷史信息進行關聯,一旦寫入確認則無法修改。為了實現這種結構,需要原生支持高效的簽名和加解密處理。
7.可集成性
在相當長的一段時間內,基于區塊鏈的新業務系統將與已有的中心化系統共存。兩種系統如何共存,如何分工,彼此的業務交易如何進行傳遞都是很迫切的問題。或將成為區塊鏈技術落地的很大阻礙。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的区块链技术应用的关键问题和挑战的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【区块链基础知识系列】 第9课 一文诠释
- 下一篇: 一篇文章读懂麦当劳发行MacCoin是什