风险提示:理性看待区块链,提高风险意识!
比特币公钥与私钥的基本原理是怎样的?
首页 > 币界资讯 > 币种知识 2021-01-11 15:16:51

在区块链中,我们经常听到这样的词汇——公钥和私钥。很多小白在学习区块链知识时,还是容易被这些术语搞得一脸懵逼。此文谨献给币圈新朋友,希望能够用Emoji帮助大家理解比特币公钥和私钥的基本常识。

研究密码学的人们经常使用“爱丽丝”和“鲍勃”作为解释概念的角色。今天,我将用他们来帮助解释公钥密码学的基本逻辑。

首先,什么是对称加密。举个例子,爱丽丝想交给鲍勃一个装有秘密文件的公文包。如果爱丽丝和鲍勃有互相匹配的钥匙,事情很简单:她可以将公文包上锁,并用钥匙把它锁起来,然后将它给鲍勃。

image.png

当鲍勃收到公文包时,他会用自己的钥匙解锁,因为这两把钥匙相同,于是鲍勃会得到包中的秘密文件。这个过程被称为对称加密。

但是通常而言,人们互相之间少有“同时拥有一把锁的钥匙”这种情况,因为要安全地传递钥匙并不容易。或者说,如果爱丽丝有给鲍勃发送钥匙的私人且安全的方式,她同样也可以用其来传输文件本身。

所以,比较常见的方式为,爱丽丝和鲍勃不需要同时拥有一个锁的钥匙,而是他们彼此都有自己的钥匙和自己的锁,这意味着他们不需要考虑传递钥匙的事情。

具体是这么运作的:

爱丽丝用钥匙锁起了带有挂锁的公文包,并将其传递给鲍勃。当鲍勃收到爱丽丝的公文包时,他无法解开爱丽丝的挂锁。但是,他将其添上了自己的挂锁。

image.png

然后将其返还给爱丽丝:

image.png

然后爱丽丝用她的钥匙将挂锁从公文包上摘下来:

image.png

公文包上现在只有一个挂锁:鲍勃的。爱丽丝再将公文包寄回给鲍勃:

image.png

最后鲍勃可以打开他自己上锁的公文包,并顺利拿出里面的文件。

现在,爱丽丝和鲍勃不需要再分享同一把钥匙。他们只需要拥有自己的挂锁和自己的钥匙。

但是如果对方不是你认为的那个人呢?万一发生了什么奇怪的事,比如鲍勃被一头牛所取代了呢?

那么接下来,将发生这样的事情:

1. 爱丽丝把带有挂锁的公文包寄了出去。她以为寄给的是鲍勃,但是却寄给了一头奶牛。

image.png

2. 这头牛,以惊人的灵巧度,将它的挂锁锁在了公文包上,然后将其寄回给爱丽丝。

3. 爱丽丝很高兴看到公文包带着“鲍勃”(实际上是奶牛的)挂锁回来了,她打开自己的挂锁并将其寄送回去。

4. 这头奶牛拿回公文包,打开了自己的锁。

5. 牛把秘密文件吃掉了。

鉴于没有人希望他们的秘密被一头牛消化掉,所以我们需要采取一个步骤来保护机密数据:鲍勃确保爱丽丝知道他的挂锁是什么样子,所以当她重新拿回公文包时,能够验证这个新锁是否属于鲍勃。

事实上,鲍勃能够复制他的挂锁的模样,并将其公开。每个人都知道鲍勃的挂锁是什么样子其实并不重要,毕竟他是唯一可以用钥匙解锁的人。同时,这能让爱丽丝认出鲍勃的锁。她可以在打开自己的锁之前,检查第二个挂锁是否真的属于鲍勃。

如果我们需要处理的仅仅是物理挂锁和密钥,那是很难做到复制挂锁和钥匙的。但是当我们以数字化方式进行处理的时候,我们使用的是数字密码和数字锁,即数值。

在上面的例子中,挂锁代表的数字是公开的,也可以叫做公钥。钥匙代表的数字是私有的。这个被称为“私钥”的私人数字可以用来“打开”公共锁。这种非对称加密算法,公钥与私钥是成对的,他们互相解密,因为加密和解密使用的密钥不一样,被称为非对称加密算法。他们的关系如下:这即是比特币所采用的公钥密码学。

人们保护私钥,是因为私钥可以解锁任何相对应的公锁。(在密码学中,这种解锁过程被称为签名)人们会公开他们的公钥,这样其他人就知道什么被锁住了。

在比特币系统中,公共密码学被用来证明所有权。用Emoji来表示具体的操作流程如下:

在比特币的世界里,爱丽丝需要传递给鲍勃的并不是一个挂锁公文包,而是一个放着挂锁和比特币的“玻璃盒子”。

image.png

为了将比特币传递给鲍勃,爱丽丝必须做两件事:

1. 爱丽丝必须把鲍勃的挂锁(公钥)放在自己的箱子里。这很简单,因为鲍勃的挂锁实际上是一个公开数值。这样,鲍勃可以通过解锁自己的挂锁来证明自己的所有权。

