刚刚读完这本书,总结回顾一下知识点

第1部分 区块链术语与技术基础
第1讲 理解分层的概念
系统分层
- 应用层与实现层
- 功能性与非功能性
应用层关注用户的需求,实现层则关注如何满足这些需求
功能性特征关注软件实现了什么,非功能性特征关注这些东西实现得怎么样
是一个很重要的非功能性需求,它包括3个方面的内容
- 数据完备性
- 行为完备性
- 安全性
第2讲 纵观全局
- 中心化系统和去中心化系统对比
- 去中心化系统的优势
第3讲 纵观全局
点对点系统的定义
点对点系统是由若干节点(个人计算机)组成的分布式软件系统,系统中单一节点的计算资源(例如CPU处理能力、存储容量)可直接被其他节点调用,党加入点对点系统时,用户按照其权限和角色将其急死算计转换为系统的节点,尽管用户对系统贡献的资源可能有所不同,单系统中所有节点具有相同的功能和责任。因此,所有用户的计算机都是资源的提供者和消费者
区块链和点对点系统的联系
区块链可被认为是实现和维护分布式系统完备性的工具
第2部分 为什么这个世界需要区块链
第4讲 发现核心问题
完备性与信任是点对点系统设计者应该主要考虑的问题
点对点系统完备性的主要威胁是
- 技术故障性
- 恶意节点
在点对点系统中实现完备性取决于
- 对节点数量的了解
- 对节点可信度的了解
对于由未知信任度的陌生节点组成的完全去中心化点对点系统而言,
第5讲 消除术语的歧义
区块链这一术语是多义的,主要有以下4中含义
- 一种数据结构 – 区块链数据结构
- 一种算法 – 区块链算法
- 一个完整的技术方案 – 区块链技术方案
第6讲 理解所有权的本质
所有权证明需要3个要素
- 对所有者的证明
- 对事物被拥有的证明
- 提供一个所有者和事物之间的连接
所有者和物品之间的关系可以保留在账本中,只有一个账本是有风险的,可以利用一组独立的账本而不是使用一个中央账本来记录所有权,并使用大多数账本都认可的结果来对所有权进行认证
第7讲 双花问题
双花问题指:
- 复制数字资产引起的问题
- 在去中心化点对点系统中可能存在的问题
- 威胁去中心化点对点系统的一个例子
区块链技术是一种解决双花问题的手段
第3部分 区块链如何工作
第8讲 设计区块链
为了设计一个基于完全去中心化的点对点账本系统,需要确定完成以下的任务
- 描述所有权
- 保护所有权
- 存储交易数据
- 准备好在不可信环境中可分发的账本
- 构建一个分发账本的机制
- 向所有账本添加并验证新的交易记录
- 确定能够将描述真相的账本
第9讲 记录所有权
区块链如何记录所有权,并处理所有权的转让,另外本讲还指出归档所有权转让的交易记录时顺序的重要性
描述一笔所有权转让的交易时,需要交易数据提供以下信息
- 原所有权拥有者的账户标识符
- 交易目标账户的标识符
- 要交易的资产数量
- 交易完成的时间
- 支付给系统的费用
- 证明所有权拥有者的确同意进行交易
维护完备性,必须满足以下3个条件的交易数据才能够被添加到区块链数据结构中
- 形式正确性 – 交易的描述包含所有必须的信息,并且数据以正确的格式提交
- 语义正确性 – 侧重于交易数据所代表的正确意义以及其预期结果
- 授权正确性 – 只有拥有账户所有权的人,才可以通过区块链触发一笔交易
第10讲 哈希算法
加密哈希算法具有以下特征
- 能够快速为任意类型的数据快速创建哈希值。
- 确定性 – 相同的输入数据输出结果一致
- 伪随机 – 输入数据改变时,所得到的的哈希值无法被预测
- 单项函数 – 不能通过输出值推导出输入值
- 防碰撞 – 很难找到两个或多个不同的数据块来产生相同的哈希值
哈希值的生成模式,无论哪种哈希生成模式,产生的哈希值都是唯一的
- 独立哈希
- 重复哈希
- 组合哈希
- 顺序哈希
- 分层哈希
第11讲 哈希在现实世界的应用
哈希算法主要有两个方面的应用
- 数据对比 – 计算一组数据的哈希值,如果之后想验证这些数据有没有发生变化,就再次计算数据的哈希值,然后对比两次得出的哈希值即可
- 检测数据变化 – 对应着其他数据,能证明这些数据自创建之初就没有发生改变,如果数据有所改变,哈希引用就会禁止对这些数据进行使用,同时这些数据就会被视作无效
哈希引用的关键在于产生数据的哈希值,即得到数据的唯一指纹。基本不存在两个不同的数据具有相同哈希值的情况,故不完整的哈希引用就是数据被修改的证明
两种使用哈希引用的结构
- 链状结构。 相互关联的数据称之为链或者链表,链表中每份数据都包含着其他数据的哈希引用
- 树状结构。 看起来像倒过来的树,又被称为默克尔树
一个哈希难题包括以下几个要素
- 未经更改的已有数据
- 可以随意修改数据,即随机数
- 使用哈希功能
- 限制哈希值,即难度值
获取能够满足限制条件的随机数是解答哈希难题的关键,哈希难题的难度越高,需要的计算机能力越高。
区块链中中对哈希引用的使用
- 存储交易数据,及时发现数据被改变
- 提取交易数据的指纹
- 想要修改数据就要解答哈希难题
哈希引用有以下用途
- 对比数据
- 检测数据是否发生变化
- 及时发现数据的变化
- 存储大量数据,并及时检测到数据的更改
- 创造出需要大量计算机运算的任务(哈希难题)
第12讲 确认并保护用户账 的安全
加密学可用来保护数据安全,防止未经授权的人获取数据。主要的加密行为包括
- 加密 – 使用密钥将数据存为加密文档
- 解密 – 使用对应的密钥把加密文档还原为数据
区块链使用非对称加密技术,主要为了实现两个目标
- 确认账户 – 用户的账户可看做公钥(钱包地址)
- 授权交易 – 账户的拥有者使用对应的私钥创建一笔交易,人们使用对应的公钥可以确认这笔交易是由私钥拥有者创建的(助记词)
第13讲 交易授权
区块链中交易数据的数字签名由以下内容组成
- 交易数据的哈希值
- 可追溯到账户对应私钥的加密文档
第14讲 存储交易数据
可以将区块链数据结构理解为一本带有页码的书籍。区块链数据结构是一种特殊的数据结构,它由被称为区块的有序单元组成
- 每个区块头引用前一个区块头(起始区块除外)
- 每一个区块头都有对齐唯一引用的哈希引用
第15讲 区路链的数据存储
把新的交易数据添加到区块链数据结构上的步骤如下
- 创建一个包含所有新交易数据的默克尔树
- 创建一个包含上个区块头的哈希引用与新交易数据的默克尔树的根的新区块头
- 创建新区块头的哈希引用
第16讲 保护数据的安全
区块链将交易数据存储在一个对修改敏感的数据结构中,从而保护历史数据记录以免受操纵和伪造
通过以下方法确保历史交易记录的不可变性
- 将交易数据存储在对修改极为敏感的区块链数据结构中,当发生修改时就要从引发修改的点以此重写区块数据,一直到整条链的末端
- 哈希难题对每个区块头都是唯一的,者却取决于其独特的内容
区块头至少包含以下数据
- 前一个区块头的哈希引用
- 包含交易数据的默克尔树的根
- 哈希难题的难度等级
- 开始解决哈希难题的时间
- 解决哈希难题的随机数
第17讲 点对点系统中数据的存储于分发
区块链中节点能够通过以下方式在有敌对存在的不可信 络中进行沟通
- 信息通过类似人们闲聊的方式进行传递 – 每个接收到信息的节点都会把它传给能与其沟通的对等节点,而对等节点也会以同样的方式来处理接收到的信息
- 通过哈希中来检查交易数据或区块是否重复,如有,就进行剔除
- 每个节点都能对信息进行排序,因为交易数据和区块头中都包含时间戳
第18讲 核实并添加交易数据
区块链算法的最终目标是确保取卵连数据结构中仅包含有效的区块,有效的区块由有效交易数据和有效区块头组成,这些数据的有效性评估基于两种规则
- 交易数据的验证规则
- 区块头的验证规则
创建有效区块需要解答哈希难题,也就是需要耗费成本,创建区块而没有奖励就意味着不能回收成本,因此,没有奖励本身就是一种惩罚
速度竞争与质量竞争
- – 一旦某节点提交一个新区块,速度竞争就宣告停止,第一个带着有效难题答案提交新区块的节点就是速度竞争的胜利者,也就成为质量竞争的唯一候选人
- – 某节点提交新区块后,新区块被发送到其他节点, 其他节点必须基于交易数据和区块头验证规则对新区块进行验证,一旦证明该区块有效,提交这个区块的节点就会受到奖励,随后一场新的速度竞争就会从未被打包的交易数据或者新出现的交易数据开始
在任何时候,区块链系统中所有的节点都除以任一阶段
- 评估其他节点创建的新区块
- 努力成为下一个负责创建新区块的节点,把自己创建的区块交给其他节点评估
第19讲 选择交易数据的历史记录
区块链的设计思路是让所有节点都能独立地参与投票,从而就选择哪一个版本的历史交易记录达成一个集体共识,当存在不止一种有冲突的历史交易记录版本时,花费在创建历史交易记录的累计计算成本似乎是选择历史交易记录的自然标准。这种根据创建交易所需的计算量来选择历史交易记录的设想,导致以下两个标准的出现 –
- 最长链标准 – 最长链标准是基于包含最多区块链代表最多计算量的设想
- 最重链标准 –
在冲突的链中选择一条特定的链(分叉),并将其确立为权威会带来以下结果
- 孤块 – 只有选择的链上的区块可用,其他链上区块弃用
- 重新收回奖励 –
- 澄清所有权
- 重新处理交易
- 不断增长的共同主干
- 最终一致性
- 健壮的抗操作性
第20讲 为诚信买单
区块链的用来补偿节点的支付工具:加密货币。区块链是一个纯粹的点对点系统,它管理着一种新型“数字代币”的所有权,而它反过来又可被用来补偿系统的节点,以验证和增加区块链数据结构中的新区块。
第21讲 将所有碎片的简单相加
区块链在所有权上的体现为
- 描述所有权 – 交易数据的历史记录
- 保护所有权 – 数字签名
- 存储交易数据 – 区块链数据结构
- 准备分发账本 – 不变性
- 分发账本 – 通过 络传播信息
- 处理新交易 – 区块链算法
- 决定哪个账本是真的 – 分布式共识
区块链的两个应用目标
区块链实现了其应用目标,同时具备以下特点
- 高可用性
- 抗操纵
- 可靠性
- 开放性
- 匿名信
- 安全性
- 系统弹性
- 最终一致性
- 保持系统完备性
区块链实现层包括以下几个组成部分
- 所有权逻辑
- 交易数据
- 交易处理逻辑
- 交易安全性
区块链包括以下几个技术套件
第4部分 区块链的局限以及如何克服这些局限
第22讲 了解区块链的缺陷
区块链最主要的技术缺陷包括以下几点
- 缺乏隐私 – 所有的交易细节任何人都可以查得到
- 安全模式 – 私钥是证明所有权的唯一工具,安全保障不是那么多样
- 延展性的限制 – 处理哈希难题非常耗时,交易速度下降
- 高成本 – 解答哈希难题或工作量证明需要极高的计算成本
- 隐藏的中心化属性 –
- 临界值 – 51%攻击的出现
区块链的非技术性缺陷包括以下两点
- 缺乏法律认可
- 缺乏用户接受度
第23讲 重构区块链
区块链面临两个冲突
- 透明度与隐私
- 安全性与速度
透明度与隐私的冲突导致和的出现
安全性与速度的冲突导致和
第5部分 如何使用区块链、区块链技术总结及展望
第24讲 如何使用区块链
区块链是一种分布式的点对点数据存储系统,具有以下特征
- 不可更改
- 仅可追加数据
- 有序
- 具有时间戳
- 开放和透明
- 安全
- 一致性
根据区块链的特征和他能够存储各类数据的特点,有以下通用场景
- 存在证明
- 非存在证明
- 时间证明
- 顺序证明
- 身份证明
- 所有权证明
使用什么样的区块链,公有链或者私有链,是否需要许可
第25讲 总结与展望
区块链未来值得关注的发展领域
- 微小的基础技术改进和变革 – 加密学、数据结构、数据存储等技术的改进可以创建出不同版本的区块链
- 扩展性的提升 –
- 概念演进 – 使用权、隐私、共识、存储数据、数据结构
使用权。 对区块链的读写权可催生出对各种区块链版本的需求。
共识。 各种共识算法, 工作量证明(POW)、股权证明(POS)、股权授权证明(DPOS)等等
交易。
区块链长期发展的重要方向
- 去中心化
- 自动化
- 标准化
- 流水线处理
- 提高处理速度
- 降低成本
- 信任协议和共识
- 让信任变成一种商品
- 提高技术意识
这本书写的真好啊,回味无穷/p>
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!