首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

区块链的构成

一、什么是区块?

区块链由一个个区块(block)组成。数据通过载体形成文件,永久记录在数字货币网络上。我们把这个载体称之为区块(block),每一个区块就是一个数据库,无数的区块链接起来,就形成区块链。新的区块被添加到链的末端,数据一旦书写,就很难修改或删除。

区块很像数据库的记录,每次写入数据,就是创建一个区块。

每个区块包含两个部分。

区块头(Head):记录当前区块的特征值

区块体(Body):实际数据

区块头包含了当前区块的多项特征值:生成时间、实际数据(即区块体)的哈希、上一个区块的哈希...

创始区块

区块链的第一个区块,即为创世区块。它是区块链里所有区块的共同祖先。你从任一区块,循链向后回溯,最终都将达到创世区块。

哈希(hash)

所谓"哈希"就是计算机可以对任意内容,计算出一个长度相同的特征值。区块链的 哈希长度是256位,这就是说,不管原始内容是什么,最后都会计算出一个256位的二进制数字。而且可以保证,只要原始内容不同,对应的哈希一定是不同的。

举例来说,字符串123的哈希是a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0(十六进制),转成二进制就是256位,而且只有123能得到这个哈希。(理论上,其他字符串也有可能得到这个哈希,但是概率极低,可以近似认为不可能发生。)

因此,就产生两个重要的推论。

推论1:每个区块的哈希都是不一样的,可以通过哈希标识区块。

推论2:如果区块的内容变了,它的哈希一定会改变。

Hash 是不可修改。

区块与哈希是一一对应的,每个区块的哈希都是针对"区块头"(Head)计算的。也就是说,把区块头的各项特征值,按照顺序连接在一起,组成一个很长的字符串,再对这个字符串计算哈希。

哈希由区块头唯一决定,区块头包含很多内容,其中有当前区块体的哈希,还有上一个区块的哈希。这意味着,如果当前区块体的内容变了,或者上一个区块的哈希变了,一定会引起当前区块的哈希改变。

这一点对区块链有重大意义。如果有人修改了一个区块,该区块的哈希就变了。为了让后面的区块还能连到它(因为下一个区块包含上一个区块的哈希),该人必须依次修改后面所有的区块,否则被改掉的区块就脱离区块链了。由于后面要提到的原因,哈希的计算很耗时,短时间内修改多个区块几乎不可能发生,除非有人掌握了全网51%以上的计算能力。

正是通过这种联动机制,区块链保证了自身的可靠性,数据一旦写入,就无法被篡改。这就像历史一样,发生了就是发生了,从此再无法改变。

每个区块都连着上一个区块,这也是"区块链"这个名字的由来。

二、区块链分叉

区块链中的任一一个区块,到达创世区块的路径只有一条,但是,从创世开始,会出现分叉的情况。当创建的两个区块时间差只有几秒时,经常会创建出一个分叉区块。

在比特币挖矿中,由于每个矿工的区块数据都不一样,所以他们解题得出的结果也是不一样的,都是正确答案,只是区块不同。于是,区块链在这个时刻,出现了两个都满足要求的不同区块。由于距离远近,不同的矿工看到这两个区块是有先后顺序的。通常情况下,矿工们会把自己先看到的区块复制过来,然后接着在这个区块开始新的挖矿工作。

我们把这种现象叫做分叉。

由于解题能力和矿工的数量成正比,因此两条链的增长速度也是不一样的,在一段时间之后,总有一条链的长度要超过另一条。当矿工发现全网有一条更长的链时,他就会抛弃他当前的链,把新的更长的链全部复制回来,在这条链的基础上继续挖矿。所有矿工都这样操作,这条链就成为了主链,分叉出来被抛弃掉的链就消失了。

最终,只有一条链会被保留下来,成为真正有效的账本,其他都是无效的,所以整个区块链仍然是唯一的。

软分叉

还有一种情况,就是矿工不遵从同样的机制,那么也会出现分叉。这种分叉又有两种情况:

一是由于整个区块链系统软件的升级,一部分矿工没有来得及升级,出现了遵从不同机制产生的分叉。当这部分矿工升级系统后,这个分叉就会消失,我们称这种分叉为软分叉。

二是由于矿工之间出现分歧,一部分矿工决定采用不同的机制,产生出来的分叉是不会消失的。我们一般把这种分叉称为硬分叉。

硬分叉

区块链圈里第一个有影响力的硬分叉应该是以太坊的分叉事件。

以太坊上一个著名的项目The DAO由于其自身漏洞,导致黑客窃取了当时价值约6000万美元的以太币。2016年7月,以太坊开发团队通过修改以太坊软件的代码,在第1920000个区块强行把The DAO及其子DAO的所有资金全部转到一个特定的退款合约地址,从而“夺回”黑客所控制的DAO合约币。

由于一部分矿工并不认同这个修改,于是形成两条链,一条为以太坊(ETH),一条为以太坊经典(ETC),各自代表不同的社区共识以及价值观。当以太坊发生了这次硬分叉后,产生了两条区块链。

由于这两条链在发生分叉之前的数据都是一样的,一个非常有意思的现象出现了:原本持有以太币(ETH)的人,发现自己除了持有原有的ETH外,又有了相同数量的ETC。

区块链的硬分叉,没有减少资产,反而让人手里多了一种资产,于是区块链分叉就成了一种资产凭空增加的方式。

三、区块链的衍生概念

公链

公链是指全世界任何人都可以读取、发送交易且能获得有效确认的共识区块链。

公链的安全由工作量证明机制(pow)或权益证明机制(pos)等方式负责维护。它们是以经济奖励与加密数字验证相结合的方式而存在的,并遵循着一般原则:每个人可获得的经济奖励,与对共识过程做出的贡献成正比。这些区块链通常被认为是完全去中心化的。

私链

私链就是完全私有的区块链,其写入的权限仅在一个组织或者个人手里,读取权限或者部分对外开放,或者完全不开放。

公链和私链的特点

公链特点:

1、中立、开放、去中心化;

2、不可更改,不可撤销;

3、拥有网络效应;

抗审查性高。

私链的特点:

1、规则易于修改(交易、余额等);

2、交易成本低(交易只需几个授信节点验证即可);

3、读取权限受限。

联盟链(Consortium blockchains)

联盟链是指其共识过程收到预选节点控制的区块链。

例如,有15个金融机构组成一个共同体,每个机构都运行着一个节点,而且为了使每个区块生效,需要获得其中10个机构的确认。

联盟链或允许每个人都可读取,或只允许参与者读取,或走混合路线,联盟链可视为部分去中心化。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180730A0USV400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券