drxiaozhi
作者drxiaozhi·2017-11-26 19:02
系统架构师·中信银行

企业级区块链技术平台选择及实践

字数 6343阅读 4543评论 0赞 5

陈志明 中信银行 金融产品IT创新实验室架构师

近年来,区块链受到资本市场和金融机构特别是商业银行的广泛关注,普华永道数据显示,已有20多个国家投资区块链技术研发,有80%的银行2017年会开始实施区块链相关的项目[1]。区块链是由金融业主导发展的,它是一种点对点的分布式账本的底层技术,具有去中心化、信任度高、追溯性强、自治度高等特征。国内外商业银行积极拥抱区块链技术,快速推动业务场景应用的落地实施,降低交易成本,提升资源配置效率,促进信息的共享。目前,国内外商业银行在数字货币、支付结算、贸易融资、供应链金融等领域开展了一系列研究和应用探索。

一、 区块链技术内涵与特征

区块链概念首次由中本聪在论文《Bitcoin: A Peer-to-Peer Electronic Cash System》[2]中提出,目前尚没有一个统一的定义。广义上讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式来保证数据安全、利用智能合约来编程和操作数据的一种全新的分布式架构与计算范式[3]。区块链可以让人们在没有中心节点的情况下,通过互相协作建立信任,减少欺诈;提高交易的透明度和效率,降低交易成本,促进多方安全的交易;重构业务流程及机构的运作方式。
区块链本质上是去中心化的分布式数据库,与传统的中心式系统相比,具有去中心化、去信任、分布式、防篡改、匿名性和开放性6大特征,其中去中心化和去信任是区块链技术的核心特征。去中心化使用分布式核算和存储数据记录,没有中心化的硬件或管理机构,任意节点的权利和义务都是均等的,任一节点的损坏都不影响整个系统的运作。去信任是指参与整个系统的节点之间能够在去信任的环境下自动安全地交换数据,整个系统的运作规则、数据内容公开透明,不需要人为的干预,在系统指定的规则范围和时间范围内,节点之间无法欺骗其它节点。
按照链接的开放程度,可以把区块链划分为三种类型:公有链、联盟链、私有链。其中联盟链属于半开放方式,具有安全性和创新性比较均衡的特点,被认为是目前最有潜力的区块链应用模式。
1.png

1.png

图1 区块链技术的特征和分类

二、 联盟链主要技术平台和发展趋势

