什么是区块链
什么是区块链
什么是区块链?到今天,依然有很多人,甚至开发者都无法解释清楚。今天,希望这篇文章和视频,可以帮你一次搞清楚下面几个问题:
- 什么是区块链
- 它是如何工作的
- 解决什么问题
- 如何使用区块链
如果您有足够的时间和合适的环境,那么可以通过下面的视频学习一下:
该视频采用Chrome插件Youtube中文配音做了翻译+配音处理,如果您平时也有上油管看前沿视频的话,也可以装一个,可以有效的提高你的学习效率 ^_^。如果您不方便查看这些内容,也可以关注我的视频号「程序猿DD」和B站,我会分享日常看到的精华学习资料,感兴趣的小伙伴根据自己平时习惯选择订阅即可。
如果您当前环境不适合观看视频,也可以通过下面的文字内容学习。下面内容是我根据视频内容,总结的,会更简洁一些。
历史
区块链的技术其实并不前沿,早在1991年就已经用了,最早的开发目的是为数字文档添加时间戳,这样文档就追溯并无法篡改它们。区块链技术在这中间就像扮演者一名公证人一样。虽然有了这样一个小应用场景,但该技术并没有得到广泛的应用。
直到2009年,中本聪对其进行改变,创造了数字加密货币:比特币。区块链在比特币中被用做为分布式账本,一旦一些数据被记录在这个分布式账本种之后,这些数据很难被篡改了。
它是如何运作的
先来搞清楚区块链中的块,每个快如下图所示:
它有三个部分:
- Data:存储在块内的信息取决于区块链的应用场景。比如,比特币则是存储的交易信息。其中包含交易双方和交易金额
- 当前块的Hash值,每个块的Hash值就像一个指纹一样,是区别于其他块的标识。同时,Hash值与数据内容有关,如果不同的内容,产生的Hash值不同。所以如果数据发生变化,那么计算出的Hash值就会不同,从而知道数据被篡改了。
- 上个块的Hash值,这个就像指针链表一样,每个块都有上一个块的Hash值,从而把所有块串联在一起,最终形成了区块链。如下图,展示了区块是如何通过上个块的Hash值串联起来的:
可以看到,这里的第一个块很特别,它并没有上一个块,所以第一个块有特别的名字,称为:创世块。
什么是工作量证明
在区块链中的数据无法被篡改,只要依靠上面所说的各个区块的Hash值串联。就如下图所示,如果中间的区块数据被篡改了,那么计算出来的Hash值发生变换,导致后续的区块链无法连接上。
但事实上,如今的计算机运算效率非常高,每秒可以计算数十万个Hash值。所以,可以在篡改一个块的时候,重新计算之后的其他块,来实现伪造和篡改。所以,为了缓解这个问题,在区块链中有一种工作量证明的机制存在,主要用来减慢区块创建的。
以比特利为例,创建一个新区块大约需要10分钟,所以这将使得篡改一个新区块变得非常困难。因为为了篡改一个区块,不得重新计算所有后续区块的工作量证明,这将耗费非常多的时间。
分布式
除此之外,区块链的安全还依靠分布式的P2P网络。这又是如何实现的呢?
首先,当有人加入区块链的P2P网络的时候,他就会获得区块链的完整副本,节点可以用它来验证区块链是否正常。然后,当有一个新的区块被创建的时候,这个区块将被发送给P2P网络上的每一个人。然后每个节点都会验证该块,以确保它没有被篡改。如果一切正常,每个节点都会将此块添加到自己的区块链中。此时,该网络中的所有节点都达成共识,一个新的区块被成功加入。
所以,如果要成功篡改区块链,你需要篡改区块链上的所有区块。重做每个区块的工作量证明,并控制50%的P2P网络共识。只有这样,你的被篡改区块才会被认可。但是,在目前的条件下,这几乎是不可能做到的。
区块链的发展和应用还一直在进行,下一篇我们将继续聊聊什么是智能合约。
如果您平时也有上油管看前沿视频的话也可以装一个Youtube中文配音,它可以有效地提高学习效率。如果您因为网络原因不方便查看这些内容,也可以关注我的视频号「程序猿DD」或者B站频道,我会经常分享一些日常看到的精华学习资料,感兴趣的小伙伴根据自己平时习惯选择订阅即可。