区块链由来

来源:互联网 发布:淘宝网qq飞车雷诺永久 编辑:程序博客网 时间:2024/06/06 01:16

拜占庭问题

1. 存在间谍将军2. 广播消息不可达3. 每个忠实将军收到的信息是一致的以上就是拜占庭问题的几个根本问题,最终是要把消息完整同步到每位将军那里;  这其实也是分布式数据库面临的问题,如何同步,保证每个将军的决定在每个忠实将军那里是一致的

比特币等要解决的问题

1. 对货币所有权,交易顺序达成共识2. 同一笔钱不能花费两次由于没有中心化的机构确认交易,需要用去中心化的方式来实现,就诞生了区块链的解决方案存在以下难点:    1. 广播每笔交易,节点到达每个节点的顺序是不一致的    2. 每个节点检查到达的交易是否被花费过了为了对交易顺序达成共识,区块包含上一个区块的hash和最新交易,为了实现对交易打上时间戳,对每笔交易进行hash,引入了pow工作量证明方法。

pow算法

pow的过程可以看作是一个投票的过程  每个新增的区块累积了以前的历史交易  每个节点都会继续对具有最多投票的块继续投票  一般持续6个块之后修改当前块及后续历史交易块需要很多的算力  攻击者追赶上新区块的可能性就非常低了  可以认为此交易是有效且不会再被修改  

问题对比

这里写图片描述

挖矿

以太坊挖矿,是用来创建、验证、发行、传播区块来保护网络,维持正常运行的

ethash pow算法

1. 生成一个新的区块数2. 计算出一个随机种子3. 根据种子计算出一个32M的cache随机数据集4. 根据cache计算出一个1G的DAG的数据集合5. 挖矿的步骤就是从DAG数据集中选取一条进行hash验证6. 满足要求后可以进行写块

ethash算法要实现的目标

1. 抵御矿机性能,用cpu实现计算逻辑,不过没有实现2. 轻客户端可以快速验证,LES协议仍有部分待完善3. 是pos(power of steak)股权证明算法的一个替代品,正在逐步尝试进行替换

未能用通俗易懂的语言阐述一些技术知识点,知识储备不足,请多担待