在前面的文章中我们提到,在整个比特币的系统中,有一个东西在其中扮演了非常重要的角色,就是那个神奇的钱包。关于钱包,它那么神奇,那我呢准备在下一个视频中再详细介绍,在介绍钱包之前,我们先插入今天的这文章,讲讲比特币的秘钥和账号,为下个文章钱包的隆重出场做个铺垫。
首先,大家来回忆一下,那个神奇的钱包,到底神奇在哪?对了,它能根据需要,产生很多的账号,那什么东西能证明这个账号里的钱是你的呢,就是跟这个账号对应的密码。你只要拥有这个账号的密码,这个账号里的钱你就可以使用。我们暂且把这样一一对应的一个密码和一个账号称为一个密码账号对。
我们重复一下我刚才说的话,根据需要,产生很多账号。从这句话我们衍生出两个问题,第一,根据需要,那什么时候你需要呢?就是你要交易的时候吧,无非是两种情况,要么是别人给你转钱的时候,要么是你给别人转钱的时候。这个很好理解,你可以把一个密码账号对想象成一张银行卡。当别人给你银行卡打钱的时候,你只要把银行卡的帐号,也就是比特币账号告诉别人就行了。但是当你要给别人打钱,那你就必需知道密码,当然卡里还得有余额,对应的比特币系统,你必须知道账号和与之相对应的密码,并且该账号中得有余额。好了第一个问题解决了,那第二个问题,如何产生账号呢?想象一下在现实生活中,你想有张新的银行卡就必需去银行办理,办理的时候会让你设置一个密码。在比特币系统中这个过程就简单多了,但顺序却不一样,是先有密码,再有账号。也就是说,你先得想好一个密码,然后根据一种特定的算法,自动生成一个账号与密码对应。当然刚生城的账号是没余额的,跟新办的银行卡一样。所以说新银行卡再多也没用,关键的是,卡里得有钱!
好了,上面的这个过程应该是很好理解的,接下来,我们再把上述过程引入到比特币系统中,用专业术语讲一遍。
上面我们提到了密码,现实生活中银行卡密码是一个6位数,也就是说范围从000000到999999之间的任意一个数字。比特币系统中,我们把这个密码称为私钥。私钥的取值范围有多少呢,可以从0到2的256次方之间的任意一个数字,2的256次方到底有多大呢,你有多少种选择呢,大致可以理解为整个地球上有多少个原子,你就有多少种密码选择。在这么多的选择中,比特币钱包会依赖外界的各种随机性,随机产生一个私钥。就像这样,0100110100101…010001,共256位,这样的一个私钥。那么这是个二进制数字,计算机的世界用这种格式啊,我们人类可记不住啊,所以我们会看到实际应用中,我们会有很多其他形式的私钥,比如用一个64位的字符串,或者是16个单词,或者是一句话,等等来表示私钥,这都是将上述原始的私钥采用不同的编码方式展示给我们使用的人,便于我们记忆。大家只需要记住,私钥就像白骨精,可以有各种不同的外在形象和表现形式,但无论变成什么样子,它还是它。
好了,现在私钥产生了。接下来,根据比特币系统的规则,我们会把这个私钥,我们记为小k,把它经过一个密码学上的加工转换,变成另外一串字符大K,我们称大K为公钥。然后再经过另外一个密码学特定转换,把公钥大K转换成再另外一串字符串A,最后的这个字符串A,就是账号了,在比特币系统中,我们称它为地址。整个转换过程,由小k到大K再到A的过程,是不可逆的。大家一定要跟上面私钥的编码转换区分开来,上面提到私钥可以有各种不同的表达形式,这各种不同的表达形式之间可以相互变换,这是编码上的转换。但咱们这个私钥到公钥再到地址的转换,是密码学上的转换,就是说,由私钥可以得到公钥,却不能由公钥得私钥,可以由公钥得到地址,却不能有地址得到公钥,他是单方向的,有去无回的。另外,某个私钥,在任何情况下,不同的时间,不同的地点,均只能得到同样的公钥,也就只能得到同样的地址,他们是一一对应的。所以,我们如果先忽略掉大K,你的某个私钥就转换成了特定的某个地址A。如此一来,一个私钥和一个与之对应的地址配成对,就类似于现实生活中开了一张银行卡了,而且这一切,你自己就可以一键完成哦。
好了,学到这,你相当于已经学会在比特币系统中无限开通新银行卡的技能了,现在你缺的只是一个工具,那就是比特币钱包了。我们下个文章就讲讲它,让你先在比特币网络上开上几张银行卡,敬请继续关注吧。