UR-Auth 는 Universal Resource Auth 의 약자로 URI(Uniform Resource Identifier)로 표현되는 웹 데이터 및 저작권이 있는 유무형 자산들에 대해 그 소유권을 블록체인 기술과 DID(Decentralized Identifiers) 기술을 이용하여 인터넷 상에 공개적으로 등록할 수 있도록 하는 프로토콜입니다. URI 는 온/오프라인 상의 논리적 물리적 리소스를 고유하게 식별할 수 있는 웹 기술에서 통용되는 식별자(Identifier)로써 블록체인에 해당 URI 의 소유자 DID 를 이용하여 그 소유권을 등록하게 되고 거대 AI 가 이를 학습할 때 정당하게 그 소유권을 주장할 수 있는 기술적인 방법을 마련할 수 있게 됩니다.
데이터에 대한 소유권을 UR-Auth 블록체인에 등록하는 타입은 크게 세가지로 나눕니다.
- 도메인:
https://www.bc-labs.net
고 같은 일반적인 도메인을 의미합니다. - 웹 서비스 계정:
https://instagram.com/user
과 같이 어떤 서비스에 대한 계정을 의미합니다. - 데이터 파일의 저작권: 로컬 데이터에 대한 소유권을 의미합니다. 여기서는 ipfs 와 같이 분산형 저장소의 주소값(e.g CID) 이 들어갈 수 있습니다.
- 데이터셋:
URAuthTree
에 등록된 URI 혹은 등록되지 않은 URI 를 이용하여 만든 데이터셋에 대한 소유권을 의미합니다. 해당 데이터셋이 저장되어있는 저장소에 대한 위치값이 들어갈 수 있습니다.
각 영역별 소유권을 등록하는 방법은 다음과 같습니다:
-
도메인 소유자는 자신의 DID를 생성하고 UR-Auth 블록체인에
request_register_ownership
트랜잭션을 전송합니다. -
UR-Auth 블록체인에서 챌린지 값을 생성합니다.
-
도메인 소유자는 도메인 검증 정보를 담고 있는 *.json 파일을 생성한 후 해당 도메인의
root
디렉토리에 업로드합니다. 예를 들면,bc-labs.net/root
에challenge.json
파일을 업로드합니다. -
신뢰할 수 있는 노드로 구성된 오라클 노드들은 해당 *.json 파일을 다운로드 후 UR-Auth 블록체인에
verify_challenge
트랜잭션을 전송합니다. -
정족수 이상의 오라클 노드(e.g 60% 이상)에 의해 검증이 완료되면 해당 도메인은 UR-Auth Tree 에 등록이 되고 소유권 등록이 완료됩니다.
OAuth 인증을 통하여 계정에 대한 소유권을 인증할 수 있는 경우:
claim_ownership
트랜잭션을 전송하여 해당 URI 를UR-Auth Tree
에 등록합니다.
OAuth 인증이 불가능한 경우:
-
유저는 자신의 피드에 계정에 대한 소유권을 증명할 수 있는 증명서를 포스팅합니다.
-
신뢰할 수 있는 노드로 구성된 오라클 노드들에 의해 위와 같이 검증 절차를 거칩니다.
-
정족수 이상의 오라클 노드에 의한 검증이 완료되면
UR-Auth Tree
에 등록합니다.
-
파일 및 데이터셋을 등록하게 되면
urauth://file/{cid}
혹은urauth://dataset/{cid}
URI 를 발급받게 됩니다. -
해당 URI 를
UR-Auth Tree
에 등록하게 됩니다.
웹사이트 URL 및 웹사이트 내 하위 페이지 URL들은 블록체인 상에서 Tree 데이터 구조의 각 노드들로 표현될 수 있습니다. 하나의 UR-Auth Tree 는 하나의 웹사이트 도메인과 해당 도메인 내 URI로 식별되는 데이터들에 대응하며, UR-Auth Tree 의 각 노드는 해당 URI의 소유권자(DID) 정보, 저작권정보, 데이터 접근 규칙 등이 규정된 UR-Auth Document 를 저장하고 있습니다.
-
UR-Auth Tree 의 모든 하위 노드의 등록은 오라클에 의한 검증이 아니라면 그 상위 노드의 소유자 중 한 소유자에 의해 등록되어야 합니다.
-
http:
혹은https:
은 같은 것으로 간주되며 생략되어 등록되어야 하며 그 이외의 프로토콜은 명시되어 등록되어야 합니다. -
www
는 생략되어 등록되며 그 이외의 접두사는 명시되어 등록되어야 합니다. -
루트 노드는 오라클에 의해 검증된 후 등록되어야 합니다.
UR-Auth Tree 의 각 노드는 해당 URI와 모든 하위 URI들에 적용되는 소유권 정보, 저작권 정보, 데이터 접근 규칙 등의 정보가 기록된 **UR-Auth Document**를 갖습니다. UR-Auth Document 는 해당 노드의 소유자 DID에 의해서만 내용이 수정될 수 있습니다.
#[derive(Encode, Decode, Clone, PartialEq, Debug, Eq, TypeInfo)]
pub struct URAuthDoc<Account> {
pub id: DocId,
pub created_at: u128,
pub updated_at: u128,
pub multi_owner_did: MultiDID<Account>,
pub identity_info: Option<Vec<IdentityInfo>>,
pub content_metadata: Option<ContentMetadata>,
pub copyright_info: Option<CopyrightInfo>,
pub access_rules: Option<Vec<AccessRule>>,
pub asset: Option<MultiAsset>,
pub data_source: Option<URI>,
pub proofs: Option<Vec<Proof>>,
}
해당 문서의 식별자
해당 문서가 생성된 시간
해당 문서가 업데이트된 시간
해당 문서의 소유자 DID 목록
저작권자의 신원 정보 목록
해당 URI 와 연관된 컨텐츠 메타 데이터 정보
해당 URI 에 대한 접근 규칙 목록
해당 문서가 데이터셋일 경우, 토큰화된 데이터셋에 대한 정보
해당 문서가 데이터셋일 경우, 데이터셋이 저장되어 있는 URI 정보
해당 문서에 대한 전자서명 목록
UR-Auth 블록체인 상에 미리 패키징된 웹 Dataset들도 함께 Data Market 에 등록되고 거래 유통되도록 하여, 웹 데이터 수요자들이 웹 데이터 소유자들에게 정당한 데이터 접근 비용을 지불하고 미리 정리된 데이터셋들을 다운로드 받아서 상업용 AI 기계학습 등에 사용하도록 하여 데이터 저작권 문제를 해결할 수 있습니다.
URAuth 블록체인에는 데이터에 대한 소유권이 명시되어 있기 때문에 해당 URI 로 만들어진 데이터셋 혹은 AI Model 에 대한 지분을 토큰화 할 수 있습니다. 실제로 Data Market 에서 해당 데이터셋이 판매가 되었을 때 토큰화된 지분에 따라 보상을 분배할 수 있습니다.