区块链 | NFT 相关论文:Preventing Content Cloning in NFT Collections(一)

news/2024/10/18 2:26:30/

🐶原文: Preventing Content Cloning in NFT Collections

🐶写在前面: 这是一篇 2023 年的 CCF-C 类,本博客只记录其中提出的方法。



NFT_Collection_Functionality_7">A Robust NFT Collection Functionality

我们将在本节中提出一个定义。在假设有恶意收藏家/发行商 c o l l e c t o r / i s s u e r \mathsf{collector/issuer} collector/issuer 的情况下,NFT 集合 c o l l e c t i o n \mathsf{collection} collection 应该实现的 F C o l l N F T \mathsf{F_{CollNFT}} FCollNFT 功能。该功能的主要目标是,使得每个 NFT 在集合 c o l l e c t i o n \mathsf{collection} collection 中都是独一无二的。

个人认为:在本文中,NFT 集合应该就是指的 NFT 代币合约。通常情况下,一个 NFT 代币合约只会负责管理一个 NFT 集合,因此本文直接说的 NFT 集合吧😇

一个收藏品 c \mathsf{c} c 由一个数字艺术品 c . a r t w o r k \mathsf{c.artwork} c.artwork 和一些相关的元数据 c . m e t a \mathsf{c.meta} c.meta 组成。元数据 c . m e t a \mathsf{c.meta} c.meta 提供关于收藏品的额外信息,比如:艺术作品的创作时间、艺术作品的特有属性。

一个 NFT t \mathsf{t} t 代表一个收藏品 c \mathsf{c} cNFT t \mathsf{t} t 包含:

  • 一个唯一的标识符 t . i d \mathsf{t.id} t.id,通常是由一个计数器生成的;
  • 关于所有者 t . o w n e r \mathsf{t.owner} t.owner 的信息;
  • 数据 t . d a t a \mathsf{t.data} t.data,包含: c \mathsf{c} c 本身或者指向链下 c \mathsf{c} c 的指针;

在已部署的 NFT 集合 c o l l e c t i o n \mathsf{collection} collection 中,由于通常不便在链上存储 c \mathsf{c} c,因此链下存储是迄今为止最常用的解决方案。同时,链下存储常常采用基于内容的寻址(例如,IPFS)。

说明:如果采用的是链上存储,那么 t . d a t a \mathsf{t.data} t.data 包含的是 c \mathsf{c} c 本身;如果采用的是链下存储,那么 t . d a t a \mathsf{t.data} t.data 包含的是指向链下 c \mathsf{c} c 的指针。

通常,集合 c o l l e c t i o n \mathsf{collection} collection 的创作者 c r e a t o r \mathsf{creator} creator 会授权一系列的发行商 I 1 , . . . , I m \mathsf{I_1, ..., I_m} I1,...,Im 来发行集合中的 T \mathsf{T} T 代币。

有一篇论文说,由于一些创作者 c r e a t o r \mathsf{creator} creator 的技术水平有限,因此需要委托别人来帮助自己发行代币。当然,创作者 c r e a t o r \mathsf{creator} creator 也可以自己发行代币。

为了简化问题,我们考虑一个创作者 c r e a t o r \mathsf{creator} creator 只能生成一个集合,并且 TA 也是该集合唯一的发行商 I \mathsf{I} I 的情况。在这种情况下,一个集合可以仅由一个创作者/发行商 I \mathsf{I} I 标识。

个人理解:作者认为键值对 ( I , T ) \mathsf{(I, T)} (I,T) 是一个 NFT 集合的唯一标识,因此我们把 ( I , T ) \mathsf{(I, T)} (I,T) 理解为一个 NFT 集合即可。其中, I \mathsf{I} I 是创建该 NFT 集合的发行者, T \mathsf{T} T 是代币 t \mathsf{t} t 的集合。




功能 F C o l l N F T \mathsf{F_{CollNFT}} FCollNFT 用于管理集合 ( I , T ) \mathsf{(I, T)} (I,T),以下是其中的方法:

  • create():当 I \mathsf{I} I 输入 ( c r e a t e , I ) \mathsf{(create, I)} (create,I) 时,如果集合 ( I , T ) \mathsf{(I, T)} (I,T) 已经存在,则 F C o l l N F T \mathsf{F_{CollNFT}} FCollNFT 停止。否则, F C o l l N F T \mathsf{F_{CollNFT}} FCollNFT 初始化一个空的 NFT 集合 T = { } \mathsf{T = \{\}} T={},并存储为 ( I , T ) \mathsf{(I, T)} (I,T)
  • mint():当 I \mathsf{I} I 输入 ( m i n t , c , O ) \mathsf{(mint, c, O)} (mint,c,O) 时,如果集合 ( I , T ) \mathsf{(I, T)} (I,T) 不存在或者 c \mathsf{c} c 已经存在于 T \mathsf{T} T 中的某一 t . d a t a \mathsf{t.data} t.data 中,则 F C o l l N F T \mathsf{F_{CollNFT}} FCollNFT 停止。否则, F C o l l N F T \mathsf{F_{CollNFT}} FCollNFT 更新 ( I , T ) \mathsf{(I, T)} (I,T) 的条目,即在 T \mathsf{T} T 中添加一个新的代币 t \mathsf{t} t,使得 t . i d \mathsf{t.id} t.id T \mathsf{T} T 中所有代币的 i d \mathsf{id} id 都不同,并设置 t . d a t a = c \mathsf{t.data = c} t.data=c t . o w n e r = O \mathsf{t.owner = O} t.owner=O
  • transfer():当某一实体 P \mathsf{P} P 输入 ( t r a n s f e r , i d , I , O ) \mathsf{(transfer, id, I, O)} (transfer,id,I,O) 时,如果集合 ( I , T ) \mathsf{(I, T)} (I,T) 不存在或者 P \mathsf{P} P 不是 ( I , T ) \mathsf{(I, T)} (I,T) 中代币 t \mathsf{t} t 的所有者,即 t . i d ≠ i d \mathsf{t.id \ne id} t.id=id,则 F C o l l N F T \mathsf{F_{CollNFT}} FCollNFT 停止。否则, F C o l l N F T \mathsf{F_{CollNFT}} FCollNFT 更新 t . o w n e r = O \mathsf{t.owner = O} t.owner=O

