999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于區塊鏈3.0架構的身份認證系統

2019-12-13 03:55:44
宿州學院學報 2019年11期
關鍵詞:智能用戶信息

李 嶒

安徽中澳科技職業學院信息工程與藝術設計系,安徽合肥,230041

隨著互聯網規模的不斷擴大,物聯網終端隨處可見,云計算極大普及,各種新型網絡平臺層出不窮,網絡應用已經徹底地融入到人們的日常生活中[1]。當用戶需要使用平臺服務時,需要提供相應的身份認證信息,每一個網絡平臺都有各自的身份認證方法,用戶需要記憶多個用戶名和口令,管理認證信息變得越來越煩瑣,用戶在不同網站注冊賬戶也消耗了大量的網絡資源。為了實現身份信息的共享和單點登錄,出現了中心化的認證平臺來集中管理賬戶信息,但也伴隨著認證跨平臺難度大、隱私保護困難、認證成本高等一系列網絡安全問題。

區塊鏈通過一種去中心化的共識機制讓所有區塊鏈網絡的參與者共同維護一個賬本系統,具有分布式存儲、去中心化共識、信息不可篡改和不對稱加密等特性。將區塊鏈技術應用到身份認證系統,讓用戶擁有管理身份的權利并通過智能合約傳遞身份信息,可以有效解決傳統中心化認證系統的安全缺陷[2]。

1 傳統身份認證體系結構比較分析

1.1 獨立身份認證

物聯網的普及使終端用戶多樣化,每個應用平臺擁有獨立的身份認證系統,提供用戶身份標識和用戶證書,負責對用戶的合法性進行驗證,這種認證結構簡單易行。同一個互聯網用戶在不同的應用平臺上擁有多個虛擬身份,每個虛擬身份對應著一套應用賬戶信息,頻繁地在多個身份間切換給用戶帶來不便[3]。

1.2 集中身份認證

微軟從1997年就開始嘗試使用身份聯盟的方式進行集中身份認證,加入聯盟的應用平臺接受同區域其他平臺發出的身份標識和授權[4]。用戶通過身份聯盟平臺的賬戶在不同的網站間進行單點登錄,解決了用戶多次注冊和登錄的不便。身份聯盟平臺采用中心化的系統構架,集中管理用戶的身份信息,合作網站不必開發獨立的授權和認證系統,身份認證處理過程由身份聯盟平臺負責執行,初步實現了身份信息的共享。身份聯盟采用中心化的結構管理用戶身份,如果中心服務器出現故障,將影響用戶使用聯盟中的應用平臺,同時跨聯盟訪問技術也是身份聯盟認證體系結構急需解決的問題。

1.3 開放授權認證

開放授權是相對于封閉授權來講的,封閉授權是指在本地計算機或局域網內的認證授權,互聯網應用之間的授權即是開放授權。開放授權認證是通過一定的開放規則,由用戶授權第三方應用訪問該用戶在某一個網絡平臺上保存的身份信息,而無需將賬戶信息提供給第三方應用[5]。通過授權,用戶無須在第三方應用平臺中注冊信息,第三方應用也無法獲取用戶的隱私信息,授權平臺在收到用戶的授權請求后,向第三方應用發送認證結果。開放授權中,用戶在一定程度上掌握了身份信息的使用權利。

1.4 認證體系分析比較

上文描述的三種認證體系中,獨立身份認證是最容易實現且擴展性較好,但對于用戶的負擔較大,無法實現單點登錄;身份聯盟內部共享認證信息,實現了用戶單點登錄,用戶身份由中心服務器集中存儲和管理;開放授權認證允許應用之間單項傳遞認證結果,用戶掌握了授權結果的使用權利,但用戶仍然沒有身份信息的管理權。因此三種認證體系在用戶體驗和技術實現上仍不完美。

2 區塊鏈技術

區塊鏈技術是去中心化系統,不需要高成本的中心信息架構,個別節點的故障不會影響整個區塊鏈系統的正常運行,幾乎不存在系統癱瘓的風險。

