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

GAEA:区块链是什么?为什么说它安全

如果你对区块链深感好奇,却又不知道它究竟是什么,这篇文章就适合你。

区块链 = 区块+链条 = 一串(区块)

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

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

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

谁在转账给谁?

交易金额

签名等其他信息

所以区块和银行支票类似,都是一种信息载体。除信息(I)外,每个区块都有一个独一无二的哈希值(H)作为身份标识。交易越多,区块也会越多。这些区块通过一根链条相互连接成了一个区块链。

为什么要让区块相互连接呢?是为了保证信息的安全性。连接方式:当前区块的哈希值取决于上一个区块的哈希值。

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

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

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

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

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

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

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

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

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

稳定的区块链

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

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

不稳定的区块链

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

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

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

(3)H4',H5',H6' 也以此类推

修改后,这个区块链就会变得像下图一样稳定。

稳定的区块链

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

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

区块链是一个分布式的去中心化分类账,用来存储交易信息等数据,这些数据为整个区块链网络中的节点所共享。

分类账是承载区块列表的主要记录载体。存储数据,是区块能存储数据(信息)。

分布式的去中心化分类账

数据处理通常由一个中心机器负责。但是区块链里有很多机器(因此它不是中心化的),且所有机器都是点对点相互连接。另外,这些机器维护的是同一本分类账。因此,区块链被称为分布式的去中心化分类账。

换句话说,因为同一区块链网络中的所有人都共享同一本分类账,所以说区块链是分布式的。每个人都有整个分类账的副本,一旦有什么东西添加进去,副本马上就会更新。

为整个区块链网络中的节点所共享

在区块链网络中,所有机器全都相互连接。每个节点(机器)都持有相同的分类账副本。这就意味着整个区块链网络中的节点都共享一本分类账。

区块链的运作步骤:

第一步:A创建了一个交易

第二步:A将该交易提交到网络上

第三步:网络中的机器验证交易并予以批准

第四步:A的交易被打包上链

第五步:更新后的区块链在全网广播

第六步:转账完成

既然区块链是分布式的,那它如何保证安全性呢?

区块链利用密码学来生成数字签名。我们每个人都可以获得自己的私钥和别人的公钥。私钥只有所有者可以访问,公钥则是网络中每个人都可以访问彼此的公钥。假设我想创建一个交易。我用自己的私钥对信息进行加密来创建一个数字签名。然后我把交易(内含信息、公钥以及数字签名)提交到网上进行审批。在这一过程中,网络会利用公钥来解密数字签名,并从签名中提取信息。

如果原信息与从签名中提取出来的信息相匹配,就可以通过审批,否则就无法通过。如果两个信息不匹配,可能是以下原因:

(1)原信息在中途被操控了。

(2)生成数字签名时所用的私钥与所提供的公钥不匹配。

这就是网络如何能发现篡改的方法。因此区块链是安全的。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券