FUNMVP:几张图看懂区块链技术到底是什么?(转载)
几张图看懂区块链技术到底是什么?
“区块链”的概念可以说是异常火爆,好像互联网金融峰会上没人谈一谈区块链技术就out了,BAT以及各大银行还有什么金融机构都在开始自己的区块链研究工作,就连IBM最近也成立了自己的区块链研究实验室,但其实区块链到底是什么?大家或许并不清楚,停留在雾里看花的状态。从今天开始,就让我们一起走进区块链,揭开区块链的神秘面纱吧!
取快链?你想说的是区块链吧?
要说清楚区块链,我们先来讲个故事。
你一定听说过三人成虎的故事吧?
假设一个人告诉你,不好了,大街上有只老虎,你相不相信?
我去,你咋不按常理出牌啊,你要说不相信!
重来!我们说的是真老虎!
Action!!!
好!非常好!!影帝级的演出!!!
继续,这时候换做一堆人告诉你这件事!
我们再换一种场景。
如果一个德高望重、你十分信任的老者告诉你这件事,你又会怎么想?
是的,这就是所谓的信任的力量。你不信任一个没有足够信用度的单独个体,
但你会信任一堆个体或者有足够信用度的单独个体。
在现实社会中,银行就是这个有足够信用度的个体(中心)。
但以银行等作为信用中介是需要成本的,
而我们普通大众就要为这庞大的信用成本买单。
所以才会造就金融业是最赚钱的行业。
要去除银行类等中心机构的信用背书?
那就可以用我们上面提到过的“一堆个体”,这也是区块链技术的核心。
区块链本质上是解决信任问题、降低信任成本的技术方案,
目的就是为了去中心化,去信用中介。
区块链是比特币的底层技术。
比特币(BitCoin)的概念最初由中本聪在2009年提出,你把它理解成数字货币即可。
我们以比特币交易为例来看看区块链具体是如何操作的。
1、把每笔交易在全网广播。让全网承认有效,必须广播给每个节点。
2、矿工节点接收到交易信息后,都要拿出账簿本记载该次交易。
一旦记录,就不可撤销,不能随意销毁。
矿工节点是通过电脑运行的比特币软件对交易的进行确认的。
为了鼓励矿工的服务,对于其所记录和确认的交易,
系统为矿工提供25个比特币作为奖励。(这个奖励数量,系统设定每4年减半)
奖励只有一份,那就看谁记录的快呗。
为了减少这种情况,系统会出一道十分钟的运算题,
谁能最快解出值,谁就将获得记录入账权利,并赢得奖励。
对了,这里可以给大家看一道据说是徐汇区幼儿园升小学的运算题。
别急啊,你试试看,我第一次反正是做错了。
……,好吧,我无力反驳。
说远了,我们再说回来。
前述区块链中所运用算法并不是简单的计算题,而是使用哈希散列(Hash)算法。
哈希散列是密码学里的经典技术,可以用来验证有没有人篡改数据内容。
3、获得记账权的矿工将向全网广播该笔交易,账簿公开,其他矿工将核对确认这些账目。交易达到6个确认以上就成功记录在案了。
矿工记录的时候,还会将该笔交易盖上时间戳,形成一个完整时间链。
4、当其它矿工对账簿记录都确认无误后,该记录就确认合法,矿工们就进入了下一轮记账权争夺战。
矿工的每个记录,就是一个区块(block),会盖上时间戳,每个新产生的区块严格按照时间线形顺序推进,
形成不可逆的链条(chain),所以叫做区块链(Blockchain)。
而且每个区块都含有其上一个区块的哈希值,确保区块按照时间顺序连接的同时没有被篡改。
这时候我们再看对区块链的原始定义就能理解了:区块链是一种分布式数据库,是一串使用密码学方法相关联产生的数据块,每个数据块都包含了一次网络交易信息,用于验证其信息的有效性和生成下一个区块。
若两个人同时上传,虽然这个概率很小,但是若发生,我们就看最后的区块链哪条更长,短的那条就失效。这就是区块链中的“双花问题”(同一笔钱花两次)。对于要制作虚假交易,除非你说服了全网里超过51%的矿工都更改某一笔账目,否则你的篡改都是无效的。
网络中参与人数越多,实现造假可能性越低。
这也是集体维护和监督的优越性,伪造成本最大化。
说服51%的人造假还是灰常灰常难的。
好了,我们总结下,区块链主要有以下核心内容:
1、去中心化
这是区块链颠覆性特点,不存在任何中心机构和中心服务器,所有交易都发生在每个人电脑或手机上安装的客户端应用程序中。
实现点对点直接交互,既节约资源,使交易自主化、简易化,又排除被中心化代理控制的风险。
2、开放性
区块链可以理解为一种公共记账的技术方案,系统是完全开放透明的,账簿对所有人公开,实现数据共享,任何人都可以查账。开放效果类似这样:
3、不可撤销、不可篡改和加密安全性
区块链采取单向哈希算法,每个新产生的区块严格按照时间线形顺序推进,时间的不可逆性、不可撤销导致任何试图入侵篡改区块链内数据信息的行为易被追溯,导致被其他节点的排斥,造假成本极高,从而可以限制相关不法行为。
FUNMVP:几张图看懂区块链技术到底是什么?(转载)的更多相关文章
- 一张图看懂ANSYS17.0 流体 新功能与改进
一张图看懂ANSYS17.0 流体 新功能与改进 提交 我的留言 加载中 已留言 一张图看懂ANSYS17.0 流体 新功能与改进 原创2016-02-03ANSYS模拟在线模拟在线 模拟在线 ...
- 一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
一张图看懂开源许可协议,开源许可证GPL.BSD.MIT.Mozilla.Apache和LGPL的区别 首先借用有心人士的一张相当直观清晰的图来划分各种协议:开源许可证GPL.BSD.MIT.Mozi ...
- 4张图看懂delphi 10生成ipa和在iPhone虚拟器上调试(教程)
4张图看懂delphi 10生成ipa和在iPhone虚拟器上调试(教程) (2016-02-01 03:21:06) 转载▼ 标签: delphi ios delphi10 教程 编程 分类: 编程 ...
- 一张图看懂css的position里的relative和absolute的区别
position有以下属性:static.inherit.fixed.absolute.relative前三个好理解好区分:static:是默认状态,没有定位,元素出现在正常的流中(忽略 top, b ...
- [转帖]两张图看懂GDT、GDTR、LDT、LDTR的关系
两张图看懂GDT.GDTR.LDT.LDTR的关系 2018-06-09 18:13:53 Six_666A 阅读数 2044更多 分类专栏: 深入理解linux内核 转自:http://ju.o ...
- 一张图看懂Function和Object的关系及简述instanceof运算符
我在写一篇图解prototype和__proto__的区别时,搜资料搜到了一个有意思的现象,下面这两个运算返回的结果是一样的: Function instanceof Object;//true Ob ...
- 一张图看懂 JS 原型链
JS 原型链,画了张图,终于理清楚各种关系有木有 写在最后: __proto__是每个对象都有的一个属性,而prototype是函数才会有的属性!!! function Person() { } 是函 ...
- 一张图看懂Rxjava的原理
前言 Rxjava是NetFlix出品的Java框架, 官方描述为 a library for composing asynchronous and event-based programs usin ...
- Nodejs学习笔记(三)——一张图看懂Nodejs建站
前言:一条线,竖着放,如果做不到精进至深,那就旋转90°,至少也图个幅度宽广. 通俗解释上面的胡言乱语:还没学会爬,就学起走了?! 继上篇<Nodejs学习笔记(二)——Eclipse中运行调试 ...
随机推荐
- 乘风破浪:LeetCode真题_030_Substring with Concatenation of All Words
乘风破浪:LeetCode真题_030_Substring with Concatenation of All Words 一.前言 这次我们还是找字符串的索引,不过,需要将另一个字符串列表中的 ...
- 当DATABASE进入了suspect模式以后
一个VM的错误就造成了sql2012的脱序.很多一般看不到的模式陆续登场 诸如 recovery pending, suspect, EMERGENCY. 以下脚本可以帮助恢复,如果文件没有损坏的话. ...
- October 31st, 2017 Week 44th Tuesday
No matter how hard the past is, you can always begin again. 不管过去有多么困难,你都可以重新开始. Honestly, I don't ag ...
- sql注入--基础
什么是sql注入: 利用SQL语句 在外部 对数据库进行 查询,更新等 动作 sql注入的原理: 输入值可控且带入数据库执行(前提) 接受的变量传值未进行过滤(实质) sql注入的目的: 获取数据(网 ...
- Beta阶段第三次冲刺
Beta阶段第三次冲刺 严格按照Git标准来,组员有上传Git的才有贡献分没有的为0 代码签入图 1.part1 -站立式会议照片 2.part2 -项目燃尽图 3.part3 -项目进展 1.正在进 ...
- cpu的核心数及线程关系
CPU个数.核心数.逻辑CPU个数:一个物理CPU可以有多个核心,一个CPU核就是一个物理线程,由英特尔开发超线程技术可以把一个物理线程模拟出两个线程来使用,使得单个核心用起来像两个核一样,以充分发挥 ...
- VS2015+OpenGL4.0开发编译时弹出错误:glaux.lib(tk.obj) : error LNK2019: 无法解析的外部符号 _sscanf,该符号在函数 _GetRegistrySysColors@8 中被引用
一.问题描述: VS2015+OpenGL4.0开发编译时弹出如下所示的错误: 1>glaux.lib(tk.obj) : error LNK2019: 无法解析的外部符号 _sscanf,该符 ...
- 分享四个 Linux 上的网络信息嗅探工具
在计算机网络中,数据是暴露的,因为数据包传输是无法隐藏的,所以让我们来使用 whois.dig.nmcli和 nmap 这四个工具来嗅探网络吧. 请注意,不要在不属于自己的网络上运行 nmap ,因为 ...
- Git同时使用不同平台代码仓库
问题描述 公司项目使用代码仓库为gitinn/gitlab等,个人项目使用github进行托管,而公司项目和个人项目设置的邮箱和用户名是不同的,而ssh的密钥对又是基于这两个信息生成的,所以此时想要同 ...
- ping和telnet
ping命令 验证IP的可达性 本地ping虚拟机中的ip地址: telnet命令 验证服务的可用性,某个端口是否打开 连接到服务器的端口上: 几种场景: (1)ping通,telnet不行 ip地址 ...