區塊鏈技術實現了鏈狀區塊結構、全網共享賬本和非對稱加密技術,具有去中心化、不可篡改、公開透明等特點,具有很強的抵御網絡攻擊能力。其發展經歷三個階段:區塊鏈1.0,起源于比特幣,是以實現虛擬貨幣支付和管理為主要應用的區塊鏈;區塊鏈2.0,以太坊的典型應用,構建了一個可編程的智能合約開發平臺,其應用領域從數字貨幣拓展到了其他金融領域;區塊鏈3.0,其應用完全超出了金融經濟領域,成為了一種通用的解決方案[6]。區塊鏈技術從1.0到3.0的主要技術特征和應用領域描述見表1。

表1 區塊鏈技術主要技術特征和應用領域

2.1 區塊鏈3.0體系架構

在區塊鏈3.0的架構中,超越了金融的應用范疇,而將區塊鏈技術作為一種通用的解決方案,應用到各行各業,因此架構中需要具備企業級屬性,如身份認證、許可授權、加密傳輸等。區塊鏈體系架構如圖1所示。

圖1 區塊鏈3.0體系架構圖

區塊鏈體系架構包含以下組成部分[7]:

(1)核心數據層:區塊結構決定了區塊鏈數據存儲形式,區塊結構由區塊頭、交易數據和區塊數據三個部分組成,不同區塊的區塊頭通過哈希指針串聯起來,形成整個區塊鏈底層數據的鏈表,Mekel樹描述了區塊鏈中節點的層次結構,合約容器為智能合約的開發提供了專用存儲空間;

(2)網關控制層:區塊鏈的網絡結構是典型的點對點網絡,區塊鏈網絡中節點參與數據的維護,當某個節點請求對區塊數據進行操作時,其他節點參與身份認證和數據驗證。通過認證的節點和驗證后的數據才會被添加到賬本中;

(3)共識機制層:區塊鏈網絡利用工作量證明(PoW)和權益證明(PoS)來阻止網絡攻擊,以保證數據的合法和安全,防止信息被篡改。在區塊鏈3.0中,為了匹配各行業的使用需求,共識機制不是固定的,用戶可以根據需要去選用配置;

(4)擴展接口層:區塊鏈3.0提供了開發平臺和應用程序編程接口(API),包含了智能合約開發語言、圖形化開發工具、文件操作系統、數據存儲查詢和工作流引擎等技術。

2.2 區塊鏈的加密技術

非對稱加密是區塊鏈交易過程的一個重要組成部分。傳統的對稱加密算法中,加密和解密使用同一個密鑰。而非對稱加密算法,加密和解密使用不同的密鑰,加密時使用的密鑰是公開的,稱為公鑰;解密時使用的密鑰是節點私有的,稱為私鑰。非對稱加密保證了在節點間傳遞的信息始終是加密的,解密所有的私鑰掌握在信息所有節點中,參與驗證的其他節點無法對其解密[8]。公鑰和私鑰總是成對使用的,通過私鑰可以計算出對應的公鑰,而通過公鑰不能計算出對應的私鑰。區塊鏈中的加密解密過程如圖2所示。

圖2 非對稱加密過程圖

2.3 區塊鏈3.0的共識機制和智能合約

去中心化是區塊鏈技術的最重要特點,它采用了P2P的網絡結構。參與區塊鏈網絡的節點既是服務器又是客戶端,當節點產生交易時,其他節點需要對交易進行驗證,達成共識后交易信息才會寫入區塊鏈賬本。為了達成共識,產生交易的節點需要對自己所做的工作進行證明[9],常見的共識機制有工作量證明(PoW)、股權證明機制(PoS)、授權股權證明機制(DPoS)、拜占庭容錯機制(BFT)和實用拜占庭容錯機制(PBFT)等。不同的共識機制有自己的特點。在區塊鏈3.0應用中,共識機制不再被封裝在底層不可更改,用戶可以根據實際需要來選擇使用共識機制或共識機制的組合。智能合約是運行在區塊鏈中的條件約定,當數據環境達到合約規定的條件后,合約會自動執行,無須人工觸發[10]。在區塊鏈3.0的技術架構中,完全支持智能合約的定制開發,編寫好的智能合約可以方便地部署在區塊鏈網絡中。

