HiBlock区块链社区

区块链100讲:区块链为什么叫“区块”“链”?

2018-05-04  本文已影响27人  宇宙永恒
image

《区块链100讲》第1讲我们用一个村里的账本解释了什么是区块链,今天继续第2讲,看看什么是“区块”,它们是怎么“链”起来的,“区块”里包含了什么?

1

区块链由区块链接而成

区块链由一串使用密码学算法产生的区块链接而成。每一个区块上写满了交易记录,区块按顺序相连形成链状结构,也就是区块链大账本。

区块链技术把数据库中需要存储的数据分成了不同的区块。以比特币为例,矿工在生成新区块时,需要根据前一个区块的哈希值、新交易区块和随机数,来计算新的哈希值和随机数,每个区块通过特定的信息链接到上一区块的后面,前后按时间顺序连接起来呈现一套完整的数据。也就是说每一个区块都是在前一个区块数据的基础上生成的,该机制保证了区块链数据的唯一性

每个区块链数据库本质上是一个按照时间顺序串联起来的事件链,它使用协议规定的密码机制进行了认证,保证不会被篡改和伪造

因为交易记录细微的变化也会彻底改变哈希值的结果,所以矿工在进行算力竞争的时候无法作弊,每个矿工都必须等前一个区块生成之后才能根据前一个区块的数据开始计算符合条件的随机数,保证了挖矿的公平性。

2

区块结构

区块是使用密码学方法产生的数据块,数据以电子记录的形式被永久储存下来,存放这些电子记录的文件我们就称之为“区块(block)”

区块是区块链的主要数据存储结构,一个区块包含区块头和区块体两个部分。

image

(来源于否子戈博客)

而区块头则是区块的重头戏。对于一个区块而言,它就是一个特殊的数据结构。区块头包含了一些固定信息:

除了这些字段,如果做一个自己的区块链,还可以添加一些其他信息到区块头中。以比特币的区块链为例,每个区块记录了这几个内容:神奇数、区块大小、数据区块头部信息、交易计数、交易详情。

image

(来源于动脉网)

区块体****是保存具体内容的位置,在比特币的区块链中,区块体保存的是一段时间的交易信息。在其他区块链中,这里可不一定保存的是交易信息,可能是其他信息,总之区块体是保存该区块链用来做什么业务的具体业务信息。

在部分区块链实现中,一个区块还可以有区块尾,用来保存一些区块创建结束之后的信息,这些信息可能是区块头和区块体已经创建完以后,附加上去的,比如区块的长度、容量等信息。

区块链的数据存储方式通过两个方式来保证数据库的完整性和严谨性。

3

链式结构

区块和区块之间是如何“链”起来的呢主要依靠各个区块之间的数据区块头部信息链接起来,头部信息记录了上一个区块的HASH值(通过散列函数变换的散列值)和本区块的HASH值。本区块的HASH,又在下一个新的区块中有所记录,由此完成了每个区块的信息链。

image

(来源于否子戈博客)

同时,由于包含了时间戳,区块链还带有时序性。时间越久的区块后面所链接的区块越多,修改该区块所花费的代价也就越高。区块链采用了密码协议,允许计算机(节点)的网络共同维护信息的共享分布式账本,而不需要节点之间的完全信任。

该机制保证,只要大多数网络按照所述管理规则验证发布到分类账(即,链)的块,存储在区块链中的信息可被信任为可靠的。这确保交易数据在整个网络中一致地复制。分布式存储机制的效果通常意味着网络的所有节点都保存了区块链上存储的所有信息。这里借用一个形象的比喻,区块链就好比地壳,越往下层,时间越久远,越稳定,不会发生改变。

由于区块链将从创世块以来的所有交易都明文记录在区块中,且形成的数据记录不可篡改,因此任何交易双方之间的价值交换活动都是可以被追踪和查询到的。这种完全透明的数据管理体系不仅从法律角度看无懈可击,也为现有的物流追踪、操作日志记录、审计查账等提供了可信任的追踪捷径。

区块链在增加新区块的时候,有很小的概率发生“分叉”现象,即同一时间出现2个符合要求的区块。对于“分叉”的解决方法是延长时间,等待下一个区块生成,选择长度最长的支链添加到主链。“分叉”发生的概率很小,多次分叉的概率基本可以忽略不计,“分叉”只是短暂的状态,最终的区块链必然是唯一确定的最长链。

从监管和审计的角度来看,条目可以添加到分布式账本中,但不能从中删除。运行专用软件的通信节点网络以对等方式在参与者之间复制分类账,执行分布式分类账的维护和验证。在区块链上共享的所有信息都具有可审计的痕迹,这意味着它具有可追踪的数字“指纹”。分类账上的信息是普遍和持久的,并创建可靠的“交易云”,使数据不会丢失,所以这项技术从根本上消除了交易对手之间的单点故障风险和数据碎片差异。

本期就讲到这里,下期继续。什么是区块、它们如何“链”接,你明白了吗?

本文内容来源于:火币网、36kr

补充阅读:区块链100讲:从村里的账本来看什么是区块链

万字深度长文!从原理到趋势,解剖风口上的区块链技术(动画)

活动推荐

主题:Blockathon,挑战区块链开发,敢不敢来!(点击了解详情)

5月25-27日,Blockathon2018北京站,招募100名开发者一起挑战区块链开发。

开发者免费,报名需审核。识别下图二维码或点击“阅读原文”即可报名参加。

image

点击“阅读原文”即可报名。

上一篇下一篇

猜你喜欢

热点阅读