체인의정석

SBT와 관련된 표준 ERC 정리) 소각 권한을 상황에 맞게 분리시켜주는 ERC-5484 본문

블록체인/NFT & BRIDGE

SBT와 관련된 표준 ERC 정리) 소각 권한을 상황에 맞게 분리시켜주는 ERC-5484

체인의정석 2023. 9. 14. 22:10
728x90
반응형

이번에 살펴볼 내용은 ERC-5484 이다.

https://eips.ethereum.org/EIPS/eip-5484

 

ERC-5484: Consensual Soulbound Tokens

Interface for special NFTs with immutable ownership and pre-determined immutable burn authorization

eips.ethereum.org

먼저 해당 표준이 나온 동기부터 살펴보도록 하자

"소울바운드 토큰에 대한 아이디어는 출판 이후 상당한 주목을 받았습니다. 그러나 표준 인터페이스가 없으면 소울바운드 토큰은 호환되지 않습니다. 토큰 구현에 대한 최소한의 합의 없이 소울바운드 토큰을 대상으로 하는 보편적인 서비스를 개발하는 것은 어렵습니다.

이 EIP는 소울바운드 토큰을 자격 증명, 신용 기록, 대출 이력, 멤버십 등의 역할을 수행하는 특수 NFT로 구상합니다. 이러한 시나리오에서 유연성을 제공하기 위해 소울바운드 토큰에는 애플리케이션별 소각 인증과 일반 EIP-721 토큰과 구별할 수 있는 방법이 있어야 합니다."

해당 EIP의 경우에는 애플리케이션별 소각 인증과 일반 토큰과의 구별법의 중요성을 강조한다.

이게 무슨 말일지 인터페이스를 보면서 한번 살펴보도록 하자

// SPDX-License-Identifier: CC0-1.0
pragma solidity ^0.8.0;

interface IERC5484 {
    /// A guideline to standardlize burn-authorization's number coding
    enum BurnAuth {
        IssuerOnly,
        OwnerOnly,
        Both,
        Neither
    }

    /// @notice Emitted when a soulbound token is issued.
    /// @dev This emit is an add-on to nft's transfer emit in order to distinguish sbt 
    /// from vanilla nft while providing backward compatibility.
    /// @param from The issuer
    /// @param to The receiver
    /// @param tokenId The id of the issued token
    event Issued (
        address indexed from,
        address indexed to,
        uint256 indexed tokenId,
        BurnAuth burnAuth
    );

    /// @notice provides burn authorization of the token id.
    /// @dev unassigned tokenIds are invalid, and queries do throw
    /// @param tokenId The identifier for a token.
    function burnAuth(uint256 tokenId) external view returns (BurnAuth);
}

보면 여기서는 소각 권한에 초점을 맞추고 enum을 따로 만들어서 관리한다.

그리고 해당 권한에 맞게 각각의 SBT는 아이디별로 소각 권한이 다르게 이루어진다.

소각권한이 달라지게 되는 부분에 대한 예시는 다음과 같다.

IssuerOnly: 대출기록
ReceiverOnly: 유료회원
Both: 자격 증명
Neither: 신용 기록

IssuerOnly: Loan record
ReceiverOnly: Paid membership
Both: Credentials
Neither: Credit history

이렇게 총 4가지가 있다.

이걸 매우 주관적인 나의 시선에서 비즈니스적으로 좀 해석해 보도록 하겠다.

IssuerOnly는 발행자만 소각 권한을 갖는걸로 보이는데 대출기록에 사용된다고 써져 있다. 만약 대출을 해주는 주체가 대출을 해준것에 대한 증표가 있다면 이에 대한 소각은 발행자만 하게 열어줄 수 있다. 소각을 한다는 것은 대출에 대한 증표를 대출자가 없애주는 것이기 때문이다.

ReceiverOnly는 수신자만 소각 권한을 갖는것 같은데 유료 멤버쉽을 생각해보면 수신자가 멤버쉽에서 탈퇴하고 싶을 경우 소각권한을 넣어줄 수 있다.

둘다 SBT를 가져야 하는 경우라면? 신원 증명이 있을 수 있다. 신원 증명은 양쪽 다 가지고 있으면서 양쪽 다 소각권한이 있을 수 있다. 개인정보의 폐기에 대한 처리라고 생각하면 된다.

둘다 소각하면 안되는 경우라면? 신용기록이다. 신용에 대한 증표를 한쪽이 임의로 소각하게 되면 안되고 양쪽에 영구히 남아야 신용기록으로서의 가치가 있을 것이다.

이렇게 해당 ERC는 소각에 대한 접근 방식을 다르게 해석함으로서 SBT에 대한 표준을 제시하고 있다.


728x90
반응형
Comments