初识区块链(三)

工作量证明(proof of work)

  区块链的一个关键是,为了保证安全稳定,要给它加一个门槛:即参与者想创建区块并加入区块链,必须证明自己完成了非常困难的工作,这就是"工作量证明",简称POW。可以理解为POW用于保持区块链的节奏。

  工作的困难度通过计算量来体现,它不能被快速完成,而且困难度随时间增长而加大。中本聪在比特币中设定每10分钟出一个新块(动态设置难度值)。而哈希计算(hash)的特点,就满足这种要求。

  此外,完成这个工作的人,也会获得相应奖励。如”矿工“通过”挖矿“,生产区块,获得比特币奖励。算力高、速度快者优先。

  哈希计算:指获得指定数据的哈希值的过程。它的特点是:指定数据的哈希值是唯一的,且原始数据有任何变化,其哈希值都会改变。

  比特币中使用的POW算法是 Hashcash ,它最初用来防止垃圾邮件。计算哈希的数据由两部分组成,一个是区块数据(如前一区块的hash、时间戳、交易信息、难度值等),另一个是计算器nonce。使用哈希函数(如SHA256)计算hash值,如果不符合难度要求,则nonce+1 ,再次计算直到满足要求。

  难度值 :一般用targetBits定义,意思是二进制的hash值前面有多少bit为0,暂且称为目标上界,如果计算得到的hash值比目标上界小,则表示符合有效证明。因为比目标上界小的值毕竟是少数,所以需要反复改变nonce来计算hash。如下图所示,第二行的hash为目标上界,第一行不符合要求,第三行则符合要求。

  

文章内容仅为区块链技术的学习记录,如有失误或考证不严谨的地方,请多多指教。

参考资料:

  https://jeiwan.cc/

  https://liuchengxu.gitbook.io/blockchain/

原文地址:https://www.cnblogs.com/ChengzhiYang/p/9745208.html

时间: 2024-08-28 09:56:30

初识区块链(三)的相关文章

初识区块链(二)

区块链技术中几个关键问题 第一,去中心化 去中心化并不是一个时髦的名词,简单说就是点对点交换信息,不存在第三方中介.我们日常使用的Internet.Email Service.SMTP等都使用了去中心化思想. 第二,分布式共识 在去中心化的分布式系统中,如果要达成受信任的记账系统,需要考虑共识问题,也就是如何让点对点通信的各方达成一致,并解决叛徒或者恶意结点的问题. 分布式共识要保证所有诚实结点的输入一致,且共识是由所有诚实结点达成的.拜占庭将军问题是一个典型的案例,但当叛徒数量超过总人数的1/

初识区块链

浅谈区块链 从一个账本说起,早些时候,农村一般都会有一个账房先生,村子里的公共开销都有账房先生来记账,大部分情况下没有人去查账本,账本也就是账房先生来保管,一直相安无事.下图便是账本的记账权 但是有一天,有个人无意发现数字对不上,这可不行,立即保告了其他人,结果大家都不干了,经过一番讨论大家决定,轮流来记账,这个月张三,下个月李四,大家轮着来,防止账本在一个人手里,于是账本的记账权发生了如下图所示: 通过上图可以看到,大家轮流来记账一切又相安无事了,知道有一天李四想挪用公款但是他又怕被后面记账的

初识区块链——用JS构建你自己的区块链

