热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微软CocoBlockchainFramework:一键解决企业级区块链三大难题

近年来,异军突起的“区块链”受到全行业的广泛关注,众多企业级用户在积极拥抱新技术的过程中却面临三大难题:性能、隐私和组织管理。如果不能很好地解决这些“顽固分子”,区块链技术就相对局限,很难发挥出应有的

近年来,异军突起的“区块链”受到全行业的广泛关注,众多企业级用户在积极拥抱新技术的过程中却面临三大难题:性能、隐私和组织管理。如果不能很好地解决这些“顽固分子”,区块链技术就相对局限,很难发挥出应有的水平。

 

就在昨天,微软在纽约发布了企业级开源区块链基础平台Coco Blockchain Framework (Confidential Consortium Blockchain Framework ),可以一键解决企业区块链的三大挑战。该项目由微软亚洲研究院的区块链团队、Microsoft Azure 区块链产品组以及微软剑桥研究院一起设计和开发而成。下面有请微软亚洲研究院Coco项目中国负责人闫莺为大家一探究竟。

Coco Framework可以说是企业区块链的黑科技,它是第一个能够在企业级区块链上同时解决性能、隐私和组织管理问题的框架。对于企业级用户来说,直接应用已有的区块链(公链)技术无法达到企业级别对系统性能和安全性的要求,即使经过复杂的应用开发流程和网络部署管理,甚至很多系统需要根本架构的改变,也很难达到期望目标。

 

Coco Framework的设计就是为了降低企业级区块链集成和使用的门槛,解决企业商用的需求——系统的性能、隐私和联盟组织管理。它集成了最先进的软件架构、密码学、一致性算法以及可信计算的技术(如Intel的SGX、Hypervisor的VSM)。有了Coco Framework的技术加成,企业可以放心地开发更多样、更复杂的区块链应用,进而让区块链技术可以真正地在这场数字化革命中得以施展和绽放。

 Coco Framework:兼顾解决三大“顽疾”

近年来,区块链技术备受关注。特别是2017年,几乎每个行业都在积极地探索区块链技术,渴望从中挖掘出新的运营模式和商机。然而,在推进区块链技术应用的过程中,企业级用户意识到现有的公链的区块链协议并不能满足他们的业务需求,最直接面临的就是性能、隐私和组织管理这三大“顽固问题”。

 

为什么这三个问题很难从系统角度解决呢?这是因为在公链区块链系统的设计中,主要考虑的是如何让不同节点达成共识,而不同节点所处的环境通常是匿名的、不可信任的、潜在敌对的环境。因此,为防止恶意行为,交易一般都用“明文”(非加密)对所有人可见以监督验证,并应用拜占庭容错类算法来达成共识。然而,这就使得公链中的“保障”技术、性能和隐私保护形成了一个“顾此失彼”的关系,运用“保障”技术就意味着无法兼顾性能优化和隐私保护,但这些恰恰是企业业务的需求。至于隐私问题,我们曾在之前的文章“一文读懂区块链上的隐私与监管问题”中剖析过,相关解决方案一般仅适用于特定的系统中,很有局限性,并且通常会带来性能的损失。

 

因此,如何设计解决方案来兼顾公链中的“保障”技术和性能、隐私保护等成为技术研究领域的一大挑战。Coco Framework的出现则一举击中行业痛点,让我们看到了可行性。

 隐私烦恼“去无踪”:TEE环境和区块链高度集成

用Coco Framework部署的区块链网络具有高度可扩展和隐私保护的特性。它可以满足所有企业联盟链的关键需求,从而加快区块链技术在企业中的广泛应用。Coco Framework不是独立的块链协议,它提供了一个信任的基础,可以整合现有的块链协议(如Ethereum,Quorum或Corda等)提供完整的企业级区块链解决方案。

 

