액세스 제어
토큰화 지원에는 역할 기반 제어 방식과 소유권 기반 제어 방식을 모두 지원하는 액세스 제어 기능이 포함됩니다.
롤 기반 제어를 통해 사용자는
Token Admin
또는 Token Minter
와 같은 연관된 롤을 사용하여 특정 메소드를 호출할 수 있습니다. 소유권 기반 제어를 사용하면 사용자가 소유하지 않은 자산에 액세스하지 못하도록 제한할 수 있습니다. 소유권 기반 액세스 제어를 사용하면 자산을 소유한 사용자(예: Token Owner
또는 Account Owner
)가 특정 메소드를 호출할 수 있습니다. 메소드의 액세스 제어에 대한 자세한 내용은 다음 항목에 설명된 메소드의 개별 항목을 참조하십시오.
역할 기반 액세스 제어는 다음 가상 사용자를 지원합니다.
- 토큰 관리
Token Admin
사용자는 토큰 체인 코드가 배포될 때 지정할 수 있습니다.Token Admin
사용자 정보는 상태 데이터베이스에 저장됩니다.Token Admin
사용자는 다른 사용자에 대한Token Admin
권한을 부여하고 제거할 수 있습니다.Token Admin
사용자는 자신의Token Admin
권한을 제거할 수 없습니다.Token Admin
사용자는 모든 사용자에게Org Admin
, minter, burner 또는 notary 롤을 지정할 수 있습니다.- 조직 관리자
- 확장된 토큰 분류법 프레임워크 메소드는
Org Admin
롤을 지원합니다.Token Admin
사용자는Org Admin
롤을 모든 사용자에게 지정할 수 있습니다.Org Admin
사용자는 조직 내에서만 관리 권한을 가집니다. 고객사는 고객사를 생성하거나 고객사 잔액을 볼 수 있지만 조직의 사용자만 볼 수 있습니다.Org Admin
채굴자, 버너 또는 공증인 역할을 가진 사용자는 조직의 다른 사용자에게 해당 역할을 지정할 수 있습니다. - 토큰 최소화
- minter 역할이 지정된 사용자는
Token Minter
이며 토큰을 민트할 수 있습니다. - 토큰 버너
- 버너 역할이 지정된 사용자는
Token Burner
이며 토큰을 구울 수 있습니다. - 토큰 공증
- 공증 역할이 지정된 사용자는
Token Notary
입니다.Token Notary
은(는) 지급인과 수취인 간의 트랜잭션에서 제3자 역할을 합니다.Token Notary
는 지급인에서 수취인으로의 토큰 이전 완료를 트리거하거나 대신 지급인 계정으로 토큰을 반환할 수 있습니다. - Vault Manager
- 저장소 역할이 지정된 사용자는
Vault Manager
입니다.Vault Manager
는 잠긴 NFT를 잠금 해제할 수 있습니다. Vault 역할은 확장된 ERC-721 및 ERC-1155 표준에만 적용할 수 있습니다. 사용자에게 저장소 역할을 지정하는 것은 NFT 잠금을 위한 전제 조건입니다. 저장소 역할에는 체인 코드당 한 명의 사용자만 지정할 수 있습니다.
소유권 기반 액세스 제어는 다음 페르소나를 지원합니다.
또한 일부 방법에서는 역할 기반 액세스 제어 및 소유권 기반 액세스 제어가 결합됩니다. 예를 들어 역할 기반 액세스 제어를 사용하면 광부 역할을 가진 사용자가 토큰을 만들 수 있습니다. 소유권 기반 액세스 제어를 사용하면 실행 불가능한 토큰 소유자가 토큰의 사용자 정의 등록 정보를 수정할 수 있지만 토큰 메타 데이터는 수정할 수 없습니다. minter 역할을 가진 사용자가 NFT(Non-Fungible Token)를 생성하면 NFT의 소유자가 됩니다. 해당 NFT의 소유자는 사용자 정의 등록 정보를 수정할 수 있습니다(Art Collection 토큰의 경우 토큰 가격은 사용자 정의 등록 정보임). 토큰 생성자가 NFT를 다른 사용자에게 전송하면 두번째 사용자가 소유자가 되고 토큰을 생성한 사용자가 더 이상 토큰의 소유자가 아닙니다. 소유권 기반 액세스 제어로 인해 이제 새 소유자가 사용자 정의 등록 정보 값을 업데이트할 수 있지만 이전 소유자는 더 이상 업데이트할 수 없습니다. 역할 기반 액세스 제어로 인해 이전 소유자는 여전히 NFT를 민트할 수 있지만 새 사용자는 민트할 수 없습니다.
자체 액세스 제어 기능을 작성하거나 액세스 제어를 비활성화할 수도 있습니다. 액세스를 제어하는 자동으로 생성된 코드는 다음 예에 나와 있습니다.
TypeScript:
await this.Ctx.<Token Standard>Auth.checkAuthorization(...)
이동:
auth, err := t.Ctx.<Token Standard>Auth.CheckAuthorization(...)
주:
자동으로 생성된 액세스 제어 기능을 제거하려면 TypeScript 또는 Go 프로젝트에서 이전 코드 행을 제거하십시오.