首页
区块链-一个故事看懂『区块链』
发布时间:2017-07-27 00:00:00     

一篇不错的介绍区块链的文章,平实易懂。原文链接:https://hackernoon.com/wtf-is-the-blockchain-1da89ba19348。本文为赛博朔方独家翻译编辑。



区块链是比特币的底层技术和基础架构,本质上是一个去中心化的数据库。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)并生成下一个区块。


狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一 种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。


以上定义摘自百度百科。很多菜鸟朋友看完这段解释依然满脸懵逼,到底什么是“区块链”?


起因


除非你完全没有接触过信息安全,否则一定听说过比特币和区块链。毕竟这两个名词也是近两年来各大国内外媒体争相报道的热词。尤其是继今年5月爆发的WannaCry病毒爆发以后,很多从未接触过的人都开始加入讨论大军。


我的很多朋友都不懂技术。最近几周他们一个个都变身好奇宝宝,围着我问比特币和区块链。我想这两个名词的热度一定还会持续攀高,对他们不够了解的人也还有很多很多。何不采用通俗的语言对“区块链”做一个解释,把这个概念传播开来?


和网上一般的名词解释不同(不管三七二十一,下个定义再说,其实并没有什么卵用),我们以它的作用为切入点来理解区块链的工作机制。


故事的开端


Joe是你最好的朋友。他出国旅游后的第五天给你打了个电话:“兄弟,我需要点钱,出国之后把身上的钱都花完了。”


你回复:“我马上打过来”,然后挂了电话。


接着你又打电话给你的银行客户经理:“麻烦你马上从我的账户转1000美元给Joe。”


客户经理:“好的,明白。”


客户经理随后确认了你的账户是否有足够的余额。因为你是百万富翁,所以客户经理进行了如下的操作:

你打电话给Joe说你已经把1000美元转过去了。


回头我们再来看看刚刚到底发生了什么。你和Joe都信任那家银行来管理你们各自的财产。整个过程中实际并没有真实货币的物理流动。整个过程只涉及录入系统的两个账户即可。更准确地说,全程只需主动权属于该银行的两个账户就可以完成。


在这样传统的货币体系中,我的问题就来了。


交易双方的信任机制建立需要借助第三方。这种“中间人”的方式由来已久。那么你可能又要问了:“这种信任机制有什么问题吗?”问题在于除交易双方以外的“监督者”只是单个个体。这种情况可能存在以下风险:


如果有人有意或无意地摧毁了某个人或某个第三方组织机构就可能足以引起社会混乱。


如果记录了某个交易的注册表遭遇火灾怎么办?


万一你的客户经理不小心划了1500美元到你朋友的账户怎么办?


如果他是故意这么做的呢?


世界上有没有无需借助银行就能帮助我们完成安全转账的系统?


要想解决这个问题,我们首先应该静下心来好好思考,问自己一个更深层次的问题:我们能不能自己掌握账户和历史交易的信息呢?


这的确是一个值得探讨的问题。答案当然你一定也已经猜到了——那就是“区块链”。现在我们就开始学习这个分布式账本是如何运作的。


故事的发展


该方法得以实行的必要条件是必须有足够多的人愿意在交易时不依赖于第三方。只有这样,这一部分的人才能够自己掌控账本资料。


那么人数要达到多少才足够呢?在下面的例子中,我们假设有10个人愿意放弃银行或其它任何第三方机构。在双方达成协议的前提下,他们互相之间能够在不知道对方身份的情况下时刻掌握对方账户的一切信息和动态。

1. 一个空文件夹


一开始每个人都会获得一个空文件夹。随着时间推进,这十个人都会在他们现在空的文件夹里不断添加记录交易信息的纸张。


2. 交易发生时


接下来,这个交易网络中的每个人都带着纸和笔坐下来,准备记录下在这个系统中发生的每一笔交易。


假设,2号想给9号10美元。


为了完成这笔交易,2号大声地告诉每个人:“我要转10美元给9号。请大家都在自己的纸上记下来。”

然后每个人都检查确认2号是不是有10美元及以上的余额能够转给9。如2号余额足够,那么大家都在空白纸上记录下这笔交易。


这笔交易这样就算完成了。


3. 持续发生的交易


随着时间的流逝,这个交易网络中出现交易需求的人越来越多。无论何时他们产生交易需求,都会通知网络中的每个人。只要有人听到了这个通知,他/她就会在他们各自的纸上记录下来。


这个过程会持续进行,直到这张纸上的空间不足。假设每张纸只能记录10次交易,那么只要第10次交易完成,每个人纸上的空间也就随之耗尽。

这时候我们就需要把这张纸放进文件夹并拿出另一张新的白纸,重复上面步骤2的过程。


4. 把纸张放进文件夹的注意点


