想知道更多区块链技术,请搜索【链客区块链技术问答社区】

链客,有问必答!!

我们知道了信息计算Hash打包的过程:交易记录、时间、账本序号、上一个Hash值。也知道所有的计算和存贮是需要消耗计算机资源。在中本聪的设计里,完成记账可以获得系统给与比特币奖励,这个过程也就是比特币发行过程,因此把记账成为挖矿。

记账工作

因为记账是有奖励,每次记账都可以为自己增加一定个数的比特币,因此大家争相记账,当然能也就引发了问题:出现记账不一致的是后,系统引入工作量证明来解决这个问题,规则如下:

1.在一段时间内,只有一个人能记账成功。

2.通过解决密码学难题竞争获得唯一记账权

3.其他节点复制记账结果

不过在进行工作量证明之前,记账节点会做进行如下准备工作:

1.收集广播中还没有被记录账本的原始交易信息

2.检查每个交易信息中付款地址有没有足够的余额

3.验证交易是否有正确的签名

4.把验证通过的交易信息进行打包记录

5.添加一个奖励交易:给自己的地址增加12.5比特币

如果争夺记账权成功的话,就可以得到12.5比特币的奖励。

工作量证明

每次记账的时候会把上一个块的Hash值和当前的账页信息一起作为原始信息进行Hash。为了确保10分钟前后只有一个人可以记账,就只有提高记账的难度,用Hash的结果必须以若干个0开头。为了满足条件,进行Hash是引入一个随机数变量。

用伪代码表示一下:

1.Hash(上一个Hash值,交易记录集) = 456635BCD

2.Hash(上一个Hash值,交易记录集,随机数) = 0000aFD635BCD

改变Hash的原始信息的一部分,Hash值也会不断变化,因此在运行Hash的时候,不断改变随机数的值,总可以找到一个随机数使得Hash的结果以若干个0开头,率先找到随机数的节点从此获得记账的唯一记账权。

验证

在节点成功找到Hash值之后,会马上对全网进行广播打包区块,网络的节点收到广播后会对其进行验证。如果验证通过,表明已经有节点成功解密,就不会在竞争当前区块,而是选择接受区块,记录到自己的账本中,进行下一轮竞争猜谜。网络中只有最快解密的区块才会添加到账本中,其他的节点进行复制,确保整个账本的唯一性。

如果节点有作弊行为,会导致网络的节点验证不通过,直接放弃其打包的区块,也无法记录到总账本中,那么作弊节点的消耗成本就白费了。因此矿工自觉的遵守比特币系统的共识协议,也确保整个系统的安全。

进阶阅读比特币区块结构Merkle树及简单支付验证分析,可以详细了解区块结构如何验证交易。

我是【链客】六级算力等级《守护平井一夫》 为各位解答区块链技术问题,欢迎加入。

链客区块链技术问答社区,有问必答!!

国内域名:www.liankexing.com 复制网址至浏览器即可进入社区

国际域名:www.lk.wiki QQ群: 725414372

