【区块链】区块链基础知识

  1. 区块链三大主流开发语言:
    a) Golang
    b) C++
    c) Node.js
  2. 区块链概述
    a) 产生背景
    i. 密码朋克:通过匿名性保护隐私安全
    ii.不可篡改的文件记录:通过给记录加盖时间戳,记录不可篡改文件
    iii.通过加密货币代替现金
    iv.分布式传输
    b)区块链发展历史
    i.09年中本聪发布区块链白皮书。 区块链1.0
    ii.2014年,以太坊诞生。 区块链2.0
    iii.18年中期,EOS主网上线。区块链3.0
    iv.超级账本:Fabric,不支持发币。
    c)区块链场景概念
    i.数字货币 :可以与现金等价交换,理论上有现金流所拥有的一切功能和属性。
    ii.融资:产生一个项目亮点,使他人认可它的价值和发展潜力,通过筹集资金来实现这个项目。
    1.IPO
    2.ICO
    iii.电子钱包:在电子商务活动中管理资金,用于支付的工具。
    d)什么是区块链
    i. 区块链是一种集成了点对点传输协议、现代密码学、共识算法、分布式数据储存等成型数据的应用模型。
    e)区块链特点
    i.去中心化,无中心化机构
    ii.不可篡改
    iii.可追溯
    1.公益宝、善款追溯
    2.物流追溯
    iv.完整备份:区块链具有完整的分布式存储特性
    v.历史记录:被存储的数据拥有完整的历史记录,可以快速查看或者复原
    vi.交易广播:一次交易,分发给网络的其他节点,同步接收。
    f)加密货币的特点
    i.独立性 所有货币都是独立存在的。
    ii.地址、交易ID等都有不重复的唯一性。
    iii.匿名性:账户和个人信息没有关联,所有交易全程加密。
    iv.不可篡改:基于加密和时间戳,全程不可篡改。
    g)区块链核心技术
    i.点对点传输协议(PPP):在网络中,节点可以直接进行数据流通。
    ii.现代密码学:公私钥签名、安全,不会在传输过程中被恶意篡改
    iii.共识篡改:数据一致性
    iv.分布式数据储存:实现去中心化的重要技术依据。
    h)区块链的核心概念
    i.区块链本质是一个分布式账本,通过共识算法来决定谁能获得记账权。以区块为单位以区块产生时间为顺序进行连接。每一个区块中保存上一个区块的Hash值、交易数据。
    ii.区块
    1. 区块负责保存交易数据、记录等
    2. 结构
    • 区块头
      a)时间戳
      b)随机数
      c)区块高度
      d)前一个区块Hash值
      e)当前区块Hash值
      f)Merkle
    • 区块体
      保存交易数据
    1. 分布式数据库
      所有的区块都会存储在每个节点中,所有的节点组成一个分布式数据库。
    2. 节点:简单来说,节点可以理解为一个运行区块链软件的计算机。
      1.全节点:保存了完整的区块链副本,也就是说包含了所有数据。
      2.轻节点:不保存所有区块数据,需要依赖全节点进行验证。
      3.挖矿节点:带有挖矿功能的节点,专门处理交易验证,保存了完整的区块副本。
    3. 挖矿
      a)区块是在挖矿中产生的
      b)穷举随机数算法,把上一个区块的哈希值加上10分钟内产生的所有交易加上随机数通过sha256产生一个哈希值。随机数nonce需要使得哈希值满足一定条件,就可以获得这些区块的交易记账权,产生一个新的区块,再进行广播,让其他节点进行验证,防止造假。
    4. 分叉
      a)挖矿分叉
      解决方案:不同的矿工跟随不同的区块,由于在不同的链上面,算力不一样,矿工数量不一样。矿工数量与算力成正比,最终链的增长速度不一样,然后出现其中一条链更长的情况。最终,矿工在发现更长的链之后,会去同步这条链上的数据。丢弃原来的链。
      b)升级分叉:矿工遵从不同机制的情况下导致的分叉。例如DAO攻击导致的ETC&ETH
    • 分类
      1.硬分叉:如果区块链共识规则改变,并且这种规则不支持前向兼容。也就是说旧节点无法认可新节点产生的区块,叫做硬分叉。要求所有节点必须升级。
      2.软分叉:如果区块链共识规则改变,并且这种规则支持前向兼容。也就是说旧节点仍然认可新节点产生的区块,叫做软分叉。需要大部分节点更新软件。

猜你喜欢

转载自blog.csdn.net/qq_36045898/article/details/113373917