做了一些关于数字货币钱包的调研,分享出来,希望大家多多批评指正。
【钱包分类】
从三个不同的维度,对现有的数字货币钱包进行分类。
1. 按照交易的方式区分,可以分为链上和链下,即ON/OFF chain
onchain的钱包,私钥一般需要自己保管,钱包发出的交易需要在全网广播确认,交易信息会被写进区块。
offchain的钱包,属于中心化钱包,私钥存在中心化机构。类似于支付宝账户,接触较多的是交易所钱包,需要交易所背书。
2. 按照私钥的存储方式区分,可以分为冷钱包和热钱包
冷钱包即私钥存储的位置无法被网络访问,热钱包则可以。我们通常听到的硬件钱包,一般都是冷钱包,私钥存在一个不触网的设备中。我们用的比较多的一些软件钱包属于热钱包,如imtoken、kcash,这些钱包是触网的。
当然并非硬件钱包就是冷钱包,软件钱包就是热钱包,还是要看私钥存储是否能被网络访问,后面也会提到软件钱包的冷钱包方案。
3. 按照数据维护的方式区分,可以分为全节点钱包、轻钱包、中心化钱包
全节点钱包符合最原始的区块链节点的定义,会保存所有的区块数据,是分布式账本的一部分,最有名的如bitcoincore。轻钱包则只会保存自己相关的数据,不会保存与自己无关的交易信息,我们正常使用的软件钱包一般都是轻钱包。中心化的钱包需要依赖运行钱包的中心化机构,所有的交易信息是中心化保存的,类似于我们使用的支付宝钱包,用户处于应用端,有一个中心化的服务端来处理记录请求。
【产品调研】
调研了几款钱包产品:
ledger,知名度最高的冷钱包产品
trezor,最古老的钱包品牌之一
库神,知名国产冷钱包
碧盾,国产冷钱包新贵
imtoken,全球最大的以太坊轻钱包
kcash,我个人比较看好的轻钱包
copay,第一款多重签名轻钱包
breadwallet,去中心化钱包
*冷钱包
形态描述:一般冷钱包都会有一个特制的硬件设备,配合以手机/电脑使用的软件。硬件设备可能带有一个屏幕或者按钮,用户查看信息并进行操作,最终的交易签名都需要硬件设备授权;软件主要目的为用户提供便捷性,支持实时查看资产及便捷的转账。
硬件设备:硬件设备一般包含交互(屏幕、按钮)、安全芯片、对外接口等模块组成。市面上主流的品牌在私钥存储都使用了安全芯片,但其中的细节考虑有所不同。
软件支持:软件主要提供查看钱包余额、交易记录及发起转账收款等功能。宗旨是便于用户使用。部分产品创建钱包也通过硬件连接PC/手机在软件端进行交互。
优点:1.冷钱包主打的私钥安全性,因为私钥不触网;2.通过软硬件交互的不断优化提高易用性;3.支持助记词恢复备份;
冷钱包的安全方案:
1. 冷热分离的方案。硬件钱包构建交易并进行签名,软件用作查看发起交易,联网广播交易。这种方案在兼顾使用便捷性同时,保证私钥不触网。
2. 关于通信方式。市面上主流的冷钱包,硬件与软件的通信方式基本为近场电磁波或usb接口,库神采用了二维码的通信方式。理论上来说,电磁波和usb这两种通信方式均有一定可能被黑客截取,二维码通信的方式则必须要黑客近距离内拍到才行,个人认为相对安全。
3. 一般黑客攻击硬件钱包主要通过两种方式。一种是通过伪造交易流程或者对硬件系统进行篡改,诱骗私钥签名促成交易,这种情况下如果私钥存储和流程控制都在安全芯片内会得以避免,否则只是私钥安全的话也会有一定风险。第二种是得到硬件钱包进行物理或非侵入攻击,一般硬件钱包的安全芯片都可以自毁以防止带电破解,也会抵御电子探测攻击。
4. 一些硬件钱包根据手机用户使用习惯,加入指纹/手势密码、解锁等方式,进一步加强安全性并更易用。
硬件钱包的关注点:
1. 安全性
2. 设备作为钱包的耐用度,如耐冷耐热、使用次数
3. support服务,为客户提供售后
4. 支持多Dapp
*轻钱包及中心化钱包
轻钱包和中心化钱包从软件出发,相较硬件钱包,更多注重于钱包的功能性。
轻钱包的优点:
1. 有些轻钱包如imtoken已经支持使用不联网的手机存储私钥,简易版的硬件钱包解决方案。
2. 轻钱包一般能够支持更多的币种
3. 交易流程更简单,操作方便
4. 能够降低数字货币使用门槛和管理负担
从优秀的轻钱包看未来个人钱包的方向:
1. 钱包与交易所的打通,支持币币、法币交换
2. 支持闪电网络支付,提高易用性
3. 提供身份认证,与dapp更好地无缝连接
4. 支持数字资产的发行,生成图灵完备的侧链
5. 连接数字货币与法币,连接银行与数字货币钱包
6. 支持多重签名、多步授权
7. 支持营销功能,如红包、返现等
8. 更好地解决公链上线映射问题
9. 提供丢币保障、资产增值、借贷等金融服务
*所谓冷热钱包趋势(个人观点)
冷钱包是目前市场硬件钱包公司所宣传的卖点,更多地其实聚焦在钱包的安全性比热钱包优越,并且在一步步地优化体验,追赶热钱包。而同时,个人轻钱包服务提供商出于服务用户多种多样的需求、降低用户使用门槛和成本而诞生,更多的精力放在了提升易用性、提升扩展性上面。但随着用户数字资产的增加,也必然会寻求更安全的解决方案,可预见的在未来也会采用冷热结合的方案。
我觉得最终这两方是殊途同归的,一个安全易用的钱包产品,需要一个绝对安全的私钥存储,也需要易用且能够便捷地连接相关生态应用。
但是有一点我比较困惑,我们(至少大多数年轻的国人)如今已经习惯了出门带手机,如果让他们使用硬件钱包和手机软件结合的方式,想一想几年前银行的网银和U盾。。。我觉得,很难。当然可以展开想象,以后的手机可能也不是现在的样子了,是不是能够将完全离线的存储功能与在线功能同时集于手机一身。
【B端用户】
注意到已经有一些钱包开始关注B端用户的需求,这里也谈一下。
可以预见的是,B端用户对于钱包这样一个产品,较之C端用户,有以下的特殊需求:
1. 首先,由于资金量庞大,交易量庞大,对于安全性和易用性都有非常高的要求。
2. B端用户需要比较详细易用的对账功能
3. B端用户对应的其实是多个C端用户,需要一钱包多地址解决方案
4. B端用户内部有较多的级别区分,所以钱包也许有有对应的权限分级,对交易时间、频率、资金量进行限制。同时需要分级交易授权确认,支持多重签名。
5. 第四点的实现,需要设定合理的风控及身份验证机制
6. 设置合理的数据监控模型,提供预警等功能
B端钱包的设计,主要针对以上几点进行。