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

基于區塊鏈的投票系統的設計與實現

2020-09-10 07:22:44周華李嶒
佳木斯職業學院學報 2020年7期

周華 李嶒

摘 要:近年來,區塊鏈已成為一種新興的應用技術手段,其憑借去中心化、不可篡改、匿名性、安全可靠等特點,能夠有效保障數據信息安全,這也使其在公共領域具有巨大的應用價值。本文對區塊鏈技術進行了簡要的分析,并以在線投票系統為開發對象,利用以太坊技術,探析基于區塊鏈的投票系統的設計與實現。通過區塊鏈技術的運用,可實現匿名、安全投票,進而在有效避免欺詐行為的同時,也能使投票結果得以公開、透明。

關鍵詞:區塊鏈;投票系統;系統設計;智能合約

中圖分類號:TP309;TP311.13 文獻標識碼:A 文章編號:2095-9052(2020)07-0088-02

基金項目:2019年安徽高校自然科學研究項目“基于以太坊的身份認證系統研究與實現”階段性成果之一(KJ2019A1172)

在現有的貨幣體系中,比特幣是一個典型的成功案例,而比特幣之所以能夠取得成功,其關鍵在于其底層技術的區塊鏈,這也使人們對區塊鏈變得越來越重視。在數據庫技術方案中,通過區塊鏈可使其實現去信任化、去中心化。區塊鏈具備集體維護、不可篡改、匿名以及安全可靠等主要特點,通過對區塊鏈進行分類,以其參與方式來看,可將其劃分成三類:第一類是聯盟區塊鏈,第二類是公開區塊鏈,第三類是私有區塊鏈。對于聯盟區塊鏈來說,其規則是聯盟進行制定的,而且只有聯盟成員能夠參與到區塊鏈中。對于公開區塊鏈來說,能夠省略用戶的注冊與授權環節,使用戶能夠隨時訪問該區塊鏈。對于私有區塊鏈而言,其往往屬于私有組織的內部,通常是由私有組織自行建立的。區塊鏈技術的出現,能夠有效解決現有投票系統中存在的安全性較差問題,將其運用于投票系統的設計與實現中,這樣能夠使投票結果變得公開、透明的同時,還能有效防止信息篡改或欺詐行為的出現。

一、區塊鏈的技術分析

區塊鏈中的鏈式結構是區塊所組成的,在各個區塊中均是由其頭部與區塊體所組成。其中,上一區塊中的哈希散列被包含在下一區塊頭部之中,除了哈希散列以外,還具有相應的隨機數、Merkle樹根節點信息和時間戳信息,其中,隨機數屬于挖礦機制,該隨機數直接決定了節點對區塊記賬權的獲得方式。而在區塊中的區塊體部分,則能夠對交易數量及詳情進行記錄,其記錄方式為Merkle方式,從而確保各筆交易之間的完整性。以應用范圍來對區塊鏈進行分析,其架構中包括1.0、2.0與3.0的區塊鏈,數字貨幣采用比特幣來進行表示,即1.0區塊鏈,該區塊鏈的密碼學貨幣在應用領域上涉及轉賬、匯款等,并以虛擬貨幣的形式來實現,其靈活性較好,不過只能在部分場景中進行應用[1]。而2.0區塊鏈則是在1.0區塊的基礎逐漸形成的,其以智能合約為其核心概念,在市場中,區塊鏈相當于一個具備編程功能的信用基礎設施,并且其應用范圍足以對一個去中心化的市場進行支撐。而對于3.0區塊鏈而言,其已經超越了以往的經濟、貨幣及市場的一種應用形勢,通過該區塊鏈可對人力資產及物理資源進行高效分配,從而使各個行業的應用在3.0區塊鏈的支持下得到廣泛應用。在2.0區塊鏈中,智能合約相當于計算機協議,其與程序內的ifthen語句較為類似,在達到預定條件時,能夠對合約內的條款進行自動觸發執行,通過智能合約的部署,可具備自我驗證與執行功能,并且在此過程中不會受到人為干預的影響。在區塊鏈技術中,以太坊屬于一種圖靈完備且具有開放性的平臺,其通過以太坊腳本來提供豐富API,能夠對編程語言進行構建與發布應用,計算機用戶能通過該平臺來實現對所需智能合約的編寫。本文主要分析了通過以太坊技術的運用來實現對投票系統的設計。

二、基于區塊鏈的投票系統設計與實現

在基于區塊鏈的投票系統設計與實現中,通過Ubuntu 16.04.3 LTS系統來對相應的開發環境進行搭建,以此實現對以太坊平臺的運用。

(一)Node.js

