第12讲 | 深入区块链技术(四):PoW共识
第12讲 | 深入区块链技术(四):PoW共识
讲述:黄洲君
时长11:35大小5.30M
PoW 工作量证明
如何理解区块链 PoW
PoW 挖矿的发展历程
PoW 挖矿算法分类与简介
PoW 的优势和劣势
总结
赞 5
提建议
精选留言(19)
- 熊猫2018-04-22自私挖,全节点,双花攻击和重放攻击能分别讲解是什么意思吗?
作者回复: 全节点是一个独立节点,可以自己验证交易并且可以挖矿的节点。 自私挖矿是指矿工先通过较大算力积累优势,挖出多的块的同时不广播,等别人广播一个新区块的时候,自己一下广播2个甚至更多区块,让别人一直处于被分分叉的状态,自己成为矿霸,可以形成100%出块率。 双花攻击就是指一个币可以花费两次,属于数据库一致性问题。 重放攻击与传统it的重放不同,是指硬分叉的两条链的交易都是合法的,可以在a生成交易后去b上去花费。
24 - 朱显杰2018-04-21PoS和DPoS就是对pow不环保的改进,不过也带来了新的问题,所以不可能三角还是有一定道理的4
- sunshuai2018-07-26老师 现在是不是出了一个ant e3型号的asic矿机是针对ethash的
作者回复: 是的,但效率提升只有两倍,很明显不像其他ASIC提升千倍以上。所以谈不上威胁,毕竟内存困难型的还是吃内存的。
3 - 沃野阡陌2018-04-21什麽是coinbase奖励?
作者回复: 系统奖励给挖出块矿工的交易类型
3 - 杨家荣2020-01-15极客时间第二期 21天打卡行动 9/21 <<深入浅出区块链11>>共识算法与分布式一致性算法 回答老师问题 PoW 工作量证明的挖矿过程是否可以替换成有意义的算法呢,历史上是否有过类似创新? 我想到的是POS权益证明机制; POS是否会取代POW,好的算法机制需要时间和市场的验证,没有哪个机制会一直适用于社会发展,一定时期内可能会存在一个当时最好的算法机制。 当随着时间的推移社会的进步技术的成熟,必定会有一个更好的算法机制出现,这是事物发展的必然过程。就像电力的早期发明者没有尝试发明太阳能技术或地热能源。但随着时间的发展,事情总会发展到这个阶段。 [来源:https://baijiahao.baidu.com/s?id=1631392991136867009&wfr=spider&for=pc] 今日所学: 1,因为比特币采用了 PoW 共识机制,所以这个概念才得以被广泛传播。PoW 全称 Proof of Work,中文名是工作量证明,PoW 共识机制其实是一种设计思路,而不是一种具体的实现。 2,挖矿的基本步骤: 生成 Coinbase 交易,并与其他所有准备打包进区块的交易组成交易列表,并生成默克尔哈希; 把默克尔哈希及其他相关字段组装成区块头,将区块头(Block Header)作为工作量证明的输入,区块头中包含了前一区块的哈希,区块头一共 80 字节数据; 不停地变更区块头中的随机数即 nonce 的数值,也就是暴力搜索,并对每次变更后的的区块头做双重 SHA256 运算,即 SHA256(SHA256(Block_Header))),将结果值与当前网络的目标值做对比,如果小于目标值,则解题成功,工作量证明完成; 3,PoW 挖矿算法大致分为两个大类,第一类叫做计算困难,第二类叫内存困难。 4,PoW 的优势和劣势: PoW 共识的内在优势在于可以稳定币价,因为在 PoW 币种下,矿工的纯收益来自 Coinbase 奖励减去设备和运营成本,成本会驱使矿工至少将币价维持在一个稳定水平,所以攻击者很难在短时间内获得大量算力来攻击主链。 PoW 共识的外在优势是目前它看起来依然是工业成熟度最高的区块共识算法,所以在用户信任度上、矿工基础上都有很好的受众。 PoW 共识最大的缺点是非常消耗计算资源,耗电耗能源,这一点也一直为人们所诟病。因为每次产生新的区块都会让相当一部分工作量证明白白浪费了,也就是将计算资源浪费了 5,PoW 共识机制是一种简单粗暴的共识算法,它不要求高质量的 P2P 网络资源,它可以为公链提供稳定有效的记账者筛选机制。同时它也面临了挖矿中心化严重的问题,这也促使人们研究出了新的共识机制,展开1
- 小老鼠2019-12-0951%是如何算出来的,比特币出现分支的概率有多大?1
- sunny2019-08-06矿池进行计算挖矿,那最终的账簿记账就是由矿池这个中心节点记账,那么矿池内的矿工还会进行记账吗,矿工还会有自己的账簿吗
作者回复: 这个要看哪种共识算法,如果是代理式中心化记账的,矿工也是有内部账本的,通常就是传统数据库记一下,这个在比特币矿池非常常见。
1 - 山哥2021-07-31老师的表达能力还要在简洁下。 举个例子,假设我们给定一个字符串“geekbang”,我们提出的难题是,计算一个数字,与给定的字符串连接起来,使这个字符串的 SHA256 计算结果的前 4 位是 0,这个数字我们称作 nonce,比如字符串 "geekbang1234",nonce 就是 1234,我们要找到符合条件的 nonce。 这段文字写的很拗口。。。py代码简单明了。展开1
- A君2021-02-18pow,通过遍历区块头中nonce,直到找到对区块头双重sha后得到比目标值还小的哈希值,即认为解题成功,具有记账权。pow是计算型问题,提高算力就能提高记账概率,要达到控制记账权的目的,需要拥有超过全网51%的算力,这个算力成本极大,但在现在算力集中化的环境下,如果多个矿池联合起来是可以超过这个门槛的,这怎么破?
- Jeff2019-12-12这一节单独剖析PoW还是不错的。这个过程需要多理解,我也在反复看,希望老师有一套Java的demo供参考。
- 八神2018-10-01交易是用收款方的公钥加密的,除了收款方可以查看,别人无法看,校验这笔交易的人该如何校验呢?必须是收款方才能校验吗?
作者回复: 你好,并不是用收款方的公钥加密,而是使用收款方公钥的哈希作为地址,通过构造一个交易脚本,使得收款方能辨别并且必须出具签名才能操作。交易都是公开的,所有人都可以验证。具体:发送者通过地址构造一个ScriptPubKey的“锁”,收款方必须构造一个ScriptSig的“钥匙”,才能花费这些币。
1 - Calios2018-09-26python代码示例在iPhone上看不到,有其他同学有这个问题么?
- 锐2018-06-20自私挖矿是个什么概念?老师解释一下呢
- skevy2018-04-28举个例子,假设我们给定一个字符串“geekbang”,我们提出的难题是,计算一个数字,与给定的字符串连接起来,使这个字符串的 SHA256 计算结果的前 4 位是 0,这个数字我们称作 nonce,比如字符串 "geekbang1234",nonce 就是 1234,我们要找到符合条件的 nonce。 老师请问下上边这一段中,给定的字符串geekbang,会随时变化吗?还是固定的展开
作者回复: 这个由挖矿算法的细节决定的,一般是变化的,通过历史记录计算出来的,例如以太的DAG生成。
- 塞翁2018-04-28生成 Coinbase 交易,并与其他所有准备打包进区块的交易组成交易列表,并生成默克尔哈希; 这段中,怎么保证收到的交易列表的完整性,如果漏收交易,所有运算都白费了?或者说,这个交易列表完整性是怎么判断的?纯粹按照时间?
作者回复: 不存在完整性这一说的,有就有,没有就不会被打包了,完全取决于记账节点与你的网络是否可以路由通,如果不通说明网络分叉了。 也就是纯粹的先来后到,一起打包。
共 2 条评论 - ylshuibugou2018-04-23为什么矿池的特殊在于它可以产生新的区块
作者回复: 代码中约定的
- 小52018-04-23看了下精通比特币电子书,这些基本的概念里面都有讲,什么时候能上一些网上搜不到的东西
作者回复: 基础概念其实是相同的,这个计算机教材入门讲都差不多是类似的,不过为了小白读起来容易花了不少功夫哇。下一篇开始逐渐深入了。希望继续关注哈
- 良辰美景2018-04-21我最近听得到吴军老师说比特币交易成本极高。去中心化带来了大量资源的浪费。如果有好的解决办法是个暴富的机会哦
作者回复: PoW是的,其他算法PoS,DPoS是环保的。
- 不了峰2018-04-21「ETHASH 是 Dagger-Hashimoto 的修改版本,它是典型的内存困难型挖矿算法。」请问以太坊的挖矿,矿机是占用大量内存还是占用大量cpu? 我其实是想问,一台主机上能不能部多个挖矿机,比如,门罗和ETH,我以为一个是消耗cpu,一个是消耗内存。
作者回复: 可以的,正常矿机就是部署6~8张显卡。目前cpu挖矿的币种极少。
1