作者:ZIXUN / 来源:资讯
近期交易平台安全事件不断,让很多币圈用户感到担忧,不少人纷纷把币从交易平台提到钱包,但是对很多小白用户来说,对于钱包并不是很了解,钱包这么多,怎么选、怎么用?
今天我们就请到了Cobo金库负责人以及Cobo钱包资深产品经理为大家解答一下——对于小白用户来说怎么选择钱包?为了自己的数字货币安全,为什么每个人都需要一款钱包?
什么是钱包?
通俗地说,数字货币钱包类似于支付宝。支付宝处理的是你的人民币,钱包处理的是你的数字货币。
钱包的分类?
提到钱包的分类,就不得不说私钥这个概念。
私钥就相当于你的银行卡密码,控制了私钥就可以控制对应的数字货币。
然后,按照私钥保管方式的不同,钱包分两类——将私钥托管在云端第三方的云端钱包,以及用户自己保管私钥的钱包(又细分成HD钱包和硬件钱包)。
云端钱包的优势是:
1. 快速上手,手机号注册即可,然后不用操心私钥,私钥由云端第三方托管。
2. 转账迅速方便。
3. 方便购买数字货币增益产品。
4. 有风控体系,进一步帮助小白用户保护资产安全。
自己保管私钥的钱包——那就是不依赖任何第三方,自己保管自己的数字货币。自己保管的话相应风险也自己承担了。
你在刚才反复提到一个关键词——私钥。那私钥是什么呢?
私钥就相当于银行密码。但是光有银行密码是没法“收钱”的,还需要有“地址”。地址相当于银行卡账号。但是地址与银行卡账号最大的区别是,银行卡账号是银行派发给你的,但地址是从私钥派生出来的。地址与私钥一一对应,私钥可以推导出地址,但是地址无法推导出私钥。这里面的密码学算法具体不展开,钱包都会替你代劳。
银行卡账号一定是唯一的,为了避免两个人控制同一个账号。那数字货币的“地址”,怎么保证这个唯一性呢?
因为地址是从私钥派生而来的,所以地址的唯一性其实就是私钥的唯一性。这里的逻辑可能有一点反直觉。这里的逻辑是——因为私钥的可能性足够多。大概有 2 的 256 次方这么多,所以,只要你随机从里面选一把私钥,别人跟你选中同一把私钥的可能性为零。大家对 2 的 256 次方这个数字有多大可能没概念,这个数字约等于宇宙中所有原子的数量。所以你从一个茫茫大的池子里面随机选择一个私钥,那这个私钥跟别人重合的概率就是零了。
这里又引入了一个重要概念——随机。
这里私钥的池子是足够大了。但是你必须保证私钥生成的随机性,才能保证你与别人不会选择同一把私钥,或者你的私钥不会被黑客暴力测试一个个试出来。
前面讲了云端托管私钥的云端钱包,以及私钥的概念。如果我不信任任何第三方,想自己保管私钥,那又该怎么做呢?
前面提过了,自己保管私钥的话,一般有两种方案,一种是 HD 钱包,一种是硬件钱包。硬件钱包属于比较高阶的玩法了。我们先聊一下 HD 钱包。
用最简化的描述来解释的话其实很简单,HD 钱包最重要的功能就是帮你随机生成一把私钥,然后将这把私钥保存在手机本地的安全区,私钥不会被发送到任何第三方。然后在钱包内你就可以展示私钥生成的地址向别人收取数字货币了。你也可以把交易平台里面的数字货币转到 HD 钱包里面去。当你要转出一笔数字货币的时候,在 HD 钱包上输入了你要发送到的地址(可以扫码输入),然后输入要转出的金额。如果金额没有超过这个地址上的余额的话,HD 钱包就会用这个地址对应的私钥对交易进行“签名”。再把签名结果广播出去。
这里“签名”是一个密码学的概念,就是说通过密码学的算法,证明你拥有私钥,也就是拥有对应地址上的数字货币的支配权。
另外,很多人可能对 HD 这两个字母感到非常陌生,其实这两个字母代表了 HD 钱包除了生成私钥,保管私钥,私钥签名之外,一个非常重要的特性。就是“分层确定性”。英文是Hierarchical Deterministic。中英文都很拗口和不好理解,其实含义很简单。因为现在大家拥有的币种和每个币种下的地址都越来越多,如果一把私钥对应一个币种下的一个地址的话,那可能有些用户手里会有几十把甚至上百把私钥。这是很不利于私钥管理的。所以就有天才开发者提出了,其实可以用一把母私钥,按照约定的规则,生成子私钥。然后用这些子私钥还能分层,比方说儿子那一层就管不同币种,孙子那一层就管这个币种下不同的地址。这样就有了“分层确定”的概念。一把私钥就能管好多好多币种和地址啦!
好清晰!那我追问一个问题,自己管私钥,用手机里面的 HD 钱包管,那手机坏了咋办?私钥不就丢了?资产不就丢了?
好问题!所以这就引出了自己管私钥最重要的部分了!私钥你一定要备份!即使手机坏了,再下载一个 HD 钱包,就能用备份的私钥重新掌控你的资产了。
而且,因为所有 HD 钱包几乎都遵循同一套分层确定的规则,所以其实你换一个 HD 钱包,用同样的私钥导入,得到的结果都是一样一样的。
明白了!用 HD 钱包一定要备份私钥!可是前面说私钥的可能性约等于宇宙中原子的数量,那私钥肯定很多吧。私钥应该很长吧?
其实私钥备份的方法也有好多种,不一定是要把私钥完整的抄下来或者记录在哪里。在数字货币的早期,就有人想出一个办法——脑钱包。脑钱包的意思就是我用一句我能记住的话,比方说“I Love You”,这句话是可以通过密码学算法(也就是哈希),生成一个 256 位的字符串作为你的私钥。
但是!大家注意,前面讲到了“随机性”。私钥一定要随机才安全,但是这样的脑钱包,其实随机性是很差很差的,或者说随机性几乎是零。
举例来说,中本聪的英文名是“satoshi nakamoto”,用这个名字作为脑钱包的话,
私钥是
5K7EWwEuJu9wPi4q7HmWQ7xgv8GxZ2KqkFbjYMGvTCXmY22oCbr
对应的地址是
1Q7f2rL2irjpvsKVys5W2cmKJYss82rNCy
用区块链浏览器查看这个地址的转账记录:
www.blockchain.com/btc/address/1Q7f2rL2irjpvsKVys5W2cmKJYss82rNCy
你会看到:
大家注意,这里每次转入和转出几乎都是发生在同时。这其实是有黑客写了监控这个地址的自动程序,一旦有人用了这个脑钱包,并且一打钱进去,黑客的程序就会立即自动把钱转走。
所以再强调一下,随机性非常重要!一定要保证自己的私钥是随机生成的!
回到备份私钥这个话题。除了脑钱包这种不靠谱的方式之外,还有一种现在被广泛采用的备份方式叫做助记词备份。
同样的,也是在数字货币发展过程中,有一些天才程序员提出了助记词的概念。其实这个概念也不复杂,就是他们创建了一个 2048 个词的助记词表。私钥大家可以理解成一个很长的随机数,我们可以把这个随机数切分成几段,每一段相当于是一个对应助记词表中的一个词(准确地说对应的是词表中那个词的序号)。这样,大家就不用记忆长长的私钥了,可以用一组助记词来做记忆。这里助记词跟私钥之间其实是等价的。
同时,现在几乎市面上所有的 HD 钱包或者硬件钱包,你在钱包内都看不到你的私钥了,都是通过记录助记词的形式来做钱包的备份。
用过 HD 钱包的用户可能记得,创建 HD 钱包的时候钱包内会展示一系列的助记词然后叫你保存。如果手机出了问题,就另下载一个 HD 钱包,用助记词恢复出你的钱包。于是你又能控制你的资产了。
所以,这里强调今天的第二个重要概念——如果用 HD 钱包或者硬件钱包的话,一定要好好保管你的助记词!
第一个重要概念是——如果你是小白,就从一个云端钱包开始你的钱包之旅。
看来助记词真的是非常重要!那如何安全保存助记词?
首先,先告诉大家一定不要使用的方法!不要用任何形式保存在手机!不要截图,不要保存在手机记事本,更不要上传到云盘!如果你认真对待你的资产的话,不要保存在手机。手机里面的助记词非常容易被窃取。
比较原始的保存方法,就是把助记词抄在纸上,然后把纸片保存在安全的地方,比如保险箱。
更安全的方法是使用 Cobo 金钢匣这样的金属助记板。再强调一下——如果你用 HD 钱包,一定要备份好助记词,并且保存好。很多 HD 钱包都允许用户不备份就直接使用,但大家不要怕麻烦,一定备份好!
可是,还有一个问题。前面说到助记词存在手机里面不安全,但是 HD 钱包是把私钥放在手里面做签名,这样就安全了吗?
好问题!首先,HD 钱包保存私钥,跟助记词放在手机记事本,安全性是差很多的。因为 HD钱包 保存私钥是保存在手机安全区。你可以理解成你的私钥是跟你的指纹解锁信息之类的保存在一块儿。所以安全性上比相册会高很多很多。
但是,相对于 HD 钱包,的确有更安全的方案——那就是硬件钱包。
硬件钱包有很多种,大家选择硬件钱包一定要注意几点:
1. 硬件钱包一定要用加密芯片。如果硬件钱包依旧是把私钥放在系统的安全区,那其实跟你用软件钱包没有太大的区别。安全区容易遭受侧信道攻击,或者叫旁路攻击。这里不展开了。
a. 加密芯片的好处是,随机数也就是私钥,不是算法随机生成的。而是物理振荡器随机生成的。物理振荡器生成随机数或者私钥,是被相关机构认证过的真随机。HD 钱包都是用随机算法实现的随机,是一种伪随机。这里可能会出现 bug 导致随机性不足。历史上也出现过因为算法随机的随机性不足,导致 HD钱包生成的私钥被暴力试出来并发生资产被盗。再强调一下前面的知识点:因为私钥的可能性足够多(宇宙中原子的数量),所以是充分随机选出来的私钥,是不可能被暴力试出来。
a. 加密芯片的另外一个好处,是能够抵御各种攻击。比如手机安全区最怕的侧信道攻击或者旁路攻击,冷启动攻击等。
硬件钱包一定要脱网。这里的脱网最好是真脱网。我们不建议大家使用用数据线或者蓝牙或者 NFC 连接的硬件钱包。Cobo 金库是通过二维码与外界做数据交换。用户可以验证每一个二维码里面都是合法信息,不会导致私钥泄露等问题。