- 区块链三大主流开发语言: a) Golang b) C c) Node.js
- 区块链概述
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.区块
- 区块负责保存交易数据、记录等
- 结构
- 区块头 a)时间戳 b)随机数 c)区块高度 d)前一个区块Hash值 e)当前区块Hash值 f)Merkle
- 区块体 保存交易数据
- 分布式数据库 所有的区块都会存储在每个节点中,所有的节点组成一个分布式数据库。
- 节点:简单来说,节点可以理解为一个运行区块链软件的计算机。 1.全节点:保存了完整的区块链副本,也就是说包含了所有数据。 2.轻节点:不保存所有区块数据,需要依赖全节点进行验证。 3.挖矿节点:带有挖矿功能的节点,专门处理交易验证,保存了完整的区块副本。
- 挖矿 a)区块是在挖矿中产生的 b)穷举随机数算法,把上一个区块的哈希值加上10分钟内产生的所有交易加上随机数通过sha256产生一个哈希值。随机数nonce需要使得哈希值满足一定条件,就可以获得这些区块的交易记账权,产生一个新的区块,再进行广播,让其他节点进行验证,防止造假。
- 分叉 a)挖矿分叉 解决方案:不同的矿工跟随不同的区块,由于在不同的链上面,算力不一样,矿工数量不一样。矿工数量与算力成正比,最终链的增长速度不一样,然后出现其中一条链更长的情况。最终,矿工在发现更长的链之后,会去同步这条链上的数据。丢弃原来的链。 b)升级分叉:矿工遵从不同机制的情况下导致的分叉。例如DAO攻击导致的ETCÐ
- 分类 1.硬分叉:如果区块链共识规则改变,并且这种规则不支持前向兼容。也就是说旧节点无法认可新节点产生的区块,叫做硬分叉。要求所有节点必须升级。 2.软分叉:如果区块链共识规则改变,并且这种规则支持前向兼容。也就是说旧节点仍然认可新节点产生的区块,叫做软分叉。需要大部分节点更新软件。
【区块链】区块链基础知识
2021-09-16 11:06:05
浏览数 (1)