被新闻刷屏了的区块链 它到底是个啥?
对于同一个密码学哈希函数来说,相同的输入必定会得到相同的输出,不同的输入必定会得到不同的输出。比特币区块链就是利用哈希函数为区块生成签名的,将区块中的数据作为输入,得到的输出就是区块的签名。我们再来看看只含有一笔交易( Thomas 向 David 发送 100 BTC )的区块 1 示意图。 假设区块 1 中的 数据串 如下所示: Block 1 Thomas -100 David +100 将这个数据串输入哈希函数,得到的输出(签名)如下所示: BAB5924FC47BBA57F4615230DDBC5675A81AB29E2E0FF85D0C0AD1C1ACA05BFF 这个签名会被添加进区块 2 的中。再假设现在 David 向 Jimi 转了 100 BTC ,这笔交易被打包进了区块 2 。那么如下图所示: 区块 2 的数据串如下所示: Block 2 David -100 Jimi +100 BAB5924FC47BBA57F4615230DDBC5675A81AB29E2E0FF85D0C0AD1C1ACA05BFF 将这个数据串输入哈希函数,得到的输出(签名)如下所示: 25D8BE2650D7BC095D3712B14136608E096F060E32CEC7322D22E82EA526A3E5 这就是区块 2 的签名。每一个区块都会通过这个密码学哈希函数生成一个数字签名。哈希函数种类繁多,比特币区块链用的是 SHA-256 哈希算法。 但是,(仅有上述措施显然还不够)如果有人想篡改区块中的数据,TA 可以在篡改之后生成新的签名,塞下一个区块中,然后逐个逐个区块生成新的签名,这些改动后的区块还是形成了一条链,他人就没法分辨出数据已经被更改过了。如何防止这种情形呢? 答案是只有符合特定要求的哈希值(签名)才会被区块链接受。这就是第四阶中介绍的挖矿。 第四阶——什么是合格的签名?由谁来签署区块? 并非所有的签名都符合要求。区块链协议会预先确定一些要求,比如,在比特币区块链上,只有以连续的零开头的数字签名相对应的区块才能上链。例如,只有在数字签名以不少于 连续 10 个零 开头的情况下,对应的区块才能上链。 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |