挖矿

比特币系统为什么要挖矿?先让你干体力活,当你越卖力的时候,就可以获得奖励
增加恶意行为的成本
争夺记账权利,获取奖励

 


传统的挖矿:体力劳动
比特币挖矿:脑力劳动,把挖掘变成计算,矿工使用电脑不停的计算
每开采210000个区块,挖矿奖励减半
2009年1月—-2012年11月,奖励50BTC
2012年11月-2016年7月,奖励25BTC
........奖励12.5BTC
2040年,所有的BTC被挖出,挖矿没有奖励,矿工以手收费为生


每个人都可以拥有一个比特币的银行式的记账系统
比特币系统也是鼓励大家来记账的,几万台机器的话,防攻击的能力也是非常强的


难度是否小于目标的哈希值
装区块链的全节点少了,比特币系统也会不攻自破的


区块完整图示:
版本号-父区块哈希-Merkle树根-时间戳-难度目标值-Nonce
当你接收到一个区块的时候,唯一要改变的是你父区块的哈希


目标值增大:难度降低了
难度值增大:挖矿难度增加
挖矿就是猜Nonce值,穷举法

 

每2016个区块调整难度
新目标值=当前目标值*(过去2016区块用时分钟/20160分钟)
难度目标值:区块头部hash要小于的值


矿工无需运行全节点,只需要安装挖矿软件
矿池管理员维护全节点,并把任务分段,给矿工不止挖矿任务

矿池分类
PPLNS
PPS
FPPS

矿池:p2p
放置托管矿池管理员作弊,基于区块链技术。去中心化的矿池管理系统
矿工需要自己运行全节点
根据矿工共享的算力来确定分红
托管矿池,矿工把自己买的矿机托管到矿池,有矿场帮助维护打理


可塑性攻击:
可塑性攻击也称为可锻性,是指一个物体的外形不引起质量和物理化学属性的变化
交易签名具有可塑性,有多种写法
修改交易签名引起交易的哈希值改变,即TXID改变
TXID发生改变会导致TXID无法找到,造成攻击漏洞
隔离见证
可伪造的签名部分移除交易数据结构,在另一个地方存放签名
改变签名不影响TXID的变化

 


构造交易-查看初始交易
bitcoin -cli decoderawtransaction

 

第一个是拥有者
p2pk用公钥来锁定
p2pkh用公钥的哈希来锁定
p2sh用脚本锁定


偷币:
创建私钥,生成对应的公钥和比特币地址
调用相应的API接口
查看amount字段的值,有没有比特币,如没有返回步骤1
调用相应API接口,创建向自己的比特币地址转钱的初始交易
调用相应的APi接口,对交易签名(用到生成的公钥)
调用相应的APi接口,将交易向全网广播,坐等收钱
回步骤1


decode是解码,encode是编码

 

 

 

 

 

 

posted @ 2019-04-01 22:58  风不再来  阅读(210)  评论(0编辑  收藏  举报