前言 区块链太复杂,那我们就讲点简单的.用JS来构建你自己的区块链系统,寥寥几行代码就可以说明区块链的底层数据结构.POW挖矿思想和交易过程等.当然了,真实的场景远远远比这复杂.本文的目的仅限于让大家初步了解.初步认识区块链. 文章内容主要参考视频:Building a blockchain with Javascript (https://www.youtube.com/playlist?list=PLzvRQMJ9HDiTqZmbtFisdXFxul5k0F-Q4) 感谢原作者,本文在原视频

区块链之初识区块链

大家下午好,这里是链客区块链技术问答社区,给大家讲一讲刚接触区块链的萌新需要了解什么. 首先得明白几个概念:区块链,比特币,中心化,去中心化,挖矿 区块链和比特币 区块链是啥呢?区块链和比特币有啥关系呢? 比特币是区块链,但区块链不是比特币.区块链是一种技术,比特币是其的一种体现形式,除了比特币,还有好多类似的币.区块链这种技术与普通技术的区别有啥区别呢?就是普通的技术会把一个文件存放在一台电脑上,高级点的技术会放在服务器上,而区块链会把一个文件存储在所有终端电脑上,每台电脑上都有这个文件,但是

以太坊开发完整去中心化应用 —— 区块链投票系统

第一节 课程概述 本课程面向初学者,内容涵盖以太坊开发相关的基本概念,并将手把手地教大家如何构建一个 基于以太坊的完整去中心化应用 -- 区块链投票系统. ethereum logo 通过本课程的学习,你将掌握: 以太坊区块链的基本知识 开发和部署以太坊合约所需的软件环境 使用高级语言(solidity)编写以太坊合约 使用NodeJS编译.部署合约并与之交互 使用Truffle框架开发分布式应用 使用控制台或网页与合约进行交互 前序知识要求 为了顺利完成本课程,最好对以下技术已经有一些基本了解

以太坊 DApp 开发入门实战! 用Node.js和truffle框架搭建——区块链投票系统!

第一节 概述 面向初学者,内容涵盖以太坊开发相关的基本概念,并将手把手地教大家如何构建一个 基于以太坊的完整去中心化应用 -- 区块链投票系统. 通过学习,你将掌握: 以太坊区块链的基本知识 开发和部署以太坊合约所需的软件环境 使用高级语言(solidity)编写以太坊合约 使用NodeJS编译.部署合约并与之交互 使用Truffle框架开发分布式应用 使用控制台或网页与合约进行交互 前序知识要求 为了顺利完成,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ru

区块链风口

初识区块链 自己第一次听说区块链是在大概2016年的时候,那时候股市中听到一个叫区块链概念,国家把区块链的技术列入到 "十三五" 规划中,然后相应和区块链的相关的股票股价也是节节攀升.其实很多的公司其实都是在打擦边球来收智商税的.到了2017 年随着随着数字货币的一波大涨,在各种媒体的推波助澜下区块链技术被推到了普通大众的面前. 我们每天会听说谁又炒某个币挣了几个亿的故事. 越来越多的人开始关注比特币等各种数字货币,希望自己能够能够搭上这班快车 .正所谓人要顺势而为,在风口上猪都可以飞

未来,区块链项目会分化成什么样子?

未来,区块链项目会分化成什么样子? 当区块链成为当红"炸子鸡"之后,与链相关的项目如同雨后春笋,破土而出,漫山遍野都是区块链概念的产品.飒姐周末去一家教育机构讲课,隔壁就是某艺术品区块链应用发布会,俺本来充满期待,结果一进门被俩黑西装的"专业人士"盛情推销,大致是买他们家艺术金融产品,这种产品是区块链做的,非常靠谱等等-..不禁哑然失笑. 1."沙漏式"结构明显 优质项目和"骗子"项目,都会大量涌出. 以腾讯等为代表的&quo

昊天善圈区浅述区块链技术应用开发的三种系统类型及系统特点

最近这一两年,特别今年2018年,区块链彻底火了起来,国外有很多知名大学都把区块链技术加入大学课程当中.区块链开发技术可以广泛的应用在产品供应链.房地产.医疗.在线音乐.金融行业.征信系统等多个行业,其中金融行业.征信系统.产品供应链应用得最多.因为应用行业很多,导致区块链技术开发人员严重缺乏.在国内国外区块链熟练技术开发人员年薪都可以达到百万左右,导致很多程序涌入区块链领域的技术开发.区块链技术开发之所以出现严重的用工荒主要还是因为这是一项新兴超前的技术,懂的人自然很少,区块链技术开发人员就更