【行業】通信-數據更可信共享,區塊鏈永向前(26頁)

區塊鏈是一種按照時間順序將數據區塊以順序相連的方式組合成的鏈式數據結構,利用塊鏈式數據結構來驗證和存儲數據、利用分布式節點共識算法來生成和更新數據、利用密碼學的方式保證數據傳輸和訪問的安全性,利用由自動化腳本代碼組成的智能合約來編程和操作數據的一種全新的分布式基礎架構與計算范式。其中區塊是鏈式結構的基本數據單元,聚合了所有交易相關信息,主要包含區塊頭和區塊主體兩部分。區塊頭主要由父區塊哈希值(Previous Hash)、時間戳(Timestamp)、默克爾樹根(Merkle Tree Root)等信息構成;區塊主體一般包含一串交易的列表。每個區塊中的區塊頭所保存的父區塊的哈希值,便唯一指定了該區塊的上一個區塊數據的哈希值,這種哈希層層嵌套,最終將所有區塊串聯起來,從而組成了區塊鏈的基本數據結構。

根據網絡范圍及參與節點特性,區塊鏈可被劃分為公有鏈、聯盟鏈、私有鏈三類。公有鏈是完全去中心化的,任何人既可以進行交易也可以讀取信息,任何人都可以參與鏈上的交易確認和共識機制,各個節點可以隨時加入節點也可以隨時退出節點。聯盟鏈由幾個權威的機構共同分布式記賬,這些節點再根據共識機制協調工作,即部分去中心化,民眾可以進行查閱和交易,不過驗證交易的話就需要聯盟內部決定,聯盟鏈的一個最顯著的特點就是各個節點都對應一個實體機構,任何實體機構節點想要加入聯盟鏈,需要得到聯盟的許可,這些機構共同維護系統的穩定發展。私有鏈是對單獨的個人或實體進行開放的區塊鏈系統,系統內的每個節點的權限都需要組織來分配,對每個節點開放的數據量要視情況由組織來決定,雖然對各個節點都進行了限制,但私有鏈仍然是區塊鏈的多節點的框架,私有鏈的交易速度會很快,主要是因為不需要每個節點來驗證一個交易,少量的節點就可以完成驗證。

以 RSA(較為流行的一種質因數分解加密方式)為例,我們先隨機取 2 個質數257 和 337,按照 RSA 的方案(利用歐拉函數和高斯對歐拉函數的變種)我們會得到私匙為(e=17,n=86609),公匙為(d=65777,n=86609)此處的核心加密算法為C=M^e mod n。其中 C 為加密后的信息,M 為原始信息,假設 M=18537,n 從兩把鑰匙中得出是 86609。一旦我們用私匙去給信息 M 加密(簽名),我們得到 C=18537^17mod 86609=12448。此處 12448 便是我們的簽名后的信息(簽名文件)。當我們把 12448發給對方時,對方可以用公匙去解密。相應的解密算法為 M=C^d mod n. 當我們把各數字帶入解密算法里,我們得出 M=12448^65777 mod 86609=18537。此時我們發現公匙在解密算法中還原出了私匙加密前的文件,但是如果強行從公匙去推私匙,計算難度大,而且現實中大家往往采用大質數顯著的擴大了歐拉總計函數的值導致算力要求指數上升。很多時候大家為了防止確認的時候泄露了文件內容,會先對文件進行哈希運算,從而對哈希值進行運算和驗證,而不是文檔本身。

分享到: