区块链技术与应用肖臻老师笔记整理之------19-ETH-mining算法
Posted 云灬沙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链技术与应用肖臻老师笔记整理之------19-ETH-mining算法相关的知识,希望对你有一定的参考价值。
注:没有全部复原,抽取了主体知识,加入了一些自己的理解,强烈建议去学习肖臻老师的课程,这绝对算得上是国内区块链讲解的顶级教程,纯学术和技术
Block chain is secured by mining.
bug bounty ;bug悬赏,找到Bug给奖励
BTC的挖矿算法是一个天然的bug bounty
ASIC resistance;如何设计一个对ASIC芯片不友好的系统,让普通PC能参与的?
一种常见的作法是memory hard mining puzzle,如果设计出一个对内存要求很高的puzzle,就能对ASIC进行有效遏制。
LiteCoin:其puzzle是基于scrypt,对内存要求很高的哈希函数,应用于计算机安全领域,与密码相关
洋葱一样的加密检索,会耗费极大的内存,但是一个问题是对于轻节点,SPV证明来说,也需要一样的内存,不符合。difficult to solve, but easy to verify
LiteCoin:出块时间变为了2分半,加了加密算法,除此之外与BTC都是一样的
以太坊也是使用一种memory hard mining puzzle,但是与LiteCoin有很大的不同
以太坊的挖矿算法
使用两个数据集,小的是一个16M的cache,大的数据集是一个1GB的dataset,叫做DAG
1G的dataset是由16M的cache生成的,就是为了便于验证,轻节点只要保存16M的cache,只有需要挖矿的矿工才需要保存这1G的大数据集。
小的数据集的生成方式是:从一个种子节点经过一些运算生成第一个元素,然后依次取哈希,第一个元素取哈希得到第二个元素,第二个元素取哈希得到第三个元素,把数组从前往后进行填充伪随机数就得到一个cache.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x9hek3hH-1621330507179)(C:\\Users\\nature\\AppData\\Roaming\\Typora\\typora-user-images\\image-20210518162136679.png)]
以太坊先生成一个更大的数组,小的cache和大的dataset都是定期增长的,计算机的内存容量也是定期增长的,摩尔定律
大的数组里面的第一个元素的生成顺序:
- 在cache里面随机选取一个A,之后进行运算得到B的位置,如此运行256次最后得到一个哈希值存在第一个位置。
- 求解puzzle的时候使用的是大数据集里面的数,不使用cache,按照伪随机的顺序,从大的数据集中读取128个数,一开始根据block header和nonce算出一个初始的哈希,根据这个哈希映射到大数据集中的某个位置,将它读取出来,对他进行运算,算出下一个值的位置,特殊之处在于,每次读取的时候,除了计算出这个位置的元素之外,把相邻的元素也要计算出来,相当于每次读取两个相邻的元素。64次循环,每次读两个元素,一共128个元素。最后算出一个hash值,与挖矿难度的目标阈值比较一下,是不是符合难度要求,如果不是的话,把Block header里面的nonce替换一下。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qOVnonU4-1621330507182)(C:\\Users\\nature\\AppData\\Roaming\\Typora\\typora-user-images\\image-20210518162445065.png)]
ethash算法(挖矿算法)伪代码
目前以太坊Miner主要还是以GPU为主,用ASIC芯片的很少
以太坊要从PoW->PoS
权益证明是不挖矿的,这对于ASIC是有很大的风险的。吓唬也是很有用的,哈哈,可以看看视频
Pre-mining;不是真正的挖矿,而是之前在发行之前预留一部分货币给以太坊的开发者,
BTC没有采用这种模式,只不过早期比较容易一些
Pre-sale:预售模式
HashRate:以太坊网络里所有矿工加起来每秒钟计算的hash次数
以太坊和BTC的hashrate不能直接比较,因为以太坊计算一次Hashrate的难度要远远大于Btc
另一种观点认为ASIC是安全的
以上是关于区块链技术与应用肖臻老师笔记整理之------19-ETH-mining算法的主要内容,如果未能解决你的问题,请参考以下文章
区块链技术与应用肖臻老师笔记整理之------24-ETH-反思
区块链技术与应用肖臻老师笔记整理之------25-ETH-美链
区块链技术与应用肖臻老师笔记整理之------22-ETH-智能合约
区块链技术与应用肖臻老师笔记整理之------22-ETH-智能合约