聂舒 张一锋:从SDDS看区块链技术的应用
导读:区块链技术会为金融领域带来深刻的改变,虽然真正商用尚需解决准入、监管、性能等一系列技术问题,但技术路线清晰,前景光明
作者|聂舒 张一锋「中钞信用卡产业发展有限公司,聂舒系公司董事长」
文章|《中国金融》2016年第17期
目前,区块链技术同金融业务的结合已经成为国内外研究和应用的热点。为了探索区块链技术同金融业务结合的技术可行性和业务可行性,中钞信用卡产业发展有限公司(以下简称“中钞”)以设定的票据业务场景,设计研发了基于区块链技术的智能数字票据系统SDDS(Smart Digital Draft System)的概念验证原型。在SDDS的研发过程中,我们主要从技术角度出发,集中探索了加密算法、P2P网络协议、智能合约、共识算法、权限分级、交易效率、隐私保护和区块链代币等问题,并针对当前技术的局限性提出了改进方案。
SDDS平台简介
票据是依据法律按照规定形式制成的有支付金钱义务的凭证。狭义的票据常特指银行承兑汇票和商业承兑汇票。SDDS在概念验证原型阶段处理的票据仅限于银行承兑汇票,实现的主要业务包括出票、背书转让、贴现、转贴现和到期兑付等。
SDDS采用区块链作为底层账本的记录载体,应用智能合约来制定票据流转和交易的规则。区块链技术从底层原理上讲就是将全网的交易数据打包成一个个区块并以链状形式存储的技术。所有的数据块和所有的交易数据都通过严格的密码学算法实现前后链接。新的交易被打包到新的区块中,获得全网共识后被写入区块链。因此,SDDS中的数字票据具有不易伪造、无法篡改等优点。
引入基于端到端通信的区块链技术,使得SDDS相对传统中心服务器网络架构设计有了较大变化。传统中心化设计通常采用星形结构网络,中心节点失效可能导致全局失效。为了解决这类问题,通常需要在中心节点做冗余设计,提高可靠性。在SDDS设计中,整个网络中的各节点在关键业务上都可以互为备份。同时每家银行的特有业务、数据仍保留在自有IT体系内。
在SDDS系统中,区块链扮演了记账中介的角色,并通过智能合约承载并执行票据的业务规则。通过整个网络协同工作,一个安全可信的数字票据业务网络由此构成。除监管节点外,网络里参与记账的所有节点从技术上看都是完全对等、可以互相替代的,从而实现了非常高的系统可靠性和业务灵活性。
区块链应用实践分析
SDDS原型系统的搭建,进行了一次区块链技术应用于金融业务的基本架构的尝试。根据协议分层、组件独立和监管明确的原则,从技术上实现了包括协议层、组件层、服务层、接口层和业务层的“五层体系架构”(见图1)。
传统金融业务系统,对接上述系统架构提供的监管、账本和合约接口,实现与底层区块链的互操作。在SDDS中,数字票据业务规则并不是硬编码在每个节点中,而是以智能合约的形式部署在链上,包括了数字票据合约(用于实现票据信息存储业务)和数字票据管理合约(用于实现票据的交易管理)等。
传统中心化的金融服务往往由各参与方独立维护私有账本,实现基于私有账本的业务逻辑,并与交易对手方或监管方进行账本核对、交易申请和交易确认等。SDDS中只有一个共享的总账本,并和业务逻辑一起直接架构在区块链和智能合约上,各参与方实际上只需要(通过区块链服务)访问网络提交业务申请即可完成业务,无需维护私有账本,也无需将票据业务逻辑在本地单独实现。
经过原型论证,SDDS链上智能合约在技术和业务上都体现出独有的创新意义和实用价值。首先,智能合约成为了数据在链上动态流转的主要载体。智能合约中结构化数据的保存,使得链上的票据数据具备了保存及共享的能力,票据中的敏感信息以加密形式存储,同时又能被业务授权主体安全的访问。其次,智能合约也为金融业务提供了链上数据的操作通道。最后,智能合约提供了权限管理机制。智能合约的数据操作受到严格控制,智能合约会根据业务逻辑需要对签名信息进行检查,并由全网所有节点验证。
区块链用户身份如何确认是区块链技术在实际的金融业务应用中的一个关键问题。在SDDS原型中,尝试引入了结合智能合约和安全芯片的解决方案来存储和管理终端客户的私钥,企业身份证书被保存在SE设备(安全模块)中。SDDS采用了蓝牙手环和蓝牙智能卡等蓝牙SE设备的形态。当企业进行开票、申请贴现、背书转让等数字票据业务操作时,客户端提示用户连接蓝牙SE设备进行数字签名。
这样的设计在保证区块链安全的同时,还拥有以下优点:一方面,全网身份认证方式的一致性,绕开了银行间IT结构差异的障碍,为实现全网统一的KYC(Know Your Customer)认证提供了技术基础;另一方面,票据持有者获得了直接在公开市场进行交易的能力,而不再必须通过接入银行系统的方式进行操作。这无论对银行系统减负,还是对于方便用户获得更灵活的服务,都提供了技术上的巨大改进空间。
需进一步研究的问题
目前常见的区块链方案普遍采取了节点自由出入的公有链模式。与之对应的底层一致性共识算法普遍采用工作量证明算法(POW)。POW的优点是完全的去中心化,各节点可以不受预先授权而随意加入。但缺点是效率低下,共识确认周期较长,无法应用到大多数的商业金融业务。因此区块链技术若要在商业金融服务中应用,必须采用具备权限分级、效率更高的联盟链模式,共识算法也不应该采取效率低下的POW算法。目前区块链的共识算法还有权益证明算法(POS)、委托权益证明算法(DPOS)以及实用拜占庭容错算法(PBFT)等方案。POS和DPOS都是与权益证明有关的算法,前者的主要思想是节点记账权的获得难度与节点持有的代币数量成反比,后者的主要思想是节点选举若干代理人由代理人验证并记账。PBFT算法则采取一个节点一票的方案确定记账结果。综合考虑,未来以PBFT等算法为基础实现联盟链,可以更好地满足金融业务的安全和性能需求。
效率和容量问题是区块链技术亟待解决的另一个重要问题,也是制约区块链技术在金融领域正式商用的主要问题之一。从存储容量上讲,由于目前区块链存储普遍采取各记录和验证节点无差别地记录全网全账户所有历史数据的方案,因此各节点需要记录的数据量巨大并且将高速增长。对应的改进办法包括轻客户端和分片技术等方案。
Merkle树是区块链的数据索引技术,通常情况一个区块头只储存包含交易的Merkle树的根哈希值,区块内容数据包含具体交易细节。只下载区块头的轻客户端,可以根据交易需求动态,请求任一完整节点提供一个容量有限的Merkle树分支。利用区块头记录的Merkle树,轻客户端可以轻易地验证该交易分支的合法性,进而实现业务功能。但是轻客户端只是解决了部分节点的容量问题,仍然需要大量节点保存海量完整数据,同时也无法提高交易吞吐量。
区块链分片技术与数据库分片技术类似,不同的数据被引导保存到不同的节点,交易也会被引导到不同的节点。由于不同的节点同时处理不同的交易,因此交易的吞吐量可以成倍提高,各分片节点也无需保存全量数据。分片技术待解决的技术难点主要包括两个方面:首先是如何决定节点的分片规则,如果规则被恶意利用,51%攻击很容易降低难度,使得作恶者使用很少的节点即可完成攻击;其次是不同分片之间的交易如何锁定和同步。目前已经有相关研究的进展报道,预计不久可以见到初步的解决方案。
总结与展望
SDDS的概念验证原型采用区块链技术,较为完整地实现了符合现有银行票据产品操作流程的主要业务,并在服务器端采用了传统服务器的部署方案,从编程技术、数据库设计到部署方案,都使用了目前银行IT系统常见的产品和形式。这一方案较好地解决了区块链技术与传统金融服务的结合问题。同时,我们根据联盟链共识机制,提出了未来联盟链的技术演进方案,给出采取PBFT共识算法和分片处理机制的联盟链解决方案。
区块链分布式统一账本和智能合约这两大核心属性将带来无需中介的交易方式、自动执行的交易条款和可信的平台服务。通过SDDS的研发,我们认为,虽然区块链技术存在一些有待解决的问题,但它在应用于数字票据和其他金融服务领域时仍具有明显的优势,它不但可以提高系统服务的可用性和可靠性,还可以提供更加灵活的交易方式和更加多元的监管模式,特别是在票据交易、事务处理程序、资金管理、银行账簿管理、金融资产清算等领域的应用前景十分广阔。■
(责任编辑 张 林)