如何通俗易懂的理解区块链?

区块链
区块链是啥?理论层面:区块链是去中心化的分布式账本。今天我们以一种大家都能理解的方式来具体讲讲区块链。

区块链是啥?理论层面:区块链是去中心化的分布式账本。今天我们以一种大家都能理解的方式来具体讲讲区块链,首先,抛出两个问题:

A、B是交易双方,C记录这笔交易。

例子:现金交易,打借条存证或第三方见证该笔交易。问题:如果发生交易纠纷,C可作为证据,倘若A、B一方与C串通,或者C丢失,则无法佐证该笔交易。

A、B通过C来交易,C是中心。

例子:用户使用支付宝之间的交易。问题:如果C中心系统出现问题,丢失数据,也无法佐证该笔交易。

 

如何通俗易懂的理解区块链?

 

怎么解决以上两种问题呢?答案:区块链将一个C变成无数个C。A、B是交易双方,系统上所有的节点C都来记录。

每发生一笔交易,系统在每个节点C上更新记录一次这笔交易。如果这笔交易发生问题,则系统上超过50%的节点C来验证这笔交易的真实性。

如何验证呢?比如,A转账10块钱给B,这笔转账会在区块链系统上进行广播,接收到广播信息的节点C们,就可参与记录并验证这笔交易。

A和B本身是不公开的,具体内容的交易内容也不公开,系统仅仅公开发生了这笔交易及其数额。而且交易不可篡改,因为区块链使用哈希算法(Hasche Algorithm→Hash)。

01 哈希算法

哈希算法,是一类哈希函数的总称,最直观的理解是把“任意长度的输入”变成“固定长度”。哈希函数H接受任意但有限大小的消息x并输出固定大小的哈希值h,即h=H(x)。

举个例子:

x1=A转账10块钱给B h1=a3fc27b01sakhsgdb356cgh1

x2=A转账了10块钱给B h2=c6804n57s3p8dh46dfhqpfgm

h1与h2的字符长度是一样的,每一个输入x,对应唯一的哈希值h。而且,已知输入内容,求哈希值容易,已知哈希值,求输入内容几乎不可能。

因此,记录在区块链上的信息是无法篡改的,一旦篡改,所有得到的哈希值都会发生改变。常用的哈希算法为SHA-256,它的固定输出长度为64位字符。

 

如何通俗易懂的理解区块链?

 

哈希算法与区块链有什么关系呢?用哈希算法将交易记录打包成一个个数据块(即“区块”),然后将数据块一串串的链接起来就形成了区块链。(过于技术层面的东西我们先不去深究,大概理解是这层意思。)

02 非对称加密技术

区块链还使用了非对称加密技术,交易双方A、B完全不需要了解对方是谁,更不用寻求第三方机构作为信任背书,就可达成信任共识,进行交易。

 

如何通俗易懂的理解区块链?

 

那么,什么是非对称加密技术呢?

  • 对称加密:加密和解密,使用同一个密钥。比如我们在社交平台注册账户,登录验证需要一个密码。
  • 非对称加密:加密和解密,使用不同的密钥。加密时的密码是全网公开可见的公钥(publickey),解密时的密码是拥有者的私钥(privatekey)。

回到前面的例子:A转账10块钱给B(A、B各生成一对密钥并将公钥公开)

A在B的公钥上加密一个信息“A给B转账10元钱买XX”,然后发送给B。B用私钥解密,接收到这则信息。

B在A的公钥上加密一个信息“可以交易10元钱的XX,这样这样交易”,然后发送给A,A用自己的私钥解密,完成一笔交易。

这种加密属于交易前的交流,交易后则在区块链系统上生成广播:A转账10块钱给B,所有节点C的账本上都会记两笔,A -10, B+10。

以上的描述中,仅仅是区块链的一部分,仅供大家理解参考。区块链是多种技术整合的结果,它囊括了密码学、数学、经济学等等....

这些技术以特定的方式组合在一起,形成了去中心化的记录与存储体系,并对存储数据的区块打上时间戳使其形成了一个连续的、前后关联的真实数据记录存储结构。待续...... 

责任编辑:庞桂玉 来源: 今日头条
相关推荐

2018-01-17 22:36:46

2019-04-08 20:20:37

2011-10-26 19:57:33

2018-12-03 09:19:28

移动网络NAT

2019-06-19 08:30:47

网络协议IPTCP

2018-03-05 08:45:11

物联网互联网网络技术

2020-06-08 10:50:58

前端TypeScript代码

2023-01-06 09:40:20

项目性能

2022-06-28 07:31:11

哨兵模式redis

2022-09-23 08:32:53

微服务架构服务

2024-02-21 12:14:00

Gochannel​panic​

2022-10-11 11:35:29

自动驾驶

2021-11-04 08:16:50

MySQL SQL 语句数据库

2022-07-06 08:17:50

C 语言函数选型

2019-05-20 07:37:00

TCPIP网络协议

2019-01-24 15:50:06

区块链数字货币比特币

2021-05-30 19:02:59

变量对象上下文

2018-03-11 15:11:38

物联网数据物联网数据

2021-05-25 09:50:01

GitLinux命令

2021-05-13 13:20:00

Git命令Linux
点赞
收藏

51CTO技术栈公众号