我们常说双花和拜占庭将军问题,其实本质是共识问题。如果一个去中心化网络不能解决共识问题,那就一文不值。

回到昨天说的案例:A同时将1个比特币发给B和C。要解决这个问题,就是要让全网的所有节点都认为A发给了B,或者都认为A发给了C,这样就不怕那些“坏”节点捣乱了,你可以双花,但我们大家只认一个。

其实在前面已经用过一个办法,那就是先收到哪一笔就认哪一笔,但因为比特币节点分布全球,每个节点先收到的交易是不一样的,所以这个办法行不通。那我们能不能找一个权威的节点,以他收到的信息为准,然后大家都向他索要真信息?这是可以的,但我们又回到了“中心化”的老路子上去了,中心化的缺点之前说过了,这里就不多说了。

那么中本聪是怎么解决这个问题的呢? 他的办法也是找一个权威的节点,但是这个权威的节点是变动的,不是固定某一个节点,这样就避免了“中心化”。

具体怎么实现的呢?比特币网络大概每10分钟就竞选一次记账权,每个节点都会先在自己的电脑上记账,把他收到的交易信息记到一个账本上,俗称“打包”。但是,只有拿到记账权的人,他记的账本大家才会认,他会把这个账本广播给所有节点。这里的账本就是区块。于是,整个过程完成,比特币这条区块链上又增加了一个新的区块。

这个方法说来简单,但其实要解决好几个问题:

1、要给记账人一些好处,要不谁吃饱了撑的跑来记账
好处有两个,一是比特币网络凭空“创造”出一些比特币奖励给记账人,这个奖励每4年减半,现在一个区块奖励12.5个(所有的比特币最初都是这么凭空产生的);二是从他打包的交易里收一点手续费。但是这个手续费,交易的发送者是可以自主决定出多少的。出得多当然交易速度就快,出得少交易就慢,因为区块是有大小限制的,记账人肯定优先把手续费出得多的交易打包,如果区块里还有空间,再考虑出得少的,如果没空间了,出得少的就只能往后排了,最后很有可能这个记账人不记,那个记账人也不记,一个个的10分钟就这么过去了,交易当然就慢了。

2、不给好处没人记,但给了好处,肯定又一堆人抢着记,这时候的问题就变成了用一个什么办法选出一个记账人
办法就是解题,谁先解出来谁就负责记账,拿到奖赏。每次的题型都是一样的,考的都是哈希,但题目不一样。我们在讲哈希的那一篇说过,把一堆信息哈希出一串固定长度的数据很容易,但反过来从哈希值反推原始值是不可能的,只能用笨办法找各种原始值一个个去试,谁试得快谁就有优势,所以解题拼的是CPU的蛮力,这个蛮力也叫“算力”。每个区块里都有一个“难度系数”,这个难度系数决定了下一个区块的题目有多难,如果全网的算力太高了,那就把难度调高一点,反之则调低一点,反正就是保证全网在10分钟左右解出这道题,也就是保证大概10分钟出一个块。这样就保证了比特币产出的稳定,既不会因为太快而通货膨胀,又不会因为太慢而通货紧缩。

