美文网首页
我是怎么向5岁小孩解释区块链的

我是怎么向5岁小孩解释区块链的

作者: 冲科技 | 来源:发表于2018-08-17 12:44 被阅读17次

来源 | Hacker Noon

编译 | 张问

编辑 | 杨舒芳

如果你家不是刚接上网的话,你肯定听说过比特币、区块链这样的词了。毕竟它们曾经是媒体最喜欢的话题。不过还是有朋友认认真真地看完我的文章,问我,“你写的东西是啥啊,我怎么一点也看不懂?”

如果想要粗略地了解什么是区块链,下面这文章会非常适合你阅读。

有一天,你正躺在家里看剧,突然电话响了,一看是你朋友小明,他正在外面旅游。

“喂,哎我这儿玩得没钱了,你给我打点钱。”

“……行。”

然后呢,你可以用各种办法给小明打一笔钱,比如银行APP、支付宝,或者去银行柜台。完事儿以后,你的银行账单上会记录,“你给小明转账1000元。”

正常吗?太正常了。合理吗?非常合理。难道刚才真的有10张100块纸币从你的钱包里飞出去,飞到小明的钱包里吗?没有。只是银行在你的账户余额上减了一个数字1000,在小明的账户余额上加了一个数字1000。

当然,一个非常重要的前提就是,你十分相信银行!

但是,你有没有想过,如果哪天银行出了问题怎么办?比如,银行着火了?所有数据都丢了?你只想转1000后来发现系统出错你少了8000?再或者,银行故意弄错,你怎么办?

那我们就要想个办法,不通过第三方,我们可以控制自己的钱。具体什么办法?估计你可以猜到,就是连卖菜大妈都在说的——区块链。

那这个东西到底怎么用?

我们找了10个人,我们都不想再通过第三方控制我们的钱,要自己做主。所以我们10个人成了一个团体,我们有各自的账号,但我们不知道对方都是谁。方便起见,这10个人就叫1号,2号….10号。每个人手里有一支笔,和一张空白的纸。

突然,2号决定要向9号转一笔钱,于是2号大喊:“我要转给9号十块钱,请大家记下来!”这时候,每个人——注意,是每个人,都会检查2号的账户余额是不是够10块钱,如果够,就在空白的纸上写“2号转给9号十块钱”,一笔交易就这样完成了。

接着,一笔一笔交易接踵而至,还是一样,每当交易发生,发生的人就会向其他人大喊公告,其他人听见后,就会记在纸上。

但是,一张纸就这么大,可能写几行就满了,记满以后呢?很简单,放下这张,换下一张纸。

好了,目前为止,不难理解吧?那你知道,为什么他们要大喊,要每个人都记录吗?

这就是为了保证每个人的记录的内容都是一样的,如果有一个人的记录和别人的不一样,就说明他记错了。这一点非常关键。

现在,我们把场景放在网上。我们10个人形成了一个网络,每个人有一个文件夹,我们会把记录好的纸放进这个文件夹中。不过在放进文件夹之前,我们要对纸进行一项工作,密封。

为什么密封?因为放进文件夹后,其他人也会看到这张纸,也就是他们有副本。密封,就是为了永远没有人可以更改这张纸上记录的内容。

怎么密封?用每个人都同意的一把秘密钥匙,你可以理解成盖了一个独一无二的章,其他人看见这个章就知道是被密封的。也就是说,他只要相信这个章,他就会相信这张纸上记录的内容。

(行话里,我们说的密封,就是挖矿,这里简单理解就是密封,以保护记录内容)

那密封具体怎么操作呢?往下看,这块内容实在是太有意思了。

想象一下,有这么一个机器,你从机器左边放进一个装着月饼的盒子,从机器右边会出来一个装着可乐的盒子。像不像魔术?那我们就姑且先叫这个机器为“魔术机器”。

(行话里,魔术机器,就是哈希函数)

假如,你从左边发送了一个数字“4”,那么右边就会出来一组字母“dcbea”。你需要知道的是,这是一个不可逆的过程。也就是说,你单单知道右边是dcbea的话,你是不会知道左边是什么东西的。

那我问你一个问题:现在想要右边出来的东西是以三个0开头的,比如000ab,或者00098,你怎么办?

你已经知道,从机器的右边是不能推导出机器左边的东西的,对不对?最后你终于想出了一个办法,每个数字挨个儿试试。

你试了好多好多数儿,237,不对,9082,不对…..试了几千次,终于,你找到了,72533。

很困难,对不对?试了好几千次啊,饭都没吃。那现在,你应该知道了,如果给定右边,想推测出左边,是非常非常困难的。但是,如果我问你,“这个数字72533放进左边,右边会出来3个0开头的东西吗?”这个问题就很简单了,你只要试一下就可以了。

所以,你了解到,这个魔术机器的一个属性;给定输出,计算输入非常困难;但给定输入和输出,很容易验证输入是否能够导出输出。

说了半天,这个密封有什么关系呢?我们将用这台魔术机器生成印章。瞧好了!

