区块链安全钱包设计实现

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总结

使用国家密码算法实现的区块链安全钱包,其运行在基于国密算法实现的区块链上,实现了钱包的主要功能。用户可以使用钱包在该区块链网络中互相进行交易、生成和管理自己的密钥,以及查看区块链账本。加密货币及区块链技术非常全面地挖掘了密码学技术的优点,大量使用了密码学的相关算法保证了一个去中心化网络的安全性,该钱包的实现使得国家商用密码算法应用于加密货币和区块链技术上成为可能。

原文地址:https://www.cnblogs.com/xieting/p/9641987.html