匿名计算链钱包为匿名计算链的一个子项目,服务于用户,用于安全计算过程和匿名交易。钱包每个用户单独使用,无中心化的网络服务器参与,完成用户使用匿名计算链的基本功能。
钱包包括一个初始化模块和四个功能模块,其中购币交易和转账交易是钱包的核心功能模块。
- 初始化
- 购币交易(兑换积分)
- 转账交易
- 收款
- 财务显示
本项目的开发文档均在 ./doc 目录中,请根据每个人的开发进度编写文档。
初始化模块提供两个功能:新建钱包和加载钱包
-
新建钱包:指定一个本地路径持久化保存钱包,同时加载、进行数据读写。
-
加载钱包:制定一个本地路径加载已有钱包,进行数据读写。(支持导入单个数据文件,用于存储用户的公私钥文件)
购币交易的场景主要由钱包后端和交易所服务器的接口交互实现。收到用户的购币请求后,前端将用户公钥和购币金额参数传给钱包后端,调用交易所服务器的接口,若交易所判断该用户合法,就在监管者注册验证,生成本地交易的承诺和随机数的密文,即购币的交易记录。
转账交易的场景发生在钱包后端和RPC-API的接口交互实现。前端将发送方的用户公钥、接收方的用户公钥,转账金额和找零金额,本次交易的承诺及承诺的随机数传给钱包后端,然后发起转账请求,生成转账交易记录,返回给前端。
-
接收者接收转账交易:用户填写交易的哈希、交易的接收者的公钥,用哈希拿取交易,用接收者私钥解密,获取其中的转账金额,存到自己的钱包里。
-
发送者拿到找零金额:用户填写交易的哈希,系统上链中找交易哈希是否存在,如果存在,和用户钱包转账交易记录比对,如果有相同交易哈希,则判定转账交易已经上链。钱包拿取转账交易记录,删去用户花费的承诺,新存取找零金额到自己的钱包里。
当购币、转账、收款各自所在的流程中结束时,分别返回各自的交易结果界面,然后在交易结果界面设置一个跳转到钱包财务结果按钮(由用户自行决定跳转),后端将当前用户的钱包内财务数据加载到前端界面可视化。
- 本钱包采用中心化方案,私钥及财产数据都保存在平台方。
- 交易结果是每一个子功能模块的结束部分,用户可根据自己的选择跳转到财务结果显示界面。
- 购币即是兑换积分,文档中二者概念等同,一般情况多指购币。
- 业界的区块链钱包保存用户的地址,由于匿名计算链并不具有地址,而是使用一条财产数据来替代(财产数据格式:随机数+公钥)。