我给你一个数字20893,然后问你:“你能算出一个数字,加上20893以后,放进机器里,然后右边输出一个以3个0开头的东西吗?”

又来?老办法,挨个儿试试。

又过了几个小时,又试了几千次,饭又没吃,你终于发现了一个数字21191,当加上20893(即21191 + 20893 = 42084)并送进机器时,会产生一个满足我们要求的词。

在这种情况下,数字21191就是20893的印章,当纸上写着20893的时候,为了密封这张纸,不让被人修改内容,我们会在上面盖一个“21191”的章。

(行话里,这个章就叫工作证明,PoW,就是这个数字证明了他为了算出这个数字,有多努力工作)

如果有人想要验证这张纸的内容是否被更改,他要做的就是把密封编号加上密封内容,送进魔术机器里,看看能不能的到以3个0开头的东西。如果能,那就是没有被改动,如果不能,那这张纸就可以扔了,因为内容已经不可信了。

按照这种方法,密封我们记录的东西。我们只需要找到一个数字,加上我们记录的内容,得出一个以3个0开头的词,就好了。

其实,我说的这个内容简化了很多,实际上要比这个复杂得多。

看完这个过程,你是不是稍微明白一点了。

我们再回到记录转账交易的时候,当我记录满一页纸,打算把它放进文件夹换下一页纸的时候,需要密封,你知道了对吧。这个密封就是算一个数字,并且每个人都可以算这个数字。

当我写满纸后,我们十个人都可以去算这个密封数字,谁先算出来,就喊出来公告大家。当大家听到数字的时候,其他人马上去验证,看看对不对,对的话,这张纸就算密封好了,放进文件夹。

不过,假如说7号这个人,他算好了密封数字,喊出来以后,大家一验证发现,不对!这怎么回事?

有几种情况:他可能是听错了大家喊的转账交易,还有可能他听完了以后写错了交易记录,还有可能,就是他故意想欺骗大家。

不管怎么样,7号的结果只有一个,就是把他写的那页纸撕了,复制别人的。否则的话,他就不能继续参与记录。

那么,为什么大家都在计算密封数字,而不是闲等着呢?反正最后都会有人喊出来,验证就好了。

这就是这个体系里牛的地方,最先算出来的人,会耗费大量的时间和电力,因此他会因此会得到奖励,以鼓励他努力工作。比如2号先算出来密封数字,而且是正确的,他就会得到1美元。实际上,这个奖励,就是现在连出租车司机都在说的——比特币。

这就是伟大的比特币,先算出数字来的人,会奖励一块比特币。而奖励,会让每个人都努力工作。

一张纸被写满——算出密封数字——得到奖励——放入文件夹——新的一张纸又被写满…...循环往复,周而复始。

把每张纸看成一个区块儿,文件夹就是一张张纸连起来,所以又叫做——区块链。

相关文章

  • 我是怎么向5岁小孩解释区块链的

    来源 | Hacker Noon 编译 | 张问 编辑 | 杨舒芳 如果你家不是刚接上网的话,你肯定听说过比特币、...

  • 区块链100讲:区块链为什么叫“区块”“链”?

    《区块链100讲》第1讲我们用一个村里的账本解释了什么是区块链,今天继续第2讲,看看什么是“区块”,它们是怎么“链...

  • 比特币和它的“朋友”们

    写在前面: 写完上篇区块链的介绍之后,我用文章里的逻辑向一位此前没听过区块链的朋友解释区块链,文科生的她听懂了。那...

  • 什么叫区块链 区块链通俗易懂的解释 区块链 个人怎么赚钱

    什么叫区块链 区块链通俗易懂的解释 区块链 个人怎么赚钱 虚拟币自火热以来,有关虚拟币的消息铺天盖地。比特币犹如“...

  • 区块链和数字货币

    区块链-数字货币: 网上也常能看到一些关于怎么和不懂行的人简单快速解释区块链,这里也不免俗从个人的理解来解释下区块...

  • 怎么向小孩解释高考?

    早上去市区上班的路上,突然觉得今天怎么特别的堵车,正纳闷着怎么回事,平常这个时候再堵车也不会堵车堵成这个样...

  • 区块如何连接成区块链

    很多朋友都听说过区块链,但具体什么是区块链,似乎又解释不清。今天我就来和大家详细谈谈区块链。 壹 区块链技术的发展...

  • 从程序员视角解读区块链

    前言 对于区块链的各种解释非常多,很多都是从大众的角度去解释什么是区块链,但是区块链本身是一个相对偏技术的比较抽象...

  • 什么是区块链? CNS积分怎么赚钱

    什么是区块链, 怎么赚钱什么是区块链?CNS积分怎么赚钱 什么是区块链?比特币是运行在区块链平台上的应用程序,区块...

  • 去中心化的平台是什么

    很多朋友都听说过区块链,但具体什么是区块链,似乎又解释不清。今天我就来和大家详细谈谈区块链。 壹 如何投资区块链资...

网友评论

      本文标题:我是怎么向5岁小孩解释区块链的

      本文链接:https://www.haomeiwen.com/subject/mdbzbftx.html