落难荒岛,光靠纸笔也能搭建一个区块链系统!

2023-11-22 10:50

本文主要是介绍落难荒岛,光靠纸笔也能搭建一个区块链系统!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

四个人流落到一座荒芜人烟的小岛上,他们采用区块链的方式,来维持日常生活的正常运转。通过这个小故事,作者对区块链的解释,通俗易懂。


如果你对区块链还不是很了解,这个故事能够很好的帮助你了解「什么是区块链」。


640?wx_fmt=png

作者 | Tal Kol

译者 | 欧剃


万一你和一群陌生人不幸漂流到一座荒无人烟的小岛上,什么技能是你最好要会的?


你心中可能会有无数种答案,但今天优达菌要告诉你,会生火捉鱼摘水果什么的,只能蔽的了一时饥寒,如果生还者不想活在茹毛饮血以物易物的原始社会的话,建立一个稳定、公平、高效而且去中心化的共识体系,可是非常有必要的。换句话说,发点区块链货币,一步到位进入现代社会,了解一下?


啥,电脑?谁说发币就非得要电脑啦?你只需要一群生还的小伙伴,一些纸笔或者差不多能写字的东西,以及本文。准备好了我们就出发!

640?wx_fmt=png


故事开端



让我们回到故事开始的地方。四位勇敢无畏的…倒霉蛋:张三、李四、阿梅和小王,不幸漂流到了南太平洋某处的一座无人荒岛。


640?wx_fmt=png

↑四个倒霉蛋儿


简单地说,在经历了以物易物的原始生活,以及用贝壳做货币的疯狂通胀之后,(他们还没疯到用石头做货币)他们决定发行一种全新的货币——岛屿币(IslandCoin)——来挽救本地濒临崩溃的经济体系。


640?wx_fmt=png


为了公平起见,所有人一开始都将有100枚岛屿币。既然目前造币厂的建设计划还遥遥无期,大家都决定通过纸笔来记录所有权情况。然而,在全岛货币被“银行家”阿梅垄断了一年以后,谁都无法相信别人不会在记录上做手脚,所以不能让某一个人获得垄断资金记录的权力。最终,他们决定采用区块链的方式,由所有人共同维护每个人的资金记录。


目前,这大约是本岛上最简单的区块链应用实例。在未来,他们也许会加入“工作量证明”或“权益证明”之类的概念——当然这些各有利弊——但现在,就从最简单的情况开始吧。


640?wx_fmt=png


我们的四位主人公想要的是什么呢?其实很简单,不过就是一张纸,上面画着一个表格,表格里是每个人的资金情况,仅此而已。问题是,可不能真的只有一张纸,记录唯一的结果。因此,在做记录这件事上必须人人平等,每个成员手上都有一份——这就是所谓的“去中心化”;同时,每个成员手上的版本最好都是一致的——这就是所谓的“共识”。


那么,这张纸长什么样呢?


640?wx_fmt=png



荒岛求生之Day1



这张纸就是所有人都同意的第一笔记录——这也是为啥它被标成第一天。正如之前说的,大家都同意,一开始每个人都有100个币。同时,还需要有一个人来把这个记录写下来,发布给每个成员,确保每人都有一份。就让张三来做这事吧。


货币就是用来交易的,所以持有的数量肯定是不断变动着的。因此,每一天结束前都需要发布一个当天的更新。为了保证公平,不能总是让张三来记录和发布金额。


鉴于不能无止境的信任记录者,在发布记录之后,还有一件很重要的事要做。那就是每个成员都分别对这次记录的更新情况进行确认,如果同意这次的金额变更,就签上自己的名字。很简单对不对?


640?wx_fmt=png


那么,需要多少人签字,当天的记录变更情况才能最终确定,并得到通过?为了达成共识,我们需要大多数人同意。既然目前总共是4人,“多数同意”意味着最少要拿到3个签名。上面这张纸4个人都签名了,那么事情就这么定了。


为啥不需要4个人一致通过呢?因为这样将会出现一个成员干扰整个进程的可能。假如李四离开营地好几天去远处捕鱼,那其他人就无法更新当前的余额,直到他回来——这将过多的权力赋予了单个成员。


