源源不断 / 人工智能 / 区块链技术及其应用研究(上篇)

分享

   

区块链技术及其应用研究(上篇)

2018-01-13  源源不断

导读


核心观点

  • 区块链技术最初源于比特币,在以太坊出现后增加了智能合约的功能,区块链技术是包括密码学、链表、P2P网络等多项技术整合的统一技术应用。


  • 公有链是大众参与的区块链应用,区块链作为互联网发展的未来方向以及ICO(首次代币发行)的出现共同铸就了层出不穷的公有链项目,应用行业包括金融、保险、物流、医疗、固定资产交易、媒体等。


  • 联盟链是主要在某个组织或联盟内使用的区块链,目前主要的联盟链组织包括Hyperledger、R3等,这些组织下都有自主研发的区块链项目,目前最成熟的项目有Hyperledger Fabric和R3 Corda。


  • 区块链以其可回溯不可篡改的从而使得“数据被信任”的特性将会在底层技术层面变革金融行业,给行业带来效率的提高,成本的节约。


  • 目前邮储银行、光大银行等在托管个别业务上应用了区块链技术,保交所也在和中国太平、太平洋保险合作进行保单质押、风险保额数据分享等业务的区块链系统研发。


  • 为提升效率和数据安全,行业有可能会在股票、基金等品种的登记业务上使用区块链,在目前不是特别规范的股权投资登记领域也有应用区块链的可行性,另外在保险资管行业,建设基于区块链的债权计划交易登记系统也是一个值得探讨的课题。


区块链技术是当前最受关注的技术之一。从下图的Gartner技术成熟度曲线可以看出,BlockChain(区块链)几乎处在了Expectaions(技术受关注度)的顶端。为什么这个技术能够这么火热,在技术界和资本界都广受欢迎,本文将会对此详细展开论述。



一、 区块链的由来:比特币和以太坊


(一) 区块链的起源:比特币

区块链技术第一次被描述是在中本聪2008年发表的白皮书“比特币:点对点电子现金系统”中,文中提出了一种完全通过点对点技术实现的电子现金系统,它使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。


比特币区块链不是一项全新的技术,而是利用密码学、点对点网络技术等建立基于链表结构的分布式账本。


区块链中的交易是可回溯的,因为它使用了通过区块散列值连接的链表结构(见图1),这个链表就是账本,每个块可以被看作有时间先后顺序的书页,通过对账本历史交易的回溯我们可以验证交易者的持仓是否真实,而且这个链越长,被篡改的难度就越高。



利用数字签名(Digital signatures),收款方可以验证交易的来源方。原理如下:



利用密码学、P2P网络和分布式账户,比特币区块链技术建立了工作量证明机制(proof-of-work),这就是我们通常所说的区块链的共识(consensus)机制,它包含两个部分,一是通过SHA256对区块头和交易的Hash,计算具有某难度系数的目标值,因为计算需要大量设备和电力资源的损耗,使得交易的成立不能通过简单的手段进行伪造;二是一旦某节点成功计算出目标值就会形成新的区块广播到整个网络,每个接收到该区块的节点会对该区块的交易进行验证,只要50%的节点使用自己的账本对数据验证成功,我们就认为该区块有效,每个节点都会将这个新的区块附加到各自账本的最后面。用户能够通过merkle的分支通向它被加上时间戳并纳入区块的那次交易(见图1.1),从而完成支付确认。


工作量证明机制就是我们通常所说的“挖矿”,每个“矿工”每次生产出一个新的区块,该区块的第一笔交易将进行特殊化处理,该交易会产生由该区块创造者拥有的新的电子货币。这样就增加了节点支持该网络的激励,并在没有中央集权机构发行货币的情况下,提供了一种将电子货币分配到流通领域的一种方法。这种将一定数量新货币持续增添到货币系统中的方法,非常类似于耗费资源去挖掘金矿并将黄金注入到流通领域。此时,CPU的时间和电力消耗就是消耗的资源。而“挖矿”难度会随着全网算力的变化而调整,并且根据算法,“挖矿”奖励的货币数量也会逐步减少,所以能够有效的控制通货膨胀。


(二) 智能合约的诞生:以太坊

在2013年末,以太坊的发明者Vitalik Buterin建议比特币平台应该要有个更完善的编程语言让人开发程序,但没有被采纳。2014年,以太坊的创始人Vitalik Buterin, Gavin Wood和Jeffrey Wilcke开始研究新一代区块链,试图实现一个总体上完全无需信任基础的智能合约平台。


