编 辑:彭文华
来 源:大数据架构师
彭友们好,我是老彭啊。最近小表妹又转行了,去了一家区块链公司。区块链太复杂了,表妹的小脑袋瓜感觉有点转不过来了。
唉...关键时刻,还得老彭出马
区块链是个啥?
表妹在找我之前,其实找过很多人问。但是问了一圈,也查了一堆资料,都没明白区块链到底是啥意思。
很多资料里都说区块链具有两大核心特点:一是数据难以篡改、二是去中心化。
还有一个解释:区块链就是账本,每个人都记录交易数据,还有一堆的加密算法保证数据不会被破解。
另外还有一个机制,保证计算出来结果的人获得奖励,以保证整个机制良性循环。
然后小表妹就生出了一堆的小问号:
有些时候,一些技术文档的确不太容易让人明白。就像是各种法律条款一样,为了保证严谨性,必须要写得足够“拗口”,但是这样就丧失了可读性。
如果只是了解区块链的特性,就很容易理解偏了。比如数据难以篡改,以及去中心化。
区块链在特殊情况下会分叉(比特币就分叉过),也曾经出现过被篡改的情况(51%攻击)。
而且现在很多区块链应用并不是去中心化的(优先的节点掌握在权威机构手中),那是不是就不叫区块链了?
所以,咱得从根上理解,知其然,知其所以然。这样才会明白啥叫区块,啥叫链,为啥又能防止篡改,为啥又能去中心化。
区块链的数据结构
其实表妹的这些问题,用数据视角一看,就全解决了。区块链,有两个词组成:1、区块;2、链。
区块是什么?
链又是什么?
区块链是由区块相互连接形成的链式存储结构,区块就是链式存储结构中的数据元素,其中第一个区块被称为创始区块。
区块链的数据结构由两部分组成:区块头和区块体。
区块头又包含几个核心的部分:
1、父区块哈希值,就是上一个区块的哈希地址。
2、各种参数(挖矿难度、时间戳和随机数),用来设定游戏规则的。时间戳其实就是给区块盖个章,它记录的是本区块被创建的精确的时间
3、默克尔根, 由区块主体中所有交易的哈希值逐级两两哈希计算,用来确定全局唯一的。
至于区块体, 具体要记录的内容。如果上链的是证书,那么区块体里就存证书。如果上链是交易,那么区块体就是一个区块中所有的交易记录。
比如比特币系统的每一个区块主体大概是2500笔交易记录,交易记录就是转账信息。
这些就是全部的数据结构了。区块,就是一个数据结构的标准。这个数据结构是一个半结构化的。其中区块体里的内容是开放的,写啥都行。
总结一下,就是下图所示:
防篡改和去中心化
数据结构明白了,但是怎么形成链呢?又怎么保证数据无法篡改呢?又是如何做到去中心化的呢?
很简单。
上面这个结构,是所有人都需要遵从的一个数据标准。利用这个标准,每一个节点在发生一个业务的时候,都同时做一个相同的动作:
把这条信息在自己的区块链小本本上记录下来。
就像是老师在讲台上讲课,小朋友在记笔记一样。老师说1+1=2,所有小朋友都在笔记本上写一句“老师说了,1+1=2"。
老师说的内容是实际发生的业务,小朋友记录的内容就是在各自的小本本上记录的“账本”。
如果我们想知道老师上课讲了什么内容,应该怎么做?最好的办法就是装一个监控,回去看视频就好了。但是装监控是学校行为,必须要有一个权威进行背书。
当然,我们还有另外一个办法:看看小朋友们记录的是什么。因为所有人的内容都是一样的,所以想知道老师说的是什么,只需要随便拿小朋友的笔记出来看看就行了。
如果有一个小朋友记错了,就再看看其他小朋友记录的是什么就行了。我们只需要保证一半以上的小朋友记录的是正确的,就能证明老师上课讲的内容真实的被记录下来了。这时候不需要一个权威机构(比如学校)背书。
这就是防篡改,以及去中心化。防篡改是区块链的一大应用场景,比如证书的验真。所以现在很多证照、发票等需要验真的场景都用区块链实现了。
但是,到这里还没说清楚什么是“链”
链
其实链很简单,数据结构里已经说清楚了。区块头里有一个“父区块哈希值”,这就是链接上一个链的信息。
我们按照区块链的数据结构写一个简单的例子:
第一个区块就是创世区块。假设第一个区块里的信息是"老彭存了10000块钱到区块链银行"。
然后又开了第二个区块:
这时候,区块头里的父区块哈希值就是创世区块的哈希值。这样,第二个区块和第一个区块就“链”上了。
在第二个区块里,记录的是“老彭又存了10000块钱到区块链银行”。
然后我们继续开第三个区块:
第三个区块的父区块哈希值则是第二个区块的哈希值。这时候第三个区块和第二个区块又“链”上了。这就形成了一个环环相扣的“区块链”。
在这个块上,记录的是“老彭从区块链银行取走了10000块钱”。
这样,我们就能从第三个区块一直向上追溯,看看老彭我到底在区块链银行里干了些啥。因为链一直可以向上追溯,所以我干的事情都能全部挖出来。
这就是区块链的另一个应用场景:溯源。比如疫情期间,北京所有冷链食品都上链了,能找到该产品的供应链链条。
北京冷链用的是长安链。咱不用管啥是长安链,反正就是一种区块链就完事了。
嗯,反正说到这里,表妹也就明白了。老彭我也就可以去睡觉了~~~晚安,明天见~~
扩展阅读:公众号“大数据架构师”后台回复“区块链”即可下载【信通院区块链白皮书】。
更多精彩:
数字货币如何帮助中国称霸全球
数据标准和数据规范到底有什么区别???
相比DCMM,DMBOK为什么没有数据标准?
建仓时,如何评估数据模型建的好不好?
脉脉热帖:数仓真的是太无聊了...
数仓到底要分多少层?
阿里的《大数据之路》吹牛了?
数仓已死?数据湖当立!
数仓的建模和BI的建模有啥区别?
排版 | 老彭
审校 | 老彭 主编 | 老彭