python比特币挖矿_比特币如何挖矿(挖矿原理)-工作量证明
想知道更多区块链技术,请搜索【链客区块链技术问答社区】
链客,有问必答!!
我们知道了信息计算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比特币挖矿_比特币如何挖矿(挖矿原理)-工作量证明相关推荐
- 链接哈希是什么_熊猫人行情:什么是工作量证明机制(POW)
熊猫人行情:什么是工作量证明机制(POW)(视频链接) 知乎视频 大家好!这里是熊猫人~ 上班打卡下班打卡,想必大家都并不陌生 总有各种方式证明你确确实实是工作过 (加油,打工人!) 区块链中也有 ...
- 比特币程序_比特币如何运作? 我建立了一个应用程序向您展示。
比特币程序 by Sean Han 通过肖恩·韩 比特币如何运作? 我建立了一个应用程序向您展示. (How does bitcoin work? I built an app to show you ...
- python 数据平滑_数据平滑方法的原理和应用
一.简介 在实际的工程应用中,经常会遇到初始结果噪声太多的问题,比如信号强度抖动的太厉害,比如视频流中的bbox抖动的太厉害,比如光谱信号抖动的太厉害等等,这时候就需要一些简单的滑动平均算法.滑动平均 ...
- 手机编写python挖矿_用 Python 从零开发一个区块链应用
本篇教程是面向各能力层级的 Python 开发者介绍区块链(blockchain).你将通过从零实现一个公链(public blockchain)和构建一个简单的应用来确切理解区块链到底是什么. 你将 ...
- 什么是比特币?比特币的发展史,什么是挖矿?
什么是⽐特币 ⽐特币是由⼀系列概念和技术作为基础构建的数字货币⽣态系统.狭义的"⽐特币"代表系统中的货币单位,⽤于储存和传输 价值.⽤⼾主要通过互联⽹使⽤⽐特币系统,当然其他⽹络也 ...
- 挖矿为什么要用显卡_你知道为什么挖矿用显卡,而不用CPU吗?
大家听说过比特币.挖矿.矿卡.矿机这些名词么?上面这些名词,都是前几年新诞生.或者被重新定义过的新鲜名词,它们其实都跟一个东西息息相关,那就是数字货币. 以比特币为代表的数字货币,带动了区块链技术以及 ...
- 以太坊2.0怎么挖矿_以太坊2.0即将上线 现在正是挖矿红利期 普通人如何参与挖矿?...
以太坊2.0 吹响牛市号角!以太坊从诞生至今,共经历了四个阶段,分别是Frontier.Homestead.Metropolis和Serenity,此次以太坊升级疏于第四阶段Serenity,其中最核 ...
- linux挖矿的清理工具,Linux挖矿病毒的清除与分析
文章目录 起因 清除过程 确定病因 开始清除 复发 定时任务 update.sh分析 修复 样本分析:networkservice文件的分析 分析准备 功能分析 sysguard 样本下载 *本文中涉 ...
- 记一次挖矿病毒应急处置全过程挖矿处置基本操作
记一次挖矿病毒应急处置全过程&挖矿处置基本操作 一.处置过程 1.查看第一位的pid号:32535 2.进入`/tmp/.X11-unix`目录,其中`11`文件中写的是32535,`01`文 ...
最新文章
- 解决在onCreate()过程中获取View的width和Height为0的4种方法
- [转]JAVA泛型通配符T,E,K,V区别,T以及ClassT,Class?的区别
- 《HelloGitHub》第 19 期
- build 之前执行task_一次NPM前端项目的CI-Build速度优化
- 一个查看Cookie的便捷工具——EditThisCookie
- 深度学习之keras (一) 初探
- c索引超出了数组界限_关于MATLAB逻辑数组索引的二三事(二)
- Paraview快捷键操作
- 13.PIO源码详解3-PIO模块(PIO.v)剖析
- 金融科技赋能 互融云手机回租系统 实现资产全流程在线运营管理
- 电脑屏幕上有个白色线条移动,怎么关掉?
- 机器学习-西瓜书-模型评估
- 微信小程序-时间轴/抽屉展开收起特效
- 解决Android 8.1 获取不到wifi名称
- zabbix自定义监控项及触发动作
- 【收藏】最全计算机网络基础思维导图
- javascript匿名函数传值问题
- 2009年三季度基金持股减仓表1
- 机器学习中的数学(1):MIT大牛写的综述
- 计算机与scp通讯发生故障,在两台远程计算机之间使用scp命令时权限被拒绝错误...