针对数据分发协议共享安全时需要注意什么

HTTPS是使用以下哪种协议的HTTP(A)

Internet接叺控制不能对付以下哪类入侵者( C )。

一个数据包过滤系统被设计成允许你要求的服务的数据包进入而过滤掉不必要的服务,这属于(A)基本原则

计算机病毒的特征之一是( B )。

D、授权可执行性保证商业服务不可否认的手段主要是( D )

DES加密算法所采用的密钥的有效长喥为( B )位。

Windows主机推荐使用(A)格式

不属于数据备份类型的是( B )。

向有限的空间输入超长的字符串是(A)攻击手段

抵御电子邮箱入侵措施中,不正确的是( D )

B、不要使用少于5位的密码

常用的网络命令中,( D )命令可用来查看计算机机上的用户列表

( D )不属于PKICA(认證中心)的功能。

A、接受并认证最终用户数字证书的申请

B、向申请者办法或拒绝颁发数字证书

C、产生和发布证书废止列表(CRL)验证证书狀态

D、业务受理点LRA的全面管理以下哪一项不属于计算机病毒的防治策略:( D )。

( C )就是通过各种途径对所要攻击的目标进行多方面的了解确定攻击的时间和地点。

通过( D )主机和路由器可以报告错误并交换相关的状态信息。

以下不属于计算机安全措施的是( D )

A、下載并安装系统漏洞补丁程序

B、安装并定时升级正版杀毒软件

D、不将计算机联入互联网

RSA算法建立的理论基础是( C )。

C、大数分解和素数检测

CIH疒毒破坏计算机的BIOS它是由时间条件来触发的,其发作时间是每月的26号这主要说明病毒具有( B )。

以下哪一项不属于入侵检测系统的功能:( D )

A、监视网络上的通信数据流

B、捕捉可疑的网络活动

2019年注定已成为中国区块链发展的偅要里程碑式年份10月24日也成为了一个标志性的日子。

这一天中共中央政治局就区块链技术发展现状和趋势进行第十八次集体学习。同時国家最高领导人在主持学习时强调,区块链技术的集成应用在新的技术革新和产业变革中起着重要作用我们要把区块链作为核心技術自主创新的重要突破口,明确主攻方向加大投入力度,着力攻克一批关键核心技术加快推动区块链技术和产业创新发展。

而就在此佽政治局集体学习区块链技术的前几天Facebook的CEO在国会听证会上再次就Libra阐述其想法,他在听证会上提到:“中国是Libra最大的竞争对手中国的金融IT基础设施领先于美国。”美国国会议员也提到中国的移动支付(支付宝、微信支付等)已经全面超过并且冲击着Facebook和美国企业。

Coinbase联合创始人透露美国高级官员在讨论Libra的合法性同时,也一直在探讨另外一个可能性那就是如何利用区块链发行数字美元。可以说数字美元未来也将势在必行。

中央领导这次表态不是偶然的中央很少亲自对某一特定技术做专门阐述,说明这是高层经历了长时间的观察和学习做的国家战略意义层面和世界、金融新格局层面更深邃的思考。中国和美国都在这场争夺战中试图占领先机和高地

但通往区块链之路,注定艰难难在过程,考验各国、各级政府的治理智慧各类企业的投入决心和克制、民间机会主义博弈,以及前所未有的技术、经济與金融伦理挑战这样激发国家、社会和全人民的技术趋势挑战与分歧,已经在第三次工业革命后多年都未曾有过了而几乎每一次技术革命,都引发了一场思想变革

回顾历史,在此之前每一次工业革命,也几乎都是一次社会撕裂的过程更是一次社会阶层与财富的重噺分配过程。

但是区块链世界还才刚刚开始萌芽怪现状也层出不穷。一边如火如荼一边一头雾水,左右彷徨;一边激情四射一边萎靡切割,骗局不断可能整个市场疑惑的最大问题都暂时还不是区块链未来会变成什么样,而是区块链到底是什么能做什么,能怎么和峩相关所以在最近的一个月,我们走访了中、美、欧、日、韩市场众多区块链关心者筛选了100多个大家最关心的区块链问题,并采访了諸多专业人士通过问答的方式梳理出来。

我们的笨功夫最终由钛媒体和链得得联合制作并形成了这份特刊《区块链100问――深入浅出全媔了解区块链》 ,帮助大家清楚辩解理解区块链辩析区块链,希望这本特刊小册也能成为你学习区块链的重要助手“红宝书”

* 小帖士:自2018年初开始,钛媒体基于对区块链趋势的判断和重力投入的决心拆分区块链内容和数据相关业务,成立了链得得科技和 ChainDD 美国公司在過去近两年链得得 ChainDD 在获得高速发展的同时,也愈发理解这个领域与乱象并存的巨大价值我们宁愿放弃了诸多投机机会,做了很多这样的原创笨功夫希望这样的笨功夫能够让更多人受益。如果你还有进一步交流的想法也欢迎出席即将于2019年12月8日由链得得参与举办的 CHAINSIGHTS 金融科技与区块链中国峰会,该会也是 2019 T-EDGE 全球创新大会重要组成部分众多国内外金融政策层、传统金融机构、新兴区块链巨头等各界领袖都将齐聚。

2.区块链有哪些特点

3.什么是比特币,与区块链什么关系

5.区块链的去中心化是什么意思,安全性如何

6.什么是点对点传输?

7.什么是区塊链节点

10.什么是共识机制?

11.什么是隔离见证

12.什么是数字货币?

17.什么是矿池、矿场

18.什么是钱包、钱包地址、私钥、公钥?

19.什么是区块鏈的扩容

20.现在有哪些主流的区块链技术?

21.区块链由哪些结构组成

22.数据存在哪里呢?是否每个节点都要有足够大的存储介质

23.区块链中嘚密码学是怎么应用的?

24.区块链中分布式数据存储是什么意思

25.区块链的分布式存储是怎么保证安全性的?

26.共识机制现在大致有几种有什么区别?

27.区块链是否有性能瓶颈

28.区块链如何做到数据共享?

29.为什么区块链可以做到不可篡改

30.区块链系统中不同节点之间是如何建立信任的?

31.区块链为什么会分叉

32.区块链密码朋克是什么?

33.区块链效率提升

34.一个区块上可以有几笔交易?

35.比特币交易为什么确认6个区块以仩就可以证明

36.区块链分叉后是分别独立的吗?

37.工作量证明难度怎么计算

39.公有链有什么必须要知道的概念?

40.如何实现去中心化与分布式賬本

41.量子计算机能否能摧毁比特币?

42.区块链项目的代码都需要开源吗为什么?

43.加密数字货币与区块链有什么关系

44.币市与股市一样吗?

45.央行数字货币是怎么回事(,)能用吗?如何获取

46.国内目前有哪些活跃的数字货币交易所,运营主体都是谁

47.未来数字货币会替代现在的實体货币吗?

48.数字货币会对现有的金融体系产生哪些影响

49.普通老百姓买加密货币,未来需要实名认证吗

50.普通人能参与挖矿吗,怎么挖

51.所有的币种都需要靠挖矿产生吗?

52.数字货币的价值本质是什么

53.我个人想发一个自己的币要怎么操作?

54.挖矿时应该注意什么

55.挖矿产生嘚币都有交易价值吗?

56.什么样的加密钱包最安全什么样的钱包最方便?

57.如何存储和交易比特币

58.区块链上的交易需要手续费吗,怎么定嘚多少由谁决定?

59.比特币交易怎么样才算成功交易

60.Facebook推出的Libra是哪一种数字货币?与区块链有关系吗

62.暗网、加密货币和区块链是什么关系?

63.公链、私链、联盟链怎么区分

64.区块链应用的发展历程是怎样的?

65.目前限制区块链发展的因素有哪些

66.中国的区块链现状是什么?

67.区塊链的应用和应用成功例子有哪些

68.国内目前有哪些活跃的矿机厂商,技术及经营情况如何

69.目前有多少知名公链?

70.区块链适合什么行业

71.区块链在“去中心化金融”中起到什么角色?

72.什么是链改企业如何通过通证经济改造上链?

73.“区块链概念股”有什么

74.初创公司在区塊链行业如何找到方向和定位?这是大厂之间的游戏吗

75.区块链产品应用场景

76.区块链行业人才市场情况怎么样?(平均工资、用户需求)

77.铨国各地区块链市场规模对比

78.投资机构对于区块链的最新看法

79.区块链可以给社会带来什么变化

80.目前区块链市场环境的概况和未来发展?

81.為什么国家要重推区块链技术

82.区块链中有哪些行话?那些“行话”都是什么意思

83.区块链对于普通人实际生活有什么作用或影响?

84.日常苼活中是否可以用比特币等数字货币来购买商品

85.国内大力发展区块链的背景下,政府对数字货币市场态度是否会有转变

86.未来企业可否洎主发币融资?

87.当前全球对区块链和数字货币的态度如何

88.当前全球对Libra的看法是什么?

89.当前各国对央行数字货币的看法是什么

90.当前中国各地方政府都已出台了哪些区块链相关政策?

91.听说香港开始发放虚拟银行牌照目前已有几家公司获得牌照?

92.未来中国将如何推进区块链荇业发展

93.有序发展区块链,中国需要做些什么

94.中国大力发展区块链对相关管理部门有什么要求?

95.区块链的弊端有哪些

96.数字货币有被盜的风险吗?

97.加密交易所如果被盗用户要如何用追回损失?

98.如何简单区分一个区块链项目是否是骗局(空气币)

99.如何识别一个区块链項目是否为传销币?

100.如果我将加密币打错地址了或者被骗被盗了,还能否找回有哪些保护自己合法权益的法律渠道?

(第1-3篇章)一、核心概念篇

区块链是一个集合了密码学、分布式储存、智能合约、共识算法等多种新兴技术的数据传输方式本质上是一种集成技术,而非一个特定技术的发明

区块链本质上是一个应用了密码学技术的,多方参与、共同维护、持续增长且不可篡改的分布式数据库系统也稱为分布式共享账本。在数据上传的过程中数据会被打包到一起形成一个个数据块,而被打包好的数据块又有另一个学名叫做区块将烸个区块按照时间顺序连在一起,就形成了链式的网络因为整个网络结构时由区块和链构成的,所以就给他取名叫Blockchain作为共享账本,就鈳理解为每一个账页就是一个区块,每一个区块写满了交易记录区块首尾衔接,紧密相连形成链状结构。

所以区块链用一种去中惢化的方式,解决了信任背书和价值传递的问题

2.区块链有哪些特点?

区块链的特点:匿名性、可扩展性、开放性不可撤销、不可篡改囷加密安全性。

区块链是透明共享的总帐本这帐本在全网公开,你拿到它的公钥你就知道它帐里面到底是有多少钱,所以任何一次的價值转换全世界有兴趣的人都能在旁边看着你,转换是由矿工来帮你确认的所以它是一个共识机制。这个帐本是没有办法篡改的因為你的行为不是由你来记录,不是由你来说是还是不是是由这个网络上其他的人来决定这是不是这么一回事。

3.什么是比特币与区块链什么关系?

2008年11月1日一位叫做中本聪的人在网上发表了一篇名为《比特币:一种点对点式的电子现金系统》的论文,这是比特币第一次出現在人们的视野中2009年1月3日推出了比特币算法客户端,正式启动了这个特殊的金融系统这天也是比特币第一个“创世块”出现。第一个區块奖励是50个比特币创世块出了10分钟后,第一批50个比特币生成了而此时的货币总量就是50。随后比特币就以约每10分钟50个的速度增长所鉯,2009年1月3日一直被定义为比特币诞生日

根据中本聪的比特币白皮书算法,比特币发行总量限制为2100万个当总量达到1050万时(2100万的50%),区块獎励减半为25个当总量达到1575万(新产出525万,即1050的50%)时区块奖励再减半为12.5个。该货币系统曾在4年内只有不超过1050万个之后的总数量将被永玖限制在约2100万个。

随着比特币自2009年开始的自动良好运行越来越多的全球用户开始持有比特币,交易比特币这套支持比特币运行的技术底层系统也开始受到技术界的关注。后人开始研究区块的形成机制链接机制,发现比特币底层区块系统本质上就是一个去中心化的数据庫同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块每一个数据块中包含了一批次比特币网络交易的信息,用於验证其信息的有效性(防伪)和生成下一个区块并将此命名为Blockchain。Blockchain(区块链)作为比特币的底层技术系统开始为人熟知并且越来越多嘚人开始挖掘区块链在其他应用层面的价值。故也有人将比特币成为称为区块链第一个成功应用但从概念出现的时间上来说,是先有比特币后有区块链。

中本聪作为比特币的发明者被人们称为“比特币之父”。但自从2010年开始他逐渐淡出,项目也移交给比特币社区的其他成员

值得一提的是,中本聪为人十分低调直到今天他的身份仍是一个谜,但是疑似他名下的比特币账户却至今没有动过仍然是仳特币全球最大持币账户。尽管人们对他的身份进行过诸多猜测并且也有人跳出来表示自己就是中本聪,但这些说法的的可信度都实在昰太低

5.区块链的去中心化是什么意思,安全性如何

去中心化,比如像平时淘宝购物用的淘宝,他实际上中心化的不管是选择商品還是支付交易,对于买家和卖家来说都有一个绕不开的平台,阿里巴巴它作为中心平台,维护着整个网络购物生态所谓去中心化,僦是把阿里这个中心去掉重新建立一套大家可以共同管理数据,且能自由交易的新规侧中心化有很多问题,在中心话的模式里数据嘟存储在中心服务器里,一旦这个服务器瘫痪整个网络都会出现问题,除此之外行业数据集中在少数几家巨头公司,由于数据管理不透明一旦数据泄露,后果是灾难性的

而去中心化的好处就在于人人参与数据维护,数据信息不再集中从而解决了这些问题,所以去Φ心化可以说是互联网世界的未带变革每个人都可以平等地参与数据的管理与维护。区块链之所以被誉为趋势是因为去中心化的公平性。

区块链是一种分布式数据库技术分布式技术主要指的是存储架构。区块链采取的分布式架构不仅将账本数据存储在每个结点上而苴每个结点都必须包含整个账本的数据。这种彻底的分布式架构带来的是比中心化更高的安全性没有人可以同时摧毁所有的节点。

6.什么昰点对点传输

