雷锋网按:联盟链的出现,吸引了众多传统行业企业与互联网公司加入区块链热潮。其中,金融行业拥抱区块链的热情显而易见,打出“ABCD”金融科技战略的微众银行正是弄潮者之一。
出于推动分布式商业生态形成的目的,2017年7月,微众银行、万向、矩阵元三方宣布开源区块链底层平台BCOS(BlockChain OpenSource)。而聚焦到金融领域,在安全、合规、平台互操作性等需求推动下,金融区块链合作联盟(深圳)联合8家成员机构推出了面向金融行业的开源平台FISCO BCOS(GITHUB地址:https://github.com/fisco-bcos)。
与早期版本相比,FISCO BCOS在满足金融级高频交易、安全性及合规多项需求方面有什么改进,又是如何实现的?区块链实践项目是怎样开发、部署、治理的?区块链技术如何与已有IT设施和业务逻辑融合?时至今日,又有哪些新的经验之谈?雷锋网此番邀请到微众银行区块链首席架构师张开翔,细述联盟链在承载商业级应用方面的需求和挑战,本文将为您回顾此次热门课程的部分精彩内容。
课程回顾链接:http://www.mooc.ai/open/course/445
▍联盟链五大挑战:安全、性能、可用性、业务落地和监管
安全性
联盟链需要一个立体分层的保护,划分为应用、存储、网络和主机四个技术点。
进行节点准入控制:进入联盟需要审核且身份可验证,目前CA技术已经相对成熟,金融机构多半采用CFCA。新加入的节点可以验证IP地址、证书等,通过后才能发起连接加入联盟链,进行共识或者流通数据。
可靠的密钥管理:密钥是账户打开的最重要凭证,私钥丢失则对所有财产和行为都不可控。我们对密钥不但做了分离,还做了个“保险柜”,它可以通过软件或加密记账实现,防止密钥泄露。
灵活的权限控制:在联盟链上我们划分了开发、运营、运维、交易员和监管五种角色,如DO分离(即开发和运维分离)是基本运作策略,开发只负责提交代码,链上仅有交易员处理账目或进行资产转换,监管可以叫停业务、冻结账号或暂停智能合约、调用接口来及时干预,具有最高等级的权限。引入权限控制的做法和传统交易系统相似,安全性有所保证。
性能
众所周知,区块链为了追求高一致性和高安全性,容易交易速度过慢,分布式网络需要很多节点去参与。性能优化就涉及到共识机制的问题,这其实是影响区块链表现的核心因素。
-
POW就是用算力和电力挖矿,相对安全,规模较大,没有50%以上算力无法颠覆网络,但难保证效率;
-
POS和DPOS都是在挖矿的基础上用资产数量来加速共识过程,一定程度上通过牺牲安全性来保证效率和规模,现在有新框架如EOS也正是在往POS这条路上走,以太坊和Casper共识也是POS路线,但可能会出现权益高度集中如卡特效应或者无权益者的潮水攻击;
-
Leader的效率和规模有保障,但安全性完全取决于Leader的作为;
-
BFT是高安全高效率但规模难保证。共识机制中安全、规模和效率三者不可得兼,必须有所取舍。
我们选择了PBFT共识机制,它能够达到秒级确认、高一致性和较高安全性,并发性能很高且不需要挖矿算力的损耗。这种模型下强调状态管理和转换以及签名的搜集,网络的抖动会特别大,所以规模不会很大。联盟链参与机构一般在几十个到上百个之内,我们优先强调一致性,以规模换安全。现在也有用PBFT和POS、POW或随机数来结合,保证效率同时提升规模。
我们另外还做一部分优化,三步的投票确认改为议长和跟随者同步确认,理论上效率较此前提升一倍,考虑到网络衰减,最终效率提升在60%到80%之间。此外记账节点之间可以互相检测心跳,让网络波动时链的表现更稳健。
当一台机器已经把自己的计算、带宽、存储等用到极致,到达能力上限,互联网公司的常见思路之一是做平行扩容或分片等等。区块链也可以做类似的处理,比如多链并行架构。假设有五百万用户,我们也可以把每一百万用户分到一条链上,按ID进行一致性Hash或者其他路由策略,在不同链进行计算和存储。这一架构目前已实现并开源。热点账户也是金融业中常见的有性能挑战的场景,整合多链架构和跨链归集技术,增加多个影子户分散热点账户收付款压力,实时交易和延时清算分离,实现容量优化和账户安全。
想知道讲师如何用默克尔树和轻客户端思想来攻克跨链交互问题吗?点击链接在线观看更详细内容。
总的来说,目前联盟链的解决方案可以满足常见或有一定爆发性的金融场景需求,同时保证账户安全和系统稳定。
可用性
现在我们能够做到一年之内停机时间极短,不会超过数小时。从运维角度来说,一键部署、简化建链过程很有必要,这才能形成多链效果。另外,金融机构通常想要部署在机房而非云上,这样更符合监管合规的需求,同时他们的机构内出于安全需要而存在不少隔离设备,隔离区、服务区、对外合作区等区域的划分,因此部署方式要适应多种复杂环境。
业务落地
开发者最关心自己怎么写合约——我们选择了以太坊Solidity,并且根据GPL协议做了开源回馈到社区。以太坊的EVM虚拟机图灵完备,具有丰富数据结构;目前发展已相对社区化,拥有广泛的开发者和大量参考实现。EVM其实是个沙箱,可以跟共识机制良好结合。基于合约我们设置了一个和DNS类似的命名服务,可以用一个简短的名称指向合约。因为合约部署之后会是一串二进制或十六进制的地址,记忆困难,命名服务可将其友好化成一个名词,还可以进行版本管理。比如2.0发布时可以将部分流量引流到新版本,待2.0版本验证通过,再灰度升级把1.0流量切到2.0。
值得一提的是,AMOP(消息通信协议,Advanced Messaging Onchain Protocol)是个可以使链下系统与区块链进行通信的协议,还可以把两个链下系统打通,机构间点对点通信达成协商后再将交易发到链上。
▍应用案例之一:基于联盟链的机构间对账平台
这是国内首个在金融生产环境中运行的区块链应用,目前已接入3家合作行,运行交易记录笔数已达上千万,并且上线一年多以来保持零故障运行。微众银行和合作行之间存在繁琐的账务来往,机构间通常是T+1或T+2后根据账目明细信息达成对账。我们在其中建立区块链体系,账目明细在交易过程中产生,交易流水不遗漏不混乱地实时旁路上链,实现链上对账和总账、分类账的展示。账目功能的智能合约按时间维度创建,进行数据分拆,便于维护升级。
-
脱敏:银行存在很多敏感数据,需要一个个字段去判断哪些数据可以上链分享。
-
隔离:银行间数据做物理隔离,如有需要可进行跨链通信。我们有时会被问到,一旦以后出现量子通信等手段,被这些加密算法保护的数据很难得到保障?这个问题目前确实无法回答,最彻底的方式就是进行物理隔离。
-
通信:经过非对称加密、https传输来保护银行系统和区块链之间的通信。
-
存储:区块链节点的数据加密后落盘存储,保证数据存储安全。
-
密钥:各种私钥、密钥和节点分离保管,私钥存储服务和外网隔离。
而区块链本身就是个互相备份、多活的分布式系统,更利于健壮性设计。打个比方,4个节点,三分之一容错,那就是挂了一个节点,但其他节点依旧可以通过P2P多路通信来调接、转发、广播,让整个网络在极短的时间内达成一致。另外银行自有的立体监控体系也会加入,包括服务器监控、区块链运行时的特性监控、账目监控等,保证系统健壮运行。
▍答疑解惑部分选段
1. 联盟链对于迎合监管需求还有哪些优势?
张开翔:运行效率、容量等方面还是比公有链更高,隐私保护、数据安全的要求也更高。联盟内部是根据他们的一些诉求来搭建,比如资源整合,智能协作等等,对于机构间寻求合作和创新的场景也更具优势。
2. 小企业不对等时,以较小的权重加入不能被接受吗?
张开翔:这取决于业务场景,权限方面有所限制,至于在联盟中所贡献能力、收入分配等问题其实与技术关系不大。
3. 大集团用联盟链,公链几乎都是创业公司吧,说是去中心化,想要颠覆现有中心化商业体系,这是否说明,大家还是从各自利益出发?联盟链仍然是在不跳出现有商业模式情况下的形态。
张开翔:比起去中心,我们着眼于多中心,强调在分布式商业模型中,大家一起高效协作,可控创新,去对现有模型进行优化。也不排除在现有模式之外去,合法合规的前提下进行创新。区块链的信息共享和高效运作确实为创新奠定了良好基础。
4. 对账场景,是否围绕对账需求直接开发分布式系统更高效?甚至不需要链式数据结构等。
张开翔:分布式数据库来做这个其实是可以的,但是对账场景还强调账的一致性跟可验证。有没有一种方法在高一致性之外,还能快速地验证数据,最好是能进行实时的计算呢?最后发现区块链还是最适合的,因为区块里包含了一批数据,有hash这些快速验证的效果。
5. 对于自建CA这块,如果有新机构想要参与进一个已经运营起来的联盟链网络,那就要首先信任这个网络创建之初创建出来的那个CA,那这个CA是不是要足够开源才可以?
张开翔:CA会有许多维度,开源是其中之一,不过你相信这个联盟而它提供CA,这个信任已经足够背书了。
6. 完整的BFT算法复杂度应该是达到了N的N次方,PBFT应该是a*N^2. 它的缺点规模大的时候可以说是效率低,要效率高的时候就是规模小,两者不可兼得。容错率小于33%,是这样吗?
张开翔:这个看法很好,拜占庭容错确实无法撑起上千个节点的规模,有些变通方法比如分片、分set,用随机的方式选择一些可信的记账者。不过我个人预计两年之内,基于联盟链的商业场景不会特别大,我非常期待有上百家机构联手,创造出里程碑式的记录。目前拜占庭容错在联盟链中仍颇具生命力,我们同时也在研究更具活力的算法。
7. 相对业务的数据量级,空块带来的存储空间和同步工作量,是否可以忽略不计了?
张开翔:基本上是的,这只是一个优化,在极端的情况下提供一种可选的能力。比如你的业务只在白天有流量有交易,一天8万秒,每秒存一块,一天就有4万个空块需要你去同步,去空块的特性还是用得上的。
8.存证场景使用区块链存储摘要值的必要性?使用分布式存储系统对摘要值做保全不可以么?业务对摘要的签名是可验证的。
张开翔:为什么现在我们的存证需要多个机构加入签名呢?这要说到业务共识。一个证据的产生,它的确定性、完整性确实可以通过摘要证明,但是这是否在现实法律里有效呢?我们引入机构背书,也就是说机构在证据产生和存储的过程中是共同见证的,其效力比证据自描述要强很多。
想知道金链盟如何构建金融级监控与高校运维管理体系?怎样在联盟链中实现监管审计支持?还有区块链存证系统等应用案例详解以及更多专家解答,立即点击链接回顾课程完整版:http://www.mooc.ai/open/course/445
—————————————————————————————————
【金融科技大讲堂】是由雷锋网(公众号:雷锋网)AI金融评论和AI慕课学院联合出品的线上公开课,我们将有来自民生保险、微众银行、百度金融等机构的技术和产品、业务大咖来与大家分享,区块链技术在传统金融业务中的实际应用经验!
。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/77275.html