比特财经网《知识讲堂》:第七课·区块链的一些结构

近日,比特财经网一直在积极筹备一档名为《知识讲堂》的栏目,旨在为刚入门区块链行业的人士提供完整、清晰的区块链知识讲解服务。该栏目以微信社群为依托,采用了线上开课的形式,吸引了一大批对区块链行业有热情的粉丝学员。

比特财经网《知识讲堂》第七课·区块链的一些结构已于12月18日晚上八点开课了。本期的主讲是比特财经网首席分析师黄欣赞老师,让我们来看看这期的《知识讲堂》都有些什么内容吧!

直播内容整理:

主持人:比特财经网相关负责人

讲师:比特财经网首席分析师黄欣赞老师

以下为课程实录:

主持人:

各位朋友,本期比特财经网《知识讲堂》马上开始了!感谢大家一如既往的支持与鼓励,下面有请比特财经网首席分析师黄欣赞老师!

黄:

各位朋友,大家晚上好,我是欣赞。欢迎来到本期比特财经网《知识讲堂》。今天为大家分享一下区块链中的一些结构概念。

我们之所以到今天才来讲区块链的结构,是因为其中的一些概念,一开始大家可能不会很理解,但是,相信经过前几期的学习,今晚的时机刚刚好。

区块链由多个相连的区块构成,所以我们先从了解区块链的几个核心概念开始。

一、区块

区块作为区块链的基本结构单元,由包含元数据的区块头和包含交易数据的区块主体构成。

我们先来看一张区块链的结构图。

如上图所示,在区块链中交易数据是以电子化形式永久存在的,形成数据存储的单元被称为区块。区块链的数据结构其实有两部分组成,分别是区块头和区块体。你可以这样理解,区块体就是区块的主体,主体里是各种交易数据,区块头里就是其他杂七杂八的东西,由版本号、难度值、时间戳等等组成,它包含了每个区块自身的身份识别信息。

打个比方:在一个线上论坛社区里,主体信息是什么?就是论坛里各种各样的帖子,有精华帖或者普通帖等。所以在这个社区里,区块体就是各个帖子的内容。那么区块头是什么呢?在这个社区,有一些杂七杂八的例如社区的介绍啊、头衔啊之类的,这些就是区块头。

接下来我们具体讲一讲区块头。

区块头包含三个部分:

1.父区块哈希值,也就是上一个区块的哈希地址。

我们知道区块链是按顺序一个个排列形成的区块链条,就像真实账本一样,每一页都有一个页码,通过页码你就能找到你想找的内容;而区块链中,通过父区块哈希值就可以找到了上一区块结算后的信息。

2.挖矿难度、时间戳和随机数。

挖矿难度是根据网络的算力来调整挖矿的时间;

随机数是用于工作量证明算法的计数器;

时间戳是记录每一个区块的创建时间。

3.Merkle(默克尔)树根

能够总结并快速归纳校验区块中所有交易数据的Merkle(默克尔)树根数据。相对比较难懂,这个后面会详细讲述。

而区块体则十分简单,就是一个区块中所有的交易记录,比如比特币系统的每一个区块主体大概是2500笔交易记录,交易记录就是转账信息。

区块链系统大约每10分钟会创建一个区块,其中包含了这段时间里全网范围内发生的所有交易。每个区块中也包含了前一个区块的ID(识别码),这使得每个区块都能找到其前一个节点,这样一直倒推就形成了一条完整的交易链条。从诞生之初到运行至今,全网随之形成了一条唯一的主区块链。

二、哈希算法

哈希算法是区块链中保证交易信息不被篡改的单向密码机制。

哈希算法接收一段明文后,一一种不可逆的方式将其转化为一段长度较短、位数固定的散列数据。

简单来说,哈希算法是一种加密算法,如果有些内容你不想让别人看到,你可能就会想到对这些内容加密,哈希算法就是其中一种。其中,加密前的信息被称作明文,加密后的信息被称为密文。

哈希算法有两个特点:

①加密过程不可逆,意味着我们无法通过输出的散列数据推倒原文的明文是什么;

②输入的明文与输出的散列数据一一对应,任何一个输入信息的变化,都必将导致最终输出的散列数据的变化。

怎么理解这两个特点呢?打个比方:假如我们要加密的内容是“春节快乐”,那么加密后的密文就是ABCD。当别人看到ABCD时,他无法通过ABCD推出你想表达的是“春节快乐”。