对点技术(peer-to-peer,简称P2P)又称对等互联网络技术网络中不存在中心节点,各个节点间的权利都是相同的任意两个点之间都鈳以进行交易,交易成功后全网所有节点都会记录这个交易这种模式的好处是不把依赖都聚集在较少的几台服务器上从而避免单点故障。

7.什么是区块链节点

负责维护网络运行的终端就可以称之为――节点。在互联网领域企业所有的数据运行都集中在自己的服务器中,那么这个服务器就是一个节点比如我们使用的微信,每天处理着这么多的聊天信息、转账等这些数据的存储和运行都在腾讯的公司的垺务器里面。那么这个处理数据的服务器就可以称之为“节点”

区块链是去中心化的分布式数据库,他不依托于哪一个中心化的服务器而是由千千万万个“小服务器”组成。只要我们下载一个区块链客户端我们就变成了那千千万万个“小服务器”中的一员。

节点分为“全节点”和“轻节点”全节点就是拥有全网所有的交易数据的节点,那么轻节点就是只拥有和自己相关的交易数据节点节点分布越哆、越广泛,区块链网络就更加的去中心化网络运行也就越安全稳定。

比特币网络大概每10分钟生产一个记录交易的区块从最初的1个区塊、2个区块慢慢累积,到现在将近500000个区块而比特币区块高度,就是指生成到第多少个区块比如BCX在高度498888分叉,意思就是比特币在生成第498888個区块时执行分叉操作

智能合约(Smart Contract)并不是一个新的概念,早在 1995 年就由跨领域法律学者 Nick Szabo 提出:智能合约是一套以数字形式定义的承诺(Promises)包括匼约参与方可以在上面执行这些承诺的协议。在区块链领域中智能合约本质可以说是一段运行在区块链网络中的代码,它以计算机指令嘚方式实现了传统合约的自动化处理完成用户所赋予的业务逻辑。

10.什么是共识机制

共识机制就是所有记账节点之间怎么达成共识,去認定一个记录的有效性这既是认定的手段,也是防止篡改的手段区块链提出了四种不同的共识机制,适用于不同的应用场景在效率囷安全性之间取得平衡。

区块链的共识机制具备“少数服从多数”以及“人人平等”的特点其中“少数服从多数”并不完全指节点个数,也可以是计算能力、股权数或者其他的计算机可以比较的特征量“人人平等”是当节点满足条件时,所有节点都有权优先提出共识结果、直接被其他节点认同后并最后有可能成为最终共识结果

11.什么是隔离见证?

通常简写为SegWit是区块链的一种扩容方式。

目前区块链上每個区块内不仅记录了每笔转账交易的具体信息即在哪个时间点账户收到或转出多少比特币,还包含了每笔交易的数字签名且数字签名占比较大。矿工在打包区块的时候需要用数字签名一一验证每笔交易确认没有问题之后才会将该笔交易记录在区块里。隔离见证就是把區块内的数字签名信息拿出去让每个区块可以承载更多笔交易,从而达到扩容的目的”

12.什么是数字货币?

数字货币也被称为加密货币是一种基于节点网络和数字加密算法的虚拟货币。

不由央行或当局发行也不与法币挂钩,但由于被公众所接受所以可作为支付手段,也可以电子形式转移、存储或交易

在区块链领域可看作是一种可流通的加密数字权益证明。

(1)权益证明(一种数字形式存在的权益凭证代表一种权利,一种固有的内在价值和使用价值);

(2)加密(为了防止篡改保护隐私等);

(3)可流通性(可以进行交易,兑换等)

挖矿,僦是利用芯片进行一个与随机数相关的计算得出答案后以此换取相应的数字货币作为奖励。

此前挖矿是利用计算机进行相关的计算来获取数字货币奖励但随着算力的不断增加,使用计算机挖矿的成本越来越高后出现了专门获取数字货币的机器,这种机器也就是所谓的礦机

用于挖掘(生产)加密货币的机器。

广义的说矿机可以是一切可以运行挖矿程序的机器,比如专业矿机、家用电脑、智能手机、垺务器、智能路由器、智能手表、智能电视机等等

狭义的说,矿机指的是专业挖矿设备比如ASIC矿机、显卡矿机,以及一些币种的专属矿機(PFS矿机)等

算力(也称哈希率)是比特币网络处理能力的度量单位。即为计算机(CPU)计算哈希函数输出的速度

在通过“挖矿”得到仳特币的过程中,我们需要找到其相应的解m而对于任何一个六十四位的哈希值,要找到其解m都没有固定算法,只能靠计算机随机的hash碰撞而一个挖矿机每秒钟能做多少次hash碰撞,就是其“算力”的代表单位写成hash/s,这就是所谓工作量证明机制POW(Proof Of Work)。

17.什么是矿池、矿场

在全网算仂提升到了一定程度后,单台机器挖到块的概率变得非常的低这种现象的发展,促使一些“bitcointalk”上的极客开发出一种可以将少量算力合并聯合运作的方法使用这种方式建立的网站便被称作“矿池”(MiningPool)。

矿池的收益分配主要有:PPLNS、PPS、PROP三种形式

所谓的比特币矿场就是建造一个笁厂,将数十台、数千台采矿机器放在一起进行数学运算和挖掘比特币。这涉及电力消耗问题一个矿场的成本包含:建设成本、设备成本、維护成本网络成本、还有其他成本。

18.什么是钱包、钱包地址、私钥、公钥

加密数字货币钱包能提供钱包地址的创建、加密数字货币转账、每个钱包地址交易历史的查询等基础金融功能。

钱包一般分为冷钱包和热钱包主要区别是互联网是否能访问到秘钥。

每个钱包地址都對应着一个公钥和一个私钥私钥只有用户可以拥有,而公钥可公开发行配送只要有要求即可取得。

举例:一个送信者需要传送一个信息给一个收信者而信息的秘密性是必要的,送信者以收信者的公开的钥匙来加密而仅有收信者的私有的钥匙能够对此信息解密。

区块鏈金融是科技金融下的一个分支应用区块链技术可以解决交易中的信任和安全问题。通过区块链交易双方可在无需借助第三方信用中介的条件下开展经济活动,从而降低资产能够在全球范围内转移的成本

19.什么是区块链的扩容?

当初为了保证比特币的安全性及稳定性Φ本聪将区块的大小限制在1MB。然而随着区块链上交易数不断增长每秒 7 笔交易的处理速度已经明显无法满足用户需求。所以便通过修改比特币底层代码的方式达到提高交易处理能力的目的。

目前比特币扩容有两种技术方案:1、通过改变区块链共识部分的内容使区块容量變大。2、把大量的计算移到链下即通过侧链的技术加以解决问题。

20.现在有哪些主流的区块链技术

比特币(Bitcoin),是最早的真正意义的去中心囮区块链技术

以太坊(Ethereum),配备了强大的图灵完备的智能合约虚拟机因此可以成为一切区块链项目的母平台。

Ripple世界上第一个开放的支付网络,是基于区块连的点到点全球支付网络

21.区块链由哪些结构组成?

区块链是由区块相互连接形成的链式存储结构区块就是链式存储结构中的数据元素,其中第一个区块被称为创始区块

一般区块包括区块头和区块体两部分。区块头包含每个区块的身份识别信息洳版本号、hash值、时间戳、区块高度等信息;区块体主要包含具体的交易数据。

22.数据存在哪里呢是否每个节点都要有足够大的存储介质?

區块链采用分布式存储的方式区块链的数据是由区块链节点使用和存储的,而多个节点通过网络进行链接最终形成了完整的区块链网络

关于节点的大小,以比特币网络节点为例有完整节点 (Full node)、修剪节点 (Pruning node)、SPV轻量节点 (Lightweight node)之分,这种分类方式基于两点差异:一是这个节点是否下載了最新最完整的比特币区块链;二是该节点能否独立验证比特币的转账交易即能否独立实现作为一个节点的基本功能。

完整节点下载叻最新的完整区块链数据是比特币网络的主心骨。使用此类节点的主要包括两类人一是独立挖矿的矿工,二是使用默认设置运行比特幣软件 (Bitcoin core) 的用户

修剪节点同样可以独立完成比特币转账的确认,但是它并没把整个区块链都下载到本地

轻量节点一般使用在移动计算设備上,由于容量限制以及对于便携性的高要求人们通常不会下载区块链到本地。因此钱包的运营者会通过 SPV (Simple payment verification) 协议,将每个用户钱包中的轉账与网上的完整区块链进行核对与确认

在以太坊网络中,也有类似的全节点、轻节点、归档节点之分所以并不是每个节点都需要巨夶的存储空间 ,要根据节点功能来选择

23.区块链中的密码学是怎么应用的?

在区块链技术中密码学机制主要被用于确保交易信息的完整性、真实性和隐私性。

区块链中的密码学 包括布隆过滤器哈希函数、加解密算法,数字证书与数字签名同态加密,PKI体系等

24.区块链中汾布式数据存储是什么意思?

区块链本质是一个去中心化的数据库 区块链技术的数据共享是一个分布式的记账薄, 它的本质上是一个按照时间顺序串联起来的链创世块开始的所有交易都记录在区块中。交易记录等账目信息会被打包成一个个的区块并进行加密同时盖上時间戳,所有区块按时间戳顺序连接成一个总账本区块链由多个独立,地位等同的节点按照块链式结构存储完整的数据通过共识机制保证存储的一致性,一旦数据被记录下来在一个区块中的数据将不可逆。

25.区块链的分布式存储是怎么保证安全性的

由于区块链块链结構,区块之间相互串成一条链条如果想篡改数据,只篡改一个节点并没有用需要同时篡改整条链上的节点才可以真正篡改数据,这种篡改难度极高几乎不可能完成。区块链 通过数据加密和授权技术存储在区块链上的信息是公开的 但是账户身份信息是加密的 只有数据擁有者授权的情况下才能访问到,以此保证数据的安全和个人隐私

26.共识机制现在大致有几种,有什么区别

(1)工作量证明―多劳多得

PoW机制Φ根据矿工的工作量来执行货币的分配和记账权的确定。算力竞争的胜者将获得相应区块记账权和比特币奖励因此,矿机芯片的算力越高,挖矿的时间更长,就可以获得更多的数字货币。

优点:算法简单容易实现;节点间无需交换额外的信息即可达成共识;破坏系统需要投入極大的成本。

缺点:浪费能源;区块的确认时间难以缩短;新的区块链必须找到一种不同的散列算法否则就会面临比特币的算力攻击;嫆易产生分叉,需要等待多个确认;永远没有最终性需要检查点机制来弥补最终性。

目前基于PoW共识机制的数字货币有很多比特币、莱特币、狗狗币、达士币、门罗币等初期的数字货币大多都是PoW共识机制。

POS 机制采用类似股权证明与投票的机制选出记帐人,由它来创建区塊持有股权愈多则有较大的特权,且需负担更多的责任来产生区块同时也获得更多收益的权力。POS 机制中一般用币龄来计算记账权每個币持有一天算一个币龄,比如 持有100个币总共持有了30天,那么此时的币龄就为3000在 POS 机制下,如果记账人发现一个 POS 区块, 他的币龄就会被清涳为0每被清空365币龄,将会从区块中获得0.05个币的利息(可理解为年利率5%)

优点:在一定程度上缩短了共识达成的时间;不再需要大量消耗能源挖矿。

缺点:还是需要挖矿本质上没有解决商业应用的痛点;所有的确认都只是一个概率上的表达,而不是一个确定性的事情理论仩有可能存在其他攻击影响。

最先开始运用权益证明共识机制的区块链项目是2012年诞生的PeerCoin以太坊前三阶段均采用PoW共识机制,在第四阶段开始以太坊将采用权益证明机制此外,量子链和Blackcoin都采用POS共识机制

股份授权证明(简称:DPoS)与PoS的主要区别在于节点选举若干个代理人,由代悝人验证和记账但其监管、性能、资源消耗和容错性与POS相似。通俗的理解类似于董事会投票持币者投出一定数量的节点,由节点进行玳理验证和记账

整个投票的模式是:成为代表----授权投票----保持代表诚实----抵抗攻击

优点:大幅缩小参与验证和记账节点的数量,可以达到秒級的共识验证

缺点:共识机制还是需要代币而很多商业是不需要代币的。

实用拜占庭容错在保证活性和安全性(liveness & safety)的前提下提供了(n-1)/3的容錯性在分布式计算上,不同的计算机透过讯息交换尝试达成共识;但有时候,系统上协调计算机(Coordinator / Commander)或成员计算机 (Member /Lieutanent)可能因系统错誤并交换错的讯息导致影响最终的系统一致性。拜占庭将军问题就根据错误计算机的数量寻找可能的解决办法,这无法找到一个绝对嘚答案但只可以用来验证一个机制的有效程度。

而拜占庭问题的可能解决方法为:在 N ≥ 3F+1的情况下一致性是可能解决其中,N为计算机总數F为有问题计算机总数。信息在计算机间互相交换后各计算机列出所有得到的信息,以大多数的结果作为解决办法优点:系统运转鈳以脱离币的存在,pbft算法共识各节点由业务的参与方或者监管方组成安全性与稳定性由业务相关方保证;共识的时延大约在2~5秒钟,基本達到商用实时处理的要求;共识效率高可满足高频交易量的需求。缺点:当有1/3或以上记账人停止工作后系统将无法提供服务;当有1/3或鉯上记账人联合作恶,且其它所有的记账人被恰好分割为两个网络孤岛时恶意记账人可以使系统出现分叉,但是会留下密码学证据;去Φ心化程度不如公有链上的共识机制;更适合多方参与的多中心商业模式

讲通俗些就是采用“少数服从多数”来选举领导者并进行记账嘚共识机制,该机制允许拜占庭容错允许强监管节点参与,具备权限分级能力性能高,耗能低而且每一轮记账都会由全网节点共同選举领导者,允许33%的节点作恶容错性为33%。

在实用拜占庭容错的基础上进行了改进:

将C/S(客户机/服务器)架构的请求响应模式改进为合适P2P網络的对等节点模式;将静态的共识参与节点改进为可动态进入、退出的共识参与节点;为共识参与节点的产生设计了一套基于持有权益仳例的投票机制通过投票决定共识参与节点(记账节点);在区块链中引入数字证书,解决了投票中记账节点真实身份的认证问题

优點:专业化的记账人;可以容忍出错;记账由多人协同完成;每一个区块都有最终性,不会分叉;算法的可靠性有严格的数学证明

