区块链技术发展及应用场景
本文内容来自春节以后我在小组内的一次分享,春节假期里一直在研究区块链相关的知识,赶下潮流技术,也搜集了比较多的资料,
现在整理成一篇文章,主要关注区块链技术特点,几个发展阶段以及应用场景,文末有PPT下载地址,如果失效,可以移步到公众号「架构进化论」。
一、进击的区块链
- 作为分布式记账(Distributed Ledger Technology,DLT)平台的核心技术,区块链被认为在金融、征信、物联网、经济贸易结算、资产管理等众多领域都拥有广泛的应用前景。
- 区块链技术处于快速发展的初级阶段,现有区块链系统在设计和实现中利用了分布式系统、密码学、网络协议等诸多学科的知识。
以太猫的火爆直接导致了一段时间内的以太坊网络拥堵。
什么是区块链
-
区块链起源于中本聪的比特币,作为比特币的底层技术,本质上是一个去中心化的数据库。通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。
-
区块链作为分布式账本技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录。
-
区块链本质上是个注重安全和可信度胜过效率的一项技术。
-
解决信任问题:互联网技术解决的是通讯问题,区块链技术解决的是信任问题。
区块链起源于中本聪的比特币,作为比特币的底层技术,本质上是一个去中心化的数据库。是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。
区块链解决了什么问题吗?
区块链最重要的是解决了中介信用问题。在过去,两个互不认识和信任的人要达成协作是难的,必须要依靠第三方。比如支付行为,在过去任何一种转账,必须要有银行或者支付宝这样的机构存在。但是通过区块链技术,比特币是人类第一次实现在没有任何中介机构参与的情况下,完成双方可以互信的转账行为。这是区块链的重大突破。
区块链特点
-
去中心化:区块链技术不依赖额外的第三方管理机构或硬件设施,没有中心管制,除了自成一体的区块链本身,通过分布式核算和存储,各个节点实现了信息自我验证、传递和管理。去中心化是区块链最突出最本质的特征。
-
开放性:区块链技术基础是开源的,除了交易各方的私有信息被加密外,区块链的数据对所有人开放,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。
-
独立性:基于协商一致的规范和协议(类似比特币采用的哈希算法等各种数学算法),整个区块链系统不依赖其他第三方,所有节点能够在系统内自动安全地验证、交换数据,不需要任何人为的干预。
-
不可篡改性:只要不能掌控全部数据节点的51%,就无法肆意操控修改网络数据,这使区块链本身变得相对安全,避免了主观人为的数据变更。
-
匿名性:除非有法律规范要求,单从技术上来讲,各区块节点的身份信息不需要公开或验证,信息传递可以匿名进行。
对比传统数据库等技术。
区块链分类
根据参与者的不同,可以分为公开(Public)链、联盟(Consortium)链和私有(Private)
链。
-
公开链:任何人都可以参与使用和维护,典型的如比特币区块链,信息是完全公开的
-
私有链:则是集中管理者进行限制,只能得到内部少数人可以使用,信息不公开
-
联盟链:联盟链则介于两者之间,由若干组织一起合作维护一条区块链,该区块链的使用必须是有权
限的管理,相关信息会得到保护,典型如银联组织
目前来看,公开链将会更多的吸引社区和媒体的眼球,但更多的商业价值应该在联盟链和私
有链上。
区块链发展
-
区块链1.0时代:比特币为代表的数字货币应用,其场景包括支付、流通等货币职能,主要解决货币和支付手段的去中心化
-
区块链2.0时代:数字货币与智能合约相结合,对金融领域更广泛的场景和流程进行优化的应用
-
区块链3.0时代:不止金融领域,为各种行业提供去中心化解决方案
区块链2.0可用来注册、确认和转移各种不同类型的资产及合约,如各种金融交易、公共记录、私人记录等,从而更宏观地对整个市场去中心化。
二、区块链1.0 数字货币时代
比特币
- 比特币项目是区块链首个大规模的成功应用,并且是首个得到实践检验的数字货币实现。比特币是一种去中心化,全球可支付的电子加密货币。
-
由中本聪于2009年1月3日,基于无国界的对等网络,用共识主动性开源软件发明创立,是目前市场总值最高的加密货币。
区块结构
链上结构
挖矿和矿池
- 挖矿:参与维护比特币网络的节点,通过协助生成新区块来获取一定量新增的比特币。
- 激励机制:当用户发布交易后,需要有人将交易进行确认, 写到区块链中,形成新的区块。在一个没有信任机制的系统中,该由谁来完成这件事情呢? 比特币网络采用“挖矿”的方式来解决这个问题。
- 每10分钟左右生成一个容量不超过1MB的区块,记录这10分钟内发生的验证过的交易信息,串联到最长的链尾部,每个区块的成功提交者可以得到系统12.5个特币的奖励,以及用户为支付附加到交易上的服务费用。
- 比特币矿池:矿池是一个组队挖矿的服务器。由于比特币全网的运算水准在不断的呈指数级别上涨,单个设备或少量的算力都无法在比特币网络上获取到比特币网络提供的区块奖励。
-
组队挖矿就是,一旦队伍里任何人获得了一个区块,就将区块中的货币按大家的性能分给大家,这样大家就能很快地获得比特币。
所有的区块链都需要挖矿吗?
并非所有的区块链项目都会采用类似于比特币这样的“工作量证明”方式,这更多出现在早期的区块链项目中。如果采取其他的证明机制,如POS、DPOS都是不需要采取这样的挖矿方式。
共识机制
-
共识:故名思义,共同的认识,共识问题研究的就是多个成员如何达成一致,典型的比如投票选举。
-
共识机制:区块链是一种去中心化的分布式账本系统,由于点对点网络下存在较高的网络延迟,各个节点所观察到的交易事务先后顺序不可能完全一致。 因此区块链系统需要设计一种机制对在一定的时间内发生的事务的先后顺序进行共识。这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为“共识机制”。
- 共识方案:共识在区块链中扮演着核心的地位,共识机制决定了谁有记账的权利,以及记账权利的选择过程和理由。不用的虚拟货币采用共识机制不同,常见的共识机制如POW,POS,DPOS,拜占庭容错等。
工作量证明
-
工作量证明,Proof of Work:通过计算来猜测一个数值(nonce),得以解决规定的 hash 问题(来源于 hashcash)。保证在一段时间内,系统中只能出现少数合法提案。
-
分叉:少量的合法提案会在网络中进行广播,收到的用户进行验证后会基于它认为的最长链上继续难题的计算。因此,系统中可能出现链的分叉(Fork),但最终会有一条链成为最长的链。
-
51%攻击:hash 问题具有不可逆的特点,因此,目前除了暴力计算外,还没有有效的算法进行解决。反之,如果获得符合要求的 nonce,则说明在概率上是付出了对应的算力。谁的算力多,谁最先解决问题的概率就越大。当掌握超过全网一半算力时,从概率上就能控制网络中链的走向。
有一个很直观的例子可以说明为何这种经济博弈模式会确保系统中最长链的唯一。
超市付款需要排成一队,可能有人不守规矩要插队。超市管理员会检查队伍,认为最长的一条队伍是合法的,并让不合法的分叉队伍重新排队。只要大部分人不傻,就会自觉在最长的队伍上排队。
比特币分叉
-
软分叉:由于整个区块链系统软件的升级, 部分矿工没有来得及升级,出现遵
从不同共识机制产生的分叉。当这部分矿工升级系统后,这个分叉就会消失。 -
硬分叉:区块链发生永久性分歧,在新共识规则发布后,部分没有升级的节点无法验证已经升级的节点生产的区块,通常硬分叉就会发生。
- BTC和BCH:矿池在在比特币分叉问题上出现分歧,硬分叉产生BCH。
隔离见证和闪电网络
-
扩容问题:随着比特币网络的发展,单个区块存储的交易信息越来越多,1MB区块仅能容纳2000条左右交易,交易量大时需要排队等待区块写入确认,交易网络拥堵问题越来越严重。
-
隔离见证:把交易的签名数据从交易数据中剥离出来,用于解决延展性攻击。
-
闪电网络:在比特币网络上再外加一个「闪电网络(Lightning Network)」,把原有比特币链上金额较少的交易,转移到这个闪电网络来处理,完成后再记录到原链上。
-
依赖于隔离见证的闪电网络等二层网络并不能被认为是比特币的扩容方案,因为闪电网络的交易并不等价于比特币的点对点的链上交易,大部分比特币交易的场景并不适用于闪电网络。
-
支付中心问题:假设闪电网络部署成功,也会存在大型支付中心的问题,这违背了比特币做为点对点支付系统的初衷。
用搭乘公共汽车的来假设,试想像比特币的区块是一辆公共汽车,每隔十分钟,固定时间发车,当要乘车的人超过公共汽车容量,不能上车的人就要等待下一班。我们的目的就是让更多的人可以乘车,即承载更多的交易。
山寨币及改进
三、区块链2.0 智能合约
以太坊
-
以太坊项目进一步扩展区块链网络的能力,从交易延伸为智能合约(Smart Contract)。是一个运行智能合约的去中心化平台 (Platform for Smart Contract),平台上的应用按程序设定运行, 不存在停机、审查、欺诈、第三方为干预的可能。
-
以太坊是一个区块链应用开发平台,基于以太坊构建的网络和智能合约语言,我们可以实现各种各样的与现实世界接近的分布式应用(DApp)。
以太坊特点
-
Gas机制:以太坊上的每笔交易都会被收取一定数量的gas,gas的目的是限制执行交易所需的工作量,同时为执行支付费用。当EVM执行交易时,gas将按照特定规则被逐渐消耗。gas在以太坊网络中实际的体现就是ether代币。
-
叔块(uncle block):将因为速度较慢未及时被收录的较短区块链并入并可以获得奖励。使用的是有向无环图的相关技术。
-
闪电网络(lightning network):可提升交易速度、降低区块链的负担,提可扩展性。
因为以太坊的区块时间是20秒左右,相对于比特币,更容易出现临时分叉和孤儿区块。而且较短的区块时间,也使得区块在整个网络中更难以充分传播,尤其是对那些网速慢的矿工,这是一种极大的不公平。为了平衡各方利益,才设计了这样一个叔块机制。
共识机制改进
-
POW协议存在的问题:算力被掌握在大的算池手中,比特币并没有像它希望的那样分散化,这也是比特币不断出现分叉的原因。
-
Casper协议:权益证明将让整个挖矿过程虚拟化,并以验证者取代矿工。
以下是权益证明的运行过程:
验证者必须锁定一些他们拥有的币作为保证金。
在此之后,他们将开始验证区块。同时,当他们发现一个他们认为可以被加到链上的区块时,他们会通过下赌注来验证它。
如果该区块成功上链,验证者就将得到一个与他们的赌注成比例的奖励。
智能合约
-
智能合约是区块链技术的特性之一。
-
以太坊在其区块链上实施了一种近乎图灵完备的语言,这是一个突出的智能合约框架。
-
尼克·萨博:一个智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。
-
智能合约其实是一段被存储在一个区块链上的代码,由区块链交易触发,读取并且在区块链数据库写入数据。
尼克•萨博关于智能合约的工作理论迟迟没有实现,一个重要原因是因为缺乏能够支持可编程合约的数字系统和技术。区块链技术的出现解决了该问题,不仅可以支持可编程合约,而且具有去中心化、不可篡改、过程透明可追踪等优点,天然适合于智能合约。因此,也可以说,智能合约是区块链技术的特性之一。
以太坊分叉
- The DAO事件导致以太坊硬分叉:以太坊上著名的项目The DAO由于其自身漏洞 ,导致黑客窃取当时价值约6000万美元的以太币。2016年7月,以太坊开发团队通过修改以太坊软件的代码,在第1920000个区块强 把The DAO及其 DAO 的所有资金全部转到一个特定的退款合约地址,从 “夺回” 客所控 制的DAO合约币。由于部分矿工并不认同这个修改,于是形成两条链, 一条为以太坊(ETH),一条为以太坊经典(ETC),各自代表 同的社区共识以及价值观。
首次代币发行
-
ICO(Initial Coin Offering):对比IPO 首次公开募股,是指企业或非企业组织在区块链技术的支持下发行代币,向投资人募集虚拟货币(一般为比特币、以太坊)的融资活动,将发行的标的物由IPO的证券变成了数字加密货币。
-
美国多个州的法律法规不认为ICO本身是证券、期货等金融类产品,即不能作为一种投资品或者投资类型存在,因此不允许公开进行ICO活动;2017年9月4日,央行等7部委联合下发《关于防范代币发行融资风险的公告》,叫停国内ICO。
EOS众筹
-
2017年明星项目,每天发行2000000代币,目前已经众筹近252亿人民币。
-
EOS.IO采用委托股权证明算法,全称是delegated proof of stake,缩写就是DPOS。DPOS相当于人民代表大会制度,所有的网络上的代币持有人均为用户,用户通过投票方式选取得票人成为区块链节点。
-
EOS号称使用石墨烯技术:基于石墨烯底层的BTS和STEEM可以达到1.5S的平均确认速度和有限条件下实测3300TPS的数据吞吐量,EOS通过并行链的方式,最高可以达到数百万TPS,并且并行本地链甚至可以达到毫秒级的确认速度。
-
2018年6月主网上线,需要进行上链操作。
基于DPOS的EOS.IO会每三秒产生一个新的区块,这个区块必须由投票产生的21位生产者轮流生产出来,这样,完成一个轮回之后,就会重新选出21位生产者。选择的过程中,获得票数数量的前20名自动被选中,剩下的一个生产者则需要按照得票比例来选出。
四、区块链3.0 超级账本项目
Hyper Ledger项目
-
2015 年 12 月,开源世界的旗舰——Linux 基金会牵头,联合 30 家初始企业成员(包括
IBM、Accenture、Intel、J.P.Morgan、R3、DAH、DTCC、FUJITSU、HITACHI、SWIFT、
Cisco 等),共同宣告了Hyperledger项目的成立。 -
该项目试图打造一个透明、公开、去中心化的分布式账本项目,作为区块链技术的开源规范和标准,让更多的应用能更容易的建立在区块链技术之上。
-
区块链3.0时代:比特币为代表的货币区块链技术为 1.0,以太坊为代表的合同区块链技术为 2.0,Hyperledger 实现了完备的权限控制和安全保障项目,代表 3.0 时代的到来。
模块架构
-
Blockchain Explorer:提供 Web 操作界面,通过界面快速查看查询绑定区块链的状态(区块个数、交易历史)信息等。
-
Fabric:区块链的基础核心平台,支持 pbft 等新的 consensus 机制,支持权限管理。
-
STL项目: Intel 主要发起和贡献的区块链平台,支持全新的基于硬件芯片的共识机制 Proof of ElapsedTime(PoET)。
-
Iroha:账本平台项目,基于 C++ 实现,带有不少面向 Web 和 Mobile 的特性,主要由Soramitsu 发起和贡献。
-
Cello:提供“Blockchain as a Service” 功能,使用Cello,管理员可以轻松获取和管理多条区块链;应用开发者可以无需关心如何搭建和维护区块链。
Fabric 1.0实现功能
- 使用GO和JAVA语言运行智能合约
- 智能合约封装在Docker容器中执行
- 共识算法是可插拔的,目前支持使用PBFT
- 使用KV持久化数据存储,支持LevelDB
- 支持多种客户端交互,包括Node.js,Python
- 项目仍在孵化和社区共建中
五、区块链应用场景
应用场景
-
金融领域:区块链在国际汇兑、信用证、股权登记和证券交易所等金融领域有着潜在的巨大应用价值。将区块链技术应用在金融行业中,可省去第三方中介环节,实现点对点的对接,从而在大大降低成本的同时,快速完成交易支付。
-
供应链和物流领域:区块链在物联网和物流领域也可以天然结合。通过区块链可以降低物流成本,追溯物品的生产和运送过程,并且提高供应链管理的效率。该领域被认为是区块链一个很有前景的应用方向。
-
公共服务领域:区块链在公共管理、能源、交通等领域都与民众的生产生活息息相关,但是目前这些领域的中心化特质也带来了一些问题,可以用区块链来改造。
-
认证、公证领域:区块链具有不可篡改的特性,所以在认证和公证也有巨大的市场。
-
数字版权领域:通过区块链技术,可以对作品进行鉴权,证明文字、视频、音频等作品的存在,保证权属的真实、唯一性。作品在区块链上被确权后,后续交易都会进行实时记录,实现数字版权全生命周期管理,也可作为司法取证中的技术性保障。
-
预测市场和保险领域:在保险理赔方面,保险机构负责资金归集、投资、理赔,往往管理和运营成本较高。通过智能合约的应用,既无需投保人申请,也无需保险公司批准,只要触发理赔条件,实现保单自动理赔。
-
公益慈善:区块链上存储的数据,高可靠且不可篡改,天然适合用在社会公益场景。公益流程中的相关信息,如捐赠项目、募集明细、资金流向、受助人反馈等,均可以存放于区块链上,并且有条件地进行透明公开公示,方便社会监督。