在把纸张放进文件夹之前,我们需要对这张纸用网络中每个人都认可的专有密钥进行密封。但是密封后我们要确保的是,这张纸就只能尘封在文件夹里,无论是谁无论何时都不能对其作任何修改。并且如果每个人都相信这个“封印”,那么也就意味着每个人都绝对信任这张纸上的内容。这种密封方式也是区块链的关键所在。


以前第三方或中间人都会说服我们相信无论他们在注册表中记录了什么,里面的内容都不会发生改变。但在现在这个分布式的、去中心化的系统中,这个印章(密钥)就为我们建立了这种信任机制。


故事的高潮 (一)


新的问题又来了。我们应该如何密封这张纸?


在学习如何密封之前,我们先来了解印章的工作原理。


假设我们现在有一个机器,如果你把一个里面装着东西的盒子从左边放进去,这个魔法机器会从右边吐出一个装着其它东西的盒子。


【术语解析】这个机器实际叫作“哈希函数”,但是今天我们不讨论技术。所以我们暂且称它为“魔法机器”。

魔法机器(即哈希函数)


如果我们把装有数字4的盒子从左边放进去,它会从右边给出下列字符:dcbea。


如果已知条件是输出结果为“dcbea”,要想知道从左边输入的是什么非常困难。但是每次如果你把4放进去,最终的输出结果“dcbea”是肯定的。


我们来试试发送其它数字。如果放入26会得到什么呢?

哈希(26)=94c8e


这次我们得到的是“94c8e”。从26的输出结果来看,结果也可以包含数字。


了解到这儿,我们可以开始思考下一个更加深入的问题了:


“如果我想从右边得到一个以3个零为开头的结果(如000ab、00098、000fa等),那么我应该从机器的左边放入什么内容?”

预测输入的内容


这个机器有一个单向性的属性:给出右边的预期结果后,我们无法计算出左边放入的内容。那是不是意味着这个问题无解?倒也未必。


我能想到一种方法——把每个数字都输入一遍,直到机器输出以3个零为开头的结果。

把每个数字都尝试一遍


有耐心的人试上几千次可能也就找到了这个符合我们输出要求的数字。

通过输出结果来获得输入数字这种逆向计算的确非常困难。但是如果我们得到了预测的输入内容,验证该输入是否能得出我们想要的结果就非常非常容易了。记住,这个机器最大的特点就是每个结果只对应一个数字,绝无例外的“一夫一妻制”。


如果我给你72533这个数字,然后问你:“这个数字输入魔法机器后会不会输出以3个零为开头的结果?”这个问题就简单到简直在侮辱我们的智商了。


因此这个机器最最最重要的属性是——知道结果,要想算出输出非常困难,但是如果我们知道输入的数字和输出结果,验证两者是否匹配很简单。


如何利用这个机器密封纸张?


怎样利用魔法机器生成每张纸独有的封印?还是老办法,采用情境模拟的方法展开解释。


假设我给了你两个盒子。第一个盒子里面有数字20893,你能不能想出一个数字,这个数字与第一个盒子里的数字相加后的结果放入魔法机器后,我们能够得到一个以3个零为开头的字符结果。

这个情景和之前的难题几乎相同。唯一的办法就是把每个数字都放入机器尝试一遍。


经过几千次的尝试,我们会在21191这个数字这里停下,21191+20893=42084,把42084放入这个机器后所得到的结果正是我们想要的。

在这个案例中,21191这个数字就是20893这个数字的“封印”。假设有张纸上写着20893这个数字。为了密封这张纸(即没有人能够再对其内容作改动),我们把带有21191标签的徽章贴在纸上,密封完成。

被密封的数字


【术语解析】用来密封的数字实际被称为“工作证明(Proof Of Work)”,因为这个数字是通过努力计算得来的。本文为了简单易懂,我们称它为“密封数字”。

无论谁想验证这个页面是否被改动过,只要把页面上的内容与密封号码叠加后放入魔法机器。如果机器输出的内容是以3个零为开头的,那么该页面内容是没有被“污染”过的。但如果结果不满足这个特点,我们就应果断丢弃这个页面,因为上面的内容已经被改动、已经失效。


密封过程总结


要想密封记录整个交易网络中交易流水的页面,我们需要找到那个加入交易内容并输入机器后会得到以3个零为开头的字符的关键数字。

注意:“以3个零为开头的字符”只是一个举例,简单地反应哈希函数的工作原理。实际问题处理起来会复杂得多。


只要花费一定的时间,交易网络中的参与者就能够计算出这个数字,该页面也就随之密封。一旦有人更改了页面上的内容,任何人都能够通过这个密封号码来验证这个页面的完整性。


故事的高潮(二)


了解如何密封页面后,我们再把思绪拉回10个人用完了一张纸上所有空间的时候。