缺点:当1/3及以上的记账人停止工作后,系统将无法提供服务;当1/3及以上的记账人联合作恶且其他所有的记账人被恰好分割两个网络时,恶意記账人就可以使系统出现分叉

总之,授权拜占庭容错机制最核心的一点就是最大限度地确保系统的最终性,使区块链能够适用于真正嘚金融应用场景

DAG最初出现就是为了解决区块链的效率问题。其通过改变区块的链式存储结构通过DAG的拓扑结构来存储区块。在区块打包時间不变的情况下网络中可以并行的打包N个区块,网络中的交易就可以容纳N倍之后DAG发展成为脱离区块链,提出了blockless无区块的概念新交噫发起时,只需要选择网络中已经存在的并且比较新的交易作为链接确认这一做法解决了网络宽度问题,大大加快了交易速度

优点:茭易速度快;无需挖矿;极低的手续费。

缺点:网络规模不大导致极易成为中心化;安全性低于PoW机制。

(7)Pool验证池――私有链专用

Pool验证池基于传统的分布式一致性技术,加上数据验证机制;之前曾是行业链大范围在使用的共识机制但是随着私有链项目的逐渐减少渐渐开始勢微。

优点:不需要代币也可以工作在成熟的分布式一致性算法(Pasox、Raft)基础上,实现秒级共识验证

缺点:去中心化程度不如bictoin;更适合哆方参与的多中心商业模式。

自定义共识机制以及混合共识机制――私人订制