2.4 區塊數據的存儲結構

區塊(Block)和鏈表是區塊鏈的核心數據結構,其中區塊數據包含區塊頭和區塊體兩個部分,區塊頭的作用是和其他區塊形成一個鏈表,區塊體則保存認證系統所提供的身份數據。區塊鏈的數據庫體系是由一系列節點組成的二叉樹,葉子節點的Hash值合在一起成為了父節點的Hash值,一直到根節點。區塊數據存儲在levelDB中,數據以鍵值對進行存儲。在鏈式結構中有兩個鏈表,一個是由所有的區塊數據形成的主鏈,另一個則是所有區塊頭數據形成的區塊頭鏈表。一般情況下,將區塊頭鏈表看成區塊鏈的一個部分。交易是區塊體的重要數據結構,交易被節點加密簽名形成一段指令,然后提交給區塊鏈。

區塊頭的儲存結構為:

type Header struct {

ParentHash common.Hash

UncleHash common.Hash

Coinbase common.Address

Root common.Hash

TxHash common.Hash

ReceiptHash common.Hash

....

}

區塊體中包含了用于形成鏈表結構的區塊頭信息,存儲結構如下:

type Block struct {

header *Header//區塊頭

uncles []*Header//前置區塊頭數組

transactions Transactions//交易名稱

hash atomic.Value//自動產生hash值

size atomic.Value//區塊數據大小

td *big.Int//封裝到該區塊的儲存層次

ReceivedAt time.Time//區塊數據被認可的時間

ReceivedFrom interface{}//共識接口

}

3 基于區塊鏈3.0的認證系統設計

3.1 認證系統需求分析

3.1.1 傳統認證系統功能分析

傳統的身份認證系統采用中心化的結構,用戶的身份信息保存在底層數據庫中,一個完整的認證系統需要包含身份認證、身份注冊、身份更新和運行維護四大基本功能[11]。身份認證是將用戶提交的信息和保存在系統中的身份信息進行比對,判斷用戶是否合法;身份注冊允許用戶根據需要新建一個身份信息,由管理員審核后寫入數據庫;身份更新功能允許用戶對身份信息的非關鍵數據進行修改,管理員審核后對數據庫進行更新;運行維護是認證系統對功能模塊進行運行監控、事件采集和數據維護,提高系統的安全性和運行效率。認證系統功能示意如圖3所示。

圖3 認證系統功能示意圖

3.1.2 基于區塊鏈技術的認證系統可行性分析

根據傳統身份認證系統的功能需求,結合區塊鏈技術的工作原理和技術架構,分析設計認證系統功能需求在區塊鏈3.0技術下的實現方式,具體的功能的實現方式見表2。

為了實現去中心化,身份認證系統需要遵循區塊鏈的運行原理和操作規范,區塊鏈3.0技術架構中的共識算法和智能合約在系統運行中起到重要作用,分布式賬本的操作需要在達成共識的情況下進行。區塊鏈3.0最重要的特征就是可編程智能合約和可設定共識機制,智能合約主要控制身份信息查詢和系統維護,身份注冊和更新需要全網節點共同參與驗證,通過共識算法判斷交易的合法性。在系統功能設計中,考慮到認證操作的頻繁,賬本的查詢可以由智能合約直接驅動,無須其他節點達成共識,提高了身份信息的查詢效率。基于區塊鏈3.0的認證系統功能如圖4所示。

表2 區塊鏈技術的認證系統實現方式

3.2 認證系統技術架構