2. 爱丽丝必须证明这个盒子放置的挂锁是她的,而不是别人的。她需要用钥匙(私钥)打开自己的挂锁。

image.png

然后,当鲍勃决定将这些比特币传递给另一个人(我们暂且称他为卡洛斯)时,他会做同样的事情:将卡洛斯的公钥放置其中,然后用自己的私钥签署交易。

让我们回到区块链,私钥本质上是32个byte组成的数组,由256个0或者1随机组成。一般我们看到的私钥是下面这样的一段字符串:

5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss

公钥是一个65个byte数组,一个未压缩的公钥长这样:

04a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd5b8dec5235a0fa8722476c7709c02559e3aa73aa03918ba2d492eea75abea235

地址是由公钥产生的,公钥经过多种加密算法转换成公钥哈希,公钥哈希经过Base58编码生成地址。就如同爱丽丝把鲍勃的挂锁放在盒子里一样。实际上,单个公钥可以生成无限多个地址。因此,如果鲍勃希望每次都使用不同的地址,他也可以这么做。

总的来说,私钥,公钥,地址的关系如下:

image.png

(图片来自微信公众号: 槿小喵)

让我们回到比特币是如何交易的。我把它发送到你的比特币地址上,你的比特币地址以数字化的方式与你的私钥相连,那么你将在这个地址中获取比特币。

为了花掉这5美元,你需要进行一个新的交易,包括一个属于收件人的地址,然后用你的私钥签署。这相当于把收件人的挂锁挂在公文包上,然后打开你的挂锁。

总结:私钥公钥是成对出现,公钥可以生成对应的唯一地址,这样就能确认了该地址发送的交易是否使用了对应的私钥。这种做法有一个副作用,那就是,比特币几乎是匿名的。因为地址上使用的是“假名”。比特币与你的名字无关,其所需要的是你的私钥。换句话说,谁掌握了私钥,就掌握了你地址上的财产,这也是为什么进入区块链行业一定会被提醒:私钥一定要保管好。

上一篇: 加密货币的钱包、公钥和私钥都是怎么回事?
下一篇: 比特币私钥与公钥有什么区别?
推荐专栏
web3首席知识博主
一位相信价值投资的币圈KOL。稳定盈利的缠论野生交易员 #BTC行情分析师 #价值投资 #链上数据分析
爱Web 3,爱生活,爱科技,爱炒币的老韭菜
热门币种
更多
币种
价格
24H涨跌幅
BTC比特币
¥266,879.86
37,393.32 USDT
-0.75%
ETH以太坊
¥14,686.79
2,057.81 USDT
-0.83%
USDT泰达币
¥7.19
1.01 USDT
+0.25%
BNB币安币
¥1,648.74
231.01 USDT
-1.08%
XRP瑞波币
¥4.36
0.61050 USDT
-1.61%
USDC
¥7.14
0.99980 USDT
+0.03%
SOLSolana
¥408.78
57.28 USDT
-2.15%
OKBOK币
¥411.66
57.68 USDT
-0.83%
ADA艾达币
¥2.76
0.38610 USDT
-1.3%
DOGE狗狗币
¥0.55710
0.07807 USDT
-0.08%
热搜币种
更多
币种
价格
24H涨跌幅
Terra Classic
¥0.00
9.765E-5 USDT
+26.62%
FTX Token
¥28.18
3.9741 USDT
-3.67%
Gala
¥0.19
0.026783 USDT
+0.67%
dYdX
¥23.98
3.3817 USDT
-5.23%
Conflux
¥1.12
0.1582 USDT
-2.89%
PancakeSwap
¥16.42
2.3153 USDT
-3.89%
寿司
¥8.29
1.1685 USDT
-4.06%
Yield Guild Games
¥2.65
0.3731 USDT
-4.21%
Filecoin
¥32.43
4.5733 USDT
-3.81%
Solana
¥406.17
57.2759 USDT
-2.15%
Uniswap
¥43.48
6.1306 USDT
-0.13%
奇亚
¥181.39
25.5783 USDT
-1.6%
最新快讯
更多
PeckShield:KyberSwap攻击者已在Avalanche上退还361,876枚USDC.e
2023-11-27 10:27:31
PeckShield:KyberSwap攻击者已在AVAX上退还361,876枚USDC.e
2023-11-27 10:27:31
ScamSniffer:有人因网络钓鱼诈骗损失123万美元的aEthWETH
2023-11-27 10:24:23
3个鲸鱼过去24小时累计向CEX存入717万枚BLUR
2023-11-27 10:14:23
某地址自万圣节以来已囤积8674枚BTC
2023-11-27 10:09:55
近24小时BLUR下跌期间三鲸鱼向交易所存入总计约717万枚BLUR
2023-11-27 10:07:39
维基百科创始人:ChatGPT的维基百科写作“糟糕”且“混乱”
2023-11-27 10:04:47
下载币界网APP