从根本上来说,区块链就是一种分布式的体系,不同节点在保证数据一致的前提下存储全量数据,使得所有节点都信任数据的真实性,从而构建一套没有中心节点的可信数据交互平台。区块链技术有两个重点,第一点是怎样存储数据,目前大部分的区块链技术架构都采用参与验证的节点存储全量数据的方式,这种带来了巨大可扩展性问题,目前主要的解决方案有sharding和state channels两个方向,state channels的主要思想是大部分交易两两直接进行,区块链只作为最终的争议仲裁手段,这其实只解决了时间戳问题,并没有解决创造信任的问题,如果两个节点串通作假,是很难被发现的。Sharding问题有人提出使用merkle树解决存储问题,但是目前笔者还没有看到比较令人信服的整体解决方案。
第二点就是怎样在分布式环境下形成数据的一致性,也就是所谓的共识算法,目前的主流共识算法主要有PoW、PoS(包括DPoS和Casper等变种)、PBFT以及最新提出的AlgoRand等方法,以下我们逐一进行简介。
PoW要求参与记账的节点都计算满足一定规则的哈希值,最先计算出该值的节点获得生成区块的权利,将区块广播至其它节点。这种方式的坏处是占用大量无效计算资源,生成区块的效率非常低,同时因为网络延迟的原因,容易形成分叉,更加降低了整个系统的性能。本文认为PoW是一种低效的、不成熟的共识算法,不能满足实际应用的需要,但是作为区块链技术的首个共识算法,在技术上有较大象征意义。
PoS权益证明根据每个节点所占代币的比例和时间,等比例的降低挖矿难度,从而加快生成找随机数的速度。它将PoW算法中挖矿是否成功的标准由“工作证明”转变为了“权益证明”,即根据矿工持有电子货币的数量和时间(相乘即得到“币龄”)来决定挖矿的难度系数:币龄越高,相应的难度系数越低。当一个矿工挖矿成功,即该节点获得创建当前区块的权利之后,该矿工所持有的电子货币对应的时间清零,同时系统发给矿工一定数量的电子货币作为奖励。Pos的最大缺陷就是容易被巨头控制,同时生成多个区块形成分叉,虽然有校验机制,巨头可以把自己的代币分给多个傀儡,降低作恶后的惩罚代价。
拜占庭容错算法(Byzantine Fault Tolerance)采取一个节点一票的方案确定记账结果,少数服从多数投票,性能较好,主要用于联盟链。拜占庭算法的两个问题一是只能应用于联盟链,加入节点必须有一定的信任基础,不能防止Sybil攻击(即控制很多没有任何贡献的傀儡节点进行攻击,相当于网络上的DDoS攻击);二是可扩展性不强,因为大部分拜占庭算法都需要经过Pre-prepare、Prepare和Commit三个步骤,每个步骤都要进行大量的广播通信,所以节点的可扩展性是有问题的。
为了解决PoW、PoS和拜占庭算法的问题,图灵奖获得者Silvio Micali提出了一种新的共识机制AlgoRand,其主要思想是使用零知识证明随机选出一小部分节点生成区块链,再利用拜占庭算法达成共识,在拜占庭算法的每个步骤中,都通过零知识证明,选举出不同的代表节点进行投票,确认区块的生成,这样大大的降低了参与共识的节点个数,提高了共识效率。AlgoRand也是一种Pos算法, 不同的节点可以拥有不同的权重,从而提高被选中的概率,避免Sybil攻击,本文认为该算法具有较高的技术含量和应用前景,值得深入研究。
在应用的场景上,因为效率及存储空间的限制,区块链的个人级的应用主要还限定于数字货币或代币的范围,目前国家监管部门叫停了ICO的推广和交易,本文对数字货币不做探讨。对于区块链在个人应用领域的前景作者仍然持乐观态度,除了数字货币的功能外,如果有某种分布式算法可以突破了数据存储的限制,个人节点不需要存储全量数据,而是每个节点只存储一小部分数据,并且可以快速的写入、修改、查找、相关数据,在大并发量的情况下不会产生冲突,区块链技术会对现有的社会形态带来巨大的改变,数据不仅仅存储在各大企业的数据库中,个人可以真正的成为数据的主人,形成真正的去中心化、分布式数据体系,产生技术上的乌托邦社会。
言归正传,在神奇的分布式存储算法被计算机科学家发明出来以前,现有的技术在企业级的应用将会是区块链技术的主要功能。目前金融、交通、医疗、教育等机构基本已经实现了数字化,各机构内部都存储了大量的真实数据,但是跨机构的数据流通往往比较困难,形成了一个个的数据壁垒,除了政府机关,没有一个机构能够获取较为全面的数据信息。区块链技术是打通数据壁垒,实现信息的互联互通的绝佳手段,这也就是联盟链的主要应用场景。本文主要介绍以太坊、Ripple和hyperledger三个主流技术体系,R3的Corda也属于开源平台,笔者认为其商务能力大于技术能力,并且隐含成本过高,没有进行深入探索。
Ripple是主要应用于支付场景的公有链体系。Ripple有两个重要概念,其一是推出Ripple币瑞波币——XRP,它作为Ripple网络的基础货币,就像比特币一样可以整个网络中流通,主要是燃料Gas的作用,每产生一笔交易就会消耗一些 XRP;其二是引入网关(Gateway)系统,它类似于货币兑换机构,允许人们把法定货币注入、抽离Ripple网络,并可充当借、贷双方的桥梁。Ripple引入了一个共识机制RPCA,通过特殊节点的投票,在很短的时间内就能够对交易进行验证和确认,因而TPS较高。对于想快速尝试区块链的企业来说,加入Ripple未尝不是一种简单易行、性价比高的方案,只需部署一台服务器,联系好对手企业,即可开展基于区块链的支付交易。
以太坊是一个包含图灵完备虚拟机的区块链开发平台,它的最大特点就是智能合约,智能合约配合友好的界面和外加一些额外的小支持,可以让用户基于合约搭建各种千变万化的DApp应用。本质上说,合约就是存储在以太坊状态中的一类“虚拟对象”,它存储在分布式空间中,和普通用户一样可以创建内部交易,并对其他合约进行操作。目前以太坊运行的1.0版本采用的是POW挖矿的共识算法,目前公网的TPS是25笔,在开发中的1.5版本,将采用类POS算法,以使区块的确认速度大大提高。以太坊的整个技术生态系统比较强大,同时迭代周期比较快,所以有比较强的生命力。以太坊因为主要应用于公有链,受到过多次攻击,出现过一些较大漏洞,此外对于企业级商业应用来说,频繁的迭代升级会带来较大的维护成本。
HyperLedger是一个带有可插入各种功能模块架构的区块链实施方案。HyperLedge的分层设计比较合理,模块化程度非常不错, fabric是其中应用最广泛的项目,应该是大企业构建联盟链的主要选择之一。HyperLedger架构核心逻辑有三条:Membership、Blockchain和Chaincode(即智能合约)。Membership Services这项服务用来管理节点身份、隐私、保密性、可审计性。 Blockchain Services使用建立在HTTP/2上的P2P协议来管理分布式账本,提供最有效的哈希算法来维护区块链数据结构,另外采取可插拔的方式来根据具体需求来设置共识协议,比如PBFT, PoW和PoS等,IBM首选PBFT算法。Chaincode services 会提供一种安全且轻量级的沙盒运行模式,在节点上执行智能合约逻辑,类似以太坊的EVM虚拟机。目前fabric已经从0.6版本升级到1.0版本,在底层技术上发生了巨大的变化,基本上是一个新项目。1.0版本将区块链的数据维护和共识服务进行分离,共识服务从Peer节点中完全分离出来,独立为Orderer节点提供共识服务;同时基于新的架构,实现多通道(channel)的结构,实现了更为灵活的业务适应性,如业务隔离、安全性等,支持更强的配置功能和策略管理功能,进一步增强系统的灵活性和适应性,采用了kafaka作为消息转发的平台,实现分布式、基于发布/订阅的消息系统,大大提高系统的吞吐率,实现了节点在线水平扩展。但是目前其共识机制尚未成熟,容错性能与0.6版本相比有了一定的下降,中心化程度有了一定的上升。

