区块链服务 BaaS 介绍

阿里云区块链服务(Blockchain as a Service,简称BaaS)是一种基于主流技术的区块链平台服务,由阿里云区块链团队提供技术支持。它可以帮助您快速构建更稳定、安全的生产级区块链环境,大幅减少在区块链部署、运维、管理、应用开发等方面的挑战,使您更专注于核心业务创新,并实现业务快速上链。
本文从以下维度为您介绍阿里云BaaS服务:

为什么选择阿里云区块链服务?

  • 多种区块链技术引擎支持
    支持主流开源区块链技术Hyperledger Fabric、企业以太坊Quorum,以及具备核心技术领先性的金融级别技术阿里云区块链,满足多种用户需求。

    • Hyperledger Fabric,是由Linux基金会托管的开源企业级区块链技术,是开放式、标准化的区块链技术生态的代表。
    • 阿里云区块链,是阿里云自主研发的高性能、全球部署、极强隐私保护的金融级联盟区块链技术,更多关于阿里云区块链的介绍请参见页面下方阿里云区块链介绍
    • 企业以太坊Quorum,是摩根大通(J.P. Morgan)基于以太坊开发的面向企业场景、符合EEA(Enterprise Ethereum Alliance)规范的开源企业级区块链技术。
  • 一键式部署
    阿里云区块链服务帮助用户一键式快速创建和部署生产级区块链环境,提供图形化的区块链管理运维能力,实现参与企业和业务的动态添加,简化区块链的部署流程和应用配置。

  • 隔离性
    基于阿里云区块链服务创建的联盟链网络,建立在云计算多租户隔离(包括计算/存储/网络等资源的隔离)的基础之上,保证了区块链业务参与方的独立性和自治性。

  • 跨地域
    业务参与方可分布于不同的地域,实现跨地域联盟网络的建立。例如,如下图所示,联盟链网络中的各方(运营方和参与方)可以分别部署于三个不同的城市。

阿里云BaaS服务还提供了广泛的接入方式、动态的资源创建和弹性可扩展能力,以及多维度的安全和隐私保护机制,同时在成本上也具备更灵活的优势。 更多阿里云BaaS优势请参见 产品优势 章节。

如何使用阿里云区块链服务?

基于Hyperledger Fabric、阿里云区块链已商用,企业以太坊Quorum的BaaS服务目前正火热公测中。

Hyperledger Fabric

由运营企业创建联盟,各个业务参与方创建组织。然后运营企业邀请各个业务参与方加入联盟以及对应的业务通道。在这种模式下,联盟的基础设施运营由一家受委托的企业负责,其他参与方作为进行业务协作和交易的角色共同参与。运营企业自己也可作为参与方创建组织,进而加入联盟及通道。

常规模式

使用流程

  1. 开通服务。
    您可以在BaaS产品首页,参考选购指南章节开通BaaS服务。
  2. 创建区块链网络

    进行创建组织、创建联盟、组织加入联盟、创建通道的操作。具体请参见使用流程

  3. 部署链码

    包括上传链码、安装链码、实例化链码的操作。具体请参见部署链码

  4. 访问区块链网络

    包括创建用户通过SDK访问区块链网络

阿里云区块链

阿里云区块链使用模式如下图所示。

蚂蚁区块链使用模式

联盟管理方发起申请联盟链创建,然后邀请其它联盟参与方加入。联盟参与方接受邀请加入联盟后,对联盟链的共识节点进行访问、读写,具体的使用流程如下。

  1. 开通服务。
    您可以在 BaaS 产品首页,参考 选购指南 章节开通 BaaS 服务。
  2. 申请区块链

    您可以在控制台,申请加入区块链或者申请创建联盟链。具体请参见 管理联盟区块链

  3. 管理区块链

    进入控制台管理页面后,您可以邀请其它用户加入您的联盟链,审核其他联盟方加入的申请,管理节点,查看区块链详情等操作。具体请参见 创建联盟

  4. 访问区块链网络

    通过 开发指南,访问区块链网络。

