글로벌 이더리움 커뮤니티 활동

로열티 분배 시스템을 사용한 지분 소유 가능한 NFT

GOBT 2021. 6. 8. 16:17

간단한 요약

nft 토큰의 소유자가 되는ERC-20 계약. NFT의 소유자로 ERC-20 계약을 작성하여 NFT의 소유권을 여러 ERC-20 토큰으로 분할합니다특정 ERC-20 토큰을 소유 한 주주에게 로열티 (수입)를 분배합니다.

요약

이 제안의 의도는 ERC-20의 기능을 확장하여 nft의 지분으로 표현하고 ERC-20 토큰 보유자에게 로열티를 분배하는 자동화되고 신뢰할 수 있는 방법을 제공하는 것입니다. ERC-165 표준 인터페이스 감지를 활용하여 ERC-20 토큰이 ERC-721 대체 불가능 토큰의 공유 소유권을 나타내는 지 감지합니다. 이 제안서의 ERC-165 구현은이 제안서 (표준)를 준수하는 경우 계약 및 오프 체인 수준 모두에서 검증할 수 있습니다. 이 제안은 기존 ERC-20 토큰 표준 및 ERC-721 토큰 표준을 약간 변경하여 기존 토큰 표준을 기반으로 작동하는 대부분의 소프트웨어를 지원합니다. ERC-20 계약 주소 (NFT 소유자)의 주소로 이더를 보내면 홀더 당 이더의 양을 분배하고 체인 내부에 보관합니다.

자극

많은 산업에서 공유 소유권을 나타 내기 위해 암호화로 검증 가능한 방법이 필요하다는 것은 분명합니다. ERC-721 Non-Fungible Token 표준은 디지털 아트 워크, 게임 아이템 (캐릭터), 가상 부동산과 같은 디지털 자산에서 부동산, 아트 워크, 자동차 등과 같은 실제 자산에 이르는 자산의 소유권을 나타내는 데 널리 사용됩니다. 더 많은 자산이 ERC-721 대체 불가능 토큰으로 등록되어 부분 소유권에 대한 수요가 증가 할 것입니다.

부분적 소유권은 우리가 자산의 일부를 소유한다는 것을 의미하지 않습니다그러나 그것은 또한 자산이 어떤 종류의 재정 활동을 통해 이익을 얻을 때마다 재정적 보상을 받아야 함을 의미합니다예를 들어, 세계 무역 센터를 대표하는 NFT 토큰 소지자는 임차인으로부터 월 임대료를 받아야합니다. "Everydays-The First 5000 days"를 대표하는 NFT 토큰 보유자는 자신의 작품이 금융 활동에 사용될 때마다 광고비와 전시 비를 받아야 합니다. 스마트 컨트랙트 (검증 가능 시스템)는 로열티 보상과 관련된 모든 종류의 사기를 방지하기 위해 이러한 배포 시스템을 구현하는 것이 중요합니다완전히 검증 가능한 환경 (블록체인)위에서 작동하는 공정한 로열티 분배 시스템에 따라 투자자들에게 보상을 돌려줌으로써 NFT 시장이 번창할 것입니다.

이를 가능하게하기 위해이 제안은 소득을 보유자에게 공정하게 분배하는 논리 규칙을 구현합니다이 로열티 분배 시스템이 표준에서 거의 변경되지 않고 작동하고 분배 논리를 준수하도록 하기 위해 몇 가지 수학 연산 및 매핑이 추가로 사용됩니다이 표준을 구현함으로써 지갑은 erc20 토큰이 NFT를 나타내는 지 확인할 수 있으며 이는 ERC-20을 지원하는 모든 곳에서이 제안 (표준)이 부분적 NFT 토큰을 지원할 것임을 의미합니다.

사양

이 표준을 구현하는 스마트 계약은 아래의 모든 기능을 구현해야 합니다.

FNFT 표준을 구현하는 스마트 계약은 ERC-165를 구현 supportsInterface() 해야 하며 인수를 통해 전달되는 true경우 상수 값을 반환해야 0xdb453760합니다.interfaceID

(1)제 3자는 Fractional-NFT를 다른 토큰 표준과 구별해야 합니다.

supportsInterface()이 계약이 이 표준을 지원하는지 확인하려면 ERC-165 표준 인터페이스 감지를 포함해야 합니다.이 제안에서 우리 targetNFT()는 NFT의 계약 주소와 NFT의 토큰 ID를 검색하고, sendRoyalty()토큰 보유자에게 로열티를 보내고, withdrawRoyalty()그들이받은 로열티를 인출하기 위해 사용 sendRoyalty()합니다.

