阅读时间: 5 分钟
您一定听说过加密货币代币。 各种代币在 web3 生态系统中发挥着至关重要的作用。 这些代币代表了加密货币的所有权、财富、信誉和权威。 有趣的是,您还可以制作您的加密货币代币。
这些代币是智能合约,涉及各种操作的各种功能,例如转账、余额检查等。您可以通过为其创建智能合约来制作代币。 尽管如此,为了确保您的代币安全并赋予其信任感,ERC 20 是最好的选择 智能合约标准 建议遵循创建可替代代币的标准,ERC 721 是用于创建不可替代代币(NFT)的智能合约标准。
ERC 20 和 ERC 721 是广泛接受的用于创建代币的智能合约协议。 它们为代币提供了一个安全且值得信赖的环境。 这些协议不断改进并变得更好。 朝这个方向迈出的一步将导致创建新的 ERC 1155 代币智能合约协议。 让我们看看它是什么。
1.什么是ERC 1155?
所有的ERC,比如20和721,都只是创建适合NFT不同情况的智能合约的标准。 我们有 ERC 721,USDT 和 DAI 等可替代代币遵循 ERC 20 标准。 ERC 1155 是一项涉及 ERC 20 和 ERC 721 功能和属性的标准。
假设您要创建一个程序,在其中创建多种商品。 例如,您想创建一个名为“金”的代币,另一个名为“银”的代币和一个国王,逻辑上说拥有更多金和银的人将成为国王。 只能有一位国王。 这是一个简单的协议,但要创建它,您必须为资产部署 3 个合约,一个用于黄金代币,另一个用于白银,一个用于国王,这将是 ERC 721。但是如果您可以部署只是一份合约列出了所有这些不同的代币?
这就是 ERC 1155 解决的问题之一。 您无需为区块链上所需的每一种代币部署合约。 这是 ERC 1155 合约示例之一。 猜猜我们在哪里需要这种具有多种资产的系统,有些是可替代的,有些是不可替代的。 答案是web3游戏。 ERC 1155为Web3游戏开发者提供了链上交易的可扩展性和平滑开发能力。
1.1 ERC 1155 中的代币 ID
您必须知道如何检查不同ERC 20代币的余额,您可以调用 余额(地址_所有者) 函数,就可以得到该地址持有多少个token。 但ERC 1155处理不同的代币,因此我们需要为不同的代币提供不同的ID。 几乎每个与代币相关的函数都至少包含两个参数:tokenId(您要查询的资产)和您想了解的地址。
例如,假设合约有 3 个代币:gold、silver 和 king。 要了解该协议中特定地址有多少黄金,您可以调用函数balanceOf(地址 _所有者, 单位256 _id)在智能合约上。 假设gold的tokenId指定为1,则可以调用 余额(0x4Bf9DeCE75Bc7C4a9054d5b3BB13D53543eE4096,1).
2 智能合约审计指南 ERC 1155
ERC 1155 已经存在一段时间了,一些功能在常规 ERC 20 或 ERC 721 协议中不可用,例如批量传输。 此外,ERC 1155 在市场空间中不太流行,因此许多开发人员对这一领域的探索较少。 QuillAudits 分享了有关在 ERC 1155 上寻求 BUIDL 的协议的重要见解,因此它们可以通过保护自身来帮助创建更安全的 web3 生态系统。
2.1 ERC 1155 接收器接口
当我们的 ERC 1155 合约将资产转移到其他合约(通常是 web3 游戏协议中的要求)时,在接收合约中拥有 ERC1155 接收器接口对于成功交易代币非常重要。
ERC 1155 接收器接口的两个功能是:-
- onERC1155Received(运算符,来自,id,值,数据)
- onERC1155BatchReceived(运算符、来自、ids、值、数据)
这两个函数具有几乎相似的功能,唯一的区别是后者是当我们一次处理多个事务时,因此名称为批处理,参数和返回值之间存在细微差别。 但这里我们只讲关于ERC1155Recieved。
该函数不得在铸币或传输过程之外调用。 要接受传输,如果允许传输,则必须返回 bytes4(keccak256(“onERC1155Received(address,address,uint256,uint256,bytes)”))。
查看参数:-
- 操作员:- 发起传输的地址(即 msg.sender)
- from:- 之前拥有该代币的地址
- id:- 正在传输的代币的 ID
- value:- 正在转移的代币数量
- 数据:- 没有指定格式的附加数据
2.2 没有approve()函数?
如果您曾经使用过 ERC 20 或 ERC 721,您会遇到过approve()函数,它允许某些地址从所有者的余额中获取批准的代币。 例如,如果A想要批准B获取100个DAI代币,那么A可以调用approve函数,表示B有权获得100个DAI代币,然后B可以用该金额进行交易。
但 ERC 1155 没有 批准 单个令牌的函数。 我们有一个 setApprovalForAll(地址运算符,bool 已批准) 函数,该函数由所有者调用,并接受地址参数运算符,该运算符是支出者的地址或我们想要批准代币的地址。 所以,我们不能调用 批准 功能或批准我们的 ERC 1155 代币列表中的单个代币,但所有代币访问都将立即获得批准。 开发团队需要意识到这一点。 如果忽视,这可能会导致巨大的损失并损害协议。
2.3 一些定期检查
上面两节探讨了两个独特的 ERC 1155 相关检查。 在本节中,我们将进行一些常规检查,不需要非常深入的解释。
- 注意 ID:- 每个与 ERC 1155 配合使用的外部函数或接口都需要指定令牌 ID 以将其作为输入。
- Burn/Mint:- 每当调用这些函数时,它们只能更改指定代币 ID 的余额和totalSupply。
- ERC 20 相似之处:- 许多属性类似于 ERC 20 代币标准。 仔细阅读 ERC 20 的安全指南也将有助于解决这个问题。
- 重新进入:- 正如所讨论的,ERC 1155 检查传输逻辑中支持的接口。 因此,可能存在各种可能导致以下情况的情况: 重新进入漏洞。 建议在适用的函数上保留不可重入保护修饰符。
3。 结论
Web3 生态系统不断发展常规标准,以增强安全性和功能性。 ERC 1155 就是朝这个方向迈出的一步。 但当新标准发布时,会产生涉及协议中不太常见的标准的知识差距,并带来安全措施样本空间较小的风险。 这时,QuillAudits 与专家团队一起介入。 我们处理、分析并找到协议可能被破坏的不同方式,并以令人难以置信的结果保护客户的协议。 请访问我们的网站并确保您的 Web3 项目安全!
17 观点
- SEO 支持的内容和 PR 分发。 今天得到放大。
- 柏拉图区块链。 Web3 元宇宙智能。 知识放大。 访问这里。
- Sumber: https://blog.quillhash.com/2023/02/20/security-analysis-of-the-erc-1155-nft-smart-contract/
- 1
- 100
- a
- 关于
- 以上
- 接受
- ACCESS
- 横过
- 行动
- 额外
- 地址
- 所有类型
- 量
- 分析
- 分析
- 和
- 另一个
- 回答
- 相应
- 批准
- 批准
- 批准
- 国家 / 地区
- 围绕
- 财富
- 办公室文员:
- 连接
- 审计
- 权威
- 可使用
- 当前余额
- 作为
- 更好
- 之间
- blockchain
- 呼叫
- 被称为
- 可以得到
- 不能
- 检查
- 支票
- 情况
- 如何
- 商品
- 妥协
- 妥协
- 连续
- 合同
- 合同的
- 创建信息图
- 创建
- 创造
- 创建
- 可信性
- 关键
- cryptocurrency
- 戴
- data
- 处理
- 交易
- 深
- 部署
- 开发
- 研发支持
- 差异
- 不同
- 方向
- 讨论
- 每
- 生态系统
- 如虎添翼
- 确保
- 环境
- 等
- EVER
- 所有的
- 例子
- 专家
- 解释
- 探讨
- 外部
- 特征
- 找到最适合您的地方
- 适合
- 遵循
- 其次
- 止
- 开玩笑
- 功能
- 功能
- 功能
- 可互换
- 游戏
- Games
- 差距
- 通常
- 得到
- 越来越
- Go
- 去
- 黄金
- 授予
- 守卫
- 方针
- 听说
- 帮助
- 相关信息
- 持有
- 创新中心
- HTTPS
- ID
- 重要
- 改善
- in
- 输入
- 可行的洞见
- 代替
- 接口
- IT
- 只有一个
- 保持
- 国王
- 知道
- 知识
- 铅
- 信息
- 清单
- 清单
- 小
- 寻找
- 损失
- 使
- 制作
- 许多
- 市场
- 大规模
- 问题
- 措施
- 薄荷
- 更多
- 多
- 姓名
- 命名
- 需求
- 需要
- 全新
- NFT
- NFT
- 不可替代
- 数
- 链上
- 一
- 操作者
- 其他名称
- 学校以外
- 拥有
- 业主
- 所有权
- 参数
- 参数
- 部分
- 特别
- 图片
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 播放
- 流行
- 先前
- 市场问题
- 过程
- 节目
- 项目
- 协议
- 协议
- 提供
- 散列
- 接收
- 定期
- 有关
- 发布
- 代表
- 需求
- 导致
- 成果
- 回报
- 风险
- 角色
- 安全
- 更安全
- 说
- 可扩展性
- 情景
- 部分
- 部分
- 安全
- 保安
- 看到
- 感
- 分享
- 白银
- 类似
- 简易
- 单
- 小
- 智能
- 聪明的合同
- 智能合同
- So
- 解决
- 一些
- 太空
- 指定
- 标准
- 标准
- 步
- 仍
- 成功
- 这样
- 支持
- 系统
- 采取
- 需要
- 服用
- 谈论
- 团队
- 他们自己
- 通过
- 次
- 至
- 象征
- 令牌
- 交易
- 交易
- 转让
- 转让
- 信任
- 可靠
- 下
- 独特
- USDT
- 折扣值
- 价值观
- 各个
- 重要
- 方法
- 财富
- Web3
- Web3 生态系统
- web3 游戏
- web3 项目
- 您的网站
- 什么是
- 什么是
- 这
- 广泛
- 将
- 工作
- 合作
- 将
- 完全
- 您一站式解决方案
- 和风网