三、 企业级区块链技术平台选择实践

对企业来说,区块链是一个较好的创新突破口。与当前另一热门的深度学习相比,技术门槛较低,对数据要求也不高。目前区块链已经在很多领域进行了尝试性的应用,在金融行业主要包括数字货币、支付结算、贸易融资、征信与反欺诈、银团贷款、抵押贷款、项目与合同管理、债券发行、小额信贷、外汇交易、贵金属交易、资产转让等诸多领域。
区块链领域应用虽然已经取得突破性进展,但仍面临着诸多挑战性的问题。
1.生态链尚不成熟
现有的区块链应用范围还比较有限,作为一种共享的分布的技术需要多方的协同合作,共同制定规范和标准。区块链技术受到现行法律和监管的制约,法律和监管制度体系有待完善。
2.安全性挑战
区块链技术存在安全漏洞,区块链网络中的私钥安全存在隐患,需要整合更强的加密算法;联盟链的安全性尚未经过大范围的长时间的验证;新的业务模式也会带来新的安全隐患。需要从业务和技术两个方面结合探索安全策略和措施。
3.性能瓶颈有待突破
基于区块链技术构建的系统面临计算性能低、空间占用大、存储资源消耗过高等问题;而系统的效率依赖于网络节点中处理速度最慢的那个节点;区块链技术整合到现有金融系统的成本较高。因此,当前的区块链技术水平只适用于低流量低频次的交易环境,难以应对高并发、高时效、大流量的金融应用场景。虽然许多新平台通过优化区块链技术一定程度上提升了交易速度,距在金融领域大规模普及应用还有一定的距离。
4.尚未在复杂业务场景下大规模应用
随着参与机构逐渐增加以及行业项目的落地,在复杂业务场景下区块链技术的一些问题可能被放大,需要重要行业应用进行验证支撑。
因此,企业在区块链应用时最主要的就是进行场景的选择,首先是合法合规,必须符合国家机关和监管机构的要求。其次是有一定的业务价值,企业的技术创新最终还是要产生效益的,当然在创新技术的孵化期可以在投入产出要求上放松一些,等技术成熟后推动业务的大力发展,形成良性循环。第三就是找到志同道合的合作伙伴共同推动,因为在企业内部做私有链笔者认为没有太大意义,公有链技术风险又太高,寻找到愿意一起尝试的“小伙伴”非常重要。第四就是选择一个较为稳定的,可扩展性强,具有较大发展前景的技术平台,这里稍微扩展说明之下。
笔者所在的单位搭建了国内首个基于区块链的信用证系统,信用证这个业务,基本是A银行开出一个信用证,通过线下邮寄方式寄给B银行。B银行收到这个信件,去做后续业务。这个模式邮寄效率比较低,有可能丢失。信用证开证金额一般较大,一旦丢失对企业融资效率会造成较大的影响。通过将参与方纳入联盟链,通过区块链来进行信息传输,彼此进行信息的共享和互证,保证信用证发信息的时效性和真实性。
在技术方向上,由于没有先例可以借鉴,我们进行了很多调研,最终选择了fabric,目前看这个选择是正确的,一个是因为这个平台的开放性和稳定性来说相对较好,对于银行业务的扩展性来说也有很大空间,二是该平台使用的人较多,国内大部分的联盟链场景都是基于fabric进行开发,社区的活跃度也较高。
区块链最核心的是在不信任的环境当中创造信任。就像经济人学刊提到的“区块链是产生信任的机器”。目前为什么觉得区块链技术在很多情况下可能在应用过程中不是那么好用,因为我们是把区块链技术往我们现在的业务模式里面生搬硬套。现在很多业务模式主要是基于中心化的思路去做的设想,那么区块链本身是“去中心化”的技术,你把它往现有业务模式上套,很难发挥它的生命力和优点,那我们希望寻找新的业务模式、场景来运用这种新的技术来泛化它的生命力。

