蚂蚁链的学习笔记

一、了解蚂蚁链 BaaS 平台的基本功能、特性、优势

蚂蚁链以联盟链为目标,突破商业与金融应用场景,率先实现有自主权的工业级与金融级区块链系统,具有高可靠性、高可运维性、高安全性和适配全球部署等优势
BaaS 平台基于蚂蚁链提供基础技术能力,并输出定制化的区块链整体解决方
案,应用于诸如数据存证与溯源、多方参与的业务协同、资产登记流转等场景

python模块

1、蚂蚁链逻辑架构
在这里插入图片描述
2、蚂蚁链功能特性

postgresql

  1. 世界状态存储
    蚂蚁链中,合约对象分为成员变量、成员函数。其中,成员变量存储在合约状态(Storage)中;成员函数存储在合约代码(Code)中。
  2. 可信执行环境与跨链技术
    蚂蚁链基于硬件可信执行环境(TEE)提供强隐私和高性能的链上数据隐私保护服务,可以对敏感交易数据提供全链路、全生命周期的隐私保护。

蚂蚁链的跨链技术包括三个组成部分:UDAG 跨链协议、跨链合约服务、 基于 TEE 的 Oracle 集群服务。

集成学习

3、BAAS 平台提供的平台应用
①CloudIDE
用户可在本地配置链节点和证书信息,在容器中部署应用,通过本地与容器之间的端口映射,在本地 Web 浏览器看到链的相关信息,包括链交易数目、节点信息、账户信息、出块信息、块中包含的交易等信息。
②分层密钥管理服务(Key management service,AKDF)
分层密钥管理服务是由蚂蚁链提供的一套密钥生成和管理服务,可用于区分指定链上的数据访问权限。
③Workflow 业务状态订阅服务
Workflow 业务状态订阅服务是由蚂蚁链提供的一套区块链工作流提效服
务,旨在简化开发工作,提升开发效率。
④账户映射服务
通过此服务,您可以管理业务账户与链上地址的映射关系,更安
全地管理链上账户的公私钥,为待上链交易提供签名。
⑤小程序浏览器服务
小程序浏览器服务是由蚂蚁链提供的一套便于支付宝 C 端用户查看蚂蚁链上数据的服务。
开通此服务后,系统自动将链上的每条交易生成二维码并展示在交易详情页上。经区块链管理员的授权,C 端用户(即个人用户)可通过支付宝客户端或支付宝蚂蚁链浏览器小程序,扫码查看链上的交易存证。
⑥数据导出服务
数据导出服务能将区块链上特定的区块、交易、合约事件导出到外部的数据库(后续将拓展更多选择)中,导出过程中保证事件的完整性,符合条件的事件会被推送到外部数据库至少一次。
⑦浏览器业务视图
设置完成后,区块链浏览器中即通过区块链浏览器查看交易对应的业务信息
(如合同名称、采购人等)。例如,可通过业务字段(如合同名称、采购人等)快速检索到具有对应业务内容的所有交易。
⑧浏览器数据能力输出
浏览器数据的应用场景主要体现在可以查看区块链特性以及在应用层可以监控链的运行状态。
4、蚂蚁链一体机【484页】
5、应用场景——联合营销
解决痛点的功能: 蚂蚁链一体机可以让用户的程序运行在由安全计算硬件提供的安全环境里,保障用户的程序无后门,隐私数据不被泄露。

加密数字艺术

客户价值: 基于蚂蚁链一体机的联合营销平台,通过一体机提供的安全计算硬件,基于各方的加密数据,实现用户数据的交叉融合计算,在保证数据隐私安全、不被滥用的情况下,使得营销企业触达营销活动的真实用户数据。

batch命令

二、BaaS 平台密码学、身份认证等技术特征、组件功能

1、BaaS 平台背后的安全机制主要分为网络安全、数据安全、存储安全三个维度。

