p7.BTC-挖矿总结
全节点:
1 一直在线
2 在本地硬盘上维护完全的区块链信息
3 在内存里维护UTXO集合,以便快速检验交易的正确性
4 监听比特币网络上的交易信息,验证每个交易的合法性
5 决定哪些交易会被打包到区块里
6 监听别的矿工挖出来的区块,验证器其合法性
7 挖矿:a 决定沿哪条链挖下去 b 当出现等长的分叉的时候,选择哪一个分叉
轻节点
1 不是一直在线
2 不用保存整个区块链,只要保存每个区块的块头,比全节点文件大小小1k倍
3 不用保存全部交易,只保存与自己相关的交易
4 无法检验大多数交易的合法性,只能检验与自己相关的那些交易的合法性
5 无法检测网上发布的区块的正确性
6 可以验证挖矿的难度
7 只能检测哪个是最长链,不知道哪个是最长的合法链
8 占比大
由此可知:
1.如果你不是想挖矿,你存轻节点就可以了。
2.你挖到一半,突然有新的区块发布了,则你需要停止以有的挖矿,重新组装一个候选区块,以新发布的区块开始往后挖,由于挖矿的无记忆性,重新挖矿不影响挖矿成功的概率。
比特币的安全性由两方面保证:
1.密码学
非对称性加密,无法伪造前签名(前提是恶意算力不够强大)
2.共识机制
挖矿设备的进化
1.CPU挖矿
由于通用计算机的设备占用部分少(一少部分CPU指令,硬盘,大部分内存等其他部件都是闲置的)。随着挖矿难度越来越大,性价比越来越低。
2.GPU挖矿
擅长大规模并行计算,但是里面还是有很多部件是闲置的(如:浮点数计算的部件),随着挖矿难度越来越大,性价比也越来越低。
3.AISC芯片
专门为某一种加密货币设计的挖矿芯片(mining puzzle 一样的货币也行)
可知:挖矿设备的军备竞赛中,最赚钱的可能是矿机厂家。
矿池:由一个pool manager 带领多个miner 组成,能够稳定收益。pool manager负责监听网上新发布的交易打包成侯选区块,分配出块奖励,分配任务,miner 负责计算hash。
矿池的出现也使得51%攻击变动容易了,因为pool manager通过降低手续费,管理费等吸引miner,而自己不需要出算力。矿池算力占主导地位的时候还可以发动Boycott攻击。