区块链是一个须要长时间接触学习的东西,因此这个也可能变成一个系列了,学习刚刚起步,定时分享一些心得,只要能进步就行。redis
简单看了一下区块链的底层技术,能够看做是一个分布式系统,因而全部分布式系统都避免不了CAP原理,区块链的设计放弃了CAP中的一致性,采用最终一致性。算法
这个一致性相似于不少分布式协调中间件的算法,基本能够理解为是另外一个Paxos算法的变种,却是没有什么稀奇的。网络
以前说过区块链的核心是:分布式,去中心化,不可逆,防篡改。分布式
其实去中心化应该叫弱中心化,去中心化在技术底层是全部单独的节点,没有master的概念,cassandra,redis cluster都有去中心化的概念,经过谣言方式进行数据同步,P2P通讯应该就是一个RPC调用,这两块却是也没有多少稀奇。学习
可是之因此不是一个彻底的去中心化,主要考虑到区块链将来的应用场景不单单是技术底层,而是须要有必定的现实生活场景作依托,因此在现实场景中,若是没有一个强大的中心化机构作背书,很可贵到你们的信任,因此这个中心化机构起到必定的背书做用。区块链
其实我比较感兴趣的是区块链如何作到了,不可逆防篡改。设计
基本看来仍是结合了数学知识加上计算机密码学知识,结合Hash方式,加上随机数达到必定的随机目的,加上时间戳能够作到防篡改。中间件
好比每隔10分钟全网会进行一次有必定难度的hash计算力比拼,只有提交本身hash结果并经过网络验证的一个节点加入新的链中,这个过程叫作工做证实。同步
而验证过程则经过Merkle树验证。数学
上升到博弈论动机来讲,主要基于篡改的成本远大于收益的策略,成本是重建一个更长的区块链,同时须要更大的计算力。