企业以太坊Quorum

  1. 开通服务。
    您可以在 BaaS 产品首页,参考 选购指南 章节开通 BaaS 服务。
  2. 创建区块链网络

    您可以在控制台创建企业以太坊Quorum区块链网络。具体请参见创建一个区块链网络

  3. 管理区块链

    您可以邀请阿里云用户参与到Quorum区块链网络中,然后添加来自于阿里云BaaS的Quorum节点,具体请参见邀请阿里云BaaS用户加入添加来自阿里云BaaS的节点;也可以直接添加来自于其他云平台(如AWS、Azure)或者私有部署环境的Quorum节点,具体请参见添加外部节点

  4. 部署智能合约

    在完成智能合约的开发后,您可以编译和部署智能合约,以及发送交易调用智能合约,具体请参见使用solc编译智能合约使用geth部署智能合约使用geth发送交易

阿里云区块链服务API介绍

阿里云区块链服务API在区块链底层技术原生API之上进行了扩展,支持对区块链服务相关的区块链对象和云资源对象的操作,并简化了原生API对区块链服务的管理、运维、调用等复杂过程,使得用户可以方便地通过API对区块链联盟、组织、节点、通道、智能合约、底层资源、日志、配置信息等对象进行管理和维护。

区块链服务API支持HTTP和HTTPS请求,同时要求使用阿里云账户生成的Access Key和Access Key Secret进行身份验证,以保证API调用的安全性。

此外,您还可以通过阿里云OpenAPI Explorer, 以图形化网页方式,快速检索和可视化调试区块链服务的API。

如需了解和开始使用区块链服务API,请参见API参考

阿里云区块链介绍

阿里云区块链通过引入 P2P 网络、共识算法、虚拟机、智能合约、密码学、数据存储等技术特性,构建一个稳定、高效、安全的图灵完备智能合约执行环境,提供账户的基本操作以及面向智能合约的功能调用。基于阿里云区块链提供的能力和功能特性,应用开发者能够完成基本的账户创建、合约调用、结果查询、事件监听等。

逻辑架构

阿里云区块链逻辑架构图如下图所示。
逻辑架构图

核心逻辑

阿里云区块链核心逻辑如下图所示。
核心逻辑

功能特性

账户模型与状态转换

阿里云区块链采用的新型账户模型设计能够支持多重签名机制与私钥恢复机制,从而解决了账户控制权重问题与单一私钥丢失导致账户不可用的问题。
出于安全性考虑,阿里云区块链基于密码学与链式结构,通过签名机制实现交易数据的不可篡改性和不可伪造性。

智能合约

智能合约实质上是一套以数字形式定义的承诺(Promises),包括合约参与方可以在上面执行这些承诺的协议。阿里云区块链基于此定义设计了自己的智能合约平台,支持智能合约的拓展能力,能够基于智能合约编写图灵完备的业务逻辑来实现丰富的业务场景。

  • 合约生命周期
    阿里云区块链中,一份智能合约的典型的生命周期覆盖合约编写、合约编译、合约部署、合约调用、合约升级、合约冻结六个环节。
  • 合约类型
    阿里云区块链提供图灵完备的智能合约能力,目前提供对 EVM、Native、MYVM、Precompiled 合约类型的支持。其中,MYVM 合约类型,由阿里云自研的 MYVM 虚拟机类型支持,以 LLVM(Low Level Virtual Machine)编译模型支持多种合约编程语言(如 Solidity 和 C++),支持更优秀的性能,以及更出色的开发者友好特性。
  • 合约扩展
    阿里云区块链智能合约提供了多种形式的合约扩展能力,包括 RSA 验签、Base64 编解码、上下文获取、JSON & XML 解析等。

存储设计