認證系統建立在區塊鏈網絡之上,遵循區塊鏈3.0技術規范和操作規則,建立在區塊鏈技術架構上。最底層為區塊鏈技術環境,主要是支持區塊鏈工作的網絡拓撲、密碼學、節點設置、計算方法和數據結構;第二層為區塊鏈核心層,是區塊鏈3.0技術應用的基礎,包括區塊鏈核心支撐、共識機制、區塊數據操作規范、網絡操作規范,區塊鏈3.0采用的是可設置共識,共識算法作為一個獨立模塊可選擇、可組合;第三層是區塊鏈3.0智能合約運行和網絡操作調用的支持環境,認證系統的智能合約運行在虛擬機之上,認證系統的各種操作通過過程調用協議和區塊鏈網絡之間進行通信;第四層是智能合約層,該層是整個技術架構的關鍵,身份認證系統的邏輯操作通過智能合約和區塊鏈進行交互,區塊鏈3.0允許用戶通過腳本語言編寫智能合約;最上層就是最終實現的區塊鏈3.0應用身份認證系統,它包含身份認證、身份注冊、身份更新和運行維護四個模塊。身份認證系統技術架構如圖5所示。

圖5 認證系統技術架構圖

3.3 認證系統業務邏輯設計

對認證系統包含的四個功能模塊之間和自身業務處理邏輯進行設計,其中運行維護功能不需要和用戶進行交互,其他功能均需要根據用戶錄入信息和用戶的選擇進行業務邏輯的流轉。具體模塊的業務邏輯流程如圖6所示。

圖6 認證系統業務邏輯示意圖

3.3.1 運行維護模塊

為了提高區塊鏈網絡的執行效率和數據處理能力,在智能合約中設定啟動網絡緩存清理、區塊鏈賬本優化和節點狀態重置等維護函數觸發的條件,當認證系統在節點計算機啟動后自動執行智能合約,對優化條件進行檢查,滿足條件則執行維護操作,之后轉入認證界面,不滿足條件則直接轉入認證界面。

3.3.2 身份認證模塊

身份認證模塊是認證系統的核心功能模塊,主要工作原理是根據用戶的認證請求,將保存在區塊鏈賬本中的身份信息和用戶提供的信息進行比對,結果一致則返回成功認證信息,結果不一致則返回認證界面或轉入注冊界面。身份認證功能僅執行查詢操作,不對區塊鏈賬本進行寫入和更新,且查詢僅限于區塊信息擁有節點自身數據,不查詢其他節點的區塊信息,為了提高查詢效率,降低節點計算機資源消耗,利用區塊鏈3.0技術架構中的可設置共識機制,身份認證功能模塊直接通過智能合約查詢區塊鏈賬本,無須其他節點參與驗證。

3.3.3 身份注冊模塊

參與區塊鏈網絡的節點計算機注冊身份,產生一個新增區塊數據交易,將身份信息寫入區塊鏈共享賬本,身份信息的擁有者就是產生交易的節點。用戶進入注冊界面,輸入身份信息,由頁面內置script函數根據設定的規則判斷信息的合法性,如果信息不合法,提示用戶修改,信息合法,則產生一個交易,并調用智能合約寫入函數,向全網發送交易廣播,區塊鏈網絡的其他節點參與交易的驗證,調用共識算法對交易進行計算,全網達成共識后將區塊信息寫入區塊鏈共享賬本。

3.3.4 身份更新模塊

身份更新功能和身份注冊功能類似,都需要對區塊數據進行修改。身份更新需要在身份認證完成后由用戶選擇進入身份信息修改頁面,由智能合約調用相應函數對賬本中保存的身份信息進行查詢,并將可修改的信息顯示在修改頁面的表單控件上,用戶輸入信息合法的情況下,產生一個區塊數據修改交易,調用智能合約,全網節點根據共識算法共同驗證并認可交易,最終對區塊鏈共享賬本進行更新。

4 認證系統的實現

4.1 P2P網絡的構建

區塊鏈的網絡結構是典型的P2P對等網絡,構建身份認證平臺的網絡環境,需要定義P2P網絡的通信方式,將待接入的節點壓入已連接的節點堆棧,實現節點的初始化連接。建立連接后,對節點的錯誤狀態進行跟蹤,利用節點發出的廣播報文,同步實現錯誤信息的處理。最后同步區塊鏈信息,如果鏈路狀態信息有更新,就向其他節點廣播交易信息,目標節點接收到報文后產生交易驗證數據。信息平臺網絡構建命令行如下:

var initP2PServer = () ; //定義P2P通信模式

