区块链读书笔记02 - 区块链进阶

  • 区块链的技术架构
  • 区块链的工作流程
  • 时间戳的作用
  • 区块链的共识机制
    • 工作量证明(PoW)
    • 权益证明(PoS)
    • PoW+PoS
    • 股份授权证明
    • 瑞波共识协议
  • 参考文献

区块链的技术架构

区块链的工作流程

Created with Raphaël 2.2.0 发送节点将新的数据记录向全网进行广播 接收节点对收到的数据记录信息进行初步合法性检验 (通过检验后,数据记录将被纳入一个区块中) 全网所有接收节点对区块执行共识算法,尝试对区块的合法性、正确性达成共识 共识达成后,区块被纳入区块链统一存储

补充说明:

  1. 广播新的数据记录时,实际上不需要抵达全部的节点。只要数据记录信息能够抵达足够多的节点,那么将很快地被整合进一个区块中
  2. 如果一个节点没有收到某特定区块,那么该节点将会发现自己缺失了某个区块,也就可以提出自己下载该区块的请求
  3. 全网节点表示接受某区块的方法,就是将该区块的随机散列值视为最新的区块散列值,新区块的制造将以该区块链为基础进行延长
  4. 节点始终都将最长的区块链视为正确的链,并持续以此为基础验证和延长它
  5. 如果有两个节点同时广播不同版本的新区块(产生了分叉branch),那么其他节点将会在其中的一条链条上进行工作。然后通过共识算法的进一步运行,当其中的一条链条被证实为是较长的一条,那么在其他分支链条上工作的节点将转换阵营

时间戳的作用

  1. 使各个区块通过时间线有序连接起来,形成链条——区块链
  2. 通过给数据记录印上时间标签,使每条数据记录都具有唯一性,从而使数据记录本身在区块和区块上的哪个位置上发生可以被精确定位且可回溯
  3. 与其他的校验机制协同发挥作用,使整个区块链网络能够确定性地验证某条数据记录是否真实
    (由于任何新的数据记录都继承于过去的真实的数据记录,且链条的各个区块记录由时间戳连接起来使之环环相扣,所以如果想要制造一个假的数据记录,就必须在区块链上修改过去的所有数据记录——随着时间推移,链条越来越长,篡改数据记录和制造虚假数据的难度越来越高)

区块链的共识机制

——区块链节点就区块链信息达成全网一致共识的机制,可以保证最新区块被准确添加至区块链、节点存储的区块链信息一致不分叉,甚至可以抵御恶意攻击。

当前主流的共识机制包括:工作量证明、权益证明、工作量证明与权益证明混合(PoS+PoW)、股份授权证明、瑞波共识协议等。当然,除了这些,还有恒星共识协议(Stellar Consensus Protocol,SCP)、改进型实用拜占庭容错机制(Practical Byzantine Fault Tolerance,PBFT)和Pool验证池机制等。不同共识机制各有其应用场景和优势。

工作量证明(PoW)

——Proof of Work
该机制的基本步骤:

Created with Raphaël 2.2.0 节点监听全网数据记录,通过基本合法性验证的数据记录将进行暂存 节点消耗自身算力尝试不同的随机数,进行指定的哈希计算【工作量证明】 找到符合条件的随机数? 生成区块信息(首先输入区块头信息,然后是数据记录信息) 接单对外部广播出新生产的区块,其他节点通过验证后,链接至区块链中,主链高度加一 所有节点切换至新区块后面继续进行工作量证明和区块生产 yes no

说明:上述过程中的验证节点就是我们常说的“矿工”,随机数计算查找过程就是“挖矿”

事实上,挖矿为整个系统的运转提供了原动力,它有三个重要功能:

  • 发行新的货币
  • 维系系统的支付功能
  • 通过算力保障系统安全