第二个特点,就好比我们一开始想传输的内容是i love you,它加密后为ABC,后面传输的内容改成了i hate you,那么内容就会变成ADF。

哈希算法的作用:

哈希算法是区块链系统里一种安全保密的算法,能确保我们要传输的内容被加密而不被窃取。

区块链通过哈希算法对一个交易区块中的交易信息进行加密,并把信息压缩成由一串数字和字母组成的散列字符串。区块链的哈希值能够唯一而准确地标识一个区块,区块链中任意节点通过简单的哈希计算都可以获得这个区块的哈希值,计算出的哈希值没有变化也就意味着区块中的信息没有被篡改。

三、公钥和私钥

公钥和私钥跟我们的资产息息相关。公钥和私钥是成对出现的。

我们用电子邮件加密的模型来简单介绍一下:公钥就是给大家用的,你发布电子邮件,可以通过网站让别人下载,公钥其实是用来加密/验章的。私钥就是自己的,必须非常小心保存,最好加上密码,私钥用来解密/签章,私钥由个人拥有。

公钥和私钥是交易过程需要用到的钥匙。我们假设区块链中有两个人,分别是小白和小黑。

小白想与小黑发起一个交易,首先她会在发起过程中把私钥保留在手上,公钥则公开给小黑看。在发起交易时,小白会对自己的交易记录用私钥对交易进行数字签名,证明这笔记录“确实”是她发起的。小黑拿到小白的交易单后,用小白的公钥进行解锁,就能解开小白的私钥,因此就能证明这个交易确实是小白发起的,从而进行无误的交易。

在区块链中,使用公钥和私钥还可以标识身份。小白给小黑进行转账时,参与验证的人都需要验证这笔账是小白发起的,以便后期小白想赖账时,我们能够确认说小白自己已经对这笔交易是有确认的。因此私钥的存在,就是对一个人的身份做认证,证实每笔交易的真实性,以便校对时无法赖账。

在区块链系统中,公钥和私钥还可以保证分布式网络点对点信息传递的安全。

四、时间戳

简单地说,时间戳其实就是给区块盖个章,它记录的是本区块被创建的精确的时间,证实了每一个区块都是独一无二不可篡改的!

区块链中的时间戳从区块生成的一刻起就存在于区块之中,它对应的是每一次交易记录的认证,证明交易记录的真实性。时间戳是直接写在区块链中的,而区块链中已经生成的区块不可篡改,因为一旦篡改,生成的哈希值就会变化,从而变成一个无效的数据。每一个时间戳会将前一个时间戳也纳入其随机哈希值中,这一过程不断重复,依次相连,最后会生成一个完整的链条。

五、Merkle(默克尔)树结构

我们先来看一下Merkle树结构图。

结合上面讲到的概念,区块的交易数据在这张图里就是最下层的数据,这时候这些数据叫叶子节点。我们把这些叶子节点首先进行一次哈希计算,然后通过哈希计算得到了四个哈希值。得到这四个哈希值以后我们进入第二轮,第二轮就是把四个哈希值两两合并进行哈希计算,就得到了下一轮的两个哈希值。接着重复这种两两合并的哈希计算,最后我们得到图中最上层的唯一哈希值——默克尔根。

默克尔根最大的作用就是能够判断交易的数据是不是被篡改过。

默克尔根是由区块主体中所有交易的哈希值逐级两两哈希计算剩下的最后的一个唯一值,所以默克尔根在这里有两个关键词:最终值、唯一值。

同样地,区块中任意一个数据的变更都会导致Merkle树结构发生变化,在交易信息验证比对的过程中,Merkle树结构能够大大减少数据的计算量,毕竟,我们只需验证Merkle树结构生成的统一哈希值——默克尔根就可以了。

今天也是跟大家分享了以上五点,包含区块链中一些关键概念。这些概念是我们未来在区块链中的一个应用方向,每一个概念的背后都是集齐前辈们非常经典的算法和创意。那么只有将这些基础知识拿捏到位、化为己用,才会对我们未来的区块链行业的发展起到更加长远的影响。

谢谢各位的收听,下节课我们不见不散。

主持人:

谢谢黄老师的讲课,也谢谢朋友们的支持,请继续关注我们下期比特财经网《知识讲堂》,12月20日晚上八点。下期预告:区块链的基础架构。区块链有几个基础架构?分别代表了什么呢?下期比特财经网《知识讲堂》为您详细讲解区块链的基础架构,敬请期待!

你可能感兴趣的:(比特财经网《知识讲堂》:第七课·区块链的一些结构)