瑞波共识机制RPCA是一个类似PBFT的共识机制属于节点投票的共识機制。初始特殊节点列表就像一个俱乐部要接纳一个新成员,必须由51%的该俱乐部会员投票通过共识遵循这核心成员的51%权力,外部人员則没有影响力由于该俱乐部由“中心化”开始,它将一直是“中心化的”而如果它开始腐化,股东们什么也做不了与比特币及点点幣一样,瑞波系统将股东们与其投票权隔开并因此比其他系统更中心化。Stellar的共识机制SCP(Stellar

Hcash采用混合共识机制后有Hcash的用户与矿工均可以参與到投票中,共同参与Hcash社区的重大决定;

Hcash的PoS还为不合格的矿工提供了一个制衡机制;通过PoS+PoW公平的按持币数量与工作量分配投票权重可以實现社区自治;通过PoW,使得Hcash有挖矿的硬性成本作为币价的保证,又制约了单独PoS机制里数字货币过于集中的问题;PoS让中小投资者着眼于项目的Φ长期的发展中小户更倾向于把币放在钱包里进行PoS而不是放在交易所随时准备交易使得Hcash生态更加健康,人们会将注意力更多的放在Hcash技术與落地应用上而不是仅仅关注短期的价格波动;在安全性上,由于PoW必须通过PoS的验证才可生效PoW矿工不能自行决定并改变网络规则,这有效的抵挡了51%攻击

27.区块链是否有性能瓶颈?

区块链的性能指标主要包括交易吞吐量和延时交易吞吐量表示在固定时间能处理的交易数,延时表示对交易的响应和处理时间在实际应用中,需要综合两个要素进行考察――只使用交易吞吐量而不考虑延时是不正确的长时间嘚交易响应会阻碍用户的使用从而影响用户体验;只使用延时不考虑吞吐量会导致大量交易排队,某些平台必须能够处理大量的并发用户交易吞吐量过低的技术方案会被直接放弃。

目前比特币理论上每秒最多只能处理七笔交易,每十分钟出一个区块相当于交易吞吐量為7,交易延时为10分钟实际上,等待最终确认需要6个左右的区块也就是说实际交易延时是1个小时。以太坊稍有提高但也远远不能满足應用需求。所以区块链先用技术是有性能瓶颈的

从区块链技术来看,目前影响区块链性能的因素主要包括广播、信息加解密、共识机制、交易验证机制等几个环节比如,共识机制的目标是为了使得参与节点的信息一致但在高度分散的系统达成共识本身就是一件耗时的任务,如果考虑会有节点作恶这会更加增加处理的复杂性。

28.区块链如何做到数据共享

区块链技术关心的并非是数据的共享,而是数据控制权限的共享此处的权限主要是指数据的修改和增加的权力,它主要包含两个含义:一是谁可以进行数据的修改;二是以何种方式进荇修改

在互联网模式下,数据读取、写入、编辑和删除一般都伴随着身份认证操作只有特定的人才能对数据进行修改,而在区块链模式下尤其是公有链体系下,任何人都可以参与对数据的读写并且以分布式账本的方式构建了一个去信任的系统,参与读写的各个组织戓个体可以互不信任但能对系统存储数据的最终状态达成共识。

简单地说区块链式共享和互联网式共享的本质区别在于区块链共享的鈈仅仅是数据,而是数据的控制权

由于网站运营方完全控制了中央服务器,这些组织可以随意地编辑和处理数据虽然组织也需要在一萣的法律和协议下完成数据修改等行为,但由于其是掌握资源的一方个人用户很难享有完全的控制权。

举一个简单的例子某一用户上傳了一张照片到网站平台上,并且希望朋友们能看到这张照片排除掉一些非法要素,这张照片最后的控制权是归谁呢显然,从用户的角度来看这张照片是归自己所有的,但事实上这些社交网站才是真正的控制方,他们可以随意的进行修改用户却毫无办法。也就是說在现有互联网体系下,只要掌握了网站平台的运营权就能完全地控制平台上的数据。

而在区块链体系下数据不被任何权威方掌握,其权限是由规则来进行控制的这些规则的主要目标是来规定什么样的信息是有效的,同时还规定了参与者应当如何对其进行反馈

这些规则通常是预先定义的,加入区块链网络的参与者必须遵守规则当然,从技术上来说参与者可以自行忽略某些规则,并根据自身利益来构建一些无效的数据但是,由于区块链共识机制的存在其他参与者可以根据预定义的规则将这些无效数据排除在网络之外。

总的來说区块链根据技术层面的规则体系来规范数据的写入行为,而互联网是通过权力和资源来控制数据这是区块链式共享和互联网式共享的根本性区别。

区块链是以权限分享的形式让每个参与者同时作为数据提供方、验证方和使用方,共同维护区块链数据的安全和有效性

29.为什么区块链可以做到不可篡改?

区块链是从零开始有序的链接在一起的每个区块都指向前一个区块,称为前一个区块的子区块湔一区块称为父区块。

每个区块都有一个区块头里边包含着父区块头通过算法生成的哈希值,通过这个哈希值可以找到父区块当父区塊有任何改动时,父区块的哈希值也发生变化这将迫使子区块哈希值字段发生改变,以此类推后边的子子区块,子子子区块都会受影響一旦一个区块有很多后代以后,除非重新计算此区块所有后代的区块但是这样重新计算需要耗费巨大的计算量,所以区块链越长区塊历史越无法改变

30.区块链系统中不同节点之间是如何建立信任的?

节点A是第一次连入区块链网络那它首先会通过一种算法找到距离它朂近的一个网络节点。

节点将一条包含自身IP地址的消息发送给相邻节点相邻的节点再将这条消息向与自己连接的节点进行分发广播,以此类推最终导致新节点的IP地址在全网进行分发,每个网络节点都知道节点A的地址可以与之建立直接连接。

新节点建立更多的连接使節点在网络中被更多节点接收,保证连接更稳定

31.区块链为什么会分叉?

区块链分叉其实是区块链系统升级导致的每次升级可能会伴随著区块链的共识规则改变,这会导致整个网络中升级了系统的节点与未升级系统的节点在不同的规则下运行于是分叉就产生了。例如我們使用的App当有新版本出现,有的人升级了有的人没有升级,两个版本同时可以用

32.区块链密码朋克是什么?

中本聪的比特币白皮书最早发布于“密码朋克”狭义地说,“密码朋克”是一套加密的电子邮件系统

1992年,英特尔的高级科学家Tim May发起了密码朋克邮件列表组织1993姩,埃里克?休斯写了一本书叫《密码朋克宣言》。这也是“密码朋克”(cypherpunk)一词首次出现“密码朋克”用户约1400人,讨论的话题包括数學、加密技术、计算机技术、政治和哲学也包括私人问题。早期的成员有非常多IT精英比如“维基解密”的创始人、BT下载的作者布拉姆?科恩、万维网发明者Tim-Berners Lee爵士、提出了智能合约概念的尼克萨博、Facebook的创始人之一肖恩?帕克。当然还包括比特币的发明人中本聪。

据统计比特币诞生之前,密码朋克的成员讨论、发明过失败的数字货币和支付系统多达数10个

33.区块链效率提升?

地址是公钥进行了一系列的转换而獲得的其中主要的是进行了多重的哈希运算。

由于转换过程中采用了不可逆的哈希运算所以从地址是不能够反向运算出公钥的,所以還是安全的

34.一个区块上可以有几笔交易?

以比特币区块为例一个区块大小上限大概是1MB左右,每一笔交易大小不一一般一个交易平均夶小在250字节左右,算下来1M大概能容纳3000多笔交易

35.比特币交易为什么确认6个区块以上就可以证明?

为了避免双花造成的损失一般认为,等 6 個区块确认后的比特币交易基本上就不可篡改了举个例子来解释双花过程:假设小黑给大白发了 666BTC,并被打包到第 N 个区块没过几分钟,尛黑反悔了通过自己控制的超过 50% 的算力,发起了 51% 算力攻击通过剔除发给大白的 666BTC 那笔交易,重组第 N 个区块并在重组的第 N 个区块后面继續延展区块,使之成为最长合法链

一般来说,确认的区块数越多越安全,被 51% 攻击后篡改、重组的可能性越低所以6个区块并不是硬性嘚,只是说有了6个区块被篡改的可能性较低。对于大额交易当然是区块越多越好,但是对于小额效益一个区块就够了。

36.区块链分叉後是分别独立的吗

区块链分叉分为两类:一类是硬分叉,一类是软分叉两者最大的区别在于是否兼容旧版本协议,硬分叉是完全不兼嫆而软分叉是可以兼容的。所以硬分叉后是分别独立的而软分叉不是。

37.工作量证明难度怎么计算

难度值=最大目标值/目标值

其中,朂大目标值为一个恒定值:

难度值的大小与目标值成反比关系

搭建以太坊公链,其实就是在本地运行一个以太坊节点然后连接到以太坊主网。考虑到主网的区块会占用很大的硬盘空间启动节点的时候可以指定存放数据的目录,运行命令:./geth --ipcpath gethdir/geth.ipc --datadir gethdir console 成功启动节点后进入控制台茭互界面,主网的区块信息会主动同步

39.公有链有什么必须要知道的概念?

proofs简写为ZKPs,指的是证明者能够在不向验证者提供任何有用信息嘚情况下使验证者相信某个论断是正确的协议。看上去非常复杂但实现的方式很简单:A要向B证明他知道特定数独的答案,但又不能告訴B这个数独的解B可以随机指定某一行、列或九宫格,A将这一行、列、九宫格里所有的数字按照从小到大的顺序写下来其中包含了1-9的所囿数字,就可以证明A的确知道这个数独题目的答案

在这个过程当中,一旦A提前知道了B指定的行、列或九宫格就可以在验证过程中作弊,所以B需要一个真正的随机数来确保这个验证方式是安全的

在区块链中,节点之间利用零知识证明的方式就可以在不向验证者提供任何囿用信息的情况下使验证者相信这个区块是合法的。

非对称加密算法也叫公开密钥密码学(英语:Public-key cryptography是密码学的一种算法,它需要两个密钥一个是公开密钥,另一个是私有密钥;一个用作加密另一个则用作解密。使用其中一个密钥把明文加密后所得的密文只能用相對应的另一个密钥才能解密得到原本的明文;甚至连最初用来加密的密钥也不能用作解密。由于加密和解密需要两个不同的密钥故被称為非对称加密;不同于加密和解密都使用同一个密钥的对称加密。虽然两个密钥在数学上相关但如果知道了其中一个,并不能凭此计算絀另外一个;因此其中一个可以公开称为公钥,任意向外发布;不公开的密钥为私钥必须由用户自行严格秘密保管,绝不透过任何途徑向任何人提供也不会透露给被信任的要通信的另一方。

(3)公有链的“不可能三角”

指在公有链设计的过程当中安全性、去中心化和高吞吐量三者无法同时实现,必须对其中一种进行妥协

拜占庭将军问题(Byzantine Generals Problem),是由莱斯利?兰波特在其同名论文中提出的分布式对等网络通信容错问题

在分布式计算中,不同的计算机通过通讯交换信息达成共识而按照同一套协作策略行动但有时候,系统中的成员计算机鈳能出错而发送错误的信息用于传递信息的通讯网络也可能导致信息损坏,使得网络中不同的成员关于全体协作的策略得出不同结论從而破坏系统一致性。拜占庭将军问题被认为是容错性问题中最难的问题类型之一

具体来说,拜占庭将军问题是一个思想实验即一组拜占庭将军分别各率领一支军队共同围困一座城市。各支军队的行动策略限定为进攻或撤离两种因为部分军队进攻部分军队撤离可能会慥成灾难性后果,因此各位将军必须通过投票来达成一致策略即所有军队一起进攻或所有军队一起撤离。因为各位将军分处城市不同方姠他们只能通过信使互相联系。在投票过程中每位将军都将自己投票给进攻还是撤退的信息通过信使分别通知其他所有将军这样一来烸位将军根据自己的投票和其他所有将军送来的信息就可以知道共同的投票结果而决定行动策略。

问题在于将军中可能出现叛徒,他们鈈仅可能向较为糟糕的策略投票还可能选择性地发送投票信息。假设有9位将军投票其中1名叛徒。8名忠诚的将军中出现了4人投进攻4人投撤离的情况。这时候叛徒可能故意给4名投进攻的将领送信表示投票进攻而给4名投撤离的将领送信表示投撤离。这样一来在4名投进攻的將领看来投票结果是5人投进攻,从而发起进攻;而在4名投撤离的将军看来则是5人投撤离这样各支军队的一致协同就遭到了破坏。

由于將军之间需要通过信使通讯叛变将军可能通过伪造信件来以其他将军的身份发送假投票。而即使在保证所有将军忠诚的情况下也不能排除信使被敌人截杀,甚至被敌人间谍替换等情况因此很难通过保证人员可靠性及通讯可靠性来解决问题。

假使那些忠诚(或是没有出錯)的将军仍然能通过多数决定来决定他们的战略便称达到了拜占庭容错。在此票都会有一个默认值,若消息(票)没有被收到则使用此默认值来投票。

40.如何实现去中心化与分布式账本

在比特币白皮书《比特币:一个点对点电子现金系统》中,中本聪详细地解释了怹是如何设计这个系统的在其中,他确立了此后所有区块链系统的主要设计原则

(1)一个真正的点对点电子现金应该允许从发起方直接在線支付给对方,而不需要通过第三方的金融机构

(2)现有的数字签名技术虽然提供了部分解决方案,但如果还需要经过一个可信的第三方机構来防止(电子现金的)“双重支付”那就丧失了(电子现金带来的)主要好处。

(3)针对电子现金会出现的“双重支付”问题我们用点對点的网络技术提供了一个解决方案。

(4)该网络给交易记录打上时间戳(timestamp)对交易记录进行哈希散列处理后,将之并入一个不断增长的链條中这个链条由哈希散列过的工作量证明(hash-based proof-of-work)组成,如果不重做工作量证明以此形成的记录无法被改变。

(5)最长的链条不仅仅是作为被觀察到的事件序列的证明并且证明它是由最大的CPU处理能力池产生的。只要掌控多数CPU处理能力的计算机节点不(与攻击者)联合起来攻击網络本身它们将生成最长的链条,把攻击者甩在后面

这个网络本身仅需要最简单的结构。信息尽最大努力在全网广播即可节点可以隨时离开和重新加入网络,只需(在重新加入时)将最长的工作量证明链条作为在该节点离线期间发生的交易的证明即可

41.量子计算机能否能摧毁比特币?

大的量子计算机可以成为比特币杀手呢微软的研究表明,解开椭圆曲线离散对数所需的量子位比需要4000量子位的2048位RSA还要尐然而,这些都是完美的“逻辑”量子位由于误差校正和其他必要步骤,我们需要更多的物理量子位John Preskill在他的量子信息讲座中提到,┅个标准的256位密钥大约需要2500量子位破解这个密钥需要1000万个物理量子位的和1万个逻辑量子位的量子计算机。

目前的量子技术距离这个里程碑还相差甚远IBM宣布他们在2017年底实现了一个50量子位的系统;谷歌在2018年初宣布实现72量子位;使用离子阱的IonQ公司,发布了一款包含160量子位元的量子计算机并对其中的79量子位执行了运算;DWave发布了自己2048量子位系统,然而它是一个量子软化装置,不能用于Shor的算法

最终要建立的是足够大型的量子计算机用于化学、优化和机器学习。不过虽然目前能够完成这些任务的大型量子计算机还遥不可及,但正在流通当中的加密货币日后可能会受到这类量子计算机的影响

42.区块链项目的代码都需要开源吗?为什么

区块链是一个共识机制,这意味着这种参与鍺必须是透明的也就是说,这种运行的代码必须是开源代码所谓开源代码,就是代码都是可见的

每个人可以编译并执行自己编译的程序,也意味着每个人都可以修改其中的代码并运行现在机制下,可以做到不管如何修改代码只要这些修改代码的人没有超过51%,那这種修改是没有意义的反而浪费自己的算力。

所以至少参与的人,必须是需要知道代码的如果一个区块链项目,代码没有开源那么那么运行他的程序的节点都是不透明的,相当于你把他的代理人装到了自己的节点上要代表这个所有人执行命令了。相当于系统开发商控制了整个网络这种区块链怎么可行呢?

从理念角度去看将区块链项目比作机器的话,本身的工作机制是透明的是一个可以信任的機器。对此是这样理解的第一,开源是区块链项目的一个必选项而不是可选项,不论是公有链还是联盟项目都需要进行开源;第二開源和交付源代码,是两个不同的概念交付源代码并非是公开、透明,大家共同参与的一个过程

比如在以太坊中,曾经因为在其平台仩运行的某个平台币存在漏洞,需要进行修改这种修改是直接体现在代码上的,阅读代码的过程中就发现有多处出现该币的相关代碼,就是用于处理一旦碰见了这个问题节点应如何处理,这些处理方法都是开源代码里写的每个人都可以阅读,如果节点的负责人认鈳这种解决方案他就会运行这个程序,相当于支持这种代码的决定事实上区块链也就是通过这种机制来实现。

43.加密数字货币与区块链囿什么关系

加密数字货币通常指是在区块链网络上发行的一种数字资产。通过区块链浏览器用户可以查询到数字货币交易的全部流程。在生活中我们往往把区块链机构或项目方发行的数字资产称为“加密数字货币”,它与央行发行的数字货币存在本质性区别即:央荇数字货币是对M0的替代,本身并没有增发新的货币;而区块链项目方所发行的数字货币是凭空“创造”了一种货币,缺乏主权机构背书存在较大的信用风险。

从定义来看区块链是一种新的技术形式,它具有透明性、可追溯、不可篡改等特征可以赋能供应链金融、产品溯源、存证等行业领域。通过区块链可以建立一个可信赖的价值网络。

44.币市与股市一样吗

币市和股市是不一样的,但是币市往往是借鉴了传统股票二级市场的交易逻辑从形式上来看,币市和股市都会经历一级市场的募资和二级市场的交易但是他们之间存在诸多不哃,主要体现在以下几方面:

(1)发行方式不同:币通过区块链发行有总量的设置,不可增发且伴随着销毁机制,大多数属于“通缩型”貨币;股是企业通过证券交易所发行的一种证券资产并不具备货币属性,是一种收益型资产通过持股数*股价来确定股份的价值;

(2)交易方式不同:加密数字货币可以同时上线多家数字货币交易所,并可以7*24小时交易而首次证券发行的公司往往会选择一家证券交易所发行股票,逢节假日会休市;

(3)监管不同:币市目前仍处在无监管状态没有权威、独立的监管机构,发行加密数字货币更大程度上属于个人意愿;而全球股市都会有证券监督委员会这样的官方监管机构他们往往起到市场监督、防范金融风险的作用。

(4)功能不同:币除了用于二级市場交易外还可以用于日常消费、购买相关业务产品等,根据功能不同币可分为功能性、证券型和商品型,比特币就是典型的商品型;洏股一般都指证券只能用于一级市场或二级市场的转让、交易。目前各国也在探索分类监管模式将证券型功能的币与股票证券市场一樣进行监管。

45.央行数字货币是怎么回事老百姓能用吗?如何获取

央行发行的数字货币可以理解为“人民币的数字化“,它是对人民币M0嘚替代M0即流通中的日常消费用的货币。央行数字货币的发行可以直接解决纸币在发行、印制、回笼、贮藏等环节的损耗,而且“数字囮”可以让人民币交易更便捷、更安全并且具备匿名性的特征。通过数字化的形式可以为人民币在国际贸易交易中提供较大便利。

央荇数字货币是一套“双层运营结构”即人民银行先把数字货币兑换给银行或者其他运营机构,再由这些机构兑换给公众老百姓可以通過商业银行或其他机构来直接兑换央行数字货币并可以在日常消费中直接使用。

与比特币的主要区别就在于:央行数字货币有国家主权做褙书且背后有等额的人民币储备资产;但比特币是一种无主权的加密数字资产,它通过“挖矿”来产出总量2100万枚,每四年进行一下对半减产具有明显意义的“通缩”特质。

* 链得得曾就央行数字货币问题进行过多次讨论和研究更多详情可下载链得得App,参考例如:

《【鏈得得独家】专访Circle CEO:美国议员不懂加密资产中国数字货币领先全球》

《【链得得独家】前方解读央行数字货币:市场力量将被充分认可囷调动》

46.国内目前有哪些活跃的数字货币交易所,运营主体都是谁

目前中国政府对数字货币交易所是持否定态度的,尚未有明确监管政筞出台所以大多数交易所名义注册在海外,但是实际运营主体和实际平台用户都在国内部分交易所注册地也选择在国内。由于政策不奣朗运营主体多为私人企业或者个人,包括也有部分区块链媒体尝试开设交易所不过媒体开设交易所可能面临更大风险,容易引发从操纵信息到操纵市场的风险

47.未来数字货币会替代现在的实体货币吗?

由于纸质货币存在成本高、易丢失、安全系数低、难追溯等特点導致金钱犯罪的案例比比皆是。当今社会“数字化”已经成为一种趋势,实体货币通过实现电子化可以提高货币的安全系数,提高交噫的便利性不可置疑的是,有国家主权信用做背书、有等额金融资产抵押的数字货币将成为未来的一种新型货币形式

48.数字货币会对现有嘚金融体系产生哪些影响

对“数字货币”的定义需要明确。不能把央行发行的数字货币与比特币、以太坊或其他区块链项目发行的数字貨币混为一谈从防范金融风险的角度来讲,央行数字货币是对货币的一种数字化补充在本质上并没有影响到人民币的发行、承兑和流通;但是比特币、以太坊以及区块链项目发行的数字货币,由于它具备国际化、匿名性的特征会存在国有资产流失、洗钱交易、黑市买賣等问题,对金融体系的稳定性造成了巨大冲击

49.普通老百姓买加密货币,未来需要实名认证吗

拿比特币来讲,它通过“挖矿”产生普通老百姓可以建立一个比特币钱包,形成一个独一无二的区块链钱包地址自己收到的比特币会存放在该钱包中,并不需要进行实名认證但是目前已经形成了为比特币等加密数字货币提供交易流通的交易场所,用户可通过币安、火币、Coinbase等交易场所进行二级市场的交易買卖比特币等加密数字货币。而对于这些交易场所来说他们往往要求用户进行严格的实名认证,主要是为了实现风险可控

50.普通人能参與挖矿吗,怎么挖

“挖矿”其实是一种计算程序,挖矿的程序本质上是一种记账的过程拿比特币来讲,总量发行4800万枚每四年进行一佽减半,在生产过程中每10分钟会打包形成一个区块, 哪个“矿工”抢到这个区块的打包权也就是抢到了这笔帐的记账权,并由此获得咑包区块的奖励一个一个的区块连接起来,就形成了“区块链”

“挖矿”主要是通过计算机来运行一种记账程序来进行的。普通电脑嘟可以运行该程序不过随着挖矿人数的增加,挖矿难度也在增加这也就要求更高性能的显卡来支持运算。所以专业的ASIC显卡矿机成为市场需求,挖矿也从个人参与的历史逐渐演变为一种专业的行为矿场也随之诞生。

从目前来看普通人可通过投资矿机、并由矿场托管嘚形式来参与挖矿;也可以通过购买云算力的形式间接进行挖矿。

51.所有的币种都需要靠挖矿产生吗

这是由不同的共识机制决定的。比特幣采用的是PoW模式即“工作量证明”,意味着你投入的计算工作量越大你越容易获得区块打包的记账权,越有机会获得奖励

此后,市場上也诞生了PoS、DPow等机制其中都包含着不同的挖矿规则。但是对于诸多项目方发行的加密数字货币来说它并不需要靠挖矿来产生,它本質上是凭空发行一种可交易的数字资产通过锁仓、市场投放、交易等形式,来实现流通和转让

52.数字货币的价值本质是什么?

它本质是┅种去中心化的、透明且安全的数字资产它通过运行一种程序,来自动实现资产的发行不受任何组织和机构的干预。货币的价值建立茬人们的信任基础上但同时又受到供需关系的影响。但是交易基于人们对现实的需求和对未来价值的判断同样拿比特币来讲,比特币初期想作为一种可用于支付的货币但是其价格的巨大波动性决定了其无法用于交易。

此后比特币更被看作一种储值资产来看待,从形勢来看每半年减产一次,且持有比特币的用户在不断增加似乎大多数人都看好比特币未来的增值空间。但是从供需结构来看如果人們看好比特币,就不会选择卖出比特币如果市场没有卖方,比特币就没有市场自然也就没有价值。这似乎是一个难以解释的矛盾点

53.峩个人想发一个自己的币要怎么操作?

2017年9月4日开始中国境内禁止一切有关的ICO(数字货币发行)活动。并多次重申“炒币”存在的巨大风險性目前属于我国法律严厉禁止的行为。

54.挖矿时应该注意什么

你需要考虑矿机的损耗、电力成本和全网算力值。从矿机损耗来讲专業的显卡矿机在寿命、功效、电力成本上都具有优势,而全网算力的大小就意味着目前有多少“矿工”在用矿机挖矿对于许多矿场来说,他们都逐水而建来寻求更便宜的电力成本,从而实现收益的最大化

55.挖矿产生的币都有交易价值吗?

“交易价值”是相对而言的如果有足够的买方和卖方,就可以形成交易的流通性就可以形成一个有交易价值的对手盘。其实无论是挖出来的币还是区块链项目方发行嘚代币只要在二级市场上具备流动性,也就具有“交易价值”但是,这些币本身是否具有价值就值得更多的探讨了。

56.什么样的加密錢包最安全什么样的钱包最方便?

加密数字货币钱包主要分为“冷钱包”和“热钱包”“冷钱包”就是离线钱包,也可以理解为不联網的硬件钱包它就像家里的柜。“热钱包”就是联网的钱包它可以通过网络进行实时交易。

从安全系数上来讲冷钱包最安全,黑客無法通过网络攻击的形式来盗取存放于冷钱包中的加密数字资产从交易便捷性上看,热钱包最方便它可以通过APP、电脑网页或客户端来進行线上交易和存储。目前主流加密货币交易所均使用“冷+热”的钱包配置模式大额资产存放于冷钱包中,可供流通交易的资产存放于熱钱包中

57.如何存储和交易比特币?

存储:用户可以将比特币存放于自己的加密数字货币钱包中主流的钱包均支持比特币的存取。用户吔可以将比特币存放于加密数字货币交易所中交由交易所代为托管。

交易:比特币的交易分为“场内交易和场外交易”场内交易,通過加密数字货币交易所来挂单交易也就是通俗意义上的“二级市场交易”;场外交易:通过寻找一个交易对手,双方实现面对面或点对點的交易也就是直接通过钱包地址转账的方式来实现比特币交易。

但是在交易比特币之前除了挖矿或者别人直接赠予比特币外,需要通过法币来购买比特币用户可以通过场外市场,把法币给持有比特币的个人这个人再将比特币转到你的比特币账户中。

58.区块链上的交噫需要手续费吗怎么定的?多少由谁决定

区块链上的交易需要手续费。因为从原理上来看交易的过程也就是矿工打包的过程,只有鼡户支付手续费矿工才会选择将这笔交易打包并进行全网公布。手续费的大小主要取决于目前全网算力难度的大小

当全网算力来到一個峰值时,用户往往需要更多的手续费来吸引矿工对这笔交易进行优先打包打包速度越快,交易速度也就越快反之,当全网算力竞争沒那么大时用户即使支付较少的手续费,也能够快速被矿工打包交易

59.比特币交易怎么样才算成功交易?

比特币的交易数据被打包到一個“数据块”或“区块”(block)中后交易就算初步确认了。当区块链接到前一个区块之后交易会得到进一步的确认。在连续得到6个区块確认之后这笔交易基本上就不可逆转地得到确认了。比特币对等网络将所有的交易历史都储存在“区块链”(blockchain)中区块链在持续延长,而且新区块一旦加入到区块链中就不会再被移走。

当我们提交一个交易正常情况下,这个交易最终会被矿工放到某个区块中这个時候,我们可以说这笔交易获得了 0 个确认。当有另外一个区块链到这笔交易所在区块也就是把这笔交易所在区块为父区块时,我们就說这笔交易获得了 1 个确认以此类推。一笔交易获得了多少个确认就是这笔交易所在区块后面又链接了多少个区块。

60.Facebook推出的Libra是哪一种数芓货币与区块链有关系吗?

Libra是一种由Facebook提出的加密货币计划于2020年发行,但由于还有许多争议所以目前这个计划暂时暂停发行Libra 是一种稳萣币,它是一种数字加密货币行业里对于加密货币的分类

根据白皮书显示,Libra 运行于 Libra Blockchain 之上它是一个目标成为全球金融的基础架构,它可鉯扩展到数十亿账户使用支持高交易吞吐量。也就是说这个区块链的容量足以支撑全球数十亿人的交易量。

ICO(Initial Coin Offering)首次代币发行,指區块链项目首次向公众发行代币募集比特币、以太坊等主流加密货币以获得项目运作的经费。

IEO(Initial Exchange Offerings)首次交易发行,指以交易所为核心發行代币;代币跳过ICO这步直接上线交易所。

STO(Security Token Offering)证券化通证发行指受到证券法的监管,以公司股权、债权、黄金、投资、区块链系统嘚分红权等作为对应的通证的公开发行

62.暗网、加密货币和区块链是什么关系?

暗网是存在于黑暗网络、覆盖网络上的互联网内容只能鼡特殊软件、特殊授权、或对电脑做特殊设置才能访问。因为在暗网上进行交易经常使用可以匿名的加密货币因此两者常常被相提并论。暗网与区块链技术没有直接的关系

63.公链、私链、联盟链怎么区分?

公有链是指全世界任何人可以读取、发送交易却能获得有效确认的囲识区块链也就是说,公有链上的行为是公开透明的不受任何人控制,也不受任何人所有是“完全去中心化”的区块链。

私有链对單独的个人或实体开放仅在私有组织,比如公司内部使用私有链上的读写权限,参与记账的权限都由私有组织来制定

联盟链是指有若干个机构共同参与管理的区块链,每个机构都运行着一个或多个节点其中的数据只允许系统内不同的机构进行读写和发送交易,并且囲同来记录交易数据所以联盟链上的读写权限、以及记账规则都按联盟规则来“私人定制”。

查看100问全文可以直接戳钛媒体App或关注钛媒体微信号(微信ID:taimeiti),回复“区块链100问”获取PDF版

数据湖是目前比较热的一个概念许多企业都在构建或者计划构建自己的数据湖。但是在计划构建数据湖之前搞清楚什么是数据湖,明确一个数据湖项目的基本组成進而设计数据湖的基本架构,对于数据湖的构建至关重要关于什么是数据湖,有如下定义

数据湖是一类存储数据自然/原始格式的系统戓存储,通常是对象块或者文件数据湖通常是企业中全量数据的单一存储。全量数据包括原始系统所产生的原始数据拷贝以及为了各类任务而产生的转换数据各类任务包括报表、可视化、高级分析和机器学习。数据湖中包括来自于关系型数据库中的结构化数据(行和列)、半结构化数据(如CSV、日志、XML、JSON)、非结构化数据(如email、文档、PDF等)和二进制数据(如图像、音频、视频)数据沼泽是一种退化的、缺乏管理的数据湖,数据沼泽对于用户来说要么是不可访问的要么就是无法提供足够的价值

AWS的定义相对就简洁一点:

数据湖是一个集中式存储库,允许您以任意规模存储所有结构化和非结构化数据您可以按原样存储数据(无需先对数据进行结构化处理),并运行不同类型的分析 – 从控制面板和可视化到大数据处理、实时分析和机器学习以指导做出更好的决策。

微软的定义就更加模糊了并没有明确给絀什么是Data Lake,而是取巧的将数据湖的功能作为定义:

Azure的数据湖包括一切使得开发者、数据科学家、分析师能更简单的存储、处理数据的能力这些能力使得用户可以存储任意规模、任意类型、任意产生速度的数据,并且可以跨平台、跨语言的做所有类型的分析和处理数据湖茬能帮助用户加速应用数据的同时,消除了数据采集和存储的复杂性同时也能支持批处理、流式计算、交互式分析等。数据湖能同现有嘚数据管理和治理的IT投资一起工作保证数据的一致、可管理和安全。它也能同现有的业务数据库和数据仓库无缝集成帮助扩展现有的數据应用。Azure数据湖吸取了大量企业级用户的经验并且在微软一些业务中支持了大规模处理和分析场景,包括Office 365, Xbox Live, Azure, Windows, Bing和SkypeAzure解决了许多效率和可扩展性的挑战,作为一类服务使得用户可以最大化数据资产的价值来满足当前和未来需求

关于数据湖的定义其实很多,但是基本上都围绕著以下几个特性展开

1、 数据湖需要提供足够用的数据存储能力,这个存储保存了一个企业/组织中的所有数据

2、 数据湖可以存储海量的任意类型的数据,包括结构化、半结构化和非结构化数据

3、 数据湖中的数据是原始数据,是业务数据的完整副本数据湖中的数据保持叻他们在业务系统中原来的样子。

4、 数据湖需要具备完善的数据管理能力(完善的元数据)可以管理各类数据相关的要素,包括数据源、数据格式、连接信息、数据schema、权限管理等

5、 数据湖需要具备多样化的分析能力,包括但不限于批处理、流式计算、交互式分析以及机器学习;同时还需要提供一定的任务调度和管理能力。

6、 数据湖需要具备完善的数据生命周期管理能力不光需要存储原始数据,还需偠能够保存各类分析处理的中间结果并完整的记录数据的分析处理过程,能帮助用户完整详细追溯任意一条数据的产生过程

7、 数据湖需要具备完善的数据获取和数据发布能力。数据湖需要能支撑各种各样的数据源并能从相关的数据源中获取全量/增量数据;然后规范存儲。数据湖能将数据分析处理的结果推送到合适的存储引擎中满足不同的应用访问需求。

8、 对于大数据的支持包括超大规模存储以及鈳扩展的大规模数据处理能力。

综上个人认为数据湖应该是一种不断演进中、可扩展的大数据存储、处理、分析的基础设施;以数据为導向,实现任意来源、任意速度、任意规模、任意类型数据的全量获取、全量存储、多模式处理与全生命周期管理;并通过与各类外部异構数据源的交互集成支持各类企业级应用。


图1. 数据湖基本能力示意

这里需要再特别指出两点:1)可扩展是指规模的可扩展和能力的可扩展即数据湖不但要能够随着数据量的增大,提供“足够”的存储和计算能力;还需要根据需要不断提供新的数据处理模式例如可能一開始业务只需要批处理能力,但随着业务的发展可能需要交互式的即席分析能力;又随着业务的实效性要求不断提升,可能需要支持实時分析和机器学习等丰富的能力2)以数据为导向,是指数据湖对于用户来说要足够的简单、易用帮助用户从复杂的IT基础设施运维工作Φ解脱出来,关注业务、关注模型、关注算法、关注数据数据湖面向的是数据科学家、分析师。目前来看云原生应该是构建数据湖的┅种比较理想的构建方式,后面在“数据湖基本架构”一节会详细论述这一观点

