前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Youtube 网红老师带你看懂区块链的作用丨附中字视频

Youtube 网红老师带你看懂区块链的作用丨附中字视频

作者头像
CDA数据分析师
发布2018-02-23 09:54:40
8380
发布2018-02-23 09:54:40
举报
文章被收录于专栏:CDA数据分析师

翻译/校对: Mika

本文为 CDA 数据分析师原创作品,转载需授权

Youtube 的科技网红Siraj以风趣幽默的方式讲解科技热点而备受追捧,在这期内容中他讲到了近年来大热的区块链。

附有中文字幕的视频如下:

区块链的作用

视频内容

针对不方便打开视频的小伙伴,CDA字幕组也贴心的整理了文字版本,如下:


大家好,我是Siraj。这期我们讲讲不太一样的内容,那就是区块链,以及如何利用它来提升AI。

Internet Protocol Suite

万维网只诞生了几十年,而且发展了好几个数量级。我们共同定义了当中沟通的标准,称为互联网协议族(Internet Protocol Suite)

最低层的链路层把数据放到线上,然后互联网层发送数据,接着传输层保持数据,之后应用层进行抽象,以我们所熟知并喜爱的APP的形式。对机器这运行得很好,但是当中缺失了一层。

那么有哪种协议能让这一过程不仅仅是交换数据,而且还交换价值呢?

当下的主流方法在前因特网时代就已经发明了,需要使用到集中式的清算所。有时机器需要等很多天,才能实现款项的转移。但是在其他方面,它们相互间以难以置信的速度进行交流。如果它们能够相互发送微支付,就像电力、存储空间和计算,这些都无需中间人的介入。

比特币和其他加密货币能够解决这个问题。它们将作为用于值转移的第五个协议层。其背后使用的区块链技术使这一切都成为可能。区块链首次让机器同意进行值转移,而无需中央机构介入。

在现实世界中,如果我创作了一幅画,只有我自己拥有这幅画。但在互联网上,如果我创建了一幅数字绘画,你可以复制它,然后我们俩都拥有这幅画。如果不通过记录这幅画拥有权的中央服务器,我们没有办法证明谁拥有它。我们必须信任服务器,即中间人

但区块链让我们以分散的方式达成共识,从而避免坏人错误地宣称所有权。不仅仅用于绘画,还可以适用于任何资产,比如比特币。

如何用来改善AI

但怎么用它来改善AI呢?

一个用例是给数据集和机器学习模型赋予名声,如何知道你使用的数据和预先训练的模型是好的,并且没有被篡改呢?你要相信唯一的来源,除非使用区块链。

DeepMind使用区块链为医疗数据创建了一个公开可验证的审计系统。当中记录了他们对患者数据的处理,因此患者能够知道他们的数据是否被使用以及当中的原因。一旦添加了数据被使用的记录就无法删除,这意味着患者可以验证是否有人篡改过任何条目。

另一个用于训练模型的P2P网络,除开使用AWS和谷歌云等服务训练AI,想象下一个系统,人们可以出租多余的计算能力帮助他人训练模型,以获得TensorCoin作为报酬。或者是完全由AI运行的公司。

区块链让数据库分散化,如果AI存在区块链中没有人能够控制它。那么它能在网络上作为独立实体存在。支付它所需要的服务,寻求最初的一系列规则。

一个例子就是自动驾驶汽车网络,完全由AI运行和维护。

让我们用Python构建简单的区块链,以便了解这个出色的数据结构的原理。

区块是什么

首先让我们定义下区块是什么。

为了简单易懂,可以说每个区块代表一个简单的交易,两台机器之间值的转换。根据一些重要的属性,对区块在其类别中进行定义。

序列号代表了其在一系列区块中的位置,时间戳表明其创建的时间。还储存了发送者定义的数据,以及两个哈希值。一个是前一个区块的哈希值,另一个是自己的哈希值。区块的哈希值具有双重目的。这是其唯一的ID,并验证数据的完整性。

