• 《精通区块链开发技术》笔记


    第一章:区块链(内容简介:分布式系统的理论基础——比特币的前身:电子现金、哈希现金——区块链技术)

    1.1分布式系统

    1、区块链的核心是一个【去中心化的分布式系统】

    2、分布式系统中的节点可以相互交换信息

    3、节点分为可信节点、缺陷节点、恶意节点。一个有任意行为的节点被称为拜占庭节点,网路上某个出现任何意外行为的节点都可归类于拜占庭节点

    4、分布式系统的主要挑战:节点与【容错】的协调,即一个节点的失效不影响整个系统的运行。

    1.1.1 CAP定理:任意分布式系统不能同时拥有一致性,可用性,分区容错性(但区块链可以实现三种属性)

    (一致性:任意节点拥有最新数据副本;可用性:系统在使用期间可以被访问,必要时做出回应;分区容错性:一组节点的失效不影响系统的运行)

    1.1.2 一致性问题前身——拜占庭将军问题

    我方将军通过信使希望就进攻或撤退达成一致,问题是存在若干会传递错误信息叛徒将军(拜占庭节点),现在我们希望找到一种可信机制,让将军们成功达成一致决定。——解决方案【Proof of Work:PoW】

    1.1.3 分布式一致性问题

    1、一致性机制:达成一致性的步骤

    2、一致性机制需求:

          协议:所有可信节点指定同一值

          有效性:所有可信节点的商定值必须至少与一个节点提供的初始值相同

          容错性

          完整性:任意节点只可决策一次

    3、一致性机制类型:

          基于拜占庭式的容错:无计算密集型操作(如部分哈希反射),依赖于简单的发布签名的节点方案,当签名到达一定数量时达成协议

          基于领导的一致性机制:节点实现领导的选举机制,当选的节点提供结果值

    1.2 区块链历史

    Hashcash控制垃圾邮件原理:生成hash是一个计算密集型过程,非法用户发送大量垃圾邮件要消耗大量计算资源

    1.3 区块链简介

    区块链的核心是一个点对点的分布式账本,该账本具有加密安全性,只能在对等身份成员间达成协议时追加,且不能更改

    区块链网络视图:互联网——P2P网络——交易——区块——共识——状态机——区块链应用(智能合约)——用户(节点)

    1.3.1 区块链技术的各种定义

    区块链是一种去中心化的协商一致机制。在区块链中,所有对等点最终会达成关于交易状态的协议。

    区块链是一个分布式共享账本,可以看作共享的唯一的交易总账。

    作为一个数据结构,区块链是hash链表,成员基本包括指向前一个区块的hash指针、nonce、交易。

    1.3.2区块链的一般元素

    1、地址:表示事务中收件人和发件人的唯一标识符。建议在每个事务中用新生成的地址,防止用所有者的地址,避免身份识别。

    2、事务:基本单元,表示地址间的值传输。

    3、区块:hash指针+nonce+时间戳+若干事务。

    4、状态机:状态转换机制,一个区块链可以看作一个状态转换机制。

    5、智能合约:智能合约运行于区块链之上,在满足某些条件时封装业务。区块链并不支持智能合约。

    1.3.3 区块链特性

    1、分布式一致性:在确实中心信任机制授权的情况下,各方就结果达成一致。

    2、事务验证:节点上发布的任何事务经过验证后,其有效事务将包含在区块中。

    3、智能合约平台:区块链定义为一个平台,程序运行其上。

    4、对等点间传输值:区块链允许对等点通过令牌传递值,令牌是值的载体。

    5、生产加密货币:可选项,为的是激励矿商。

    6、智能属性:使区块链内的资产,任何人都无权占有、完全由个人控制、不可重复使用。(该特性对于数字版权管理(DRM)和电子现金系统有着深远的影响)

    7、不变性:已经添加的记录是不可变的。如果想要改变,则需要重新计算已经添加的所有区块,而这几乎是不可能的。

    8、唯一性:每个事务都是唯一的。在加密货币中,想要发现并避免双重支出,唯一性是关键因素。

    9、智能合约:区块链提供了一个有智能合约特性的平台,可视为区块链上的自主程序,可以封装业务逻辑和代码,以便下一步所需。智能合约同时实现了灵活性、可编程性、对于特定业务执行的特定操作,区块链用户可对此加以控制。

    1.3.4 创建区块的一般方案、区块的生成方式、区块与事务的关系

    节点通过私钥签名启动事务——多个对等点通过Gossip协议验证传播事务,该协议通过里预置标准验证事务——验证成功,创建新区块,确认旧事务(一次确认)——传播至网络、加入账本(链入区块链(二次确认))

    第二章 去中心化

    2.1基于区块链的去中心化

    1、用户通过【共识机制】,在不需要信任的第三方的情况下达成一致。最常用的就是【工作量证明PoW】。

    2、中央式、分布式系统都存在控制整个系统的单一权威控制机构,所以其都是中心化的。去中心化系统不存在单一权威控制机构,它把权力层层下放,就像公司管理系统一样,这也是它的创新之处。

    并行系统和分布式系统的差别:并行系统中,计算由所以节点同步执行;而在分布式系统中,数据仅可在单一聚合系统上复制,计算不是并行计算。

    2.2去中心化方法

    1、非中介化:绕过中介,地址对地址。

    2、中介竞争:智能合约在服务提供者间选择。

    2.3去中心化流程

    评估去中心化需求的框架:

    1、去中心化的含义:什么是去中心化系统,去中心化系统可以是任意系统,如认证系统或交易系统。

    2、去中心化所需的级别:完全去中心化、部分去中心化。

    3、选择哪一种区块链:比特币区块链、以太坊区块链。

    4、选择哪一种安全性机制:机制可以是原子性的,即事务全部执行或全部不执行,这可以确保完整性。声誉机制,支持系统中不同的受信程度。

    2.4区块链和完整的生态圈去中心化操作

    为了实现完整的去中心化系统,需要对区块链周围环境也执行去中心化操作。

    储存、通信、计算(计算的去中心化是通过区块链技术实现的,如以太坊。其中,包含业务逻辑的智能合约可以允许于该网上。)

    去中心化的生态系统概览:

    通信(因特网、网格网络)——储存(IPFS、BigChainDB 文件系统、数据库)——区块链(以太坊、超级账本)——身份、财富

  • 相关阅读:
    系统边界确定
    用例分析技术:确定系统边界
    系统边界的定义
    【转】读《程序员修炼之道》
    项目管理之需求基线管理
    字符串流sstream[part3/使用字符串流进行安全的类型转换]
    字符串流sstream[part2/使用同一个字符串流反复读写数据]
    字符串流sstream[part1/基本知识]
    文件操作的openmode
    文件操作的一些函数
  • 原文地址:https://www.cnblogs.com/towerbird/p/9921293.html
Copyright © 2020-2023  润新知