区块链技术是互联网3.0或互联网协议。 它由多种技术组合实现,正逐渐掀起一场革命。 按照我们目前所了解的情况,它有可能改变许多业务场景,但并不那么容易理解这些内容。 所以接下来的内容让你了解区块链是如何工作的。
1 什么是区块链技术?
区块链是一个分散的不可变记录的分布式数据库,其中的交易收到很强的加密算法保护,通过共识算法维护网络状态。简而言之,区块链是包含许多信息区块组成的链。在1991年最开始描述该技术,其目的是在数字内容中添加时间戳,用来避免任何记录的回滚。然而,在中本聪用它创造数字加密货币“比特币”时,这项技术的真正潜力才得以实现。
2 区块链如何工作?
我们通过区块链网络进行简单交易的例子来了解区块链:
如果James转正发5BTC给他的朋友Kevin。现在该交易以数字信息的形式广播。
数字信息具有独特的签名,类似于就像您的签名提供文档拥有权,数字签名证明了交易是真实的。现在这个生成的交易广播到P2P网络中。
P2P网络传播交易
假设网络中的节点A第一个接收交易。
2.1 独立验证交易
节点A在向其邻居发送交易之前,该节点将先验证每个比特币交易。
系统只保证有效交易在网络中传播,而无效交易在收到他们的第一个节点处被过滤处理。每个节点根据标准的长度来确认每笔交易。
2.2汇总已验证交易
通过矿工挖矿产生新的区块,并将这些交易保存到区块中,通过工作量(POW)验证算法显示最后计算结果。
- 自动确认每个接收的交易,在传播交易之前,每个节点都会制作一个有效(但未确认)的交易池,称为交易池、内存池或mempool。
- 交易被挖掘节点收集,验证,然后像其他节点一样中继新交易
- 与其他节点不同,矿工节点将这些事务收集到候选块中
下面的例子将更好的理解交易过程
假设Andy是矿工。 (矿业节点维护区块链的本地副本,这些副本是自2009年比特币系统开始以来创建的所有区块列表)
现在,收到到所有交易到区块块中后,Andy需要构建块头。 现在这一步对了解区块链是如何工作很重要。
构建区块头部结构
构建区块头部,矿工节点需要填写以下六个字段
一旦Andy的节点将所有字段填充到块头中,Andy就开始挖掘该块。
2.3 挖掘区块(挖矿)
- 当块头以及所有其他字段填写完成之后,开始挖掘区块
- 其目标是为nonce找到一个值,使区块头HASH小于难度目标
- 矿工节点需要在十亿或数万亿个随机数值找到满足要求的随机数
现在Andy的节点已经构建了一个候选块,现在是Andy的矿机“挖掘”该块的时候了,以找到一个POW算法的解决方案,使该区块有效的。
POW工作证明是一个很难产生的昂贵、耗时的数据,但其他人满足某些需求时很容易验证。
寻找谜题 - 为什么很难?
- SHA-256是一种单向函数,暴力(破解)是获得特定输出值的唯一方式
- 一般情况下,需要很多随机猜谜才能找到解决方案
- 平均需要10分钟左右才能找到最终的解决方案
为了维持可预测分配币,当参与猜谜的人越多时,猜谜难度越来越大,难题将越来越难以解决。
现在,使用工作证明POW算法验证区块,Andy的挖矿节点必须达到难度目标。
让我们看看难度是如何体现的。
难度描述
- 该区块包含一个难度目标,称为“难度 bits”或仅“bits”
- 假设区块以0x1903a30c作为难度bits。 该表示法将通过系数/指数格式表示难度目标,前两个十六进制数字(19)作为指数和后六个十六进制数字(03a30c)作为系数
根据上述表示法,计算难度目标的公式为:
所以,Andy的挖矿节点难以实现的难度系数很难达到难度目标。 让我们看看接下来会发生什么。
成功挖到区块 - Andy有多台硬件采矿设备,每个都以很快的速度并行运行SHA256算法
- Andy图形桌面版的挖矿节点将区块头传输到他的采矿硬件,该采矿硬件每秒万亿计的生成随机数
- 大概挖11分钟区块的时候,其中一台硬件矿机发现一个解决方案并将其发送回挖矿节点
- 紧接着Andy的采矿节点将区块发送给所有的同伴
- 同伴接收后验证并传播新块。
现在Andy挖到的区块在网络中传播,每个完整节点将独立验证该区块
每个区块的独立确认 - 在比特币的共识机制中,每个新块都由网络上的每个节点独立验证
- 这样确保只有有效的块在网络上传播
- 节点根据一系列必须全部满足的标准进行检查验证该块
组装和选择区块链
一旦有节点验证了新块,它就会尝试通过将区块连接到现有区块链来组装新的区块链
在上图所示的网络中,一旦节点(橙色)验证了该块,它就通过将该区块连接到现有区块链来组装形成新的区块链。
一旦该区块被网络验证,它就成为区块链的一部分并且成功地解决块区块组装,挖到该区块的矿工将获得奖励。
矿工奖励
- 由于矿工们使用他们宝贵的资源来验证这个区块,所以他们会获得金钱奖励
- 以比特币为例,他们获得一些新创建的比特币作为奖励
问题出现了,在多个区块被验证有效的情况下会发生什么?
是的,这确实是可能的! 在这种情况下,存在多个分支。
2.4 多个分支处理
- 尽管问题很严峻,但有可能同时存在多个区块
- 区块链中的几个分支在这种情况下是可能的存在的
每个人都应该在他们收到的第一个块的顶部构后简单地构建区块
其他节点可能以不同的顺序接收了这些区块
他们将第一次收到进行构建区块
当有人解决下一个区块时,领队的将会被破坏,但是这种情况很少多次连续发生在这种情况下,区块链将迅速稳定下来
- 一般规则是各个节点切换到可用的最长链
区块链迅速稳定下来。 每个节点都与总账的当前状态一致。
至此,所以共识规则将模糊的情况进行处理,最终保存在区块链网络中
现在又出现了另一个问题,如果有人试图改变系统中的任何交易或记录会怎么样?
3 如果有黑客试图破解系统会怎么样?
一旦区块被破解,加密HASH输出成为该块的标识符。
由于区块链记录的是后向链接分布式数据库。 当一个块形成时,密码HASH输出将成为该块的标识符,该区块与下一个区块相关联,从而创建区块链。
因此区块链是由强大的加密算法保护,无法更改任何记录。
如果有人试图改变任何块中的任何交易,那么区块的HASH会发生变化,而且它之前的区块的HASH也将会改变。这一套连锁操作,导致节点不能达成共识,所以就可以很容易地检测到欺诈行为。
作者:About Shashank
链接:https://www.edureka.co/blog/how-blockchain-works/#hacksystem
版权声明:作者保留权利。文章为作者独立观点,不代表B链网立场。严禁修改,转载请注明原文链接