区块链技术核心概念与原理讲解(笔记 - 1)

字数 1838阅读 809

最近有点不知道要做什么,每当有这种感觉的时候都告诉自己总得做点什么。
此笔记记录学习慕课网视频:区块链技术核心概念与原理讲解
一直不理解区块链到底是什么,看了这个视频才有了一个认识,建议和视频一起看。

(1)区块链前世今生

密码朋克(Cypherpunk):是一个邮件组,里面有许多大牛。

区块链不是单一的技术,而是一系列技术的集合。

简单的提一下为什么叫区块链:因为比特币系统里的数据是用一个个区块存储的,然后通过hash的方式将一个一个区块连接,形成一个区块的链条,所以叫做区块链。

(2)区块链前景:
1. 应用场景:
  • 资产:数字资产发行、支付(跨境支付)、交易、结算
  • 记账:股权交易、供应链金融、商业积分
  • 不可篡改:溯源、众筹、医疗证明、存在性证明
  • 点对点:共享经济、物联网
  • 隐私:匿名交易
2. 人才缺口巨大
(3)比特币是什么

比特币是数字货币。

货币的定义:凯恩斯《货币论》中讲到:货币是可以承载价值的一般等价物。

历史上的货币:贵金属、银票、法币等

贵金属作为货币因为本身带有价值。银票与法币就实物而言,它们本身是一张纸,没有太大的价值。因为有国家背书,它的价值来源于法律效力与人们约定而成的信任。

同样的,进一步想想,一串数字可以作为货币吗?当人们给予其一定的信任,使其产生了价值,就像当做一颗宝石一样认可它。那么一串数字也可以作为货币,我们称这样的货币为数字货币,也叫虚拟货币。

比特币就是这样一种数字货币。那么问题来了,比特币的信任是从何而来的呢,它为什么值钱?

1.财产只受自己控制:

在现实生活中,财产除了受自己控制外,还受银行的控制,比如银行认为你的财产来路不明,可以冻结你的财产。但是在比特币系统里,你的比特币只受你的私钥控制。

2.无通胀

不会因为银行发行更多的钞票而贬值。举个例子:比如你现在有100元,而全世界的总资产为1000元。那你是相当有钱了。但是如果央行再发行个1000元,那你的100元相当于贬值了一半(物以稀为贵嘛)。

而比特币的总量是固定的:2100万。比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生。去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值

3.没有假钞

任何作弊的支付,都无法得到比特币网络中其他矿工的确认。这样就无法完成支付。

4.流通性

比特币是点到点的直接到账,免去了许多中间环节。

(4)去中心化

刚才说到比特币是一种数字货币,同时也是一个去中心化记账系统。要想了解去中心化,首先先看看中心化是怎样的:


image.png

在中心化的系统里,通常有个中央的服务器,来存储所有的数据,可以理解为就是一个数据库。

而去中心化的系统,数据不再是存储在一个服务器,而是存储于比特币网络的每一个节点里。

image.png

如果把每一个节点比作一个电脑的话,记账的数据会存储在每一个人的电脑里面。

那么会引发一些问题,如果两天电脑的记账数据不一致,那么将以谁的为准呢?这就涉及到比特币的原理,原理部分包含4个小节

(5)比特币原理
1.账本如何验证?
image.png

比如现在有这么一个账本,张三想搞点小手段,偷偷的把自己余额改为了300:


image.png

那么网络中就会出现一些假数据,如何确认张三修改了数据是假的数据呢?这就是比特币账本如何验证的问题。

image.png

这也是一个方法,但是如果每次验证都与千百万量的账本数据核对,这个效率是非常低下,实际上是不可行的。

那么比特币的做法是怎样的呢?首先我们要先了解一下Hash函数:

image.png
image.png

大家做开发的时候,对MD5都很熟悉了,MD5就是一个Hash函数。MD5可以用于校验下载文件是否出错:如果文件的数据有错误,那么文件的hash值就会和网站提供的正确的hash值不一样。这样就可以确定我们下载的文件是否出错。

同样的道理可以用在比特币账本校验中,对一个账本hash之后,就可以得到一个hash值,用这个hash值代替账本原始数据来对比,这样效率会高很多。


image.png

这样的hash值与其他数据保存下来,就形成了一个区块(也叫打包、记账、挖矿):


image.png

而且我们将序号、时间戳、Hash值称为区块的头部

假如这时候来了第二个账本:


image.png
image.png

注意:在对第二个账本进行Hash时,会传入第一个账本的Hash值,和第二个账本的原始数据一起进行Hash(就是通过这种方式将块与块相连接!)。如果hash值结果是正确的,就说明传入的hash值也是正确的。这样再将第二个账本的hash传入第三个账本,这样一直传递下去,产生第四个块,第五个块,第N个块...(这图的箭头是不是反了?就这么个意思吧,理解就好):

这图的箭头是不是反了?

通过这样的方式将区块连接起来,就形成了区块链。每个节点核对信息的时候,只需要核对最后一个区块的信息是否正确,如果最后一个区块的hash是正确的话,那么说明整个区块链的账本都是正确的,由此完成高效的验证。

上面讲了比特币原理的第一个小节,剩余的三个小节放到第二篇博客吧。

推荐阅读更多精彩内容