區塊鏈安全錢包設計實現


1.方案概述

設計並實現一款基於國密算法的區塊鏈安全錢包,首先使用國密算法完成基於國密算法的區塊鏈的設計和實現,然后完成工作在此區塊鏈上的區塊鏈安全錢包。基於國密算法SM2、SM3和SM4實現區塊鏈安全錢包最主要的功能,即密鑰生成、密鑰存儲、交易查詢和記賬分發。另外,我們提出使用門限秘密共享方案來保護錢包私鑰,實現了Shamir門限方案並集成到安全錢包中,為用戶私鑰多加一層保護措施。

2.功能介紹

使用國密算法實現錢包的基本功能,使用本地賬戶來管理用戶的私鑰。用戶需要注冊本地賬戶來使用本區塊鏈錢包,錢包構造Shamir的(2,3)秘密門限方案[20]通過用戶的私鑰為用戶生成3個秘密共享密鑰,其中一個密鑰將存儲在密鑰文件中,另外兩個密鑰交由用戶保管,在需要使用用戶私鑰的場合,錢包將要求用戶輸入他所持有的密鑰,通過Lagrange差值公式由兩個密鑰重構出用戶的私鑰。
錢包使用SM2算法[21]實現用戶密鑰對的生成,然后使用Shamir門限方案生成秘密共享密鑰,使用SM3密碼雜湊算法[22]通過用戶公鑰生成錢包地址,實現地址生成功能。SM4分組密碼算法[23]用於將用戶信息加密存儲在本地,實現密鑰存儲功能。獲得用戶的錢包地址后,即可與區塊鏈節點通信獲得區塊信息實現余額查詢以及賬單查詢的功能。發起交易時,使用SM2數字簽名算法對生成的交易進行簽名后提交給區塊鏈節點等待確認。

2.1 區塊鏈安全錢包總體設計方案

2.2 模塊功能和算法的調用過程

2.3 區塊鏈結構設計

2.4第三方工具庫bouncycastle實現SM2數字簽名算法

2.5從用戶公鑰生成用戶地址過程

2.6密鑰存儲於密鑰文件

2.7登錄存儲文件過程

3 區塊鏈錢包

3.1登錄檢測用戶是否存在

下面登錄檢測用戶是否存在:

3.2生成私鑰注冊賬戶


3.3輸入密鑰注冊用戶



3.4兩個賬戶擁有相同的私鑰


3.5余額查詢功能

3.6賬單查詢功能

3.7用戶發起交易

3.8交易上鏈后查詢余額以及賬單


4總結

使用國家密碼算法實現的區塊鏈安全錢包,其運行在基於國密算法實現的區塊鏈上,實現了錢包的主要功能。用戶可以使用錢包在該區塊鏈網絡中互相進行交易、生成和管理自己的密鑰,以及查看區塊鏈賬本。加密貨幣及區塊鏈技術非常全面地挖掘了密碼學技術的優點,大量使用了密碼學的相關算法保證了一個去中心化網絡的安全性,該錢包的實現使得國家商用密碼算法應用於加密貨幣和區塊鏈技術上成為可能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM