区块链小白4(私钥,公钥以及钱包)

这篇文章其实最初的来源,来源于区块链研习社的一些讨论,以及一些问题,在没有禁止ICO之前,很多人连自己的钱包都没有,等到了消息不灵通的时候,往往不知所措,不知道自己的数字货币放在哪里是安全的。

先说说私钥,这是理解数字货币最为重要的一个概念,私钥是什么?是一连串的数字,经过了base58方式的压缩,才得到如今你看到的样子,虽然你看到的样子还是很长,但是相比原始的形式,已经短了很多了。私钥是唯一的,忘记了你的私钥等于放弃了你的财产,你可以没有钱包,钱包其实并不重要,接下来你会明白,其实私钥是一个门没有关的保险柜,不过位置只有你自己知道而已。


区块链小白4(私钥,公钥以及钱包)_第1张图片
welcome to new world!

你只需要将你的数字货币转移到你的私钥上就好了,这时候你的转账地址是由私钥产生的公钥,公钥再次计算产生了地址,所有转移到这个地址的数字货币,都归你的私钥管理,你可以随时授权任何的钱包,通过钱包这个工具来转到另一个地址。这个就好比,你有一张银行卡,银行卡里有钱,钱包是ATM机,你授权钱包等于你需要使用某台ATM机,而你的私钥等于你插卡和输入密码这两个行为的总和,你不取钱,你不转账,你的钱永远还是在你的卡里的,而你授权了钱包(输入私钥)等于你的手机是一台随身携带的ATM机,你随时可以转账甚至付款,而且由于网络这一特性,你的钱包是随时跟网络有连接的,属于俗称的热钱包,热钱包是不安全的,因为如果黑客足够厉害,破解了钱包的算法,是可能获取你的私钥的,建立养成良好的习惯,我一般使用钱包转账以后,就直接的禁止钱包这个APP上网,防止不必要的损失,同时要注意防范钱包本身的问题,如果钱包本身就是问题钱包,故意做出来骗你私钥的,你的财产也可能损失。

昨天我看到了一个挺有意思的说法,说自己输入的私钥不对,却也打开了钱包,其实我想告诉你这很正常,因为你输入的也是一个正确的钱包地址,当然是可以打开钱包的,我们的钱包很安全也很不安全,我们的钱包总共有256位数,其实256个1也是一个钱包的地址,你进行了base58的算法计算以后,可以直接的得到你现在看到的私钥,输入,当然可以打开,同样的道理,255个1加上一个0也是一个钱包地址。

举例子前,先给你讲讲base58,其实它是0到9,10个数字,加上大小写的26个字母,那么有人问,这不是应该有52加上10个数字,应该是base62,可是在实际的使用中,有些字母和字母之间,有些数字和字母之间容易弄混淆,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+"和"/"符号.


区块链小白4(私钥,公钥以及钱包)_第2张图片
base64

ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"

注意,少了数字0,大写字母I,大写字母O,小写字母l,一共是:

10+26×2-4=58

接下来的讲解,简化了很多的内容,也将很多的算法抽象了,算是举个例子,大概了解有助于你理解私钥,因为昨天看了讨论,心里替问的人着急,以下文章超级简化了,也抽象了私钥形成的实际过程,不过有助于你理解私钥:

我们私钥其实是丢256次硬币的方式得到的,是使用2进制的方式进行编码的,例如正面是1,反面是0,

256次抛硬币以后,你可能得到1111111***1111111,当然可能得到1111111***1111110,假设***代表了240个1,当然咱么这是举例子,240个数全是1是很极端的情况,普通情况,这些都是0和1的组合,因为是二进制,所有的私钥其实是一连串的数字,在二进制中其实11代表数字3,10代表数字2,1001代表的是9

随机选取一个32字节的数、大小介于1 ~ 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之间,作为私钥,当然我们上面取的是1111111***1111111,进行base58的编码以后,就会形成一个32字节的私钥了,你可以拿你现有钱包的私钥,比如你的私钥里有5,你可以将它替换成w,你输入你的IMtoken钱包,你会发现,可以打开钱包,因为这本身就是一个新的私钥,其实这么说,私钥本身是存在的,只不过是,一个是钱包用算法替你选择一个,一个是你自己选择一个而已。


区块链小白4(私钥,公钥以及钱包)_第3张图片
hello,world!

想想是不是觉得我们的私钥很不安全啊!可以你考虑一下2的256次方个私钥,数量是多大呢?比宇宙的中的原子也差不了多少了!这样说太不明白了,举个例子,就是太平洋里全是乒乓球,只有1个乒乓球有钱,你要找到它,你一辈子找不到是很正常的,这就跟现在的超级计算机要从宇宙原子的量级,去找到1亿个使用的私钥的难度是一样的,但是我没说绝对的安全,万一有人再次抽到了你的私钥,那么只能说自认倒霉,你可能是宇宙第一倒霉蛋!!!谁找到你的乒乓球,就有第二个人知道私钥了!

它有多安全,比如你的计算机1天可以验证1000万亿个私钥,但是10000000万亿个私钥,你需要的时间是多长呢?大概是27年,增加10倍呢?是270年。不过没说不可能,随着加密的方式的增强,破解的技术也在增强,传说中的量子计算机就可以,不过现在的量子计算机最快的也就是手机的速度。私钥其实是没锁的保险柜,只不过是因为数量的原因,保证了它的安全性,这个世界上没有绝对安全的东西。

当然你可以去尝试,将你的私钥的一个字母或者数字替换,但是记住你替换的那个数字和字母必须在base58里面,你也能打开一个钱包,不是因为你运气好,而是它本身就是一个钱包,你的私钥其实是一个你知道位置的保险箱而已,它并没有上锁。

我们地址又是怎么得来的,先是椭圆曲线算法,然后散列计算,经过8次计算以后,得到我们看到的地址,散列运算和椭圆曲线运算是不可逆的运算,这是在目前而言,你的私钥是你才知道地址的宝箱。

看到这里,给红包就好了!开个玩笑,不要当真。

你可能感兴趣的:(区块链小白4(私钥,公钥以及钱包))