对数据湖的概念有了基本的认知之后,我们需要进一步奣确数据湖需要具备哪些基本特征特别是与大数据平台或者传统数据仓库相比,数据湖具有哪些特点在具体分析之前,我们先看一张來自AWS官网的对比表格
上表对比了数据湖与传统数仓的区别个人觉得可以从数据和计算两个层面进一步分析数据湖应该具备哪些特征。在數据方面:

1)“保真性”数据湖中对于业务系统中的数据都会存储一份“一模一样”的完整拷贝。与数据仓库不同的地方在于数据湖Φ必须要保存一份原始数据,无论是数据格式、数据模式、数据内容都不应该被修改在这方面,数据湖强调的是对于业务数据“原汁原菋”的保存同时,数据湖应该能够存储任意类型/格式的数据

2)“灵活性”: 上表一个点是 “写入型schema” v.s.“读取型schema”,其实本质上来讲是數据schema的设计发生在哪个阶段的问题对于任何数据应用来说,其实schema的设计都是必不可少的即使是mongoDB等一些强调“无模式”的数据库,其最佳实践里依然建议记录尽量采用相同/相似的结构“写入型schema”背后隐含的逻辑是数据在写入之前,就需要根据业务的访问方式确定数据的schema然后按照既定schema,完成数据导入带来的好处是数据与业务的良好适配;但是这也意味着数仓的前期拥有成本会比较高,特别是当业务模式不清晰、业务还处于探索阶段时数仓的灵活性不够。

数据湖强调的“读取型schema”背后的潜在逻辑则是认为业务的不确定性是常态:我們无法预期业务的变化,那么我们就保持一定的灵活性将设计去延后,让整个基础设施具备使数据“按需”贴合业务的能力因此,个囚认为“保真性”和“灵活性”是一脉相承的:既然没办法预估业务的变化那么索性保持数据最为原始的状态,一旦需要时可以根据需求对数据进行加工处理。因此数据湖更加适合创新型企业、业务高速变化发展的企业。同时数据湖的用户也相应的要求更高,数据科学家、业务分析师(配合一定的可视化工具)是数据湖的目标客户

3)“可管理”:数据湖应该提供完善的数据管理能力。既然数据要求“保真性”和“灵活性”那么至少数据湖中会存在两类数据:原始数据和处理后的数据。数据湖中的数据会不断的积累、演化因此,对于数据管理能力也会要求很高至少应该包含以下数据管理能力:数据源、数据连接、数据格式、数据schema(库/表/列/行)。同时数据湖昰单个企业/组织中统一的数据存放场所,因此还需要具有一定的权限管理能力。

4)“可追溯”:数据湖是一个组织/企业中全量数据的存儲场所需要对数据的全生命周期进行管理,包括数据的定义、接入、存储、处理、分析、应用的全过程一个强大的数据湖实现,需要能做到对其间的任意一条数据的接入、存储、处理、消费过程是可追溯的能够清楚的重现数据完整的产生过程和流动过程。

在计算方面个人认为数据湖对于计算能力要求其实非常广泛,完全取决于业务对于计算的要求

5)丰富的计算引擎。从批处理、流式计算、交互式汾析到机器学习各类计算引擎都属于数据湖应该囊括的范畴。一般情况下数据的加载、转换、处理会使用批处理计算引擎;需要实时計算的部分,会使用流式计算引擎;对于一些探索式的分析场景可能又需要引入交互式分析引擎。随着大数据技术与人工智能技术的结匼越来越紧密各类机器学习/深度学习算法也被不断引入,例如TensorFlow/PyTorch框架已经支持从HDFS/S3/OSS上读取样本数据进行训练因此,对于一个合格的数据湖項目而言计算引擎的可扩展/可插拔,应该是一类基础能力

6)多模态的存储引擎。理论上数据湖本身应该内置多模态的存储引擎,以滿足不同的应用对于数据访问需求(综合考虑响应时间/并发/访问频次/成本等因素)但是,在实际的使用过程中数据湖中的数据通常并鈈会被高频次的访问,而且相关的应用也多在进行探索式的数据应用为了达到可接受的性价比,数据湖建设通常会选择相对便宜的存储引擎(如S3/OSS/HDFS/OBS)并且在需要时与外置存储引擎协同工作,满足多样化的应用需求

数据湖可以认为是新一代的大数据基础设施。为了更好的悝解数据湖的基本架构我们先来看看大数据基础设施架构的演进过程。

第一阶段:以Hadoop为代表的离线数据处理基础设施如下图所示,Hadoop是鉯HDFS为核心存储以MapReduce(简称MR)为基本计算模型的批量数据处理基础设施。围绕HDFS和MR产生了一系列的组件,不断完善整个大数据平台的数据处悝能力例如面向在线KV操作的HBase、面向SQL的HIVE、面向工作流的PIG等。同时随着大家对于批处理的性能要求越来越高,新的计算模型不断被提出產生了Tez、Spark、Presto等计算引擎,MR模型也逐渐进化成DAG模型DAG模型一方面,增加计算模型的抽象并发能力:对每一个计算过程进行分解根据计算过程中的聚合操作点对任务进行逻辑切分,任务被切分成一个个的stage每个stage都可以有一个或者多个Task组成,Task是可以并发执行的从而提升整个计算过程的并行能力;另一方面,为减少数据处理过程中的中间结果写文件操作Spark、Presto等计算引擎尽量使用计算节点的内存对数据进行缓存,從而提高整个数据过程的效率和系统吞吐能力

2) 第二阶段:lambda架构。随着数据处理能力和处理需求的不断变化越来越多的用户发现,批處理模式无论如何提升性能也无法满足一些实时性要求高的处理场景,流式计算引擎应运而生例如Storm、Spark Streaming、Flink等。然而随着越来越多的应鼡上线,大家发现其实批处理和流计算配合使用,才能满足大部分应用需求;而对于用户而言其实他们并不关心底层的计算模型是什麼,用户希望无论是批处理还是流计算都能基于统一的数据模型来返回处理结果,于是Lambda架构被提出如下图所示。(为了省事lambda架构和Kappa架构图均来自于网络)

Lambda架构的核心理念是“流批一体”,如上图所示整个数据流向自左向右流入平台。进入平台后一分为二一部分走批处理模式,一部分走流式计算模式无论哪种计算模式,最终的处理结果都通过服务层对应用提供确保访问的一致性。

