什么是数字货币钱包?
很多人说,数字货币钱包就是用了装数字货币的,通俗来说这样理解没有问题,但实际上,数字货币钱包装的并不是数字货币,而是装密钥(私钥和公钥)的工具,有了密钥就可以拥有相应地址上的数字货币的支配权,利用钱包中生成的数字货币收款地址,可以接受他人给你转账的数字货币,也可以把你所拥有的数字货币转账给其他人。
数字货币钱包的本质是一个工具,即存储、转账和接收Token的工具。
首先,我们来了解一下钱包的三个最为核心的概念:私钥、公钥、地址。
它们按照这个顺序生成的:1、生成私钥 2、由私钥算出公钥 3、再由公钥经过一系列哈希算出钱包地址。
私钥(Private Key)
听起来高端,其实就是个随机数,由32个字节(byte)组成的数组,1个字节等于8位二进制,一个二进制只有两个值,0或者1。你可以想象着比特币世界里有2^256个抽屉,随便抽出一个抽屉来存放比特币,抽屉的编号就是私钥,只有你知道这个编号,所以也就只有你才能使用这个抽屉里的比特币。相当于提款卡,金融卡,或银行帐户的密码,用于证明比特币的所有权。
「2的256次方」是多大呢?它约等于「10的77次方」。那「10的77次方」又是多大呢?如果我们居住的这个地球,海洋、岩石、地底下的岩浆全部用沙子来填充的话,整个地球的沙子数量大概是「10的30次方」。也就是说,一个和地球一样大,全部由沙子组成的星球,需要用到「10的30次方」粒沙子。
「10的77次方」比「10的30次方」大「10的37次方」倍,整整37个0。在比一个地球的沙子数量还要多「10的37次方」倍的比特币私钥集里,一个一个地试,破解出某个地址对应的私钥,简直比大海捞针还难。所以,即便黑客有超级计算机,都无法暴力破解比特币私钥。这就是为什么很多人说,“比特币第一次通过技术手段,保证了个人的私有财产神圣不可侵犯”。
公钥(Public Key)
公钥与私钥一一对应,是由私钥推算出来的(通过椭圆曲线算法)。使用私钥签名交易之后,会把自己的公钥一起和交易发送出去,公钥是用来验证私钥的签名是否正确,一般我们很少会看到公钥。私钥能推算出公钥,但公钥不能反推出私钥,该过程是不可逆的。公钥和私钥是成对的。
地址(Address)
地址是由公钥转换而来(摘要+校验),地址被用于转出和接收Token(公钥其实也可以收币,只不过大部分人不这么做而已),一个地址上收到Token后,只有使用该地址所对应的私钥才能使用这个地址上的资产。简单点说,钱包会有一个对应的地址、私钥、公钥,地址和公钥可以公开给别人看,但是私钥绝对不行,否则就不安全了。私钥决定了地址资产的归属,公钥和地址均能通过私钥推算出。
判断一个钱包是否安全可靠,首先就是看它能否安全的管理私钥。
无论是使用冷钱包还是热钱包,只要其他人知道了你的地址私钥,就能转走你的币。记住,谁手握私钥,谁才是持币地址真正的主人。
在现实世界中如果你路上捡到了一张纸条,上面只写着银行卡密码,但没写银行卡号,即便这个银行卡密码是真的,你也无法取走相关账户里的钱。但在区块链世界,你只要知道了别人的“银行卡密码”(私钥),就可以知道别人的“银行账户”(公钥)和“银行卡号”(地址),可以取走里面的币。为什么会这样呢?这是因为在区块链中,私钥通过加密生成公钥,公钥转换一下格式生成地址。也就是说,私钥可以推导出公钥,公钥可以推导出地址。
数字货币钱包是如何分类的?
大体上可分为两大类,热钱包(在线钱包)和冷钱包(离线钱包)
一、热钱包
热钱包又称在线钱包,包含轻钱包和重钱包(全节点钱包),需保持连网上线的钱包,可以直接进行交易操作。
1、轻钱包:
不储存完整的区块链,只保存和自已相关的数据。它的体积小,可以在手机、电脑、网页等运行。
优缺点:不占用内存、支持多种数字资产、用户体验好、新手上手快,但交易验证稍慢
2、重钱包(全节点钱包)
维护着全部的区块链数据,完全去中心化,同步所有数据。具有更好的隐私性、可以在本地验证交易数据的有效性。
优缺点:具有更好的隐私性、验证信息更快速,但每次使用都需要前需要同步数据,占用很大的硬盘空间,不支持多种数字货币交易。
二、冷钱包
冷钱包就是不连网的钱包,也叫离线钱包;比如专业的硬件设备,或者将私钥(助记词)写在纸上。
1、硬件钱包
硬件钱包即是用专业的硬件存储数字货币,将数字资产私钥单独储存在一个芯片中,与互联网隔离,即插即用。
冷钱包设计理念
- 网络是不安全的,只要是接触网络的设备,就有可能被攻击。
- U盘是不安全的,U盘可能会被植入病毒,被植入病毒的U盘可能会自动记录数据,在被插入有网络的电脑以后,通过网络把数据盗走。
- 单个人是不可信的,所有的授权必须要经过多个人做双重确认,才能确保安全。
- 每个人都有可能出现意外事件,因此掌握授权的人需要进异地备份以确保安全。
- 人可能被绑架,因此重要的数据需要保存在保安级别高的银行保险柜里,同时须本人亲自去银行才可取出
私钥产生和备份
- 在完全离线的电脑上生成10000个私钥和对应的地址。
- 在完全离线电脑上对私钥进行AES加密。
- 删除原始私钥。
- AES密码由公司的两个分属异地的人掌握。
- 掌握AES密码的两个人不得乘坐同一辆交通工具,避免出意外的风险。
- 把之前加密后的私钥和明文地址生成二维码加密文档。
- 通过二维码扫描完全离线电脑生成地址文档,用于日常使用,每次热钱包往冷钱包汇币,必须使用一个未使用过的地址,每个地址不可重复使用。
- 将二维码加密文档打印保存到保安级别高的保险柜,即使发生文档掌握人被绑架事件,也无法获取此加密文档,因为必须要文档掌握人本人亲自到银行才能获取此文档。
- 在异地银行保险柜对二维码加密文档进行备份。
- 本地和异地银行保险柜必须由两个不同的人撑握。
- 掌握银行保险柜的两个人不得乘做同一辆交通工具。
- 本地、异地银行保险柜的控制人不得和AES密码的两个控制人相同。
线上往冷钱包打币
- 从地址文档中取相应地址,根据安全级别,每个地址汇不超过1000B。
- 每个地址被使用一次后就不可再使用。
从冷钱包取币
- 派人去办公室附近银行保险柜取出相应数量的未使用过的私钥密文,用扫描二维码的方式取回。
- 把私钥密文通过二维码扫描放入完全离线电脑。
- 掌握AES密码的人在完全离线电脑上进行解密,获得私钥明文。
- 通过二维码扫描把私钥明文导入另一台完全离线电脑。
- 在另一台完全离线电脑上进行签名交易,并把签名后的交易通过二维码或U盘同步至有网络的电脑广播交易。
冷钱包特点
- 冷钱包的币采取分散存储方式,每个地址存确定数量的比特币。
- 所有私钥在完全离线电脑上存储。
- 确保私钥永远没有接触过网络或U盘。
- 私钥加密文档需在异地有备份,并且由在异地的不同人控制。
- 私钥的AES密码也须由异地的两个不同人控制,且不得与掌握私钥的人相同。
- 掌握私钥密文文档或私钥密码的两组人必须在分别在异地,最好是异国。
- 某个私钥一旦汇币到线上以后,即作废,永不再使用。
2、纸钱包
把私钥打印在纸上存放,再删除电脑上的钱包文件,实现钱包的网络隔离。
很多刚接触区块链的人,很少不理解为什么这么高端的前沿技术,却还要手动操作。
其实越是理解网络,越能认识到网络的不安全性。区块链是完全去中心化的、私钥成了进入这个系统的唯一标识。而目前的区块链还做不到在线确保私钥安全。
就像是在一个生态内,你或许要花很大的力气才能确保安全,但是如果换个角度,当不在这个生态内时,反而容易解决。
现阶段,手动抄写是最安全的。
冷钱包的优缺点:
- 优点是安全性能高于在线钱包, 在线钱包包括轻钱包和中性化钱包。
- 缺点是使用起来不方便,创建钱包和交易都非常麻烦,对于新手来说操作比较困难,钱包价格都相对昂贵,一般从几千到上万元不等。如果没有太大额的数字资产,可以不用考虑。
只要不是物理和网络隔绝的系统都有被攻破的可能性,只是看攻击的成本有多大,攻击成功的利益有多大。一般比特币交易平台的热钱包存币量都很小,不值得用0-day等手段去攻击,冷钱包方案同一时间最多有1000个币的私钥触网,没有人会花很大成本攻击只有1000个币的系统