摘?要:規(guī)模與權(quán)力是中心化產(chǎn)生信用的基礎,如果規(guī)模變小,信用將降低,而這些在區(qū)塊鏈的網(wǎng)絡中都可以杜絕,區(qū)塊鏈具有去中心化、不可篡改、可信任的特點,它解決了現(xiàn)實中去中心化信任的需求,數(shù)據(jù)公開透明任何人都可以隨時查看隨時驗證,而且內(nèi)容一經(jīng)寫入便不能篡改。但是隨著區(qū)塊鏈的普及和應用,人們開始發(fā)現(xiàn)區(qū)塊鏈的局限性,如何針對局限性對區(qū)塊鏈進行相應的改進策略,本文對區(qū)塊鏈的局限性進行分析研究,并提出應對策略。
關(guān)鍵詞:區(qū)塊鏈;共識算法;加密技術(shù);零知識證明
Exploring?the?Limitations?and?Coping?Strategies?of?Blockchain
Zeng?Qingxing
Baoting?Federation?of?Literary?And?Art?Circles?HainanBaoting?572300
Abstract:Scale?and?power?is?the?basis?of?centralized?credit,if?smaller,credit?will?be?reduced,and?these?can?be?eliminated?in?the?network?of?block?chain,block?chain?has?the?characteristics?of?decentralization,tamperproof,trust,it?solves?the?demand?of?decentralized?trust?in?the?real?world,transparent?data?anyone?can?check?at?any?time,and?the?content?is?written?cannot?be?tampered?with.However,with?the?popularization?and?application?of?blockchain,people?begin?to?find?the?limitations?of?blockchain.How?to?improve?the?corresponding?strategies?of?blockchain?according?to?the?limitations,this?paper?analyzes?and?studies?the?limitations?of?blockchain,and?puts?forward?coping?strategies.
Keywords:Block?chain;Consensus?algorithm;Encryption?techniques;zero?knowledge?proof
區(qū)塊鏈之所以能夠?qū)崿F(xiàn)去中心化信任,除了使用加密技術(shù),就是每個數(shù)據(jù)庫相互獨立,權(quán)力平等,數(shù)據(jù)庫內(nèi)容實時更新,如果有人想要篡改某一區(qū)塊的數(shù)據(jù),就必須將生成在該區(qū)塊之外的所有區(qū)塊的區(qū)塊頭破解,并逐個篡改每個區(qū)塊中相應的數(shù)據(jù),這幾乎是不可能的。如果有人掌握全網(wǎng)一半以上的算力,便可以將區(qū)塊任意生成在自己想要的鏈上,由于其比所有人生成區(qū)塊的速度快,區(qū)塊鏈的數(shù)據(jù)將被篡改,但掌握全網(wǎng)一半的算力投入成本巨大收益卻少。
1?區(qū)塊鏈核心技術(shù)
1.1?區(qū)塊鏈特殊的數(shù)據(jù)結(jié)構(gòu)
區(qū)塊鏈的數(shù)據(jù)結(jié)構(gòu)包含兩個部分,一個是區(qū)塊,一個是鏈,區(qū)塊鏈網(wǎng)絡中每秒都會產(chǎn)生成百上千條交易記錄,每過十分鐘節(jié)點將會檢查這些交易記錄,并檢查無誤后將其生成一個數(shù)據(jù)區(qū)塊,每個區(qū)塊又分為兩個部分,區(qū)塊頭(Block?Header)和區(qū)塊體(Block?Body),區(qū)塊體用于存放數(shù)據(jù),區(qū)塊內(nèi)存放了區(qū)塊頭、時間戳、交易數(shù)據(jù)、構(gòu)造該區(qū)塊的礦工等信息,而區(qū)塊頭是當前區(qū)塊唯一的ID,用于識別區(qū)塊,并且該區(qū)塊頭的生成是由上個區(qū)塊的全部信息通過哈希運算得來的,區(qū)塊之間通過區(qū)塊頭進行連接便形成區(qū)塊鏈,所有區(qū)塊不斷連接形成一個不斷寫入數(shù)據(jù)的數(shù)據(jù)庫。
1.2?共識算法
區(qū)塊鏈作為由多個節(jié)點共同控制的數(shù)據(jù)庫,這些節(jié)點擁有相同的權(quán)限并共同協(xié)作構(gòu)造區(qū)塊鏈,在區(qū)塊鏈增加區(qū)塊時,如何讓所有節(jié)點共同認可區(qū)塊的有效性,這就用到共識算法。為了提供有效的服務,因此在節(jié)點之間需要運行一個容錯的一致協(xié)議,以確保追加到區(qū)塊上的消息在所有節(jié)點之間都是一致的,這個一致性協(xié)議就為共識算法[1]。區(qū)塊鏈網(wǎng)絡中存在多個節(jié)點共同構(gòu)造區(qū)塊并爭奪下一個區(qū)塊的上鏈權(quán),哪個節(jié)點最先通過共識機制將區(qū)塊上鏈,哪個節(jié)點的區(qū)塊就被所有節(jié)點認可,較常見的區(qū)塊鏈網(wǎng)絡共識機制為工作量證明算法,工作量證明算法要求節(jié)點經(jīng)過耗費資源的運算并且運算結(jié)果能被快速驗證,運算所耗費的時間、設備等資源作為擔保成本,以確保服務被真正利用,在區(qū)塊鏈網(wǎng)絡中哪個節(jié)點運算下一個區(qū)塊所需的時間越少且正確,哪一個節(jié)點構(gòu)造的區(qū)塊就被所有節(jié)點認可,當該區(qū)塊被認可時并向所有節(jié)點廣播,所有節(jié)點就會認可該區(qū)塊的有效性并開始爭奪下一個區(qū)塊的上鏈權(quán)。共識算法作為區(qū)塊鏈的核心機制之一,保證了區(qū)塊鏈網(wǎng)絡能否正常運行。
1.3?加密算法
在區(qū)塊鏈的使用中,會采取不同方法來進行數(shù)據(jù)加密,通常用于交易安全性和隱私保護等方面。目前常用的密碼學算法有非對稱加密算法、Hash加密算法等。以非對稱加密算法為例,非對稱加密算法隨機將兩個質(zhì)數(shù),通過質(zhì)數(shù)相乘、歐拉運算等步驟算出公鑰和私鑰,通過私鑰加密的數(shù)據(jù)可以被公鑰進行解密,公鑰加密的數(shù)據(jù)可以被私鑰進行解密,但公鑰加密的數(shù)據(jù)卻無法用公鑰進行解密,基于不對稱加密解密的公私鑰的密碼系統(tǒng),可以將公鑰公開,私鑰則由各節(jié)點保存且不能被公開。當節(jié)點上傳區(qū)塊時使用公鑰進行加密,各節(jié)點使用各自的私鑰進行解密,并驗證該區(qū)塊是否有效。存儲在服務器中的數(shù)據(jù)是使用區(qū)塊鏈機制存儲的。第一層安全機制中,哈希值被分割,其中一部分存儲在云端,另一部分存儲在本地。即使區(qū)塊鏈或云端被黑客攻擊,也只能獲得一半的哈希密鑰信息[2],通過加密算法,使黑客攻擊成本提高,增強區(qū)塊鏈各節(jié)點之間信息傳播的安全性。
1.4?智能合約
智能合約是由代碼編寫并由計算機自動執(zhí)行的數(shù)字協(xié)議,智能合約早在1994年就被提出,但一直沒有得到廣泛利用,原因在于當時的環(huán)境沒有給智能合約可信的交易環(huán)境,而區(qū)塊鏈的出現(xiàn)解決了可信的問題。智能合約有以下特點:代碼公開、代碼量小和涉及資產(chǎn),在區(qū)塊鏈里,智能合約會被包裝成交易記錄并放入?yún)^(qū)塊里,在交易的過程中滿足交易的預設條件,智能合約會自動進行且無法被更改,這就使交易雙方無法私自更改合約或抵賴,創(chuàng)造交易雙方互相信任的環(huán)境。
2區(qū)塊鏈的局限性
隨著區(qū)塊鏈的普及和應用人們開始發(fā)現(xiàn)區(qū)塊鏈的局限性,如效率低、智能合約的漏洞、信息安全、“區(qū)塊鏈不可能三角”等問題。
2.1?處理效率低下
區(qū)塊鏈網(wǎng)絡中每個節(jié)點的權(quán)利相同,達成共識所需的時間長,區(qū)塊鏈每個區(qū)塊容量有限,為實現(xiàn)全網(wǎng)的信息同步和信息的可追溯,每秒的信息承載量較小,無法應對如雙十一這樣的大量數(shù)據(jù),效率極低無法滿足大數(shù)據(jù)時代的需求。
2.2?智能合約的漏洞
智能合約的特點是代碼公開、代碼量小,但正是這些特點讓智能合約存在被黑客攻擊的風險,代碼量小容易進行,代碼公開意味著無需做太多的破解、逆向分析等工作,代碼量小意味著破解周期短,黑客可以通過檢測區(qū)塊鏈新增的智能合約,從區(qū)塊交易中提取智能合約的地址與代碼,再使用漏洞分析工具掃描合約的源代碼,找出漏洞,最后進行人工分析和數(shù)據(jù)測試,往往就能得手。而且,由于沒有自然語言與區(qū)塊鏈智能合約代碼相對應,智能合約代碼的執(zhí)行沒有相應的法律條款支撐,導致了智能合約仍然缺乏法律效力,只能代表法律協(xié)議的一部分[3]。
2.3?信息安全問題
區(qū)塊鏈解決的是相互陌生的交易雙方信任問題,也可以保證寫入?yún)^(qū)塊的數(shù)據(jù)不會被篡改,但寫入的信息的真假無法分辨。如果區(qū)塊鏈網(wǎng)絡生成區(qū)塊的速度是每10分鐘一個,并且信息需要經(jīng)過六個區(qū)塊才能完全確認,如果寫入錯誤的信息,就必須在生成六個區(qū)塊之前更改,否則將無法更改,容錯率極低。區(qū)塊鏈的數(shù)據(jù)相對集中且每個節(jié)點都擁有完整的區(qū)塊鏈數(shù)據(jù),區(qū)塊鏈數(shù)據(jù)存儲可分為鏈上存儲和鏈上/鏈下協(xié)同存儲兩種方式,采用鏈上存儲方式時所有數(shù)據(jù)全部存儲在區(qū)塊鏈底層數(shù)據(jù)庫中,而采用鏈上/鏈下協(xié)同存儲時,完整數(shù)據(jù)一般集中存儲在其他節(jié)點(一般為中心化服務器)中,而元數(shù)據(jù)則保存在區(qū)塊鏈數(shù)據(jù)庫中[4],只要獲得其中的一個節(jié)點的數(shù)據(jù)就得到了整個區(qū)塊鏈中的數(shù)據(jù),這無疑是增大了數(shù)據(jù)安全的保護難度。如果用戶私鑰丟失或者被黑客竊取,就會造成無法挽回的永久損失,因為去中心化的特點,用戶無法像中心化機制那樣找回密鑰或者更改密鑰,這樣意味著與密鑰關(guān)聯(lián)的賬戶將永久丟失。區(qū)塊鏈數(shù)據(jù)的隱私獲取相對容易,隱私保護難度較大,黑客可以通過對從其他平臺獲得的個人的公開數(shù)據(jù)與從區(qū)塊鏈中獲取的數(shù)據(jù)進行關(guān)聯(lián)性分析,一旦將區(qū)塊鏈交易地址與網(wǎng)絡IP地址、平臺消費記錄等信息進行關(guān)聯(lián)分析,很容易獲取到用戶的隱私信息。
2.4?區(qū)塊鏈的不可能三角
區(qū)塊鏈“不可能三角”的意思是區(qū)塊鏈無法同時擁有去中心化、可拓展性和安全性的特性。如果區(qū)塊鏈在去中心化的同時保證其安全性,就會導致拓展性弱;如果區(qū)塊鏈在保證安全性和可拓展性,就無法形成真正地去中心化。其原因是這幾個要素是相互制約的,去中心化需要擁有大量參與區(qū)塊生產(chǎn)和驗證的節(jié)點,節(jié)點地位相互平等,即使有些節(jié)點崩潰也無法讓整個區(qū)塊鏈網(wǎng)絡崩潰,并且攻擊區(qū)塊鏈的成本也會增加,因此區(qū)塊鏈擁有大量的節(jié)點保證了區(qū)塊鏈網(wǎng)絡的安全性,但這也意味著效率低下,因為每一區(qū)塊需要所有節(jié)點達成共識,節(jié)點越多達成共識的速度就越慢。
3?改進區(qū)塊鏈的對策
3.1?Layer?2
Layer?2是一條拓展以太坊并且繼承其安全性的獨立區(qū)塊鏈,Layer?2網(wǎng)絡分為兩層,二層網(wǎng)絡會定期與一層網(wǎng)絡溝通,并把交易數(shù)據(jù)傳過去,由一層網(wǎng)絡驗證數(shù)據(jù),保證其安全性,簡單說Layer?2網(wǎng)絡是依靠一層網(wǎng)絡運行的區(qū)塊鏈,二層將所有數(shù)據(jù)壓縮并打包送入一層進行驗證,通過這樣的方式效率會大大提高,打包后的數(shù)據(jù)如何確認其有效性,Rollup為Layer2主要的解決方案,Rollup分為兩種方案,一種為零知識匯總(Zero?Knowledge?Rollup),一種為樂觀匯總(Optimistic?Rollup);零知識匯總通過鏈上合約與鏈下虛擬機的方式保證每次更新后數(shù)據(jù)的可用性,此方法處理效率提高但無法保證安全性;樂觀匯總會給予數(shù)據(jù)一個星期左右的質(zhì)詢期,通過獎罰機制,獎勵發(fā)現(xiàn)數(shù)據(jù)漏洞的節(jié)點并處罰將錯誤數(shù)據(jù)上傳的節(jié)點,在質(zhì)詢期結(jié)束后將結(jié)果返還一層,該方法能保證安全性,但效率會降低。
3.2?改進領導節(jié)點
為了提高區(qū)塊鏈處理效率,有的區(qū)塊鏈網(wǎng)絡會通過使用多線程模型,以及引入領導節(jié)點來提高效率,領導節(jié)點將工作分給普通節(jié)點,領導節(jié)點負責生產(chǎn)區(qū)塊,普通節(jié)點負責驗證區(qū)塊,這雖然大大提高了效率但同時也大大削減了去中心化的程度,使得區(qū)塊鏈網(wǎng)絡變得不再安全。因此可以采用DAG技術(shù)并行處理計算,這遠遠高于單線程區(qū)塊鏈處理效率以及降低延遲并且提高資源利用率。再分配給區(qū)塊鏈中的每個節(jié)點額外的工作以備領導節(jié)點崩潰時接管領導節(jié)點,這樣有效避免領導節(jié)點崩潰時導致整個區(qū)塊鏈網(wǎng)絡崩潰。
3.3?改進共識算法
PoS(Proof?fo?Stake)即權(quán)益證明,是共識算法的一種,權(quán)益證明算法拋棄了工作量證明算法繁重的計算,節(jié)點通過質(zhì)押一定的資產(chǎn)獲得搭建區(qū)塊的資格,按照固定時間根據(jù)節(jié)點的權(quán)重讓所有的節(jié)點輪流搭建區(qū)塊,節(jié)點必須保證區(qū)塊穩(wěn)定運行,否則將扣除質(zhì)押在區(qū)塊里的資產(chǎn),由于所有節(jié)點都跟區(qū)塊鏈網(wǎng)絡產(chǎn)生利益相關(guān),所以就不會主動破壞區(qū)塊鏈網(wǎng)絡的安全,但缺點是容易形成中心化趨勢。BDAC算法通過引入信用機制來優(yōu)化現(xiàn)有的共識算法,如將信用機制引入工作量證明算法中,通過對所有節(jié)點進行信用度的計算和排名,依據(jù)排名將區(qū)塊構(gòu)建權(quán)按比例分配給各個節(jié)點,節(jié)點信用值越大,節(jié)點獲得的區(qū)塊構(gòu)建權(quán)就越大,增強了共識算法的安全性。將信用機制引入到權(quán)益證明算法中,綜合考慮節(jié)點的有效出塊數(shù)、有效投票數(shù)、參與度和歷史信用度計算節(jié)點的信用值,再結(jié)合節(jié)點本身的權(quán)益和信用值來遴選共識節(jié)點集[5]。信用值在權(quán)益證明算法中的主要作用就是用來挑選共識節(jié)點集,確保信用值高的節(jié)點優(yōu)先被選上,提高權(quán)益證明機制的安全性。
結(jié)語
區(qū)塊鏈作為一種全新的人類關(guān)系連接方式,未來會像互聯(lián)網(wǎng)一樣普及,同時區(qū)塊鏈也是一種正在發(fā)展的技術(shù),固然會有很多局限性,我們要理性地看待它。隨著越來越多的研究者對區(qū)塊鏈進行研究,區(qū)塊鏈會越來越完善。
參考文獻:
[1]張燕平,李中文,張華龍.區(qū)塊鏈的物聯(lián)網(wǎng)信息安全技術(shù)研究[J].電子技術(shù)與軟件工程,2023(01):1316.
[2]趙天嬌.區(qū)塊鏈技術(shù)及其應用安全性分析[J].科技創(chuàng)新與應用,2022,12(36):193196.
[3]李啟明,胡浩青.區(qū)塊鏈技術(shù)的能力局限與應對措施[J].清華金融評論,2017,49(12):101102.
[4]王群,李馥娟,倪雪莉,等.區(qū)塊鏈數(shù)據(jù)形成與隱私威脅研究[J/OL].計算機工程,114[20230405].
[5]劉惠文,謝才炳,鄧小鴻.基于信用的區(qū)塊鏈共識算法對比研究[J].計算機應用研究,2023,40(02):321327.
作者簡介:曾慶幸(1999—?),男,黎族,海南萬寧人,本科,一級科員,研究方向:軟件工程。