2016年8月6日星期六

对区块链的一点理解

读了一篇很不错的讲区块链原理的文章,整理了一下思路 http://o.btc123.com/data/docs/easy_understood_bitcoin_mechanism.pdf



在知道谜底的情况下重新推导一下

1.需要去中心化,所以选择分布式存储,数据量可接受,所以存全量
2.交易数据需要正确性,顺序性,所以存储全部历史,链式存储
3.交易安全保证,使用公匙,私匙协议,这个比较常见
4.需要解决拜占庭将军问题,首先是一致性问题,这个类似于抢占式协议
5.数据伪造问题,这个是很多分布式协议里面碰不到的,所以有了牛逼的工作量证明协议
6.工作量证明协议最重要的是,验证容易,计算困难,计算过程可协作
7.本质上还是一个保证一致性的分布式存储系统

少了一个Merkle Tree

1.这个结构用来在整个链中间验证交易是否存在
2.从最长的链拿到根hash值和该交易认证路径,然后根据路径重新计算根hash值和实际的比较就行了
3.在数据库类型的系统中会有这个快速定位修改

之前对pk的过程理解得不是很清楚

1.主要是为了防止双花,就是说a客户端先给b付了一笔钱,然后又把这笔钱付给c(前提是这个客户端被改过了,不然本地校验过不去),然后创建一个强大的支线链路争取超过第一笔交易
2.但是第一笔钱已经跑了6个区块了,第二笔钱的链无论怎样也追不上,所以不会被系统承认,如果没有跑6个区块那第一笔交易其实没有达成如果被第二笔超过那就只成交第二笔就好了
3.之前有个地方理解不对,分支长链并不会把之前短链的交易都干掉,只会让短链上的工作都转到长链上面来


没有评论:

发表评论