源码

给六岁小孩讲区块链

历史回顾

2008年10月31日,一位所谓名叫中本聪人发表了一份白皮书,构造了一种能够直接将电子现金从发送人支付给接收人的新方法,这种新方法不需要任何金融中介机构参与。这篇论文给这个概念起了个名字——比特币。由于比特币使用了一些密码学的技术,这种新的货币交换方式被称为加密货币。

比特币的唯一目标是用于交易支付,但研究人员意识到,它的底层技术可以被用来构建其他安全可靠的应用,从而彻底改变当前系统的工作方式。“区块链”就是这个底层技术的名字。这么多专业词汇?让我们简化一下!

什么是区块链?——以停车为例

假设你住的城市有一个很大的中央停车场,一次可以停放200辆车(假设这个停车场只有一层)。停车场有一个大门,大门是锁着的,只有当汽车进出时才会打开。现在让我们从不同的角度来分析这个停车场:

  • 价格: 这个停车场是由某个公司修建,而且所有的维护费用都由这个公司承担,所以停车费会很高。

  • 安全: 如果小偷进入停车场,他们会很容易接近所有汽车(拿走轮胎,偷走燃料,损坏刹车,干任何坏事!)

  • 限制: 如果你所在城市的汽车从200辆增加到300辆呢?停车场无法容纳所有汽车,其他公司将不得不修建一个新的停车场。

  • 信任: 车主相信停车场,运营停车场的公司负责保障车辆的安全。

  • 中心化:由于所有汽车都停在一个中央停车场内,我们可以认为这是一种中心化的停车方式。

现在,让我们改变一下当前的场景。假设在你的城市里有200座房子,每座房子都有两个车库。简单起见,我们假设每个房主有且只有一辆车。据此,每座房子的两个车库中都有一个空车库。

现在,假设这个城市的人们决定把额外的车库出租给任何需要停车的人。这种提供停车位的模式可以解决200辆或者200多辆车的停车问题(人们会不断进城出城),而不需要为整个城市建立任何大的中央停车场。让我们分析这个新的场景——

  • 价格: 人们的第二个车库并不是专门为了出租而建,维护成本很低。跟中心化的停车方式比,停车费较低。

  • 安全: 每辆车都被锁在不同的车库里,小偷要接触到全部汽车必须撬开所有车库,因而这种停车方式相对安全。(区块链安全性有点不同,但为了简单起见,让我们暂时这样考虑!)

  • 限制:随着房子数量的增加,假设每座新房子都有额外的车库,那么整个车库租赁系统就会随之扩容。

  • 去信任化:由于没有中心化的权威机构来控制这些分布式停车库,我们认为,所有车库出租者会联合制定出一定的停车规则。

  • 分散化: 如前所述,这些停车库分布在城市的各个角落,我们可以将其视为分布式停车系统。

上述类比是理解区块链技术的基础。

从停车模型到技术模型

以上停车模型用现实中的例子展示了区块链的基本理念。现在,让我们尝试将停车模型的组成部分与实际的技术模型进行匹配——

  • 大型中央停车场是类似于AWS、谷歌云等中心化系统(这些云平台也有一定分布,但为了简单起见,我们假设它们是单个实体)。

  • 汽车是系统中的数据和应用。

  • 分布式停车系统是一个去中心化系统——区块链。

等等!我们漏掉了一些东西。

并非所有的去中心化系统都是区块链!!是的,区块链是一种特殊的去中心化系统,具有独特属性。什么属性呢?我们来谈谈。

区块链由“区块”组成

回顾一下我们的分布式停车系统,并做一个小小的更改。假设当一辆车停入车库时,车库就生成一个特定的锁-钥匙对。 (假设同一辆车每天停在同一个车库)。另外,假设我们按顺序对所有分布式车库进行编号。50号车库的锁-钥匙对,是基于49号车库的锁-钥匙对和50号车库中汽车的特性(如颜色、重量、发动机号等)共同生成,这个过程从1号车库开始,直到200号车库甚至更多。

每个车库的锁-钥匙对,由车库中汽车的特性和前面车库的锁-钥匙对共同决定。

因此,如果一个小偷试图进入49号车库并修改车的任何特性,例如车的颜色或注册号,这意味着49号车库将生成新的锁-钥匙对。而50号车库的锁-钥匙对取决于49号车库的锁-钥匙对,因此 50号车库的锁-钥匙对也会随之改变。以此类推。

现在,让我们做最后一个假设,计算一个锁-钥匙对需要花费大量的计算资源。这意味着,如果必须重新计算这些锁-钥匙对,实际上几乎是不可行的。从而具有防任何小偷修改任何车库中汽车的特性。

锁-钥匙对被更改了怎么办?

还记得我们说过,所有的车库主人都遵守一些规则吗?其中一个规则就是核实车库的有效性。如果一个车库的锁-钥匙对是有效的,则认为车库是有效的。如果任何锁-钥匙对被更改,那么后面所有车库的锁-钥匙对将失效,因为每一个锁-钥匙对都是基于前一个锁-钥匙对生成。(与生成锁-钥匙对相比,验证特定车库的锁-钥匙对非常迅速)。

基于上一个锁-钥匙对,生成下一个锁-钥匙对,不断重复就形成了一条车库链。在技术界,这些车库就是“区块”,因此得名——区块链(由区块组成的链)。

区块链中的区块通过哈希值连接到下一个区块,就像我们示例中的锁-钥匙对一样。与车库模型类似,如果更改了一个区块中的数据,那么需要重新计算后面所有区块的哈希值。由于计算哈希值是一项非常耗费资源的操作,实际上难以实施,因此整个系统排除了无效区块。哈希值的计算过程被称为“挖矿”,我们将在本系列的下一篇文章对此进行讨论。

如何修复区块?

区块链网络上的所有计算机都保留一份完整的区块链副本。如果某台或多台计算机上的一个区块或整条区块链被更改,所有网络节点就会将其与自己的完整的区块链副本进行比较。

如果网络上大多数节点(或计算机)发现更改后的链无效,则用其他节点的有效链替换更改后的链。这使得区块链容易受到51%的攻击。简单地说,如果网络上超过50%的节点是恶意的(或者说是有一条被更改的链),那么整个网络就会妥协,接受更改后的区块链。

(0)

本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/geiliusuixiaohaijiangqukuailian.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:10月 11, 2018 at 10:16 下午

热评文章

发表回复

[必填]

我是人?

提交后请等待三秒以免造成未提交成功和重复