当这个页面上记不下更多的交易记录时,交易网络中的每个人都会停下来计算该页面的密封数字,然后将其放入文件夹。如果第一个人算好了密封数字,他就会向所有人公布。

听到密封号码后,大家都去验证这个数字是否能满足输出需求。如是,则在他们的页面上贴上这个标签,再把这个页面放进文件夹。


但是如果7号算出了密封号码并“昭告了天下”,但结果大家发现这个数字并不满足他们的输出需求怎么办?这样的情况也很常见。原因可能有以下几点:


1. 公布交易信息时听错了;

2. 记录交易信息时出现笔误;

3. 为了一己之利,记录交易时故意犯错。


不管出于什么原因,7号只有一种选择——丢弃自己这张纸,然后从别人那里复制一份副本放进他自己的文件夹。如果不把这个页面放进文件夹,他就不能继续记录接下来的交易记录,这也就相当于把他从这个交易网络中踢掉了。


说到这里,我相信有的人脑海里又出现了一个疑惑:既然有人计算好密封号码后会公布,为什么我们每个人还要花费那么多时间都去计算一遍?其他人为什么不歇着、坐等公布?


Good question!区块链包含特殊的奖励机制,网络中每个人都有资格获得奖励。第一个计算出密封号码的人能够获得一定奖励。


我们再来简单地假设一下,如果5号第一个算出了页面的密封号码,并获得了1美元的金额奖励,那么这1美元就是凭空出现的。换句话说,假如他账户里本来余额5美元,现在增加了1元,但是这1元没有从其它任何人的账户里扣除,即没有减少任何人的账户余额。


这就是比特币的起源。它是在区块链(分布式账目)上发生交易的第一种货币。如果在这个交易网络上持续努力,你同样也能获得回报,这个过程就是我们所说的“挖矿”。


拥有比特币的人越来越多,这些人一刻不闲着地开始炒这种虚拟货币,不断扩大市场对比特币的需求,再进一步提高比特币的价值。就这样周而复始地把比特币的价格炒得很高。


这种奖励机制让交易网络中的每个人都勤勤恳恳地劳作。


他们把纸张放进文件夹后,拿出一张新的空白纸张,然后再次重复前面的过程——循环往复、永无止境。


假设文件夹中已经有5个被密封的页面。如果我为了谋取私利修改了第二个页面的其中一笔交易会发生什么?前面已经提到过,所有人都可以通过密封号码查出交易内容已经发生改变。但是如果我根据修改的内容重新计算密封号码,然后把新号码贴在纸上,出现这样的情况怎么办?


为了防止有人同时修改页面和密封号码,计算密封号码时有一个小技巧。


如何防止密封号码被重新计算、更改?


还记得之前我假设你有两个盒子,一个包含20893这个数字,一个是用于计算的空盒子吗?在区块链中计算密封号码,实际上存在三个盒子,而不是两个,其中两个是有内容的,一个是待计算填充的。


当三个盒子的内容都填好放入机器后,机器右边输出的结果能够满足我们的需求。


一个盒子里是交易记录、一个盒子是密封号码,第三个盒子是通过哈希函数计算出来的前一页的输出结果。

通过这个小技巧,我们能够确保每一页的密封号码都与前一页的内容相关联。因此如果有人修改了历史页面的内容,他需要改动接下来每一页的密封号码,从而保证整个链路的一致性。


我们假设十个人中有一个人想要恶意修改区块链中的内容(包含记录了交易历史页面的文件夹),那么他需要调整很多页面,计算改动页面之后所有页面的密封号码。我们都知道计算密封号码的工作非常困难。因此,整个交易网络中的一个叛徒最终还是会输个剩下的9个好人。


从这个叛徒想要更改内容的页面开始,他就需要在整个网络中创建另一个区块链,但是这个区块链几乎不可能赶上好人们创建的链路——一个人的力量赶不上剩下9个人的共同努力。因此,有一点非常明确,区块链规模越大,安全性和可信度越高。

但是如果10个人中有6个人都叛变了怎么办?


如果出现这样的情况,这个协议就有点打脸了。这种情况被称为“51%攻击”。如果整个网络中的大多数人都决定叛变,欺骗剩下不到半数的人,那么整个协议就自然而然地走向了灭亡。


这是区块链最大的弱点。尽管这样的情况不可能出现,但我们还是要谨记这个系统的弱点。整个体系都是基于一个假设:整个交易网络中的大多数人都不会叛变。


结局


解释到这里也就差不多了。还请亲爱的们再回头看看百度百科给出的定义,现在是不是理解起来容易很多了?


如果还有人问起到底什么是区块链,比特币的运作机制是怎样的,我相信本文的读者都能够解释给更多的小白们听啦。


专题

本专题做内容收集,如果你信了,希望不要上当,如果不信,希望不要错过发财的机会

