0%
比特币节点
- 每个比特币钱包都是一个节点
- 全节点:拥有完整账本,负责转账交易广播和验证
- 轻节点:不挖矿,只交易
- 挖矿节点:增加挖矿功能的全节点,记账节点
- 目前500多万节点,全节点只有1万多
挖矿,矿工,矿机,矿场,矿池
- 挖矿:争取记账权,确认交易并记录在区块链上
- 矿工:从事挖矿的人,只需保证电力和网络,其他都由电脑完成
- 矿机:芯片,散热片,风扇
- 矿场:矿机集中起来形成矿场
- 矿池:很多矿场集中在一起
- 全球算力最高四个都在中国
挖矿设备
- CPU挖矿
- GPU挖矿:等于几十张CPU
- 专业矿机挖矿:蚂蚁矿机=30000张CPU
- 矿场挖矿
- 矿池挖矿
算力
- 计算能力,目前主流矿机算力为14T左右
哈希算法
- 只能加密不能解密的算法
- 被用于数字签名
- 最有名的就是MD5,SHA-1,都是以MD4为基础设计的
- 比特币使用SHA-2家族
- 哈希算法特点:1.输入只要改变一点,输出的hash值就天差地别。2.输入值与输出值之间没有规律,无法反推。
- 难度Difficulty:整个网络调整难度来控制生成工作量证明所需要的计算力,随着难度增加则会启用超额随机数
- 难度目标:是整个网络大致10分钟产生一个区块所需要的难度数值即为难度目标。Bits是用来存储难度目标的16进制数值。Bits越小,难度越大,越难挖矿
- 难度重定:经过2016个区块就调整难度值,新难度值依据前面的2016个重新计算
区块结构
- 区块头,区块体
- 区块体:交易详情,交易计数器,区块大小
- 区块头:每个区块的前80个字节:1.版本号4个字节。2.前一个区块的hash32个字节。3.本区块前所有交易的默克尔根32字节4.时间戳4字节。5.难度目标Bits4字节。6.随机数Nonce4字节
默克尔根及默克尔树
- 存储hash值的一棵树
- 按手续费高低排序
- 将交易信息打包后两两哈希,碰到拿到单数就复制自己再hash
- 不停地递归hash一直到树根
挖矿原理
- 重复计算区块头的hash,不断修改随机数Nonce,直到小于难度目标Bits计算出来的Hash