GIF演示:最简单易懂的区块链知识介绍与理解
今天我将通过一个例子来简单解释一下原理。对于有技术的你,绝对能搞定干货
本文重点是帮助理解区块链的工作原理,不是严谨的教学,不要太认真
你能从这篇文章中学到什么?使用SHA256算法获取哈希值。挖矿的作用是什么?字符串本质上是一些数字数据的指纹;也就是说,每一个不同的(文本)内容都有一个对应的不同的指纹(哈希值)
我们来看看下图中的演示。我们在数据区输入任意内容,下方的哈希区会自动实时计算出对应的哈希值;而data区的内容只有1个字符,或者你输入整个库的内容,hash永远是一串64个字符的hash值,你永远猜不到是什么您的输入将获得的哈希值
在此基础上,我们把它扩展成一个叫做BLOCK的东西,它至少包含
Nonce——随机数,后面会提到
数据-内容区
通常的做法是先把这些数据累加起来,可以理解为区块头:区块号+Nonce(随机值)+数据(需要保护的内容区域)
虽然正式应用中数据会比较多,比如添加key、timestamp,但是基本原理是一样的
然后用SHA256运算对这些内容进行加密,得到一串64位的哈希值。如果内容被篡改,哈希值的字符串必然会发生变化
了解hash值是如何产生的,再看下一步:挖矿
必要的步骤:也是挖矿。仔细耐心地观察下图。点击【挖矿】按钮后,经过长时间的计算,我们得到了4个从0开始的哈希值
这是一个比较少见的散列(hash)值,我们可以确定它是这个区块的指纹,如果这时候你尝试去修改数据区的内容,你会发现散列值发生了变化,而且它不再以4个0开头,证明该块已被篡改
如下图,如果内容被修改,hash不是以4个0开头,背景变成红色,就可以知道这个块的内容不再有效或者没有签名,已经被篡改了是的,它不再安全了。
这时,再次Mine,稍等片刻,又得到4个0开头的hash值;
请注意,Nonce 发生了变化!这就是Nonce 在这里的原因!
不同的内容需要匹配不同的Nonce,得到4个0开头的hash值。Mine的过程其实就是算法寻找一个合适的随机数来匹配内容,这样4个0开头的hash值就可以了再次获得。
寻找Nonce的过程就叫做挖矿!
现在明白为什么要挖矿了,然后把上面的知识连起来,形成一个链条
生成区块并将其链接到最简单的区块链中,对每个区块头进行SHA256加密散列,生成散列值。通过这个哈希值,可以识别出区块链中对应的区块。同时,每个区块都可以通过其区块头的“父区块哈希值”字段来引用前一个区块(父区块)。也就是说,每个区块头都包含其父区块的哈希值。这个将每个块链接到其各自父块的哈希序列创建了一条链,该链一直返回到第一个块(创世块)。
看下图是由4个区块组成的链,每个区块负责记住前一个区块的prevhash,和自己的hash,一个串一个,组成一个链
从下图的演示可以看出,如果第二个区块的数据被恶意修改,第二个区块的哈希值(指纹)的变化会导致它和后面的哈希值出现问题,这是安全的验证会检测到区块有问题!
进一步阅读接下来如何解决这个问题?
会涉及到分布式存储的问题,这条链(数据)应该存储在各个终端-----去中心化!
并加入投票机制,当链的数据出现问题时,用最正确的链接替换链,以保存数据的正确性
这也是我们常说除非你能破解51%的数据(链),否则你真的可以篡改数据的真正原因!
以上只是对区块链的一些基本运行原理的简单介绍。如果你真的想掌握它,你需要深入研究它