一、了解私钥和助记词概念
将这个放在第一位首先介绍,可能有点出乎很多人意料。但若真正懂币懂区块链的人,都会知道,再怎么强调私钥的重要性都是不为过的,是整个币圈的重要基石。
1.1私钥是什么
大家应该知道计算机底层是二进制的,只认识0和1。而私钥就是256个随机的0或者1的数据串。假设1为黑块,0为白块,那么可视化来看,私钥就是一个16X16的数据信息块,如下图所示。私钥的总数量理论上约为2^256≈1.1579208923732e+77是一个极大极大的数,比1后面有77个0的数还要大。只要足够真正随机,你随机出一个自己的私钥,和别人随机出的私钥,相撞的可能性是没有的。
1.2私钥怎么记录
直接记录1或0太麻烦了要写256个,因一个十六进制的数对应于4个1或0,因此可以用如下的十六进制的长度为64的字串来表示。另外可最后额外加个01来表述是压缩格式。即66位。
ab8c3f771c69782092a9fffe869b7abd6e06
c5015d54c5de904a4b4c8d1cca1a01
上例中开头处和结尾处都是a,换算二进制是1010,即黑白黑白颜色,看上方图,开始和最后的地方,便是如此。
然而上面的记录方式有两个问题:一个是长度较长要写很久,另一个是和常规的十六进制字串容易混淆,不易辨别为私钥。因此中本聪使用了Base58Check编码,即可以理解为58进制的数。具体凑够58,需要大小写26字母加数字共62个,再去掉四个容易混淆的数字0,大写o,小写L和大写i。因此这四个是不会出现在私钥字串中的。因为前面加了版本号,后面加了校验码后再编码,因此比特币私钥字串若修改其中一两个,会被自校验为不正确。且可以特定的以5(非压缩),K,L三种情况开头,以区分比特币私钥还是其它币的私钥。
数字货币币种虽然多,但各币种的私钥,背后的本质都是一样的,长度也一样都是256。改变版本号即可从一币种的私钥变为另外币种的私钥。例如版本号变为0x9E便可得到狗狗币的私钥。
QUN6Q7NidBCt1TpJCrENEnnSrf
JumsujeRQ5qRShNTFfNcWQkPUW
最后当然也有些很奇葩有趣的记录方式,例如根据与颜色的对应关系,记录为彩色颜色条。甚至转换用八进制和音乐相关联,转换用四进制来和生命遗传DNA编码来进行关联等等。
1.3私钥有什么用
掌握有私钥才有对币资产的真正控制权,才真正拥有币,而不是交易平台欠你多少币的欠条。相当于是你的银行卡加密码,或者支付宝微信账号加密码。由私钥,可以推导计算出公钥,再由公钥可以计算出币地址。私钥需要保密,而公钥和币地址是可以公开的。将币地址给别人或提交到交易平台即可收到币。需要有私钥,才能将这个对应币地址上收到的币转出到其它地址。
因公钥有压缩和非压缩两种情况,一个私钥是可以对应压缩地址和非压缩地址两个币地址的。目前一般用压缩地址的较多,但使用上没有明显区别。
私钥除了用来签名交易来发送币地址上的币外。还可以用来签名各种信息作为证明。见文章《区块链世界的币地址签名验证脑口令工具》,例如谁能用创世区块地址私钥去签名信息,即可轻松证明谁才是真正中本聪。根本就不用提供各种无聊的所谓“证据”。
1.4私钥怎么保存
私钥非常非常非常的重要,需要好好保存。那具体怎么保存呢?
早期常用的方法是用核心钱包保存在wallet.dat的文件中,一次生成100个私钥,用完再新增加新的,另外可对此dat文件进行密码加密。结果出现了不少问题,例如重装系统文件丢失,加密密码遗忘,频繁发币找零新地址超过100个错误覆盖丢失等等。造成了很多早期币的丢失。
接着流行的方法是纸钱包和脑口令。所谓纸钱包很简单,就是将用来囤币的币地址的私钥导出字串,然后写在纸上。有人甚至刻在戒指或铁板上,为了安全可以故意漏写或修改几位错的,注意别最后几位,因最后为校验码。注意要脑中记下怎么才能改成对的。纸钱包有丢失的可能。另外看这里有用到了脑,于是想能不能整个私钥都用脑来记录。这便是脑口令工具了。利用的原理是SHA256哈希算法,天然的就是将任意字串变成随机的256个1或0。脑口令工具的原理便是脑中记个字串,然后对其SHA256,将Hash结果直接作为私钥。看似完美,纸钱包会丢,但脑不会丢吧。但很快发现致命弱点,也在呼吁下某脑钱包brainwallet的开源代码永久关闭。太复杂的脑口令,容易用户自己遗忘。而太简单的脑口令,容易被其他人暴力穷举猜到,从而成为脑残包。
发展到现在,就是着名和通用的助记词了。另基于脑钱包升级进化出的左右脑双脑脑口令工具也在被部分充分懂币的人使用。
助记词不是私钥,他是各币种的批量的私钥生成和存储的方式。有点类似于脑口令的,助记词的信息再加上一些路径格式加序号,能批量地生成很多私钥,见BIP49.com。首先从各语言中各自选2048个较常用的单词或字。因为2048=2^11就相当于每出现一个助记词,便可有记录11bits了,若12个单词,那么就是132bits,再有4bits来作为校验位,那么一个12单词的助记词组便可有128bits随机信息量了。考虑生日碰撞等情况,为256的一半也已经足够随机安全且方便。因此各钱包常用这种12单词的助记词组,当然部分也用18甚至24单词。
助记词可视为规范化的脑口令,不仅仅强制足够长保证了安全,还对各币种的在路径中的代码进行了规范,能够批量生成各种币的大批量地址,方便用户管理多种币资产和币应用的布署。
未完待续
预知后事如何,请听下回分解!!!
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。