深度学习
我们在前面已经介绍过了,区块链系统是一个底层的分布式存储系统。在讨论区块链系统和大数据应用之前,我们先来看一下区块链上的数据。
区块链的仪表盘
Dashboard(仪表盘)的原意是一个包含各种测量仪表的平板,而在商业智能和大数据领域,仪表盘指的是直观展示度量信息,特别是一些关键性能指标的数据展示工具。
下面介绍比特币系统上的一些关键数据,如下表所示。
比特币系统上的24小时数据
(来源:blockchain.info)
开采区块数 | 179 |
区块生成间隔 | 8.04(分钟) |
新币开采量 | 4475 BTC |
交易费总量 | 54.20529097 BTC |
交易次数 | 218920 |
转出总量 | 2833385.84166185 BTC |
估计交易量 | 331577.74697724 BTC |
估计交易量(USD) | 123645341.85 USD |
市场汇率 | $372.9 USD(加权平均) |
总交易量 | $2134197.47 |
总交易量 | 5723.24 BTC |
总矿工收入 | $1688864.10 |
交易费收入占比 | 1.20% |
在总交易量中的占比 | 1.37% |
每次交易均摊成本 | $7.71 |
难度系数 | 120033340651.24 |
哈希计算速率 | 1068073261.37 GH/s |
如果我们只是看比特币系统本身,则上面承载的数据量并不算大。
截 至2016年2月3日02:00,比特币系统上区块的总数量是396342个,约为40万个。每个区块的大小目前限制为1MB,所以从理论上讲比特币区块 链系统的最大数据量为1MB×400000,大约为400GB。不过实际每个区块的数量大小不等,而早期所产生的区块是远远小于1MB的。
从下图中可以看到,第一个区块的大小只有0.2KB。
如下图所示,第10000个区块的大小也只有0.2KB。
如下图所示,第100000个区块的大小也只有0.93KB。
不过根据最近的结果,近期生成的区块大小普遍都超过了900KB,以至于在比特币社区中出现了要修改区块大小限制到20MB的呼声。
区块链系统的数据瓶颈
从区块链的仪表盘上我们看到,在比特币区块链系统上的数据量并不算大。在blockmeta.com中查看一下具体数据。
从下图中我们看到,从比特币的第一笔交易,到笔者在写本节内容时,总的交易量不过为107692312条,平均每个区块中包含271.6条交易,而整个完整的区块链大小是54.04 GB。
作为对比,蚂蚁金融服务集团的数据显示,在2015年“双十一”期间,支付宝共完成7.1亿笔支付。支付峰值出现在凌晨0点5分1秒,达到8.59万笔/秒。
也就是说,整个比特币交易系统从创始到今天的所有交易笔数约为1亿条,还不到支付宝在2015年“双十一”当天交易笔数的七分之一。而按照区块链上每秒有7条交易记录的峰值计算,支付宝的峰值数据是比特币区块链的10000倍还多。
一个更好的对比可能是VISA信用卡在网络上的数据:
如下图所示,比特币的吞吐量和VISA信用卡在网络上每天1.4亿条的交易记录或者每秒16000条的交易记录相比,是可以忽略不计的。那么在今天,比特币区块链上的吞吐量究竟有多大呢?让我们来计算一下。
如下图所示,每条交易的平均大小约为590个字节(Byte)。如果区块大小限制在977KB,那么可以容纳的交易数量为1667条。按照10分钟产生一 个区块的速度计算,每天可以产生144个区块,也就是最大能够记录240086条交易。将其除以每天的秒数24×60×60秒,答案是比特币区块链最高每 秒记录2.8条交易。
更加糟糕的是,在早期的区块链客户端软件上,区块的大小设定为732KB(750000 bytes),所以如果按照这个设定,吞吐量会降到最高每秒只有2.1条交易。
因为用的是平均数,所以这里计算的是比特币区块链每秒平均处理能力,并不是峰值的情况。如果每条交易的字节数比较小,而正好又比较快挖出了一个新的区块,那么吞吐量会略有提升,不过在数量级上是不会发生变化的。
从下图中的曲线来看,比特币区块链上每天的实际交易量已经接近系统的瓶颈。如果区块大小和每条交易的平均大小不发生变化,则有可能会导致交易被记录的时间产生大量延迟。
所以单独从系统本身来看,区块链系统在今天还没能够得到大数据的验证。下面的几个问题是我们需要通过实验来验证的。
区块链系统能否承载大规模的数据量。
区块链系统能否承载高并发的交易量。
区块链系统能否支撑高并发的检索和查询。
在比特币以外的实际应用场景中,包括互联网金融和电子商务,并发的交易量远超今天比特币区块链网络上运行的交易量,而更大数量的交易意味着有更大数量的数据。
按照中本聪的初始设计,交易的完整记录都是需要在网络上广播的。因而,庞大的交易规模和数据区块的全网广播产生的庞大流量是有一定冲突的。
在这里必须要提出笔者的观点:
实现实时交易系统不能光靠区块链技术本身,还需要其他的技术作为辅助。在目前,区块链技术更好的用途可能是在后台的交易清算和核算系统。
第 2章详细介绍了区块链背后的算法设计。在原生态的区块链系统上,交易需要“矿工”确认才能真正入账。也就是说,虽然我们有理论上的每秒有多少条记录的数 值,每笔交易依然至少需要大约10分钟一个新的区块生成的时候才能被确认。因而如果一个系统有实时性的要求,则区块链技术需要和其他的技术互相配合来完成 这个要求。
从PaaS到BaaS,区块链和云计算
从云计算的发展历史来看,微软的动作并不够快。微软的Azure云平台在研发上起步较晚,在市场上落后于竞争对手Amazon的AWS,而后者已经成为互联网创业者事实上的首选平台。不过,如果仅从区块链技术的角度考虑,则微软的Azure发展速度倒是非常快。
2015年11月,据路透社报道,微软联合纽约初创公司ConsenSys,推出了基于云的区块链技术平台,提供BaaS(Blockchain as a Service)服务。
微软Azure的美国金融服务技术战略部门主任Marley Gray认为区块链以及相关的系统发展非常迅猛,他说:
“我 们的企业用户将可以部署私有、半私有,或共同体区块链(Consortium Blockchain)网络,也可以通过Azure来部署公共的以太坊节点。我们期待,无论是‘云’端还是本地,或者是混合的分布式账本的开发、测试和部 署领域,微软的Azure都将会做到最好。”
其实笔者最感兴趣的是微软提供的 IDE(Integrated Development Environment,集成开发环境)。虽然区块链上的开源开发者们不见得对微软有多少好感,不过我们必须要承认无论是当年的Visual Basic,还是后来的Visual C++、C#平台,微软的IDE能够提供世界上最好的开发、测试工具组合。
微 软的BaaS平台目前的合作伙伴是ConsenSys,不过区块链技术在飞速发展,它在未来一定不会只有一家合作伙伴。笔者和微软云合作总监Alfred 做过深入的探讨,微软从来在意的就是生态圈,它们希望能有更多的软件供应商在微软的Azure平台之上提供服务。BaaS提供的是基于区块链的服务,微软 会把底层的区块链基础打好,而做各式各样基于区块链的应用则是合作伙伴们的事情。
ConsenSys遵循的是以太坊协议,用户可以输入https://www.ethereum.org/访问以太坊的首页,如下图所示。
以太坊前沿版本的标志
(来源:https://www.ethereum.org/首页)
如Ethereum Frontier(以太坊的前沿版)的首页所示,以太坊的重点是在“Decentralized”(去中心化)上。而其第二个关键词是 “platform”(平台),也就是说以太坊的目的是要做一个软件平台,让更多的人能够在这个平台上开发更多的应用。
以太坊是一个基于区块链系统的平台,不过它不会是唯一的一个。我们期待更多的牛人加入这个领域,搭建出更多具有DACT特性的区块链平台。
在本书的第7章会提到半开放式的分布式账本。半开放式的分布式账本中的数据量比今天的比特币区块链上的数据量不是多一点,而是多几个数量级。在这样的情况下,采用全开放式的区块链系统是无法承载的。
按照比特币区块链系统全账本的数量为45GB来计算,当交易量提升100倍的时候,系统上的账本数量会快速到达TB(GB的1000倍)这个层级。在全网上同步1000GB的数据作为一个完整的账本对于系统的压力并不是中本聪当年所设想的使用场景。
借力于区块链的DACT特性
数据会说话,而且数据是不会骗人的。当然,我们说这话的前提是数据的来源是真实可靠的。
当我们有了足够的数据之后,我们就可以不再依赖主观判断,而让数据成为裁判。在理想情况下,如果我们能够追踪一切数据,那么我们的所有决策都可以理所当然地基于数据来做判断。
商务运营示意图
在理想情况下,整体战略、目标和商务驱动都是基于数据的,而所有的衡量标准和结果也都是基于数据的。
笔者在第1章中解释过区块链的DACT特性:
Distributed(分布式的)
Autonomous(自治的)
Contractual(按照合约执行的)
Trackable(可追溯的)
对在系统中执行商业智能来说,区块链的Contractual(按照合约执行的)特性是最关键的。而我们的商业智能会为区块链系统上运行的智能合约提供最可靠的数据支撑。
简单地说,智能合约做的工作其实如下图所示。
所谓智能合约,指的是当一系列条件满足之后,合约条款会被不折不扣地自动执行。也就是说,智能合约会使区块链系统拥有商业智能。
大数据对于区块链系统的安全性防护
在第2章提到过,区块链系统的安全问题其实并不是绝对的,特别是当面临的攻击是实时性的APT(Advanced Persistent Threat,高级的持续攻击)时。当面临APT攻击时,用户所面临的攻击和威胁将是长期的和持续的。
所谓“道高一尺,魔高一丈”,彻底预防APT攻击是不可能的。使用大数据进行监控是一个很好的方法。RSA执行主席Art Coviello就曾经说过:“我们应该从防御模式转移,大数据能让你更快速地检测和响应。”
有的时候,我们面对的攻击在严格意义上来说并不见得是传统意义上的攻击,只是可能存在的误操作或者潜在会引起争议的问题。因为区块链系统的DACT特性,在系统上的操作是不可逆的,所以运用大数据的方式来做防护是我们的唯一选择。
下图来源于Richard Gcndal Brown的博客。
哪个是真正的IBM股票
(来源:http://gendal.me/2014/12/03/identity-and-the-blockchain-key-questions-we-need_to-solve/)
在 下图中,一个投资者想要购买IBM的股票,不过当他在区块链交易系统中输入“IBM”之后,除真正的IBM股票外,还出现了一堆浑水摸鱼的其他可交易的资 产。如果他的选择是一个假的IBM股票,则系统本身是无法阻止他进行交易的。而且更糟糕的是,在区块链系统上,一旦交易发生,则是不可逆的!
不 过,如果在区块链系统之上添加了对每个用户的用户画像和行为分析,我们就会知道他想要购买的其实是在NYSE上有交易的,市值约为1200亿美元的IT公 司的股票。系统会要求他再次确认他是要购买位于Scamville的IMB Computers公司的股票,还是如下图所的IBM股票。
IBM股票的详细信息示意图
(来源:http://finance.yahoo.com)
来源:我是码农,转载请保留出处和链接!
本文链接:http://www.54manong.com/?id=850
微信号:qq444848023 QQ号:444848023
加入【我是码农】QQ群:864689844(加群验证:我是码农)
全站首页 | 数据结构 | 区块链| 大数据 | 机器学习 | 物联网和云计算 | 面试笔试
var cnzz_protocol = (("https:" == document.location.protocol) ? "https://" : "http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1276413723'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s23.cnzz.com/z_stat.php%3Fid%3D1276413723%26show%3Dpic1' type='text/javascript'%3E%3C/script%3E"));本站资源大部分来自互联网,版权归原作者所有!
评论专区