在對網絡應用進行搭建時,為了使其更易于搭建,同時考慮到其響應速度與擴展性,本文采用Node.js來實現,Node.js是ChromeV8引警中的一種JavaScript運行環境,在對其進行安裝時,還要對npm,即開源庫進行自動安裝,以實現對開源庫中代碼的共享和復用。在安裝Node.js時,其主要包括兩種安裝方式,分別是通過apt命令來進行安裝和通過Github來對Node.js源碼進行下載編譯后進行安裝。本文主要是采用第二種方法來實現對Node.js的安裝。

(二)以太坊平臺

在以太坊技術平臺中,通過運行平臺中的DApp程序能夠支持ETH(以太幣),在以太坊平臺中具有兩個類型的網絡,分別是TestNet測試網絡與生產環境網絡,其中生產網絡能夠在網絡環境中對智能合約進行布署,所有人均可對網絡環境中的智能合約進行調用,不過作為調用的代價,則需對以太幣進行消耗。不過,該網絡的運行速度比較慢,在測試、開發過程中不適宜采用該網絡[2]。而對于TestNet測試網絡來說,其主要有Rinkeby與Ropsten等,在以太坊開發中將測試網作為其專門的網絡環境,在測試網絡中對智能合約進行執行同樣需要一定的以太幣,不過,相對于生產網絡來說,測試網絡中所消耗的以太幣是并不具備價值的,而且其和生產網絡一樣在運行速度上較慢,節點同步時間消耗較長。除了上述兩種網絡,還有一種是私有網絡,該私有網絡是通過以太坊客戶端來進行建立的,由于私有網絡中只有很少的節點,這使其有較快的運行速度,而對于用戶而言,也可根據實際需求來對以太坊平臺進行任意的創建和銷毀,從而使智能合約在開發與測試過程中變得更加便利。

在以太坊客戶端,其Geth的實現是采用Go語言來進行編寫的,當然也可通過C++語言來進行編寫,對于pyethereum則是采用python語言來進行編寫,ethereumj則是采用java語言來進行編寫。在以太坊中,更適宜采用Geth客戶端,Geth客戶端的應用范圍也是最廣的,通過Geth客戶端來對私有網絡進行生成,然后對以太幣進行快速獲取,通過dev命令能夠對開發者模式進行啟用,以便于對POA共識進行使用。在本地中部署以太坊私有網絡,而對智能合約的執行只能通過內部節點來實現。除了上述以太坊網絡的建立方法以外,還可對Ganache進行使用,其作為一種本地節點工具,能夠在區塊鏈中定制對應的智能合約,但其與Geth不同的是,其只是對以太坊環境進行本地模擬,在使用Ganache時會對10個測試賬戶進行自動化創建,并且這些測試賬戶均擁有100個以太幣。Ganache的工作模式包括命令行與圖形化兩種,其中可采用“sudo npm installg gangache cli”命令來安裝命令工具,而對于圖形化工具則可進行下載安裝。在開發測試過程中,Ganache的便捷性更好,因此在本文中便是采用Ganache工作模式來建立以太坊網絡的。

(三)Truffle

在以太坊中,Truffle作為以太坊網絡中用于對編程語言進行開發的一種框架,其包含了二進制管理、編譯智能合約等功能,通過Truffle能夠使DApp的部署、發布與測試變得更加方便。在對truffle進行安裝完畢后,便可生成項目文件,在此過程中需要對“truffle unbox Ballot”命令進行運行,以便于對項目的目錄結構進行創建。智能合約被存儲于contracts文件夾內,以便于更好地部署智能合約,并對比較特殊的智能合約進行跟蹤。在DApp前端頁面文件中則被存儲于src文件夾之中,在測試智能合約時所采用的用例則被存儲于test文件夾內[3]。

(四)智能合約

在編寫智能合約時,可借助于以太坊中的編程語言來實現,編程語言主要有四種,一種是Solidity,另一種是Serpent,還有兩種是LLL與Mutan,在本文中對投票系統的智能合約進行編寫時則是通過Solidity語言來實現的。在編寫智能合約完畢后,還要確保對程序代碼進行編譯,以便于支持太坊真擬機的運行。在編譯過程中,需要應用到“truffle compile”命令,在編譯完畢后可發現一個新出現的Build文件,通過對編譯后的智能合約在區塊鏈中進行布署,便可在Ganache中看到區塊鏈中的新增區塊[4]。

(五)頁面的交互性設計

用戶在對智能合約進行調用時需要應用到Web.js,對界面UI進行編寫,以便于用戶能夠和智能合約進行交互。在以太坊中,Web3.js相當于其所提供的Javascript庫,在Web3.js中能夠對JSON RPCAPI進行封裝,并且其所具備的Javascript對象及函數能夠實現用戶和區塊鏈之間的交互,例如,對網絡狀態進行查看、對交譯進行發送、對智能合約進行調用、對交易與區塊進行查看等,尤其是以API在智能合約交互中最為關鍵。在src文件夾下還包含有DApp應用的前端代碼。