Coco Framework充分利用可信计算环境TEE (Trusted Execution Environment),如 Intel SGX 和Windows 虚拟安全模式(VSM) ,创建了可信的网络。TEE环境既可以证明放入代码的正确性,又能保证运行时内部数据对外界不可见以及不被篡改,进而可以确保保障区块链协议关键代码和数据的机密性、完整性,使得区块链的应用可以在完全受信任的成员节点上高效运行。

 

TEE环境从技术上实现了隐私性能的大幅提升:第一,网络中物理节点之间信任的建立无须节点拥有者之间的相互信任;第二,能够在保证区块链状态保密的情况下处理各种用户请求。事实上,已经有不少的区块链项目采用TEE来达到隐私或者性能方面的要求,例如Hawk[1] 中就用TEE来完成智能合约中对私密信息的处理,而非代码本身以及用户查询请求的隐私性;Hybster[2] 则用TEE实现了高效的BFT协议等等。与它们不同的是,Coco Framework将区块链和TEE高度集成,达到了更高的隐私性以及灵活性。

Coco Framework的运行原理

Coco Framework搭建的网络中的节点,通过证书的验证(如Intel背书)而成为可信节点VN(Trusted Validating Nodes)。每个节点运行Coco Framework和某个区块链的协议(比如以太坊),并根据所选取的一致性协议系统选取lead来处理应用中的交易事务。

 

类比来说,成为lead的VN就像以太坊里面的矿工,但不同的是Coco Framework里面的每个VN都可以通过TEE attestation 验证其他节点执行时候所用的代码哈希值(恶意行为将直接被发现),而不需要像以太坊一样通过重新计算交易来验证。VN之间通过TEE可以互相验证身份和代码从而建立可信的连接。更为重要的是,Coco Framework包含了一套密钥及权限管理机制,可保证只有在TEE中才能处理加密后的交易,并且只有拥有相应权限的用户才能查看相关状态。

正是由于可信网络的建立,让Coco Framework 搭建企业级区块链网络的优点十分突出:

 

  • 吞吐量和交易响应时间接近数据库的速度。通过使用TEE,Coco Framework可以简化一致性协议,从而提高了交易的速度和延迟但不会影响安全性。

 

  • 支持更丰富、更灵活的隐私保护模型。有了TEE的加成,Coco Framework通过使用数据访问控制方案来实现复杂的隐私保护模型。交易的执行,智能合约代码和状态都只能通过应用定义的接口返回给有权限的人。

 

  • 提供可编程的管理模型来支持任意的分布式管理策略。

 

  • 支持非确定性(Non-deterministic)的交易和运算。在绝大多数的区块链系统里,交易的运行结果必须是确定的,任何纯随机的运算都会导致无法有效重现和验证。然而在Coco Framework里因为有了TEE,节点间的运算结果无需验证,所以可以支持非确定性的计算。更加灵活的是,交易可以根据应用的需要和外界系统进行交互。这极大的丰富了应用的语义和场景。

 

已有的区块链协议通过与Coco Framework的整合能够直接解决隐私、性能和管理三大问题。例如,一个企业正在使用以太坊开发应用,那么与Coco Framework整合之后,关键问题一并解决,且不需要对已经开发的应用做修改。

 

同时,Coco Framework并非必须要和云服务绑定,它可以被部署到云上(如Microsoft Azure),也可以部署在企业自己的服务器上。正因为此,Coco Framework在短时间内就迎来了广泛企业和区块链团队的欢迎和拥抱,如J.P. Morgan (Quorum)、R3 (Corda)以及 Intel (Hyperledger Sawtooth)。更多技术细节,请点击阅读原文,查看 Coco Framework白皮书。

  “3-3-8”号技术探险小分队

