区块链技术

区块链技术

一、区块链P2P网络协议
1、中心化 (依赖Server ,b/s)
2、分布式 (微服务)
3、去中心化(区块链技术p2p)

P2P网络实现
1、Hyperledger Fabric -> gRPC对等服务(对等协议,不适合公有链)
2、Ethereum -> Kad DHT技术

密码学——哈希(HASH)
1、将不定长度的数据转换成固定长度的哈希值
2、MD5、SHA1、SHA2 (传统加密) 区块链中常用SHA2-256

密码学——哈希(HASH)实现特点
1、正向快速、逆向困难
2、输入敏感
3、抗碰撞

密码学——加解密算法
1、对称加密:密钥相同、易泄露(AES、DES等)
2、非对称加密:公钥/私钥、效率低(RSA、椭圆曲线等);在区块链中采用了椭圆曲线加密


二、区块数据存储
账本结构
在这里插入图片描述
共识算法(即分布式一致性算法) 类型
1、强一致性(CAID)
2、最终一致性(常规分布式解决方案)

  • CAP原理
    • 一致性(Consistency)
    • 可用性(Availablity)
    • 分区容错性(Partition Tolerance)
选项 选项
C(Consistence) 一致性,指数据在多个副本之间能够保持一致的特性(严格的一致性)。
A(Availability) 可用性,指系统提供的服务必须一直处于可用的状态,每次请求都能获取到非错的响应——但是不保证获取的数据为最新数据。
P(Network partitioning) 分区容错性,分布式系统在遇到任何网络分区故障的时候,仍然能够对外提供满足一致性和可用性的服务,除非整个网络环境都发生了故障。
  • 3 选 2 组合
    在这里插入图片描述
组 合 分析结果
CA 满足原子和可用,放弃分区容错。说白了,就是一个整体的应用。
CP 满足原子和分区容错,也就是说,要放弃可用。当系统被分区,为了保证原子性,必须放弃可用性,让服务停用。
AP 满足可用性和分区容错,当出现分区,同时为了保证可用性,必须让节点继续对外服务,这样必然导致失去原子性。
  • ACID原理
    • A代表原子性
    • C代表一致性
    • I代表隔离性(独立性)
    • D代表持久性
选项 说明
事务的原子性(Atomicity) 是指一个事务要么全部执行,要么不执行,也就是说一个事务不可能只执行了一半就停止了。比如你从取款机取钱,这个事务可以分成两个步骤:1划卡,2出钱。不可能划了卡,而钱却没出来。这两步必须同时完成,要么就不完成。
事务的一致性(Consistency) 是指事务的运行并不改变数据库中数据的一致性。例如,完整性约束了a+b=10,一个事务改变了a,那么b也应该随之改变。
独立性(Isolation) 事务的独立性也有称作隔离性,是指两个以上的事务不会出现交错执行的状态。因为这样可能会导致数据不一致。
持久性(Durability) 事务的持久性是指事务执行成功以后,该事务对数据库所作的更改便是持久的保存在数据库之中,不会无缘无故的回滚。

区块链——共识算法

  • 共识算法系列分类

    • Paxos 算法
    • 拜赞庭容错 算法
  • 共识算法(分布式一致性算法)
    算法不同维度 对比
    在这里插入图片描述