var initConnection = (ws); //初始化連接

sockets.push(ws); //壓入已連接的節點堆棧

initMessageHandler(ws);

initErrorTracer(ws);//錯誤狀態跟蹤

write(ws,responseLatestMsg());//廣播

var initMessageHandler = (ws); //同步信息處理

var initErrorHandler = (ws); //錯誤信息處理

var handleNum = (message);

var connectToPeers = (newPeers) ; //連接新節點

4.2 智能合約開發

智能合約是基于區塊鏈技術的應用開發的核心,它存儲在區塊鏈網絡上的一個特殊地址(合約容器)上,區塊鏈3.0技術提供了智能合約開發、調試和運行的環境,智能合約是去中心化應用業務邏輯的載體,是身份認證系統和區塊鏈底層交互的紐帶。智能合約的開發和普通可執行程序開發有所區別,不需要考慮如何在操作系統和特定網絡環境中獨立運行,但要遵循區塊鏈數據操作規范和虛擬機運行條件約束。一個完整的合約由一組狀態變量和合約函數組成。

在編寫智能合約時,首先定義存儲用戶身份信息的結構體數據類型,定義結構體的代碼如下:

struct UserIfo{//定義身份信息結構體

string UserName;//用戶名

int32 UserPassword;//用戶密碼

string UserRole;//用戶角色

bool Registered;//注冊狀態

bool Enable;//可用狀態

bool Logined;//登錄狀態

...

}

身份認證系統智能合約主要功能實現邏輯偽代碼如下:

