区块广播

矿工挖出区块后,就进行网络广播,传递给相邻的节点,节点接收到新的区块后会进行一系列的验证,比如区块数据格式是否正确;区块头的哈希值小于目标难度;区块时间戳是否在允许范围之内;区块中第一个交易(且只有第一个)是coinbase交易;区块中的交易事务是否有效等,总之就是一连串的检测,全部校验通过就把新的区块数据纳入到自己的区块链账本中。如果是挖矿节点接收到信息,就会立即停止当前的挖矿计算,转而进行下一区块的竞争。

比特币的挖矿过程说到这里,不知道有没有朋友会有个疑惑,那就是挖矿算法虽然能够提供工作量证明,表明矿工确实是投入了相当的算力的,但是却不能保证只能是一个矿工能挖到啊,如果在同一时间内多个矿工都计算出了符合条件的值,都拥有了打包权,那以谁的为准呢?比特币中的解决方案,竟然是那么简单,人家没用什么复杂的算法,就是让节点自己选择,最终传播最广、处于最长链中的区块将被保留,因此到底谁的区块会被保留下来,可能还真得看看运气了。

这里实际上隐含着FLP原理,先看下定义:在网络可靠,存在节点失效(即使只有一个)的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性算法。这个其实也很好理解,来看个例子:三个人在不同房间投票,虽然三个人彼此之间是可以通电话沟通的,但是经常会有人时不时地睡着。比如,A投票0,B投票1,C收到了然后睡着了(类比节点失效了),则A和B永远无法在有限时间内和C共同获得最终的结果。看到这里,我们也就明白了挖矿的作用了,除了发行新的比特币外,主要就是维持网络共识,让每个节点对区块链的数据保持最终一致性。

原文地址:https://www.cnblogs.com/qukuailian/p/8684491.html

时间: 2024-08-30 16:55:22

区块广播的相关文章

FinTech-Blockchain区块链

最近有同事研究Blockchain, 作为曾今在投行打拼过的人事,好吧,投行IT,更加适合来研究介绍新一代的黑科技FinTech-Blockchain,区块链, 另外其实区块链与最近研究的分布式存储息息相关,正好趁热打铁. 总目录 BitCoin比特币 创始人-中本聪 区块链-Blockchain 核心算法 技术架构 交易过程-程序/数学 R3 CEV  总结 1. BitCoin比特币 提到BlockChain不得不先提及比特币, 其实比特币的核心就是区块链技术.BitCoin比特币最初由中本

从零开始学习区块链(2)

转自 区块链大师 以比特币的区块链为例,你可以把区块链想象成一个比特币的公共账本,这个账本: 存放在互联网的各个比特币节点上,每个节点都有一份完整的备份 里面记录着自比特币诞生以来的所有比特币转账交易 账本是分区块存储的,每一块包含一部分交易记录.每一个区块都会记录着前一区块的id,形成一个链状结构,因而称为区块链 当你要发起一笔比特币交易的时候只需把交易信息广播到p2p网络中,矿工把你的交易信息记录成一个新的区块连到区块链上,交易就完成了.(生成一个新的区块) 这里有几个问题: 如何保证用户有

bitcoin PoW原理及区块创建过程

bitcoin PoW原理及区块创建过程 PoW 为了在点对点的基础上实现一个分布式时间戳服务器,我们需要使用PoW(Proof of Work)系统来达成共识.PoW过程就是寻找一个目标值的过程,当对该目标值使用SHA-256之类Hash算法进行Hash运算时,要求得到的哈希值是以一定数目的0位开始的数.随着要求0位数目的增加,PoW过程的工作量是指数级增长的.通过对目标值进行一次哈希运算就可以验证目标是是否符合要求. 在PoW的实现中,我们在block中引入一个Nounce变量,我们通过No

2.3 区块链工作过程

区块链的工作过程分交易产生.交易广播.节点计算.获取记账权.记录权广播.接收区块.验证区块和完成记账七个过程. 1) 交易产生:用户向区块链发了一笔交易信息,将产生交易:2) 交易广播:当一笔新交易产生时,区块链网络会广播出去,网络中的其它节点都会收到该交易信息:3) 节点计算:收到交易信息的节点把新交易放到区块中,通过共识算法决定谁有记账权,共识算法有POW.POS.DPOS.PBFT:4) 获取记账权:根据不同的共识算法,其中一个节点将获取记账权,如POW,使用工作量证明,谁最快计算出,将获

区块链快速入门(五)——区块链技术的演化

区块链快速入门(五)--区块链技术的演化 一.区块链技术的发展 比特币区块链面向转账场景,支持简单的脚本计算.如果引入更多复杂的计算逻辑,将能支持更多应用场景,即智能合约(Smart Contract).智能合约可以提供除了货币交易功能外更灵活的合约功能,执行更为复杂的操作.引入智能合约的区块链,已经超越了单纯数据记录功能:可以为区块链加入权限管理,高级编程语言支持等,实现更强大的.支持更多商用场景的分布式账本系统.区块链技术的三种典型演化场景如下: 二.区块链技术的分类 根据参与者的不同,区块

什么是区块链?

一.什么是区块链? 说到区块链,就不得不说比特币. 2008年底,比特币之父中本聪发表了一个关于他研究的电子现金系统的九页白皮书,2009年初,中本聪在位于芬兰赫尔辛基的一个小型服务器上挖出了比特币的第一个区块——创世区块,并将当天泰晤士报头版一则关于救助银行的新闻标题写入创世区块,这也代表着比特币诞生了. 区块链是比特币的底层技术,它可以理解为一种公共记账的机制(技术方案),它并不是一款具体的产品.其基本思想是:通过建立一组互联网上的公共账本,由网络中所有的用户共同在账本上记账与核账,来保证信

基于Tendermint的区块链漂流瓶简单实现

本文主要借demo介绍基于Tendermint的区块链应用开发,这个demo很简单,主要包含以下功能: 扔漂流瓶 捞漂流瓶 之后投放者和打捞者可以相互传递[加密]信息 代码已上传至github. Tendermint Tendermint帮我们实现了PBFT,相当于搭了一个共识框架,包含两部分: Tendermint-core:PBFT共识算法实现: Tendermint-abci:定义了应用须实现的接口和调用规则,还实现了与外部通信的socket-server.官方的这部分源码可以看做是Go-

第一章:最小可行区块链

概览 区块数据结构 区块哈希 创世块 创建区块 保存区块链 验证区块完整性 选择最长链 节点间通信 操作节点 架构 运行测试 小结 概览 区块链的基础概念非常简单, 说白了就是一个维护着一个持续增长的有序数据记录列表的这么一个分布式数据库.在此章节中我们将实现一个简单的玩具版的区块链.此章节结束时,我们的区块链将实现以下功能: 实现区块和区块链结构定义 实现可以将包含任意数据的新区块写入到区块链的方法 实现可以与其他节点进行点到点沟通和同步区块链数据的运行节点 操作单个运行节点的简单HTTP(R

Hyperledger Fabric on SAP Cloud Platform

今天的文章来自Wen Aviva, 坐Jerry面对面的程序媛. Jerry在之前的公众号文章<在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图>已经介绍过Aviva了,SAP成都C4C开发团队中其他同事评价她为:"美腻与智慧的化身","云时代女王","是大家前沿技术的引路人".因为Jerry和Aviva就在一个组,所以我的看法是,这些评价都实至名归. 比如Jerry了解到的Javascript 3D渲染,增强现