接到需求要做一个链上支付,并且融合支付宝或微信支付功能的钱包类应用软件。仔细想了想并查询了很多钱包类产品的经济模型,得出业务形态:去中心化结合中心化的功能型钱包
竞品分析阶段:对标分析了很多的钱包类产品,其中不乏轻钱包、冷钱包、全节点钱包、硬件钱包等大类,但我在大类中锁定了小类
去中心化钱包【Web3钱包】
特点:信息数据都上链、不可篡改
产品:Metamask、Tokenporket、Imtoken、Bitekeep
Metamask核心功能特点:
通过一个钱包密码、一套助记词在以太坊侧链网络上生成1个钱包,管理多个钱包地址,比如bsc、polygon等;能够进行链上转账、收款插件能够与第三方Web3应用绑定关联私钥签名
Tokenporket核心功能特点:
支持单链网络创建单链钱包,一个钱包一套助记词一个钱包密码能够进行链上转账、收款;能够批量转账资产归集 { 将同一个网络下的其他多个钱包资产转移到另外一个钱包地址}货币兑换贷款/能量业务dapp应用
Imtoken核心功能特点:
创建单链钱包,一个钱包一套助记词一个钱包密码支持链上交易转账、收款以太坊链上货币兑换dapp应用
Bitekeep核心功能特点:
创建多链钱包,一个钱包多个钱包地址一套助记词一个钱包密码支持链上交易转账、收款bitekeep中心化单链货币兑换、跨链货币兑换nft购买dapp应用
特点:信息数据私有,资产没有上链,资产存储在数据库中只是一串字符串
产品:火币交易所、币安交易所、Okex、Mexc、MatrixPort、Kikitrade
交易所核心功能特点:
应用内任意币种兑换、交易、订单薄管理单币理财、双币理财机器人交易等其他业务nft市场
MatrixPort核心功能特点:
lite版本和pro版本切换,web2充值理财业务结合web3钱包身份基金定活币投资借贷业务主要方向集中在中心化理财等业务方向
kikitrade核心功能特点:
同matrixport一样支持多种入金方式
社区web2.0的social业务币理财
无论是web3去中心化的钱包还是中心化钱包的业务形态,运营模式基本都在海外面,基于以上各产品的基本面分析,我们确定了初步的产品方案,做一款去海外运营版去中心化结合中心化业务的钱包
并确定v1.0.0版本核心功能点业务

提到去中心化,区别于web2.0时以账号为主导,即微信号、qq号、手机号、邮箱号、userid这类字符,web3.0是一串带有数字和字母的长串地址字符串,这个字符串地址即我们的钱包地址,也是我们的web3身份,它跟web2的账号体系无关,它是公有的,链上可查的。而我们的主体业务其实本质是web2.0+web3.0这样的一个形式,

所以成为平台有效用户有2种方式:web2账号注册 或 web2账号注册后创导web3身份
页面流程:
1. 注册——创建钱包身份——登录进首页
2. 注册——登录进首页
为体验性考虑,账号流程由原来的密码/手机号/邮箱方式 改成了 手机号注册形式,且功能设计了注册即登录的方案,减少用户交互环节

除开中心化交易所,货币兑换功能点在钱包里几乎都是在链上进行的,只要是在链上发起的交易都需要gas费用,但是我们的业务是需要在链下进行货币兑换,也就是传统的web2.0的数字交易,这是一个难点。在参考并体验分析了bitpie和matrixport以及bitekeep关于这个功能点的设计后,我的处理方案是web2账号注册成功的同时,数据库就给用户同步一个web3的身份虚拟地址,它跟设备绑定,也跟userid绑定。
web3钱包身份
钱包是由一套3倍数的至少12组不重复的英语单词组成的助记词生成一串42位或34位字符串,由助记词可以推导出私钥,私钥可以推导出公钥。资产通过助记词或私钥保管,且资产上链,所以一般手抄在纸本上。
创建钱包流程:创建助记词——备份助记词——设置钱包密码——选择主网络

