使用了同类技术的eDonkey文件共享系统,连续多年受到包括FBI在内的多方力量合力围剿仍蓬勃运行,不曾有一天停摆。另一个更典型的去中心化例子就是互联网本身,这个立项于冷战时期,以对抗核战争破坏为目标的网络通讯系统,显然已成为人类文明的基础设施。区块链技术并没有预设的目标,更缺乏一个非常透彻的描述。但
当人们说区块链上的数据是“安全的”时候,其实只是意味着数据“不可变更”。具体说就是,一旦有人试图改变区块链中的数据,一定会有其他人察觉知晓。区块链上的数据不是绝对安全,它只是不可变更。
Paxos算法解决的是拜占庭问题,即在一个消息可能会延迟、丢失、重复的分布式系统中如何就某个值达成一致,保证不论发生任何异常,都不会破坏决议的一致性。
区块链其实是一种数据库,因为它是数字账本,并且在区块的数据结构上存储信息。数据库中存储信息的结构被称为表格。它们虽然都是存储信息的,但是设计却完全不同,所以不可以互换。
以太坊每隔一段时间把交易数据和验证信息打包在一个块里,依次串接起来,就成为一个链。每个块的块头(验证信息)里,保存了前一个块的块头哈希值(ParentHash,父块哈希)。这样区块链里的块就彼此联系了起来。假如我们更改了前间某个块的内容,后面块的父块哈希就和它对应不上,这种块就无法被共识。这就保证了区块链数
如果你是一个中心化的服务,区块链不会给你带来任何东西,你不可能放弃使用一个成本便宜上千倍的中心化数据库。如果你是一个去中心化的服务,那么你很可能是在欺骗自己,而不是去思考你的系统中单一节点的故障。在真正的去中心化的服务中,根本不会有“你”。
区块链的本质其实是一个多活的分布式数据库,区块链中的很多技术,在数据库的漫长演进过程中也曾得到很多的应用和实践,为了能更好的理解区块链,我概述了从2000年开始这十几年主流系统架构的演变。
它是基于区块链技术而产生的货币。其中,每个区块都包含前一个区块的哈希值,从而形成一条连续链。每个区块都包含多笔交易。区块链技术的运行中使用了多项密码学函数。让我们看一下其中一些主要的函数:哈希算法、 签名、工作量证明、零知识证明。
区块链在设计上是安全可靠的(至少是最好的)。但弱点是人。人作为用户或作为服务设计者和操作者,都是容易犯错的。而区块链不能解决这个问题。
除了区块链本身漏洞,为了提升TPS而引入DPoS(授权股权证明)机制的EOS,也存在着当选超级节点过于中心化,可能引发被黑客攻击利用的缺陷。
IPFS储存方式很特别。举个例子来说,如果我们要通过IPFS储存一张照片,IPFS会将照片分解成一百万份,然后又将这分解完的每一份复制成一万份,分别发给全球各地一万个人的电脑里进行储存。因为是每个电脑中的图片都是碎片化的、而且被分解的很小很小,所以根本看不懂图片的内容。
目前而言所有区块链项目都在建立一套孤立的系统,这些孤立的系统使得很多原本开源的数据变得更加封闭了,使得互联网原本的效率变得更低。