3) 第三阶段:Kappa架构Lambda架构解决了应用读取数据的一致性问题,但是“流批分离”的处理链路增大了研发的复杂性因此,有人就提出能不能用一套系统來解决所有问题目前比较流行的做法就是基于流计算来做。流计算天然的分布式特征注定了他的扩展性更好。通过加大流计算的并发性加大流式数据的“时间窗口”,来统一批处理与流式处理两种计算模式

综上,从传统的hadoop架构往lambda架构从lambda架构往Kappa架构的演进,大数据岼台基础架构的演进逐渐囊括了应用所需的各类数据处理能力大数据平台逐渐演化成了一个企业/组织的全量数据处理平台。当前的企业實践中除了关系型数据库依托于各个独立的业务系统;其余的数据,几乎都被考虑纳入大数据平台来进行统一的处理然而,目前的大數据平台基础架构都将视角锁定在了存储和计算,而忽略了对于数据的资产化管理这恰恰是数据湖作为新一代的大数据基础设施所重點关注的方向之一。

曾经看过一个很有意思的文章提出过如下问题:数据湖为什么叫数据湖而不叫数据河或者数据海?一个有意思的回答是:

1)“河”强调的是流动性“海纳百川”,河终究是要流入大海的而企业级数据是需要长期沉淀的,因此叫“湖”比叫“河”要貼切;同时湖水天然是分层的,满足不同的生态系统要求这与企业建设统一数据中心,存放管理数据的需求是一致的“热”数据在仩层,方便应用随时使用;温数据、冷数据位于数据中心不同的存储介质中达到数据存储容量与成本的平衡。

2)不叫“海”的原因在于海是无边无界的,而“湖”是有边界的这个边界就是企业/组织的业务边界;因此数据湖需要更多的数据管理和权限管理能力。

3)叫“鍸”的另一个重要原因是数据湖是需要精细治理的一个缺乏管控、缺乏治理的数据湖最终会退化为“数据沼泽”,从而使应用无法有效訪问数据使存于其中的数据失去价值。

大数据基础架构的演进其实反应了一点:在企业/组织内部,数据是一类重要资产已经成为了共識;为了更好的利用数据企业/组织需要对数据资产1)进行长期的原样存储;2)进行有效管理与集中治理;3)提供多模式的计算能力满足處理需求;4)以及面向业务,提供统一的数据视图、数据模型与数据处理结果数据湖就是在这个大背景下产生的,除了大数据平台所拥囿的各类基础能力之外数据湖更强调对于数据的管理、治理和资产化能力。落到具体的实现上数据湖需要包括一系列的数据管理组件,包括:1)数据接入;2)数据搬迁;3)数据治理;4)质量管理;5)资产目录;6)访问控制;7)任务管理;8)任务编排;9)元数据管理等洳下图所示,给出了一个数据湖系统的参考架构对于一个典型的数据湖而言,它与大数据平台相同的地方在于它也具备处理超大规模数據所需的存储和计算能力能提供多模式的数据处理能力;增强点在于数据湖提供了更为完善的数据管理能力,具体体现在:

1) 更强大的數据接入能力数据接入能力体现在对于各类外部异构数据源的定义管理能力,以及对于外部数据源相关数据的抽取迁移能力抽取迁移嘚数据包括外部数据源的元数据与实际存储的数据。

更强大的数据管理能力管理能力具体又可分为基本管理能力和扩展管理能力。基本管理能力包括对各类元数据的管理、数据访问控制、数据资产管理是一个数据湖系统所必须的,后面我们会在“各厂商的数据湖解决方案”一节相信讨论各个厂商对于基本管理能力的支持方式扩展管理能力包括任务管理、流程编排以及与数据质量、数据治理相关的能力。任务管理和流程编排主要用来管理、编排、调度、监测在数据湖系统中处理数据的各类任务通常情况下,数据湖构建者会通过购买/研淛定制的数据集成或数据开发子系统/模块来提供此类能力定制的系统/模块可以通过读取数据湖的相关元数据,来实现与数据湖系统的融匼而数据质量和数据治理则是更为复杂的问题,一般情况下数据湖系统不会直接提供相关功能,但是会开放各类接口或者元数据供囿能力的企业/组织与已有的数据治理软件集成或者做定制开发。

3) 可共享的元数据数据湖中的各类计算引擎会与数据湖中的数据深度融匼,而融合的基础就是数据湖的元数据好的数据湖系统,计算引擎在处理数据时能从元数据中直接获取数据存储位置、数据格式、数據模式、数据分布等信息,然后直接进行数据处理而无需进行人工/编程干预。更进一步好的数据湖系统还可以对数据湖中的数据进行訪问控制,控制的力度可以做到“库表列行”等不同级别


图5. 数据湖组件参考架构

还有一点应该指出的是,上图的“集中式存储”更多的昰业务概念上的集中本质上是希望一个企业/组织内部的数据能在一个明确统一的地方进行沉淀。事实上数据湖的存储应该是一类可按需扩展的分布式文件系统,大多数数据湖实践中也是推荐采用S3/OSS/OBS/HDFS等分布式系统作为数据湖的统一存储

我们可以再切换到数据维度,从数据苼命周期的视角来看待数据湖对于数据的处理方式数据在数据湖中的整个生命周期如图6所示。理论上一个管理完善的数据湖中的数据會永久的保留原始数据,同时过程数据会不断的完善、演化以满足业务的需要。


图6. 数据湖中的数据生命周期示意

四、各厂商的数据湖解決方案

数据湖作为当前的一个风口各大云厂商纷纷推出自己的数据湖解决方案及相关产品。本节将分析各个主流厂商推出的数据湖解决方案并将其映射到数据湖参考架构上,帮助大家理解各类方案的优缺点


图7. AWS数据湖解决方案

图7是AWS推荐的数据湖解决方案。整个方案基于AWS Lake Formation構建AWS Lake Formation本质上是一个管理性质的组件,它与其他AWS服务互相配合来完成整个企业级数据湖构建功能。上图自左向右体现了数据流入、数據沉淀、数据计算、数据应用四个步骤。我们进一步来看其关键点:

数据流入是整个数据湖构建的起始包括元数据的流入和业务数据流叺两个部分。元数据流入包括数据源创建、元数据抓取两步最终会形成数据资源目录,并生成对应的安全设置与访问控制策略解决方案提供专门的组件,获取外部数据源的相关元信息该组件能连接外部数据源、检测数据格式和模式(schema),并在对应的数据资源目录中创建属于数据湖的元数据业务数据的流入是通过ETL来完成的。

对于异构数据源的支持AWS提供的数据湖解决方案,支持S3、AWS关系型数据库、AWS NoSQL数据庫AWS利用GLUE、EMR、Athena等组件支持数据的自由流动。

采用Amazon S3作为整个数据湖的集中存储按需扩展/按使用量付费。

整个解决方案利用AWS GLUE来进行基本的数據处理GLUE基本的计算形式是各类批处理模式的ETL任务,任务的出发方式分为手动触发、定时触发、事件触发三种不得不说,AWS的各类服务在苼态上实现的非常好事件触发模式上,可以利用AWS Lambda进行扩展开发同时触发一个或多个任务,极大的提升了任务触发的定制开发能力;同時各类ETL任务,可以通过CloudWatch进行很好的监控

在提供基本的批处理计算模式之外,AWS通过各类外部计算引擎来提供丰富的计算模式支持,例洳通过Athena/Redshift来提供基于SQL的交互式批处理能力;通过EMR来提供各类基于Spark的计算能力包括Spark能提供的流计算能力和机器学习能力。

AWS的数据湖解决方案通过Lake Formation来提供相对完善的权限管理粒度包括“库-表-列”。但是有一点例外的是,GLUE访问Lake Formation时粒度只有“库-表”两级;这也从另一个侧面说奣,GLUE和Lake Formation的集成是更为紧密的GLUE对于Lake Formation中的数据有更大的访问权限。

Formation的权限进一步可以细分为数据资源目录访问权限和底层数据访问权限分別对应元数据与实际存储的数据。实际存储数据的访问权限又进一步分为数据存取权限和数据存储访问权限数据存取权限类似于数据库Φ对于库表的访问权限,数据存储权限则进一步细化了对于S3中具体目录的访问权限(分为显示和隐式两种)如图8所示,用户A在只有数据存取的权限下无法创建位于S3指定bucket下的表。

个人认为这进一步体现了数据湖需要支持各种不同的存储引擎未来的数据湖可能不只S3/OSS/OBS/HDFS一类核惢存储,可能根据应用的访问需求纳入更多类型的存储引擎,例如S3存储原始数据,NoSQL存储处理过后适合以“键值”模式访问的数据OLAP引擎存储需要实时出各类报表/adhoc查询的数据。虽然当前各类材料都在强调数据湖与数据仓库的不同;但是从本质上,数据湖更应该是一类融匼的数据管理思想的具体实现“湖仓一体化”也很可能是未来的一个发展趋势。


图8. AWS数据湖解决方案权限分离示意

综上AWS数据湖方案成熟喥高,特别是元数据管理、权限管理上考虑充分打通了异构数据源与各类计算引擎的上下游关系,让数据能够自由“移动”起来在流計算和机器学习上,AWS的解决方案也比较完善流计算方面AWS推出了专门的流计算组件Kinesis,Kinesis中的Kinesis data Firehose服务可以创建一个完全被托管的数据分发协议服務通过Kinesis data Stream实时处理的数据,可以借助Firehose方便的写入S3中并支持相应的格式转换,如将JSON转换成Parquet格式AWS整个方案最牛的地方还在与Kinesis可以访问GLUE中的え数据,这一点充分体现了AWS数据湖解决方案在生态上的完备性同样,在机器学习方面AWS提供了SageMaker服务,SageMaker可以读取S3中的训练数据并将训练恏的模型回写至S3中。但是有一点需要指出的是,在AWS的数据湖解决方案中流计算和机器学习并不是固定捆绑的,只是作为计算能力扩展能方便的集成。

最后让我们回到图6的数据湖组件参考架构,看看AWS的数据湖解决方案的组件覆盖情况参见图9。


图9. AWS 数据湖解决方案在参栲架构中的映射

综上AWS的数据湖解决方案覆盖了除质量管理和数据治理的所有功能。其实质量管理和数据治理这个工作和企业的组织结构、业务类型强相关需要做大量的定制开发工作,因此通用解决方案不囊括这块内容也是可以理解的。事实上现在也有比较优秀的开源项目支持这个项目,比如Apache Griffin如果对质量管理和数据治理有强诉求,可以自行定制开发

4.2 华为数据湖解决方案


图10.华为数据湖解决方案

华为嘚数据湖解决方案相关信息来自华为官网。目前官网可见的相关产品包括数据湖探索(Data Lake InsightDLI)和智能数据湖运营平台(DAYU)。其中DLI相当于是AWS的Lake Formation、GLUE、Athena、EMR(Flink&Spark)的集合官网上没找到关于DLI的整体架构图,我根据自己的理解尝试画了一个,主要是和AWS的解决方案有一个对比所以形式上盡量一致,如果有非常了解华为DLI的同学也请不吝赐教。

华为的数据湖解决方案比较完整DLI承担了所有的数据湖构建、数据处理、数据管悝、数据应用的核心功能。DLI最大的特色是在于分析引擎的完备性包括基于SQL的交互式分析以及基于Spark+Flink的流批一体处理引擎。在核心存储引擎仩DLI依然通过内置的OBS来提供,和AWS S3的能力基本对标华为数据湖解决方案在上下游生态上做的比AWS相对完善,对于外部数据源几乎支持所有目前华为云上提供的数据源服务。

DLI可以与华为的CDM(云数据迁移服务)和DIS(数据接入服务)对接:1)借助DISDLI可以定义各类数据点,这些点可鉯在Flink作业中被使用做为source或者sink;2)借助CDM,DLI甚至能接入IDC、第三方云服务的数据

为了更好的支持数据集成、数据开发、数据治理、质量管理等数据湖高级功能,华为云提供了DAYU平台DAYU平台是华为数据湖治理运营方法论的落地实现。DAYU涵盖了整个数据湖治理的核心流程并对其提供叻相应的工具支持;甚至在华为的官方文档中,给出了数据治理组织的构建建议DAYU的数据治理方法论的落地实现如图11所示(来自华为云官網)。

图11 DAYU数据治理方法论流程

可以看到本质上DAYU数据治理的方法论其实是传统数据仓库治理方法论在数据湖基础设施上的延伸:从数据模型来看,依然包括贴源层、多源整合层、明细数据层这点与数据仓库完全一致。根据数据模型和指标模型会生成质量规则和转换模型DAYU會和DLI对接,直接调用DLI提供的相关数据处理服务完成数据治理。华为云整个的数据湖解决方案完整覆盖了数据处理的生命周期,并且明確支持了数据治理并提供了基于模型和指标的数据治理流程工具,在华为云的数据湖解决方案中逐渐开始往“湖仓一体化”方向演进

4.3 阿里云数据湖解决方案

阿里云的基于数据库产品的数据湖解决方案更加聚焦,主打数据湖分析和联邦分析两个场景阿里云数据湖解决方案如图12所示。
图12. 阿里云数据湖解决方案

整个方案依然采用OSS作为数据湖的集中存储在数据源的支持上,目前也支持所有的阿里云数据库包括OLTP、OLAP和NoSQL等各类数据库。核心关键点如下:

1) 数据接入与搬迁在建湖过程中,DLA的Formation组件具备元数据发现和一键建湖的能力在本文写作之時,目前“一键建湖”还只支持全量建湖但是基于binlog的增量建湖已经在开发中了,预计近期上线增量建湖能力会极大的增加数据湖中数據的实时性,并将对源端业务数据库的压力降到最下这里需要注意的是,DLA Formation是一个内部组件对外并没有暴露。

2) 数据资源目录DLA提供Meta data catalog组件对于数据湖中的数据资产进行统一的管理,无论数据是在“湖中”还是在“湖外”Meta data catalog也是联邦分析的统一元数据入口。

3) 在内置计算引擎上DLA提供了SQL计算引擎和Spark计算引擎两种。无论是SQL还是Spark引擎都和Meta data catalog深度集成,能方便的获取元数据信息基于Spark的能力,DLA解决方案支持批处理、流计算和机器学习等计算模式

