写点什么

技术小白也能看懂的区块链原理

  • 2020-04-02
  • 本文字数:1879 字

    阅读完需:约 6 分钟

技术小白也能看懂的区块链原理

猜疑、认证与信任中心

在谈区块链这一新技术之前,让我们先从一个熟悉的老场景网购开始说起。


你花 100 块在网上买了一件衣服,这个寻常的过程中钱先到了中间担保商,待到你确认收货,钱才会打给卖家。



中间担保上实际上充当了信任中心和认证权威的角色,不考虑物流的情况下,它做了这么几件事:


  • 验证你这 100 块钱是从你的账户里发出的

  • 验证你这 100 块钱只转给了卖家,而没有同时转给你女朋友

  • 验证你的账户里原来真的有 100 块钱


当然这是一个相对愉快的交易方式,因为如果没有支付宝这个第三方,事情一定会演化成下面这个样子:


你希望先货后钱,因为你觉得无商不奸;他希望先钱后货,因为他觉得人性本恶。


于是你们美好的希望都落空成奢望,因为陌生人之间的信任难以维系,他们会出于本能互相猜疑。


但显然上面的这个方式不是最愉快的方式,因为你和卖家因为中间商的存在,不得不向其提供个人身份证信息和银行卡信息,这种提交隐私的感觉总是不太好的;


但这个也不是最安全的方式,因为我们不能打包票说中间商的系统永远都不会坏掉,更为极端地考虑,中间商有一天收了你的钱却不认账的话,你也只能傻乎乎的承受结果。你之所以信任这个中介,主观上无非是感觉他现在做的足够大,大家都很信任他罢了。


然而有些信仰技术的弄潮儿们可不这么想,他们可能会告诉你:之所以需要一个中介来解决信任问题,无非是技术不发达的表现罢了。


那么有没有什么技术,使得你和卖家在基于不信任关系的前提下,绕过某一信任中心来解决信任问题呢?

共识,公账与区块链

这个时候我们就开始谈区块链了。考虑一个比较原始的借钱场景:


甲借给了乙 100 块钱,双方约定借贷时都要大喊一声。


此时甲在人群中大喊:“我借给乙 100!”


乙也在人群中大喊:“我收到了甲 100!”


互不相识的围观群众听到了喊话并达成了“甲借给乙 100 块”的共识,这一借贷行为本身没有任何的借条和收据,也没有任何一个验证中心来检测借贷行为的真实性,完全是群众们的耳朵发挥了监督作用。



此时乙如果开始抵赖,则围观群众义愤填膺:“我们都听到你说收到了 100!”一个写字最快的群众则拿出纸记下了甲乙借贷的故事,这样抵赖就基本不可能了。


翌日乙再将这 100 块借给了丙,那么群众仍听到了这笔交易,在这个账本上不光写下了这笔借贷,还写下了“以上笔借贷为基础”,即乙丙之间 100 块的借贷关系发生之前,甲乙发生过 100 块的借贷关系。将甲乙丙借贷中的两个账本连接起来,日后若再发生借贷则按同样的方法连接下去,就形成了下图所示的“公共账本链”:



群众们记录的公共账本链回答了下面几个问题:


  • 最开始那 100 块的借贷关系是哪里来的?

  • 那 100 块的借贷关系是如何流转的?

  • 每一个人想把 100 块的借贷关系转给下一个人时,由于之前账本的存在,他没有办法掩盖和作假(注意之前的假设,收到 100 块大喊一声,如果没收到就大喊一声而谎称自己有 100 块,群众就会去通过对以前的账本验证你喊话的真实性,显然你不在账本的历史记录中)


讲到这里可以发现,这个公共账本能够替代一个验证中心所发挥的功能,而且由于是群众所记,除非群众一起消失,否则一定会有写的最快的群众进行记账。


对应到区块链里,公共账本链就是区块链,记账群众就是分布在网络中互不相识的节点,记账最快的群众即运算能力最强的节点,唯一没有在上述场景中提到的是,系统会给记账最快的节点一定程度的奖励,这样他们才会收到激励争先恐后的去记账,从而在结果上维护了交易的真实和延续。


简而言之,区块链通过一种分布式的技术方式解决了某些人或主体之间互不信任的问题,上述借贷场景就是一个做出了假设和约束的区块链应用方案。

区块链照进现实