这里我们使用了流行的加密哈希算法SHA256,为每个区块生成一个256位的签名。

如何生成区块

那么区块是如何生成的呢?

用户在交易中提供一些数据,所以我们将其作为生成函数中的唯一参数。由于每个区块都是有顺序的,我们必须提取上一个区块,找到这个区块的序列号和哈希值。也给它一个时间戳,因此我们知道它是何时产生的。

因此每个生成的区块通过储存其哈希值指向前一个区块。这是一连串的区块,区块链。

第一生成的块称为创世区块,我们通过编写硬代码在其函数中定义属性。我们就用它来对区块链初始化,并将其存储为内存列表。

还记得我曾说过,区块的哈希值既作为身份有能够验证其完整性。我们可以用哈希值来确定新产生的区块是否有效。

给出一个新区块,以及上一个区块。首先我们可以通过其序列号检查顺序,然后可以检查其上一个哈希值,是否与已经验证的前一个区块相符。最后计算新区块的哈希值,确保符合它存储的哈希值。如果通过检测,那就被验证了。

假设所有节点都存储了区块链的副本,我们需要有办法选择应使用哪个区块,以防它们间存在矛盾。假设两个节点生成了同一个区块数字,我们的解决方法是选择区块最多的区块链。因为它存在的时间更长,则更有可能是真实的区块链。

对于新的区块,我们会检查它在编码的方式上是否有效。如果它有更多的区块,则用新的代替我们的区块链。否则我们将认为其无效并拒绝。

因为每个节点均存储区块链的副本,而且当发生交易时会不断生成区块。我们需要某种方法保持每个节点的同步,为此当生成新的区块时每个节点会将该信息传播给其他节点。

当一个节点连接到新的节点,它会查询其最新的区块。当遇到比现有区块指数更大的区块时,它会将区块添加到现有的区块链上,或者查询其整个区块链。

我们可以对节点进行封装,从而用户和其他节点能够进行查询。这时要通过创建HTTP服务器。我们能够对一些操作创建端点。一种是在现有的区块链中列出所有的区块,另一种是将用户提供的数据作为参数,创建新的区块。还有一种是通过列出网络中所有其他节点,或者添加新的。

因此用户可以通过HTTP请求控制节点,然后它将通过P2P WebSockets与其它节点进行交流。

这就是我们简单的区块链。它很小,并不包括比特币区块链的所有功能。但它是一个例子。

Sybil 攻击

然而有一个我没讲到的关键特征,即工作量证明算法。面对Sybil攻击我们的区块链很脆弱,这是当不怀好意的人创建许多节点,在网络上获得不成比例的巨大影响。一旦他控制了51%的网络,他可以验证自己的交易,他可以对同一笔钱进行多次使用。

为了防止这种情况,比特币的挖矿节点进行大量的计算,审批每一笔交易,并获得比特币作为计算工作的报酬。

为了让新生成的区块被网络所接受,矿工必须完成工作量证明,当中包括区块中的所有数据,至少51%的节点必须达成共识,从而说明这个新的区块是有效的,能够被加入到区块链中。

那么坏人必须有比网络中半数更多的计算能力,对于比特币来说,这相当于更多的计算能力,要超过世界上500台最快的超级计算机的总和。没有人有那么多的计算能力,连马克·扎克伯格也没有。

这就是为什么比特币的网络仍然是安全的,即使达到50十亿美元市值。每周都会产生新的区块链用于不同的情况。

结语

当谈到区块链,要说的实在太多了。我们才刚刚开始探索,当我们用区块链作为改善AI的方式时会发生什么?

它可以帮助我们检测数据和模型的质量,当对其相互进行训练时能够创建P2P交换,创建之前不可能时间的业务,或者将AI发展的不同方面套现。甚至开发完全由AI运行的独立组织机构。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CDA数据分析师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档