4) 在外围生态上,除了支持各类异构数据源做数据接入与汇聚之外在对外访问能力上,DLA与云原生数据倉库(原ADB)深度整合一方面,DLA处理的结果可之际推送至ADB中满足实时、交互式、ad hoc复杂查询;另一方面,ADB里的数据也可以借助外表功能佷方便的进行数据回流至OSS中。基于DLA阿里云上各类异构数据源可以完全被打通,数据自由流动

5) 在数据集成和开发上,阿里云的数据湖解决方案提供两种选择:一种是采用dataworks完成;另一种是采用DMS来完成无论是选择哪种,都能对外提供可视化的流程编排、任务调度、任务管悝能力在数据生命周期管理上,dataworks的数据地图能力相对更加成熟

6) 在数据管理和数据安全上,DMS提供了强大的能力DMS的数据管理粒度分为“库-表-列-行”,完善的支持企业级的数据安全管控需求除了权限管理之外,DMS更精细的地方是把原来基于数据库的devops理念扩展到了数据湖使得数据湖的运维、开发更加精细化。

进一步细化整个数据湖方案的数据应用架构如下图所示。


图13. 阿里云数据湖数据应用架构

自左向右從数据的流向来看数据生产者产生各类数据(云下/云上/其他云),利用各类工具上传至各类通用/标准数据源,包括OSS/HDFS/DB等针对各类数据源,DLA通过数据发现、数据接入、数据迁移等能力完整建湖操作。对于“入湖”的数据DLA提供基于SQL和Spark的数据处理能力,并可以基于Dataworks/DMS对外提供可视化的数据集成和数据开发能力;在对外应用服务能力上,DLA提供标准化的JDBC接口可以直接对接各类报表工具、大屏展示功能等。阿裏云的DLA的特色在于背靠整个阿里云数据库生态包括OLTP、OLAP、NoSQL等各类数据库,对外提供基于SQL的数据处理能力对于传统企业基于数据库的开发技术栈而言,转型成本相对较低学习曲线比较平缓。

阿里云的DLA解决方案的另一个特色在于“基于云原生的湖仓一体化”传统的企业级數据仓库在大数据时代的今天,在各类报表应用上依然是无法替代的;但是数仓无法满足大数据时代的数据分析处理的灵活性需求;因此我们推荐数据仓库应该作为数据湖的上层应用存在:即数据湖是原始业务数据在一个企业/组织中唯一官方数据存储地;数据湖根据各类業务应用需求,将原始数据进行加工处理形成可再次利用的中间结果;当中间结果的数据模式(Schema)相对固定后,DLA可以将中间结果推送至數据仓库供企业/组织开展基于数仓的业务应用。阿里云在提供DLA的同时还提供了云原生数仓(原ADB),DLA和云原生数仓在以下两点上深度融匼
1) 使用同源的SQL解析引擎。DLA的SQL与ADB的SQL语法上完全兼容这意味着开发者使用一套技术栈即能同时开发数据湖应用和数仓应用。
2) 都内置了對于OSS的访问支持OSS直接作为DLA的原生存储存在;对于ADB而言,可以通过外部表的能力很方便的访问OSS上的结构化数据。借助外部表数据可以洎由的在DLA和ADB之间流转,做到真正的湖仓一体

DLA+ADB的组合真正做到了云原生的湖仓一体(关于什么是云原生,不在本文的讨论范畴)本质上,DLA可以看成一个能力扩展的数据仓库贴源层与传统数仓相比,该贴源层:(1)可以保存各类结构化、半结构化和非结构化数据;(2)可鉯对接各类异构数据源;(3)具备元数据发现、管理、同步等能力;(4)内置的SQL/Spark计算引擎具备更强的数据处理能力满足多样化的数据处悝需求;(5)具备全量数据的全生命周期管理能力。基于DLA+ADB的湖仓一体化方案将同时覆盖“大数据平台+数据仓库”的处理能力。
DLA还有一个偅要能力是构建了一个“四通八达”的数据流动体系并以数据库的体验对外提供能力,无论数据在云上还是云下无论数据在组织内部還是外部;借助数据湖,各个系统之间的数据不再存在壁垒可以自由的流进流出;更重要的是,这种流动是受监管的数据湖完整的记錄了数据的流动情况。

Azure的数据湖解决方案包括数据湖存储、接口层、资源调度与计算引擎层如图15所示(来自Azure官网)。存储层是基于Azure object Storage构建嘚依然是对结构化、半结构化和非结构化数据提供支撑。接口层为WebHDFS比较特别的是在Azure object Storage实现了HDFS的接口,Azure把这个能力称为“数据湖存储上的哆协议存取”在资源调度上,Azure基于YARN实现计算引擎上,Azure提供了U-SQL、hadoop和Spark等多种处理引擎

Azure的特别之处是基于visual studio提供给了客户开发的支持。

1)开發工具的支持与visual studio的深度集成;Azure推荐使用U-SQL作为数据湖分析应用的开发语言。Visual studio为U-SQL提供了完备的开发环境;同时为了降低分布式数据湖系统開发的复杂性,visual studio基于项目进行封装在进行U-SQL开发时,可以创建“U-SQL database project”在此类项目中,利用visual studio可以很方便的进行编码与调试,同时也提供姠导,将开发好的U-SQL脚本发布到生成环境U-SQL支持Python、R进行扩展,满足定制开发需求

本文所讨论的是数据湖的解决方案,不会涉及到任何云厂商的单个产品我们从数据接入、数据存储、数据计算、数据管理、应用生态几个方面,简单做了一个类似下表的总结
出于篇幅关系,其实知名云厂商的数据湖解决方案还有谷歌和腾讯的这两家从其官方网站上看,数据湖解决方案相对来讲比较简单也仅仅是一些概念仩的阐述,推荐的落地方案是“oss+hadoop(EMR)”其实数据湖不应该从一个简单的技术平台视角来看,实现数据湖的方式也多种多样评价一个数據湖解决方案是否成熟,关键应该看其提供的数据管理能力具体包括但不限于元数据、数据资产目录、数据源、数据处理任务、数据生命周期、数据治理、权限管理等;以及与外围生态的对接打通能力。

五、典型的数据湖应用案例

近年来流量获取的成本就越来越高,线仩渠道获客成本的成倍增长让各行各业都面临着严峻的挑战在互联网广告成本不断攀升的大背景下,以花钱买流量拉新为主要的经营策畧必然行不通了流量前端的优化已成强弩之末,利用数据工具提高流量到站后的目标转化精细化运营广告投放的各个环节,才是改变現状更为直接有效的方式说到底,要提高广告流量的转化率必须依靠大数据分析。

为了能够提供更多的决策支撑依据需要采取更多嘚埋点数据的收集和分析,包括但不限于渠道、投放时间、投放人群以点击率为数据指标进行数据分析,从而给出更好的、更迅速的方案和建议实现高效率高产出。因此面对广告投放领域多维度、多媒体、多广告位等结构化、半结构化和非结构化数据采集、存储、分析和决策建议等要求,数据湖分析产品解决方案在广告主或者发布商进行新一代技术选型中上受到了很热烈的青睐

DG是一家全球领先的企業国际化智能营销服务商,基于先进的广告技术、大数据和运营能力为客户提供全球高质量用户获取及流量变现服务。DG从成立之初就决萣以公有云为基础来构建其IT基础设施最初DG选择了AWS云平台,主要将其广告数据在S3中以数据湖的形态进行存放通过Athena进行交互式分析。然而隨着互联网广告的飞速发展广告行业带来了几大挑战,移动广告的发布与追踪系统必须解决几个关键问题:

1) 并发性与峰值问题在广告行业,流量高峰时常出现瞬间的点击量可能达到数万,甚至数十万这就要求系统具备非常好的可扩展性以快速响应和处理每一次点擊

2) 如何实现对海量数据的实时分析。为了监控广告投放效果系统需要实时对用户的每一次点击和激活数据进行分析,同时把相关数据傳输到下游的媒体;

3) 平台的数据量在急剧增长每天的业务日志数据在持续的产生和上传,曝光、点击、推送的数据在持续处理每天噺增的数据量已经在10-50TB左右,对整个数据处理系统提出了更高的要求如何高效地完成对广告数据的离线/近实时统计,按照广告客户的维度偠求进行聚合分析

针对上述三点业务挑战,同时DG这个客户日增量数据正在急剧变大(当前日数据扫描量达到100+TB)继续在AWS平台使用遇到Athena读取S3数据带宽瓶颈、数据分析滞后时间越来越长、为应对数据和分析需求增长而急剧攀升的投入成本等,经过认真、仔细的测试和分析最終决定从AWS云平台全量搬站到阿里云平台,新架构图如下:
图16. 改造后的广告数据湖方案架构

从AWS搬站到阿里云后我们为该客户设计了“利用Data Lake Analytics + OSS”极致分析能力来应对业务波峰波谷。一方面轻松应对来自品牌客户的临时分析另一方面利用Data Lake Analytics的强大计算能力,分析按月、季度广告投放精确计算出一个品牌下面会有多少个活动,每个活动分媒体分市场,分频道分DMP的投放效果,进一步增强了加和智能流量平台为品牌营销带来的销售转化率并且在广告投放与分析的总拥有成本上,Data Lake Analytics提供的Serverless的弹性服务为按需收费不需要购买固定的资源,完全契合业務潮汐带来的资源波动满足弹性的分析需求,同时极大地降低了运维成本和使用成本


图17 数据湖部署示意图

总体上,DG从AWS切换到阿里云后极大地节省了硬件成本、人力成本和开发成本。由于采用DLA serverless云服务DG无需先期投入大量的资金去购买服务器、存储等硬件设备,也无需一佽性购买大量的云服务其基础设施的规模完全是按需扩展:需求高的时候增加服务数量,需求减少的时候减少服务数量提高了资金的利用率。使用阿里云平台带来的第二个显著好处是性能的提升在DG业务的快速增长期以及后续多条业务线接入期,DG在移动广告系统的访问量经常呈爆发式增长然而原先AWS方案和平台在Athena读取S3数据遇到数据读取带宽的极大瓶颈,数据分析的时间变得越来越长阿里云DLA联合OSS团队等進行了极大的优化和改造,同时DLA数据库分析在计算引擎上(与TPC-DS打榜世界第一的AnalyticDB共享计算引擎)比Presto原生计算引擎的能力提升数十倍性能,吔极大的为DG提升了分析性能

数据湖是一类TCO表现极其优秀的大数据基础设施。对于很多快速增长的游戏公司而言一个爆款游戏,往往在短期内相关数据增长极快;同时公司的研发人员的技术栈很难在短期内与数据的增量和增速进行匹配;此时,呈爆发增长的数据很难被囿效利用数据湖是一个解决此类问题的技术选择。

YJ是一家高速成长的游戏公司公司希望能依托相关用户行为数据进行深入分析,指导遊戏的开发和运营数据分析背后的核心逻辑在于随着游戏行业市场竞争局面的扩大,玩家对于品质的要求越来越高游戏项目的生命周期越来越短,直接影响项目的投入产出比通过数据运营则可以有效的延长项目的生命周期,对各个阶段的业务走向进行精准把控而随著流量成本的日益上升,如何构建经济、高效的精细化数据运营体系以更好的支撑业务发展,也变得愈发重要起来数据运营体系就需偠有其配套的基础支撑设施,如何选择这类基础支撑设施是公司技术决策者需要思考的问题。思考的出发点包括:

1) 要有足够的弹性對于游戏而言,往往就是短时间爆发数据量激增;因此,能否适应数据的爆发性增长满足弹性需求是一个重点考量的点;无论是计算還是存储,都需要具备足够的弹性

2) 要有足够的性价比。对于用户行为数据往往需要拉到一个很长的周期去分析去对比,比如留存率不少情况下需要考虑90天甚至180天客户的留存率;因此,如何以最具性价比的方式长期存储海量数据是需要重点考虑的问题

3) 要有够用的汾析能力,且具备可扩展性许多情况下,用户行为体现在埋点数据中埋点数据又需要与用户注册信息、登陆信息、账单等结构化数据關联分析;因此,在数据分析上至少需要有大数据的ETL能力、异构数据源的接入能力和复杂分析的建模能力。

要与公司现有技术栈相匹配且后续利于招聘。对于YJ其在技术选型的时候一个重要点就是其技术人员的技术栈,YJ的技术团队大部分只熟悉传统的数据库开发即MySQL;並且人手紧张,做数据运营分析的技术人员只有1个短时间内根本没有能力独立构建大数据分析的基础设施。从YJ的角度出发最好绝大多數分析能够通过SQL完成;并且在招聘市场上,SQL开发人员的数量也远高于大数据开发工程师的数量针对客户的情况,我们帮助客户对现有方案做了改造


图18. 改造前的方案

改造前,客户所有的结构化数据都在一个高规格的MySQL里面;而玩家行为数据则是通过LogTail采集至日志服务(SLS)中嘫后从日志服务中分别投递到OSS和ES里。这个架构的问题在于:1)行为数据和结构化数据完全割裂无法联动分析;2)对于行为数据智能提供檢索功能,无法做深层次的挖掘分析;3)OSS仅仅作为数据存储资源使用并没有挖掘出足够的数据价值。

事实上我们分析客户现存架构其實已经具备了数据湖的雏形:全量数据已经在OSS中保存下来了,现在需要进一步补齐客户对于OSS中的数据的分析能力而且数据湖基于SQL的数据處理模式也满足客户对于开发技术栈的需求。综上我们对客户的架构做了如下调整,帮助客户构建了数据湖


图19. 改造后的数据湖解决方案

总体上,我们没有改变客户的数据链路流转只是在OSS的基础上,增加了DLA组件对OSS的数据进行二次加工处理。DLA提供了标准SQL计算引擎同时支持接入各类异构数据源。基于DLA对OSS的数据进行处理后生成业务直接可用的数据。但是DLA的问题在于无法支撑低延迟需求的交互式分析场景为了解决这个问题,我们引入了云原生数据仓库ADB来解决交互式分析的延迟性问题;同时在最前端引入QuickBI作为客户的可视化分析工具。YJ方案是图14所示的湖仓一体化解决方案在游戏行业的一个经典落地案例

YM是一家数据智能服务提供商,面向各类中小商家提供一系列数据分析運营服务具体实现的技术逻辑如下图所示。


图20. YM智能数据服务SaaS模式示意

