我是怎样向5岁小孩解说区块链的

来源:冲科技ChongTech 2020年03月31日 01:33

来历 | 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美元。实际上,这个奖赏,就是现在连出租车司机都在说的——比特币。

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

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

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

相关推荐
最新文章