Gartner 认为区块链是 2017 年的十大战略技术趋势之一,而国内互联网金融长期观察者认为区块链目前的情况类似于 TCP/IP(1969 年出现的技术,30 年后应用才全面盛开)或者 HTML 刚出来的时候找不到落地的应用。目前国内区块链的应用还比较少,但是通过对其原理和技术的分析,业界普遍认为可应用区块链的领域比较广泛,包括但不限于金融、法务认证、政治投票、物联网、供应链、知识产权、房地产等。



而就在前年 10 月 25 日,华为也正式加入了 HyperLedgerProject 区块链联盟。有些同学可能并不太了解这一项目的意义,这里笔者并不想做出太多的解释,因为这可能需要更多深入的区块链知识,而本文的目的则仅仅是粗略的介绍区块链的原理和作用。但是看一看该联盟的成员,IBM、思科、英特尔等科技巨头赫然在列,区块链能对 ICT 产业带来怎样的变化和影响,更需要相关专业同事的探讨和分析。


本文转载自 华为云产品与解决方案 公众号。


原文链接:https://mp.weixin.qq.com/s/U225kEL5p1TBgvuK5ncVKA


2020-04-02 14:361592

评论

发布
暂无评论
发现更多内容

Godaddy域名解析速度慢问题以及如何使用DNSPod解析解决

CtrlX

Hexo 域名解析 DNS服务器 域名配置 8月月更

Database Plus 的云上之旅:SphereEx 正式开源 ShardingSphere on Cloud 解决方案

SphereEx

数据库 ShardingSphere SphereEx #开源

突破边界,华为存储的破壁之旅

脑极体

使用常见问题解答软件的好处有哪些?

Geek_da0866

为你的“架构”安排定期体检吧!

凌晞

构架 软件架构治理 架构治理

微软校园大使喊你来秋招啦!

DawnMagnet

Java中的引用

flow

签约计划第三季

dvwa 通关记录1 - 暴力破解 Brute Force

Todd-Lee

渗透测试 DVWA

C#/VB.NET:从 PDF 文档中提取所有表格

Geek_249eec

C# PDF 表格 VB.NET

如何看待腾讯云数据库负责人林晓斌借了一个亿炒股?

雨果

DaaS数据即服务

彻底透彻Docker常用网络模式及应用场景

知识浅谈

开源 8月月更

有点奇怪!访问目的网址,主机能容器却不行

华为云开发者联盟

云计算 主机 云网络 后盾

【LeetCode】设计食物评分系统Java题解

Albert

LeetCode 8月月更

不要再使用MySQL online DDL了

Qunar技术沙龙

SENSORO成长伙伴计划 x 怀柔黑马科技加速实验室丨以品牌力打造To B企业影响力

SENSORO

品牌 产业生态 创新生态

开源一夏 | 手撸代码,Redis发布订阅机制实现

知识浅谈

开源 8月月更

小程序容器+自定义插件,可实现混合App快速开发

Speedoooo

小程序 插件 APP开发

面试必问系列之最强源码分析,带你一步步弄清楚Spring如何解决循环依赖

小隐乐乐

Java 面试题 Spring5源码解析

JavaScript高级程序设计-迭代器

掘金安东尼

JavaScript 前端 8月月更

以消费场景为驱动的CMDB要怎么建?

鲸品堂

使用JDK的同步容器时,应该避免那些坑

华为云开发者联盟

后端 开发 华为云

关于解决Hexo常见报错的处理以及上传时出现errorSpawn错误的详细说明

CtrlX

Hexo Blog 报错 博客搭建 8月月更

直播|一次镜像,处处运行!如何制作一个 StarRocks Docker 镜像?

StarRocks

Open Serverless Benchmark Initiative: 华为云联合上海交大发布ServerlessBench 2.0

华为云开发者联盟

Serverless 华为云

空间数据库开源路,超图+openGauss风起禹贡

这不科技

opengauss

升哲科技携全域数字化方案亮相2022全球数字经济大会

SENSORO

人工智能 大数据 物联网 数字经济

面试突击70:什么是粘包和半包?怎么解决?

王磊

Java 面试题

AIOps智能运维的领跑者擎创科技正式入驻InfoQ 写作社区!

擎创夏洛克AIOps

AIOPS 智能运维 IT运维 大数据运维 智能运维AIOps

经验共享|在线文档协作:企业文档处理的最佳选择

Baklib

电商库存系统的防超卖和高并发扣减方案

京东科技开发者

技术 电商 电商系统

C++内存分区模型分析与实例以及扩展

CtrlX

c++ 前端 程序员进阶 后端、 8月月更

技术小白也能看懂的区块链原理_区块链_华为云产品与解决方案_InfoQ精选文章