三、基于區塊鏈投票系統的驗證

在運行以太坊平臺中的DApp應用時需要對以太幣進行消耗,因此其專門程序需要具備賬戶管理功能,以便于對以太幣進行轉賬和存儲。對于一般的瀏覽器而言,其自身是不具備錢包功能的,在對DApp應用進行運行時,可采用以太坊平臺中的Mist這一專用瀏鑒器,或是將Chrome瀏鑒器中對MetaMask插件進行安裝后來使用,該插件是以太坊中的錢包插件。在本文中應用第二種方法來進行賬戶管理,通過對npm run dev進行運行,便于用戶能夠通過Chrome瀏覽器在DApp應用上進行訪問與投票,經過驗證結果表明,將區塊鏈技術應用到投票系統的設計中,能夠有效確保投票結果的公正性和準確性,而且能夠有效防止投票結果被篡改。

四、結語

總而言之,我國目前對區塊鏈技術的應用尚處于初期階段,但其技術優勢卻是顯而易見的,將其應用到投票系統中,能夠更好地保障投票結果的權威性、公正性和準確性,并且有效避免了人為因素的干預,由此也說明,區塊鏈技術的應用潛力還有很大的挖掘空間。

參考文獻:

[1]黨京,孫弋.基于區塊鏈的電子投票系統關鍵技術的實現[J].軟件,2018,39(11):140-144.

[2]張昕偉,等.基于區塊鏈的電子投票選舉系統研究分析[J].電子技術應用,2017,43(11):132-135.

[3]馬昂,等.區塊鏈技術基礎及應用研究綜述[J].信息安全研究,2017,3(11):968-980.

[4]董友康,等.基于聯盟區塊鏈的董事會電子投票系統[J].網絡與信息安全學報,2017,3(12):17-23.

(責任編輯:林麗華)

主站蜘蛛池模板: 华人在线亚洲欧美精品| 亚洲精品免费网站| a级毛片免费在线观看| 欧美成人综合视频| 久久综合五月婷婷| 亚洲视频免费在线看| 国产凹凸一区在线观看视频| 免费jjzz在在线播放国产| 久久99久久无码毛片一区二区 | 亚洲AV无码乱码在线观看代蜜桃| 亚洲第一成网站| 青草国产在线视频| 亚洲成人福利网站| 中文字幕自拍偷拍| 啪啪免费视频一区二区| 国产成人1024精品| 国产精品黄色片| 3D动漫精品啪啪一区二区下载| 女人18毛片一级毛片在线| 亚洲欧美人成电影在线观看| 欧美精品成人一区二区视频一| 亚洲区一区| 青青草原国产av福利网站| 国产幂在线无码精品| 少妇人妻无码首页| 91丨九色丨首页在线播放| 亚洲国产系列| 五月天丁香婷婷综合久久| 毛片免费观看视频| 六月婷婷综合| 91热爆在线| 国产麻豆aⅴ精品无码| 亚洲中久无码永久在线观看软件 | 视频一区亚洲| 欧美性精品| 国产一区二区精品高清在线观看| 国产乱码精品一区二区三区中文| 日韩高清中文字幕| 国产在线精彩视频二区| 欧美高清三区| a在线亚洲男人的天堂试看| 伊人激情综合| 午夜毛片免费观看视频 | 亚洲天堂日本| 久无码久无码av无码| 日本高清免费不卡视频| 国产视频只有无码精品| 亚洲网综合| 亚欧成人无码AV在线播放| 欧美α片免费观看| 在线播放国产99re| 中文字幕一区二区人妻电影| 中文字幕在线欧美| 日本黄色不卡视频| 亚洲 欧美 日韩综合一区| 成年免费在线观看| 热久久国产| 网友自拍视频精品区| 精品国产香蕉伊思人在线| 欧洲高清无码在线| 国产剧情一区二区| 综1合AV在线播放| 91小视频版在线观看www| 激情影院内射美女| 亚洲视频二| 高清色本在线www| 亚洲黄色视频在线观看一区| 夜夜拍夜夜爽| 一级不卡毛片| 亚洲天堂成人在线观看| 啊嗯不日本网站| 中国精品久久| 亚洲区第一页| 91亚瑟视频| 秋霞一区二区三区| 无码AV高清毛片中国一级毛片 | 亚洲不卡影院| 国产精品无码在线看| 毛片免费高清免费| 亚洲中文字幕日产无码2021| 精品国产自在现线看久久| 久久a级片|