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中的区块链层,atv,探索和解决将区块链系统整合进Coco Framework的技术路径。以对以太坊的整合为例,直接把以太坊放进TEE的Enclave中是无法取得较高的性能和隐私保护的。如何让以太坊利用Coco Framework的优势发挥最大性能也是一个挑战。为了解决这些问题,我们设计和开发了与公链以太坊兼容的企业级以太坊版本来与Coco Framework进行整合。整合后我们又对整体性能进行了全方面的优化,使得Coco Framework相对以太坊本身,吞吐量达到接近两个数量级的提升。 (责任编辑:本港台直播) |