分布式存储
高扩展,高容错
分布式存储将数据分散储存在多个存储服务器上
分散的存储资源构成一个虚拟的存储设备
数据分散的存储在服务器集群的各个角落
区块链:特殊的分布式存储
从交易到区块:交易(存储数据,信息流的关键点,关键操作)——>区块打包多个交易,每个区块就是一个账本
p2p网络(peer—to—peer)
点对点网络,节点无主从之分
四种p2p网络:中心化,全分布式非结构化,全分布式结构化,半分布化
区块链的加密方式:非对称加密算法
哈希算法:将比特串映射为固定长度的比特串函数(区块链本质就是一条哈希链)
数字签名:现实中的签名和盖章再数字世界中的实现,先计算出消息的哈希值,再对这个值进行签名,提高效率
唯一标识,若哈希值不统一,说明文件被篡改
对称加密
对数据信息进行加密和解密时同时使用相同秘匙
优点:对称加密效率高于非对称加密,加密速度快。
缺点:对于密匙的管理和分发比较困难,不安全,密匙管理负担重。
非对称加密
对数据信息进行加解密使用不同的密匙(公钥与私钥)
用例:比特币 非对称加密应用:数字证书
安全性更高,但是效率低
私钥签名。公钥验签,公钥验签,私钥解密。
零知识证明
证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个断论是真的
零知识证明时概率证明而不是确定性证明
区块链解析:
集体维护,不易篡改,弱中心化,透明可溯源
区块链数据结构:
区块链由多个区块组成
区块像数据中的记录,写入数据,就向区块写入一笔交易记录
区块=区块头+区块体
前续哈希:通过对前一个区块的区块头数据进行哈希计算
默克尔树根:能够快速检验交易数据的完整性,即数据是否被篡改过
时间戳:证明区块链上什么时间发生了什么,无法被篡改
难度:比特币系统通过调整难度来控制区块产生的速度
随机数:矿工挖矿,调整区块头中的随机数,经过大量的哈希碰撞,试出正确的区块哈希值。(挖矿过程被称为争夺记账权)
共识:群体的成员在某方面达成共识
一致性:即使系统中出现故障节点或网络堵塞的情况,但正常节点保存的数据是完全相同的,操作施行结果时一致的。
有效性:即使存在失效节点,但有效节点请求执行时,会将有效节点发出的信息记录在各个节点中,保证信息记录的有效性。
工作量证明pow
确定完成了多少工作量的证明
权益证明机制pos和dpos
pos:持有越多,获得越多。依据算法降低节点挖矿难度,以便能够加快寻找随机数的速度
优点:不再需要大量消耗能源挖矿,一定程度上缩短共识达成时间。
缺点:安全性降低,权益集中(容易中心化)。
dpos:在pos基础上,将记账人的角色专业化,先通过权益来选出记账人,然后记账人之间再轮流记账。
优点:性能显著提升(缩小参与验证和记账节点的数量),成本低。
缺点:中心化程度高:权益容易被少数人掌握,持币人投票积极性不高。
拜占庭容错共识机制pbft
优点:安全性与稳定性由业务相关方保证,性能高。
缺点:容错率低,1/3记账人停止工作,系统无法提供服务。中心化,1/3记账人作恶可以使系统出现分叉。
智能合约(代码即合约)
将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明可跟踪、不可篡改。
智能合约恰比喻区块链中的合同,由程序化控制,符合条件强制执行。
区块链钱包
按联网分:热钱包(处于联网状态下的钱包),冷钱包(没有联网环境下使用的钱包)。
按节点数据是否储存完整:全节点钱包(同步区块链所有的节点数据,需要很大的空间),轻节点钱包(仅获取本地储存与自身相关的交易数据)。
区块链浏览器
提供浏览和查询区块链上的信息
区块链公开透明的特质,需要通过区块链浏览器让用户看到链上的情况