区块链基本概念
区块链是分布式数据存储,点对点传输,共识机制,加密算法等应用模式。可以理解,多账本记录一样的账。从非技术角度讲,区块链将产生的数据按照一定的时间间隔,分成一个个的数据块记录,然后再根据数据块的先后关系串联起来。
基本组成
这些技术组合成一个区块链软件,运行起来后称为一个节点,多个节点在不同的计算机上运行起来,组成一个网络。这个网络中每个节点都是平等的,大家互相为对方提供服务,这种网络称为点对点的”对等网络“。
-
区块链账本
区块链:区块
+链
-
共识机制
不同节点间建立信任、获取权益的算法。让每个节点按照这个规则保持数据一致,从所有节点中选取一个最具代表性的节点。筛选节点市场上已有一些方案,PoW(Proof of Work工作证明)、PoS(Proof of Stake权益证明)、DPoS(Delegate Proof of Stake委托权益证明)、PBFT(Practical Byzantine Fault Tolerance使用拜占庭容错)等。 -
密码算法
区块之间的链接通过哈希值链接。密码算法还可以创建账户地址、签名交易事务 -
脚本系统
脚本是一组程序规则。脚本系统丰富区块链业务功能,比如记录订单、物流信息、众筹账户、供应链信息等。 -
网络路由
节点发现协议,节点间联系和传播信息。同步数据从邻近节点获取最新数据,节点充当服务者和被服务者。
区块链优缺点
优点:
- 去中心化
- 开放性
- 自治性
- 信息不可篡改
- 匿名性
缺点:
- 不可撤销
- 账本公开
- 海量数据的性能差
- 延迟性
**通过哈希值校验数据的一致性。**节点之间,如果每个区块高度哈希值一样,说明节点的所有交易和余额数据都一致。
区块链原理
区块高度中交易数据和余额数据生成哈希值,与上一个区块哈希值串联,形成这个区块高度的哈希值。注意区块高度0没有上一个区块哈希值,自己约定一个哈希值。
私钥签名,公钥验证。私钥经过椭圆曲线加密和2次hash后,生成公钥地址,这个地址就是区块链上记录资产的账户,交易数据用私钥签名,发送给记账节点验证,大多数记账点验证通过,说明交易成功。
merkle校验。通过自己的数据,推算数据是否在这个区块中。比如,
这里用加法代替hash校验交易是否在区块中。只要绿色和红色的数据就可以校验交易是否在83这个hash下面。也就是数据是否被篡改。