以太坊是可编程的区块链。它并不是给用户一系列预先设定好的操作(例如比特币交易),而是允许用户按照自己的意愿创建复杂的操作。这样一来,它就可以作为多种类型去中心化区块链应用的平台,包括加密货币在内但并不仅限于此。


以太坊狭义上是指一系列定义去中心化应用平台的协议,它的核心是以太坊虚拟机(“EVM”),可以执行任意复杂算法的编码。在计算机科学术语中,以太坊是“图灵完备的”。开发者能够使用现有的JavaScript和Python等语言为模型的其他友好的编程语言,创建出在以太坊模拟机上运行的应用。


和其他区块链一样,以太坊也有一个点对点网络协议。以太坊区块链数据库由众多连接到网络的节点来维护和更新。每个网络节点都运行着以太坊模拟机并执行相同的指令。因此,人们有时形象地称以太坊为“世界电脑”。


这个贯穿整个以太坊网络的大规模并行运算并不是为了使运算更高效。实际上,这个过程使得在以太坊上的运算比在传统“电脑”上更慢更昂贵。然而,每个以太坊节点都运行着以太坊虚拟机是为了保持整个区块链的一致性。去中心化的一致使以太坊有极高的故障容错性,保证零停机,而且可以使存储在区块链上的数据保持永远不变且抗审查。


在比特币中,区块大小被限定为 1MB(三个月后将被扩容成2MB),而在以太坊中,区块大小是根据Gas 限制确定的。为了限制执行交易所需的工作量,并为防止DDOS攻击而需要让任何交易都支付交易费用,以太坊的开发者提出了Gas 交易费机制。Gas 相当于以太坊上计算成本的单位,Gas 限制是每个区块能使用的 gas 最大限额,被视为计算工作量,交易量和区块大小的最大值。矿工可以根据交易量改变 Gas 限制的值,越高的 gas 限额意味着每个块可以执行的任务越多。


以太坊平台本身没有特点,没有价值性。和编程语言相似,它由企业家和开发者决定其用途。不过很明显,某些应用类型较之其他更能从以太坊的功能中获益。以太坊尤其适合那些在点与点之间自动进行直接交互或者跨网络促进小组协调活动的应用。例如,协调点对点市场的应用,或是复杂财务合约的自动化。比特币使个体能够不借助金融机构、银行或政府等其他中介来进行货币交换。以太坊的影响可能更为深远。理论上,任何复杂的金融活动或交易都能在以太坊上用编码自动且可靠地进行。除金融类应用外,任何对信任、安全和持久性要求较高的应用场景——比如资产注册、投票、管理和物联网—都会大规模地受到以太坊平台影响。


二、 公有链和联盟链


(一) 公有链

公有链是指全世界任何人都可读取的、任何人都能发送交易且交易能获得有效确认的、任何人都能参与其中共识过程的区块链。比特币和以太坊就是公有链项目,公有链通常被认为是“完全去中心化”的。 

ICO是Initial Coin Offering的简称,顾名思义,是以初始产生的数字加密货币作为回报的一种筹措资金的方式。ICO改编自证券界的Initial Public Offering(首次公开发行)一词。就本质上而言,ICO也是一种“公开发行”,只是把所发行的标的物由证券变成了数字加密货币(山寨币)。2013年7月,Mastercoin(现更名为Omni),可查的最早ICO项目,通过meta-protocol拓展比特币功能,募集5000比特币。2014年7月,Ethereum(以太坊),ICO时募集3万余个比特币曾创下纪录。这几年来,随着ICO普遍被大众接受以及各种山寨币的炒作,经济激励带动了公有链项目的一股创新,应用行业包括金融、保险、物流、医疗、固定资产交易、媒体等。这些项目虽然并不一定最终会为社会带来技术和业务上的变革,但也是市场对于区块链技术的尝试。


1、 Steem

Steem是一个通过提供加密货币奖励支持社区建设和社区互动的区块链系统。Steem将社交媒体的概念与建设加密货币和社区过程中汲取的经验相结合,激励人们参与社区、货币和自由市场经济的关键一环是提供一个始终反映每个人贡献的公平会计体系。Steam Coin是Steem提供的代币,是第一个尝试准确、透明地为无数对社区做出积极贡献的个人提供回报的加密货币。


Steem的设计基于一个相对简单的概念:每个人向社区提供有意义的贡献应从经济收益角度获得认可。只有这样,贡献者才能持之以恒地为社区做贡献,社区才能得到发展。问题在于建立一个能够识别什么是需要的贡献内容,无数用户如何对相对价值进行评分的系统。