平台方提供多端SDK供用户(商家提供网页、APP、小程序等多种接入形式)接入各类埋点数据平台方以SaaS的形式提供统一的数据接入服务和数据分析服务。商家通过访问各类数据分析服务来进行更细粒度的埋点數据分析完成行为统计、客户画像、客户圈选、广告投放监测等基本分析功能。然而这种SaaS模式下,会存在一定的问题:

1) 由于商家类型和需求的多样化平台提供SaaS类分析功能很难覆盖所有类型的商家,无法满足商家的定制化需求;如有些商家关注销量有些关注客户运營,有些关注成本优化很难满足所有的需求。

2) 对于一些高级分析功能如依赖于自定义标签的客户圈选、客户自定义扩展等功能,统┅的数据分析服务无法满足的;特别是一些自定义的标签依赖于商家自定义的算法无法满足客户的高级分析需求。

3) 数据的资产化管理需求在大数据时代,数据是一个企业/组织的资产已经成为了大家的共识如何能让属于商家的数据合理、长期的沉淀下来,也是SaaS服务需偠考虑的事情

综上,我们在上图的基本模式上引入了数据湖模式让数据湖作为商家沉淀数据、产出模型、分析运营的基础支撑设施。引入数据湖后的SaaS数据智能服务模式如下


图21. 基于数据湖的数据智能服务

如图21所示,平台方为每个用户提供一键建湖服务商家使用该功能構建自己的数据湖,“一键建湖”能力一方面帮助商家将所有埋点数据的数据模型(schema)同步至数据湖中;另一方面将属于该商家的所有埋点数据全量同步至数据湖中,并基于“T+1”的模式将每天的增量数据归档入湖。基于数据湖的服务模式在传统的数据分析服务的基础上赋予了用户数据资产化、分析模型化和服务定制化三大能力:

1) 数据资产化能力。利用数据湖商家可以将属于自己的数据持续沉淀下來,保存多长时间的数据耗费多少成本,完全由商家自主决定数据湖还提供了数据资产管理能力,商家除了能管理原始数据外还能將处理过的过程数据和结果数据分门别类保存,极大的提升了埋点数据的价值

2) 分析模型化能力。数据湖中不仅仅有原始数据还有埋點数据的模型(schema)。埋点数据模型体现了全域数据智能服务平台对于业务逻辑的抽象通过数据湖,除了将原始数据作为资产输出外还將数据模型进行了输出,借助埋点数据模型商家可以更深入的理解埋点数据背后所体现的用户行为逻辑,帮助商家更好的洞察客户行为获取用户需求。

3) 服务定制化能力借助数据湖提供的数据集成和数据开发能力,基于对埋点数据模型的理解商家可以定制数据处理過程,不断对原始数据进行迭代加工从数据中提炼有价值的信息,最终获得超越原有数据分析服务的价值

六、数据湖建设的基本过程

個人认为数据湖是比传统大数据平台更为完善的大数据处理基础支撑设施,完善在数据湖是更贴近客户业务的技术存在所有数据湖所包括的、且超出大数据平台存在的特性,例如元数据、数据资产目录、权限管理、数据生命周期管理、数据集成和数据开发、数据治理和质量管理等无一不是为了更好的贴近业务,更好的方便客户使用数据湖所强调的一些基本的技术特性,例如弹性、存储计算独立扩展、統一的存储引擎、多模式计算引擎等等也是为了满足业务需求,并且给业务方提供最具性价比的TCO

数据湖的建设过程应该与业务紧密结匼;但是数据湖的建设过程与传统的数据仓库,甚至是大热的数据中台应该是有所区别的区别在于,数据湖应该以一种更敏捷的方式去構建“边建边用,边用边治理”为了更好的理解数据湖建设的敏捷性,我们先来看一下传统数仓的构建过程业界对于传统数仓的构建提出了“自下而上”和“自顶而下”两种模式,分别由Inmon和KimBall两位大牛提出具体的过程就不详述了,不然可以再写出几百页这里只简单闡述基本思想。

1)Inmon提出自下而上(EDW-DM)的数据仓库建设模式即操作型或事务型系统的数据源,通过ETL抽取转换和加载到数据仓库的ODS层;ODS层中嘚数据根据预先设计好的EDW(企业级数据仓库)范式进行加工处理,然后进入到EDWEDW一般是企业/组织的通用数据模型,不方便上层应用直接莋数据分析;因此各个业务部门会再次根据自己的需要,从EDW中处理出数据集市层(DM)

优势:易于维护,高度集成;劣势:结构一旦确萣灵活性不足,且为了适应业务部署周期较长。此类方式构造的数仓适合于比较成熟稳定的业务,例如金融

2)KimBall提出自顶而下(DM-DW)嘚数据架构,通过将操作型或事务型系统的数据源抽取或加载到ODS层;然后通过ODS的数据,利用维度建模方法建设多维主题数据集市(DM)各个DM,通过一致性的维度联系在一起最终形成企业/组织通用的数据仓库。

优势:构建迅速最快的看到投资回报率,敏捷灵活;劣势:莋为企业资源不太好维护结构复杂,数据集市集成困难常应用于中小企业或互联网行业。

其实上述只是一个理论上的过程其实无论昰先构造EDW,还是先构造DM都离不开对于数据的摸底,以及在数仓构建之前的数据模型的设计包括当前大热的“数据中台”,都逃不出下圖所示的基本建设过程


图22. 数据仓库/数据中台建设基本流程

1) 数据摸底。对于一个企业/组织而言在构建数据湖初始工作就是对自己企业/組织内部的数据做一个全面的摸底和调研,包括数据来源、数据类型、数据形态、数据模式、数据总量、数据增量等在这个阶段一个隐含的重要工作是借助数据摸底工作,进一步梳理企业的组织结构明确数据和组织结构之间关系。为后续明确数据湖的用户角色、权限设計、服务方式奠定基础

2) 模型抽象。针对企业/组织的业务特点梳理归类各类数据对数据进行领域划分,形成数据管理的元数据同时基于元数据,构建通用的数据模型

3) 数据接入。根据第一步的摸排结果确定要接入的数据源。根据数据源确定所必须的数据接入技術能力,完成数据接入技术选型接入的数据至少包括:数据源元数据、原始数据元数据、原始数据。各类数据按照第二步形成的结果汾类存放。

4) 融合治理简单来说就是利用数据湖提供的各类计算引擎对数据进行加工处理,形成各类中间数据/结果数据并妥善管理保存。数据湖应该具备完善的数据开发、任务管理、任务调度的能力详细记录数据的处理过程。在治理的过程中会需要更多的数据模型囷指标模型。

5) 业务支撑在通用模型基础上,各个业务部门定制自己的细化数据模型、数据使用流程、数据访问服务

上述过程,对于┅个快速成长的互联网企业来说太重了,很多情况下是无法落地的最现实的问题就是第二步模型抽象,很多情况下业务是在试错、茬探索,根本不清楚未来的方向在哪里也就根本不可能提炼出通用的数据模型;没有数据模型,后面的一切操作也就无从谈起这也是佷多高速成长的企业觉得数据仓库/数据中台无法落地、无法满足需求的重要原因之一。

数据湖应该是一种更为“敏捷”的构建方式我们建议采用如下步骤来构建数据湖。


图23. 数据湖建设基本流程

对比图22依然是五步,但是这五步是一个全面的简化和“可落地”的改进

1) 数據摸底。依然需要摸清楚数据的基本情况包括数据来源、数据类型、数据形态、数据模式、数据总量、数据增量。但是也就需要做这麼多了。数据湖是对原始数据做全量保存因此无需事先进行深层次的设计。

2) 技术选型根据数据摸底的情况,确定数据湖建设的技术選型事实上,这一步也非常的简单因为关于数据湖的技术选型,业界有很多的通行的做法基本原则个人建议有三个:“计算与存储汾离”、“弹性”、“独立扩展”。建议的存储选型是分布式对象存储系统(如S3/OSS/OBS);计算引擎上建议重点考虑批处理需求和SQL处理能力因為在实践中,这两类能力是数据处理的关键关于流计算引擎后面会再讨论一下。无论是计算还是存储建议优先考虑serverless的形式;后续可以茬应用中逐步演进,真的需要独立资源池了再考虑构建专属集群。

3) 数据接入确定要接入的数据源,完成数据的全量抽取与增量接入

4) 应用治理。这一步是数据湖的关键我个人把“融合治理”改成了“应用治理”。从数据湖的角度来看数据应用和数据治理应该是楿互融合、密不可分的。从数据应用入手在应用中明确需求,在数据ETL的过程中逐步形成业务可使用的数据;同时形成数据模型、指标體系和对应的质量标准。数据湖强调对原始数据的存储强调对数据的探索式分析与应用,但这绝对不是说数据湖不需要数据模型;恰恰楿反对业务的理解与抽象,将极大的推动数据湖的发展与应用数据湖技术使得数据的处理与建模,保留了极大的敏捷性能快速适应業务的发展与变化。

从技术视角来看数据湖不同于大数据平台还在于数据湖为了支撑数据的全生命周期管理与应用,需要具备相对完善嘚数据管理、类目管理、流程编排、任务调度、数据溯源、数据治理、质量管理、权限管理等能力在计算能力上,目前主流的数据湖方案都支持SQL和可编程的批处理两种模式(对机器学习的支持可以采用Spark或者Flink的内置能力);在处理范式上,几乎都采用基于有向无环图的工莋流的模式并提供了对应的集成开发环境。对于流式计算的支持目前各个数据湖解决方案采取了不同的方式。在讨论具体的方式之前我们先对流计算做一个分类:

1) 模式一:实时模式。这种流计算模式相当于对数据采用“来一条处理一条”/“微批”的方式进行处理;哆见于在线业务如风控、推荐、预警等。

2) 模式二:类流式这种模式需要获取指定时间点之后变化的数据/读取某一个版本的数据/读取當前的最新数据等,是一种类流式的模式;多见于数据探索类应用如分析某一时间段内的日活、留存、转化等。

二者的本质不同在于模式一处理数据时,数据往往还没有存储到数据湖中仅仅是在网路/内存中流动;模式二处理数据时,数据已经存储到数据湖中了综上,我个人建议采用如下图模式:


图24 数据湖数据流向示意图

如图24所示在需要数据湖具备模式一的处理能力时,还是应该引入类Kafka中间件作為数据转发的基础设施。完整的数据湖解决方案方案应该提供将原始数据导流至Kafka的能力流式引擎具备从类Kafka组件中读取数据的能力。流式計算引擎在处理数据过后根据需要,可以将结果写入OSS/RDBMS/NoSQL/DW供应用访问。某种意义上模式一的流计算引擎并非一定要作为数据湖不可分割嘚一部分存在,只需要在应用需要时能够方便的引入即可。但是这里需要指出的是:

1)流式引擎依然需要能够很方便的读取数据湖的え数据;

2)流式引擎任务也需要统一的纳入数据湖的任务管理;

3)流式处理任务依然需要纳入到统一的权限管理中。

对于模式二本质上哽接近于批处理。现在许多经典的大数据组件已经提供了支持方式如HUDI/IceBerg/Delta等,均支持Spark、Presto等经典的计算引擎以HUDI为例,通过支持特殊类型的表(COW/MOR)提供访问快照数据(指定版本)、增量数据、准实时数据的能力。目前AWS、腾讯等已经将HUDI集成到了其EMR服务中阿里云的DLA也正在计划推絀DLA on

让我们再回到本文开头的第一章,我们说过数据湖的主要用户是数据科学家和数据分析师,探索式分析和机器学习是这类人群的常见操作;流式计算(实时模式)多用于在线业务严格来看,并非数据湖目标用户的刚需但是,流式计算(实时模式)是目前大多数互联網公司在线业务的重要组成部分而数据湖作为企业/组织内部的数据集中存放地,需要在架构上保持一定的扩展能力可以很方便的进行擴展,整合流式计算能力

5) 业务支撑。虽然大多数数据湖解决方案都对外提供标准的访问接口如JDBC,市面上流行的各类BI报表工具、大屏笁具也都可以直接访问数据湖中的数据但是在实际的应用中,我们还是建议将数据湖处理好的数据推送到对应的各类支持在线业务的数據引擎中去能够让应用有更好的体验。

数据湖作为新一代大数据分析处理的基础设施需要超越传统的大数据平台。个人认为目前在以丅方面是数据湖解决方案未来可能的发展方向。

1) 云原生架构关于什么是云原生架构,众说纷纭很难找到统一的定义。但是具体到數据湖这个场景个人认为就是以下三点特征:(1)存储和计算分离,计算能力和存储能力均可独立扩展;(2)多模态计算引擎支持SQL、批处理、流式计算、机器学习等;(3)提供serverless态服务,确保足够的弹性以及支持按需付费

2) 足够用的数据管理能力。数据湖需要提供更为強大的数据管理能力包括但不限于数据源管理、数据类目管理、处理流程编排、任务调度、数据溯源、数据治理、质量管理、权限管理等。

3) 大数据的能力数据库的体验。目前绝大多数数据分析人员都只有数据库的使用经验大数据平台的能力虽强,但是对于用户来说並不友好数据科学家和数据数据分析师应该关注数据、算法、模型及其与业务场景的适配,而不是花大量的时间精力去学习大数据平台嘚开发数据湖要想快速发展,如何为用户提供良好的使用体验是关键基于SQL的数据库应用开发已经深入人心,如何将数据湖的能力通过SQL嘚形式释放出来是未来的一个主要方向。

4) 完善的数据集成与数据开发能力对各种异构数据源的管理与支持,对异构数据的全量/增量遷移支持对各种数据格式的支持都是需要不断完善的方向。同时需要具备一个完备的、可视化的、可扩展的集成开发环境。

5) 与业务嘚深度融合与集成典型数据湖架构的构成基本已经成为了业界共识:分布式对象存储+多模态计算引擎+数据管理。决定数据湖方案是否胜絀的关键恰恰在于数据管理无论是原始数据的管理、数据类目的管理、数据模型的管理、数据权限的管理还是处理任务的管理,都离不開与业务的适配和集成;未来会有越来越多的行业数据湖解决方案涌现出来,与数据科学家和数据分析师形成良性发展与互动如何在數据湖解决方案中预置行业数据模型、ETL流程、分析模型和定制算法,可能是未来数据湖领域差异化竞争的一个关键点

我要回帖

更多关于 数据分发协议 的文章

 

随机推荐