蚂蚁链的学习笔记
Posted nina_1314521
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蚂蚁链的学习笔记相关的知识,希望对你有一定的参考价值。
一、了解蚂蚁链 BaaS 平台的基本功能、特性、优势
蚂蚁链以联盟链为目标,突破商业与金融应用场景,率先实现有自主权的工业级与金融级区块链系统,具有高可靠性、高可运维性、高安全性和适配全球部署等优势
BaaS 平台基于蚂蚁链提供基础技术能力,并输出定制化的区块链整体解决方
案,应用于诸如数据存证与溯源、多方参与的业务协同、资产登记流转等场景
1、蚂蚁链逻辑架构
2、蚂蚁链功能特性
- 世界状态存储
蚂蚁链中,合约对象分为成员变量、成员函数。其中,成员变量存储在合约状态(Storage)中;成员函数存储在合约代码(Code)中。 - 可信执行环境与跨链技术
蚂蚁链基于硬件可信执行环境(TEE)提供强隐私和高性能的链上数据隐私保护服务,可以对敏感交易数据提供全链路、全生命周期的隐私保护。
蚂蚁链的跨链技术包括三个组成部分:UDAG 跨链协议、跨链合约服务、 基于 TEE 的 Oracle 集群服务。
3、BAAS 平台提供的平台应用
①CloudIDE
用户可在本地配置链节点和证书信息,在容器中部署应用,通过本地与容器之间的端口映射,在本地 Web 浏览器看到链的相关信息,包括链交易数目、节点信息、账户信息、出块信息、块中包含的交易等信息。
②分层密钥管理服务(Key management service,AKDF)
分层密钥管理服务是由蚂蚁链提供的一套密钥生成和管理服务,可用于区分指定链上的数据访问权限。
③Workflow 业务状态订阅服务
Workflow 业务状态订阅服务是由蚂蚁链提供的一套区块链工作流提效服
务,旨在简化开发工作,提升开发效率。
④账户映射服务
通过此服务,您可以管理业务账户与链上地址的映射关系,更安
全地管理链上账户的公私钥,为待上链交易提供签名。
⑤小程序浏览器服务
小程序浏览器服务是由蚂蚁链提供的一套便于支付宝 C 端用户查看蚂蚁链上数据的服务。
开通此服务后,系统自动将链上的每条交易生成二维码并展示在交易详情页上。经区块链管理员的授权,C 端用户(即个人用户)可通过支付宝客户端或支付宝蚂蚁链浏览器小程序,扫码查看链上的交易存证。
⑥数据导出服务
数据导出服务能将区块链上特定的区块、交易、合约事件导出到外部的数据库(后续将拓展更多选择)中,导出过程中保证事件的完整性,符合条件的事件会被推送到外部数据库至少一次。
⑦浏览器业务视图
设置完成后,区块链浏览器中即通过区块链浏览器查看交易对应的业务信息
(如合同名称、采购人等)。例如,可通过业务字段(如合同名称、采购人等)快速检索到具有对应业务内容的所有交易。
⑧浏览器数据能力输出
浏览器数据的应用场景主要体现在可以查看区块链特性以及在应用层可以监控链的运行状态。
4、蚂蚁链一体机【484页】
5、应用场景——联合营销
解决痛点的功能: 蚂蚁链一体机可以让用户的程序运行在由安全计算硬件提供的安全环境里,保障用户的程序无后门,隐私数据不被泄露。
客户价值: 基于蚂蚁链一体机的联合营销平台,通过一体机提供的安全计算硬件,基于各方的加密数据,实现用户数据的交叉融合计算,在保证数据隐私安全、不被滥用的情况下,使得营销企业触达营销活动的真实用户数据。
二、BaaS 平台密码学、身份认证等技术特征、组件功能
1、BaaS 平台背后的安全机制主要分为网络安全、数据安全、存储安全三个维度。
- 网络安全: 客户端和节点通过 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 依然会出现在交易回执中。
六、产品矩阵
-
跨链数据连接服务:跨链可信取证、票据可信流转、联合溯源
-
分布式身份服务:物流金融、智慧政务
-
可信计算服务:链上数据可信核验、跨机构名单安全共创
-
应用速搭平台:商品溯源、版权保护、供应链协同
-
区块链合同:租赁合同、金融合同、采购合同、人力资源
-
蚂蚁链授权宝:金融(在确保用户隐私安全和用户授权许可的前提下,为信贷等金融业务场景提供安全可信的用户身份验证和风控服务。)、保险、互联网、交易平台
-
可信身份认证:账户开通、高风险操作身份校验
-
风控服务:恶意秒杀场景、黄牛抢票场景、网约车逃单场景、用户拉新场景、定制场景、交易风险解决方案、个人信贷风控解决方案
-
多方安全计算:联合风控、联合营销
-
可信存证产品设计:数字作品登记、服务须知存证、电子凭证存证、在线交易存证、侵权维权存证
区块链基本概念学习笔记
文章目录
区块链产生与发展历史
区块链的场景属性
区块链定义
区块链是一种点对点传输协议,现代密码学,共识算法,分布式数据存储的新型的应用模型
区块链的特点
1.可追溯
2.不可篡改
3.去中心化
4.完整备份:区块链具有完整的分布式存储特性
5.历史记录:被存储的数据拥有完整的历史记录,可以快速查看,复原
6.交易广播:一次交易分发给网络中的其他结点,同步进行接收
。。。
区块链加密货币的特点
**1.独立性:**所有货币都是独立存在的
**2.唯一性:**地址、交易都具有不可重复的唯一性
**3.匿名性:**账户信息和个人信息没有关联,整个交易过程全程加密
4.不可伪造
区块链核心技术
**1.点对点传输协议:**point to point
**2.现代密码学:**交易安全(哈希技术)+地址安全(公私钥技术)
**3.共识算法:**数据一致性
**4.分布式数据存储:**实现去中心化的重要技术依据
区块链的核心概念
1.区块链
本质:一个分布式账本,通过共识算法来决定谁能抢到当前的记账权。区块链与区块为单位,以区块产生的时间顺序去进行连接。
2.区块
概念:区块链基本组成单位
区块头
1.时间戳
2.当前区块哈希
3.父区块哈希
4.随机数
5. merkle树
6.区块号码
区块体:交易数据
3.分布式数据库
区块链中的区块数据都存储在每一个结点中,所有结点组成了一个分布式数据库。任何多个结点退出都不会影响数据的完整性。
4.结点
运行区块软件的计算机
分类:
全结点: 保存了完整的区块链副本,安全性极高,效率不高
轻结点: 不保存所有区块,需要依赖全结点进行验证交易,效率很高,安全性不高
挖矿结点: 带有挖矿功能的全结点,专门处理交易的验证。
5.挖矿
①对交易进行验证处理(记账),区块就是通过挖矿产生的。
②穷举随机数算法,生成hash,与目标hash进行比较,成功则说明挖矿成功。
6.分叉
①升级分叉
1.矿工遵从不同的机制导致分叉
2.硬分叉:新规则产生区块不允许前项兼容(旧结点无法认可新节点产生的区块)
3.软分叉:新规则产生区块允许前项兼容(旧结点可以认可新节点产生的区块)
②挖矿分叉(多个矿工同时完成工作量证明)
解决方案:不同的矿工跟随链不一样,由于算力不同,必然会出现一条链长一条链短的情况,最后服从长的链。
7.交易
概念:一笔资产在参与方之间的转移
内容:金额,发送者,接受者,交易hash
双花攻击:复用数字货币的数字特性,可以完成同一币多次支付。
8.UTXO交易模式
(unspent transaction output)
比特币独有的交易模式,也是交易过程中的基本单位,主要避免双花攻击。
9.hash函数
将任意长度的数据,通过指定的hash函数,编码为特定长度的字符串。(生成地址,交易验证)
10.加密算法
1.对称加密(加密与解密使用同一个秘钥)
2.非对称加密(加密与解密使用同一对秘钥)
11.merkle树
①可以是二叉树,也可以是多叉树
②快速查找交易是否包含在指定区块中:快速校验,归纳数据交易的完整性
③区块头只需要保存merkle根的hash值
④merkle树支持SPV
12.P2P网络(point to point)
①通过对等网络来分配工作任务的分布式应用架构
②在P2P中,所有网络结点是对等的,不存在任何中心化结点,也不存在所谓的层级结构,所以每个节点都要承担验证功能。
区块链分类
1.公有链(去中心化特性)
①真正意义上的去中心化分布式区块链,任何结点可以随机加入/退出。
2.私有链(可追溯,不可篡改特性)
①部分中心化的区块链,但是有一个中心结点,可以指定参与者。
3.联盟链
①部分中心化的区块链,拥有权限控制的功能。代表:Fabric
区块链架构特点
1.去中心化:基于分布式系统,无中心结构
2.可靠数据化:分布式存储保护数据安全,参与系统结点越多,数据越安全。
3.开源可编程:区块链提供了灵活的脚本系统,甚至于完善的开发平台,支持用户创建更加高级的应用。
4.集体维护:区块链中的数据由整个系统所有具有记账功能的结点进行维护。
5.安全可行:现代密码学实现
6.准匿名性:采用与身份信息无关的hash作为hash地址与交易ID。
参考资料:哔站up主“学习猿地“系列视频
以上是关于蚂蚁链的学习笔记的主要内容,如果未能解决你的问题,请参考以下文章
区块链和分布式数字账本正火?如何在7天内快速掌握这些必备的知识