对贡献内容进行评估和提供奖励的一个可靠体系是自由市场。自由市场可以看成是一个单独的社区,每个人彼此进行交易,通过收益与损失确定奖励。市场体系能够奖励那些向其他人提供价值的人,处罚那些消耗超过创造价值的人。自由市场支持各种货币,财富只是每个人便于交流的一件用品。


因为自由市场是一个被证实可靠的系统,吸引人们尝试创造一个自由市场经济,内容消费者直接向内容生产者支付。但是,对于内容生产和策划来说,直接付款是低效的,大多数内容的价值是极低的,很少有读者愿意给钱。很多免费替代方案意味着实行“付费门槛”将把读者拒之门外。也存在过一些向作者进行微额支付的尝试,但并没有被普及。


Steem的设计目的是实现所有类型供稿的有效微额付款。读者不再必须决定自己是否希望从自己的口袋向其他人付款,而是对内容进行投票,由系统根据投票情况决定个人奖励。这意味着向人们提供一个熟悉的、广泛使用的方法,不再存在微额付款和打赏平台面临的认知、财务和机会成本问题。


来自社区的投票信息对于系统向供稿人准确地进行支付十分关键,因此投票也可以视为一项关键的贡献内容。系统选择向那些为一篇内容的全部增益做出最大贡献的会员提供回报,对投票人的奖励与向内容创建者支付的最终回报成一定的比例。


2、 EOS

Eos是一个区块链操作系统,它提供了数据库,账号许可,调度,认证和互联网应用通信,这极大地提高了智能商业开发的效率,它使用了并行计算使得把区块链拓展到百万用户和每秒百万次交易成为可能。


比特币引入了公共账本系统的概念,以太坊证明了对去中心化应用的需求的普遍性。然而,为了看到区块链真正的成为主流,我们必须能处理现实世界中的交易需求。比如,信用卡网络需要能在每秒内处理20000笔交易。Facebook要每秒处理52000笔交易,这还不包括post和其它行为。金融行业每秒处理100000笔交易。


而比特币由于区块大小的限制,目前每秒只能处理大约3笔交易,以太坊由于Gas限制,每秒只能处理相对有限的交易。目前区块链技术最重要的限制是单线程的性能。


2013年,去中心化交易所Bts创建,2014年发布。它使用DPOS方式,只需3秒确认。Bts的第一版的部分理念和技术来自比特币,但是依然无法达到一个交易所对性能的要求。2015年开发了石墨烯系统,Bts完全重写了。这使得一台机器能每秒处理100000笔交易,并且在全球压力测试中达到了每秒18000笔交易。用户名系统也与Bts一同发布,这就把用户名与密钥区分开来,使得企业组织能被其它使用者组织批准审核。2016年发布了Steem,Steem使用了一些新的概念。社交媒体用户不想每次投票都要支付,他们想要账号的恢复等等。   


Steem还把原本浪费在挖矿的回报重新分发给在区块链上发问的人,使得成千上万的人参与了进来。此时,每天在Steem和Bts上的真实交易超过了其它主要区块链的总和。然而,Steem和Bts还是应用型区块链。如果你想在一个区块链上运行多个app,还需要解决拓展性问题。


目前开发者必须从零开始搭建去中心计算机来运行他们的智能app,由此,所有的app开发者都必须去解决相同的问题:账户系统,恢复过程等,因此需要建立一个操作系统,由操作系统提供每个应用都需要的通用功能,那么这些应用就能专注于他们自己的业务逻辑。Eos就是这样一个区块链操作系统。


(二) 联盟链组织和主要项目

相对于公有链,联盟链是指其写入权限仅在一个组织手里的区块链,读取权限或者对外开放,或者被任意程度地进行了限制,所以联盟链针对的是某专业性组织之间的信息交互。在区块链技术日益被重视的今天,多个联盟链组织由多家IT、咨询、金融公司巨头发起,并逐步推进了区块链技术在多个行业的普遍性或针对性的框架的研发。


1、R3区块链联盟

