区块链是一种链式数据存储结构,它与我们算学的数据结构—链表类似。
双链表:链表节点可存储前后节点的内存地址,中间可存储数据信息。
区块链:分为区块头,区块体和本区块哈希值。
链表和区块链的区别
链表通过内存地址进行查找连接节点,而区块链通过哈希值进行查找连接上一区块节点。
核心特性
去中心化:
- 区块链中的中心化程度有三种,分别为去中心化、半去中心化和中心化。
去中心化特性:
- 将区块链信息存储到参与到区块链系统中的所有网络节点上。
不可篡改性:
- 区块链中的数据信息通过
Hash
算法进行加密的,一旦区块链中的数据信息有变动,哪怕是改动一个字,它的哈希值也会变得完全不同。- 如果有人篡改某个区块的信息,通过验证发现
Hash
值与原本的哈希值不同,则区块失效丢弃。透明性:
- 由于区块链的去中心化特性,使得数据存储在网络中的各个节点上,每一个网络节点都可以查看区块链上的所有交易信息。
- 且这些交易信息是明文存储的,所有网络节点都可以查看这些公开透明的交易信息。
安全性:
- 由于数据分布在多个节点上,攻击者难以找到单一的入口点进行攻击,且攻击成本较高。
- 如果已经篡改数据,此区块丢失后,可以从其他节点传播到本节点,覆盖正确数据。
区块链分类
特征 | 公有链 | 联盟链 | 私有链 |
---|---|---|---|
参与者 | 任何人 | 企业或联盟链成员 | 个体或企业内部 |
共识算法 | Pow/Pos/DPos 等 |
分布式一致性算法 | 分布式一致性算法 |
激励机制 | 必要 | 可选 | 不需要 |
中心化程度 | 去中心化 | 半去中心化 | 中心化 |
处理能力 | 较慢 | 中等 | 较快 |
区块链发展历程
区块链1.0:
区块链1.0时代也被成为比特币时代。
区块链技术和理论最初来源于比特币,2008年中本聪首次提出了区块链这种数据结构,以及基于区块链的比特币。
区块的产生过程也叫挖矿,比特币通过出块奖励和手续费来激励矿工记账和打包数据成块。
挖矿的本质是通过共识机制让参与区块链系统的网络节点处理一些有难度的数学问题验证区块是否合法。
- 如果不合法就直接丢掉,合法才持久性存储。
区块链2.0:
区块链2.0时代可以被称为联盟链时代。
区块链1.0到2.0的发展,是因为区块链本身的功能已不再满足企业级应用:
- 区块链1.0最开始只能存储交易信息,区块链2.0扩展为可以存储数字资产等的数据信息。
为了能满足企业级应用,从公有链转变为联盟链,保证能够企业级应用能够高效率运行。
- 这个时候的区块链还是以分布式账本的形式运营,主要应用于金融应用当中。
区块链3.0:
区块链3.0已经不拘泥于金融领域,已广泛应用于各行各业的企业级应用。
- 例如,物流、数字政务、物联网等等。
区块链应用场景
现如今区块链的应用场景包括但不限于:
- 金融服务:例如跨境支付,资产交易,保险业。
- 供应链管理:例如溯源防伪,信用评估,库存管理。
- 物联网管理:例如设备间安全通信,能源管理。
- 公共服务:例如数字政务。
共识机制
共识机制就是用户交易之后生成区块,由大家根据一些评判标准,看看这个交易是否合法。
- 如果大家都觉得这个交易没有问题,则生成区块记录数据,反之则生成区块失败。
但其实这个是共识机制中
Pow
算法的概念,也就是挖矿算法。
- 共识算法还有
Pos
算法、DPos
算法等等
智能合约
智能合约可以理解成一种用代码来写的电子形式合同,它由代码脚本及一些算法机制组成。
- 它存在于参与区块链系统的所有网络节点中,且它是一种自动执行的合约。
当买卖双方交易成功之后,会自动执行合约中所填写的,例如交易的金额,交易失败如何处理等等。