厉害了,连美图CEO都开始热捧区块链了!
近期网上再次被区块链的新闻刷屏了,这主要是由于美图公司董事长蔡文胜公开热捧区块链技术,并为此频频点赞,同时也再次引发了人们对区块链的关注与好奇。人家美图CEO都开始关注区块链了,你是不是还对区块链一无所知呢?
说到区块链,也许你会时不时看到或者听到过“区块链”这个词,但是真要问你啥子是区块链,你可能就有点蒙圈了。那么今天老秦就来跟大家好好说一下什么是区块链?
区块链是什么
首先咱们要清楚区块链不是一个有形的物品,而是一种去中心化的信任机制。指通过去中心化、去信任的方式集体维护一个可靠数据库的技术方案。更通俗的说,区块链是一种全民参与记账的方式,所有系统背后都有一个数据库,你可以把数据库看成是一个大账本,任何人都可以监督它,但没人能控制它。
是不是没听懂,没关系,下面给大家讲个关于区块链的故事,然后你就明白区块链是怎么来的,到底是啥玩意了。
1、故事开端
假设在有个原始的村子,为了激励村民劳作,老村长会对勤劳的村民奖励贝壳,而这个贝壳可以在村里的仓库兑换谷物、肉、水果等等。这个措施受到村民们的欢迎,慢慢的村民之间的一些其他交易也开始用贝壳作为交易媒介了,比如小明要借小亮的大米,就要支付贝壳给小亮,而小亮可以用得到的贝壳去村里的仓库兑换爱吃的水果。这样一来,贝壳就成为了村里的“货币”了。
但是最后这个交易方案却失效了,因为有村民为了能换到更多的粮食和肉,开始自己去别的村子收集贝壳。这样一来贝壳的数量越来越多,已经超过了仓库补货的速度,最后导致大家对贝壳不再信任了。
2、故事进行中
看到这种情况后,老村长又想了一个办法:决定不再用实物贝壳作为交易媒介了,而是改为记账。
每个村民都有一个属于自己的小账本,同时在村长老那里设置了一个总账本。当村民之间需要交换东西的时候,在村长老的见证之下,在各自的账本上记录一笔当前的交易,同时村长老在检查交易无误后也在自己的总账本上记录这笔交易。
打个比方!
小张想借小李的小说,那小张就在自己的账本上记录“贝壳-1”,小李同时也在自己的账本上记录“贝壳+1”,村长老检验正确后便在总账本上记录这笔交易。如果有村民想要修改自己的账本,但是跟村长老那边的总账本对不上,那就会被发现。
结果,这个体系还是崩溃了。因为慢慢的,有村民发现跟村长老关系好的女人总有用不完的贝壳,这个过程我就不多说了,这个大家都懂,可以自己脑补的。于是最后大家也不再相信村长老的总账了。
3、故事最终
还是老村长机智,没多久就出来一个非常棒的解决办法。(不是派人监督,因为这个治标不治本)
老村长办法如下:
第一,不再设立总账。
第二,每一笔交易所有村民都要记账,不论这笔交易是否涉及到你。
第三,每天下午劳作结束后,全村的村民一起计算今天发生的交易。
第四,每天最先计算出来的村民,奖励1朵贝壳。
第五,在每天计算之后,一笔交易只有与绝大多数村民记录的一致,才能被承认。
举个栗子!
小风找小刘借一筐小麦,需要支付给小刘1个贝壳,我把这笔交易记在我的账本上,然后把付款的单子传递给前后左右的村民,收到我单子的村民记录这笔交易,然后再传给他们周围的村民,直到全村都记录了这笔交易。
这样一来,有人要偷偷修改账本就很难了,他必须与所有村民的账本对账,只有绝大多数(超过半数)的村民账目能跟你对上(也许有个别村民记错账),这笔交易才能得到认可。
同时还调动了村民们计算账目的积极性,因为最早计算出来的村民有奖励。
最后,这个方式运行的很成功(只是麻烦了一点,需要天天记账)。
我们把村子里的故事还原到现实中就是这样的:
这个场景中,账本上的贝壳就是一种数字货币,相当于比特币。
全部村民组成的网络就是一个p2p网络。每个村民就相当于一个节点。
村民+账本共同组成的系统就好比一个区域链。
不存在一个保存在村长老那里的“贝壳总账”,这就是去中心化。
最先计算出来的村民会得到奖励,这个就是挖矿。
有个村民用计算器,算的比别人快,这个计算器就相当于矿机。
看完这个故事,想必大家对区块链的理解就都清楚了。
老秦不仅跟大家的讲解了货币的产生和变革,同时也为大家归纳了一些区块链的概念。如果还是没懂的,咱们单挑!
-End-
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 统计分布讲解
- 使用PyTorch Lightning自动训练你的深度神经网络
- linux防火墙相关配置命令及操作(centos和ubuntu)
- 带你吃透Spring事务7种传播行为 | Spring第45篇
- Linux如何查看端口被占用情况?Windows如何查看端口被占用情况?
- centos7安装Docker详细步骤(无坑版教程)
- Java的Object类详解(入门必备)
- Java的包机制以及import、static import的用法详解(看这篇就够了)
- AIM2020 Efficient Super Resolution: Methods and Results
- hive的group by与distinct的区别及性能测试比较
- hive的order by操作
- centos安装mysql-server报错:No package mysql-server available.
- Java的内部类详解(结合代码全面分析)
- jdk8安装及环境变量配置
- 使用MA Anderson御用软件SpliceSeq对TCGA数据库的RNA-seq找可变剪切