表妹问:区块链是啥?

4d0af81aa17ddd2b2f2297231cabf740.png

编 辑:彭文华

来 源:大数据架构师

彭友们好,我是老彭啊。最近小表妹又转行了,去了一家区块链公司。区块链太复杂了,表妹的小脑袋瓜感觉有点转不过来了。

唉...关键时刻,还得老彭出马

5e14902b3fe2f8e15a405fa486445083.png

8a567102ea6ddd0c72b24ffe4f8ec532.jpeg

区块链是个啥?

表妹在找我之前,其实找过很多人问。但是问了一圈,也查了一堆资料,都没明白区块链到底是啥意思。 

很多资料里都说区块链具有两大核心特点:一是数据难以篡改、二是去中心化。

还有一个解释:区块链就是账本,每个人都记录交易数据,还有一堆的加密算法保证数据不会被破解。

另外还有一个机制,保证计算出来结果的人获得奖励,以保证整个机制良性循环。

然后小表妹就生出了一堆的小问号:

6c6fe42648b3e99fca37416cc820797c.png

21d8e8d77c7e294713d30f33583904c2.png

有些时候,一些技术文档的确不太容易让人明白。就像是各种法律条款一样,为了保证严谨性,必须要写得足够“拗口”,但是这样就丧失了可读性。

如果只是了解区块链的特性,就很容易理解偏了。比如数据难以篡改,以及去中心化。

区块链在特殊情况下会分叉(比特币就分叉过),也曾经出现过被篡改的情况(51%攻击)。

而且现在很多区块链应用并不是去中心化的(优先的节点掌握在权威机构手中),那是不是就不叫区块链了?

所以,咱得从根上理解,知其然,知其所以然。这样才会明白啥叫区块,啥叫链,为啥又能防止篡改,为啥又能去中心化。

1119e91c0110b34ae9bfea1f950b0725.jpeg

区块链的数据结构

其实表妹的这些问题,用数据视角一看,就全解决了。区块链,有两个词组成:1、区块;2、链。

区块是什么?

链又是什么?

区块链是由区块相互连接形成的链式存储结构,区块就是链式存储结构中的数据元素,其中第一个区块被称为创始区块。

区块链的数据结构由两部分组成:区块头和区块体。

区块头又包含几个核心的部分:

1、父区块哈希值,就是上一个区块的哈希地址。

2、各种参数(挖矿难度、时间戳和随机数),用来设定游戏规则的。时间戳其实就是给区块盖个章,它记录的是本区块被创建的精确的时间

3、默克尔根, 由区块主体中所有交易的哈希值逐级两两哈希计算,用来确定全局唯一的。

至于区块体, 具体要记录的内容。如果上链的是证书,那么区块体里就存证书。如果上链是交易,那么区块体就是一个区块中所有的交易记录。

比如比特币系统的每一个区块主体大概是2500笔交易记录,交易记录就是转账信息。

这些就是全部的数据结构了。区块,就是一个数据结构的标准。这个数据结构是一个半结构化的。其中区块体里的内容是开放的,写啥都行。

总结一下,就是下图所示:

59171db21125cc5449e5607db36c4907.png

25f222966ea7c82bbf00b7970d6f52a7.jpeg

防篡改和去中心化

数据结构明白了,但是怎么形成链呢?又怎么保证数据无法篡改呢?又是如何做到去中心化的呢?

很简单。

上面这个结构,是所有人都需要遵从的一个数据标准。利用这个标准,每一个节点在发生一个业务的时候,都同时做一个相同的动作:

把这条信息在自己的区块链小本本上记录下来。

c78193e875669d8c4125db858c9133a3.png

就像是老师在讲台上讲课,小朋友在记笔记一样。老师说1+1=2,所有小朋友都在笔记本上写一句“老师说了,1+1=2"。

老师说的内容是实际发生的业务,小朋友记录的内容就是在各自的小本本上记录的“账本”。

如果我们想知道老师上课讲了什么内容,应该怎么做?最好的办法就是装一个监控,回去看视频就好了。但是装监控是学校行为,必须要有一个权威进行背书。

当然,我们还有另外一个办法:看看小朋友们记录的是什么。因为所有人的内容都是一样的,所以想知道老师说的是什么,只需要随便拿小朋友的笔记出来看看就行了。

如果有一个小朋友记错了,就再看看其他小朋友记录的是什么就行了。我们只需要保证一半以上的小朋友记录的是正确的,就能证明老师上课讲的内容真实的被记录下来了。这时候不需要一个权威机构(比如学校)背书。

这就是防篡改,以及去中心化。防篡改是区块链的一大应用场景,比如证书的验真。所以现在很多证照、发票等需要验真的场景都用区块链实现了。

但是,到这里还没说清楚什么是“链”

c9ce6b53fd375e2c154867b468ec545d.jpeg

其实链很简单,数据结构里已经说清楚了。区块头里有一个“父区块哈希值”,这就是链接上一个链的信息。

我们按照区块链的数据结构写一个简单的例子:

33b0711822ffb5f9ba4903db92d97d39.png

第一个区块就是创世区块。假设第一个区块里的信息是"老彭存了10000块钱到区块链银行"。

然后又开了第二个区块:

ae12ef7fbf8eaea6808dd3449d123cce.png

这时候,区块头里的父区块哈希值就是创世区块的哈希值。这样,第二个区块和第一个区块就“链”上了。

在第二个区块里,记录的是“老彭又存了10000块钱到区块链银行”。

然后我们继续开第三个区块:

68027caba9c26ee8a29d3b1da45bef11.png

第三个区块的父区块哈希值则是第二个区块的哈希值。这时候第三个区块和第二个区块又“链”上了。这就形成了一个环环相扣的“区块链”。

在这个块上,记录的是“老彭从区块链银行取走了10000块钱”。

这样,我们就能从第三个区块一直向上追溯,看看老彭我到底在区块链银行里干了些啥。因为链一直可以向上追溯,所以我干的事情都能全部挖出来。

这就是区块链的另一个应用场景:溯源。比如疫情期间,北京所有冷链食品都上链了,能找到该产品的供应链链条。

‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

2c4ae7baac9a11750db21f4573a208d7.png‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

北京冷链用的是长安链。咱不用管啥是长安链,反正就是一种区块链就完事了。

嗯,反正说到这里,表妹也就明白了。老彭我也就可以去睡觉了~~~晚安,明天见~~

19b04d813202a3172379e9d65f3b6920.png

扩展阅读:公众号“大数据架构师”后台回复“区块链”即可下载【信通院区块链白皮书】。

更多精彩:

数字货币如何帮助中国称霸全球

数据标准和数据规范到底有什么区别???

相比DCMM,DMBOK为什么没有数据标准?

建仓时,如何评估数据模型建的好不好?

脉脉热帖:数仓真的是太无聊了...

数仓到底要分多少层? 

阿里的《大数据之路》吹牛了?

数仓已死?数据湖当立!

数仓的建模和BI的建模有啥区别?

5d88ed5c088bd4e4145f6039082cc9b8.gif

排版 | 老彭

审校 | 老彭  主编 | 老彭

猜你喜欢

转载自blog.csdn.net/weixin_52346300/article/details/125863555
今日推荐