PoW机制的缺陷十分明显:

  • 算力的消耗与浪费
  • 算力集中化凸显
    目前作为一个普通的个体或者几十、几百台规模的矿机膜前都很难挖到区块了,因此大家必须联合起来挖矿——诞生了算力集中的“矿池”。其中最著名的是比特币Ghash矿池,它因为数次接近甚至达到了50%比特币的算力(51%攻击:当掌握超过全网一半算力时,从概率上就能控制网络中链的走向),从而引起了比特币社区的广泛担忧

权益证明(PoS)

——根据持有货币的量和时间,进行利息发放和区块产生的机制。

在PoS模式下,一个重要的名词叫“币天”:
例如,每个币每天产生1币天,比如持有100个币,总共持有了30天,那么此时币天就为3000。这个时候,如果发现了一个新PoS区块,币天就会被清空为0。每被清空365币天,将会从区块中获得0.05个币的利息。

缺陷:

  1. 并未使区块链变得越来越安全而不可逆,因为最终区块链的区块生产权掌握在账户余额最多的少数节点手中
  2. 不能通过及时而高效的方法达成共识

PoW+PoS

——采用PoW发行新币,采用PoS维护网络安全。

优势:在PoW+PoS机制下,只要 持有币的人,不论持有的数量多少,都可以挖到数据块,而不用采用任何的矿池导致算力集中。同时,由于多采用币天生成区块,而不是算力,降低了资源消耗,解决了单纯PoW机制在维护网络安全方面先天不足的问题。

股份授权证明

——每个持币节点可以将其投票权授予一名代表。获得票数最多的前100位代表按既定时间表轮流产生区块。每名代表被分配到一个时间段产生区块。所有的代表将收到等同于一个平均水平的区块所含交易费的1%作为报酬。从而大大提高了共识效率。

瑞波共识协议

——Ripple Consensus Protocol(RCP),使一组节点能够基于特殊节点列表达成共识。初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由一定比例的该俱乐部会员投票通过。

RCP机制的工作原理:

  1. 验证节点接收存储待验证交易。
  2. 活跃信任节点发送提议。首先,信任节点列表是验证池的一个子集;其次,参与共识过程的信任节点必须处于活跃状态,验证节点与信任节点间存在保活机制,长期不活跃节点将被从信任节点列表删除;最后,信任节点根据自身掌握的交易双方额度、交易历史等信息做出判断,并加入到提议中进行发送
  3. 本验证节点检查收到的提议是否来自信任节点列表中的合法信任节点:如果是,则存储;如果不是,则丢弃
  4. 验证节点根据提议确定认可交易列表
  5. 验证节点持续更新认可交易列表,当账本中每笔交易都获得超过一定阈值的信任节点列表认可时,共识达成,交易验证结束。
  6. 共识过程结束后,已经形成最新的账本,接下来将上轮剩余的待确认交易以及新交易纳入待确认交易列表,开始新一轮共识过程

参考文献

[1] 长铗,韩锋.区块链: 从数字货币到信用社会[M].北京: 中信出版社,2016
[2] 井底望天,蒋晓军,相里朋,刘纯如. 区块链与产业创新[M]. 北京: 人民邮电出版社,2018

