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

2021-09-16 11:06:05 浏览数 (1)

  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Ð
    • 分类 1.硬分叉:如果区块链共识规则改变,并且这种规则不支持前向兼容。也就是说旧节点无法认可新节点产生的区块,叫做硬分叉。要求所有节点必须升级。 2.软分叉:如果区块链共识规则改变,并且这种规则支持前向兼容。也就是说旧节点仍然认可新节点产生的区块,叫做软分叉。需要大部分节点更新软件。

0 人点赞