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