阿里云区块链具备以下存储能力:

  • 数据存储
    数据存储分为本地文件系统的 KV 数据库存储以及上层的抽象世界状态数据存储。阿里云区块链智能合约平台的对象存储利用特定的树状数据结构存储数据来达到全局状态快速计算摘要。
  • 世界状态存储
    阿里云区块链中,合约对象分为成员变量、成员函数。其中,成员变量存储在合约状态(Storage)中;成员函数存储在合约代码(Code)中。合约代码与合约状态数据分离,为合约状态以及世界状态提供了唯一稳态 Hash 值的计算,同时支持树上节点快速索引、更新。
  • 历史数据
    阿里云区块链中,不同的区块拥有不同的全局状态根哈希。根据不同区块和不同的全局状态根哈希,可以构造出不同的全局状态历史树,进而查询到不同历史状态下的数据。

共识协议

在阿里云区块链中,共识协议被定义成使分布式系统中的节点快速有效地达成数据的一致性,即确保所有诚实节点以完全相同的顺序执行共识结论中交易,达成数据一致性,同时正确的客户端发送的有效交易请求最终会被处理和应答。
阿里云区块链平台的共识组件通过提供不同的共识插件来实现共识协议。目前,阿里云区块链系统中已实现的共识算法包括 PBFT 和 HoneyBadgerBFT。

  • PBFT(Practical Byzantine Fault Tolerance)共识协议支持系统中不超过 1/3 的节点容错性。通过 PrePrepare、Prepare、Commit 的三阶段提交协议来实现网络共识节点之间的交易数据的一致性。阿里云区块链提供的 PBFT 共识插件具有快速终止、恢复可靠、状态同步等特性。
  • HoneyBadgerBFT 是一个满足拜占庭要求的异步共识协议,具备无主节点、异步交互、支持较大节点规模、拜占庭容错等优势,但实现复杂程度较高。具体而言,阿里云区块链的 HoneyBadgerBFT 共识插件可以有效地降低网络带宽负载,以及防止选择性共识问题。

虚拟机

虚拟机的职责是,在特定的执行环境下通过一组指定的字节码指令来指定阿里云区块链状态机抽象模型的全局状态的更改方式。
除阿里云自主研发的类 EVM 虚拟机插件,阿里云区块链还提供 MYVM、Native 虚拟机插件。EVM 虚拟机插件支持流行的 Solidity 合约语言;MYVM 虚拟机插件以 LLVM 编译模型支持多种合约编程语言。

安全机制

阿里云区块链的安全机制主要分为网络安全、数据安全、存储安全三个维度。

  • 网络安全:客户端和节点通过 CA 中心获取 TLS 证书,客户端与节点、节点与节点间实行 TLS 双向认证,且通信流量经 TLS 加密,抵御中间人攻击。除了基本的证书验证外,节点与节点之间还增加了握手逻辑,通过在握手过程中添加验证对方节点私钥签名的方式来确保节点间通信的可靠。
  • 数据安全:交易使用用户私钥签名,保证交易内容无法篡改。
  • 存储安全:数据多节点存储,单节点数据丢失不影响整个网络,节点间数据同步机制保障数据的正确复制,提供数据归档工具,可以归档数据并使用传统方式备份。

可信执行环境与跨链技术

阿里云区块链基于硬件可信执行环境(TEE)提供强隐私和高性能的链上数据隐私保护服务,可以对敏感交易数据提供全链路、全生命周期的隐私保护。
阿里云区块链的跨链技术包括三个组成部分:UDAG 跨链协议、跨链合约服务、基于 TEE 的 Oracle 集群服务。阿里云区块链使用可信计算环境打造可以外部数据调用的 Oracle 集群,解决区块链协议只能访问链上数据的局限性问题。

信任构建与系统治理

阿里云区块链联盟的信任构建机制主要有创世信任、基础信任、共识信任、输入信任、治理信任、可验证信任。这些信任构建机制共同建立了阿里云区块链联盟的高度可信任的特征。
阿里云区块链提供联盟管理能力,即对具体区块链联盟的成员结构的治理能力。