My name is zoues. I'm a PaaS Developer.
 结合区块链的可信任,自动化,多中心等特征,其在银行,供应链金融,物联网以及智能制造等方面都有很好的应用实践.其中,在银行领域,区块链技术可以涉及数字汇票,供应链金融,同业和监管以及其他业务应用.
 本文长度为5400字,建议阅读11分钟
 如今,随着社会不断发展,技术不断进步,国内外各大金融机构已经在大数据,人工智能,区块链等新技术上有很多尝试,智能客服,智能投顾等新金融形式也早已不新鲜.那么,这些前沿新科技遇到严肃谨慎的金融业,究竟是"黑科技"般的存在,还是技术宅们的另一场狂欢呢?
 4月25日,由数据猿主办的"当金融遇上黑科技"线下主题沙龙活动在上海腾讯众创空间顺利举行.活动上,来自传统金融机构,金融科技领域新秀,大数据与人工智能专家等一众大咖汇聚一堂,畅聊了大数据,人工智能,区块链等"黑科技"与金融业的那些事!
 以下是由数据猿精编整理发布的 杭州趣链创始人李启雷 的精彩分享:
 非常荣幸在这里跟大家分享我们团队区块链技术方面的研究进展和应用实践.
 首先介绍一下我自己,我2001年进入浙大计算机学院学习,毕业以后留校任教,从事科研和教学,主要的方向是人机交互和传感网络和分布式系统.我在2015年初和美国道富银行合作,开始进行区块链技术的联合研究和应用开发.随着行业的发展和我们在区块链技术的积累,我们在去年成立了杭州趣链科技有限公司,成立三个月之后就获得两家上市公司的投资.
 首先介绍一下区块链的基本概念.区块链技术在国内算比较新的技术,最早是2008年一位叫中本聪的黑客发表了"比特币,一种点对点的电子现金系统".通过这样的技术开创了一种去信任的点对点的非现金支付的货币.从2013年开始整个IT行业包括金融行业都在应用区块链技术.区块链技术是金融领域以比特币原形的系统直接挖掘出来,非常具有应用价值,并且反过来引导技术领域进行创新.
 从比特币以后,区块链技术的关注点发生了变化.下图左边是互联网生态传统的模式.一个中心化的平台作为交易中介,起到信用担保的责任.支付宝就是处于这样的位置给上下游的企业和消费者提供担保.但是这种模式也存在问题.要达到中心化的地位必须要有高公信力,现在行业中没有具有绝对公信力的单位.大部分行业还处在弱信任环境下多机构的协作.但是在金融行业,账户不可能完全托管另在外一个合作伙伴的服务器上.如果数据并不为我自己所有,别人可能操纵数据从而对自身经济利益造成很大影响.
 现实的金融协作当中,不用的协作方之间都有各自的账户.这就存在对账问题,非常繁琐且成本较高.所以从协作的基础上进一步衍生出一些金融活动,变得相对比较困难.这也是目前中国金融衍生方向并没有走的深的原因.
 另外,如果有平台占据了像支付宝一样的垄断地位,就很有可能获取更大的利益.比如滴滴,一年前大家喜欢用这样的平台,因为会有优惠券,对司机来说可能会有100%甚至更多的补贴,对双边都是非常好的促进和鼓励.现在滴滴合并了快的和Uber,消费者没有了补贴,打车困难的时候还会有加价,对司机来说会收取费用.
 在这样的中心化平台上,好的方面是能够促进数据的汇聚,提高整个社会效率.但是副作用是因为垄断会收割整个行业,对行业的参与者有长期的威胁.
 右边是区块链模式,是去中心化的.多个机构相互协作不需要唯一的中心点提供信息平台或者信任担保,可以用分布式的账户技术进行去信任的对账.在这个基础上,传输的不是虚拟货币,而是一种价值或是一种信用,这在银行体系里意义更大.
 在这个体系里面,以比特币为例,通过账户大家可以实现点对点的支付,特别是在结点之间传递这个信用,比如说A付款5块钱给B,B又可以付给C,就完全了价值的传递.
 区块链技术我们更愿意称它为是分布式账本技术,它能够促进多个金融机构的协作,从单点的信任,升级为多点的共识协作.能够在这个交易清算过程中降低成本,提高效率,减少风险.
 区块链内部核心技术是一个数据结构,所有的交易通过打包成一个区块,存储在每个节点上面,然后在系统内部对这些交易构建一个哈希树.它会产生一个根节点,这个根节点也是256位的哈希值,生成哈希值以后,连同这个时间戳,还有随机数,构成了一个区块的头部信息.
 在整个交易的过程当中,所有的参与节点都进行一个竞争,计算随机值,经过两次SHA256的运算,值小于某个给定的限值,这个计算出来的结果,前面有数个0,这个0的数量越多,说明计算难度越大.从计算原理看,它通过求解一个哈希不可逆的问题,来增加计算的复杂度,通过算力竞争,使多个节点之间减少数据冲突的机会.
 现在大家把这种技术有点玩坏了.一开始我们通过计算机CPU进行挖矿,因为计算机CPU计算SHA256的效率是很低的,也就是说你计算机通过10分钟就挖出一个区块来.现在大量的挖矿都是通过专门的芯片,专门的只能计算两次SHA256的集成电路.通过大规模并联并发的技术,大大提供了挖矿的效率,给普通的参与者挖矿建立了非常高的门槛.而且在整个网络当中已经变成由5个矿池统治的,这就是高度并发,从单个CPU,扩展到在GPU显卡上面并发,到后来通过单个挖矿的机房里面,通过多个芯片并发,现在是联合多个机房,构建挖矿的集团.通过内部的利益分配,控制整个帐薄的记账体系.
 技术有三点:第一个利用非对称的加密技术进行了数字签名,提供了不可篡改不可抵赖的功能.第二个通过共识机制,在多个数据节点之间保证数据的一致.第三个数据以链式区块形式组织存储的分布式帐薄系统.
 区块链的形式目前分三种形态:
 公共链:使用虚拟货币提供交易验证激励,容易进行应用程序大规模部署,全球范围可以访问,不依赖于单个公司或辖区,匿名性强,任何参与者都可以在中写入,读取,参与交易验证(例:比特币).
 联盟链:节点为事先设定,并通过共识机制确认,一般不需要数字货币提供交易验证激励.联盟链容易进行节点权限设定,拥有更高应用可扩展性.联盟链可大幅降低异地结算成本和时间,比现有系统更简单,效率更高,同时继承去中心化优点减轻垄断压力(例:商业银行加入R3).
 私有链:交易验证成员范围,系统内不需虚拟货币提供奖励(例:总行可以联合其各城市分行,完成内部数据传输备份,转账等业务.)
 区块链技术有三个特征:
 可信任.所有的账户信息不可以篡改.可以从算法层面保证.
 自动化.智能合约自动化经济活动与契约.确保了智能合约的程序结果是一致的,并且结果不为任何人所控制和干涉,这个合同最终是能够确定执行的.在一些对赌协议或者支付协议,比如支付宝交易的模式是大家非常熟悉的,在这个过程中支付宝起到中间担保的责任,区块链平台上可以用一个智能合约代替这样的信用中介,最终保证流程的合理进行.
 多中心.正是因为区块链可以在多个节点进行数据的同步和可信的记录,所以给多个机构在弱信任环境下协作提供了基础,避免了单中心缺乏合理,合法的地位,并且可以防止万一某个中心占据了垄断地位之后,对上下游进行利益的侵害.
 央行正在进入比特币的监管,防止利用比特币进行洗钱或者资金非法出境的活动.我们研发的目标是建立一个可管可控的安全分布式账户技术.我们能够支撑像银行和互联网金融企业对分布式账户的应用.我们在一些功能性上用了不同的技术,像比特币就是算力竞争的挖矿机制.我们提出了一个鲁棒的容错的算法.在性能上面,比特币每秒只处理7笔/秒的交易,这个交易量是非常小的.
 比如滴滴打车,我们根据它公开的信息,一天能够处理1500万笔的交易,折合到每秒种,大概是300到500个TPS左右.比特币远远不能满足这样的应用场景的性能要求,至少上千个TPS的分布式系统,才能支撑这样一个交易的并发量.
 响应时间方面,在比特币里面,确认交易要10分钟,这个是非常漫长的.在改进的以太坊系统里面,也大概需要10秒到15秒的时间,这也是相对比较长的等待时间.一般用户对于交易确认的容忍时间是在1秒钟之内的,所以现在开发的系统在吞吐量上面,性能,响应的时间上面基本上可以达到实时的要求.
 区块容量方面,现在完成一个比特币的交易要等很久,因为打包成区块的时候,容量有上限.整个社区正在争论,要不要扩容,还是用隔离见证的方式来解决这个问题.现在面向企业的区块链有一个要求:是大容量并且可横行扩展,可扩容的.在一个联盟链的范围里面,最重要的是对成员的准入进行控制,并且能够在全员数量增长到一定限度情况下面,再有新成员进入时,仍能够不停机的提供服务,进行一个动态的扩容.这个是很多现有的开源技术所没有办法解决的.
 我们做了一个更详细的技术和性能的对比.前面两个比特币和以太坊,都是使用了proof­of­work进行挖矿的机制,挖矿机制最大的问题是在金融系统里面,可以偷偷的囤积大量算力,在某笔关键性交易要发生之后,把巨大的算力投入进来,把整个流水的记录推翻掉,这个是在金融系统里面不能忍受的情况.所以要满足金融行业要求,必须能确保交易数据的强一致性.
 所以在fabric里面用了PBFT,但是现在fabric到了0.6版本,1.0版本还在早期阶段,所以这个版本里面,PBFT鲁棒性存在一个问题.这也是我们跟很多试用这套系统的银行合作伙伴在一起讨论得出一个结论,某一个节点失效之后恢复会很慢,或者恢复不了所以我们提出立一个更加鲁棒的容错算法.
 因为前面两个比特币和以太坊是挖矿机制,很难解决企业级的问题.只有fabric和我们趣链的Hyperchain目前能够解决银行或者企业,或者像银联这样金融机构的核心业务需求.还有智能合约,不同的开源项目用了不同的实现技术.比如说比特币基本上不支持智能合约,或者不支持图灵完备的智能合约.在以太坊里面,应用了一个EVM作为虚拟机支持代码运行,fabric使用了Docker容器,在容器里面可以支持java等语言写的Chaincode,提供一些复杂业务逻辑运行.我们Hyperchain兼容EVM来提供智能合约的支持.
 权限方面,其它的两个开源的供应链项目没有权限准入,fabric里面提出了一个基于PKI的机制,这是使用一个CA服务器给各个节点授权,和证书的颁发.我们在这个基础上增加了共识审批,在多个节点情况下面,有新的节点加入的时候,整个系统不用停机.还有机密保护,现在我们提出了数据分区和同态加密的方式来进行不同竞争对手之间的账户数据隔离和加密.最终体现在TPS上面比特币7笔每秒,以太坊是100到200左右的TPS,我们的Hyperchain是1万笔左右的规模.
 区块链的系统构架,底层兼容现有的银行和企业里面私有云的虚拟化或者Docker的容器,中间层主要是8个核心的模块,包括了共识算法,权限控制等,安全加密里面,特别银行系统里面要求国密支持,我们从硬件和软件两个层面支持了国密算法.我们提供了高性能的智能合约引擎.
 节点通信,特别是在联盟链的范围里面,如果要跨地域和跨电信运营商进行一个组网的,对于网络和技术都是非常高的.如果说网络不稳定有可能会发生在PBFT里面的视图变更.我们在这里面使用了高容错的通信的协议,抵消在恶劣的公网的环境里面产生的故障问题.我们知道中国南北不同的运营商网之前络通信质量是非常差的,这是一个非常大的问题.
 存储引擎,现在比特币或者以太坊都只支持单节点内嵌的数据库,这个数据库在小规模数据集情况下面存储性能是非常优秀的.但是数据库集的体量超过了10个TB,或者里面存储的记录条出超过了10亿条记录,它读写性能会大幅下降,远远不能满足实际的业务要求.所以在于存储引擎上面做了一个区块链节点下面的横向扩展.
 失效恢复,这也是非常重要的问题.当某个节点失效之后,不管是因为硬件失效,还是黑客攻击篡改了账户.当节点修复之后,能够多少时间加入.现在其它的开源系统里面,这个过程可能需要几十分钟甚至几个小时,我们系统1分钟之内就可以恢复到正常的共识状态.
 数据管理,是银行系统里面最大的需求.业务系统经过三五的年的运行,流水记录可能是非常的大体量.如果数据全部在单个节点上存储,那么单个节点的存储容量或者能够支撑的性能达不到它要求.而且在银行里面,3个月6个月之后有数据归档和恢复的要求.我们对于区块链技术提供了数据整个生命周期的管理,并且和银行的报表系统,复杂事件查询系统进行衔接.在此基础之上,我们给第三方的应用提供了二次开发的接口,通过JavaSDK,能够帮助企业级的开发人员使用Java语言来构建上层的Webservice给移动手机端,或者Web端,PC客户端等业务性的功能支持.
 我们在核心共识算法做了改进.首先在原始的BFT算法上我们增加了前置验证,保证进入共识的交易内容是符合业务逻辑要求的.节点的自动恢复机制,我们可以让恢复时间到分钟级.这是成员节点动态准入机制,我们使用多个节点的相互验证,当有新的节点加入之后,验证它的授权证书,最后在全网不停机的情况下加入进来.
 我们和一些银行合作了几个项目.
 第一个是数字汇票.例如区块链可以把多家银行的核心系统连接一起,可以防止票据造假.现在的票据伪造还是容易的,通过区块链技术,构建了这个数字票据系统,能够在所有的节点上面都对一个票据的交易进行记录.票据在哪里,归属权是谁,票据是真的还是假的,能以非常低的成本验证,降低了交易风险.
 第二个是供应链融资.利用区块链技术的信用延展能力,实现供应链上企业的应收账款管理,服务实体经济,解决中小企业的融资难题.
 还有同业和监管等项目的落地.
 区块链下面的业务模式,底层包括了区块链的服务,数据整合服务,数据库服务等等,把这些服务聚合在一起,再和银行的业务系统对接,到客户手里面可能是银行手机客户端,或者是Web系统.
 通过这样的平台可以提供四个主要的核心特征:
 1,提高监管能力.
 2,提高了政府对产业的宏观调控的能力,可以实时跟踪当前中小企业的资金情况.
 3,加强供应链企业的信用协作,企业的交易信息和融资信息都在区块链上,保证了资产的真实有效,降低了企业的融资成本和银行的征信成本.
 4,智能合约自动执行.
 这是区块链和物联网结合的模式,也是我们跟一些设备供应商在一起协作的项目,最后运用到智能工厂和智能协作领域上面.
 这是我今天跟大家做的分享,谢谢!
 本文编辑:文璟
 推荐阅读: