前言:记录自己学习区块链的过程,并整理成这个系列(文字说明+短视频讲解)。文中有些是借鉴网络上的资源,如有侵权请私信告知,前两章主要是解释概念,后面的文章主要用代码来解释什么是区块链,以及自己如何构建简单区块链模型。
什么是区块链?
想必大家听过很多解释,听过之后好像还是没感觉,我来解释一下我的理解:
区块链就是用哈希值去标示的带有信息的链表(账本,数据库,文件),且分布在不同节点中。
学习的思路:
1:什么是哈希函数?
2:什么是区块?
3:区块之间如何链接?
4:为什么不能修改链上的数据?
问题1:什么是哈希函数?
哈希函数维基百科:散列函数
视频讲解:
问题2:什么是区块?
区块链是一条马路,区块就是马路边上的一座房子,而且这个房子有统一的基本结构,下面这张图会解释的比较清楚,我相信你到这里还是很困惑,什么样的哈希值是合法的?怎么调节Nonce值才能产生合法的哈希值?先把这问题记着,我们后续会详细阐述。
问题3:区块之间如何链接?
如果有编程基础的同学肯定学习链表,链表是通过指针(地址是唯一的)来指向下一个节点,在区块链中每个Block的哈希值也是唯一的,我们通过本节点的prev和上一节点的Hash相同,就能确保区块链的顺序是正确的。
注释:产生的新的节点的时候,先拿上一节点(父节点)的Hash来产生自己的Hash,这个过程有很多计算节点来抢先算出合法的哈希值(算出来的过程就是挖矿),谁先算出来,产生区块的奖励(比特币,工作证明)就给谁
问题4:为什么不能修改链上的数据?
我们已经解决了区块链的几个基本概念,我相信此时的你应该对区块链有了最基本的认识,不用着急,后面我们对区块链会有更加详细的解释。
如果您感觉这篇文章对你有帮助!
请您点赞+关注+转发!
这是对我最大的鼓励,我将更有信心将它做下去!
VX公号:YouCodeMe
知乎专栏:Golang
谢谢点赞的亲们!!
领取专属 10元无门槛券
私享最新 技术干货