分布式协议与算法实战
韩健
腾讯资深工程师
23193 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 31 讲
分布式协议与算法实战
15
15
1.0x
00:00/00:00
登录|注册

14 | PoW算法:有办法黑比特币吗?

课堂思考
内容小结
区块链实现PoW算法
工作量证明
PoW算法

该思维导图由 AI 生成,仅供参考

你好,我是韩健。
谈起比特币,你应该再熟悉不过了,比特币是基于区块链实现的,而区块链运行在因特网上,这就存在有人试图作恶的情况。学完01 讲13 讲之后,有些同学可能已经发现了,口信消息型拜占庭问题之解、PBFT 算法虽然能防止坏人作恶,但只能防止少数的坏人作恶,也就是 (n - 1) / 3 个坏人 (其中 n 为节点数)。可如果区块链也只能防止一定比例的坏人作恶,那就麻烦了,因为坏人可以不断增加节点数,轻松突破 (n - 1) / 3 的限制。
那区块链是如何改进这个问题的呢?答案就是 PoW 算法。
在我看来,区块链通过工作量证明(Proof of Work)增加了坏人作恶的成本,以此防止坏人作恶。比如,如果坏人要发起 51% 攻击,需要控制现网 51% 的算力,成本是非常高昂的。为啥呢?因为根据 Cryptoslate 估算,对比特币进行 51% 算力攻击需要上百亿人民币!
那么为了帮你更好地理解和掌握 PoW 算法,我会详细讲解它的原理和 51% 攻击的本质。希望让你在理解 PoW 算法的同时,也了解 PoW 算法的局限。
首先我来说说 PoW 的原理,换句话说,就是 PoW 是如何运行的。

如何理解工作量证明?

什么是工作量证明 (Proof Of Work,简称 PoW) 呢?你可以这么理解:就是一份证明,用来确认你做过一定量的工作。比如,你的大学毕业证书就是一份工作量证明,证明你通过 4 年的努力完成了相关课程的学习。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

PoW算法是比特币区块链中的关键技术,通过工作量证明(Proof of Work)来增加恶意行为的成本,防止恶意攻击。该算法要求客户端进行一定难度的工作,验证方则能轻松核验。具体来说,区块链中的PoW算法通过执行哈希运算来证明工作量,矿工需要计算出符合条件的哈希值,然后将其广播给其他节点。然而,如果恶意者掌握了51%的算力,就可能发起双花攻击,即同一份钱花两次。攻击者可以挖掘出更长的攻击链,导致节点接受更长的链并丢弃原链。攻击成功的概率与攻击者算力的权重相关。因此,尽管攻击者可能无法连续计算出符合条件的哈希值,但长期来看,攻击者攻击成功的概率与其算力权重相当。 PoW算法在防止恶意攻击方面具有一定的局限性,需要进一步的技术改进。 总结:PoW算法是比特币区块链中的关键技术,通过工作量证明来增加恶意行为的成本,防止恶意攻击。然而,如果恶意者掌握了51%的算力,就可能发起双花攻击。攻击成功的概率与攻击者算力的权重相关。因此,尽管攻击者可能无法连续计算出符合条件的哈希值,但长期来看,攻击者攻击成功的概率与其算力权重相当。因此,PoW算法在防止恶意攻击方面具有一定的局限性,需要进一步的技术改进。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式协议与算法实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(15)

  • 最新
  • 精选
  • 小晏子
    课后思考:应该是工作量增加了,根据概率来算,前4位是0的概率是(1/10)^4,更多的零就意味着1/10的指数更大,那么能获取到这个数的概率就越小,这样工作量也就越大。

    作者回复: 加一颗星:)

    2020-03-13
    2
    9
  • 沉淀的梦想
    约定更多的 0,从概率上讲应难度增加了吧,因为所有 5 个 0 的哈希肯定也都满足 4 个 0

    作者回复: 加一颗星:)

    2020-03-13
    6
  • qinsi
    理论上selfish mining只需25%算力就能发起攻击,尽管一开始算力不占多数,但可以吸引其他节点一起加入,最终超过50%

    作者回复: 加一颗星:)

    2020-03-13
    3
  • 每天晒白牙
    工作量增加,通过哈希算法计算出连续8个零的概率低,需要做的工作量自然就高

    作者回复: 加一颗星:)

    2020-03-13
    3
  • Heaven
    理论上是增加了,因为000000包含了0000,所以理应更加难以计算

    作者回复: 加一颗星:)

    2020-08-18
  • 竹马彦四郎的好朋友影法師
    pow算法中能确实证明工作量是该算法的根本,所以如果NP=P的话,区块链就亡了

    作者回复: 加一颗星:)

    2020-05-06
  • Kvicii.Y
    是矿工挖到了之后进行工作量的哈希计算,满足条件再向区块链广播吗?

    作者回复: 加一颗星:),是的

    2020-03-28
  • 阿卡牛
    现实中有哪些基于签名的消息型解决算法?

    作者回复: 签名消息型拜占庭问题之解,比较理论化,属于“早期”的算法,难在实际场景中落地。在现实中,常用的是PBFT,它的消息,也是签名消息。

    2020-03-26
  • 丁乐洪
    工作量 算力

    作者回复: 加一颗星:),通过算力实现工作量证明。

    2020-03-18
  • Dovelol
    老师好,想问下,假如pow算法中链的目前节点是5个,我要计算出一个新节点,要求是“计算出的哈希值,小于目标值”,这个计算出的哈希值要小于哪个目标值呢?是所有5个节点还是某个节点?

    作者回复: 加一颗星:),指定节点,每个区块头nbits字段,根据这个字段能计算出相应的目标值。

    2020-03-14
    2
收起评论
显示
设置
留言
15
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部