从零到一学懂区块链(4):密钥

从零到一学懂区块链:密钥

从零到一学懂区块链,每天get新知识。这个系列以概念普及、名词解释为主,帮助小白迅速入门,同时也是自己的学习笔记。可能做不到日更,但一定持续输出。


上篇文章学习了地址这个概念,说白了就是一串字符串,没想起来的朋友可以戳链接回顾:从零到一学懂区块链(3):地址。今天要来学习密钥。

01

什么是密钥

密钥是密码学中输入的一种用来在明文和密文之间转换的参数。说到密钥不可避免地要说起对称和非对称加密算法,对称加密算法是加密和解密使用同一种规则;非对称加密算法是加密解密使用不同的规则。在区块链中,普遍使用非对称加密算法。在非对称加密算法中,密钥由私钥和公钥组成,公钥公开,私钥保密,怎么保密都行。密钥在钱包内存储,由钱包管理。

私钥是一串随机产生的数字,类似银行卡的密码。

公钥是由私钥经过椭圆曲线加密算法生成的一串数字。类似银行卡的账号。

对称加密可以这样理解,甲先用公钥A(比如甲想了个数字3作为公钥)对数据M(4)进行加密,得到加密后的数据X=F(A,M),(比如12=3X4),A(3)是公开的,也知道了X(12)的值,然后甲告诉乙加密规则F(就是乘法啊)是如何进行的,乙毫无疑问地反推一下就知道M是什么了。对称加密的加密和解密用的是一套规则。

非对称加密可以这样理解,甲先用公钥A对数据M进行加密,得到加密后的数据X=F(A,M),A是公开的,也知道了X的值,但甲不告诉乙加密规则F,且这个过程就是很复杂,反正你就算知道了A和X也无法算出M(因为你不知道规则啊,在对称加密算法中,乙知道12是用乘法算出来的,在非对称加密算法中,鬼知道12是9+3,还是36/3,总之有很多啦。)此时乙必须用另一个私钥B来解密才能得到M=F(B,X)。非对称加密就是使用两套规则。当然现实中的加密算法远比你想象中的难。

02

如何得到密钥

1、私钥由一个随机数生成,只要确保这个数够随机,就可以生成私钥,一般从操作系统底层的一个密码学安全的随机源中取出一个256位的随机数。

2、私钥经过椭圆曲线加密算法(ECC)可以生成65字节的公钥。

3、公钥经过一个很复杂的哈希运算就可以生成地址了。

又要上这张老图(图片来源:《精通比特币》)

未来已来,

只是尚未流行。

区块链

03

密钥有什么用

拥有密钥是使用比特币的唯一条件。其中公钥用于接收比特币,私钥用于比特币支付时的交易签名。密钥在交易中起着至关重要的作用。在一次交易中,A转账给B,首先要用A自己的私钥对信息进行加密,证明这个转账是A发起的,这一过程又叫数字签名,接着再用B的公钥对信息进行二次加密,确保只有B能解开这条信息、接收转账,反过来,B要接收这个信息,首先要用B的私钥对信息进行解密得到A签名后的加密信息,接着再用A的公钥验证这条信息。

总结一下:

1、密钥由公钥和私钥组成,私钥保密,公钥公开。

2、私钥通过椭圆曲线算法得到公钥,公钥通过哈希算法得到地址。

3、公钥用户接收币,谁都可以用公钥来验证;私钥用户支付时的数字签名。

下一节内容:工作量证明

可乐

我是可乐,在学习区块链的道路上前行

记录每天学到的一点知识

一起学习,共同成长

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注