一文理清区块链里那些容易混淆的概念-36大数据
作者:谢文杰
我们在研究区块链的过程中发现,区块链的发展和云计算有非常多的相似之处,因此便有了此文,带领大家从宏观的角度认识区块链和云计算。前两期我们介绍了区块链和云计算的底层三要素及类型( 连载1 | 连载2 ),这期再换个角度,我们从各自的形态上来看有什么特点。
云计算
IaaS(Infrastructure-as-a-Service,基础设施即服务)
第一层叫做IaaS,有时候也叫做Hardware-as-a-Service,几年前如果你想在办公室或者公司的网站上运行一些企业应用,你需要去买服务器,或者别的高昂的硬件来控制本地应用,让你的业务运行起来。但是现在有IaaS,你可以将硬件外包到别的地方去。IaaS公司会提供场外服务器,存储和网络硬件,你可以租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行其应用。
一些大的IaaS公司包括Amazon, Microsoft, VMWare, Rackspace和Red Hat.不过这些公司又都有自己的专长,比如Amazon和微软给你提供的不只是IaaS,他们还会将其计算能力出租给你来host你的网站。
作用
通过IaaS这种模式,用户可以从供应商那里获得他所需要的虚拟机或者存储等资源来装载相关的应用,同时这些基础设施的繁琐的管理工作将由IaaS供应商来处理。IaaS能通过它上面对虚拟机支持众多的应用。IaaS主要的用户是系统管理员。
产品
主要产品包括:Amazon EC2,Linode,Joyent,Rackspace,IBM Blue Cloud和Cisco UCS等。
功能
IaaS供应商需要在那些方面对基础设施进行管理以给用户提供资源?或者说IaaS云有那些功能?在《虚拟化与云计算》中列出了IaaS的七个基本功能:
- 资源抽象:使用资源抽象的方法(比如,资源池)能更好地调度和管理物理资源。
- 资源监控:通过对资源的监控,能够保证基础实施高效率的运行。
- 负载管理:通过负载管理,不仅能使部署在基础设施上的应用运能更好地应对突发情况,而且还能更好地利用系统资源。
- 数据管理:对云计算而言,数据的完整性,可靠性和可管理性是对IaaS的基本要求。
- 资源部署:也就是将整个资源从创建到使用的流程自动化。
- 安全管理:IaaS的安全管理的主要目标是保证基础设施和其提供的资源能被合法地访问和使用。
- 计费管理:通过细致的计费管理能使用户更灵活地使用资源。
PaaS(Platform-as-a-Service,平台即服务)
第二层就是所谓的PaaS,某些时候也叫做中间件。你公司所有的开发都可以在这一层进行,节省了时间和资源。
PaaS公司在网上提供各种开发和分发应用的解决方案,比如虚拟服务器和操作系统。这节省了你在硬件上的费用,也让分散的工作室之间的合作变得更加容易。网页应用管理,应用设计,应用虚拟主机,存储,安全以及应用开发协作工具等。
作用
通过PaaS这种模式,用户可以在一个包括SDK,文档和测试环境等在内的开发平台上非常方便地编写应用,而且不论是在部署,或者在运行的时候,用户都无需为服务器,操作系统,网络和存储等资源的管理操心,这些繁琐的工作都由PaaS供应商负责处理,而且PaaS在整合率上面非常惊人,比如一台运行Google App Engine的服务器能够支撑成千上万的应用,也就是说,PaaS是非常经济的。PaaS主要的用户是开发人员。
产品
一些大的PaaS提供者有Google App Engine,Microsoft Azure,Force.com,Heroku,Engine Yard。新兴的公司有AppFog,Mendix和Standing Cloud
功能
为了支撑着整个PaaS平台的运行,供应商需要提供那么功能?主要有四大功能:
- 友好的开发环境:通过提供SDK和IDE等工具来让用户能在本地方便地进行应用的开发和测试。
- 丰富的服务:PaaS平台会以API的形式将各种各样的服务提供给上层的应用。
- 自动的资源调度:也就是可伸缩这个特性,它将不仅能优化系统资源,而且能自动调整资源来帮助运行于其上的应用更好地应对突发流量。
- 精细的管理和监控:通过PaaS能够提供应用层的管理和监控,比如,能够观察应用运行的情况和具体数值(比如,吞吐量和反映时间)来更好地衡量应用的运行状态,还有能够通过精确计量应用使用所消耗的资源来更好地计费。
SaaS(Software-as-a-Service,软件即服务)
第三层也就是所谓SaaS。这一层是和你的生活每天接触的一层,大多是通过网页浏览器来接入。任何一个远程服务器上的应用都可以通过网络来运行,就是SaaS了。
你消费的服务完全是从网页如Netflix, MOG, Google Apps, Box.NET, Dropbox或者苹果的iCloud那里进入这些分类。尽管这些网页服务是用作商务和娱乐或者两者都有,但这也算是云技术的一部分。
一些用作商务的SaaS应用包括Citrix的GoToMeeting,Cisco的WebEx,Salesforce的CRM,ADP,Workday和SuccessFactors。
作用
通过SaaS这种模式,用户只要接上网络,并通过浏览器,就能直接使用在云端上运行的应用,而不需要顾虑类似安装等琐事,并且免去初期高昂的软硬件投入。SaaS主要面对的是普通的用户。
产品
主要产品包括:Salesforce Sales Cloud,Google Apps,Zimbra,Zoho和IBM Lotus Live等。
功能
谈到SaaS的功能,也可以认为是要实现SaaS服务,供应商需要完成那些功能?主要有四个方面:
- 随时随地访问:在任何时候或者任何地点,只要接上网络,用户就能访问这个SaaS服务。
- 支持公开协议:通过支持公开协议(比如HTML4/5),能够方便用户使用。
- 安全保障:SaaS供应商需要提供一定的安全机制,不仅要使存储在云端的用户数据处于绝对安全的境地,而且也要在客户端实施一定的安全机制(比如HTTPS)来保护用户。
- 多租户(Multi-Tenant)机制:通过多住户机制,不仅能更经济地支撑庞大的用户规模,而且能提供一定的可定制性以满足用户的特殊需求。
BaaS(Backend as a Service,后端即服务)
BaaS 是一种新型的云服务,旨在为移动和 Web 应用提供后端云服务,包括云端数据/文件存储、账户管理、消息推送、社交媒体整合等。BaaS 是垂直领域的云服务,随着移动互联网的持续火热,BaaS 也受到越来越多的开发者的亲睐。它作为应用开发的新模型,可以降低开发者成本,让开发者只需专注于具体的开发工作。
BaaS是移动中间件的替代品(或者说备选方案),它使用统一的API和SDK来连接移动应用到后端云存储,传统的移动中间件通过本地的物理服务把后端服务集成到应用中。而BaaS通过云来集成后端服务。中间件和BaaS的最大不同是它们是否包含或者提供云的服务,BaaS可以说是PaaS平台在移动垂直领域的延伸,更可以说是移动中间件和云的融合。而现在它们都在以不同的形式来存在,云的优势很明显,那就是简单、成本低廉,中间件的优势是数据安全、易于扩展。所以从现在的趋势来看,它们不存在明显的取代关系,只不过可能以后BaaS的体量会更大。移动中间件将更多的被有能力的企业使用,同时也会有越来越多的中小型企业、开发者选择使用BaaS。
虽然BaaS属于PaaS的范畴,但两者也有区别。Quora上有人简要描述了二者的不同,BaaS简化了应用开发流程,而PaaS简化了应用部署流程。PaaS是一个执行代码以及管理应用运行环境的开发平台,用户通过SVN或者Git之类的代码版本管理工具与平台交互,对于开发者来说,PaaS就像是一个容器,输入是代码和配置文件,输出是一个可访问应用的URL。而BaaS平台进一步将用户需求进行了抽象,比如用户管理,开发者希望创建用户数据库表(模型)后,客户端就可以通过Restful接口直接操作对应的模型,所有的操作都可以被抽象为CRUD。之前,开发者需要创建表、写接口、写校验,而在BaaS平台中,开发者只需要定义模型,平台就会自动生成对应的接口,这可以让开发者更加专注具体的客户端代码。专门针对手机端的BaaS服务称为MBaaS,目前大多的BaaS平台都属于这一类。
随着移动互联网的发展,移动行业的分工也会像其它行业一样逐渐细化,后端服务就是这样被抽象出来,它统一向开发者提供文件存储、数据存储、推送服务等实现难度较高的功能,以帮助开发者快速开发移动应用。在国外,BaaS服务已经受到巨头的重视,2013年4月,Facebook收购Parse;2014年6月,苹果发布了CloudKit;2014年10月,Google收购了Firebase。Parse、CloudKit、Filrebase都是国外知名的BaaS类产品,苹果和谷歌通过BaaS服务可以更好的完善其生态圈,Parse也可以帮助Facebook建立它在移动端的地位,从巨头们在BaaS方面的布局也可以看出BaaS的价值。总体来说,BaaS平台的优势包括(来自搜狗百科):
- 提高效率:减少移动APP开发中各个环节的成本,提高效率。
- 缩短上市时间:减少从构思到制作过程中的阻碍,并降低上线后的运营成本。
- 减少交付APP所需的资源:BaaS需要的开发者和IT资源更少。
- 针对手机和平板优化:BaaS供应商在优化移动APP数据和网络上花费了大量时间和资源,减少了跨平台和移动终端的碎片化的问题。
- 安全和弹性的基础设施:BaaS提供捆绑的基础设施,解决了弹性、安全性和性能等运营难题,让开发者专注开发。
- 大量的常用API资源:BaaS将常用和必要的第三方API资源汇总,省去开发者单独收集的麻烦。
它们主要提供的服务包括:
- 数据存储。用户可以通过可视化的界面设计数据库,包括创建Class、定义字段、录入数据等。同时,BaaS平台可以自动生成对应的Restful API,用户可以通过任何语言操作已有的API,另外,平台也内置用户系统、角色系统、文件系统、权限控制等模块。
- 数据推送。结合APP中的标签设置,针对不同属性的用户推送差异化信息,包括定时推送、离线推送等。
- 版本管理。支持iOS及Android版本的同步或异步管理,在控制台内流程化进行开发和版本管理。支持增量更新,终端用户可在应用内进行更新。
数据统计。平台可以查看应用的新增用户以及活跃用户数据,并支持自定义事件统计。
区块链
Crypto Currency
区块链最为人熟知的应用即密码学货币,也被经常称为虚拟货币。然而,密码学货币并不等同于数字货币(Digital Currency),也不等同于虚拟货币(Virtual Currency)。密码学货币指依靠密码技术和校验技术来创建,分发和维持的数字货币,如比特币(BTC)、莱特货币(LTC)等。
2009年出现的比特币是第一个去中心化的密码学货币。之后,大量的密码学货币涌现,这些密码学货币通常被称为山寨币(altcoins)。多数密码学货币都设计成通缩的形态,即货币总量的增加速度会逐渐变慢,最终会到达一个固定值,类似贵金属的产出。这类密码学货币相对于中心化的数字货币有一个共同点即去中心化。这类去中心化的实现都是依托于区块链技术种的去中心化属性。和法定货币相比,密码学货币没有一个集中的发行方,而是由网络节点的计算生成,谁都有可能参与制造密码学货币,而且可以全世界流通,可以在任意一台接入互联网的电脑上交易,不管身处何方,任何人都可以挖掘、收取或转出密码学货币,并且在交易过程中接收方仅需依靠密码学算法来确认交易有效性,无需辨认用户身份信息或发送途径等。
密码学货币的特点有:
- 去中心化:多数密码学货币是一种分布式的虚拟货币,整个网络由用户构成,没有中央银行。去中心化是多数密码学货币安全与自由的保证。
- 全世界流通:密码学货币可以在任意一台接入互联网的电脑或手机上管理,前提是你有证明所有权的私钥。
- 专属所有权:密码学货币依靠私钥确认所有权,它可以被隔离保存在任何存储介质。除了用户自己之外无人可以获取。
但密码学货币也有自己的弊端,比如:
51%攻击,由于密码学货币的去中心化属性,如果有人控制了整个网络上的51%的算力,篡改一段时间之前交易的几率就会变高。
多数密码学货币的交易确认时间较长,交易时,为了确认数据准确性,需要和p2p网络进行交互,得到全网确认后,交易才算完成。此外初次启动时,也需要消耗大量时间下载历史交易数据。
DLT
密码学货币的火热高速推动了区块链技术的发展,金融机构越来越多的关注到了这个领域。随着金融机构的关注度上升,密码学货币中的去中心化属性也成了热门话题,公有链、私有链、联盟链的划分也逐渐展露。此时,分布式账本技术(Distributed Ledger Technology,DLT)这个名词也应运而生。DLT的诞生主要是为了区别于区块链概念,由于密码学货币的去中心化是最大的亮点,其背后的区块链技术也通常被认为自带去中心化属性,金融机构为了移除这种去中心化的属性,就非常需要DLT这个概念。
目前,DLT可以说是区块链技术应用在金融机构中最重要的形态,该技术可以移除当前市场基础设施中的效率极低和成本高昂的部分。
DLT从实质上说就是一个可以在多个站点、不同地理位置或者多个机构组成的网络里进行分享的资产数据库。在一个网络里的参与者可以获得一个唯一、真实账本的副本。账本里的任何改动都会在所有的副本中被反映出来,反应时间会在几分钟甚至是几秒内。在这个账本里存储的资产可以是金融、法律定义上的、实体的或是电子的资产。在这个账本里存储的资产的安全性和准确性是通过公私钥以及签名的使用去控制账本的访问权,从而实现密码学基础上的维护。根据网络中达成共识的规则,账本中的记录可以由一个、一些或者是所有参与者共同进行更新。
DLT的这些特点都使得其有可能称为全新的基础架构模式,因此,很有潜力帮助政府征税、发放福利、发行护照、登记土地所有权、保证货物供应链的运行,并从整体上确保政府记录和服务的正确性。例如在英国国民健康保险制度(NHS)里,这项技术通过改善和验证服务的送达以及根据精确的规则去安全地分享记录,有潜力改善医疗保健系统。对这些服务的消费者来说,这项技术根据不同的情况,有潜力让消费者们去控制个人记录的访问权并知悉其他机构对其记录的访问情况。
Smart Contract
在区块链技术发展的初期,密码学货币或者DLT中的数据变化都是基于明确的几种逻辑。显然,这种模式大家是不会满足的。因此,很快就有人将智能合约和区块链技术进行了结合。智能合约是能够自动执行合约条款的计算机程序。未来的某一天,这些程序可能取代处理某些特定金融交易的律师和银行。智能合约的潜能不只是简单的转移资金,一辆汽车或者一所房屋的门锁,都能够被连接到物联网上的智能合约被打开。
智能合约其实在区块链之前就有,但是偏概念,直到区块链到来后才开始有了实用价值的应用,特别是金融和物联网领域。智能合约的理念可以追溯到1994年,几乎与互联网(world wide web)同时出现。为比特币打下基础而受到广泛赞誉的密码学家尼克萨博(Nick Szabo)首次提出了“智能合约”这一术语。从本质上讲,这些自动合约的工作原理类似于其它计算机程序的if-then语句。智能合约只是以这种方式与真实世界的资产进行交互。当一个预先编好的条件被触发时,智能合约执行相应的合同条款。
区块链技术的出现和被广泛使用,则改变阻碍智能合约实现的现状,从而萨博的理念有了重生的机会。让我们举一个简单的例子,以足球比赛为例。假如你赌A队赢,你的朋友赌B队赢。此时,你和你的朋友可以将赌注写成一个区块链上的智能合约。当比赛结束时,智能合约能够通过媒体确认比赛结果然后自动结算,此时你们不需要依赖任何第三方机构。这就是智能合约的一个例子。
智能合约的最大特点就是代码的执行是自动的:要么成功执行,或者所有的状态变化都撤消(包括从当前失败的合约中已经送或接收的信息。)这是很重要的,因为它避免了合约部分执行的情况(例如,在证券购买交易中,证券所有者已经转移发送了证券,但是密码学货币的支付转移却失败了)。在区块链环境中,这尤为重要,因为没有办法来撤消执行错误所带来的不好的后果(而且如果对手不配合的话,根本就没有办法逆转交易)。
智能合约理论上可以给所有使用合约的场景带来变革。例如,证券的登记和清算无需再通过证券交易所,购买保险和理赔无需通过保险公司,投融资无需通过代理公司等等。
End.
转载请注明来自36大数据(36dsj.com): 36大数据 » 一文理清区块链里那些容易混淆的概念