支付比特币时,比特币的当前所有者需要在交易中提交其公钥和签名(每次交易的签名都不同,但均从同一个私钥生成)。比特币网络中的所有人都可以通过所提交的公钥和签名进行验证,并确认该交易是否有效,即确认支付者在该时刻对所交易的比特币拥有所有权。比特币的所有权是通过数字密钥、比特币地址和数字签名来确立的。数字密钥实际上并不是存储在网络中,而是由用户生成并存储在一个文件或简单的数据库中,这便是比特币电子钱包。
一、比特币电子钱包是干嘛的
在比特币系统中,我们用公钥加密创建一个密钥对,用于控制比特币的获取。密钥对包括一个私钥,和由其衍生出的唯一的公钥。公钥用于接收比特币,而私钥用于比特币支付时的交易签名。
比特币钱包是私钥的容器,只包含私钥而不是比特币。每一个用户有一个包含多个私钥的钱包,钱包中包含成对的私钥和公钥。用户用这些私钥来签名交易,从而证明它们拥有交易的输出(也就是其中的比特币)。
二、钱包的种类划分
1、冷钱包
冷钱包是非常安全的,但是成本较高,易用性差。像传统的Armory,一般要找一台不联网的电脑专门用于安装Armory离线端,成本不小,如果要发送交易,则需要用优盘在离线电脑和在线电脑之间来回导交易信息、签名数据,很是麻烦,而且U盘还存在传播木马病毒的风险。
冷钱包也不是绝对安全的,硬件损坏、丢失,都可能造成比特币的损失,要做好备份。
2、本地钱包和在线钱包
本地钱包的是装在自己的电脑或手机上,在线钱包则是将私钥加密后放在服务器上。
个人的电脑有可能被植入木马,黑客可能盗取你的钱包文件,记录你的钱包口令;而钱包服务器也有可能被黑客攻陷,加密私钥存在被破解的风险。服务器安全防护做的比个人电脑要好一些,但也更容易引起黑客的注意。从安全性上来讲,这两类钱包差不多。
在线钱包原理是,钱包在浏览器端使用用户的口令对私钥进行加密,加密之后传到服务器上保存,当需要使用时,从服务器上下载下来,在浏览器端进行解密。服务器上保存的是加密后的私钥,这就是在线钱包“不保存用户私钥”的由来,准确地说,应该是“不保存用户明文私钥”。
要加强本地钱包和在线钱包的安全性,最好设置一个较复杂的密码,并且,千万不要忘记。
本地钱包和在线钱包使用都比较方便,易用性强,在线钱包由于不受客户端限制,易用性比本地钱包好一点。
3、多重签名钱包
多重签名钱包原理是这样的:取一个多重签名地址作为钱包地址,如果要动用这个地址上的币,必须有2个(或多个)私钥同时签名才可以。打个比方,就是一把锁,需要2把不同的钥匙一起用,才能打开。这样一来,我一把钥匙自己掌握(也可能是加密后托服务器保管,参看在线钱包),另一把交给服务器,如果只有一把钥匙被盗,黑客没有我本地的私钥。这样应该是多了一重安全。
多重签名机制看起来是更安全,但易用性受到很大的影响,用户需要理解一些技术细节,还要保护好本地私钥和未来地址的私钥,学习和使用成本高了不少。另外,Armory也做了纯客户端的多重签名钱包。
4、链下钱包
链下钱包有点像交易所的账号,你把币存到交易所,交易所给你记上帐,当你给其他用户发送,收币发币是在交易所的账簿上加加减减,并没有真正写入比特币区块链。只有用户存币和提币的时候,才会发生链上交易。
链下钱包是纯粹中心化的钱包,用户是没有自己钱包的私钥的。
很多人去中心化思想影响比较深,认为什么都要去中心化,对中心化交易以及挖矿算力集中等比较排斥。实际上,链下钱包效率很高,可以实时到账,方便对接购物平台,国外很多商家就是对接coinbase的,国内的币付宝也有。链下钱包将私钥保管的责任交给钱包公司,用户不必过多地考虑私钥安全。
需要说明的是,链下钱包里的币,并不是比特币,而是信用币。钱包里的数字,并不表示你拥有这么多币,只是说明别人欠你这么多的比特币而已。
5、纸钱包和脑钱包
额外说说纸钱包和脑钱包。纸钱包和脑钱包并不是完整意义上的比特币钱包,因为使用纸钱包或脑钱包,你无法使用上面的比特币,发币时还得借助其他钱包导入私钥。纸钱包和脑钱包仅仅是保存比特币私钥的两种方式。
纸钱包,就是把比特币的私钥打印在纸上,然后保存起来,一般用于冷藏比特币,也可以作为本地钱包或在线钱包的私钥备份。如果生成、打印私钥的环境是安全的,那么纸钱包安全性是比较高的,成本也很低。但是要注意防火防水防盗,如果是热敏纸打印的,还要注意热敏纸字迹容易褪掉。
此外,私钥也可以备份在磁介质中。像U盘、SD卡的寿命都很长,质量好的保存几十年没问题,移动硬盘当然也可以,就是有些浪费。光盘最便宜,但是容易氧化,质量普遍不高,可能几年就坏掉了。
三、总结
其实,比特币的私钥就是一串数字和大小写字母的组合,50来个字符,如果记忆力强,硬硬地把它记住,也算是一种保存方式。不过,如果你忘了,比特币就永远找不回来了,变成了“脑残包”,所以找一个靠谱的比特币电子钱包很重要,而钱包首要的要求是安全,但是世界上没有绝对的安全。至于怎么“存”,就要看比特币拥有者自己的考量了。