# Web3钱包产品方案设计

By [Beauty](https://paragraph.com/@beauty-2) · 2022-09-21

---

接到需求要做一个链上支付，并且融合支付宝或微信支付功能的钱包类应用软件。仔细想了想并查询了很多钱包类产品的经济模型，得出业务形态：去中心化结合中心化的功能型钱包

竞品分析阶段：对标分析了很多的钱包类产品，其中不乏轻钱包、冷钱包、全节点钱包、硬件钱包等大类，但我在大类中锁定了小类

> ### 去中心化钱包
> 
> ### 中心化钱包
> 
> ### 去中心化+中心化钱包

**去中心化钱包【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版本核心功能点业务**

> ### 链上交易
> 
> ### 链上/应用内货币兑换
> 
> ### 应用内用户间的交易
> 
> ### 提现业务

![核心业务流](https://storage.googleapis.com/papyrus_images/519bb91d4666615a7514bf34df9ecf13599accd55711c7d0723e41f7ea7b8bed.png)

核心业务流

1\. 成为平台用户
----------

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

![web2账号和web3身份](https://storage.googleapis.com/papyrus_images/5797a91fac67c3404cdf9dd3f14069cdd958a3dd23796ad3797bd7e213649f91.jpg)

web2账号和web3身份

所以成为平台有效用户有2种方式：**web2账号注册 或 web2账号注册后创导web3身份**

页面流程:

**1\. 注册——创建钱包身份——登录进首页**

**2\. 注册——登录进首页**

为体验性考虑，账号流程由原来的密码/手机号/邮箱方式 改成了 手机号注册形式，且功能设计了**注册即登录的方案**，减少用户交互环节

![注册界面流](https://storage.googleapis.com/papyrus_images/5819bbf575e6fea5cc8475e2900f505277c99bf1169e2de54171ca94e908ef2c.png)

注册界面流

除开中心化交易所，货币兑换功能点在钱包里几乎都是在链上进行的，只要是在链上发起的交易都需要gas费用，但是我们的业务是需要在**链下进行货币兑换**，也就是传统的web2.0的数字交易，**这是一个难点**。在参考并体验分析了bitpie和matrixport以及bitekeep关于这个功能点的设计后，**我的处理方案是web2账号注册成功的同时，数据库就给用户同步一个web3的身份虚拟地址，它跟设备绑定，也跟userid绑定。**

**web3钱包身份**

钱包是由一套3倍数的至少**12组不重复的英语单词组成的助记词**生成一串42位或34位字符串，**由助记词可以推导出私钥，私钥可以推导出公钥**。资产通过助记词或私钥保管，且资产上链，所以一般手抄在纸本上。

**创建钱包流程：创建助记词——备份助记词——设置钱包密码——选择主网络**

![创建钱包界面流](https://storage.googleapis.com/papyrus_images/92026cfebb873b24e5db9721d11dc624fc297421a7c107434a8b277b4aa48d5a.png)

创建钱包界面流

**创建钱包逻辑说明：**

1.  初次创建钱包：助记词+钱包密码 生成1个钱包，6条主网上6个钱包地址 其中 ethereum、heco、bsc、polygon钱包地址字符长度和字符串一样 42位， bitcoin和tron因其网络原因字符长度和字符串均不一样
    
2.  初始的钱包助记词+密码管理的是初始化钱包
    
3.  二次创建或导入的钱包是 助记词+钱包密码+手动选择主网，生成1个钱包， n条主网上n个钱包地址，1<n<6 n可以等于1，也可以等于6， 钱包密码的修改是自己创建/导入的这个钱包助记词/私钥找回
    

2.资金进出向
-------

2\. 1 收款业务
----------

确定了产品形态后在成为平台用户后，收款业务也将拆分为web3公链上收款和平台内收款；

      **a. 链上**  公链的收款通过哈希查询，资金来向是另外一个链上的钱包地址
    
      **b. 链下**  平台内收款也可通过哈希查询，资金来向是平台内的另外一个web2用户或由web3身份的web2用户，而这个数据是存储于数据库，**本质是一条数据记录**，**资产的真正去向是平台，这跟交易所很相似**
    

![收款界面](https://storage.googleapis.com/papyrus_images/4b8923f926b548b11384776fb572c69a5a18d22d24e376efc09aea34307ae47a.png)

收款界面

2\. 2 划转业务
----------

划转业务也拆分为web3公链**资产划进平台内** 和 平台内**资产划出到公链**

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

![资产划进界面流](https://storage.googleapis.com/papyrus_images/ba78b14fb37ba951d959d1436c27909f5e25a78ceeb914f2796c1d5ea0e675b9.png)

资产划进界面流

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

![资产划出界面流](https://storage.googleapis.com/papyrus_images/db2257b107884c2a71d15c025d0d443275793d2ac127789ab891dce9f58c9840.png)

资产划出界面流

划转逻辑说明：

1.  划转分划进、划出； 划进指用户的公链资产划进应用内成为HXG资产，即公对公对划进，消耗用户链上余额 划出指HXG资产划出刀用户公链帐户，即虚对公对划出 ，消耗用户HXG余额, 本质是公司公户垫付手续费
    
2.  HXG资产里的HXG手续费是一个代称 1HXG=1USDT 实际上扣除的HXG手续费是等价的用户的币种数量的减少
    
3.  划进 默认由首页网络下钱包地址、默认币种，用户可以自己更改选择钱包和币种
    
4.  划出 用户需要手动输入钱包地址，且划出交易需要后台审核，在**后台完成审核前**（即将币发出进入公链区块确认流程）可以取消交易
    
5.  划进划出都需要校验6位数字的密码
    
6.  划出交易状态：已完成/已取消/失败/进行中；划进交易状态：已完成/进行中/失败
    
7.  划出最小值需为交易总消耗的2倍
    

2\. 3 转账业务
----------

转账也拆分为web3公链资产转账、web2平台内资产转账

     a.链上    公链的转账通过哈希查询，资金来取向都是在公链，用户必须持有web3钱包身份，交易消耗用户自己承担
    
     b.平台内   web2用户间的资产转账，是发生在链下的，交易消耗为0，用户必须注册成为平台用户
    

![公链的转账界面流](https://storage.googleapis.com/papyrus_images/d9307c7ab0227b36e110981939dddff7f60b5cc7c6ffaabb20f97425f065cf15.png)

公链的转账界面流

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

![平台内的转账界面流](https://storage.googleapis.com/papyrus_images/8dccdbf9fb98f88493c22cfcbcaf38d75cab68ec7981d36430f290cb3af33d84.png)

平台内的转账界面流

**转账手续费说明：**

1.  公对公，即公链转公链「用户钱包资产未全部划转到app，尚有余额」， 手续费从用户公链钱包余额扣除；
    
2.  公对虚，即公链转虚拟地址，本质是公链转公司公户，手续费从用户公链钱包余额扣除；
    
3.  虚对虚，即HXG账户之间的互转，本质是后台的一条数据库记录标记，手续费从用户的HXG账户余额扣除， 标记为HXG，1HXG=1USDT，暂时虚对虚的交易手续费位0HXG
    
4.  虚对公，即虚拟地址转公链，本质是公司公户转出，需要后台审核，手续费本质是公司公户垫付，但展现形式上从用户的 HXG账户余额扣除，标记为HXG，1HXG=1USDT，并且在后台记录，当用户提币的时候扣除平台垫付的这部分手续费；
    

2\. 3 货币兑换业务
------------

货币兑换目前只做应用内的货币兑换，其本质是用户的虚拟资产数据币种变化，平台设定消耗0手续费，一个兑换业务实际上只是一条数据变更，数据库记录这条数据，不影响用户的提现，用户提现的时候 ，可提币种及数量经后台审核从平台公户划出

![货币兑换界面流](https://storage.googleapis.com/papyrus_images/4bfe0f8d3b012b53bf77c4f6c4ac66ce8ed73aca6023db95d0f535a4776a4f88.png)

货币兑换界面流

**兑换逻辑：**

1.  货币兑换功能必须是已登录用户
    
2.  货币兑换为HXG应用内的链下交易，本质是数据库的一条数据记录，但需要按即时时间汇率换算
    

2\. 4 提现业务
----------

提现本质是资金出去，本质是用户公链资产转出到第三方，通过哈希查询

![提现界面流](https://storage.googleapis.com/papyrus_images/e71d75f3537578cea486232cf1b9a78c3d0f00c5a585af913aaff26e6a35ae6d.png)

提现界面流

**提现说明：**

1.  提现为公对公的交易，消耗手续费扣除用户链上余额
    
2.  提现地址与钱包地址网络需对应
    
3.  提现不需要审核
    

3\. 其他业务
--------

a. 为了保证数字资产交易准确性，接入行情功能

b. 为保证数字资产安全性，接入谷歌验证器功能

![行情界面流](https://storage.googleapis.com/papyrus_images/fcd546796cc4a52f9ea56e909c53c766b8303552224995977d201aabe25c3ccf.png)

行情界面流

![谷歌验证界面流](https://storage.googleapis.com/papyrus_images/eee03434a9a13c98315343179b548de552c14cec5cd94848ede57fa072380e52.png)

谷歌验证界面流

至此v1.0.0核心功能点基本设计完毕，当然这个版本还有生物登录、生物支付、单点登录等体验性设计未作铺陈，后期迭代会融合一些新的业务。

提醒web3世界里保管好助记词即保管资产，尽量做到私钥不触网。

---

*Originally published on [Beauty](https://paragraph.com/@beauty-2/web3)*
