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

網絡共識區塊鏈模型構建與實現

2022-03-15 13:45:20劉敏娜
電子設計工程 2022年5期

劉敏娜,尹 成,張 偉

(1.咸陽師范學院,陜西 咸陽 712000;2.微軟-清華大學聯合實驗室,北京 100000)

互聯網上瀏覽網頁使用的是WWW 服務協議。WWW 協議普遍應用基于B/S 架構的網絡模型。在B/S 服務架構中,服務器作為中心節點,為網絡中的其他節點提供數據訪問服務,瀏覽器請求數據服務[1]。B/S 架構建立在對中心服務器絕對信任的前提下,一旦失去信任,信息交換不再成立。同時,B/S 架構還存在對中心服務器依賴過大、服務器數據容易被竊取、數據無法追溯到原始狀態等問題[2]。

區塊鏈采用點對點(P2P)的去中心化的分布式存儲結構。區塊鏈的創造者中本聰提出“區塊鏈中,節點按照既定的運算規則來計算哈希值,由獲勝節點主張上鏈數據,其他節點對上鏈數據進行投票,同時將激勵機制應用到共識上[3]”。區塊鏈上沒有中心節點,節點之間不需要建立信任,通過共識達成規則,從而達成信任。引入區塊鏈技術,可以有效地解決B/S 架構中對服務器的依賴而產生的數據安全性問題。

文中提出在互聯網的分布式環境中,基于區塊鏈技術實現多個節點共識挖礦,存儲交易數據的方案。方案根據交易數據的特點,設計了區塊數據結構,利用區塊鏈的哈希算法對交易數據進行加密,利用共識算法解決記賬權的問題,利用最長鏈比較算法設計節點數據同步規則。

1 相關知識

1.1 B/S架構

B/S 是WWW 協議最主要的一種網絡結構模型。B 代表Browser 瀏覽器,S 表示Server 服務器[4]。系統功能的核心部分集中在服務器端,用戶通過瀏覽器訪問互聯網上的信息,服務器解析并處理用戶請求。當需要提供數據訪問服務時,服務器獲取數據庫服務器中的數據,并將數據經過動態拼湊后顯示在客戶端瀏覽器中,這種架構簡化了系統的開發、維護和使用[5]。B/S 架構如圖1 所示。

圖1 B/S架構

B/S 架構存在以下問題:

1)對中心服務器依賴過大,一旦出現網絡問題導致擁塞,無法繼續為客戶端提供服務[3];

2)如果中心服務器遭遇惡意攻擊,則服務器數據容易被竊取;

3)服務器中存儲的數據沒有狀態,一旦數據被修改,則無法追溯到原始狀態。

1.2 區塊鏈技術

區塊鏈(Block Chain)是比特幣應用的底層技術,使用區塊鏈技術能獨立完成價值轉移,包括數字貨幣、交易、資產等轉移,而且整個過程不依賴于中心機構[6]。

區塊鏈具有如下特點:

1)系統中不存在自上而下的中心化管理,分布式節點之間通過競爭博弈的方式實現自組織和自適應;

2)采用基于共識的數據更新機制。新生成的區塊必須獲得大多數節點驗證通過之后,才可以寫入節點的共享賬本中,因此數據難篡改和偽造[7]。

1.2.1 區塊鏈的核心概念

1)區塊

區塊是區塊鏈的基本元素,比特幣中區塊以文件形式存儲,以太坊中以數據庫形式存儲[8]。區塊由區塊頭和區塊體組成。區塊頭中封裝了前一個區塊的哈希值、當前區塊共識的解隨機數、時間戳等信息[9]。區塊體中包括當前區塊的交易數量以及經過驗證的區塊創建過程中生成的所有交易記錄。

2)節點

網絡中所有交易數據都記錄在節點服務器里[10]。節點分為輕節點和全節點。全節點擁有全網的區塊鏈結構,其中包括所有的交易數據,輕節點只擁有和自己相關的交易數據。

3)共識機制

區塊鏈中沒有中心化節點,因此在交易數據傳輸、價值轉移時,通過共識機制解決交易在所有記賬節點上的一致性和正確性問題[11]。共識機制是區塊鏈的核心組成部分,是保障區塊鏈系統能長久運行的關鍵機制。共識算法有工作量證明POW、權益證明POS、委托權益證明DPOS。

工作量證明POW 算法要求證明方在使用服務或資源之前完成一定難度的復雜運算,且這種工作量很容易被驗證方核實。權益證明POS 是具有最高權益的節點最有可能獲得記賬權,其權益體現為節點對特定數量貨幣的所有權。委托權益證明DPOS 是通過共識節點的權益投票將記賬權賦予特定的節點,從而實現公平和民主的共識過程和區塊鏈治理。

