先看比特币的核心特点:1)基于时间戳的链式区块结构;2)分布式节点间的共识机制;3)基于共识算力的经济激励;4)灵活可编程的智能合约机制。
再来谈区块链的重要特性:1)去中心化、完全分布式;2)点对点;3)共识机制;4)加密算法。
我认为区块链的基础技术两点:1、区块链结构;2、全网广播机制。
先看区块链结构:
再说全网广播机制:
“全网广播”的前提问题是“拜占庭问题”(自行Google)
我们刚才讲到矿工挖矿时说,当取得一个区块的记账权后,要向全网广播,此时所有人都知道了这个区块被占了,停止找哈希散列,开始以你这个区块为前一个区块,再次准备抢占链接的区块。里面的信息也被记在了所有人的“账本”上。
放在将军身上就是,所有将军们开始解题,题目的答案就是行动时间。当每个将军接收到任何表达形式的第一个攻击时刻时,他都会设置他的计算机来求解一个极其困难的“工作量证明”问题,对这个问题的解答是一个哈希(Hash)散列,里面也将包含着这次的攻击时刻。由于这个“工作量证明”问题,非常难解,一般而言,就算所有人收到这个问题后同时求解,也至少需要10分钟才能产生解答。一旦一个将军解出了“工作量证明”,他将会把这个算出来的“工作量证明”向整个网络进行传播,每一个接收到的人,将在他们当前正在做的“工作量证明”计算的散列中附加上刚刚被求解出来的那个工作量证明。如果任何人正在计算他收到的其他的一个不同的攻击时刻,他们将会转向新的更新后的“工作量证明”计算当中,因为他现在的“工作量证明链”更长了。
两个小时后,将有一个攻击时刻被散列在一个有12个“工作量证明”的链中。每个将军只要通过验证(这条工作链的)计算难度,就能估算出平均每小时有多少CPU算力耗费在这上面,也就会知道:这一定是在分配的时间段内,绝大多数将军的计算机共同协作才能生成的结果。如果“工作量证明链”中展示出来的算力足够强大,那么他们就可以在一致同意的时间内安全地展开攻击。
我再分享一个知乎的回答: