ERC-6239 시맨틱 소울바운드 토큰 (Semantic Soulbound Tokens)

Final · 이름·메타데이터 · 2022-12-30 작성

양도할 수 없는 토큰(소울바운드 토큰, SBT)의 메타데이터에 W3C 표준 데이터 모델인 RDF 트리플을 담아 계정과 속성 사이의 사회적 관계를 기계가 읽을 수 있는 형태로 체인 위에 기록하게 합니다.

왜 필요한가

소울바운드 토큰은 계정의 약속, 자격, 소속을 나타냅니다. 그런데 토큰이 존재한다는 것만으로는 그 토큰이 담은 사회적 의미를 신뢰 없이(trustless) 관리할 공통 데이터 모델이 없습니다. 각 프로젝트가 저마다의 방식으로 메타데이터를 적으면 서로 연결된 형태로 설명하기 어렵고 데이터를 교환하거나 통합하거나 발견하기도 어렵습니다. 여러 출처의 데이터를 묶어 체인 위의 통합 소셜 그래프를 만들거나, 소셜 복구를 위한 신뢰 연락처를 지정하거나, 공정한 거버넌스를 지원하려면 표준화된 데이터 형식이 필요합니다. 이 표준은 주어-서술어-목적어 구조의 RDF 트리플을 토큰 메타데이터에 넣어 사회적 신원 정보를 중앙 중개자 없이 아래로부터 올라오는 방식으로 발행하고 연결하고 조회할 수 있게 합니다.

구현해야 하는 것

심층 설명

필수 인터페이스 네 가지

토큰은 ERC-165의 ERC165(0x01ffc9a7), ERC-721의 ERC721(0x80ac58cd), ERC-721의 ERC721Metadata(0x5b5e139f), ERC-5192의 ERC5192(0xb45a3c0e) 인터페이스를 반드시 구현해야 합니다. 즉 이 표준은 기존 NFT 표준과 양도 잠금 표준 위에 쌓이는 확장이며 ERC-721과 ERC-5192에 완전히 하위 호환됩니다. 본 표준의 ISemanticSBT 인터페이스 자체의 ERC-165 식별자는 0xfbafb698입니다.

RDF 문장의 완전한 형식과 여섯 가지 포맷

RDF 문장은 rdfStatements = {[format]}<statements> 형식을 따릅니다. format은 nt(N-Triples), ttl(Turtle), rdf(RDF/XML), rj(RDF/JSON), nq(N-Quads), trig(TriG) 여섯 가지 중 하나입니다. nt는 주어, 서술어, 목적어를 공백으로 구분하고 마침표로 끝냅니다. ttl은 접두사(prefix)로 IRI를 줄여 쓰고 같은 주어 아래 서술어를 합칠 수 있습니다. rdf는 XML로, rj는 JSON으로 기술하며 nq와 trig는 트리플이 속한 데이터셋을 가리키는 그래프 레이블을 추가한 형식입니다.

기본 포맷은 ttl, 다른 포맷은 식별자 필요

CreateRDF, UpdateRDF, RemoveRDF 이벤트와 rdfOf 메서드에서 rdfStatements는 기본적으로 ttl 포맷을 씁니다. 포맷을 지정하지 않으면 statements = [ttl]statements로 해석합니다. 다른 포맷을 쓰려면 [로 시작해 ]로 끝나는 포맷 식별자를 앞에 붙여야 합니다. 예를 들어 nt 포맷이면 [nt]subject predicate object . 처럼 씁니다. Turtle이 기본인 이유는 사람이 읽기 좋고 간결해 저장 공간을 줄이면서 복잡한 RDF 그래프를 표현하기에 적합하기 때문입니다.

rdfOf와 선택 확장 schemaURI

rdfOf(uint256 tokenId)는 토큰 ID로 RDF 데이터를 조회하며 반환 데이터는 W3C RDF 표준을 따라야 합니다. RDF 데이터는 주어, 서술어, 목적어 세 부분으로 이뤄진 트리플(RDF 문장)의 모음입니다. schemaURI()는 선택(OPTIONAL) 확장 ISemanticRDFSchema의 메서드로, RDF 스키마가 저장된 URI를 조회합니다. RDF 스키마는 기본 RDF 어휘를 확장한 데이터 모델링 어휘입니다. 스키마는 Arweave나 IPFS 같은 탈중앙 저장소에 두고 그 URI를 컨트랙트에 저장하는 방식이 권장(RECOMMENDED)됩니다.

세 가지 이벤트는 반드시 발생

CreateRDF는 토큰 발행 시, UpdateRDF는 RDF 데이터 갱신 시, RemoveRDF는 토큰 소각·회수 시 반드시(MUST) 발생시켜야 합니다. 각 이벤트에 들어가는 RDF 데이터는 반드시 주어, 서술어, 목적어 세 부분으로 이뤄진 RDF 문장이어야 합니다. 이 이벤트들은 리스너가 생성·갱신·제거된 RDF 데이터에 맞춰 작업을 수행하도록 알리는 역할을 합니다.

왜 RDF인가

RDF는 주어-서술어-목적어 관계로 그래프 데이터를 모델링하는 유연하고 확장 가능한 표준입니다. 용어, 범주, 속성, 관계까지 풍부한 정보를 표준화된 형식으로 기술할 수 있어 서로 다른 시스템 사이의 상호운용을 돕고 웹의 다른 데이터 소스와 쉽게 통합됩니다. 또한 의미 기반 추론을 지원해 기존 데이터로부터 소셜 그래프 노드 사이의 추가 관계를 자동으로 끌어낼 수 있습니다. 데이터가 각 시맨틱 SBT에 조각으로 흩어져 있어도 서로 연결되므로, 그 위에 다양한 커뮤니티 탐지 알고리즘을 만들 수 있습니다.

ERC 원문 · ← ERCs