区块链技术基础
技术定义
区块链是一个提供了拜占庭容错、保证了最终一致性的分布式数据库
- 从数据结构上看,它是基于时间序列的链式数据块结构
- 从节点拓扑来看,它所有的节点互为亢余备份
- 从操作上看,它提供了基于密码学的公私钥管理体系来管理账户
区块链在技术上的7个特征
- 区块链的存储基于分布式数据库
- 数据库是区块链的数据载体,区块链是交易的业务逻辑载体
- 区块链按时间序列化区块数据,整个网络有一个最终确定状态
- 只对添加有效,其他操作无效
- 交易基于非对称加密的公私钥验证
- 区块链网络要求拜占庭将军容错
- 公式算法能“解决”双花问题
区块链类型
通常讨论区块链指公有区块链“公链”
公链任何人都能进入
还有另一种区块链:联盟链
这个区块链具有“准入许可”,意味着候选节点进入区块链是需要得到已经再网络中的节点许可
区块链核心技术组成
1.P2P网络协议
区块链最底层模块,负责交易数据的网络传输和广播、节点发现和维护
2.分布式一致性算法(共识算法)
目前多采用三大算法:PoS、PoS、DPoS
PoW(工作量证明):“解决一道数据难题获得记账权”
PoS(权益证明):“使用所锁定代币的币龄以及一个小的工作证明计算一个目标值,可获得记账权”
DPoS(代理权益证明):PoS共识算法中的记账者转换为指定节点组成的小圈子而不是所有人都能参与记账
3.加密签名算法
哈希算法是应用的最多的算法,它具有抗碰撞性、原像不可逆、难题友好性等特征
难题友好性正是PoW币种赖以生存的基础,在比特币中,SHA256算法被用作工作量证明的计算方法,即挖矿算法
4.账户与交易模型
从技术角度可认为区块链是一种分布式数据库,那么多数区块链使用的数据库的类型有哪些呢?
NoSQL的BerkelyDB、LevelDB,也有一些采用基于SQL的SQLite
Github地址:https://github.com/kumataahh