區塊鏈共識算法使用最多的是POW。文中使用POW 共識算法,以便使最快計算出符合要求的隨機數的節點具有記賬權。

1.2.2 點對點模式

點對點模式中每個節點的地位是對等的。網絡中的節點可以自由地加入和退出,網絡中所有節點都具有存儲和轉發功能,可以提高通信效率[13];單個節點的故障不會影響整體系統,可以提高網絡的健壯性;同時網絡的擴展性強,有利于網絡負載均衡[14]。

1.2.3 區塊鏈運行流程

1)源節點創建交易,驗證目的節點地址,對交易簽名加密,將交易廣播至網絡上的其他節點。

2)網絡上節點接收交易,判斷交易數據來源是否正確。全網大多數節點驗證通過之后,節點將交易信息保存在交易池中。

3)節點爭奪記賬權,擁有記賬權的節點將交易數據打包到本地區塊中。全網共識驗證之后,獲勝節點將新區塊追加到主鏈。

4)交易在主鏈上被后續區塊確認。

5)不同節點之間根據最長鏈原則,定期同步區塊鏈數據。

方案是基于該區塊鏈運行流程設計的,方案中包括新節點加入、新交易創建、新區塊生成、區塊上鏈、節點間同步數據等環節。

2 網絡共識區塊鏈模型

2.1 方案架構

為了簡化模型,網絡中包括3 個具備獨立記賬能力的全節點,如圖2 所示。全節點上保存不同長度的區塊鏈,節點同步時選擇區塊鏈長度值最大的區塊進行拷貝操作。目前網絡中節點2 的區塊鏈高度值最大,因此節點1 和3 將區塊鏈2 的數據拷貝,更新自身區塊鏈。

圖2 多節點區塊鏈模型

2.2 方案核心要素

2.2.1 區塊數據結構

區塊中包括索引、時間戳、交易記錄、工作量證明、前一塊哈希值等屬性[15]。區塊結構如圖3 所示。索引是在當前區塊鏈高度基礎上增加1,也可用來表示區塊鏈的高度。時間戳得到的是區塊數據寫入的時間,交易記錄中保存的是交易池中按照優先級別排序的交易列表。工作量證明用來設置爭奪記賬權的計算難度。前一區塊的哈希值用來將當前區塊與前一區塊相連。

圖3 區塊結構

2.2.2 共識算法

將當前區塊的難度值(可變的數值,從1 開始取值)和前一個區塊的難度值相乘,取得二進制編碼,將二進制值進行哈希運算。當哈希運算結果中后四位取值為“0000”時,認為解題成功,取得記賬權。網絡中其他節點收到解題的結果之后,進行工作量校驗,檢查節點是否具有記賬權。

3 方案實現

方案包括交易數據上鏈和節點數據同步。交易數據上鏈由發起交易的節點創建新的交易,將交易存在交易池中,等待具有記賬權的節點將交易打包至區塊鏈;數據同步需要獲取全網中所有節點的區塊鏈高度,計算最大高度,使用高度最大的區塊鏈數據同步其他節點區塊鏈。

3.1 交易數據上鏈

交易數據上鏈產生新交易,將交易打包到區塊。

1)抓取網絡傳輸的交易,驗證信息中是否包含“sender”,“recipient”和“amount”,如果不包含,則提示數據不完整,返回400 錯誤。

2)讀取網絡上的交易發送方、接收方和金額數據,創建新交易。

3)對交易數據進行哈希運算,隨后寫入區塊中。交易數據添加之后清空交易列表。

區塊表示如下。

4)將交易添加成功的信息寫在網絡響應response 對象上,并返回給客戶端。

3.2 節點間區塊鏈同步

1)遍歷網絡中的所有節點self.nodes;

2)獲取當前的區塊鏈長度len(self.chain);

3)依次訪問網絡中的所有節點,取出節點的區塊鏈長度,判斷區塊鏈長度是否小于當前節點的長度,為真則更新區塊鏈。

代碼如下:

4 仿真結果及分析

方案在Windows 環境實施,采用Python 語言編寫仿真實驗程序,使用flask 框架搭建Web 模型,模擬3 個節點的共識操作。實驗中因為有post 請求,因此需要傳遞一定的參數,使用Postman 進行Web API&HTTP 請求調試[16]。實驗分別模擬新節點入網、新交易創建、交易保存至區塊、區塊上鏈及節點數據同步等操作。

實驗中部署了3 個區塊鏈節點,端口號分別為5000、5002 和5004。這3 個節點都參與記賬權爭奪操作。表1 為這3 個節點在60 min 內的在線情況。

