区块链,现在很火吧?你不知道这个词都不敢出门是吧?想了解一下呢,去哪里?去网上找找看呗。
但是问题就来了,网上资源那么多,他们说得都对吗?通熟易懂的吧,很多在理解上都有所偏差,太技术了吧,很多技术小白朋友们看不懂。更过分的是,蓝教兽最近还在某某著名卫视上看到某某著名专家说:“区块链网络上的节点就是所谓的区块了”。没看懂这句话?不知道什么是节点什么是区块?没关系,把这句话记住了,今天蓝教兽就用“假如你的小学班主任懂得区块链”为命题,从外到内一步步为各位小朋友解开区块链的神秘面纱。文章的最后希望各位再回过头来看看这位专家说的话,如果你笑了呢,那么蓝教兽的血汗也就没有白费了。
故事开始之前,蓝教兽先来说一下故事主线跟出场人物
事件:区块链小学3年3班做好事集红花活动 (为什么用集红花呢?因为现在一说到区块链大家就只想到虚拟货币,蓝教兽要跟你们说区块链本身是可以在各个领域应用的,虚拟货币不过是冰山一角)
小红花上报时间:每天放学后
人物:
班主任
特征:无论如何要保证做好事集红花活动的公正性
蓝小兽
特征:小时候的蓝教兽,土豪小朋友(是的,蓝教兽一直都是土豪),不想做好事但却想尽办法办法要在红花小本本上给自己多加几个小红花
代表网络黑客
班长
特征:跑龙套,爱吃冰淇淋
在中心化系统中表示中心节点(Central Node),可以理解为网络中的服务器
其他班级成员
特征:跑龙套
代表系统中的节点(Node),可以理解为你的个人电脑,手机等等终端(所以所谓的节点就是这个鬼了)
故事一:区块链的前身
话说这是蓝教兽还在上小学三年级的时候,那天新的学期刚刚开始,班主任突然向所有小朋友了分发了记录全部小朋友的小红花数量的小本本。后来蓝教兽才发现,班主任是在考量了下面两种方法之后才做出来的决定。
1. 中心化管理系统 (Centralized System)
让班长来管理小本本,其他班级成员要是做了好人好事就可以到他那里证明并在本子上给他盖上小红花。班长作为中心节点拥有绝对权威,如果班长将本子丢失,那么所有人的小红花记录将全部遗失。而且,这样的系统根本无法阻挡蓝小兽,小兽可以买个冰淇淋贿赂班长让他帮忙改改红花数,或者可以直接把小本本偷过来直接给自己添加上去。
很多我们现在使用的系统就是这样的中心化管理系统,比方讲银行系统,我们的个人及账户信息都是储存在银行中央系统这个班长这里。虽然说这个系统安保做得很到位,但是在安全领域是没有绝对这个词的,一旦有黑客能够成功入侵系统,我们的数据将被任意修改。害怕吗?那怎么才能保证我们的数据安全呢,就是要做到黑客一辈子都入侵不了,但是很显然中心化系统并没有办法做到这种水平。
所以班主任一想到蓝小兽这个麻烦虫就毫不犹豫地实施了方案二:
2. 去中心化管理系统 (Decentralized System)
现在班主任觉得让班长管理小红花记录本并不可行,所以决定让全班小朋友各自管理一个小本本。小朋友们从此不用看班长脸色做人了 (想想之前还得跟在班长屁股后面拍马屁,蓝小兽听到这消息也是兽颜大悦)。谁要是需要申请添加小红花就要在班里大声喊出来并向全班出示好人好事证明,其他人投票表决通过则成功添加小红花,然后大家就在自己的本子上记下某某小朋友做了好人好事,奖励小红花若干。这就是传说中的分布式账本(DistributedLedger),可以说是区块链的老母亲了。可是后来蓝小兽就发现不对劲了,现在想要在自己的小本本上给自己偷偷加上一个小红花也是行不通的,因为明天放学所有人一比对小本本就会发现蓝小兽造假了,从而驳回他给自己偷偷加上的小红花。而如果蓝小兽想要把破解做到位,那么小兽要买通的人也就更多了,难度也就越大,所以说这样的系统相对于之前的系统是更加安全可信的。
故事二:什么是区块链
你以为这样就难倒蓝小兽了吗?蓝小兽在一次课间操发现所有同学都出教室了,小兽把所有同学的账本都搞到手并在每一个本子上都给自己多添加了10个小红花。可惜就在即将成功的时候班主任刚好路过发现了小兽不耻的行径。回到办公室班主任痛定思痛,决定对这个集红花系统进行再一次改进。
是的,什么是区块链马上就要浮出水面了!
班主任宣布在之前的基础上,每天在一张新的纸条上收录当天的好人好事。原先的本子只是用于临时记录当天的好人好事。是不是有点混乱,为什么又要纸条又要小本本的。因为小本本只是记录了当天的好人好事,而纸条则记录了更多的信息以确保记录不会被像蓝小兽这样的同学篡改。
这张纸的初始设计如下:
时间戳就是纸条收录的时间,而上一张纸条的认证信息就是照抄上一张纸条的认证信息。那么这个小红花值是怎么求出来的,区块链里面使用默克尔树(Mercle Tree)算法来计算,小红花值就是默克尔值(MercleRoot), 可以理解为一个把当天所有小红花记录整合到一条信息里面的算法。下面是一个简化版的默克尔树解析,首先每个好人好事的记录都需要被不可逆加密,这里简单使用(序号+小红花数)表示, 然后每两个记录再进行不可逆加密,这里简单使用两数相乘表示,而这样的两两相乘会最终收拢成一个数字,这个数就可以简单理解为默克尔值:
但是蓝小兽还是没有死心,有一次小兽又抓住一个机会准备给自己修改小红花,首先小兽要把自己纸条上记录改了,然后开始要重新计算一遍小红花值,算完之后才发现,原来这个小红花值会被带到下一张纸条,所以小兽还要同时修改接下来的所有纸条,蓝小兽当场就懵逼了,因为接下来还得在全班同学的小纸条上修改同样的信息,感觉同学们回来上课了自己可能连一半都改不完。蓝小兽也就只能就此作罢了,真是心有不甘。
故事三:区块是怎么产生的 -- 挖矿
虽然解决办法已经找到了,但是由谁来每天放学后来收录这张纸呢。毕竟这是一个去中心化系统,收录也应该由参与者自己解决,但是怎么让参与者自愿帮助收录呢。班主任想出了一个办法,每天放学布置一道数学题,谁能先解答题目那么他就负责收录这张纸,因为收录纸条是为班集体服务,所以收录纸条的同学将得到10个小红花的奖励。而最先解答出问题的小朋友就根据纸条格式收录好今天所有的好人好事,然后把纸条复印给其他所有同学。通过优先解答问题并封存纸条的便是挖矿了,挖矿成果便产生新的区块,解答的人则获得相应的奖励。因为每一个区块都跟上一个区块紧密联系着,查看一个人的小红花数量也需要查阅所有小纸条,所以这些小纸条连在一起就变成了区块链。而所谓的挖矿则是区块链网络上的节点互相竞争帮助社区封存区块,从而获取奖励的一种方式。
现在回到我们最初的问题,什么是区块?区块就是这张纸条。节点是区块吗?节点明明是我们的小朋友好吗。
这就是如果你的班主任懂得区块链的故事了,真正的区块链还涉及到很多不可逆加密技术------哈希值(Hash),所以在安全性上来讲还要来得更好。这篇分享剔除了很多繁琐的技术内容,希望能帮助大家一窥区块链本尊。
真正的区块其实是长这样的:
长按二维码关注IcoLah,了解区块链最新动态