下篇|“区块链”版《荒岛余生》—内附白皮书

昨天,我们在下篇|“区块链”版《荒岛余生》—内附白皮书讲述了Hugo(雨果), Sawyer(索耶), Kate(凯特) and Jack(杰克)四个人在荒岛上如何通过纸和笔运行最简单的区块链。
生活从来都不是一帆风顺的,接下来他们又会遇见哪些麻烦呢?


第三天

到目前为止,这个简单的区块链系统运行的很好,大家都很兴奋可以用Islandcoin(小岛币)来购买东西。

  • 雨果想花10个小岛币从索耶那里买一些柴火;

  • 索耶想花25个小岛币向杰克买一些药片;

  • 杰克非常想吃西红柿,所以他想花2个小岛币从雨果那儿买一个。

他们每个人都有一个小本本记录自己的消费情况:

夜晚来临了,负责发布今天更新的是凯特。

为了确保凯特的记录包含了上述了所有交易,每个人都要把自己的转账请求副本发送给凯特。
杰克发晚了。当他把自己的副本拿给凯特的时候,凯特已经写好了今天的更新:

杰克很沮丧,因为他的转账请求没有经过凯特确认,这就意味着雨果没有收到杰克购买西红柿的2个小岛币,当然也不会给杰克西红柿了——看来杰克今晚要饿着肚子睡觉了
于是杰克冲出去找吃的去了,他也没有在凯特的更新文件上签字。

幸好,其余的人可以签字确认——满足了3/4这个条件。(不清楚这一点的可以看上篇文章)。因此,凯特今天的记录是有效的。

第四天

杰克失踪了!
没有人知道他去哪里了。
杰克前一天晚上出去钓鱼了(估计真的是太饿了),被困在风暴中,没有回到营地。
这就麻烦了,因为今天轮到杰克要发布今天的账户更新了。
凯特今天想要买一些东西,她把转账请求的副本发给了所有人:

到了晚上,杰克依然没有回来。
最后大家一致同意:无需杰克确认,今天的记录生效。

第五天

又轮到雨果负责今天的账户更新了。
小岛上已经连续下雨好多天了,雨果想找一个暖和点的地方睡觉。他想让索耶给他建一个小木屋,索耶答应了,但是需要雨果支付200个小岛币。
但是雨果只有98个小岛币啊。

所以,雨果有了一个“疯狂”的想法:既然今天是我负责更新记录,那我可以直接“硬转账”200个小岛币给索耶呀!

今天小岛上没有发生任何交易行为。

因此雨果就接把昨天的记录一字不差写下来,然后,加上了他今天的“硬转账”记录,并且签字确认,尽管他的这条转账记录没有任何实际意义:

为了确保今天的账本记录是有效的,雨果至少还需要2个人的签名。当他找到索耶和凯特的时候,他俩注意到了一个问题,在第三天的记录里,雨果只有92个小岛币,他怎么能够向索耶的账户转200个呢?

索耶和凯特拒绝承认这笔无效的交易请求。

除非雨果撤销这笔交易。

最后,雨果同意了,并发送了一份正确的记录,索耶和凯特也签字确认了:

第六天

在第六天早上,杰克回来了!

他在风暴中度过了艰难的几天。

过去的两天,杰克错过了许多事情。他甚至都不确定自己还有多少小岛币?他找到了他看到的第一个幸存者,并且询问了账户更新情况。这个人给了他第五天和第三天的记录。

看到这些记录,杰克松了一口气,这些记录的确经过了至少3次确认,杰克对大家目前的账户余额一目了然。

杰克可以与大家“无缝对接”了,就好像他从未错过任何事情一样。
这个系统运行的挺好。
虽然它确实有点简单,但是对于岛上的居民来说,已经足够了。

好吧,如果没有“白皮书”这就不能算是一个功能齐全的区块链项目!

为什么说这是一个“区块链”呢?

  1. 首先,每天更新的那张纸可以理解为是“一个区块”;

  2. 每个区块都被编号,并且指向前一个区块,这就形成了一条“链”;

  3. 为了核实当前记录的正确性,确认者必须从第一天(创世区块)开始一个区块一个区块地连续确认;

这是一次理想的区块链模拟实验吗?

或许并不是。

它在很多方面都需要改善:

  • 它只支持4个居民参与进来,如果有其他的幸存者来到这里该怎么办呢?这个协议对他们适用吗?

  • 这个协议目前是有效的,我们怎样把它变成无效的呢?

  • 如果我们想要修改它使用工作量证明(proof of pow)或者股权证明(proof of stakes)呢?

好的,我们将会在本系列的下一篇文章中来探讨这些想法,敬请期待

郑重申明:本文完全出于信息传播目的,不构成任何投资建议/意见。

你可能感兴趣的:(下篇|“区块链”版《荒岛余生》—内附白皮书)