还没看够荒岛余生?这次它带着区块链技术穿越了

2018-05-22 11:59:32 梦婕 2963
汇通网讯——2000年上映的电影《荒岛余生》备受大家的喜爱。这部由汤姆·汉克斯主演的灾难剧情片,也可以说是一部励志片。18年后的今天,带着区块链技术穿越回南太平洋上的那座荒岛,会有不一样的故事吗?
2000年上映的电影《荒岛余生》让大家记忆犹新。这部由汤姆·汉克斯主演的灾难剧情片,也可以说是一部励志片。18年后的今天,带着区块链技术穿越回南太平洋上的那座荒岛,会有不一样的故事吗?

18年后的今天,带着区块链技术穿越回南太平洋上的那座荒岛,会有不一样的故事吗?

如果你和你的伙伴被困在了一个孤岛上,与外界隔绝,那么你们掌握怎样运行分布式共识的过程,是非常有必要的。换句话说,你要学会操作一个简化版的区块链管理系统,来合理的管理和分配你们的资源。甭担心,实现起来无需太多的东西。看看这篇文章,准备一支笔和几张纸就足够啦。

图片点击可在新窗口打开查看

小伙伴们刚经历了飞机坠落,被困在了南太平洋某个废弃的小岛上。他们的名字是雨果(Hugo),杰克(Jack),索亚(Sawyer)和凯特(Kate)。

他们四个人计划发行荒岛币,这是一种革命性的新货币,将结束该岛目前贸易瘫痪的状态。他们四个一致认为,如果每人起价100块,那就公平了。由于他们没有金属来铸造实际的硬币,他们就用几张纸来代替。他们四人间仍不是完全的信任对方,倘若让一个人来记账的话,他们之间对选谁来承担这个责任并没法达成一致。经协商,他们唯一的选择是把余额放在一起,四个人一起记账。

他们要达到什么目的?这其实很简单,他们要做的只是在一张纸上列出一个简单的收支平衡表。从此表中,大家能看到每个参与者有多少荒岛币。因为他们不相信任何一个人可以完全公正的记账,所以只用一张纸来记账是不够的。他们必须保持事物的平等,让每一个人来记录自己的版本,这就是所谓的分布式记账。当然,他们也希望所有4张纸最终都显示出相同的东西,这就是所谓的共识部分。

图片点击可在新窗口打开查看

第一天:



那么,这张纸是什么?

纸上的这些余额从哪来?他们之前已经同意,每个人的余额都从100个荒岛币开始,是公平的。他们需要一个人在这张纸上进行记录。实际上,不管是谁做这件事都可以,那就让雨果来吧。他会把这张纸记录的账本发给每个人,让每个人都存有一份副本。

由于荒岛币余额预计会生变,他们将在每天结束时用一张新的纸来记录当天发生的变化。不过,不可能总是让雨果来进行记录,大家会随机轮流来做此事,毕竟,大家都希望尽可能的保持公平。

另外,他们要做到让每个人都来确认账本当天的更新。要做到这一点,一个简单的方法是让每人在每份账本纸张上签字,但前提是他们同意上面写的内容。

一张账单纸如何才算是被最终批准呢?需有多少人签字?他们对此需事先达成一致的意见。因为他们共有4人,要保证多数人同意,才能最终批准,多数人至少是4人中的3人。上面的文件是由所有人签字的,所以它肯定是可以通过的。为什么不要四人的签名才能批准呢?因为这将有可能产生由于一个人的行为影响整个记账过程的可能性。倘若Sawyer去钓鱼外出了几天,另外的人在他回来前将无法更新余额。这给了一个人太多的权力。那为何他们需要多数人同意呢?比如四个人当中的两个人的签名够吗?如果他们只需4人中的2人,他们可能最终会有2人(如雨果和索亚)签署一个版本的账本,而另外2人(凯特和杰克)签署一个不匹配的不同版本。这样的情况下他们将无法达成一致。

第二天:


第二天早上,凯特想买一个西红柿。雨果给每个西红柿标价2个荒岛币。凯特想把两枚荒岛币转给雨果。凯特拿了一张新纸,在上面写着:
图==凯特第一次交易

这是凯特有史以来的首笔交易,所以她给这笔交易贴上了这样的标签。此外,凯特签署了这份文件。他们必须看到她的签名以确保没有其他人可以伪造她的转账请求。

第二天快结束了,这伙人想公布一套最新的余额。这几个人同意用简单的轮换顺序来记账:雨果、索亚、凯特、杰克、雨果、索亚以此循环。第二天的记账该轮到索亚了。他发布的账本中有着凯特的转账情况:

图片点击可在新窗口打开查看

索亚公布的这个账本还未最终确定执行,因上面仅有索亚的签名。他需要收集到更多的签名。索亚找到所有的人,要求每个人核实并签字。这个帐本很容易验证。首先,验证者需要查看自己的文件副本,并找到显示前一天(本例中为第1天)余额的文件。然后,验证者需检查新的交易。在这种情况下,他们只有一次凯特的交易。这笔转账很容易得到核实,他们可确保它确实是由凯特签署的,他们可确保凯特的确有足够的荒岛币余额转账给雨果。