最新资讯

区块链+供应链金融,助推云投铁路转型发展

“2018国际区块链发展创新大会”在北京圆满闭幕,通过对各级政...针对公司开展供应链金融和区块链业务与参会人员进行了研究....

车险拒赔的情形都有哪些?

尽管保险合同上明确规定了保险公司的职责和车主的权利,然而,...工伤报酬、刑辩行诉(民告官)的非讼事务办理和诉讼代理;接受...

扫黑除恶案件认定规则大整理

扫黑除恶案件认定规则大整理作者:参考君来源:“法律实务参考”公号关于黑社会性质组织犯罪,主要规定在刑法的第294条,共有5...

银保监会落实三定方案:陈文辉调任社保基金会副理事长

副主席陈文辉将出任全国社会保障基金副理事长.2017年4月,在...放开定价和放开保险牌照申请变成了兴风作浪的手段,大肆售卖万...

【重磅干货】黄奇帆:过度紧缩的去杠杆非常糟糕会造成严重的经济箫条

二是金融业增加值占GDP比重.2005年,我国金融GDP比重只有4...作为金融监管,就需要设立禁区,避免各类金融工具的过度使用,...

媒体看华泰|董事长谈价值成长与公司治理,“小小铅笔”走进四川峨边,还有……

公司治理是金融业改革与发展的一个核心命题.在今年4月召开的...国有控股企业易受相关方面的过度干预,民营控股企业易受大股东...

绿色债及绿色ABS研究

资产支持证券不以公司作为承担还款责任的债务主体,而是剥离出...则企业就可借助发行绿色资产证券实现低成本融资.另外资产支持...

依托自贸区创新,上海发布《关于本市积极推进供应链创新与应用的实施意见》

规范稳妥发展供应链金融1.推动供应链金融服务实体经济.鼓励商...大型成套装备等行业选择一批龙头企业,按照产品全生命周期理念...

城投企业土地注入方式归纳

但需注意城投购地资金大多为融资形成的债务资金,需要偿付,实...张经理陆家嘴浦东南路256号华夏银行大厦绿色融资租赁...

储雪俭:供应链金融风控新模式

——上海大学现代物流研究中心主任储雪俭今天跟大家分享用科技驱动供应链金融风控的新模式.主要内容有三个方面.供应链金融的...

随机资讯

新指标透析核心资产:供应链金融实践与创新研究系列1

意欲配置供应链当中核心资产的投资和金融机构,也应随产业的变化而调整财务分析和关键指标、强化考察资产标的经营决策者的战略...

金融科技周简报0901-FinTechCTOClub

大战AI与银行针锋相对8月23日,百度金融拿到公募基金销售牌照...代其存储用户的资产.然而,交易所存款账户中每个专门用于特定...

上海发布推进供应链创新意见,目标成为具有全球影响力的供应链资源配置中心

金融、贸易、航运、科技创新“五个中心”建设,依托中国(上海...健全政府部门信用信息共享机制,研究建立基于供应链的信用评价...

金融界大降薪,券商民工到手工资打5折……

就在前几日,国泰君安证券研究所所长黄燕铭辟谣裁员降薪,这不,华融证券员工又传出“大多降薪幅度在40%-60%,平均降幅50%...

贝瓴实业丨资本巨头竞入供应链金融区块链加持擦出新火花

华夏银行更是对星贝云链提供高达数百亿元的授信,成为国内首家与银行战略合作共建的基于区块链的供应链金融平台,并刷新国内商...

合法合规解读:百度拿下基金销售牌照!“后来者”能否搅局?

加上刚刚拿下基金销售牌照的“北京百度百盈科技有限公司”,...向中国证监会申领经营证券期货业务许可证,在取得经营证券期货...

金瑞有色研究|以史为鉴08年金融危机下的铜市场回顾及定价逻辑解析

以史为鉴08年金融危机下的铜市场回顾及定价逻辑解析金瑞期货研究所唐羽锋摘要平衡表能解决价格是否合理,并判断价格大致方向...

合作签约丨宝象金融与常松集团签署战略合作协议,发力供应链金融

共同见证这一重要时刻.达成合作后,宝象金融将以江苏常松集团为中心,为其上下游企业提供金融服务,推动绿色供应链金融的创新...

供应链金融成资本热点,掌握核心竞争力的星贝云链怎么玩?

腾讯等互联网巨头,以及海尔、TCL、苏宁等传统大企业为代表.而随着更多资本推动,预计到2020年,国内供应链金融市场规模将接...

全球260家独角兽全景图:估值总额近8400亿美元,中美占据主导!

中国现行金融牌照监管梳理金融科技系列研究:京东金融深度研究...关于区块链真相麦肯锡:区块链技术在保险行业中的应用点滴科技...

资讯评价
经典 | 垃圾
资讯评价