LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 新闻观点 > 【SCRY知识课堂】比特币的私钥,公钥和地址是什么?

【SCRY知识课堂】比特币的私钥,公钥和地址是什么?

2019-08-05 不详 来源:网络
前段时间,我们建立了一个学习群,叫【SCRY区块链知识学习群】,已经过去快三周了。从今天起,我们每周都会把讲课的内容分享给大家。(文中的时间都是相对于讲课当天的时间)

比特币中,经常出现三个词:私钥,公钥和地址。它们是什么意思呢?他们之间又有什么样的关系呢?搞清楚他们之间的关系和区别,是了解比特币的基础。

今天看群里有同学说这里大多数人都不懂技术,今天我将用比较易懂的方式来告诉大家。

就在今天上午对吧?群里一位叫“磊哥”的同学说他的手机掉了,换了新手机,但重新登陆imToken时,却忘记助记词了,只有私钥……幸好私钥还在啊,不然可就惨了。

中本聪的身份一直以来都是个谜,自从2008年中本聪发表了比特币白皮书后,就出现过很多个“中本聪”。其中最出名的,莫过于克雷格 赖特(Craig Wright),也就是我们调侃的澳本聪,当时他站出来公开表示他是中本聪,且能提供中本聪的私钥。结果大家都知道了吧。

上面提到的私钥,就是像下面这样的一段字符串:
5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss

支持比特币协议的应用都可以把这段字符串转换成比特币的私钥,再转换出公钥,再得到一个比特币地址。如果该地址上面有对应的比特币,就可以使用这个私钥花费上面的比特币。你们看上面那段字符串,就是没有对应比特币的。这是我新建的一个钱包中的地址,在复制出私钥后,已经删除,只要里面没有比特币,对我是没有任何影响的。而大家要注意的就是:别把你们的私钥泄露出去,也不要保存在云盘或本地硬盘、通过聊天工具发送等,这些都有可能造成损失。最好是写在纸上,保存在安全的地方。当然,里面啥都没有的话,就另说了。

说了这么多,那私钥是怎么生成的呢?emmmmm我说是随机生成的,会不会有人打我啊?

其实,私钥本质上就是随机数。私钥由32个byte组成的数组,1个byte等于8位二进制,一个二进制只有两个值0或者1。

这样说,可能有些没学过计算机的同学就不太懂了,那直接说结论吧。

私钥的总数是将近2的256次方个。这个数量已经超过了宇宙中原子的总数,想要遍历所有的私钥,耗尽整个太阳的能量也是不可能的。这一点,说的是私钥在密码学上的安全性。当然,并不是说不可能出现重复的私钥,而是说不可能通过遍历的方式找到某一个特定的私钥,或者通过其它的方式找,而不通过私钥就能花费地址上面的比特币,私钥的安全性是由数学上保证的。

私钥字符串是按照一定的规律从32位byte数据格式化生成的,32个byte的数组是由256个0或者1组成的,如果显示出来,不仅仅是识别率不高,而且私钥太长。

因此私钥字符串就是对于原始的随机数进行一定的转换,转换为识别率高的形式,下面私钥的是对32个byte数组就做了Base58的转换。

5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss

Base58是用于比特币中使用的一种独特的编码方式,主要用于产生Bitcoin的钱包地址和私钥。相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+"和"/"符号。这样做的主要原因是为了肉眼容易识别,在输入的时候不容易打错。(百科

所以为了便于人眼识别,我们把原本很长又不好记的字符,用一种叫做Base58的编码方式,转换成了一段更易识别的字符串。不过转换后的这串字符,输入起来还是挺费劲的。这时候,也可以把私钥转换其他形式,比如以单词的形式。这就是大家在钱包中看到的助记词。

私钥大致说完了, 都是比较简单的概念。大家对理论有兴趣可以去查资料。

下面来说公钥。

公钥实际上是由私钥转来的,这个过程,使用了之前提到的一种算法——椭圆曲线加密算法。

至于算法的过程,我们就不探讨了,涉及到计算以及理论。

给大家看一张图,其中讲到了私钥到公钥的过程。

椭圆曲线加密法以椭圆曲线理论为基础,利用椭圆曲线等式的性质来产生密钥,而不是采用传统的方法利用大质数的积来产生,其特点是:密钥长度小,安全性能高,整个数字签名耗时小。

这里提到的数字签名技术,简称DSA,全称是Digital Signature Standard,在DSA数字签名和认证中,发送者使用自己的私钥对文件或消息进行签名,接受者收到消息后使用发送者的公钥来验证签名的真实性。这里有一个非常便于理解DSA的网站,我发给你们
"What is a Digital Signature "
http://www.youdzone.com/signature.html

公钥是任何人都可以获得的,而私钥只能你们自己保留好,公钥经过一系列数字签名运算就会得到大家常说的比特币钱包地址。因为由公钥可以算出比特币地址,所以我们经常会把它们两兄弟搞混。它们都是指的同一个概念,不过比特币钱包地址是另一种格式的公钥,但是两兄弟的衣服穿的不一样。区别在于外在表现形式。

我们看到的比特币地址一般都是Base58编码处理的,地址的生成比较复杂,看吧,Base58 又出来了。整个过程比较复杂,这里就不细讲了。

最后梳理一个脉络:私钥 —— 公钥 —— 比特币钱包地址

现在大家应该知道私钥、公钥和比特币地址的关系了吧。中间插入了很多话题,大家下来可以再了解一下。关于今天的内容,同学们有问题可以提出来,我会尽量回答。好了,今天的课程就到这里了,我们下期再见。

—-

编译者/作者:不详

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...