• ERC721与ERC1155的区别 (详细)


    1.同质与非同质

    ERC-721:仅限于非同质

    ERC-1155:允许同质和非同质,允许像半同质代币这样的新概念币,例如,同质代币可以“转化”为非同质代币,反之亦然。

    2.批量传输

    ERC-721:只支持每次传输一个代币

    ERC-1155:支持在单个交易中批量传输多个代币ID。

    (由于每个以太坊交易大约要15-30秒的时间,因此ERC-721需要花很长时间来传输代币,而ERC-1155可以在一个区块中发送数百个不同的代币。

    优化的ERC-1155顺利通过测试,每秒可传输150-200个代币!)

    3.智能合约单一,不造成数据浪费

    ERC-721:要求为每种新型代币部署一个新的智能合约(例如,创建一个CryptoKitties的合约,再另外创建一个CryptoCuties的合约等)

    ERC-1155:一个智能合约可容纳无数类型的代币。

    注:无法将ERC-1155锁定在不支持ERC-1155的合约中。

    只能将代币发送给符合ERC-1155的合约!从而防止意外的代币丢失。如果收件人拒收ERC-1155代币,系统会立即恢复你的代币。

    ERC-721试图实现ERC-1155的功能,但无疾而终,ERC-721的标准中包含了遗留的“不安全”函数。如果钱包转账不安全,你有可能永远丢失自己的代币。

    4.发送代币触发智能合约

    向智能合约发送ERC-1155代币可触发区块链上的一系列函数和事件。例如,交易所允许用户直接发送代币,自动瞬时地在链上交换其他代币。

    由于这些代币严格遵循“onERC1155Received”规则,因此ERC-1155百分百可靠。

    但无法用这种方法发送ERC-721代币,因为如果钱包不能安全发送代币到交易所,用户将遭受损失。

    这意味着dapp无法依赖于ERC-721接收器正常工作。由于ERC-721不可靠,无法创建这些应用。

    5.本地化

    ERC-721:只支持一种语言

    ERC-1155:支持将所有元数据(例如代币名称、说明、甚至代币图像)语言本地化,使所有代币都通用。

    6.遗留元数据

    ERC-721:保留了像“symbol”和“name”这样的遗留元数据,但这对于许多现代代币来说是不必要的。

    ERC-1155:将所有元数据保存到web或IPFS上的URI(“统一资源标识符”的简称)中。

    7.ID替换

    ERC-721:由于只支持静态元数据,因此每个代币ID必须由智能合约存储和管理其元数据URI。

    ERC-1155:合约可以指向无数的代币URI,无需在链上存储任何额外的数据。甚至可以用来指向一个web服务,该服务为数据库中的每个代币动态生成代币JSON。

    8.丰富事件日志

    ERC-721:可发出转移和批准事件。

    ERC-1155:可发送铸币、销毁、传输、批准和更改元数据的标准事件。使生态系统受益,例如深度分析代币和代币浏览器。 

  • 相关阅读:
    .net Monitor产生SynchronizationLockException异常的原因
    .net 表达式返回值和等号赋值的区别
    .net core WebApi Interlocked配合ManualResetEventSlim实现并发同步
    .net core 使用log4net日志组件
    .net core Kestrel宿主服务器自定义监听端口配置
    .net core IIS/Kestrel上传大文件的解决方法
    .net 在同步方法中使用拉姆达表达式执行async/await异步操作
    ASP.NET MVC ValidationAttribute 服务器端自定义验证
    自定义TempData跨平台思路
    ValueProvider核心的值提供系统
  • 原文地址:https://www.cnblogs.com/peteremperor/p/16160862.html
Copyright © 2020-2023  润新知