区块链技术与应用【肖臻老师】笔记整理之------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算法(挖矿算法)伪代码

区块链技术与应用【肖臻老师】笔记整理之------19-ETH-mining算法_第1张图片
区块链技术与应用【肖臻老师】笔记整理之------19-ETH-mining算法_第2张图片
区块链技术与应用【肖臻老师】笔记整理之------19-ETH-mining算法_第3张图片

区块链技术与应用【肖臻老师】笔记整理之------19-ETH-mining算法_第4张图片
区块链技术与应用【肖臻老师】笔记整理之------19-ETH-mining算法_第5张图片

目前以太坊Miner主要还是以GPU为主,用ASIC芯片的很少

以太坊要从PoW->PoS

权益证明是不挖矿的,这对于ASIC是有很大的风险的。吓唬也是很有用的,哈哈,可以看看视频

Pre-mining;不是真正的挖矿,而是之前在发行之前预留一部分货币给以太坊的开发者,

BTC没有采用这种模式,只不过早期比较容易一些

Pre-sale:预售模式

HashRate:以太坊网络里所有矿工加起来每秒钟计算的hash次数

以太坊和BTC的hashrate不能直接比较,因为以太坊计算一次Hashrate的难度要远远大于Btc

另一种观点认为ASIC是安全的

你可能感兴趣的:(区块链,区块链,以太坊)