为什么我们需要大多数,4个人有两个签名不行吗?如果只需要两个,那可能会出现两个人(比如张三和李四)支持一种结果,另外两个人(阿梅和小王)支持另外一种不同结果的情况。这样将无法达成一致,因为两个不同版本的结果不能同时都为真。


于是,大家愉快地定下了规矩,区块链经济的第一天就这样过去了。


640?wx_fmt=png



荒岛求生之Day2



第二天早上,阿梅打算买个番茄吃吃。她花了2个币向张三购买。于是她把这笔交易写在一张纸上:


640?wx_fmt=png


这是阿梅的第一笔交易,所以交易号是#1。此外,她还得在纸上签名,以确保不是别人盗用她的名义进行支付。


到第二天晚上,又该更新并公布大家的余额了。第一天是张三来写,并征求大家的签名。之后只要大家轮流这样做,看起来就很合理对不对?


于是大家达成一致,按照张三->李四->阿梅->小王->张三->李四.... 类似这样的循环,轮流执掌。这就表示第二天应该由李四来发布当天的资金余额更新情况。因此,他将阿梅的交易信息计入当天的更新中:


640?wx_fmt=png


李四写的这张纸还不是最终结果,因为只有一个人,也就是李四自己签了名。他还需要请其他成员确认更新内容,并签名。


当然,这事儿要确认起来很简单。


首先,确认者可以拿出自己手头保管的记录数据,查看上面最后一条的最终记录数据(当前就一条,也就是第一天的数据)。


接下来,确认者检查当天新增的交易列表。当天只有一条来自阿梅的交易信息。这个信息也很容易确认,只要确认这个条子确实是经阿梅签名的,并且从上一天的记录来看,阿梅的余额里也有足够多的币可以给张三,以完成交易。


一旦每个岛民都完成了各自的验证程序,并在纸上签了字,那么李四就得到了第二天余额变动情况的最终版本,他将这个版本发布给每个人,每个人都确保自己手头有一份一样的副本,于是大家都可以愉悦而满足地休息啦。


这就是第二天的最终结果:


640?wx_fmt=png



荒岛求生之Day3



第三天到了,这个系统看起来很棒,大家都很有交易的热情。张三打算花10个币从李四那边买一些柴禾,李四打算花25个币向小王买些药片,而小王要向张三买2个币的番茄充饥。他们都分别写下了交易信息:


640?wx_fmt=png


当黑夜降临,今天负责公布账目的是阿梅。为了保证阿梅将自己的交易信息纳入,大家都得给阿梅一份交易信息的纸条。当然,一般来说,交易信息需要广播给所有人,因为你交易的时候不一定就会记得今天负责公布更新数据的到底是哪个人。


然而,小王在这事上实在太拖拉了。等他把交易信息拿给阿梅的时候,人家早就已经把当天的交易信息写好了,还签了名:


640?wx_fmt=png


小王这下可是傻眼了,他的交易信息没被列入进去。这意味着张三当天并没有收到小王的转账,所以也不会把预定的番茄给小王。于是不幸的小王这天晚上就只能饿肚子了。


饥肠辘辘的小王拒绝在纸上签字,还愤愤地跑出了营地,嘴里嘟囔着要自己觅食什么的话。好在阿梅已经从其他成员那里拿到了足够的签名:


640?wx_fmt=png


阿梅总共拿到了三个签名,每个人都确认过记录的余额和交易信息准确无误,也和前一天的记录吻合。按照多数原则,今天的数据就算定下来了。



荒岛求生之Day4



第四天,一切正常——除了没人知道小王到底去了哪里。前一天晚上他跑出去捕鱼,结果起了风暴,他一晚上没回营地。这倒是有点麻烦,毕竟第四天应该是小王负责统计并发布当天的资金变动情况。


阿梅想要做几个交易,于是她写下了交易信息,并传给了大家:


640?wx_fmt=png


到了晚上,小王还是没出现。按之前定好的顺序,今天应该是小王来统计,然而大家始终找不到他。于是当天只好轮空,一切暂停不动。



荒岛求生之Day5



第五天到了,又轮到张三坐庄啦。因为前两天的气候一直不太好,到处湿嗒嗒的,张三希望能换个干爽暖和一点的地方睡觉。他希望李四能帮他搭个木头小棚子,李四开价200个币。问题在于,张三只有92个币,怎么办呢?张三突然有了一个大胆的想法。


640?wx_fmt=png


张三觉得,反正今天是他自己负责统计交易余额信息,何不直接搏一把大的,单车变摩托,啊不,空手套棚屋。于是他直接写了200个币给李四:


640?wx_fmt=png

此外,这一天没有其他的交易了。不过因为昨天轮空,阿梅的两笔交易,以及前天没来得及计入的小王的交易,都归到今天来记。所以,张三就把自己的记录混在中间,希图蒙混过关:


640?wx_fmt=png


管它平不平,张三反正壮着胆子就签了名。但这事他一个人说了还不算,他还需要另外两个人的签名。当李四和阿梅看到这个单子的时候,他们很快就发现余额不符的问题:在第三天的余额里,张三只有92个币,怎么可能发给人家200个呢?

640?wx_fmt=png

他们都拒绝签字,要求张三把记录改正。张三只好满不情愿地把那条记录删掉了,重新计算了大家的余额:


640?wx_fmt=png


这下阿梅和李四才最后签上了名字。


因为有3个签名,第五天的交易记录就这么定下了。



荒岛求生之Day6



第六天的早上,小王拖着蹒跚的脚步回到了营地。这几天他在暴风雨中挣扎求生,简直糟的不能再糟了。错过了这两天的资金变动情况,他甚至已经不太确定自己还有多少币了。不过他一回来就找了个人问问,并很容易就拿到了第三天和第五天发布的交易情况。


对小王来说,很容易确认最近的交易内容,以及自己的余额没有被篡改。因为这些纸上都有至少3个签名,基于上面记载的交易记录,他可以利用自己保存的第二天的数据进行一下简单的计算,就能确定第五天时,所有的余额是正确无误的。

640?wx_fmt=png


于是,小王的营地生活又回到了正轨。



荒岛求生版的区块链故事



总体来说,这个系统工作的很令人满意。没错,它确实有点简陋,但对于不得不生活在这里的四位岛民来说,这已经完全够用了。不过,要用区块链发币,怎么能没有白皮书呢,于是大家全体起草并正式发布了这么一份棒极了的白皮书:


640?wx_fmt=png


也许有些读者要问,说了这么多,这跟区块链到底什么关系?让我解释一下:

640?wx_fmt=png

  • 每天发布的一张当天的余额表,就是一个区块

  • 每一个区块都有编号,并指向上一个区块——也就是前一天的余额表——并就此形成了一条链条

  • 要验证任意一个区块的数据是否正确,只需要从链条的开头(第一天的数据,也就是创世区块)开始,根据每个区块内的数据按顺序进行计算。所有的余额都是逐日增减的。


所以这就是理想的区块链实现吗?大概不是,因为可以优化的地方还很多。比如,先这可能只支持4个用户,如果又有新的人来可怎么办呢?要如何调整容纳他们?同时,这个区块链现在是需要许可的,能不能转换成非许可链呢?还有,如果希望引入工作量证明,或者权益证明的机制,该怎么修改呢?


嗯,这也许值得我们之后另文讨论,今天,就让我们这四位勇士好好休息吧。


640?wx_fmt=jpeg


— 完 —



本文转载自优达学城Udacity(ID:youdaxue)

原文链接:

https://mp.weixin.qq.com/s/IQSwNZ-Zsf4KSVl9cADToQ




最新热文:

  • 世界杯开赛在即,告诉你5个用区块链玩转球赛的秘密 | 内附独家资源

  • 暴跌至6500美金的比特币,要不要买入迎牛市?这篇好文或许能启发你

  • 那些被一行代码蒸发1个亿的智能合约,形式化验证了解一下? | 人物志



640?wx_fmt=png

扫码加入区块链大本营读者群,群满加微信 qk15732632926 入群



640?wx_fmt=gif



了解更多区块链技术及应用内容

敬请关注:

640?wx_fmt=gif

这篇关于落难荒岛,光靠纸笔也能搭建一个区块链系统!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/409627

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识