2000年上映的还没荒岛电影《荒岛余生》让大家记忆犹新。这部由汤姆·汉克斯主演的看够块链灾难剧情片,也可以说是余生欧意交易所app,欧意交易平台app,易全球主流交易平台一部励志片。18年后的次带穿今天,带着区块链技术穿越回南太平洋上的着区那座荒岛,会有不一样的技术故事吗?
18年后的今天,带着区块链技术穿越回南太平洋上的还没荒岛那座荒岛,会有不一样的看够块链故事吗?
如果你和你的伙伴被困在了一个孤岛上,与外界隔绝,余生那么你们掌握怎样运行分布式共识的次带穿过程,是着区非常有必要的。换句话说,技术你要学会操作一个简化版的还没荒岛区块链管理系统,来合理的看够块链管理和分配你们的资源。甭担心,余生实现起来无需太多的东西。看看这篇文章,准备一支笔和几张纸就足够啦。
小伙伴们刚经历了飞机坠落,被困在了南太平洋某个废弃的小岛上。他们的名字是雨果(Hugo),杰克(Jack),欧意交易所app,欧意交易平台app,易全球主流交易平台索亚(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天开始)自己执行计算。这样杰克就可以像没有错过任何东西一样参加今天的交易了。
这个系统似乎运行良好。的确,这有点过于简单了,但足以满足岛上居民的需求。没有白皮书,他们就不可能有一个运作良好的区块链!