微软亚洲研究院区块链团队是Coco Framework设计与开发的区块链专家团队,负责Coco Framework中的区块链层,探索和解决将区块链系统整合进Coco Framework的技术路径。以对以太坊的整合为例,直接把以太坊放进TEE的Enclave中是无法取得较高的性能和隐私保护的。如何让以太坊利用Coco Framework的优势发挥最大性能也是一个挑战。为了解决这些问题,我们设计和开发了与公链以太坊兼容的企业级以太坊版本来与Coco Framework进行整合。整合后我们又对整体性能进行了全方面的优化,使得Coco Framework相对以太坊本身,吞吐量达到接近两个数量级的提升。

 

与我们一起并肩战斗的兄弟团队还有位于美国雷德蒙(Redmond)的Microsoft Azure区块链团队和微软剑桥研究院系统安全组的研究员们。三方团队间特长互补,合作中紧张又刺激。有意思的是,三个团队均匀分布在三个时区,每天一个团队下班前,都会迎来另一个团队来上班,任务交接高效、自然。在这样一个国际化的团队里做研究开发8个月,相当于一个普通团队24个月的开发进度。这也是Coco Framework能够迅速设计、开发,并顺利发布的关键。

微软亚洲研究院Coco团队成员,由左至右:闫莺(Coco项目中国负责人,微软亚洲研究院主管研究员)、黎强(来自复旦的实习生)、郭众鑫(微软亚洲研究院软件研发工程师)、熊一远(来自北大的实习生)、周沛源(来自浙大的实习生)、张宪(来自北大的实习生)、陈洋(Coco架构,微软亚洲研究院主管研究员),以及微软亚洲研究院首席研究员Thomas Moscibroda(未出现在照片中)  

正如Microsoft Azure CTO Mark Russinovich在Coco Framework发布会中所提到的,区块链是能够给行业带来变革性的技术,它能大幅减少跨组织共享型业务流程中的摩擦和成本,从而提高效率。目前,微软正积极地和客户、合作伙伴以及区块链社区一起为企业联盟区块链市场做好准备,希望把最先进的区块链技术带给更多企业。

 

Coco Framework是企业级区块链的基础框架。它解决了实际业务中对区块链系统的最关键需求——隐私保护、高性能和组织管理。我们相信这是让区块链落地实际应用的坚实的第一步。作为Coco Framework设计开发的核心团队——微软亚洲研究院区块链团队也将不遗余力地投身于更先进的区块链技术的研究与开发。同时也欢迎志同道合、有能力、有热情的同学加入我们团队的实习计划(可发送简历和实习申请说明到:iblockchain-hiring@microsoft.com)。

附录:

[1] Ahmed E. Kosba, Andrew Miller, Elaine Shi,Zikai Wen, Charalampos Papamanthou:

Hawk: The Blockchain Model of Cryptography and Privacy-Preserving Smart Contracts. IEEE Symposium on Security and Privacy 2016: 839-858

 

[2] Johannes Behl, Tobias Distler, Rüdiger Kapitza Hybrids on Steroids: SGX-Based High Performance BFT.EuroSys 2017

 

白皮书链接:

https://github.com/Azure/coco-framework/blob/master/docs/Coco%20Framework%20whitepaper.pdf

立即访问http://market.azure.cn


推荐阅读
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 本文总结了初学者在使用dubbo设计架构过程中遇到的问题,并提供了相应的解决方法。问题包括传输字节流限制、分布式事务、序列化、多点部署、zk端口冲突、服务失败请求3次机制以及启动时检查。通过解决这些问题,初学者能够更好地理解和应用dubbo设计架构。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 基于分布式锁的防止重复请求解决方案
    一、前言关于重复请求,指的是我们服务端接收到很短的时间内的多个相同内容的重复请求。而这样的重复请求如果是幂等的(每次请求的结果都相同,如查 ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了一种划分和计数油田地块的方法。根据给定的条件,通过遍历和DFS算法,将符合条件的地块标记为不符合条件的地块,并进行计数。同时,还介绍了如何判断点是否在给定范围内的方法。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
author-avatar
手机用户2502860713
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有