区块链技术《二》——技术架构

关键字

 去中心化

 

两个疑问:1.这个blockHash又不是内容的hash,怎么确保区块体内的信息不被修改呢?要是我不改blockHash,只改内容,那不是可以瞒天过海?2.如果有两个区块同时指向了一个区块,而这两个区块的区块体不一样,这该怎么办?

第一个问题,我们需要通过后面的挖矿和merkle tree两部分结合,知道这个原理。第二个问题,实际上,这种情况非常常见,挖矿成功的概率其实是100%,关键在于哪一位矿工先挖到矿,一般当矿工挖到矿之后,会向全网广播,其他没有挖到矿的矿工就会停止。但是由于网络延时等情况,可能在短时间内多个矿工一起挖到矿,他们都创建了新的区块,并且广播到了网络中。这种情况叫“分叉”。

 Merkle Tree是一种数据结构,比特币里面就是一棵二叉树,也就是每个父节点有两个子节点那种。我之前写过一篇文章《区块链如何运用merkle tree验证交易真实性》里面详细讲了一些Merkle Tree的原理以及问题。

 

区块链有两大缺点:1.要挖矿,还有分叉风险,也就是说一个数据放到区块链上,要等很久才能成为不可篡改的可信数据。2.分区块,数据被割裂存放,这给查询带来巨大的麻烦,非常影响效率。所以,区块链不适合那种即时性要求高的场景,无论是信息交换的即时性(例如聊天)还是查询的即时性(如搜索引擎)。

 

 

 

 

 

 

 

总结

 区块链不是万能的,某些服务明明中心化模式效率更高,成本更低,却偏要为了风口搞区块链化,那只能看韭菜长没长齐。还有一点令人担心的是,由于区块链上信息的公开透明,而且不可删除,是否会对个人隐私造成极大的损害,试想一下,当年给冠希哥修电脑的小哥通过区块链网络炫耀自己发现的照片……那对当事人的伤害……连人死了都不会消散……

 

附录

区块链技术组成及架构

区块链技术原理及架构

一文看懂 区块链底层技术 及其 架构设计(附图谱)

区块链技术基本原理之技术结构 

区块链技术系列之四:基础架构

区块链技术快速入门教程(非常详细)

posted @ 2020-04-24 23:33  杨兮臣  阅读(137)  评论(0编辑  收藏  举报