一旦每个岛民完成了他们的核查程序并签署了文件,索亚现在可向所有人公布次日的账单了。每个人都抄一份,然后满意地睡觉去了。

图片点击可在新窗口打开查看

第三天:


此系统运行良好,每人都很愉快地去使用他们的荒岛币了。雨果想用10个荒岛币从索亚那里买些木柴。索亚欲用25个荒岛币来交换杰克那儿的一些药丸。杰克想从雨果那里用两个荒岛币买个西红柿。他们各自拿出一张纸,在上面详细地写明了他们的转账:

雨果首次交易
图片点击可在新窗口打开查看

索亚首次交易
图片点击可在新窗口打开查看

杰克首次交易
图片点击可在新窗口打开查看

随着夜幕降临,今天负责记账的人是凯特。为了确保凯特将这些变化反映在她所记录的账本中,他们每个人都需要给她发送一份更新请求的副本。实际上,向每个人发送今天变化的副本是有必要的,因为参与交易的人不一定记得该由谁来发布今天的更新。

杰克未能及时地把更新请求交给凯特,当他发给凯特时,当天的收支平衡状态已写好了:


杰克感到非常沮丧。这意味着雨果不会收到杰克交易番茄的付款,也不会给杰克番茄当晚餐。杰克今晚要饿着肚子睡觉咯。他匆忙地出去找别的吃的,也没向凯特提供签名。幸运的是,凯特能从其他人那儿得到足够的签名来完成记账:
图片点击可在新窗口打开查看

凯特得到了3个签名。他们占多数,所以这个账本被认为是可执行的。

第四天:


今天是第四天,没人知道杰克在哪儿。他前一天晚上去钓鱼,遇上暴风雨,没有回营地。这会让大家遇到麻烦,因为今天轮到杰克发布账本更新了。

凯特今天想进行两次转账,她把它们写在一张纸上,然后给每个人一份副本:

图片点击可在新窗口打开查看

晚上快到了,杰克还没回来。这伙人以前曾同意由他来公布新账本,但找不到他,所以这天的账本更新就直接跳过了。

第五天:



今天是第五天,雨果负责新帐本的更新。雨下了几天,雨果想找个暖和点的地方睡觉。他请索亚给他建一座小木屋。索亚需要200个荒岛币来完成这项工作。问题来了,因为雨果只有98个荒岛币。雨果有一个疯狂的想法,由于他是负责更新资产负债表的人,所以为什么不增加一个疯狂的交易呢?
图片点击可在新窗口打开查看

今天没有其他交易。雨果保留了昨天的和他新的疯狂的交易。
图片点击可在新窗口打开查看

雨果签了字。要使此状态更新成为最终状态,他需收集另两个签名。当他去索亚和凯特那儿要签名时,他们注意到在此前的最后一次资产负债表上(从第三天开始),雨果有92个硬币。他怎能把200英镑给索耶?他们拒绝在账单上签字,直到他修正了这个错误并删除了这个无效的转账后才罢休。他勉强同意并公布了一份正确的新的账单。他们最终签了字:

图片点击可在新窗口打开查看

此余额更新是最终更新,因为它有3个签名。

第六天:


今天是第六天早上。杰克终于回到营地。他在暴风雨中度过了一段艰难的日子。过去两天,他没有参加讨论,错过了新的转账公告和新的余额更新的账单。他实际上不确定自己有多少硬币。他找到了他看到的第一个人,并要求得到他错过的最新消息。他将获得第5天的最终更新版本的账单。

杰克很容易和那帮人保持同步。他可以看到这些余额更新确实签署了至少3次,所以他可以相对安全地认为它们是真实的。他还可以根据这些更新和他拥有的最新更新(从第2天开始)自己执行计算。这样杰克就可以像没有错过任何东西一样参加今天的交易了。

这个系统似乎运行良好。的确,这有点过于简单了,但足以满足岛上居民的需求。没有白皮书,他们就不可能有一个运作良好的区块链!

行情

英镑美元 1.3272 0.0011 0.08%
美元日元 109.62 -0.35 -0.32%
欧元美元 1.1693 0.0042 0.36%
美元人民币 6.5410 0.0358 0.55%
美元指数 94.37 -0.14 -0.14%
现货黄金 1,266.40 -4.16 -0.33%
现货白银 16.32 -0.14 -0.83%
美原油 68.49 -0.09 -0.13%
美元加元 1.3313 0.0044 0.33%
澳元美元 0.7405 -0.0035 -0.47%
上证指数 2,859.34 -30.42 -1.05%
日经225 22,338.15 -178.68 -0.79%
英国FT 7,508.76 -173.51 -2.26%
德国DAX 12,270.33 -309.39 -2.46%
纳斯达克 7,529.84 -162.98 -2.12%