Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add EIP: Multi-Owner Non-Fungible Tokens (MO-NFT) #8736

Closed
wants to merge 4 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions EIPS/eip-0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
eip: 0
title: Multi-Owner Non-Fungible Tokens (MO-NFT)
description: A new type of non-fungible token that supports multiple owners, allowing shared ownership and transferability among users.
author: James Savechives (@jamesavechives) <[email protected]>
discussions-to: https://ethereum-magicians.org/t/multi-owner-nfts-discussion-thread/12345
status: Draft
type: Standards Track
category: Interface
created: 2024-07-13
---

## Simple Summary

Check failure on line 13 in EIPS/eip-0.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

body has extra section(s)

error[markdown-order-section]: body has extra section(s) --> EIPS/eip-0.md | 13 | ## Simple Summary | ::: EIPS/eip-0.md | 60 | ## Implementation | = help: see https://ethereum.github.io/eipw/markdown-order-section/

Check failure on line 13 in EIPS/eip-0.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Simple Summary"]

EIPS/eip-0.md:13 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Simple Summary"]
A proposal to introduce multi-owner non-fungible tokens (MO-NFTs), allowing for shared ownership and transferability among multiple users.

## Abstract

Check failure on line 16 in EIPS/eip-0.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Abstract"]

EIPS/eip-0.md:16 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Abstract"]
This EIP proposes a new standard for non-fungible tokens (NFTs) that supports multiple owners. The MO-NFT standard allows a single NFT to have multiple owners, reflecting the shared and distributable nature of digital assets. This model also incorporates a mechanism for value depreciation as the number of owners increases, maintaining the principle that less ownership translates to more value.

## Motivation

Check failure on line 19 in EIPS/eip-0.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Motivation"]

EIPS/eip-0.md:19 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Motivation"]
Traditional NFTs enforce a single-ownership model, which does not align with the inherent duplicability of digital assets. MO-NFTs allow for shared ownership, promoting wider distribution and collaboration while maintaining secure access control. This model supports the principle that some valued information is more valuable if fewer people know it, hence less ownership means higher value.

## Specification

### Token Creation and Ownership Model

Check failure on line 24 in EIPS/eip-0.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### Token Creation and Ownership Model"]

EIPS/eip-0.md:24 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### Token Creation and Ownership Model"]
1. **Minting**: When a digital asset is uploaded, a unique MO-NFT is minted, and the uploader becomes the initial owner.

Check failure on line 25 in EIPS/eip-0.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Lists should be surrounded by blank lines [Context: "1. **Minting**: When a digital..."]

EIPS/eip-0.md:25 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "1. **Minting**: When a digital..."]
2. **Ownership List**: The MO-NFT maintains a list of owners. Each transfer adds the new owner to the list while retaining the existing owners.
3. **Transfer Mechanism**: Owners can transfer the token to new owners. The transfer does not remove the original owner from the list but adds the new recipient.

### Transfer of Ownership

Check failure on line 29 in EIPS/eip-0.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### Transfer of Ownership"]

EIPS/eip-0.md:29 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### Transfer of Ownership"]
1. **Additive Ownership**: Transferring ownership adds the new owner to the ownership list without removing the current owners.

Check failure on line 30 in EIPS/eip-0.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Lists should be surrounded by blank lines [Context: "1. **Additive Ownership**: Tra..."]

EIPS/eip-0.md:30 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "1. **Additive Ownership**: Tra..."]
2. **Ownership Tracking**: The smart contract tracks the list of owners for each MO-NFT.

### Decryption Rights and Access Control

Check failure on line 33 in EIPS/eip-0.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### Decryption Rights and Access Control"]

EIPS/eip-0.md:33 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### Decryption Rights and Access Control"]
1. **Encrypted Asset**: The digital asset associated with the MO-NFT is encrypted.

Check failure on line 34 in EIPS/eip-0.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Lists should be surrounded by blank lines [Context: "1. **Encrypted Asset**: The di..."]

EIPS/eip-0.md:34 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "1. **Encrypted Asset**: The di..."]
2. **Owner Access**: Only addresses listed as owners in the smart contract can access the decryption key.

### Value Depreciation

Check failure on line 37 in EIPS/eip-0.md

View workflow job for this annotation

GitHub Actions / Markdown Linter

Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### Value Depreciation"]

EIPS/eip-0.md:37 MD022/blanks-around-headings/blanks-around-headers Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### Value Depreciation"]
1. **Value Model**: As the number of owners increases, the value of the MO-NFT decreases to reflect the reduced exclusivity.
2. **Depreciation Mechanism**: The value depreciation model is defined based on the asset type and distribution strategy. Less ownership equates to more value, following the principle that valued information or assets become less valuable as they become more widely known or accessible.

### Interface Definitions
Define the necessary interfaces for interacting with MO-NFTs. This includes minting, transferring, and accessing ownership data.

### [ERC-721](./eip-721.md) Compliance
Ensure compatibility with the existing ERC-721 standard for NFTs to maintain interoperability with existing tools and platforms.

## Rationale
The rationale behind MO-NFTs is to align the ownership model of NFTs with the nature of digital assets that can be easily copied and shared. By allowing multiple owners and implementing a value depreciation mechanism, MO-NFTs provide a more flexible and realistic approach to digital asset ownership.

## Backwards Compatibility
This standard is designed to be backwards compatible with the existing [ERC-721](./eip-721.md) standard. Existing tools and platforms that support ERC-721 should be able to interact with MO-NFTs with minimal modifications.

## Test Cases
Include test cases to demonstrate the functionality of MO-NFTs:
1. Minting an MO-NFT and verifying initial ownership.
2. Transferring an MO-NFT and verifying additive ownership.
3. Accessing the encrypted asset as an owner.
4. Ensuring the value depreciation model works as expected.

## Implementation
Provide a reference implementation of the MO-NFT smart contract, ensuring compliance with the specified standard.

## Security Considerations
1. **Access Control**: Ensure only legitimate owners can access the encrypted asset.
2. **Data Integrity**: Protect the integrity of the ownership list and associated metadata.
3. **Smart Contract Security**: Follow best practices for smart contract development to prevent vulnerabilities and exploits.

## Copyright
Copyright and related rights waived via [CC0](./LICENSE.md).

---

### About the Author
James Savechives is a blockchain enthusiast and developer with a keen interest in digital assets and their innovative applications. With a background in software development, James aims to explore and create solutions that bridge the gap between technology and practical applications. You can follow James on GitHub at [jamesavechives](https://github.com/jamesavechives).

Check failure on line 74 in EIPS/eip-0.md

View workflow job for this annotation

GitHub Actions / EIP Walidator

non-relative link or image

error[markdown-rel-links]: non-relative link or image --> EIPS/eip-0.md | 74 | James Savechives is a blockchain enthusiast and developer with a keen interest in digital assets and their innovative applications. With a background in software development, James aims to explore and create solutions that bridge the gap between technology and practical applications. You can follow James on GitHub at [jamesavechives](https://github.com/jamesavechives). | = help: see https://ethereum.github.io/eipw/markdown-rel-links/

---
Loading