创建钱包逻辑说明:
初次创建钱包:助记词+钱包密码 生成1个钱包,6条主网上6个钱包地址 其中 ethereum、heco、bsc、polygon钱包地址字符长度和字符串一样 42位, bitcoin和tron因其网络原因字符长度和字符串均不一样
初始的钱包助记词+密码管理的是初始化钱包
二次创建或导入的钱包是 助记词+钱包密码+手动选择主网,生成1个钱包, n条主网上n个钱包地址,1<n<6 n可以等于1,也可以等于6, 钱包密码的修改是自己创建/导入的这个钱包助记词/私钥找回
确定了产品形态后在成为平台用户后,收款业务也将拆分为web3公链上收款和平台内收款;
**a. 链上** 公链的收款通过哈希查询,资金来向是另外一个链上的钱包地址
**b. 链下** 平台内收款也可通过哈希查询,资金来向是平台内的另外一个web2用户或由web3身份的web2用户,而这个数据是存储于数据库,**本质是一条数据记录**,**资产的真正去向是平台,这跟交易所很相似**

划转业务也拆分为web3公链资产划进平台内 和 平台内资产划出到公链
**a. 划进** 公链的收款通过哈希查询,资金去向平台内,在用户层展示为一条数据
**b. 划出** 用户到虚拟资产划出到公链,本质其实是平台公链资产划出到第三方公链资产,交易发生在链上,**但需要后台审核**

识别地址长度及平台给到用户的虚拟地址判定规则

划转逻辑说明:
划转分划进、划出; 划进指用户的公链资产划进应用内成为HXG资产,即公对公对划进,消耗用户链上余额 划出指HXG资产划出刀用户公链帐户,即虚对公对划出 ,消耗用户HXG余额, 本质是公司公户垫付手续费
HXG资产里的HXG手续费是一个代称 1HXG=1USDT 实际上扣除的HXG手续费是等价的用户的币种数量的减少
划进 默认由首页网络下钱包地址、默认币种,用户可以自己更改选择钱包和币种
划出 用户需要手动输入钱包地址,且划出交易需要后台审核,在后台完成审核前(即将币发出进入公链区块确认流程)可以取消交易
划进划出都需要校验6位数字的密码
划出交易状态:已完成/已取消/失败/进行中;划进交易状态:已完成/进行中/失败
划出最小值需为交易总消耗的2倍
转账也拆分为web3公链资产转账、web2平台内资产转账
a.链上 公链的转账通过哈希查询,资金来取向都是在公链,用户必须持有web3钱包身份,交易消耗用户自己承担
b.平台内 web2用户间的资产转账,是发生在链下的,交易消耗为0,用户必须注册成为平台用户

识别地址长度及平台给到用户的虚拟地址判定规则

转账手续费说明:
公对公,即公链转公链「用户钱包资产未全部划转到app,尚有余额」, 手续费从用户公链钱包余额扣除;
公对虚,即公链转虚拟地址,本质是公链转公司公户,手续费从用户公链钱包余额扣除;
虚对虚,即HXG账户之间的互转,本质是后台的一条数据库记录标记,手续费从用户的HXG账户余额扣除, 标记为HXG,1HXG=1USDT,暂时虚对虚的交易手续费位0HXG
虚对公,即虚拟地址转公链,本质是公司公户转出,需要后台审核,手续费本质是公司公户垫付,但展现形式上从用户的 HXG账户余额扣除,标记为HXG,1HXG=1USDT,并且在后台记录,当用户提币的时候扣除平台垫付的这部分手续费;
货币兑换目前只做应用内的货币兑换,其本质是用户的虚拟资产数据币种变化,平台设定消耗0手续费,一个兑换业务实际上只是一条数据变更,数据库记录这条数据,不影响用户的提现,用户提现的时候 ,可提币种及数量经后台审核从平台公户划出

兑换逻辑:
货币兑换功能必须是已登录用户
货币兑换为HXG应用内的链下交易,本质是数据库的一条数据记录,但需要按即时时间汇率换算
提现本质是资金出去,本质是用户公链资产转出到第三方,通过哈希查询

提现说明:
提现为公对公的交易,消耗手续费扣除用户链上余额
提现地址与钱包地址网络需对应
提现不需要审核
a. 为了保证数字资产交易准确性,接入行情功能
b. 为保证数字资产安全性,接入谷歌验证器功能


至此v1.0.0核心功能点基本设计完毕,当然这个版本还有生物登录、生物支付、单点登录等体验性设计未作铺陈,后期迭代会融合一些新的业务。
提醒web3世界里保管好助记词即保管资产,尽量做到私钥不触网。
