一个集美貌和智慧于一身的妹子
holle,猫妹又来给大家上课啦!
最近有很多看了我文章的小可爱来和我交流区块链,大家也都发表了一些自己的看法,看到大家从零基础到现在侃侃而谈猫妹真的很佩服。
好了话不多说,本期精彩内容都是猫妹呕心沥血整理的,还不快学起来~
区块链技术现在非常流行,那什么是区块链?区块链是怎么工作的?解决什么问题?可以用于哪些领域?
物如其名,区块链是由包含信息的区块构成的链。
这种技术最初是研究者在1991年提出的,原本是用于给电子文档加时间戳,这样文档就不会被倒签日期或篡改,就像是一个公证员,但这项技术却没什么人使用。
直到2009年中本聪(中本哲史)改进了这项技术,用于创造加密货币---比特币。
现在区块链是一种对所有人公开的分布式账单,它有一个有趣的特性,数据一旦被记录在区块链中就变得难以修改,这是怎么做到的呢?下面我们来详细观察一个区块。
每一个区块都包含一些数据,该区块的哈希值以及前一个区块的哈希值。区块中保存的数据取决于区块链的类型。以比特币的区块链为例,区块中记录了交易的详情,例如发送方、接收方和比特币的数量。
区块中也包含哈希值,哈希值可以和指纹类比,哈希值标识一个区块和它的内容,而且就像指纹一样,哈希值是独一无二的。
一旦区块被创建,它的哈希值就计算了,改变区块中的内容会使哈希值变化,换言之,哈希值在检测区块内容变化上非常有用,如果区块的“指纹”改变了,它就不是同一个区块。
举个例子,这里有一条由三个区块构成的区块链,可以看到每一个区块都有自己的哈希值和前一个区块的哈希值,所以区块3指向了区块2,区块2指向了区块1,注意第一个区块有点特别,它并不能指向前一个区块,因为它就是第一个,我们称这个区块为“创世区块”。
比方说我们篡改第二个区块,这就使得它的哈希值也变了,也就是说,这让区块3以及后面的所有区块都失效了,因为它们没有记录前一个区块的有效哈希值,因此改变一个区块的哈希值会使后续的所有区块都失效。
但使用哈希值还不足以防止被篡改,现在的计算机太快了,每分钟可以计算成百上千个哈希值,你可以高效的篡改一个哈希值,然后重新计算其他区块的哈希值,这样区块链就重新有效了,为了减轻这种现象,区块链使用了一个叫“工作量证明”的东西,这是一种减慢新区快创建速度的机制。
在比特币中大概需要10分钟才能完成工作量证明的计算,并且将新的区块添加到区块链上,这个机制使得篡改区块变得十分困难,一旦篡改一个区块就需要计算后续区块的工作量证明。
区块链的安全性来源于对哈希值的创造性使用以及工作量证明机制。
区块链还有一种方法来确保安全,那就是分布化。区块链没有一个中心来维护链,而是利用P2P网络让每个人都能加进来。
当某个节点加入网络就会得到整个区块链的完整副本,节点可以使用这个副本来校验所有内容仍然有序,接着有其他节点创建了一个新区块,这个区块就会被发送到该网络的所有节点,每个节点校验该区块以包拯它没有被篡改,如果一切正常,每个节点就会把这个区块加入到自己的区块链中,该网络中所有节点都保持一致,从而对哪些节点有效哪些无效打成共识,篡改过的区块会被网络上其他节点拒绝。
所以,要成功的篡改区块链不但要篡改区块链上几乎所有的区块,重新进行每个区块的工作量证明,还要控制P2P网络中50%以上的节点,这样才能保证被篡改过的节点被其他所有节点接受,这几乎是不可能的。
区块链还在不断进化,最近的一项成果是智能合同,这种合同是一个记录在区块链中的简单程序,可以在特定条件下自动交换货币。
区块链技术吸引了很多人的兴趣,人们很快意识到这项技术可以有很多其他用途,比如存储医疗记录、电子公证,甚至用于征税。
现在你知道了什么是区块链,它大致是怎么工作的,它解决了什么问题。
想要知道怎么用JavaScript实现一个简单的区块链吗,看看这篇文章你就明白啦~
领取专属 10元无门槛券
私享最新 技术干货