用算法解决难题——区块链技术的雏形

构造出一个完美的、可以解决问题的“拜占庭容错系统”是一个不小的挑战。而且构造出来以后,其是否真的有效,能否经得起时间的考验与各方的质疑,这些都关乎着这个系统未来的命运与其创造群体的声誉。

2008年冬季,美国MIT(麻省理工学院)的密码学及密码学政策战略的邮件讨论组中,一位澳大利亚的企业家James A Donald(詹姆斯·A·唐纳德)就对一位声称构造出了一个点对点的、不需要第三方权威认证的e-cash(电子现金)支付系统提出了质疑。而他的理由就是:对方设计的P2P系统不能够解决“拜占庭将军问题”。

在邮件中他挑剔地说道: “我们的确真的非常非常需要这个系统,但我所担忧的并不是信任的问题,而是如何获取一个全局共享的图景,借由此点而获取一致性的问题。每个人都知道X,这并不足够。我们需要让每个人都知道‘每个人都知道X’。而每个人都知道‘每个人都知道X ’就是‘拜占庭将军问题’中,分布式的数据处理最难解决的问题。尤其是当X是非常庞大的数据时……”言下之意,他并不清楚或不确信这个去中心化的系统,如何解决拜占庭将军的难题。

仅仅在一天之后,他就收到了原作者(中本聪)的回复,一封简洁、优雅的邮件解释了在这个系统中,破解“拜占庭将军问题”的算法。

“工作量证明链”( proof-of-work chain)正是我解决“拜占庭将军问题”的方案。我将在那个语境中对它进行重新表述。

一群拜占庭将军,人手一台电脑想用字符串模式匹配的方法,暴力破解国王的WiFi密码,当然他们已经事先获取了组成密码的字符串的长度。一旦他们开始模拟网络发送数据包,他们必须在一个限定的时间内完成破解工作,并清除服务器和电脑上的记录,否则他们就会被发现,那就麻烦了。只有当绝大多数将军在同一时间发起攻击和破解,这样才能有足够的CPU(中央处理器)和计算能力在短时间内完成破解工作。

他们并不特别在乎什么时候开始攻击,只要他们全部同意就好。一开始的时候,大家决定这样搞:任何人觉得时机到了都可以宣布一个攻击时刻。而且,不论是什么时候,只要是第一个被听到的攻击时刻,就将被确定为官方的攻击时刻。这样的话问题又来了,因为网络传达有延迟和干扰,如果有两个将军差不多同一时间公布了两个不同的攻击时刻,那么有的人会最先听到其中一个将军发布的攻击时刻,而又有些人则会最先听到另外一个将军发布的攻击时刻。

他们使用一个“工作量证明链”来解决这个问题。当每个将军接收到任何表达形式的第一个攻击时刻时,他都会设置他的计算机来求解一个极其困难的“工作量证明”问题,对这个问题的解答是一个哈希(Hash)散列,里面也将包含着这次的攻击时刻。由于这个“工作量证明”问题,非常难解,一般而言,就算所有人收到这个问题后同时求解,也至少需要10分钟才能产生解答。一旦一个将军解出了“工作量证明”,他将会把这个算出来的“工作量证明”向整个网络进行传播,每一个接收到的人,将在他们当前正在做的“工作量证明”计算的散列中附加上刚刚被求解出来的那个工作量证明。如果任何人正在计算他收到的其他的一个不同的攻击时刻,他们将会转向新的更新后的“工作量证明”计算当中,因为他现在的“工作量证明链”更长了。

两个小时后,将有一个攻击时刻被散列在一个有12个“工作量证明”的链中。每个将军只要通过验证(这条工作链的)计算难度,就能估算出平均每小时有多少CPU算力耗费在这上面,也就会知道:这一定是在分配的时间段内,绝大多数将军的计算机共同协作才能生成的结果。如果“工作量证明链”中展示出来的算力足够强大,可以破解国王的WiFi密码,那么他们就可以在一致同意的时间内安全地展开攻击。

同步、分布式数据库和一个一致的、全局性的视野的问题如何解决?“工作量证明链”就是答案。

我们可以看到这封邮件解决了下面几个问题:

(1)引入一个困难的、需要10分钟求解的工作量计算,限制了网络中每个时刻中被提出的进攻时刻数目。

(2)将所有求解出的“工作量证明”都逐一加入,形成一个越来越长的链条,一个记录着所有“参与着攻击时刻哈希计算的将军、计算的‘工作量证明’、关于‘工作量证明’的计算的总体名录”。

(3)基于这条长链得出安全的进攻时刻的答案。

引自:《区块链-重塑经济与世界》第8页。