区块与共识(一):解决竞选记账权的问题相关推荐

  1. 区块链共识算法的发展现状与展望

    来源:平行区块链 摘 要 共识算法是区块链技术的核心要素, 也是近年来分布式系统研究的热点. 本文系统性地梳理和讨论了区块链发展过程中的 32 种重要共识算法, 介绍了传统分布式一致性算法以及分布式共 ...

  2. 05 共识问题:区块链如何确认记账权?

    文章目录 05 共识问题:区块链如何确认记账权? 区块链的共识 拜占庭将军问题 POW 工作量证明 挖矿的由来 比特币的 POW 实现 区块链分叉和 51% 攻击 POW 机制优缺点 其他共识方法 P ...

  3. 分布式技术原理与实战45讲--05 第05讲:共识问题:区块链如何确认记账权?

    本课时我们主要讲解"共识问题:区块链如何确认记账权?" 区块链可以说是最近几年最热的技术领域之一,区块链起源于中本聪的比特币,作为比特币的底层技术,本质上是一个去中心化的数据库,其 ...

  4. 区块链如何确认记账权?

    文章目录 区块链的共识 拜占庭将军问题 挖矿的由来 比特币的 POW 实现 区块链分叉和 51% 攻击 POW 机制优缺点 总结 区块链可以说是最近几年最热的技术领域之一,区块链起源于中本聪的比特币, ...

  5. 区块链中的记账权问题

    "找到这个随机常数,使得函数值Bn小于某个数",应该怎么理解? -------- 个人技术公众号:解决方案工程师 欢迎同领域的朋友关注.相互交流. -------- 昨天听了中国标 ...

  6. 股权证明pos记账权是根据不同节点_主流共识机制PoS、PoW与DPoS、PoU对比演变

    常见的共识算法有:PoW.PoS.DPoS.PoU.那么,这些共识算法具体是怎么回事呢?今天我们就展开来讲一讲. 在区块链这个虚拟的世界,陌生人之间工作关系的建立.工作进度的推进以及工作内容的完成,都 ...

  7. 从分布式一致性算法到区块链共识机制

    引言 分布式一致性是一个很"古典"的话题,即在分布式系统中,如何保证系统内的各个节点之间数据的一致性或能够就某个提案达成一致.这个问题想必对于很多技术同学而言并不陌生,几乎在所有的 ...

  8. 区块链共识算法总结 | 原力计划

    作者 | 日月ton光 责编 | 王晓曼 出品 | CSDN博客 常见共识算法介绍 在异步系统中,需要主机之间进行状态复制,以保证每个主机达成一致的状态共识.而在异步系统中,主机之间可能出现故障,因此 ...

  9. 区块链共识机制及其迭代

    共识,Consensus,故名思义,共同的认识,共识问题研究的就是多个成员如何达成一致,典型的比如投票选举. 区块链是一种去中心化的分布式账本系统,区块链的共识问题实际上来源于分布式系统的一致性问题. ...

最新文章

  1. php中用foreach改变数组的值的问题
  2. 'cross-env' 不是内部或外部命令,也不是可运行的程序
  3. 利用emu8086学习汇编int 10h功能
  4. VC++2019 使用wininet下载文件
  5. nmap 扫描常见漏洞
  6. jsoup爬虫,爬取全站代码
  7. abp 基于api接口的页面内容提交
  8. weak和assign的区别
  9. kickstart无人值守自动安装操作系统
  10. 31.卷1(套接字联网API)---流
  11. 30 | 答疑文章(二):用动态的观点看加锁
  12. 51单片机之实时秒表
  13. Texlive安装失败解决方法
  14. VoLTE网络各节点功能介绍
  15. 2021-2022 ACM-ICPC Brazil Subregional Programming Contest C Creating Multiples
  16. 1.3-15:苹果和虫子
  17. linux识别fta32出错,解决FAT32格式U盘安装win10时0x8007000D错误
  18. 何炅谢娜刘诗诗杨幂黄晓明 明星最新片酬曝光
  19. 使用js来实现分页功能
  20. 巴特沃斯、切比雪夫、贝塞尔滤波器的比较

热门文章

  1. document.referrer之隐藏来源
  2. DRN: A Deep Reinforcement Learning Framework for News Recommendation理解
  3. python数据可视化—WordCloud词云图
  4. linux批量删除文件或者文件夹
  5. h3c查看光纤光功率
  6. C++ DLL总结—静动态调用、导出类
  7. Java JCEF集成Chromium
  8. sklearn之pipeline:pipeline函数/make_pipeline函数的简介及其区别联系、使用技巧、案例应用之详细攻略
  9. 『中级篇』什么是Container(15)
  10. linux和pe修复win10启动项,pe下如何重建win10引导?pe下win10引导修复图文教程