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

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

微软Coco Blockchain Framework:一键解决企业级区块链三大难题的更多相关文章

  1. 区块链(Blockchain)

    一 .什么是区块链? 区块链(Blockchain)是由节点参与的分布式数据库系统[1],它的特点是不可更改,不可伪造,也可以将其理解为账簿系统(ledger).它是比特币的一个重要概念,完整比特币区 ...

  2. 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1

    摘要: 全球开源区块链领域影响最为广泛的Hyperledger Fabric日前宣布了1.1版本的正式发布,带来了一系列丰富的新功能以及在安全性.性能与扩展性等方面的显著提升.阿里云容器服务区块链解决 ...

  3. 未来-区块链-IBM:IBM 区块链技术开发社区

    ylbtech-未来-区块链-IBM:IBM 区块链技术开发社区 1.返回顶部 1. 开始学习 IBM Blockchain 101:开发人员快速入门指南 这篇快速入门指南适合不熟悉区块链技术,希望快 ...

  4. C#区块链零基础入门,学习路线图 转

    C#区块链零基础入门,学习路线图 一.1分钟短视频<区块链100问>了解区块链基本概念 http://tech.sina.com.cn/zt_d/blockchain_100/ 二.C#区 ...

  5. HyperLedger Fabric Introduction——区块链超级账本介绍

    介绍 HyperLedger Fabric是一个基于模块化架构的分布式账本解决方案平台,它拥有深度加密.便捷扩展.部署灵活及可插拔等特性.它设计之初的目的是支持不同组件的可插拔实现,并适应整个经济生态 ...

  6. 区块链3.0 ada Cardano卡尔达诺如何获得一致好评?

    区块链3.0 ada Cardano卡尔达诺如何获得一致好评? EOS 的直接竞争对手是以太坊.文章介绍的卡尔达诺(Cardano)的目标就更加远大了,他要同时锁定比特币和以太坊.但大家去网上搜索卡尔 ...

  7. 用Java实现简单的区块链

    用 Java 实现简单的区块链 1. 概述 本文中,我们将学习区块链技术的基本概念.也将根据概念使用 Java 来实现一个基本的应用程序. 进一步,我们将讨论一些先进的概念以及该技术的实际应用. 2. ...

  8. [易学易懂系列|rustlang语言|零基础|快速入门|(27)|实战4:从零实现BTC区块链]

    [易学易懂系列|rustlang语言|零基础|快速入门|(27)|实战4:从零实现BTC区块链] 项目实战 实战4:从零实现BTC区块链 我们今天来开发我们的BTC区块链系统. 简单来说,从数据结构的 ...

  9. 阿里云成为Hyperledger超级账本全球会员,发力区块链生态建设

    摘要: 阿里云将会与Hyperledger社区共同推进全球区块链技术和商业生态在多行业领域的建设. 2018年12月12日在瑞士巴塞尔的2018Hyperledger全球峰会上,阿里云正式加入Hype ...

随机推荐

  1. 反射:newInstance()的使用方式

    通过反射创建新的类示例,有两种方式: Class.newInstance() Constructor.newInstance() 以下对两种调用方式给以比较说明: Class.newInstance( ...

  2. failed to create rwlayer: lstat /var/lib/docker/overlay2/ no such file or directory

    在使用Docker构建微服务镜像时出现的错误.第一天构建好好的,第二天就出现了这样的错误.通过百度这条错误的信息非常少,只在 stackoverflow.com 上找到一条,问题指向了 dockerf ...

  3. 什么是BI(Business Intelligence)

    一.BI的定义 BI是Business Intelligence的英文缩写,中文解释为商务智能,用来帮助企业更好地利用数据提高决策质量的技术集合,是从大量的数据中钻取信息与知识的过程.简单讲就是业务. ...

  4. Oracle内置函数大全(转)

    SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数;SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ...

  5. Thinkpad 拆光驱更换光驱硬盘支架、拆光驱面板 T400 T440

    拆光驱.硬盘装支架的环节就不多说了.主要说下拆光驱面板. 先拿细物(区别针.回形针),捅这个洞,就能把光驱仓打开弹出来后,反过来,这里有个卡扣放大看,按住这卡扣,然后往外掰,把面板掰出来 掰出来的面板 ...

  6. UVa 11404 Palindromic Subsequence (LCS)

    题意:给定一个字符串,问删除一些字符,使得它成为一个最长回访串,如果有多个,输出字典序最小的那个. 析: 我们可以把原字符串反转,然后求两个串的LCS,就得到最长回文串,不过要注意一些细节. 代码如下 ...

  7. iOS证书和描述文件的配置

    1.登录Apple开发者账号,进入Apple Developer主页,点击Account 2.点击Certificates,ID&Profiles 3.生成CRS文件 1.打开mac上的钥匙串 ...

  8. ue4 motage

    Montage是什么 一个(可以自由拼接动画的)动画剪辑,通过slot,在任意时候由玩家主动向动画系统push自己制作的动画剪辑 Montage用途 上图是一个近身攻击动画,含有 3 个片段 [开始. ...

  9. 洛谷P2188 小Z的 k 紧凑数

    P2188 小Z的 k 紧凑数 题目描述 小 Z 在草稿纸上列出了很多数,他觉得相邻两位数字差的绝对值不超过 k 的整数特别奇特,称其为 k 紧凑数. 现在小 Z 想知道 [l,r] 内有多少个 k ...

  10. uoj#36. 【清华集训2014】玛里苟斯(线性基+概率期望)

    传送门 为啥在我看来完全不知道为什么的在大佬们看来全都是显然-- 考虑\(k=1\)的情况,如果序列中有某一个\(a_j\)的第\(i\)位为\(1\),那么\(x\)的第\(i\)位为\(1\)的概 ...