在诸多新技术付诸应用之后,越来越多的技术从业者开始发现,似乎摩尔定律已经开始失灵了,两年的周期远远跟不上技术和信息爆炸的速度。但与此同时,我们却发现另一个定律出乎意外的开始在科技圈里盛行,那就是丛林法则。狼性文化也好,剩者为王也好,云计算、人工智能、再到区块链等技术无不在彰显一个亘古不变的真理,适者生存。
那么如今大为火热的区块链技术是如何适应当今的互联网环境的呢?从无到有,从疯狂到理智,从虚拟到价值,区块链的发展正在逐步走上正轨。攻克了性能、去中心化、数据安全等诸多难关之后,区块链已经变得越发的成熟。那么究竟怎样的区块链才是适合当今市场环境的呢?我们又需要做怎样的区块链呢?
9月8日,《腾讯技术工程—区块链技术沙龙》在深圳举行,此次沙龙分别从腾讯区块链技术探索近况、微众银行在金融科技和区块链领域的探索、区块链与下一代网络基础设施的结合、区块链技术的本质等四个方面的主题内容,与参会者共同探讨研究及业务过程中所遇到的挑战与问题解决思路。
腾讯在区块链技术的探索近况
首先登场演讲的嘉宾是腾讯区块链最早发起人之一、CDG FIT开发高级工程师王宗友,他对当前区块链技术中面临的挑战以及腾讯区块链的解决思路做出了详细的介绍。
首先,区块链究竟是什么呢?可能一千人眼中有一千种,区块链可以是分布式数据库、信任机器、Token经济、价值互联网、下一代互联网、新的生产关系或者是分布式账本等。但官方来讲,区块链的定义是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、防篡改、防抵赖的技术体系。典型的区块链是以块链结构实现数据存储。
那么区块链首先想到的是安全问题,以比特币为例,防篡改的技术一方面包括了块链、UTXO、HASH、签名等密码学原理防范,第二维度则包括了POW等算力博弈,第三方面则能容错的分布式多方见证,三者完全独立多维度共同防篡改,大大降低了 被篡改的可能。
从根源来看,防篡改有三个发展方向,一方面是在发现新维度,如POS及其变种如权益博弈等;旧维度优化也可以包括BFT及其变种能在容错方面实现多点一致;另一方面,过去采用的是静态数据防篡改的方式, 在采用智能合约后就变成了动态逻辑防篡改。
商业区块链系统应用情景来看,目前外在的特征包括了用户数量多、活跃度高、商业安全等,而由此带来的技术挑战就包括了性能、存储、隐私等,这三个维度构成了主要的挑战。
在性能方面,造成性能主要问题的原因是由于多点共识和区块串行所导致。解决性能问题需要从多个角度入手,在链外涵盖闪电网络、雷电网络、打包签名等;分片则涵盖子链、多通道sharding等;在链内的话,共识优化的方法可以从时间角度、节点个数、VRF等;创新维度可以包括DAG、Hash Graph等。值得注意的是,在公式算法中,类似CAP原理,性能、参与节点数、容错性三者不可兼得。
第二个挑战就是来自于海量存储方面,这主要包括了用户增加和交易增长两方面,单机将会无法存储所有的数据。一个解决方案就是按照时间来切分,一般来讲,采用的都是互联网通用的解决方案,例如账户数据存储解决方案或块链文件存储方案等。
第三个挑战就是隐私保护,这需要保障信息共享和商业私密性之间实现平衡。那么应当如何解决呢?从数据方面分类,如果当数据完全隔离时,交易数据只在交易相关方存储,其他方无法获取,但与防篡改的多方见证有冲突;所以数据部分隔离思路就是交易结果的特征在各节点数据相同,详细数据只在交易相关方存储;再者就是数据完全不隔离,通过密码学手段保证交易信息不被竞争对手看到。
腾讯的区块链解决方案如上图所示,主要也是分为了应用服务层、平台产品服务层和底层核心平台层等。在应用时,联盟链商业应用有三个必要条件,多方参与、参与动力并且要保障链上和线下的一致性等。
区块链技术在金融领域的应用实践
第二位分享的嘉宾是微众银行区块链首席架构师,FISCO BCOS平台架构师张开翔,他讲述了微众银行在金融科技和区块链领域的探索,以及在分布式商业场景中区块链技术的发展和行业现状。
张开翔首先对微众银行进行了介绍,微众银行对金融科技的研究和投入很高,目前在区块链领域的探索包括推出了链接同业的金链盟、开源底层平台FISCO BCOS、与政府合作参与标准制定、也参与建立了机构间的对账平台、仲裁链等。目前在探索分布式商业模式,存在分布式技术需求,采用了多方参与、联盟组织的形式等实现合作共赢和业务创新。
那么应该如何在金融行业理解区块链呢?基于分布式网络来对各种不同的数据进行管理,多采用了分布式数据库进行存储。在商业层面,多方参与监督、高效协作,以共识机制管控操作层面,支持监管;在规则层面,定义资产流通规则、智能合约快速交易,控制业务风险提升流动性。
目前来看,区块链具有如下几个特点,其打破机构间或自然人界限的分布,通过共识算法在交易发生时就达成一致性确定性,在验证过程中强调抗欺诈完成博弈和信任,计算和存储冗余,能无差别计算和存储;具有极高的容灾能力和系统可用性;能提供标准化的系统,也正是这些特点使其成为机构之间创新互联的基础设施。
区块链的知识体系非常的广泛,往上走涵盖了行业专家的内容,而向下则包括了技术专家的内容,中间则是一些架构师的内容。总结下来可以将之比喻为一个房子,其地基是数学、密码学、操作系统、编译原理等,框架是分布式系统架构,空间是博弈,窗户是信息安全,天花板则是业务和商业模式。
作为一种整体技术解决方案,区块链融汇吸收了分布式架构、分布式存储、点对点网络协议、加密 算法、共识算法、智能合约等多类技术;微众银行选择了联盟链作为支持分布式商业的基础组件,其更能满足分布式商业中的多方对等合作与合规有序发展要求,兼顾金融创新和金融稳定。
目前,区块链技术的主要应用点在于分布式架构部署、数据追溯与存证、对账与清算、支付与结算等,而具体到联盟链则用于存证、供应链、支付、版权、身份等。而联盟链面临的挑战则主要包括了高安全性、高性能、高可用性、业务落地及合法合规等五个方面。在速度方面,由于区块链强调的是一致性、事务性和安全性等,所以会行程区块链速度的瓶颈。
那么应该如何解决问题呢?网络方面优化网络互联,减少冗余流量,加速关键信息传递, 处理网络抖动问题;存储选择读写速度更快的存储方案,优化流程减少读写冲突,批量读写,适当应用缓存;计算采用更高性能的库和算法,避免重复计算,无锁计算,队列化和多线程计算;协作采用高速低耗能共识算法,优化共识算法流程,协同多个节点并行验证和计算,独立事务交易并行处理,异步验证。
在安全和隐私方面,需要分层次进行,控制方面,需要准入控制,验证参与者身份和证书,角色设计,权限控制,过滤读写接口;然后进行脱敏,敏感数据伪码上链或不上链,将Hash摘要和少量元数据方式上链;加密方面,采用对称加密非对称加密算法, 用密码信封完成加密数据分享 零知识证明,同态,环签名,群签名,阈值签名;最后是隔离,如采用中央对手方,多链多通道,跨链通信等方式,再者还有链下计算和物理隔离等实现。
区块链与下一代网络基础设施的结合
第三位分享的嘉宾是深圳大学副研究员杨术,他针对基于区块链技术提出新一代TCP/IP,用以升级和改造现有互联网做出了分享。
目前互联网正在飞速发展,在未来将为网络接入百亿甚至千亿级别的网络设备,但现有网络恐怕难以承载如此大量的设备。网络开始从计划经济向市场经济进行转变,但过去的网络是静止、信任和安全的,而如今的网络需要承载更多责任,需要变革。那么从哪里变革呢?从最重要的TCP/IP协议,TCP将下层网络向上层提供统一接口调用网络连接来连接到服务器。
但是,TCP/IP设计了TCP地址,但是没有设计IP地址。比如在高铁上,人的IP会常常改变,导致整个TCP/IP重启,因此人们常常会感觉到网络掉线或者卡顿。传统互联网结构虽然解决了TCP/IP的可扩展性和移动性问题,但并没有解决其他问题,网络主机之间依然需要不断的合作,因此结合区块链技术设计的新一代网络帮助解决了可信任、公平性、安全等问题。
那么网络发生了哪些变化的呢?传统网络更关注节点本身,但是在现有互联网中,针对特定信息的访问是最普遍的场景,也就是说信息中心网络中更关注的是信息实体,具体表现为访问被命名的资源,而非主机节点;通过内容复制和缓存实现可扩展的内容分发;快速的内容解析路由及灵活的访问控制。
在未来对网络影响比较大的项目,如NDN就将网络中的一切内容名字化取一个ID,在用户需要某一个内容时,网络只需要将ID交给路由就可以实现。如果是传统网络的话就必须要通过网络连接到服务器才能实现,造成巨大资源浪费,而且在传播过程中还可能造成更大的安全问题。但是NDN提出在网络中建立仓库,只要发现有所需内容就可以获取,保障可扩展性。但NDN的问题在于完全弃用了TCP/IP,需求过大。
为此,普林斯顿大学提出了服务中心网络,保留了TCP/IP,增加了服务访问层,采用渐进式的修改,只需要修改IP地址和端口号就实现。服务中心网络只需要用户向网络提出服务,而服务中心网络则会把这一信号转换为路由信号,且不需要用户担心IP地址变更这些问题,而且速度更快。因此用区块链结合服务中心网络就成为了新一代网络的原型。
区块链网络原本存在一些问题,整体运行效率较低,运行范围也会受限,因此验证交易的成本较低,如果运行高复杂度计算时,验证花费时间过长,这甚至容易导致网络DDoS攻击。目前不同的项目采用不同的方式解决,如IPFS,当服务方希望网络存储,那么用户可以发起挑战,挑战成功可以获取奖励,这样就从全网验证变为了部分验证。但这种机制在于任意性比较大,所以目前希望利用区块链选取节点,并对全网进行监督,当发现有问题时及时抽查并进行惩罚。
对于目前的比特币的结构来讲,其效率比较低。对其进行改进目前有两种机制,一种是链下机制,另一种则是链上改进交易结构来提升效率。以IOTA的DAG结构为例,对传统线性交易结构改为树桩,异步性增强,不同节点进行附着,但这导致整体结构发散,算力分布在大界面上,交易确定时间较长,也更容易受到攻击。解决方法可以通过设置一个宽度,让其在后续节点发展在范围之内,不会过分发散也能保障不被攻击。
区块链技术本质
最后一位分享的嘉宾是中国计算机协会CCF区块链专业委员会委员、TEG计费平台部账户中心总监潘安群,他讲述了针对区块链技术未来的判断、认识以及一些推理。
从本质上来看,区块链可以理解为一个异地多活的分布式数据库。宏观上看,区块链和数据库一样都是用来保存数据。无论数据库的形式如何变化,本质还是数据的存取,区块链本质上是交易数据的存取。异地多活机制多年来一直是分布式数据库领域在探索的方向,但鲜有成效。区块链以一种全新的方式实现了全球最大的异地多活数据库。
二者功能对应来看,区块链本质来看是链式账本,有World State,采用共识算法,利用智能合约实现,具有分片和跨链方式;而分布式数据库则是采用操作日志记录,用于数据存储,采用一致性算法,存储过程,采用分片方式。
而在安全性方面来看,二者的侧重点明显不同。区块链账本有成千上万份副本分散在全球各地,数据几乎永不丢失,同时利用所有节点的相互制约,人很难恶意篡改数据。安全性和抗审查是区块链的重心,表现出来就是去中心化。用户体验和性能相对而言并不是区块链最关心的,而这些问题却是数据库所重视的。二者产品上的侧重点不同,从而导致技术实现上的差异。
共识机制在分布式数据库里叫一致性算法,数据库采用主从结构。而在区块链里每个节点是完全对等的多活架构,使用pow或pos等共识算法争夺记账权,争夺记账权的节点决定将那些交易打包进区块,并将区块同步给其他节点,其他节点仍然需要基于本地数据对区块中的交易做验证,并不像数据那样无条件接受。
腾讯云区块链平台TBaaS最初是基于联盟链做的,为此推出了一些优化性功能,比如成员管理、区块服务、页面封装、账链代码等。其在设计时提供了诸多的模块化设计,针对不同的应用场景为用户提供不同的选择;智能合约方面采用的通用合约开发语言是golang,javascript,java,隔离的合约执行环境是docker;安全隐私方面支持硬件加密机和国密算法,采用多链设计,实现数据物理隔离,私有数据隔离保护。
TBaaS逻辑上分成三个组件:背书节点,共识节点,验证节点,其中背书节点是验证节点的一个子集;交易依次在三个组件上执行,采用三阶段的交易流程:执行合约—打包区块—交易验证。具体来看从背书节点模拟执行合约,并对执行结果签名—背书,采用了灵活可配置的背书策略;在打包区块,共识节点将背书后的交易中打包成区块;然后在验证节点验证区块并提交。
区块链所遇到的挑战主要是性能和可扩展性等问题。针对性能问题,并发处理采用了流水线技术,及保证交易顺序不变,区块链之间进行并发。并发会引入数据竞争,由于版本不一致还会导致分叉、数据幻读等问题;而通过预处理为多活并发节点提供统一数据视图。
结合通兑积分的场景举个例子,比如a和b是互相不认识的两个人,分别在银行1与银行n办理业务获得了对应银行的积分,可能银行1的积分并不能兑换或仅能兑换很少东西,通过TBaaS,用户a可以一起使用银行1和银行n的积分兑换,另外其他行业也接入通兑平台,提供兑换物品,这样TBaaS就可以联合积分提供方、物品兑换方,增强了流动性,也提高了积分的使用价值。
区块链技术的发展,经历了野蛮生长,也经历了变革稳重。目前来看,这一技术显然还没有达到他的最高峰,这场沙龙为我们揭示的就是其未来发展的路径,顺应发展,顺应市场需求,凭借区块链的潜力,未来依然大有可为。