Py学习  »  区块链

如何向一个9岁小孩解释区块链密码学

区块链技术学习 • 6 年前 • 555 次点击  

区块链技术学习(微信号:Blockchain1024)翻译

原文作者:ZoëYang

原文链接:https://hackernoon.com/blockchain-cryptography-explained-to-a-9-year-old-8275c6eab6fa


加密货币在2018年谷歌科技搜索排名第一。这并不奇怪,因为在2015年比特币以第一种也是最知名的加密货币开始腾飞。随着区块链技术的迅速崛起,区块链技术也随之被大肆宣传。


区块链是比特币的基本概念和框架。与依赖于集中式系统(如使用银行、社交媒体公司和云存储)不同,区块链是一个分散的系统,它利用分布式记账。这段由美国财政部制作的2分钟视频对区块链有一个很好的概述。



简而言之,区块链的定义特性使其成为加密货币等创新的推动者,这是因为它是分布式的、分散的、仅附加的、基于共识的,而且可能最关键的是由加密技术保护的。


如果区块链是加密货币的基础骨架系统,那么密码学就是它的神经系统——它使信息和身份能够通过一个广泛的网络在参与者之间安全地交换。密码学是应用数学的一个广阔领域,为了在几段话中提炼出它的工作原理,并将其重要性与区块链应用程序联系起来,我将开发一个与经典社交游戏的类比。


想象一下玩坏了的电话游戏……



有几个问题与此相关:


1、原始消息已更改

2、接收者不知道消息已更改

3、接收者不知道消息是否来自预期的发送者


为了解决这些问题,区块链密码学利用数字签名(如包上的印章来验证和认证网络上的事务。

数字签名达到以下目的:


1、确保消息没有被篡改

2、验证是否是签署该文件(交易)的正确人员

3、没有其他人伪造或复制签名

4、一旦签名,签名就不能被拒绝


数字签名是如何工作的?


要在电话游戏场景中应用密码学,如果A想向B发送消息“peas”,他/她将使用私钥“锁定”消息。在这里锁定消息意味着使用非对称密码来加密消息。


非对称密码使用一对算术配对但不相同的公钥和私钥。公钥可以与所有人共享,但是该对中的私钥是保密的。该对密钥中的一个用于锁定消息,只有相反的密钥才能用于解锁消息。


我听过的描述这个过程最好的类比,就像是把鸡肉变成鸡块一样——它无法逆转来找出最初的信息。然后,Person A的消息变成一组随机字母,在上图中表示为秘密消息,因为随机字母不具有 字面意义。


如图所示,使用用户唯一的私钥对消息进行签名会创建数字签名。


发送消息



当A准备共享消息时,他/她将把原始消息、公钥(另一对到私钥)和数字签名作为包发送给目标接收者B。


接收消息



当B接收并打开包时,他/她将从A处获取公共消息,并通过相同的加密功能运行该消息以获得秘密消息。B保留此秘密消息,以供稍后验证。


然后,B从A那里获得公钥和数字签名,并通过密码验证功能运行这些公钥和数字签名,以获得嵌入在数字签名中的秘密消息。由于私钥和公钥是算术配对的,因此任何人的公钥都无法解锁发送者的数字签名。


现在,接收者B拥有两条秘密消息——一条来自加密功能,另一条来自数字签名。他/她可以比较是否相同。


同样,我们没有在这里比较原始的信息,因为鸡块不能转换回鸡肉。如果两个秘密消息都是相同的,那么接收者知道该消息并且发送者按预期验证。否则,接收者就知道在这个过程中的某个地方发生了变化。


我希望这个简化区块链密码学概念能够为理解这项技术提供一个有用的概述。



●编号244,输入编号直达本文

●输入m获取文章目录

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/36023
 
555 次点击