用糖葫芦结构解释区块链基本原理 附上一个脑洞
哈希再哈希,哈希连成串,一串接一串,就是区块链。——村头二旧 区块链四句口诀
作者:村头二旧
有一种来自东方的暗含着数据结构和经济模型的神秘食物,名为糖葫芦。
我们暂时不用把比特币和区块链分开来讲,因为比特币背后的技术之一是区块链,而区块链这个东西和比特币是一同出现的,如果咬文嚼字的话,区块链比比特币出现的要晚,为什么呢?因为比特币这个词是先出现的,过了几年区块链blockchain这个词才出现。
本系列文章会用最通俗的话语,讲解比特币和区块链的最基本的原理,网上的很多比特币通俗化讲解,都会把密码学的部分淡化甚至直接不说。但是如果没有密码学的发展,比特币是不可能出现和安全使用的,但是你对着年长的亲戚或者数学不好的朋友,应该怎么去解释比特币呢。这种解释比特币和区块链,要求既能讲得清楚又充满了丰富的细节。咱们现在就尝试去做这个工作。
比特币是什么?1,账本;2,网络;3,货币。
我给你赚了10btc,这样一个动作,包含了以上三个特性,这个转账就是一个信息在账本上,账本信息会公开广播到比特币网络,而我转BTC也就是这个网络上流通的货币。所以比特币不单单指货币,还是一个记录信息无法篡改的账本网络。
区块链的技术主要说的是它的账本网络性这一个方面,也就是说为什么市场上之前提到了有币区块链和无币区块链。因为区块链上面确实不一定要流通货币,流通信息就可以了,虽然听起来和互联网似乎没区别,但是这不是比互联网更慢更安全嘛。下面我会讲出区块链的基本原理。
首先,简单讲一下我们平时使用的记账方法,复式记账法。复式记账法在地球上出现了约五百年,其实,这只是学术界的一种说法,如果较真的话,复式记账法还能再往前推几百年,甚至更久。
什么是复式记账法呢?感觉似乎很复杂,其实很简单,也就是A向B转了100元钱,支付宝或者银行等金融机构,看到用户的这个行为,在A的账户上减去100元,在B的账户上加上100元。多个账户的时候也是同样操作,就是对不同的账户数字进行加减行为。所以叫做“复式”嘛。
复式记账法为人类一直服务工作到今天,直到比特币区块链的出现,复式记账法才出现了退休的可能性。
我向你转了1个BTC,没有中心化的机构记账,而是点对点的,那怎么做?其实就是我有个交易信息出现了,我给你转1btc这个信息就是交易信息,相当于记了一笔账。那这个账呢,一秒钟,比特币网络大概有7次,十分钟就是7*60s*10min,也就是4200次,也就是每十分钟会有一个账本产生,这个账本就是区块。账本上面记录着交易的信息(又称区块体),还有版本号、默克尔根、难度值,上一个区块的hash也就是prehash等等信息(又称区块头),后面再展开。
上图并不用太在意,我放这个图的目的是说像这样看似复杂的结构其实质是非常简单的。
每个区块把所有信息简化到极致剩下最关键的就是交易信息+上一个区块的hash值。
什么是Hash值?继续简化模型,例如SHA256是一种加密算法,任何信息进去都会出来一串长度恒定的字符串,你输入一句话还是放进去一个图书馆或者放入一百部电影出来的字符串是一样的。下图就是我从网上随意找了一个在线小程序进行一次hash运算的结果显示。
举个例子:
网上很容易找到Hash加密的在线工具,输入“区块链就是糖葫芦”SHA256算法之后的hash码如下,
29a3560dbfd4108a69684b0f4315244feb560ca22a58bb41f2d74ce3ed3c8b59
每个区块形成后都会hash一下成个hash码,这个只能正着推,如果知道hash码,想反推内容,几乎是不可能的,这也就是为什么说区块链是信任的永动机的密码学基础。哪怕增加一个空格出来的hash值就是不同的,只能向前不能向后。
所以,就是个糖葫芦。为什么这么说,下面会认真讲解。
各位请搽干口水,上图中一根签子上面有五个糖葫芦,每个糖葫芦就类比到一个交易信息,那么如果一个签子上面是4200个糖葫芦,就是比特币网络十分钟产生的一个区块,就是串了一串糖葫芦。
对着这个糖葫芦串儿,hash一下,有了hash码,串到下个糖葫芦串的上面,然后盖个章注名时间(时间戳),再记录些难度值等等的信息,就是一个区块。不过,根据之前的极简化的结构,就是串一串糖葫芦,hash一下,把hash码放到下一个串串上加上4200次交易信息再hash一下,然后对新的糖葫芦串子再hash一下,放到下一个串串上以此类推。这样一个串也就是一个区块,糖葫芦结构不断地连接下去,就是区块链Blockchain。
所以,有了四句口诀:
哈希再哈希,哈希连成串;
一串又一串,就是区块链。
这就是区块链的基本结构。
那你不给钱,人家不会白白帮你串糖葫芦(记账、打包区块),所以比特币发明人中本聪就想出了一个激励机制,谁串糖葫芦给谁钱,刚开始2009年的时候,串一串糖葫芦,打包一个区块奖励50个比特币,四年减半,然后是25个,然后现在就是12.5个,明年六月左右就变成6.25个,争夺串糖葫芦的权利,就是争夺记账权,用专业矿机去争夺,这个过程叫做挖矿。
还要再深入了解默克尔根或者默克尔树的话,也可以同样类比糖葫芦串结构,会让你的思路一下子清晰起来。
下面是脑洞时间(娱乐时间)。
很多年前一个英国年轻人不好好学习,跑到院子里苹果树地下,睡觉,然后熟透的苹果掉下来砸到了他,他想了一个深刻的问题,“为什么苹果要向下落到地面,要砸到我扰人清梦”一般人的解决方案是什么?换个地儿睡觉呗。这个年轻人不这么想,他想如果我睡的地方掉下来的不是苹果而是橘子当然没有问题,如果我睡在椰子树下,或者榴莲树底下,怎么办?如果屋子里的天花板掉下来呢?人类是幸运的,如果掉下来一个榴莲,这个年轻人直接跪了,也就没有后来的万有引力了。如果苹果树长到月亮上,还会砸到我吗?这样思维的试验开启了万有引力理论。苹果,牛顿的苹果,图灵的苹果,乔布斯的苹果。
一枚小小的水果竟然影响了人类历史的进程?还有什么水果可以和苹果在文化意义上匹敌吗?
现在有了就是山楂,糖葫芦。
一名年轻人名叫中本聪,来到遥远的东方寻求神秘的智慧力量,被北京胡同口的大爷教训不务正业后给他做了一串糖葫芦,年轻人想,数据能不能像糖葫芦一样,串起来,然后加密(加上糖浆),后,再串起来,再串起来,但是,人家的设备人家的计算机为啥要帮你串糖葫芦呢?之前很多人(比如密码学家戴维)都想过要把数据串起来,但是,都没有成功。这时候,胡同口的大爷开口了,“年轻人,看你在发愣,难道准备不给钱吗?不给钱送你一串最多了,再要我给你串糖葫芦,可就没门儿了”中本聪突然惊醒,报酬,奖励,钱……开了天眼的中本聪,付过钱之后说,这就是激励机制,没有人白白帮你串数据。于是,串糖葫芦这个事儿,启发了中本聪两个事情:数据结构和经济模型。
这就是中本聪的故事,比特币的起源。
起源于古老的东方一种暗含着数据结构和经济模型的神秘食物,糖葫芦串。