Federated Machine Learning学习笔记(二):区块链技术

最近看文章时,发现FL经常和区块链相结合,可惜小孱弱上了三年大学也只是听说过区块链,并没有真正了解过,简单的学习一下,否则论文也看不下去了。

区块链就是通过密码学的方式形成的一个由集体维护的分布式数据库。

听不懂?没关系,且往下看…

在解释区块链具体是什么东西之前我认为最核心的是要知道“我们为什么要用区块链技术”。

1、区块链的诞生是为了解决什么问题?

在支付宝转账的时候,作为用户的你感觉是把你的钱直接打到对方的账户中。但!…事实是这样的:
在这里插入图片描述
这里的支付宝等公司就是“第三方”,那为什么我们俩转账为什么要有一个“第三方”出现?
在这里插入图片描述
这是阿里巴巴的纪录片《造梦者》中的一段话,ps:下文会多次引用,就可以很好解释“第三方”这个名词,这也是淘宝和支付宝诞生的伊始。换句话说,当时的阿里是被逼做了这个“第三方”,因为当时没有任何一家公司能够担任这样的角色,于是阿里成为了信任的中心,商家和用户因为“信任”,选择把钱给阿里。但是,如果阿里携款潜逃了(尽管不可能…)或者财务运营商出了问题(毕竟是人嘛…)怎么办?如果有一个机器或者一个“超级系统”来做这些事就好了!在互联网技术更新替换了十几年后的今天,区块链出现在我们面前,没错!它就是那个“超级系统"!一个信任的机器。

有了区块链,事情开始变得不一样了。

传统中心化的方式:
在这里插入图片描述
而区块链,被称为去中心化的方式
在这里插入图片描述
在去中心化的网络下,每个用户之间都可以是直接联系的,不再有任何第三方的参与,用户间的转账就像手递手付现金一样,这也是为什么比特币会被称为”电子现金“。

好了,现在A已经把钱转给B了,那么谁来记这笔账呢?之前有支付宝帮我记账对账,会统一存在支付宝后台系统中。为了让所有用户的交易都被记录下来并且账目都是正确的,支付宝会为此付出巨大努力。看看支付宝的初期…
在这里插入图片描述
每天1000笔的账单,人工对账就已经很痛苦了。以现在支付宝的体量,每天少则几十万的账单,即使是系统对账也难免漏单,并且要付出相应的人力、物力来维护这一套非常复杂的收支清算系统。说了这么多,那区块链是怎么对账的呢?答案是:没有!在区块链的网络中根本不需要对账,零清算,因为区块链中的每一个节点(就是一台计算机或理解为一个用户)自己都有一个账本,这个账本是实时更新的,区块链网络中发生的任何交易都会被记到你自己的账本中,没错,别人的帐你也有,但是你是不知道这个人是谁的,因为他们统一都长这个样子:

0x d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592

这就意味着,以前由一个中心化的机构帮你记账对账,现在由每一个网络中的参与者帮你记账,大家都有同一个账本。如下图
在这里插入图片描述
每个人拥有同一个账本,即使你篡改了你自己的账本,让你的账上多了1亿,可是51%以上的账本中你的账户还是1分钱,那就说明你的帐上余额就是1分钱,无法抵赖。当然,如果你能控制网络51%的人在账本中帮你把一分钱变成1亿,你就能获得一亿,但基本上就要动用举国之力了…骚年,你确定你可以?

这就是为什么大家说区块链网络是安全的,因为攻击成本太过巨大,打个比方:比特币现在市值80亿美元,如果你想攻破它并得到这80亿美元,你可能要花费200多亿美元…

说了上面这么多其实就是想说明区块链的几个特性:

  1. 去中心化,没有第三方中介,一切都由程序来完成。
  2. 安全性,主要体现在分布式、51%攻击,即使一个节点被攻击或宕机也不会影响网络的运行。
  3. 最核心的就是:去信任。一切社会行为都要建立在”信任“的基础上,这也是区块链解决的最根本的问题。

区块链的运行方式

首先,中本聪很清楚建立一个支付系统的信用必须解决防止“重复支付”问题,也就是不能造假币。中心化的信用系统是靠国家机器防止造假币。“比特币”怎么办呢?中本聪的伟大创新是给每一笔交易“盖时间戳”(timestamp)。每十分钟一个区块(block:相当于网络账簿),把这十分钟的全网交易都正确的盖上时间戳。问题是谁来盖呢?中本聪并没有假设互联网上都是雷锋,他同意亚当.斯密的观点:市场上的人是贪婪的。他让所谓自称“矿工”的人去竞争这十分钟一个区块的记账权,竞争的规则就是正确记账的同时要去解SHA256难题,谁能证明自己的计算机算力最快(所谓PROOF OF WORK 机制),ta就能竞争到这十分钟区块的合法记账权,并得到二十五个比特币的奖励。这就是所谓俗称的“挖矿”过程,实际是建立一个全网总账——区块链的去中心化信用过程,所以矿工更本质的职能是“记账员”!

中本聪在其比特币白皮书中,比较详尽的叙述了这个信用系统建立的过程:

第一步:每一笔交易为了让全网承认有效,必须广播给每个节点(node:也就是矿工);

第二步:每个矿工节点要正确无误的给这十分钟的每一笔交易盖上时间戳并记入那个区块(block);

第三步:每个矿工节点要通过解SHA256难题去竞争这个十分钟区块的合法记账权,并争取得到二十五个比特币的奖励(头四年是每十分钟五十个比特币,每四年递减一半);

第四步:如果一个矿工节点解开了这十分钟的SHA256难题,ta将向全网公布ta这十分钟区块记录的所有盖时间戳交易,并由全网其他矿工节点核对;

第五步:全网其他矿工节点核对该区块记账的正确性(因为他们同时也在盖时间戳记账,只是没有竞争到合法区块记账权,因此无奖励),没有错误后他们将在该合法区块之后竞争下一个区块,这样就形成了一个合法记账的区块单链,也就是比特币支付系统的总账——区块链。

一般来说,每一笔交易,必须经过六次区块确认,也就是六个十分钟记账,才能最终在区块链上被承认合法交易。以下是比特币的记账格式:

所以所谓“比特币”,就是这样一个账单系统:它包括所有者用私钥进行电子签名并支付给下一个所有者,然后由全网的“矿工”盖时间戳记账,形成区块链。

发布了186 篇原创文章 · 获赞 13 · 访问量 9279

猜你喜欢

转载自blog.csdn.net/csyifanZhang/article/details/104691745
今日推荐