Overleaf

  • 网络安全: 客户端和节点通过 CA 中心获取 TLS 证书,客户端与节点、节点与节点间实行 TLS 双向认证,且通信流量经 TLS 加密,抵御中间人攻击。 除了基本的证书验证外,节点与节点之间还增加了握手逻辑,通过在握手过程中添加验证对方节点私钥签名的方式来确保节点间通信的可靠。
  • 数据安全: 交易使用用户私钥签名,保证交易内容无法篡改。同时,用户可以选择明文数据上链,也可以对称加密的方式对上链数据进行加密。同时支持分享隐私模型,即将加密密钥通过另一把私密密钥加密,加密后的明文和加密后的密钥上链保存。私密密钥通过特定的密钥导出函数进行管理,根据不同安全级别和分享范围分享不同的私密密钥。
  • 存储安全: 数据多节点存储,单节点数据丢失不影响整个网络,节点间数据同步机制保障数据的正确复制,提供数据归档工具,可以归档数据并使用传统方式备份。
    2、算法
    BaaS平台在数字签名算法上支持 ECDSA 和国密 SM2 签名算法。数字签名用来保证数据的完整性和不可抵赖性。
    BaaS 平台支持对称和非对称两类加解密算法。对称加密算法包括 AES-GGM、 SM4 加密算法,非对称加密算法包括 RSA、Elgamal 等。
    BaaS 平台提供 SHA256 和 SHA512 两种国际标准的摘要算法,以及国密 SM3 摘要算法。
    3、TLS 证书与双向认证
    客户端和节点通过 CA 中心获取 TLS 证书,客户端与节点、节点与节点 间实行 TLS 双向认证,且通信流量经 TLS 加密,抵御中间人攻击。除了基本的证 书验证外,节点与节点之间还增加了握手逻辑,通过在握手过程中添加验证对方节 点私钥签名的方式来确保节点间通信的可靠。

三、BaaS 平台智能合约技术特征、组件功能

1、合约平台的核心逻辑
在这里插入图片描述
2、智能合约的技术特征
① 合约生命周期: 蚂蚁链中,一份智能合约的典型的生命周期覆盖合约编写、合约编译、合约部署、合约调用、合约升级、合约冻结六个环节。
② 合约类型: 蚂蚁链提供图灵完备的智能合约能力,目前提供对 EVM、Native、WASM、 Precompiled 合约类型的支持,支持多种合约编程语言(如 Solidity 和 C++)。
③ 合约扩展: 蚂蚁链智能合约提供了多种形式的合约扩展能力,包括 RSA 验签、Base64 编解码、上下文获取、JSON&XML 解析等。
3、智能合约的组件功能【API篇】
蚂蚁链的智能合约平台按照不同访问对象,可以将基本功能划分为账户操作、 合约访问、区块查询、交易查询、事件监听等多种类型。除此之外,合约平台还具备数据隔离、隐私保护、SPV 验证等功能特性,以满足各种业务场景的需求。
① SPV 验证
简单支付验证(Simplified Payment Verification,SPV)验证是合约平台提供的一种数据验证能力,能够在付出很小的存储代价和数据同步代价情况下完成对合约平台上存储数据的合法性校验。基于这种能力,您可以快速实现一个合约平台的轻客户端,完成与其他区块链平台的数据同步和访问。
SPV 的验证能力能够对合约平台上的以下数据给出有效性的证明:

接口管理

  • 区块证明: 用于证明一个指定的区块是否在合约平台的账本数据中存在。主要利用区块的链式结构和平台的共识证明来实现证明。
  • 交易证明: 用于证明一个指定的交易或者交易执行结果是否在合约平台的账本数据中存在。主要利用交易默克尔证明结合区块证明来实现。
  • 账户证明: 用于证明一个指定的账户数据是否在合约平台的指定区块的账本数据中存在。主要利用存储默克尔证明结合区块证明来实现。
  • 存储证明: 用于证明一个指定的存储数据是否在合约平台的指定区块下账户中存在。主要利用存储默克尔证明结合区块证明来实现。