contract identification {

uint numRegistrants;//已注冊數量

mapping(address=>user) users;//用戶身份信息的地址映射

string tag;//執行結果

function set_numRegistrants(uint i) {//設定注冊數

numRegistrants = i;

}

function get_numRegistrants() constant returns (uint v) {//查詢注冊數

return numRegistrants;

}

function register(UserIfo user){//身份注冊操作函數

if(user.Registered){

tag=fail;

}

else{

Register( user);//調用注冊事件(網絡廣播、共識計算、寫入賬本)

}

function login(user user){//身份認證操作函數

if(user.Logined){

tag=fail;

}

else{

Login( user);//調用認證事件(查詢身份信息數據)

}

function update(UserIfo newUser){//身份更新操作函數

....

}

.....

}

4.3 部署和運行

區塊鏈3.0應用開發完成后,需要使用Geth工具來啟動和部署。智能合約虛擬機是智能合約的運行環境。智能合約需要編譯產生可以運行在虛擬機上的二進制代碼,獲得合約區塊鏈地址和合約接口的二進制表示。運行在虛擬機內部的代碼被封裝起來,不能和操作系統、網絡環境和文件系統有任何的信息交換,其內部定義的變量和函數也是嚴格的設定調用條件。Geth在8545端口提供了過程調用協議接口RPC API,協議中數據傳輸采用JSON格式。

本文設計的認證系統分為區塊鏈數據操作部分和交互界面部分,采用了去中心化的結構,沒有中心服務器,交互界面客戶端通過分發安裝在每一個區塊鏈網絡節點計算機上,區塊鏈操作部分是認證系統的核心,其運行原理完全遵循區塊鏈操作機制。當一個交易產生時,通過過程調用協議啟動智能合約,并向區塊鏈網絡發送廣播,區塊鏈網絡中的節點接收到廣播中的交易信息,從交易信息中提取智能合約的參數,通過本地虛擬機運行智能合約進行運算,根據共識算法互相驗證數據,達成共識的數據作為區塊數據寫入賬本。身份認證系統的運行原理如圖7所示。

圖7 身份認證系統運行原理圖

5 結 語

傳統身份認證系統采用中心化的結構,中心服務器作為身份信息的所有者,負責身份信息的存儲和管理,用戶僅有對身份信息的部分操作權限。目前,區塊鏈技術的應用完全超出了金融領域,區塊鏈3.0提供的可設置共識和可編程智能合約使區塊鏈在其他領域應用成為可能。根據區塊鏈技術的去中心化思想,對身份認證系統的系統架構進行重新設計,讓區塊鏈網絡節點共同維護和管理身份信息,區塊鏈底層的樹型數據結構實現了操作信息的可追溯,保證了身份信息的安全可靠。P2P的網絡結構讓參與節點在網絡中擁有對等的地位,區塊鏈網絡中信息交換和數據驗證建立在平等公平的基礎上。區塊鏈提供的共識算法,讓參與節點共同驗證交易信息,可以有效地抵御網絡攻擊造成的信息惡意篡改。智能合約定義了對身份信息進行操作的函數,通過過程調用協議實現了交互界面和底層數據的實時交換。基于區塊鏈3.0架構的身份認證系統解決了中心化認證服務的產生的各種問題,但在系統的易用性、可移植性和運行效率上還需要攻關突破,可以采用封裝技術來將智能合約、合約虛擬機和客戶端統一分發安裝在節點計算機上,通過改進的共識算法來提高運行效率。

猜你喜歡
智能用戶信息
智能前沿
文苑(2018年23期)2018-12-14 01:06:06
智能前沿
文苑(2018年19期)2018-11-09 01:30:14
智能前沿
文苑(2018年17期)2018-11-09 01:29:26
智能前沿
文苑(2018年21期)2018-11-09 01:22:32
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
主站蜘蛛池模板: 成人精品午夜福利在线播放| 99999久久久久久亚洲| 在线视频亚洲色图| 精品一区二区无码av| 伊在人亚洲香蕉精品播放| 综合色在线| 亚洲综合久久成人AV| 欧洲熟妇精品视频| 无码专区国产精品第一页| 白丝美女办公室高潮喷水视频| 久久精品视频亚洲| 欧美成人精品高清在线下载| 日本一本正道综合久久dvd| 国产精品一老牛影视频| 国产日韩精品欧美一区喷| 成人自拍视频在线观看| 国产99久久亚洲综合精品西瓜tv| 国产h视频免费观看| 中文字幕一区二区人妻电影| 手机看片1024久久精品你懂的| 精品一区二区久久久久网站| 免费啪啪网址| 国产精品任我爽爆在线播放6080| 婷婷午夜天| 亚洲成人一区二区| 亚洲动漫h| 亚洲国产在一区二区三区| 亚洲国产成熟视频在线多多| 亚洲资源站av无码网址| 国产乱论视频| 久久久波多野结衣av一区二区| 97色婷婷成人综合在线观看| 日韩欧美中文在线| 久久综合九色综合97婷婷| 国产在线精品香蕉麻豆| AⅤ色综合久久天堂AV色综合| 98超碰在线观看| 婷婷伊人久久| 欧美精品一二三区| 国产91丝袜| 91在线国内在线播放老师| 黄色在线网| 亚洲AV电影不卡在线观看| 久久99国产乱子伦精品免| 欧美色图第一页| 国产精品短篇二区| 亚洲av无码人妻| 99久久精品久久久久久婷婷| 五月婷婷丁香色| 大香网伊人久久综合网2020| 欧洲日本亚洲中文字幕| 久久五月视频| 天天躁夜夜躁狠狠躁图片| 国产精品白浆无码流出在线看| 国产精品页| 欧美综合一区二区三区| 国内嫩模私拍精品视频| 国产香蕉在线视频| 国产精品福利尤物youwu| 凹凸精品免费精品视频| 免费人成在线观看成人片| 国产欧美日韩在线一区| 国产网站在线看| 欧美伦理一区| 亚洲AⅤ波多系列中文字幕| 久久久久久国产精品mv| 国产欧美日韩在线在线不卡视频| 999福利激情视频| 亚洲天堂视频在线观看| 国产午夜精品一区二区三区软件| 国产啪在线91| 亚洲欧美另类色图| 成人免费一级片| 狠狠色噜噜狠狠狠狠色综合久| 爱爱影院18禁免费| 一区二区三区毛片无码| 亚洲福利一区二区三区| 爱爱影院18禁免费| 在线观看国产精品一区| 99精品热视频这里只有精品7| 五月天久久综合| 欧美a在线|