R3区块链联盟于2015年9月份成立,目前已经有大约40多家国际银行组织加入,成员几乎遍布全球。其主要致力于为银行提供探索区块链技术的渠道以及建立区块链概念性产品。该联盟成立之后,召开了一系列的研讨会。R3表示,其允许银行加入的“初始窗口”已经关闭,2016年,该联盟将寻求与非银行金融机构和团体合作。R3使用以太坊和微软Azure技术,将11家银行连接至分布式账本。R3公司对于自己正在做的事情非常肯定,它说,区块链技术受到了世界各地银行的欢迎,已经有一些银行不仅在跟R3合作探索区块链技术,还自己开展区块链技术的调查研究。2016年4月,R3CEV与微软正式建立合作关系,研究实验区块链应用。


该联盟宣布推出了他们专门为这一目的建立的最新分布式私人账本Corda,于近期发布了beta版本。


Corda提供了一个运行智能合约的框架,包括以下关键动作和特点:


  • 通过基于现有合法框架和与现有新兴法案兼容的方式,纪录和管理两个及以上可识别的组织的金融协议和其他共享数据;


  • 去中心化控制的公司间工作流设计;


  • 在个人交易层面上,支持公司间的共识机制,而不是全局系统。从这一点上说明Corda是一个类区块链的分布式账本系统,它仅对必需查看数据的参与方共享数据,其他平台一般在账本层面达成共识。


  • 支持纳入监管以及监管观察员节点;


  • 仅仅在交易的参与方之间验证交易的有效性。Corda平台添加了一个叫做公证人(Notary)的角色,它仅需要证明交易的状态是否被之前使用过状态的交易所使用;它们不必自己证明交易的合法(有效)性,那是交易参与方的事情。


  • 支持可插拔的共识机制;


  • 纪录人类法律文件和智能合约代码之间的显性关联;


  • 严格准入合约数据,仅对有明确授权或逻辑上特权的用户开放。


当前Corda的设计就是为金融机构服务,而没有考虑兼容其他行业的需求。


2、超级账本(hyperledger)

超级账本(hyperledger)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,加入成员包括:IBM、荷兰银行(ABN AMRO)、埃森哲(Accenture)等十几个不同利益体,目标是让成员共同合作,共建开放平台,满足来自多个不同行业各种用户案例,并简化业务流程。由于点对点网络的特性,分布式账本技术是完全共享、透明和去中心化的,故非常适合于在金融行业的应用,以及其他的例如制造、银行、保险、物联网等无数个其他行业。通过创建分布式账本的公开标准,实现虚拟和数字形式的价值交换,例如资产合约、能源交易、结婚证书、能够安全和高效低成本的进行追踪和交易。


2016年3月,在Linux协会的推动下,超级账本项目将正式把Blockstream,Digital Asset Holdings(数字资产控股公司)以及科技巨头IBM这三个项目成员贡献的代码合并为一个新的代码库,形成一个新的企业级区块链的基础。这个代码集合被称为Hyperledger Fabric。Hyperledger fabric目前已经发布了1.0.0版本,象征了该项目已经进入了一个里程碑的阶段。


Fabric 致力在一个共识网络内,对指定资产资产的信息进行互换、维护和调阅。它是一个企业间的区块链架构,它的主要功能包括:


  • CA(认证机构)机制。Fabric的定位是许可制区块链,如Corda一样,只有被授权的节点才能被准许加入网络,只有被认证的客户端才能接入服务。CA还提供TLS证书,来确保交易中网络传输的安全性。


  • PKI(公钥体系)。包括签名秘钥和数据加密秘钥,通过签名秘钥验证交易的归属,通过数据加密秘钥来保证数据的私密性。虽然数据都会被共享到各个记账节点,但是只有参与交易的双方可以看到该笔交易的真实发生状况。


  • 可监管。可将数据加密的私钥提供给监管机构以监管交易的合法性,因无法完全确认交易的实际归属,签名私钥不能提供给第三方。


  • 多Channel(通道)。每一个Channel代表一个“小区块链”,加强了某些机构间交易数据的私密性,而“小区块链”之间又可以通过节点进行联通,又附加了链与链之间的共享性。这种私密性和共享性的结合,可以满足企业间又需要共享又需要竞争的复杂需求。


  • 支持由GO、JAVA语言实现运行任意智能合约。


  • 共识算法也是可插拔的,目前支持Solo和Kafka集群。


  • 采用Docker技术,便于分布式部署。


  • 将验证节点、记账节点、共识节点进行了区分,可以灵活选择部署方法。




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。如发现有害或侵权内容,请点击这里 或 拨打24小时举报电话:4000070609 与我们联系。

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多
    喜欢该文的人也喜欢 更多

    ×
    ×

    ¥.00

    微信或支付宝扫码支付:

    开通即同意《个图VIP服务协议》

    全部>>