区块链技术的工作原理及应用指南!

自媒体 自媒体

因为面向的读者是不知道相关具体技术实现,只想了解区块链的人群,因此本文避开了一些底层和算法细节,采用比较主观的方式来展示笔者对区块链技术的感性认识。

(原文来自www.77y77.com)

(本文来自www.77y77.com)

总览

(原文来自www.77y77.com)

区块链其实很早就出现中本聪的比特币论文中,它也是比特币的重要概念。

首先来看其定义为:

区块链实际上就是一个去中心化分布式账本数据库。(虽然对于区块链技术是否包含账本还存有争议)

但光从定义上来这么说,大家也还是会一头雾水,(恩?什么是去中心化?什么是分布式账本数据库?)

那接下来,我们一步步来解读何为区块链。

首先要讲的就是去中心化。

去中心化

首先我们先建立一个简易的中心化交易。

你在淘宝购买一个牙刷到收货。大概的过程是:

在这个过程虽然只有你和卖家在做交易。但这笔交易其实还牵涉到了支付宝这个第三方。这在其中就无形增添了许多成本和泄露隐私的风险。

因此考虑极端情况,如果支付宝跑路了或者是拿了钱不却不承认你的交易,那么你就悲剧了。

而去中心化的处理方式就要显得简单很多,你只需要和卖家交换钱和牙刷,然后双方都声称完成了这笔交易,就OK了。

可以看出在某些特定情况下,去中心化的处理方式会更便捷,同时也无须担心自己的与交易无关的信息泄漏。

其实如果只考虑两个人的交易并不能把去中心化的好处完全展示出来,设想如果有成千上万笔交易在进行,去中心化的处理方式会节约很多资源,使得整个交易自主化、简单化,并且排除了被中心化代理控制的风险。

去中心化是区块链技术的颠覆性特点,它无需中心化代理,实现了一种点对点的直接交互,使得高效率、大规模、无中心化代理的信息交互方式成为了现实。

当然,上述的例子有一个很大的潜在问题:

没有了权威的中心化代理,怎样保证每笔交易的准确性和有效性呢?

比如:如果没有了权威的中心化代理,张三某一天借了我100块钱,但是不还钱还不承认怎么办?这里就引出了区块链的其它特性。

既是难题也是特性:两个基础难题

在去中心化以后,整个系统中没有了权威的中心化代理,信息的可信度和准确性便会面临问题。

第一个基础难题:两军问题

通俗来讲,即是,两个军队互传消息是无法在最后保证对方都能收到最新信息。

例如:A军向B军要补给便发送了消息1。

B军收到1后给A军回话2。

A军则为了表示收到回话2又发了消息3。

..........

如此反复往来就成了无限循环。

出现这种情况的原因就是因为点对点。点对点的通信,双方是无法在这种情况下保证信息的一致性。

第二个基础难题:拜占庭将军问题

在战争的时候,拜占庭军队内所有将军和副官必需达成一致的共识,决定是否有赢的机会才去攻打敌人的阵营。但是,在军队内有可能存有叛徒和敌军的间谍,左右将军们的决定又扰乱整体军队的秩序。

在进行共识时,结果并不代表大多数人的意见。这时候,在已知有成员谋反的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,拜占庭问题就此形成。

放到信息来说,就是去中心化后,在这种情况下如何验证数据传输的准确性。

区块链技术的诞生

现在让我们来一步一步在去中心化的系统中解决这些问题,见证区块链技术雏形的诞生。

我们先来建立一个去中心化的系统,为了方便解释,我们就拿借贷作为例子:

A问B借了100w。

这时,B就向人群大喊:“A问我借了100w。”

A也向人群喊:“我问B借了100w。”

当所有人都听到了后,心里便会默默的记下:哦,A问B借了100w。

此时,一个去中心化的借贷就已经完成了。方便快捷,不需要手续证明欠条,严格来说,甚至不需要信任。

因为哪怕A后来否认借过钱,群众就会站出来说:

“不对,我手机里记录了你xx年xx月xx日x时x分x秒问B借过100w。”

在这个过程中,你也可以将其他东西代入其中。甚至是一个杜撰的虚拟的东西。

比如,工博士向人群中喊:

我创造了2100个查克拉!

我甚至不用去了解查克拉是啥,也不关心是不是有这玩意。只要人群听到,在自己的手机内记录下来“工博士有了2100个查克拉”,于是我就有了2100个查克拉。

从这以后,我便可以声称我给了某人一个查克拉,只要群众收到并且承认这一信息,那我就算完成了这次交易,哪怕世界没有查克拉这玩意。

又过了很久,我凭空创造的查克拉开始流通起来。

但是查克拉一共只有2100个,于是有人动了坏心思,他也在人群中喊:“我有2100个查克拉!”

这该怎么办?如果让他成功,岂不是人人可以伪造查克拉??

于是为了防止这个情况发生,我在创造查克拉的时候,记上了一个标记。即,我在高喊:“工博士有了2100个查克拉”时又加上了“这句话标记为001”。这样以后每一次我交易查克拉都会加上“我给了某某1个查克拉!这1个查克拉的来源是记为001的那条记录,这句话是002。”

这样,就解决了伪造的问题。

这也就是最简单的区块链协议。

“那凭什么让人帮你记录呢?”

于是为了激励大家帮我传话和记账,我决定给第一个听到我喊话并且记录在手机上的人一些奖励:

第一个听到我喊话并记录下来的人,你就凭空得到了1个查克拉,这个查克拉是整个系统对你辛苦记账的报酬,而你记录了这句话之后,要马上告诉其它人你已经记录好了,让别人放弃继续记录这句话,并给你自己的记录编号让别人有据可查,然后你再把我的话加上你的记录编号一起喊出来,供下一个人记账。

当这个规则定下以后,这个系统中一定会出现一批人,他们开始竖着耳朵监听周围发出的声音,以抢占第一个记账的权利。对的,你脑海中是不是又浮现出了“比特币挖矿”的字眼?

“听谁的?”

在这个系统中,如果我和另一个人C几乎同时地喊出一句:“查克拉!”。由于听众所处的位置不同,一定会有人先听到我说的那句话,而另外一些人则先听到C的那句话,如果我们规定只能有一个人说出这句话,那到底这句话是谁说的?

为了解决这个问题,我又追加了新的规则:

每个人在记录小本本的时候,需要脱鞋然后用脚拿笔,在小本本上用正楷体书写!有了这个规定,由于用脚写字难度很大,每个人至少需要10分钟才能写完,而且由于每个人用脚写字的熟练度不通,写完这句话所用的时间也不同,因此一定会有人先写完然后高呼“我写完了!那句话是xxxxxn喊的!”,这样其它正在写这句话的人便会停笔,然后在小本本上重新开始写“那句话是来文写的,上一句的编号是xxx”。

以上便是区块链的应用简单介绍。

最后,我们可以总结得出:

“听谁的”——中本聪破解“拜占庭将军问题”的算法

“在小本本上记录”——比特币挖矿

“脱鞋用脚写字”——比特币挖矿难度

“脱鞋写字速度”——算力

“新的规则”——工作量证明链

自媒体微信号:77y77扫描二维码关注公众号
爱八卦,爱爆料。

Copyright2018.琴琴自媒体资讯站,让大家及时掌握各行各业第一手资讯新闻!