区块链读书笔记02 - 区块链进阶相关推荐

  1. 区块链读书笔记01-区块链基础

    区块链读书笔记01 - 区块链基础 基本概念 加密哈希函数(cryptographic hash function) 哈希指针 父区块(parent block) 创世区块(genesis block ...

  2. 推荐系统实践读书笔记-02利用用户行为数据

    推荐系统实践读书笔记-02利用用户行为数据 为了让推荐结果符合用户口味,我们需要深入了解用户.如何才能了解一个人呢?<论语·公冶长>中说"听其言,观其行",也就是说可以 ...

  3. 大数据之路读书笔记-02日志采集

    大数据之路读书笔记-02日志采集 数据采集作为阿里大数据系统体系的第 环尤为重要.因此阿里巴巴建立了一套标准的数据采集体系方案,致力全面.高性能.规范地完成海量数据的采集,并将其传输到大数据平台.本章 ...

  4. 《深入理解计算机系统》读书笔记-02

    CSAPP读书笔记-02 浮点数陷阱 在第二章最初,给出了"浮点运算是不可结合的"这样一个结论,乍一看有点令人费解,但仔细看了看例子,发现其实结合浮点数在内存中的存储方式反而很容易 ...

  5. 读书笔记《区块链原理与技术 郑子彬》——区块链共识层

    0 引入 区块链每个节点都有一份完整的账本,其面临的一大难题就是账本的更新,要保证区块链中各个节点的账本在更新后能保持一致.区块链的共识层就是解决上述问题的层级:在去中心化且存在恶意节点的场景下维护区 ...

  6. 区块链学习笔记:区块链到底能干什么

    来源:区块律动BlockBeats 作者:Jade 编者语: 区块链媒体被大量封号,BAT 联手全网封杀,再到昨天的国家互金举报平台将「代币发行融资」纳入举报范围,还有网上谣传的所谓「利箭行动」. 最 ...

  7. 区块链学习笔记:区块链浏览器

    一.什么是区块链浏览器 浏览器对于人们来说真是熟悉的不能再熟悉,每每我们需要上网寻找知识,搜集资料都会用到浏览器,我们天天都可能会用到浏览器,使用的频率也十分频繁,所以我们对浏览器很熟悉,它是用来浏览 ...

  8. 《Computer Graphics with OpenGL》计算机图形学读书笔记 02——计算机图形学软件

    这里是<Computer Graphics with OpenGL>英文原版第四版的读书笔记,预计每一章写一篇读书笔记.本篇为第二章,简要介绍计算机图形学的相关软件.图形学相关软件可分为两 ...

  9. 读书笔记2区块链与大数据

    书名:区块链+大数据(机械工业出版社) 选择它的理由:1,从目前的专业(电子商务)角度来说,正如我前一篇的读后感提到的那样,在电商进一步升级中,对数据处理的要求越来越高,对数据保密(保证数据来源的合法 ...

最新文章

  1. 力扣(LeetCode)刷题,简单+中等题(第29期)
  2. linux查看硬链接的对应文件,linux查看硬链接对应的所有文件
  3. 转:一个android开发者独立开发社交app全过程
  4. python 导入自定义模块
  5. Windows 64位驱动 关闭内存保护
  6. opengl开启垂直同步_东风悦达起亚ALL NEW K5正式定名凯酷,预售同步开启
  7. 如何定期按时完成数据中心的测试?
  8. hdf5文件和csv的区别_使用HDF5文件并创建CSV文件
  9. Public Sale【博弈】
  10. @Autowired注入为null的几种情况
  11. java虚拟机 函数表_java虚拟机 jvm 局部变量表实战
  12. OSPF的网络类型特征总结
  13. Yate如何打开不同格式的音乐文件?
  14. IOS-Run loop学习总结
  15. VassistX的简单介绍与下载安装
  16. 单元测试、集成测试、系统测试和验收测试、冒烟测试、回归测试、随机测试、探索性测试和安全测试
  17. 云服务器文件拷贝到本地,云服务器文件拷贝到本地
  18. 程序设计与算法郭炜老师的课堂笔记1
  19. 岭南师范学院计算机科学与技术专业如何,2018岭南师范学院专业排名及分数线 王牌专业有哪些...
  20. 移动端input、textarea、div(contenteditable )输入框正则过滤(兼容ios)

热门文章

  1. 微信小程序审核不通过原因和解决办法
  2. Vue.js 使用script或template标签创建组件模板内容
  3. mysql自增主键设置
  4. 【python实战】爬虫+数据可视化帮表弟选大学,直呼牛X
  5. Linux 命令(147) —— truncate 命令
  6. 关于windows无法连接网络打印机的可能原因之一
  7. 设计模式之工厂方法模式应用例题
  8. MyEclipse使用手册(详细版)
  9. centos7-使用gpg加解密和创建私有CA证书
  10. 社群运营必备 | 如何一站式解决存活、留存、转化三大难题