06 ETH-挖矿算法
《区块链技术与应用》课程链接:https://www.bilibili.com/video/BV1Vt411X7JF/?spm_id_from=333.337.search-card.all.click
06 ETH-挖矿算法
挖矿是保障区块链安全的一个重要手段。
Blockchain is secured by mining.
bug bounty(悬赏找漏洞)
比特币的挖矿算法是一个天然的bug bounty,如果你能找到bug,就能获得很大的利润。
比特币的挖矿算法也有值得改进的地方。有一个饱受争议的问题,挖矿设备的专业化。
很多人认为与去中心化的理念背道而驰。也和比特币的设计初衷相违背的。
中本聪论文(one cpu,one vote)。
以太坊的mining puzzle的设计目标便是 ASIC resistance。
常用的做法是增加对内存访问的需求,也就是 memory hard mining puzzle。
ASIC芯片的优势是计算能力,但是对于内存访问上,没有很大的优势。
litecoin 莱特币的puzzle是基于scrypt(对内存要求很高的hash函数)。
scrypt的简单设计思想,内存中开设数组,使用伪随机数seed,对其进行hash,后面依次对前的数据进行hash。之后求解puzzle的时候,按照相应规则进行读取。
time-memory trade off
思想:增加运算过程中对内存访问的需求。(设计的任务更像是一个普通计算机该干的事情,而不是一个专用的挖矿设备)
问题:该设计思想好的地方是,挖矿的时候,对矿工来说,是memory hard,坏的地方,对轻节点来说,也是memory hard。
原则:difficult to solve, but easy to verify。
问题:验证puzzle需要的内存区域,和求解puzzle需要的把内存区域,几乎是一样大的。(轻节点也需要验证区块)
因为这个原因,实际莱特币使用的时候,数组只有128k,就是为了照顾轻节点。
当初莱特币发行的时候,目标不仅仅是 ASIC resistance,而且还是 gpu resistance。
实际上,莱特币要求的128kb的内存,不足以对ASIC芯片带来实质性的障碍。莱特币的设计目标没有达到。
虽然没有达到目标,但是对莱特币的能启动问题,是很有帮助的。
任何加密货币都存在能启动的问题。
莱特币早期的宣传对于聚集人气来说,是很重要的。
莱特币的出快速度是比特币的4倍(2.5分钟)。除此之外,两种加密货币基本是一样的。
以太坊的 memory hard mining puzzle
小:16M Cache
大:1G dataset,DAG
伪代码实现:
为什么挖矿只要hash块头的信息?
轻节点只需要下载区块头,就可以验证区块是否符合挖矿的难度要求。
汇总内容:
以太坊挖矿主要以使用GPU为主,从这一点来说,比莱特币要成功,起到了ASIC resistance。
ethash:以太坊的挖矿算法。
以太坊没有出现ASIC矿机,还有另外一个原因,以太坊计划从 PoW 转向 PoS。
权益证明:按照所占的权益进行投票,来形成共识。(类似股份投票的方式)
一个简单的办法,是不断吓唬大家。
以太坊中采用了预挖矿的过程(pre-mining)。
就是系统预留一部分加密货币给系统的早期开发者。比特币没有采用pre-mining。
pre-sale:将pre-mining中预留的一些币出售出去,换取一些资产。用于加密货币的开发工作。
以太坊的统计数据:
挖矿挖的在努力,关键还是不能输现在起跑线上。
以太坊最大的25个矿池比重:
以太坊价格变化:
以太坊市值:
以太坊的hashrate(所有矿工每秒挖矿的计算力):
以太坊中尝试一个nonce的工作量,要比比特币大得多。
有人认为让通用计算设备参与挖矿反而是不安全的。像比特币那样,采用专门的ASIC挖矿才是更安全的。
发动攻击的成本变得很高。
通用计算机挖矿,发动攻击的成本大幅度下降。(大型公司有很多服务器)
所有,有人认为让通用计算机参与挖矿是不好的,ASIC矿机一统天下才是最安全的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通