设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

被新闻刷屏了的区块链 它到底是个啥?

发布时间:2019-10-28 16:15 所属栏目:47 来源:佚名
导读:可能有一些读者有疑问,区块链到底是什么?为什么会这么受重视呢?今天,小编就来带大家一起了解一下。首先,区块链是一种电子化数据的存储方法。数据是以区块的形式出现的,想象一下有很多存储着数字化数据的区块。这些区块都链接在了一起,为其内部数据

被新闻刷屏了的区块链 它到底是个啥?

可能有一些读者有疑问,“区块链”到底是什么?为什么会这么受重视呢?今天,小编就来带大家一起了解一下。首先,区块链是一种电子化数据的存储方法。数据是以区块的形式出现的,想象一下有很多存储着数字化数据的区块。这些区块都链接在了一起,为其内部数据赋予了不可变性。

当一个数据块被链接到了这条链上,其内部数据就再也无法更改了。一旦某个区块被添加到了链上,里面的数据对任何人都是公开可见的。这项技术具有非凡的革新意义,可以用来记录我们能想到的几乎所有数据(例如,产权、身份、余额、病历等等),同时不存在被篡改记录的风险。假设我买了一套房子,把产权证拍照上传到了区块链上,我就可以证明我在那个时刻享有这套房产的所有权。也就是说,区块链是一种存储数据且保证数据不被篡改的方法。这听上去不错,不过随之而来的问题是:我们是怎么实现这样的技术的?

(校对注:吹毛求疵来说,这一段表述并非无懈可击,但姑且可以这么先记着。)

第一阶——交易数据

好吧,我们先拿比特币区块链做个例子。比特币区块链是现存历史最悠久的区块链。在比特币区块链上,每个区块的大小在 1 MB 左右。至截稿日,这条链上已经累积了 52.5 万个区块,链上存储的数据总量约为 52.5 万 MB 。(校对注:其实远远没有 52.5万 MB,因为在早期,很多区块都没有打满 1MB。)

比特币区块链上仅存储比特币的交易数据 。它就像是一个庞大的交易记录库,可追溯至第一笔比特币交易。在本文中,我们假设有一条存储交易数据的区块链,就像比特币区块链那样。

第二阶——(通过哈希运算)链接区块

想象有三个存储着交易数据的区块(如图一所示)。

被新闻刷屏了的区块链 它到底是个啥?

这三个区块内都存有一些交易数据。这没什么特别的。就好比是三个独立的 word 文档,里面描述了交易的内容和余额变化情况。文档 1 会按照时间顺序从第一笔交易开始记录,直到数据量达到 1 MB 为止,之后的交易会记录在文档 2 中,直到数据量达到 1 MB 为止,以此类推。这些文档就是数据块。它们一个接着一个联系(链接)在一起。为此,每个区块会根据其内部数据串生成一个特殊的(数字)签名。如果这个区块中的数据发生任何变动,即使只改变了一个数字,这个区块的签名也会发生改变。这是如何实现的?欲知详情,请阅读步骤三中的 哈希运算 部分。

(校对注:如上文所述,实际情形中的区块并不是个个都接近区块大小的上限,实际数据大小要看把区块打包上链的矿工在区块中记录了多少交易,而他们并不会等到有了 1MB 交易数据才开始动手。实际情形见下文)

假设区块 1 中记录了两笔交易,分别是交易 1 和交易 2 。这两笔交易的总数据量达到了 1 MB (实际上一个区块中包含的交易笔数远不止这点)。根据这个区块内的数据串会生成一个签名。假设这个签名是 “X32” 。如下图所示:

被新闻刷屏了的区块链 它到底是个啥?

请记住,即使区块 1 中存储的数据改动了一个数字,也会得到一个完全 不同的签名 !只要将区块 1 的签名添加到区块 2 中,就可以将区块 1 的数据与区块 2 关联起来。区块 1 的签名也包含在区块 2 的数据串内,因此这个签名与区块 2 中的其它数据一样,成了区块 2 签名的数据基础。如下图所示:

被新闻刷屏了的区块链 它到底是个啥?

正是这些签名将区块链接在了一起,形成了一条区块链。现在加上区块 3 ,整条链的情况如下图所示:

被新闻刷屏了的区块链 它到底是个啥?

现在,假设区块 1 中的数据被 更改 了。比方说 Damian 和 George 之间的交易被更改了。Damian 向 George 发送了 500 个而非 100 个比特币。由于区块 1 中的数据串改变了,其签名也相应改变了。更改过数据之后,区块 1 的签名不再是 “X32” ,而是变成了 “W10” ,如下图所示:

被新闻刷屏了的区块链 它到底是个啥?

这样一来,区块 1 的新签名 “W10” 跟之前添加进区块 2 数据串的旧签名 “X32” 产生了冲突。区块 1 和区块 2 之间的链接就断了。这条链上的其他用户就会知道区块 1 中的数据被更改了。为了维护区块链的不可变性,其他用户会拒绝同步更改后的交易信息,依旧维持原有的交易记录(即 Damian 向 George 发送 100 BTC )不变,整条链依旧保持完整。这就意味着,要想不露痕迹地篡改交易,必须将区块 2 数据串中区块 1 的旧签名替换成新签名。然而,一旦区块 2 中的数据串发生变化,区块 2 的签名也会随之发生变化。假设区块 2 的签名从 “9BZ” 变成了“PP4” 。那么区块 2 和区块 3 之间的链接就断了!

被新闻刷屏了的区块链 它到底是个啥?

区块链上的区块对所有人都是可见的。因此,如果篡改者真想要不露痕迹地篡改交易,就必须保证篡改之后的区块仍然都联系在一起(否则人们就很容易发现哪个区块跟其他区块并不相连,进而判断出该区块已经被改过了)。也就是说,改掉一个区块必须为后续的所有区块计算新的签名。可以认为这几乎是不可能的,但要理解这是为什么,请看下文。

第三阶——生成签名(哈希值)

那么,我们以区块 1 为例再画一个示意图。假设区块 1 只记录一笔交易,即 Thomas 向 David 发送 100 BTC 。需要根据这个数据串生成一个签名。在区块链上,这个签名是通过密码学哈希函数生成的。密码学哈希函数是一个极其复杂的数学公式:将任意数据串作为输入值代入公式,可以得到一个独一无二的 64 位输出值。例如,你可以将 “Jinglebells” 一词代入这个哈希函数(哈希函数的种类有很多,这只是其中一例),得到的输出为:

761A7DD9CAFE34C7CDE6C1270E17F773025A61E511A56F700D415F0D3E199868

只要这个输入中有一个字符发生变化,包括改变大小写或是增加空格和标点,就会得到截然不同的输出。如果你在这个输入后面加上一个句号变成了“Jinglebells。”,得到的输出就变成了:

B9B324E2F987CDE8819C051327966DD4071ED72D998E0019981040958FEC291B

如果我们把句号去掉,还是能得到跟之前一样的输入:

761A7DD9CAFE34C7CDE6C1270E17F773025A61E511A56F700D415F0D3E199868

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读