首页  >  要闻 >  区块链 >  极简科普篇:区块链是什么?(上)
极简科普篇:区块链是什么?(上)
 Aries    
2019年10月11日 08:30
  收藏
   

如果你对区块链深感好奇,却又不知道它究竟是什么,这篇文章就是你的菜。本文旨在让你了解区块链是什么,因此在写作过程中简化了部分内容。如果能助你理解区块链技术是什么,那我的任务就完成了。

小贴士:为了更好地理解区块链技术,请不要忽略本文提到的图片。这些图片相当重要!

区块链是什么?

区块链

是的,区块链 = 区块+链条 = 一串(区块)

我们首先把区块链和转账系统进行类比。记住,区块链有很多用例,而转账系统只是其中之一。

假设,我从自己的账户里转了一部分钱到你的账户。在我进行这笔交易时,一定要有个地方写入交易信息。

这个地方就是区块。

在区块中,我们会写入如下信息:

谁在转账给谁?

交易金额

签名等其他信息

public class Block {

public String data;

public String hash;

  ...

}

所以区块和银行支票类似,都是一种信息载体。

除信息(I)外,每个区块都有一个独一无二的哈希值(H)作为身份标识。哈希值(H)是一个很重要的概念。

交易越多,区块也会越多。

这些区块通过一根链条相互连接成了一个区块链。

为什么要让区块相互连接呢?

是为了保证信息的安全性。

连接方式:当前区块的哈希值取决于上一个区块的哈希值。

下面举个简单的栗子。

假设我们有 3 个区块,包含如下信息:

区块 1 包含的信息为 I1,I1 的哈希值为 H1。

区块 2 包含的信息为 I2 ,I2 的哈希值为 H2。

区块 3 包含的信息为 I3 ,I3 的哈希值为 H3。

H2 是由 H1 和 I2 结合起来算出的。同样地,H3 是由 H2 和 I3 结合起来算出的,依此类推。

哈希值说明

H2 = 某种加密函数(H1, I2)

H3 = 某种加密函数(H2, I3).

那 H1 从何而来?首先,我们要取一个默认值 H0 。

H1=某种加密函数(H0, l1),其中 H0 是个默认值。 

stable

稳定的区块链

到目前为止,上图的区块链是稳定的。

现在如果有人把区块 2 的信息 I2 改成 I2' ,I2 的哈希值 h2 改成 h2' ,其他区块保持不变。在这种情况下,区块链就会变成下图中的不稳定状态。

unstable

不稳定的区块链

区块链不稳定的原因如下:

H3 ≠ 某种加密函数(H2', I3),H3 的值发生了变化。

用 H2' 代入公式重新得出H3' = 某种加密函数(H2', I3)

H4',H5',H6' 也以此类推。

修改后,这个区块链就会变得稳定。

 稳定的区块链

这样的话,所有修改要经过端对端修改和审核。那黑客入侵电脑修改数据也就没那么容易了。如果有黑客修改了数据,区块链就会变得不稳定,立马就会被发现。

 List<Block> blockList = new ArrayList();

我们将区块放在一个类似上图的列表中,这样已知当前区块所在 position (位置),很容易就能通过运行 blocklist.get(position — 1) 找到上一个区块。存储区块的方法有很多。

区块互连主要是为了保证安全性。

编辑: Aries
更多财经请关注 WX: Chaocaijing123456
币海财经: 全球财讯门儿清 https://www.bihai123.com/
声明: 本文由入驻币海编者上传,观点仅代表编者本人,不代表币海财经赞同其观点或证实其描述,请自行判断。

延伸阅读