python比特币挖矿_比特币如何挖矿(挖矿原理)-工作量证明相关推荐

  1. 链接哈希是什么_熊猫人行情:什么是工作量证明机制(POW)

    熊猫人行情:什么是工作量证明机制(POW)(视频链接) 知乎视频​ ​大家好!这里是熊猫人~ 上班打卡下班打卡,想必大家都并不陌生 总有各种方式证明你确确实实是工作过 (加油,打工人!) 区块链中也有 ...

  2. 比特币程序_比特币如何运作? 我建立了一个应用程序向您展示。

    比特币程序 by Sean Han 通过肖恩·韩 比特币如何运作? 我建立了一个应用程序向您展示. (How does bitcoin work? I built an app to show you ...

  3. python 数据平滑_数据平滑方法的原理和应用

    一.简介 在实际的工程应用中,经常会遇到初始结果噪声太多的问题,比如信号强度抖动的太厉害,比如视频流中的bbox抖动的太厉害,比如光谱信号抖动的太厉害等等,这时候就需要一些简单的滑动平均算法.滑动平均 ...

  4. 手机编写python挖矿_用 Python 从零开发一个区块链应用

    本篇教程是面向各能力层级的 Python 开发者介绍区块链(blockchain).你将通过从零实现一个公链(public blockchain)和构建一个简单的应用来确切理解区块链到底是什么. 你将 ...

  5. 什么是比特币?比特币的发展史,什么是挖矿?

    什么是⽐特币 ⽐特币是由⼀系列概念和技术作为基础构建的数字货币⽣态系统.狭义的"⽐特币"代表系统中的货币单位,⽤于储存和传输 价值.⽤⼾主要通过互联⽹使⽤⽐特币系统,当然其他⽹络也 ...

  6. 挖矿为什么要用显卡_你知道为什么挖矿用显卡,而不用CPU吗?

    大家听说过比特币.挖矿.矿卡.矿机这些名词么?上面这些名词,都是前几年新诞生.或者被重新定义过的新鲜名词,它们其实都跟一个东西息息相关,那就是数字货币. 以比特币为代表的数字货币,带动了区块链技术以及 ...

  7. 以太坊2.0怎么挖矿_以太坊2.0即将上线 现在正是挖矿红利期 普通人如何参与挖矿?...

    以太坊2.0 吹响牛市号角!以太坊从诞生至今,共经历了四个阶段,分别是Frontier.Homestead.Metropolis和Serenity,此次以太坊升级疏于第四阶段Serenity,其中最核 ...

  8. linux挖矿的清理工具,Linux挖矿病毒的清除与分析

    文章目录 起因 清除过程 确定病因 开始清除 复发 定时任务 update.sh分析 修复 样本分析:networkservice文件的分析 分析准备 功能分析 sysguard 样本下载 *本文中涉 ...

  9. 记一次挖矿病毒应急处置全过程挖矿处置基本操作

    记一次挖矿病毒应急处置全过程&挖矿处置基本操作 一.处置过程 1.查看第一位的pid号:32535 2.进入`/tmp/.X11-unix`目录,其中`11`文件中写的是32535,`01`文 ...

最新文章

  1. 解决在onCreate()过程中获取View的width和Height为0的4种方法
  2. [转]JAVA泛型通配符T,E,K,V区别,T以及ClassT,Class?的区别
  3. 《HelloGitHub》第 19 期
  4. build 之前执行task_一次NPM前端项目的CI-Build速度优化
  5. 一个查看Cookie的便捷工具——EditThisCookie
  6. 深度学习之keras (一) 初探
  7. c索引超出了数组界限_关于MATLAB逻辑数组索引的二三事(二)
  8. Paraview快捷键操作
  9. 13.PIO源码详解3-PIO模块(PIO.v)剖析
  10. 金融科技赋能 互融云手机回租系统 实现资产全流程在线运营管理
  11. 电脑屏幕上有个白色线条移动,怎么关掉?
  12. 机器学习-西瓜书-模型评估
  13. 微信小程序-时间轴/抽屉展开收起特效
  14. 解决Android 8.1 获取不到wifi名称
  15. zabbix自定义监控项及触发动作
  16. 【收藏】最全计算机网络基础思维导图
  17. javascript匿名函数传值问题
  18. 2009年三季度基金持股减仓表1
  19. 机器学习中的数学(1):MIT大牛写的综述
  20. 计算机与scp通讯发生故障,在两台远程计算机之间使用scp命令时权限被拒绝错误...

热门文章

  1. SENET——imageNet冠军解读
  2. ColorStateList 使用详解
  3. Attachments to close incidents
  4. Django数据查询方法总结
  5. Curator操作ZooKeeper
  6. 如何实现两列等高效果?
  7. Navicat for Mysql 新建查询提示文件找不到
  8. 关于高性能网络编程的一些知识
  9. ArcGIS工具之ET GeoWizards、GeoTools、GeoTools
  10. Java千百问_03基本语法(002)_java都有哪些关键字