钱包本质上是一个工具,目前绝大多数的钱包都是在网络中建立了属于用户的单独区块空间,它是去中心化的。
“区块链钱包”的技术颠覆在哪里?
在使用钱包的时候,大家一定要多学习多研究。因为区块链是有匿名性的,使用各种钱包是不需要实名认证的。虽然你可以看到交易转账的地址,但是你并不知道地址的使用者是谁。
而且,区块链的信息是不可逆转的,万一你小心把币打错地址了,可就找不回来了。我们把币存在钱包里,到底是放在哪里了呢?是不是就在钱包里呢?
我们使用的去中心化的区块链货币钱包,其实只是一个区块链的软件。你的币不是存在钱包公司,也不是存在你的手机设备上的,币还是在区块链网络的地址中的。
钱包只是通过服务器来把区块链的各种代码展现给你,建立了一个通道,把你的各种操作指令发到区块链上。
所以,区块链钱包是不存在银行冻结你账户或者公司冻结你账户的情况,只要丢失了私钥,你就再也无法打开钱包,损失你钱包中的币。
从这个角度来看,其实钱包安不安全与你私钥保管有很大的关系,因为钱包服务商是不会保存你的私钥的,不会放在服务器上;
即使是钱包出现问题无法登陆,或者版本更新,再或者被黑客攻击等等各种问题,都不会影响你的资产。
这么来看,其实私钥是保存加密货币最重要的东西。
1. 钱包背后的密码学原理
数字钱包的生成可以简单的分解为三个步骤:
创建随机私钥(64位16进制字符/256比特/32字节);从私钥推导出公钥(128位16进制字符/512比特/64字节);从公钥中导出地址(40位16进制字符/160比特/20字节)。
简单的步骤背后已经囊括了密码学中大多数的技术:随机数生成器、非对称加密、单向散列函数等。
2. 区块链钱包“私钥”、“公钥”、“地址”间的智能合约
(1)私钥
通常是由随机算法生成的,说白了,就是一个巨大的随机整数,以太坊钱包的私钥就是64 位的 16 进制哈希值字符串。
(2)助记词
这么多个字节可怎么记呢?所以有的钱包就就出现了助记词,一般情况下,助记词由一些单词组成,只要你记住这些单词,按照顺序在钱包中输入,也能打开钱包,对吧,单词可比一串代码好记多了。
(3)keystore
有的钱包会采取把私钥制作成keystore让用户导出保存,这个Keystore就是私钥经过加密过后的一个文件,需要你自己设置的密码才能打开文件。这样的好处是就算keystore文件被盗,只要你额外设置的密码够长够随机,那么短时间内私钥也不会泄露,有充足的时间转移地址里面的加密货币到其他地址。
(4)公钥
那么,别人要给你转账怎么办呢?但是你肯定不能把私钥告诉别人,对吧,私钥就代表了你对钱包的所有权,这是用密码学来保护的。
所以,我们需要另一个东西,就是别人能给你转账,同时又不会泄露你的私钥,我们用到了哈希加密技术,把私钥转换一下得到一串字符,我们把它叫做公钥。
哈希加密技术目前的技术水平是不可逆的,也就是说通过公钥几乎不可以倒推出来私钥,所以可以认为这种方法比较安全。
一般情况,我们转账都用一个收币地址,这是通过公钥转化过来的,是公钥的缩减版本,公钥和收币地址之间是可以相互转换的。
3. 钱包的单向、不可逆特性
钱包生成私钥,通过椭圆曲线算法可以从私钥计算得到公钥。注意:它是单向的,不可逆的。
下图可知私钥是可以生成公钥,公钥可以生成比特币地址的,相反则不行,因为比特币是由一个不可逆的算法完成这个流程的。
所以,我们可以放心的把钱包地址给别人看而不用担心自己财产的丢失。但如果你的私钥泄露,那别人就有可能复制一份跟你一摸一样的钱包,你的资产就有安全问题了。
其实,加密货币保管只需要一个“私钥”,谁掌握了私钥,谁就掌握了你的钱包财产,所以你的私钥一定要保管好。