个人理解:感觉输入中的 c r e a t e \mathsf{create} create m i n t \mathsf{mint} mint t r a n s f e r \mathsf{transfer} transfer 只是为了指明自己要调用的方法。

任何一个实体 I \mathsf{I} I 都可以通过调用 create 方法来初始化自己的 NFT 集合。 I \mathsf{I} I 可以调用 mint 方法来发行一个与收藏品 c \mathsf{c} c 关联的新代币。如果 c \mathsf{c} c 已经与集合中的另一个代币相关联,则铸币过程会中止。只有集合中代币的所有者才能调用 transfer 方法将所有权转让给另一方。

通过审查机制,功能 F C o l l N F T \mathsf{F_{CollNFT}} FCollNFT 强制实现以下属性:

  • P 1 \mathbf{P1} P1 只有发行者 i s s u e r \mathsf{issuer} issuer 能够在自己的集合中成功创建新的 NFT
  • P 2 \mathbf{P2} P2 只有代币的所有者 o w n e r \mathsf{owner} owner 才能成功地转让它;
  • P 3 \mathbf{P3} P3 代币关联的收藏品 c \mathsf{c} c 在代币集合中都是独一无二的。

我们定义了 F C o l l N F T \mathsf{F_{CollNFT}} FCollNFT,其主要目标是避免集合中的克隆,我们故意没有考虑诸如代币销毁、修改等的相关细节。在以下章节中,我们分析了当前 NFT 的标准,并讨论了它们是如何在实现 F C o l l N F T \mathsf{F_{CollNFT}} FCollNFT 方面失败的。




http://www.ppmy.cn/news/1454993.html

相关文章

期权如何开户的流程是什么样的?

今天期权懂带你了解期权如何开户的流程是什么样的?期权账户开户是指投资者向期权经纪商或金融机构提交申请,以便可以在期权市场上进行交易并持有期权合约的账户开设过程。 期权如何开户的流程是什么样的? 1. 投资者参与营业部提供的股票期权…

百川2模型解读

简介 Baichuan 2是多语言大模型,目前开源了70亿和130亿参数规模的模型。在公开基准如MMLU、CMMLU、GSM8K和HumanEval上的评测,Baichuan 2达到或超过了其他同类开源模型,并在医学和法律等垂直领域表现优异。此外,官方还发布所有预…

富格林:了解黑幕套路正规方法预防

富格林悉知,存于市场中的黑幕亏损,不仅扰乱市场秩序,还使得不少的投资者受害亏损,面对诱导黑幕陷阱,一定要注意采取正规的方法防范避免受害亏损。投资者在进入市场之前,可从黑幕案件中了解黑幕亏损原因&…

pcb沉金工艺有什么作用:为何它成为电子制造的必备工艺?

在电子制造业中,PCB(印刷电路板)的质量和性能对于产品的整体表现至关重要。沉金工艺因其能够显著提升pcb的焊接性能、耐腐蚀性和导电性能,已成为电子制造不可或缺的一部分。 一、沉金工艺的作用 1.焊接性能的提升:工…

从VPS切换到云服务器的几大理由

有很多文章比较VPS和云服务器,选择哪种解决方案来提供最佳效率。尽管很多人仍在使用VPS,但其中许多人已对云服务器拥有简单的认知,且已有意图从VPS迁移到云服务器。然而在这样做之前,您需要更加深入了解云服务器,它的优…

[开发|鸿蒙] 鸿蒙OS开发环境搭建(笔记,持续更新)

搭建开发环境流程: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/installation_process-0000001071425528-V2 鸿蒙DevEco Studio 3.1.1 Release仅支持windows和mac系统 运行环境要求 为保证DevEco Studio正常运行,建议电脑配置…

ES练习项目-酒店搜索

目录 1 需求分析2 酒店搜索和分页2.1 请求和响应分析2.2 定义实体类,接收请求参数的JSON对象2.3 编写controller,接收页面的请求2.4 编写业务实现,利用RestHighLevelClient实现搜索、分页 3. 酒店结果过滤3.1 请求和响应分析3.2 修改请求参数…

# 从浅入深 学习 SpringCloud 微服务架构(十)--zuul(1)

从浅入深 学习 SpringCloud 微服务架构(十)–zuul(1) 1、Zuul 简介 ZUUL 是 Netflix 开源的微服务网关,它可以和 Eureka、Ribbon、Hystrix 等组件配合使用,Zuul 组件的核心是一系列的过滤器,这…