3走进区块链-区块链运行机制

简介: 区块链网络是一个分布式网络,网络中存在众多节点,每一个节点都参与数据维护。当有新的数据加入时,所有节点都会对数据进行验证,节点间必须对处理结果达成一致才能将新加入的数据成功写入各自维护的区块链中,目的是让网络中每个节点都拥有一套完全一致的数据记录。

区块链网络是一个分布式网络,网络中存在众多节点,每一个节点都参与数据维护。当有新的数据加入时,所有节点都会对数据进行验证,节点间必须对处理结果达成一致才能将新加入的数据成功写入各自维护的区块链中,目的是让网络中每个节点都拥有一套完全一致的数据记录。那么区块链是怎么工作的呢。接下来,以比特币的一笔交易为例来说明区块链是怎么工作的。
1身份验证
由于在区块链网络中没有中心机构对节点进行认证,所以首要解决的问题是对节点的身份验证。在比特币区块链系统中,通过一对密钥来完成验证。在创建比特币账户时,会生成公钥和私钥,私钥用于数字签名,确认交易所有权,公钥则是私钥通过算法生成的,并且是对外公开的,此过程不可逆,即无法通过公钥推出私钥。用公钥对数据进行加密后,只有对应的私钥才能解密,如果用私钥加密,则只有对应的公钥才能解密。在区块链系统中就是用这样一对唯一匹配的私钥和公钥来完成加密解密和身份验证。公私钥的验证过程如图1-1所示。

_1


图1-1 公私钥验证过程


Alice向Bob发送消息“Hello Bob”,首先使用Bob提供的公钥对信息进行加密形成密文,Bob使用自己的私钥对密文进行解密,解密后的结果如果是“Hello Bob”,则证明这个消息是正确的。此外,还提供了签名机制,Alice可以用自己的私钥对消息进行签名,Bob通过Alice提供的公钥进行验签,从而证明这个消息的发送者是Alice。
2交易确认
当某个节点发起一笔交易时,交易不会立即添加到区块链中。首先会对交易余额进行校验,可是在区块结构中,并没有记录账户余额,那么怎么才能知道交易方有足够的余额呢。在比特币交易网络中,货币的所有权是通过验证历史交易信息来核实的。
例如Alice要发送1个btc给Bob,Alice必须援引之前收到这1个或更多的比特币的历史交易信息,这些被援引的交易记录称作“进账”,Bob会查看那些进账,以确保Alice是真正的接收者,并确保进账数额为1个btc或更多。一旦一笔交易被使用过一次,该笔交易会被认为是已消费,且不能被再次使用。
3交易记录
如果Alice的账户通过验证则该笔交易为合法交易,Bob会将交易信息保存在事务池(或内存池)中并广播给其它节点,其它节点接收到交易信息后也进行同样的校验操作。当某一个节点获得记账权后(基于加密哈希进行的随机猜测),它会将交易纳入区块,在区块上加盖时间戳并记录到自己维护的区块链中,然后将该区块进全网广播,其它节点接到广播后,也将区块记录到各自维护的区块链中,此时Alice给Bob的转账完成,交易信息被记录到区块链上,无法更改。需要注意的是,我们所说的全网广播,实际上只要大部节点能收到就可以了。区块链提供了系统的容错能力,那些没有收到的节点可以通过下载的方式获取到缺失的区块。
4双重支付和分叉
Alice账户有1个未消费的btc,Alice将这个1个btc同时发送给了Bob和Tom,这被称为“双重支付”或“双花”。如果两笔交易被先后验证,例如给Bob的交易通过验证,那么给Tom的交易就会验证失败,反之亦然,验证失败的交易会被丢弃。如果两笔交易被同时验证,都被认为是有效交易,那么在接入区块链时就会暂时出现分叉情况,如图1-2所示。

_2


图1-2 区块链分叉


之后的区块如果认同哪一个区块就会在哪一个区块后面延续,比特币规定选择最长的那条链进行扩展,所以当再有新的区块加入时会沿着最长的链延续,较短的那条链上的区块将被抛弃,对应的交易将失效,失效的交易将承担相应的损失。
为了避免这种情况发生,需要等待之后至少6个区块都承认此区块后,再确认交易完成,主要是因为,如果经过6次确认之后再返回去修改之前已经被确认过的区块,则必须推翻之前6个区块的记录,这其实是很难的。因为获得确认数越多,就需要越多的算力去修改,因此也越难被修改,除非拥有全网51%以上的算力,否则这是不可能实现的。这也是比特币区块链交易形成的“等待六次确认”原则。
目录
相关文章
|
3月前
|
供应链 安全 物联网
深度剖析:区块链技术掌握必备知识,加密货币与智能合约应用解析
深度剖析:区块链技术掌握必备知识,加密货币与智能合约应用解析
113 0
|
算法 安全 区块链
区块链 - 侠客岛:终于有人把区块链讲清楚了(上)
区块链 - 侠客岛:终于有人把区块链讲清楚了(上)
327 0
区块链 - 侠客岛:终于有人把区块链讲清楚了(上)
|
区块链
区块链 - 侠客岛:终于有人把区块链讲清楚了(下)
区块链 - 侠客岛:终于有人把区块链讲清楚了(下)
123 0
区块链 - 侠客岛:终于有人把区块链讲清楚了(下)
|
区块链 数据安全/隐私保护
区块链 - 侠客岛:终于有人把区块链讲清楚了(中)
区块链 - 侠客岛:终于有人把区块链讲清楚了(中)
92 0
区块链 - 侠客岛:终于有人把区块链讲清楚了(中)
|
算法 安全 网络协议
4走进区块链-区块链运行时逻辑关系
从比特币开始,到现在众多新的区块链项目出现,区块链的层次结构可分为应用层、合约层、激励层、共识层、网络层、数据层。图1-1所示为区块链运行时各层次逻辑关系(以完整的6个层次为例)。 图1-1 区块链运行时各层次逻辑关系 区块链的运行从应用层发起,应用层是一些场景或者案例,由终端设备承载,比如pc端的软件程序或者移动端的APP应用等。
1735 0
|
存储 安全 区块链
1走进区块链-认识区块链
区块链是当下非常火爆的一个概念,因为比特币而被挖掘研究。区块链与其说是新兴技术,不如说是新的理念、新的概念,是对目前中心化系统存在问题的解决方案,是经济模式的创新。 那么什么是区块链呢?概括来讲区块链包括分布式组网机制、合约机制、共识机制、激励机制、加密机制、块链式存储结构等计算机技术。
1598 0
|
区块链 数据库 分布式数据库
区块链开发公司剖析区块链的技术原理
 区块链不要求权威组织保证交易双方的信任。相反,网络上的每个人都可以监督和验证每个交易,从而在技术上解决交易的信任问题。区块链的好处并不在于它有多复杂。相反,区块链的基本技术并不复杂,而且几十年前才出现。
1223 0
|
存储 大数据 区块链
区块链开发公司普及区块链技术的基础知识
 从狭义上讲,区块链是一种链式数据结构,它按时间顺序以顺序方式组合数据块,并以加密方式保证不可篡改和不可伪造的分布式分类账(分配)数据库)。   从广义上讲,区块链技术使用区块链数据结构来验证和存储数据。
1576 0
|
安全 大数据 PHP
区块链开发公司介绍区块链的基本原理
  在实现上,首先假设存在一个分布式的数据记录账本,这个账本只允许添加、不允许删除。账本底层的基本结构是一个线性的链表,这也是其名字“区块链”的来源。链表由一个个“区块”串联组成,后继区块记录前导区块的哈希(Hash)值。
1693 0

热门文章

最新文章