表1 節點的可用性測試

4.1 新節點入網測試

在Postman 中創建post 請求,請求url 為http://127.0.0.1:5000/new_node,在body 中輸入參數{"nodes":["http://127.0.0.1:5002"]},返回提示信息:

網絡節點添加成功。

4.2 新交易生成測試

創建post 請求,請求url 為http://127.0.0.1:5002/new_trainsactions,在body 中輸入參數:

返回提示信息:

目前節點2 上已經生成了5 個區塊,新產生的交易放入交易池,并隨著第6 個區塊的生成而被寫入其中。

4.3 節點同步測試

Pycharm中啟動flask服務器,運行http://127.0.0.1:5000/mine 進行記賬權爭奪。運行一段時間之后,網絡上3 個節點擁有的區塊鏈情況如表2 所示。目前節點2 上的區塊鏈高度最大,擁有6 個區塊。

表2 網絡節點區塊及交易情況

當發送http://127.0.0.1:5000/node_refresh 請求時,網絡上的3 個節點進行數據同步,3 個節點的區塊鏈數據完全一致,如表3 所示。

表3 同步操作之后網絡節點區塊及交易情況

5 結束語

為了解決B/S 架構中對中心服務器過于依賴的問題,文中設計了一種真實網絡環境下的共識區塊鏈方案。方案利用flask 框架模擬了3 個網絡節點,包括新節點加入網絡、交易的生成和加密、新區塊生成、共識算法驗證、節點數據同步。在節點數據同步中根據最長區塊鏈來更新網絡節點數據。

實驗仿真表明,方案能實現交易數據上鏈,實現多個節點數據同步。因為基于區塊鏈技術,所以交易數據不可篡改、不可否認。產生的交易放入交易池,隨著第6 個區塊的生成而被寫入其中。

主站蜘蛛池模板: 四虎精品黑人视频| 亚洲精品国产综合99久久夜夜嗨| 国产精品无码翘臀在线看纯欲| 激情综合婷婷丁香五月尤物| 九色视频线上播放| 欧美人与性动交a欧美精品| 美女国产在线| 最近最新中文字幕免费的一页| 国产91九色在线播放| 成人蜜桃网| 好久久免费视频高清| 欧美另类视频一区二区三区| 国产日本一区二区三区| 欲色天天综合网| 真实国产乱子伦高清| 日韩 欧美 小说 综合网 另类| 国产一级裸网站| 91免费片| 一级毛片免费观看久| 成人午夜视频免费看欧美| 久久黄色免费电影| 国产一区二区三区在线无码| 凹凸国产熟女精品视频| 伊人成人在线| 女人18一级毛片免费观看| 中文字幕人成人乱码亚洲电影| 美女毛片在线| 久久久久青草线综合超碰| 97一区二区在线播放| 亚洲天堂网在线视频| 国产成人精品日本亚洲| 99精品福利视频| 欧美一级黄色影院| 香蕉久人久人青草青草| 影音先锋亚洲无码| 婷婷丁香色| 伊人国产无码高清视频| 精品国产aⅴ一区二区三区| A级毛片无码久久精品免费| 香蕉在线视频网站| 狼友av永久网站免费观看| 露脸真实国语乱在线观看| 日本高清免费不卡视频| 亚洲国产精品VA在线看黑人| 日韩精品一区二区三区大桥未久| 久久精品只有这里有| 97se亚洲综合在线韩国专区福利| 成年免费在线观看| 在线日韩日本国产亚洲| 蜜芽一区二区国产精品| 国产亚洲精品自在久久不卡 | 欧美伦理一区| 成人字幕网视频在线观看| 青青操视频免费观看| WWW丫丫国产成人精品| 久久男人资源站| 日a本亚洲中文在线观看| 国产18在线播放| а∨天堂一区中文字幕| 在线观看国产小视频| 91午夜福利在线观看| 欧美一级片在线| 中文字幕欧美成人免费| 亚洲国产精品一区二区高清无码久久 | 国精品91人妻无码一区二区三区| 国产精品大尺度尺度视频| 99久久无色码中文字幕| 99热精品久久| 国产电话自拍伊人| 国产高清不卡| 日本人妻丰满熟妇区| 亚洲日韩第九十九页| 色妞www精品视频一级下载| 91小视频在线观看免费版高清| 亚洲国产成人精品一二区| AV熟女乱| 99视频有精品视频免费观看| 美女国产在线| 国产手机在线ΑⅤ片无码观看| 欧美成人看片一区二区三区| 夜夜拍夜夜爽| 精品人妻一区无码视频|