之前跟大家科普的区块链基本都是入门级的介绍,能够理解透彻区块链的概念并不容易,要真正弄清楚这些概念,仅仅这本文字科普是不够的,因此,我打算通过实操的方式,将我弄清楚的概念用图文的形式表现出来,供大家参考学习。
区块链模拟
我找到的这个模拟软件网址:
https://anders.com/blockchain/hash.html
作者YouTube讲解视频:https://youtu.be/_160oMzblY8
1. 什么是hash,hash有什么用?
WIKI的定义:A hashfunction is any function that can be used to map data of arbitrarysize to data of fixed size. The values returned by a hash function are called hashvalues, hash codes, digests, or simply hashes.
(hash方程就是能够将任意大小的数据转换为固定大小的数据,这个由hash方程转换过来的值就叫哈希值,哈系数等,即hash)
(hash方程转换示意图)
在网站提供的demo里,点开第一个hash,就可以体验到任意数据转换为hash的过程,添加任意字符hash就会改变。
2.区块演示
打开网站第二个标签block,进入区块演示
bolck:#,即区块序号,区块链由一个个区块链接而成,区块序号就能够决定他们的顺序,#1即可以理解为创始区块。
下面的nonce,data,和hash需要结合起来说,nonce和data结合起来能够影响hash数值,如果创建的区块加入区块链,必须满足特定的hash数据格式,在本次例子,hash数值必须满足前四位全部是0。
(特定hash数据格式)
我们能够决定data数据里到底写什么内容,然后计算出一个匹配的nonce,来满足hash数值的格式要求,这也就是挖矿要做的事情:计算匹配的nonce,使得他与data数据匹配之后产生前四位都是0的hash数值,满足此区块加入区块链的要求。
点击mine(挖矿),计算一个新nonce,使与data数据匹配,产生hash数值合法。
3. 区块链接为区块链
可以看到不同区块的的按序号顺序相连,各个区块合法,并且后一个区块的prev是前一个区块的hash,才能够成功链接为区块链。
改动中间任何一个区块data值,都会导致这条链上所有的区块非法,如果要使其合法,必须重新计算各个nonce,这在一个很长的区块链中是一个几乎不可能完成的任务。
4.分布式
将账本分发到其他节点,这样所有的节点都会逐步接收到最新的区块链账本。根据前几部的原理,对于分发的区块链,只要最后一个区块的hash值是相同的,就能够保证这两个区块链一定相同,这也是简单的对账原理。
5.代币系统
在前四步的基础上,在每个区块的内容中加入记账,比如红圈中的Darcy给Bingle转账25代币。
6.货币基础
第5步有一个非常大的问题,这个账本只记录了比如Darcy给Bingle转账25代币,但是Darcy到底有没有25代币,是不知道的,这样就需要一个货币基础做支撑。
这样整个区块链系统的简单的区块链模拟演示就介绍结束了,通过看他的视频,把玩过他做的演示模型之后,基本能够将基本原理搞明白。
领取专属 10元无门槛券
私享最新 技术干货