did : url 스키마 식별자
did method : did 메서드(함수)
did method-specific identifier : did 메서드 구분자
did : "did 메서드" : "did 메서드 구분자"
did:example:123456789abcdefghi
범용고유식별자 UUID(universally unique identifier, UUID)와 비슷한 개념으로 고유한 아이디 개념이다.
DID와 UUID의 차이점은 다음과 같다.
URL과 동일하게, 주체에 대해 설명하는 일반 자원을 주소 분해하거나 역참조한다.
URL을 역참조할 경우 반환하는 리소스와 다르게 DID문서는 일반적으로 DID 주체에 대한 인증을 가능하게 하는
암호학적 요소를 포함하고 있다.
1. DID 문서는 DID를 어떻게 사용하는지 설명해놓은 간단한 문서다.
2. DID 문서는 암호학적 요소, 검증 메서드, 서비스 엔드포인트 등으로 나타낼 수 있다.
3. 인증을 위한 정보들도 들어간다 (eg. public key)
{
"@context": "https://example.org/example-method/v1",
"id": "did:example:123456789abcdefghi",
"publicKey": [{ ... }],
"authentication": [{ ... }],
"service": [{ ... }]
}
예시 2: Minimal self-managed DID document
{
"@context": "https://www.w3.org/ns/did/v1",
"id": "did:example:123456789abcdefghi",
"authentication": [{
// used to authenticate as did:...fghi
"id": "did:example:123456789abcdefghi#keys-1",
"type": "RsaVerificationKey2018",
"controller": "did:example:123456789abcdefghi",
"publicKeyPem": "-----BEGIN PUBLIC KEY...END PUBLIC KEY-----\r\n"
}],
"service": [{
// used to retrieve Verifiable Credentials associated with the DID
"id":"did:example:123456789abcdefghi#vcs",
"type": "VerifiableCredentialService",
"serviceEndpoint": "https://example.com/vc/"
}]
}
일반 DID 구문은 다음과 같다.
did 용어는 다음과 같이 ABNF의 did 규칙을 따르는 URI를 말한다. did-url이라는 용어는 did-url 규칙에 따라 정의된다.
did-url은 did로 시작하고 그 뒤에 하나 이상의 구성요소가 추가되는 url을 말한다.
did = "did:" method-name ":" method-specific-id
method-name = 1*method-char
method-char = %x61-7A / DIGIT
method-specific-id = *idchar *( ":" *idchar )
idchar = ALPHA / DIGIT / "." / "-" / "_"
did-url = did *( ";" param ) path-abempty [ "?" query ]
[ "#" fragment ]
param = param-name [ "=" param-value ]
param-name = 1*param-char
param-value = *param-char
param-char = ALPHA / DIGIT / "." / "-" / "_" / ":" /
pct-encoded
DID를 등록할 때 did를 사용하는 블록체인 플랫폼이 모두 다른 상태에서 did 문서를 가져오면
굉장히 복잡해진다. 따라서 DIF를 이용해서 등록하게 된다. 그렇다면 DIF는 무엇일까?
1. DIF는 전 세계 사용자들이 DID를 더욱 쉽게 사용할 수 있도록 지원하기 위해 만든 조직
2. DID 소유자가 agent일 때 DID Universal Resolver에서 DID문서를 뽑을 수 있다.
3. DIF는 표준을 만들고 DID를 활용하는 소프트웨어를 만드는 역할을 하고 있다.
4. DIF 유니버셜 리졸버(DIF Universal Resolver)는 did 드라이버 컬렉션을 사용해서
구현 및 분산화된 시스템에서 DID를 조회할 수 있게 제공합니다.
DIF 유니버셜 리졸버 : DID 드라이버 컬렉션을 사용해서 구현 및 분산된 시스템에서 did를 조회하고 사용하는 표준방법을 제공
1. 회사에서 DID 소유자에게 did 증거요구(challenge)를 신청함
2. 소유자인 나는 회사에 응답으로 did를 전달
3. 회사는 응답받은 did로 Universal Resolver에서 DID document를 가져온다.
4. did 문서 안에 기록된 인증정보로 소유자에게 받았던 응답을 검사해서 확인
5. 응답 검사를 통해 소유자가 did를 가지고 있는지 확인
DID와 SSI 그리고 VC, VP에 대한 개념 정리 (0) | 2023.02.23 |
---|---|
DID(Decentralized Identity, 탈중앙 신원증명)가 나오게 된 배경 (0) | 2023.02.21 |