五、结论与展望

目前大量机构投入大量的资源联合推动区块链技术的研发和应用。从技术优势、机制和模式的优势来看,企业对区块链技术的创新应用是不可逆的大趋势,大规模应用指日可待。未来,区块链与企业具体业务的结合与发展,可从三个角度开展和布局。
从数字经济视角看,区块链技术代表了数字经济的发展方向,区块链模式代表了社会和经济去中介的扁平化发展方向,打破以往各类以媒介为中心的交易模式,国家金融基础设施将迎来重大变革。
从行业发展视角看,企业对区块链技术的创新应用,是一个循序渐进的、分阶段的过程。银行应用区块链技术将更多采取联盟化发展模式,在区块链技术应用的初期,成本和效率优势并不明显,在短期内不断探索和扩展区块链技术的应用场景,快速推进不同业务应用场景的试点实施。此外,企业的业务运转更加依赖与内外部环境的协同以及对资源的整合能力,利用高效、低成本的区块链业务系统,将有利于构筑良好的业务生态体系。
从企业对策的视角看,在即将到来的区块链创新大潮中,许多银行在密切关注的同时,依然会谨慎行事,不盲动,不被动,起初进行小规模的验证开发,大规模的投入上线使用需要谨慎。面向区块链技术带来的创新线索,多数银行仍将选择以大数据为基础的业务创新发展逻辑;在升级互联网金融战略的基础上,将加强以区块链应用为导向的业务模式创新。
区块链技术尚未完全成熟,区块链未来想成功,开源、开放、共享、平等这几点很重要,这是一个完整的生态圈或是一个新的生态圈,需要大家一起去投入、一起去建设。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

5

添加新评论0 条评论

Ctrl+Enter 发表

相关文章

相关问题

相关资料

X社区推广