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

区块链上的区块到底是什么?

unitimes.io

全球视角,独到见解

比特币是基于区块链技术的,大家都知道这一点。但是,区块链是什么?更确切地说,区块链上的各个组成部分——区块——到底是什么?

区块链是一条数据区块连成的链条。每个区块可以被认为是一个账簿中的每一页。区块由几个不同的部分组成,这几个部分大体上可以被分成区块头和区块体。

区块头

区块头分为6个部分:

软件的版本数;

前一个区块的哈希值;

默克树的根哈希;

自1970-01-01 T00:00(协调世界时)以来的时间(精确到秒);

当前的难度目标;

随机数.

软件的版本数

软件版本数在大多数情况下不重要。然而,有了一个特定的版本数,矿工就可以表明他支持的是哪个协议的决定。

前一个区块的哈希值

前一个区块的哈希值可以说是区块链的链。因为前一个区块包含在新区块的哈希值内,区块链的所有区块都是构建在彼此之上的。没有这个部分,每个区块之间就没有联系,杂乱无章。

默克树的根哈希

一个区块中包含的所有交易都可以在哈希中被聚合,这就是默克树的根哈希。

自1970-01-01 T00:00(协调世界时)以来的时间(精确到秒)

这是区块本身的时间戳。以秒来计算从1970年1月1日以来的时间。

当前难度目标

这个目标表明新的哈希必须有多小才能声明有效性。换句话说,每个哈希都有一个 bits 大小。bits 的目标越低,找到匹配的哈希越难。哈希值开头有很多零的哈希币比没有零的哈希小。

随机数

随机数是由工作证明增加的变量。通过这种方式,矿工可以猜测有效的哈希,及小于目标的哈希。

这六个部分形成区块头。区块头在比特币中担任一个非常重要的角色,因为它将所有的区块连接在了一起。大家可以把它想象成一辆卡车的驾驶位。

区块体

区块体就相当于卡车的装载空间,包含所有该区块确认过的交易。

当矿工构建一个区块时,这个区块会验证交易。也就是说,矿工会检查发送者的资金是否充足。他可以很容易地从区块链中读取这些信息。例如,如果发送者想要发送10个比特币,那么该矿工就会查看他在过去的区块中是否收到过10个比特币。

区块中的这些交易不仅仅是一个列表,而在“默克树”中。

什么是默克树?

默克树的名字来自数学家拉尔夫·默克。他发现,单个哈希中可以展示大量信息。为此需要首先对数据本身进行哈希运算,得出的哈希值再次进行哈希运算并聚合。最后,将默克树聚合为一个哈希。最后一个哈希也称为根哈希,即默克树的根。它以相对较短的字符表示其“叶子”(单个交易)和“树枝”(叶子的哈希)的所有信息。

只要知道所有树枝和叶子,就可以快速轻松地创建根哈希。记住哈希函数的功能:它在一个方向上清晰快速地工作,并且不可能在另一个方向上分解。如果已知根哈希,但交易未知,那就无法猜测交易。

因此,单独一个根哈希是不够的,剩下的区块必须被保存。因此,矿工可以在任何时候将该区块中包含的信息再次进行哈希运算,从而验证根哈希。只要哈希函数是相同的,那么矿工对于一个给定的数据输入都能得到相同的哈希值。这很方便,因为他们可以只检查他们是否和该哈希值处于同一个级别。

挖矿:搜索特殊哈希值

在这种情况下,工作量证明(PoW)机制下的挖矿比较容易理解。挖矿时,区块头进行增量更改以获得特殊的哈希值。

区块头由五个常量和一个变量组成。常量是软件的版本号、上一个区块的哈希值、默克树的根哈希、时间戳和所搜索的哈希的目标大小(以字节为单位)。

变量是随机数。随机数是以1为单位不断往上增长的数字。矿工将数据进行哈希运算并检查数据是否低于搜索目标值的哈希值。如果哈希值大于目标,矿工则重复该过程,随机数增加1,并再次进行哈希运算和检查。重复此操作直到找到一个特殊哈希值,或者从另一个哈希值低于目标的网络计算机中获取另一个区块,并将其用作下一个区块的基础(使用新的哈希作为“前一个区块的哈希”)。

挖矿是一个高度重复工作的过程,其目标就是找到一个特殊的哈希值。一旦那个哈希值被找到了,那么游戏又将重新开始。找到一个特殊哈希值的可能性取决于难度。平均来说,比特币每10分钟出现一个新区块。难度一直在不断调整,所以这个平均值基本上不会变。

这个过程的特点在于特殊哈希值只能通过猜测的方式被找到。这个猜测的比率消耗算力和电力。特殊的哈希值一眼就能看出来,因为它是由多个0开头的。

下面是比特币区块链上一个特殊哈希值的例子:

000000000000000000094bfa4edb1245c347e42452e4418e9fe5a1d24e335b16

哈希值:区块链的俄罗斯套娃

区块可以被看做一个俄罗斯套娃。最小的套娃是没有进行过哈希运算的交易。第二层是这个交易的哈希形式。此后,两个经过哈希运算的交易一起再进行哈希运算。因此,越来越多的哈希值进行聚合。最后只剩下一个哈希,即根哈希,也就是最大的那个套娃。

作者:Marko Vidrih

翻译:黄非红

原文链接:

https://medium.com/datadriveninvestor/what-is-a-block-in-the-blockchain-c7a420270373

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券