(2) 제 3자는이 FNFT가 가리키는 NFT 계약 주소와 NFT의 tokenID를 알아야 합니다.

다음은 온 체인 시나리오입니다.

오프 체인 시나리오 :

자바 스크립트에서 ethers.js 사용 :

web3.js

로열티 분배 논리 : 특정 기능에서 무엇을 해야 하는지 추상적으로 말하기는 쉽지만, 로열티 분배 논리를 구현하는 데는 많은 고려가 필요합니다. 이 로직을 설계할 때 준수해야 하는몇 가지 핵심 원칙 이 있습니다.

(1) 로열티는 총공급량에 대한 나의 현재 지분 (주)비율로 배분되어야 합니다.

(2) 로열티는 보상 (주어진) 시점에 지급된 로열티의 비율로 배분되어야 합니다.

예를 들어 A는 80 %를 소유하고 B는 100 ether가 로열티로 주어졌던 2020 년 총공급량의 20 %를 소유했습니다. 그러나 2021 년에 B는 80 %를 소유하고 A는 총 공급량의 20 %를 소유합니다. 두 사람 모두 지금까지 로열티를 철회하지 않았고 2021 년에는 로열티가 없었습니다. A가 지금까지 로열티를 철회할 때 A는 로열티가 주어진 순간에 총공급량의 80 %를 소유했기 때문에 80 ethers를 받게 됩니다.B가 로열티를 철회하면 로열티가 주어진 순간 총공급량의 20 %를 소유했기 때문에 20 ethers를 받습니다.인출시기는 전적으로 소유자의 결정에 달려 있기 때문에 로열티가 부여되는 순간 내 지분 비율 만이 중요한 요소가 될 필요가 있습니다.

(3) 이미 한 로열티는 인출할 수 없습니다.

이론적 해석

로열티를 철회하는 로열티 리시버의 설계는 가스 효율 때문에 고려되었습니다. 이 계약의 기능 중 하나가 로열티를 받을 때마다 또는 정기적으로 모든 보유자에게 에테르를 보내면 엄청난 양의 가스 소비가 불가피합니다. 이러한 문제를 처리하기 위해이 표준 (안)은 출금 인이 자신의 출금에 대한 대부분의 계산을 수행하고 발송인은 가능한 한 최소한으로 처리하도록 합니다.

이전 버전과의 호환성

이 계약은 기존 사양을 수정하지 않고 로열티 배포 시스템을 제공하는 3 가지 기능만 추가하기 때문에 기존 EIP와 호환됩니다. 구현에 따라 데이터 유형, 논리 및 추가 유효성 검사 및 조작이 필요할 수 있습니다. 그러나 기존 표준을 준수하는 것은 문제가 되지 않지만 functions 이 표준을 호출하려면 추가 가스가 필요할 수 있습니다.

참조 구현

이것은 FNFT 계약의 일부 스마트 한 구현입니다. ERC-20 토큰 계약의 확장입니다.

보안 고려 사항

수학 연산과 복잡한 논리가 로열티 분배 논리의 기본이 되므로이 표준을 구현할 때 존재할 수 있는 많은 결함이 있을 수 있습니다. 고려해야 할 주요 보안 위험

(1) 수학 연산withdrawRoyalty()

  • 검증된 외부 라이브러리 사용을 권장합니다.
  • 언더 플로, 오버플로 방지
  • 반올림, 나누기 및 곱할 때 문제 반올림

(2) 로열티 상태를 유지하는 변수는 계약 외부에서 수정해서는 안됩니다.

  • 기능과 운영 만이 올바른 상황에서 상태를 변경할 수 있어야 합니다.

용법

이 표준은 NFT를 위한 것입니다. 이것은 또한 ERC-20 토큰 보유자에게 로열티 또는 보상을 분배하는 데 사용할 수 있습니다. 이 표준은 ERC-721 (NFT)과의 상관 관계없이 ERC-20 토큰 보유자에게 보상을 분배하기 위해서만 사용할 수 있습니다.

EIP-2981과의 호환성

이 표준을 준수할 때 royaltyInfo()자산을 매각하고 재판매할 때마다 자산 작성자에게 보상하는 데 필요한 정보를 추가하고 반환하여 EIP-2981과의 호환성을 보장할 것을 사람들에게 권장합니다.

 

ethereum/EIPs

The Ethereum Improvement Proposal repository. Contribute to ethereum/EIPs development by creating an account on GitHub.

github.com

 

아래 파일은 원본 파일입니다.

ethereum.md
0.02MB