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

2017-08-11 | 作者:闫莺、陈洋

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

就在昨天,微软在纽约发布了企业级开源区块链基础平台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