二、工作量证明链-区块链技术的雏形相关推荐

  1. 零知识证明在区块链中的应用

    零知识证明在区块链中的应用 一.引言 二.相关理论 1. 区块链 2.零知识证明 三.区块链中零知识证明的应用 1.zk-SNARK 2.ZeroCash 四.总结 参考文献 一.引言 在国家重视和政 ...

  2. 区块链 - 区块链基础知识:交易哈希链

    区块链 - 区块链基础知识:深入了解交易哈希链 本文的主题是执行有关交易哈希链. 交易池的角色以及 一个最长的区块链如何永远占据主导. 讨论的细节包括以下内容: 事务哈希链的实现细节 交易池的角色 为 ...

  3. 赤链——区块链底层技术革命

    区块链至今为止发展了近10年的时间,尤其这两年得到全球范围内无论政府还是银行或者商业等等广泛认同,并大力推动区块链的应用和落地.目前以比特币和以太坊为代表的公有区块链技术得到快速的发展,作为新的技术应 ...

  4. 火热报名中!谁才是「趣链区块链开发大赛」的最强王者?

    如果你有一个很好的创意,却苦于找不到发挥的舞台:如果你有一个很有前景的项目,却不知从何入手-遇到这些问题,怎么办?那就来参加趣链区块链开发大赛吧! 一.大赛介绍 为了促进区块链相关技术及应用的普及和发 ...

  5. FAF世链区块链大会|赤兔云算CTO 杨钧淏:共建区块链生态,创造新财富时代

    2021年8月7日,由世链财经.FAF主办,世链矿业.斯塔克科技.世链投研.世链资本.丰收资本联合主办,CSLA.DHD冠名的"FAF世链区块链大会"在深圳隆重开启.世链财经记者有 ...

  6. 不忘初心,方得始终——FAF世链区块链大会即将燃爆2021整个盛夏!

    8月,盛夏炎炎,充满热情.在这个满是热情与活力的时间点,区块链业内的知名媒体世链财经将携手FAF(Fairly Advance Future)一道,在现代发达的"科技之都"深圳,举 ...

  7. FAF世链区块链大会|启元社社长徐道彬: 创新价值成为区块链真正的牵引力

    2021年8月7日,由世链财经.FAF主办,世链矿业.斯塔克科技.世链投研.世链资本.丰收资本联合主办,CSLA.DHD冠名的"FAF世链区块链大会"在深圳隆重开启.世链财经记者有 ...

  8. 深创学院宝石院长受邀参加《FAF世链区块链大会》,并以区块链未来发展为主题发表演讲

    据悉,2021年8月6日上午,由世链财经和FAF(Fairly Advance Future)联合主办的"FAF世链区块链大会"在深圳福田香格里拉大酒店拉开帷幕.深创学院创始人宝石 ...

  9. 正式对外开放!趣链区块链平台最新试用版都有哪些惊喜?

    前不久,我们推出了最新一代的趣链区块链平台,引起了行业.媒体和区块链相关人士的广泛关注. 新一代的趣链区块链平台聚焦高效易用.高可扩展.安全合规三大主题,将全面打造最佳用户体验.目前的商业版本在实际标 ...

  10. FAF世链区块链大会|圆桌论坛:NFT虚拟世界的机遇和挑战

    2021年8月7日,由世链财经.FAF主办,世链矿业.斯塔克科技.世链投研.世链资本.丰收资本联合主办,CSLA.DHD冠名的"FAF世链区块链大会"在深圳隆重开启.聚焦新热点.探 ...

最新文章

  1. 将ADS1.2的工程迁移到KEIL上-基于2440
  2. Java 汉子转拼音
  3. mac电脑开机键盘和鼠标失灵
  4. promise使用promise进行判断网络状态
  5. VS2010 无法计算HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0@VCTargetPath处的属性表达式...
  6. 打印发现function toUpperCase() { [native code] }
  7. Java高级开发面试,java泛型下界通配符
  8. 谷歌浏览器无网络连接 打不开网页解决办法
  9. 【Java】Java 对象头 真的是 32位 吗?
  10. 清空数据库中的某个表中数据
  11. jQuery焦点图轮播slide插件
  12. CI框架 url指向错误 配置根目录
  13. http://www.baidu.com/cb.php?,帮助文档首页/百度翻译
  14. 线下AWD平台搭建以及一些相关问题解决
  15. TVS瞬态抑制二极管的工作原理和特点
  16. atomic 原子操作
  17. IPD解读--华为500强的研发第一名,除了钱还有IPD
  18. 悼念!旷视首席科学家孙剑博士去世,享年 45 岁
  19. 概率论:概率空间的基本概念
  20. java面向对象编程(六)--四大特征之继承

热门文章

  1. Aligning Plots in a Column作图列对齐
  2. 人工智能-机器学习之Selenium(chrome驱动,火狐驱动)
  3. 搭建Hexo博客(一)-创建Hexo环境
  4. JOptionPane弹框常用实例
  5. 基于原版Hadoop的YDB部署(转)
  6. LoadRunner常见问题
  7. 个人觉得好的文章链接推荐【转载,侵权立删】
  8. getchar(),putchar()用法
  9. 北理计算机教案,北理工版三年级信息技术教案重点.docx
  10. android ocr识别源码_身份证识别OCR解决手动输入繁琐问题