当前位置:首页 > 物联网 > 区块链
[导读] 开篇 很多年没有看到像区块链这样有生命力的事物了。它像一个欣欣向荣的新大陆一样,把技术理想主义者,围观者,投资者,投机者,甚至流氓骗子各色人等聚集在一起。 在此乱象中,

开篇

很多年没有看到像区块链这样有生命力的事物了。它像一个欣欣向荣的新大陆一样,把技术理想主义者,围观者,投资者,投机者,甚至流氓骗子各色人等聚集在一起。

在此乱象中,我深感于现在区块链,观点太多,事实太少。我作为一个个体去摸这头大象的时候,比较擅长的是以技术的角度切入,看它到底是如何工作,如何发展的,从而把这一只象腿摸清楚。我把自己的学习记录下来。这些记录可能很入门,甚至有错误,但是或许对于同样感兴趣的人有所帮助。

链表

从技术角度看,区块链的底层是精妙设计的链表数据结构①。

什么是链表呢?就是有顺序的一串数据块,一个跟在另一个后面,这个顺序是严格规定的,不能乱。区块链,食物链,供应链,资金链,甚至鄙视链,描述的就是这样有顺序的一串物品②。

我们以比特币为例,来剖析这个链表。

为了构成链表,链表的数据块里面有两个基本的部分:区块头,和数据本身。区块头里面有一个字段指明了上一个区块的id,而所有区块的id既不是顺序的,也不是随机的,而是区块头这80个字节的两次哈希值。

哈希 Hash

这可能是区块链里面最让非理工科出身的学习者费解的概念了。听起来很吓人,实际很简单。哈希就是一个算法,能把任意长度的内容(无论是一个数,还是文章,图像,视频,总之就是任何数字化的信息)转换成一串看似没有规律的固定长度的数字(哈希值),并保证结果唯一,而从这个结果几乎没有办法推算出原始数据。比特币用的是叫做SHA256的哈希算法。

比如: 1 的SHA256哈希结果是: 0x6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b

2 的SHA256哈希结果是:

0xd4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35

我们把这个哈希值看成乱码好了,因为唯一的规律就是没有规律。同时,在原始数据中哪怕有一点点改动,产生的哈希就会产生巨大的变化。这个特性常常用来做“数字指纹”。

用日常例子来打个比方。比如按照配方做菜就是个哈希过程:有了配方精确的做菜容易,而从菜品推测出配方难得多。给出两个数算出他们的平方和比较容易,给出一个数求是哪两个数的平方和就难很多。哈希算法就大概这么个意思。

区块头和id

刚才讲到,每个区块的id从它的区块头的80个字节数据两次SHA256哈希得到。区块链的一个精妙的设计就是,它对于的id是有要求的。只有满足特定的规则的id才是合法的。这个规则就是:区块头的哈希值必须小于一个数,直观看到的就是,每个新的区块的长达64个字符的id必须以比如18个零开头④,一个合法的区块id是长成这个样子的: 000000000000000000 3c19cdbebe2df5c7f82558e2c80a0c7341e25072b732a2

区块头这80个字节里面的6个字段,5个是不能改的,它们是:

1. 版本号 最近一直是0x20000000 ⑥

2. 上一个块的哈希值 这个是排队时候的队尾,改了就排不到队里了

3. 数据的哈希 这个是区块里的交易数据,也不能改③

4. 时间 不能改,就是现在的时间。

5. 难度 每个给定的时间全网的难度是一样的④

只有第六个字段是随便写的,这个数字叫做No nce

6. No nce

网络上任何一台机器只要找到一个合适的数字填到自己的这个区块的No nce位置,使得区块头这6个字段(80个字节)的数据的哈希值的哈希值以18个以上的0开头,谁就找到了那个金子⑦!既然我们无法事先写好一个满足18个0的数字然后反推Nounce,唯一的做法就是从0开始一个一个的尝试,看结果是不是满足要求,不满足就再试下一个,直到找到。

这个过程被戏称为挖矿。其实我觉得这个过程和淘金更像。淘金者做的事情很简单,却很重复,就是对于河里所有沙子,拿起来一个,判断是不是金子。如果不是,扔掉再拿一个。如此重复几百万次,总有一个是金子。而在区块链世界,那64个十六进制的字符串,第一个是0的概率是1/16,第二个也是0的概率再乘以1/16,第18个还是零的概率可想而知。所以大家为了找到这个金子一般的No nce一般要花费十几亿次尝试,虽然每次算哈希的工作并不那么费时间,重复十几亿次还是要耗费巨大的计算机资源和电力资源。

比特币体系的另外一个精妙设计就是它动态的调整难度,以无论有多少台矿机在寻找那个珍贵的正确的No nce,都保证大约每10分钟产生一个块。这也是一个类似经济学的算法。它每2016的块(也就是2周)就计算一下前面2016个块平均每个块花了多少时间,如果低于10分钟就按照低的比例调高难度,如果高于10分钟调低难度。这样矿机无论增减,比特币都可以按照每10分钟找到一个块的金数字并且生成一个合法的块。

找到了那个金子一样的数字以后呢?

谁找到了那个数字,谁都可以向全网广播这个新块了。而真正的财富秘密在于在这个新块的数据区的交易数据里面,第一条交易中,挖矿的人可以凭空的给一个地址(通常是自己的)发放12.5个比特币。这是规则认可的,就好像赌场里荷官可以合法的从桌上拿一部分钱进自己的口袋一样。这12.5个比特币是比特币网络上唯一没有发款人,只有收款人的交易,新的比特币就这样凭空诞生了。这个激励每4年减半,再过两年就只有6.25个了,这样2140年左右两千一百万个比特币就基本上全产生了并且不会增加了。

区块链的网络

刚才描述的是在一台电脑上的样子。实际上,这一串数据是通过P2P网络分布在无数的电脑(节点)上的。任何矿工找到了那个金子数字后就立刻全网络刚播新找到的块。如果所有节点在一个大的聊天室里面倒也简单,但实际上这个广播是跟烽火台一样接力的传递的。每个节点告诉周围的,然后它再告诉周围的。有意或无意的,就会有两个或多个矿工近似同时对于网络的一部分分别宣布发现了新块。这个时候的规则就是,每个节点只会接受最长的链并且丢弃较短的链⑤。经过几个节点后一定有一个胜出,另外一个被抛弃,而添加新块是需要算力的,最终一定是拥有最大算力的一方获胜。这也就是如果没有人掌超过50%的算力就无法控制区块链。

小结

以比特币体系为例,最底层就是一串这样以80个字节的区块头开始,约1M的数据跟着的数据。用哈希这样的算法,一层一层的锁定,形成了固若金汤的链条。再把它分布在成千上万的节点上,再又成千上万的矿机通过挖矿来保持算力高压,让篡改数据需要算力门槛。同时,任何人对于历史数据,哪怕就改了很小的一部分,数据的哈希就变了,区块头就变了,它的两次哈希结果就变了,它后面的块就连不上来了,就会被立刻发现。如此几层嵌套,一个人类到现在为止最为安全和防篡改的公共信息系统诞生了。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