四、BaaS 平台共识机制技术特征、组件功能

1、BaaS 平台的共识能力概述
蚂蚁链平台的共识组件通过提供不同的共识插件来实现共识协议。目前,蚂蚁 链系统中已实现的共识算法包括 PBFT 和 ABFT。
2、BaaS 平台共识的组件功能
① PBFT 共识
PBFT(Practical Byzantine Fault Tolerance)共识协议能够容忍系统中不超过 1/3 的恶意节点(拜占庭节点),同时任意数量的节点宕机重启。通过 PrePrepare 、Prepare、 Commit 的三阶段提交协议来实现网络共识节点之间的交易数据的一致性。蚂蚁链提供的 PBFT 共识插件具有快速终止、恢复可靠、状态同步等特性。
② ABFT 共识
ABFT 是一个满足拜占庭容错要求的异步共识协议,是在 Honeybadger 算法的 基础上进行的改进,同样能够容忍系统中不超过 1/3 的恶意节点(拜占庭节点), 以及任意数量的节点宕机重启,具备无主节点、异步交互 、支持较大节点规模、拜 占庭容错等优势,但实现复杂程度较高。具体而言,蚂蚁链的 ABFT 共识插件可以有效地降低网络带宽负载,以及防止选择性共识问题。

区块链浏览器搭建

五、BaaS 平台的智能合约开发

  • 蚂蚁链平台中,Solidity 合约使用 identity 替代官方 Solidity 的 address 关键字。identity 表示的合约地址或账户地址,均为为 32 字节,而官方 Solidity 中 address 表示的地址是 20 字节。
  • 蚂蚁链合约不支持在合约内创建合约,因此不要在合约内使用 new 来创建 合约。
  • 在蚂蚁链平台上,如果尝试在合约内向一个不存在的地址转账,合约会异常终止,并返回错误码10303;而在以太坊官方 Solidity 合约内向不存在的地址转账时,系统会自动以该地址创建账户。
  • 对于.balance (uint256)语句,如果 identity 代表的账户不存在,则在蚂蚁链平台中该语句会造成合约异常终止,并返回错误码 10300;而在以太坊官方 Solidity 合约中,该语句会返回 0,不会造成合约异常终止。
  • 在蚂蚁链平台中,合约内的 block.number、block.timestamp 分别指最新 已形成的区块(即本交易所在区块的上一个区块)的高度和时间戳(毫秒)而在官方 Solidity 合约中,这两个参数分别指的是本交易所在区块的高度和时间戳。
  • 蚂蚁链平台中,Solidity 合约内不支持 CHAINID 指令
  • 蚂蚁链平台中,如果 Solidity 合约执行过程中异常终止,终止之前产生的 Event Log 依然会出现在交易回执中。

六、产品矩阵

  • 跨链数据连接服务:跨链可信取证、票据可信流转、联合溯源

    接口测试

  • 分布式身份服务:物流金融、智慧政务

    Python笔记

  • 可信计算服务:链上数据可信核验、跨机构名单安全共创

    工厂方法模式

  • 应用速搭平台:商品溯源、版权保护、供应链协同

    opengl shader

  • 区块链合同:租赁合同、金融合同、采购合同、人力资源

    nlp

  • 蚂蚁链授权宝:金融(在确保用户隐私安全和用户授权许可的前提下,为信贷等金融业务场景提供安全可信的用户身份验证和风控服务。)、保险、互联网、交易平台

    c++11

  • 可信身份认证:账户开通、高风险操作身份校验

    PaaS

  • 风控服务:恶意秒杀场景、黄牛抢票场景、网约车逃单场景、用户拉新场景、定制场景、交易风险解决方案、个人信贷风控解决方案

    配置中心

  • 多方安全计算:联合风控、联合营销

    Spring中的xml使用

  • 可信存证产品设计:数字作品登记、服务须知存证、电子凭证存证、在线交易存证、侵权维权存证

    mmaction2

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注