Sui chain이용해서 NFT 렌탈 하기

윤따·2025년 2월 25일
0

sui docs

너무 너무 자료가 없어서 공식 문서를 보고 만들어봐야하는데
과정을 하나 하나 기록하지 않으면 다른 사람들을 도와줄 수 없을 것 같아서
기록하기로 한다.

NFT 렌탈

NFT 렌탈 기능을 Dapp으로 구현하려는 듯하다.
nft 렌탈은 NFT 소유자가 소유권을 직접 넘기는 것이 아니라, 일정 기간동안 다른 사람이 해당 NFT를 사용할 수 있도록 대여해주는 것이다.

대여 과정은 렌탈 확장 설치 → 리스트 등록 → 대여(차용) → 반환의 순서로 진행.

NFT 렌탈 종류

1. Immutable(읽기 전용, 변경 불가)
빌린 사람은 NFT를 감상하거나 게임에서 사용할 수 있지만 변경(업그레이드 등)은 불가능.

2. Mutable(변경 가능)
빌린 사람이 NFT를 변경할 수 있음
이런 경우, 소유자는 업그레이드/다운그레이드 비용을 고려하여 대여 비용을 설정할 필요가 있음.

NFT 렌탈 예시

1. 게임
캐릭터, 무기, 스킨 등의 NFT를 대여하여 일정 기간동안 사용 가능.

2. 티켓
렌탈은 의미가 있나 싶긴한데
블록체인에 기록되기 때문에 위조가 불가능하고 투명한 거래가 가능함

kiosk Apps 표준

sui 체인에서 NFT 및 디지털 자산을 쉽게 거래할 수 있도록 설계된 표준
쉽게 말해서 NFT를 보관하고 관리할 수 있는 가상 상점 개념이다. 아무래도 사용자 간에 직접 NFT를 거래하는 것 보다 낫다.

"Kiosk"는 특정 사용자의 NFT를 보관하고 거래할 수 있는 개별적인 스마트 컨트랙트 공간이라고 생각하면 됨!

📌 Kiosk의 핵심 기능
NFT 보관(Storage)
사용자는 NFT를 Kiosk에 보관할 수 있음.
NFT를 Kiosk에 넣으면 스마트 컨트랙트가 이를 관리하여 안전한 거래가 가능.
NFT 판매(Sales & Listings)
사용자는 Kiosk에 NFT를 등록하고 판매 가격을 설정 가능.
구매자는 Kiosk에서 원하는 NFT를 찾아 직접 구매 가능.
NFT 대여(Rental)
Kiosk를 활용하면 NFT를 직접 소유하지 않아도 대여할 수 있음.
ERC-4907과 유사한 방식으로 NFT를 일정 기간 동안 임대 가능.
로열티 적용(Royalty Enforcement)
NFT 창작자가 설정한 로열티(수익 분배 규칙)를 자동 적용.
Kiosk를 통해 거래될 때마다 창작자에게 일정 비율의 수수료 지급.

Kiosk 를 사용하여 렌탈 시에 생길 수 있는 문제점

kiosk 또한 블록체인 상에서 소유권을 변경할 수 있는 객체이기 때문에 만약 A가 자신의 Kiosk를 B에게 넘긴다면, Kiosk 안에 보관된 모든 NFT도 함께 이동할 수 있다.

📌 문제 발생 예시
1️⃣ A가 자신의 Kiosk에 NFT 3개를 보관하고 있음.
2️⃣ A는 NFT 중 하나를 7일 동안 B에게 대여함.
3️⃣ 그런데 A가 Kiosk 전체를 C에게 넘기면, NFT가 대여 중인데도 함께 이동함.
4️⃣ B는 NFT를 대여 중이었는데 갑자기 Kiosk가 사라지거나 이동하여 NFT를 사용할 수 없는 문제가 발생할 수 있음.

--> 소유권 이전이 불가능한 personal kiosk 활용 가능

kiosk 확장

kiosk 자체는 NFT를 저장하고 관리하는 공간이다.
kiosk 확장은 kiosk에 NFT 대여 등 새로운 기능을 추가할 때 사용된다.

nft_rental.move

기본적으로 sui block chain 으로 Dapp 개발을 하려면 move 언어로 개발해야한다.

모듈이 제공하는 주요 API 기능
List for renting → NFT를 대여 목록에 추가
Delist from renting → NFT를 대여 목록에서 제거
Rent → NFT 대여 실행
Borrow by reference and borrow by value → 참조 또는 값 방식으로 NFT 대여
Reclaim for the lender → 대여 기간 만료 후 NFT 반환

NFT를 빌려주고 빌릴 수 있도록 하는 시스템의 초기 설정 흐름:

일단
Creator(창작자) 가 새로운 타입의 NFT를 렌탈 가능하게 설정할 때
Renter(대여자) 가 최초로 NFT를 빌려줄 준비를 할 때
Borrower(차용자) 가 최초로 NFT를 빌릴 준비를 할 때

Creator가 하는 일 (초기 설정 - 한 번만 수행됨)
Setup Renting
Creator는 NFT 렌탈을 가능하게 하려고 RentalPolicy와 ProtectedTP(보호된 전송정책)을 블록체인에 공유함.
이 과정에서 Creator는 NFT에 대한 TransferPolicy(전송정책)를 만들어 블록체인에 공유함.
TransferPolicy를 추가로 Lock Rule(잠금 규칙)로 설정할 수도 있음.
(선택적) Lock Rule 추가
추가적인 보안을 위해 잠금 규칙(Lock Rule)을 설정할 수 있음.
Lock Rule이 설정되면 NFT가 대여 중일 때는 판매나 전송이 제한됨.

Renter(대여자)가 하는 일 (최초 1회만 수행됨)
Install Extension (확장 설치)
NFT를 대여하기 위해 Kiosk에 Rentables 확장을 설치함.
확장을 설치할 때 Kiosk와 KioskOwnerCap(소유자 인증)이 필요함.
Kiosk가 없다면 미리 생성해야 함.

Borrower(차용자)가 하는 일 (최초 1회만 수행됨)
Install Extension (확장 설치)
NFT를 빌리기 위해 본인의 Kiosk에 Rentables 확장을 설치함.
이때도 Kiosk와 KioskOwnerCap이 필요함.
만약 Kiosk가 없다면 생성해야 함.

profile
윤따와더나은인생

0개의 댓글