概览
蚂蚁链通过引入P2P网络、共识算法、虚拟机、智能合约、密码学、数据存储等技术特性,构建一个稳定、高效、安全的图灵完备智能合约执行环境,提供账户的基本操作以及面向智能合约的功能调用。
区块结构
一个区块包含区块头和区块体,区块头包含多个关键属性,区块体包含两个列表,交易列表和回执列表
账户模型
蚂蚁链中世界状态是账户的集合。账户分为普通账户和合约账户。两者在数据结构上采用统一的模型。
交易处理流程
智能合约
特色
多语言:Solidity&wasm
安全性:合约扫描、静态预验证、越界检查
高性能:JIT/AOT技术
数据管理:数据合约虚拟机
开发套件:在线 Cloud IDE、离线 IDE ADS
合约生命周期
虚拟机
虚拟机负责执行智能合约完成业务逻辑然后更新区块链世界状态
网络传输与业务组网
P2P网络
- 读写分离
- 安全通信
- 多地址
- 支持域名
BTN网络
广域网区块链高速通信网络(Blockchain Transmission Network)
面向大规模去中心化通信场景的应用层消息路由网络
实现了多路实时路由、消息聚合传输、安全组播通信等,以可维护、可优化的网络接管区块链节点通信的中间链路,实现了传输层优化,使区块链节点之间的通信更加稳定、高效
- 低延迟通讯
- 低带宽消耗
- 高吞吐量
动态子网
共识算法
联盟链共识算法
拜占庭容错(BFT)
BFT(Byzantine fault tolerance)类的算法(例如:PBFT,HotStuff)满足拜占庭容错类的要求,能够有效抵御共识网络中的主观恶意行为
故障容错(CFT)
CFT(Crash fault tolerance)算法(例如:Paxos,Raft)问问应用在传统分布式数据库环境下,用于主备数据库的数据一致性同步保证机制。
蚂蚁链共识算法
当前蚂蚁链系统中实现的共识算法主要有:MyBFT和MyTumbler。
适用场景 | ||
---|---|---|
MyBFT | 大规模集群 网络环境良好 高吞吐 | |
MyTumbler | 广域网 大规模集群 高延迟 网络不稳定 |
隐私保护技术
概述
蚂蚁链提供对区块链数据层面和计算层面的双重隐私保护,覆盖区块链交易全生命周期,应用低门槛,开发无入侵
交易全生命周期保护类别
交易全生命周期保护端到端流程
链原生数据存储
蚂蚁链针对区块链存储特有的持久化数据多版本及数据可验证要求,建立了链原生数据管理系统。
跨链互操作
概述
让区块链方言变成普通话
跨链需求简化为一个跨链信息交互模型:
链A信息经过共识确定,可以安全可信地流转到链B中,链B可以认证链A信息,并且按照约定执行后续的跨链逻辑。
技术要点
跨链消息可信认证
数据异构兼容
跨链事务安全设计
跨链数据连接服务
跨链数据连接服务ODATS(Open Data Access Trusted Service)实现同构及异构链之间的可信互通,助力企业之间可信协作,促进产业生态可信融合。
通过动作标准化的区块链UDAG全栈跨链协议,保证跨链交易的安全性、可扩展性及可靠性,打破区块链数据孤岛。
特性
开发的身份体系
权限管理
账本数据访问
合约消息推送
优势
异构兼容
互操作性强
高安全、高性能
便捷接入、高效协同
开发者工具
IDE集成开发环境
蚂蚁链具备一站式开箱即用的IDE集成开发环境,辅助开发者更好的完成合约开发,构建全面的智能合约生态
Cloud IDE
在线版本IDE
AntChain Studio
桌面版IDE
ChainStack
面向Dapp应用的全栈开发工具
总结
建数字时代的可信链接网络,促进产业协作和价值创造
- 合约增强:支持solidity语言编写的合约及wasm虚拟机,具备多语言支持、高性能、高安全、精细的数据管理和一站式开箱即用的开发体验
- 共识增强:实现自研MyBTF和MyTumble共识算法,具备更高的交易吞吐量,更低的交易确认时延,和不可回滚的交易确认能力
- 网络增强:支持更高效的P2P网络模型,具备低延迟、低带宽消耗、高吞吐量的VTN网络;实现一个动态、灵活、立体的区块链节点互联网络
- 存储增强:针对区块链存储特有的持久化数据多版本及数据可验证要求,建立链原生数据管理系统,提供对合约数据友好的操纵能力,存储规模可扩展,可伸缩,存储引擎高性能,低成本等特性,形成蚂蚁链原生数据管理特色
- 应用增强:围绕应用构建,具备一站式开箱即用的IDE集成环境,提供对区块链数据层面和计算层面的双重隐私保护,实现同构及异构链之间的可信互通,助力区块链应用高质量落地。
蚂蚁链应用开发流程
传统Web应用开发框架vs蚂蚁链应用开发框架
传统Web应用开发:需要开发客户端程序、服务端程序两部分
蚂蚁链应用开发:需要开发客户端、服务端,智能合约三部分
蚂蚁链应用的开发方式
两种接入蚂蚁链的方式
1. 通过SDK与蚂蚁链进行交互
包括账户服务、查询服务、合约服务等操作。
2. 通过REST与秘钥进行交互
包括合约管理、账户管理、合约交易、存证交易、区块链查询等蚂蚁链常用交互功能,以及MYTF链下安全计算应用管理和应用执行操作功能。
两种应用开发场景
1. 通过Web应用(Client)集成SDK或REST直接与蚂蚁链交互
该方式让客户端直接访问区块链平台,去掉了中间的后端服务,更加透明,比较适合轻量级的合约调用、查询等操作。
2. 与传统Web应用开发相似,访问后端服务(Service),后端服务集成SDK或REST与蚂蚁链交互
该方式适合与传统业务系统相结合,在后端服务层实现一些比较重要的业务逻辑和计算任务。
蚂蚁链应用开发流程
智能合约开发并不是蚂蚁链应用开发的必要环节,需要根据实际业务场景选择是否进行智能合约的开发
联盟链多方参与的场景中,如何开发智能合约应用?
- 定义多方协议中,智能合约需要实现的逻辑和功能,实现智能合约
- 定义各参与方客户端或后端服务的业务逻辑,以及与智能合约交互的接口逻辑,并集成SDK实现
- 集成SDK的业务逻辑与智能合约交互逻辑,测试功能
- 多方参与的功能性集成测试
蚂蚁链chainstack开发工具
ChainStack对蚂蚁链内部业务的最佳实践进行挖掘和沉淀,形成蚂蚁链之上的区块链应用技术图谱。
一套智能合约框架
一套可复用的应用组件
一套完整的DApp应用工具链
蚂蚁链智能合约应用的开发工具
智能合约主要用于调用区块链
为提高基于蚂蚁链应用的开发效率,蚂蚁链提供了Cloud IDE智能合约开发工具和离线智能合约开发工具
Cloud IDE智能合约开发工具
- 合约编辑与编译,展示编译结果字节码和接口说明(ABI)
- 合约部署和调用;提供默认体验链环境和测试账户,用来部署和调用合约
- 解析合约方法的返回值、事件日志等,辅助调试合约;保存合约到BaaS合约管理
基本框架
-
Cloud IDE是一个典型的去中心化区块链应用(DApp),可通过JavaScript SDK直接与区块链平台通信,进行合约部署和调用。
-
通过IDE可以连接任何目标的蚂蚁链平台环境。
离线智能合约开发工具
通过简单命令完成合约编译、部署、发布,并支持单元测试框架,提高合约的开发、测试效率
蚂蚁链应用的开发SDK
SDK类别 | 功能特性 | 说明 |
---|---|---|
Java | 功能最丰富,覆盖蚂蚁链的所有功能 | 适合应用于后端服务层 |
C++ | 功能丰富,与Java SDK类型 | 比较适合与传统C++服务相结合 |
JavaScript | 覆盖基本的常用的API,支持Node.js和浏览器环境运行,不支持国密算法 | 适合客户端Web应用集成 |
蚂蚁链开发者知识库
面向开发者的蚂蚁链技术栈教程和文档库,帮助开发者更好地充分利用蚂蚁链技术构建区块链应用