热门标签 | 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


推荐阅读
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 本文讨论了在使用Git进行版本控制时,如何提供类似CVS中自动增加版本号的功能。作者介绍了Git中的其他版本表示方式,如git describe命令,并提供了使用这些表示方式来确定文件更新情况的示例。此外,文章还介绍了启用$Id:$功能的方法,并讨论了一些开发者在使用Git时的需求和使用场景。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 作者|COLINHARPER译者|火火酱责编|徐威龙封图|CSDN下载于视觉中国“通过使用微支付通道网络,借助当今现代台式计算机上可用的计算能力,比特币 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文分享了一位Android开发者多年来对于Android开发所需掌握的技能的笔记,包括架构师基础、高级UI开源框架、Android Framework开发、性能优化、音视频精编源码解析、Flutter学习进阶、微信小程序开发以及百大框架源码解读等方面的知识。文章强调了技术栈和布局的重要性,鼓励开发者做好学习规划和技术布局,以提升自己的竞争力和市场价值。 ... [详细]
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社区 版权所有