背景介紹
區塊鏈技術隨著比特幣等數字加密貨幣的日益普及而越來越受關注。
區塊鏈技術是一種新型的去中心化協定,能安全存儲數字貨幣、股權債權等數字資產。區塊鏈技術通過運用
數據加密、
時間戳、分散式共識和經濟激勵等手段,有效地解決了拜占庭將軍問題中的共識問題,實現了在節點無需互相信任的分散式系統中實現去中心化的點對點交易,從而有效降低了現實經濟的信任成本,重新定義了網際網路時代的產權制度。
區塊容量節點
區塊鏈存儲容量可擴展模型中的節點包含三個角色:用戶節點,儲存節點和驗證節點。用戶節點是原始數據擁有者,儲存節點是副本的保存者,而驗證節點是儲存節點穩定性的驗證者。一個節點可以同時具備兩種或者三種角色。同時,模型建立了兩條新的區塊鏈:P(Position)鏈和 POR (Proofs of Reliability)鏈。P鏈保存在用戶節點中,記錄數據各個副本被保存在存儲節點的位置。POR 鏈保存在驗證節點中,記錄各個儲存節點的可靠性評價。將存儲節點位置信息和儲存節點的可靠性評價寫入基於區塊鏈技術的 P 鏈和 POR鏈中,也是利用了區塊鏈不可被篡改的特點,保證數據的安全性。
區塊鏈存儲容量可擴展模型
分散式存儲方法,提出了區塊鏈存儲容量可擴展模型。其核心思想是將一條完整的區塊鏈分成若干部分,分布存儲在系統中,如圖所示。
在現有的區塊鏈技術中,一個攻擊者想要篡改數據,需要控制網路中 50%以上的節點。在區塊鏈分散式存儲後,網路中區塊鏈的副本數減少,攻擊者就可以在控制少於 50%節點數的情況下修改區塊鏈數據。這在一定程度上降低了區塊鏈的安全性。但是隨著區塊鏈技術的廣泛套用,海量節點正源源不斷地加入到區塊鏈系統中。攻擊者想要控制區塊鏈系統中的很少一部分節點也是幾乎不可能的。儘管如此,在區塊鏈容量可擴展模型還是提出了節點可靠性驗證的方法,增加了區塊鏈的安全性。區塊鏈存儲容量可擴展模型框架如圖所示。
數據存儲
在區塊鏈存儲容量可擴展模型進行數據存儲時,模型採用了POR數據可檢索性證明[16][17]方法對用戶節點區塊鏈中的區塊進行加密處理,得到相應的密文和密鑰。POR 方法是保存在外地伺服器上數據的可檢索性的加密證明。其實現的具體過程是:用戶節點將
密文交由儲存節點中保存後,可以隨時查詢儲存節點中數據的完整性;儲存節點會在被查詢時,隨機選擇一部分密文數據傳送給用戶節點;用戶節點通過密鑰與接收密文的計算結果進行比對,得出儲存節點中的數據是否完整。因此,利用 POR方法可以在少量檔案傳輸的通信成本下,實時驗證出系統中數據完整性。在模型進行數據存儲過程中,首先採用 POR 方法對用戶節點中的每個區塊進行加密,得到相應的密文和密鑰。然後,用戶節點計算出每個區塊需要保存的副本數。接著,模型將 POR 方法生成的密鑰保存到本地存儲器中,並發給驗證節點保存;將加密後的區塊數據保存到儲存節點中。此時,模型將訪問驗證節點中保存的儲存節點可靠性信息,從中找出可靠值較高的儲存節點來保存各個區塊數據。驗證節點為了保證儲存節點可靠性信息不會被惡意篡改,將其保存在了POR 鏈中。之後,將每個區塊按照所需要的副本數保存在相應數量的選出的儲存節點中。當數據副本被保存後,為了保證用戶節點進行數據讀取,模型將儲存節點的地址返回給用戶節點,並將其保存在了 P 鏈中,保證儲存節點地址數據的安全性。
數據讀取
在區塊鏈存儲容量可擴展模型進行數據讀取時,首先用戶節點訪問本地磁碟中的 P 鏈,得到各個區塊儲存的位置信息,根據位置信息找到相應的儲存節點。然後,儲存節點將保存的數據返回給用戶節點。用戶節點根據本地保存的 POR 方法生成的密鑰,對接收密文數據進行恢復,得到原始數據。
儲存節點可靠性驗證
在區塊鏈存儲容量可擴展模型中,儲存節點保存著區塊數據。但是由於一些特殊狀況,儲存節點可能出現將數據修改或將數據丟失等故障。為了減小由於儲存節點故障導致的區塊數據的不穩定性,驗證節點會根據 POR 方法生成的密鑰,隨時驗證存儲節點隨機發回的部分密文數據,實時檢測儲存節點數據存儲情況。然後,驗證節點將實時的檢測情況寫入 POR 鏈中,當用戶節點再次申請儲存數據時,提供最新的儲存節點可靠性值,使用戶節點選出此時最穩定的存儲節點保存區塊數據。區塊鏈存儲容量可擴展模型中儲存節點可靠性驗證過程如圖所示。
在實際的套用中,模型對於存儲節點可靠性的評價標準可以採取如下方法。首先,模型會給每個存儲節點分配相同的可靠性值。然後,驗證節點每隔相同的一段時間檢測存儲節點數據的可靠性,相隔時間根據對數據安全需求的具體情況來制定。當存儲節點中數據完整時,其可靠性值不變。當存儲節點數據被修改或者丟失時,則減少其可靠性值,並保存到 POR 鏈中。最後,當模型選擇高可靠性的存儲節點時,以 POR 鏈中的各個存儲節點可靠性值作為衡量標準。
發展
區塊鏈的協定要求全網中每個節點都保存著同一條完整的區塊鏈信息。這導致了
區塊鏈的容量受到了網路里存儲空間最小的節點的限制。區塊鏈存儲容量可擴展模型將區塊鏈中各個區塊保存在一定比例的節點中,而不是所有節點中。並且,模型增加了節點可靠性驗證,保證了數據的安全性。模型中用戶節點根據數據副本分配策略將每個區塊保存相應的副本數,並基於 POR數據可檢索性證明方法對副本數據進行加密,並將
密鑰傳送個驗證節點。驗證節點利用 POR 方法實時更新存儲存節點穩定性值,依此選擇高穩定性節點來儲存用戶節點的數據副本。經實驗證明,區塊鏈存儲容量可擴展模型在具有一定的穩定性、容錯性和安全性的同時,有效地增加了區塊的鏈儲存擴展性。未來我們可以對
數據副本分配策略進一步研究,提出更準確的計算數據副本方法,在保證數據安全性的前提下,減少更多儲存空間。同時,也可以將區塊鏈存儲容量可擴展模型套用於 Ethereum 和Parity 等不同的區塊鏈系統中,提高不同區塊鏈系統的存儲擴展性。