์ด ๋ฌธ์๋ W3C Decentralized Identifiers (DIDs) v1.0์ ํ๊ตญ์ด ๋ฒ์ญ๋ณธ์ ๋๋ค.
์ด ๋ฌธ์์ ์ค์ญ ๋ฐ ์คํ๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
์์ด ์๋ฌธ๋ง์ด ๊ณต์์ ์ด๊ณ ๊ท๋ฒ์ ์ธ ํจ๋ ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๋ฌธ์๋ ๊ฐ์ ์ฌํญ์
๊นํ ๋งํฌ๋
[email protected]๋ก
์ฐ๋ฝ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
์๋ฌธ์์ฑ์ผ: 2024-03-17
์ต์ด๋ฒ์ญ์ผ: 2024-03-17
์ต์ข
์์ ์ผ: 2024-04-25
ํ์ค์ ์๋ณ์ (DID)๋ ๊ฒ์ฆ๊ฐ๋ฅํ๊ณ ํ์ค์ํ๋ ๋์งํธ ์ ์์ ์ํ ์๋ก์ด ํ์์ ์๋ณ์์ด๋ค. DID๋ DID์ ์ปจํธ๋กค๋ฌ๊ฐ ๊ฒฐ์ ํ ๋ชจ๋ ์ฃผ์ฒด(์: ์ฌ๋, ์กฐ์ง, ์ฌ๋ฌผ, ๋ฐ์ดํฐ ๋ชจ๋ธ, ์ถ์ ๊ฐ์ฒด ๋ฑ)๋ฅผ ๋ํ๋ธ๋ค. ์ ํ์ ์ธ ์ค์ ์๋ณ์์ ๋ค๋ฅด๊ฒ, DID๋ ์ค์ํ๋ ๋ ์ง์คํธ๋ฆฌ, ID ์ ๊ณต์ ์ฒด, ์ธ์ฆ ๊ธฐ๊ด๊ณผ ๋ถ๋ฆฌ๋ ์ ์๋๋ก ์ค๊ณ๋์๋ค. ๋ค๋ฅธ ๋น์ฌ์๋ค์ด DID์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์ฐพ๋ ๋ฐ ๋์์ ์ค ์ ์์ง๋ง, ์ด ์ค๊ณ๋ DID์ ์ปจํธ๋กค๋ฌ๊ฐ ๋ค๋ฅธ ๋น์ฌ์์ ํ๊ฐ ์์ด๋ ๊ทธ๊ฒ์ ํต์ ํ๋ ๊ฒ์ ์ฆ๋ช ํ ์ ์๋๋ก ํ๋ค. DID๋ DID ์ฃผ์ฒด๋ฅผ DID ๋ฌธ์์ ์ฐ๊ฒฐํ์ฌ ํด๋น ์ฃผ์ ์ ๊ด๋ จ๋ ์ ๋ขฐํ ์ ์๋ ์ํธ ์์ฉ์ ํ์ฉํ๋ URI์ด๋ค.
๊ฐ DID ๋ฌธ์๋ DID ์ปจํธ๋กค๋ฌ๊ฐ DID๋ฅผ ํต์ ํ๋ ๊ฒ์ ์ฆ๋ช ํ๋ ๋ฐ ํ์ํ ๋ฉ์ปค๋์ฆ์ ์งํฉ์ ์ ๊ณตํ๋๋ฐ ํ์ํ ์ํธํ ์๋ฃ, ๊ฒ์ฆ ๋ฐฉ๋ฒ, ๋๋ ์๋น์ค๋ฅผ ํํํ ์ ์๋ค. ์๋น์ค๋ DID ์ฃผ์ฒด์ ๊ด๋ จ๋ ์ ๋ขฐํ ์ ์๋ ์ํธ ์์ฉ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค. DID๋ ๋ฐ์ดํฐ ๋ชจ๋ธ๊ณผ DID ์ฃผ์ฒด๊ฐ ๊ฐ์ ์ ๋ณด ๋ฆฌ์์ค์ธ ๊ฒฝ์ฐ DID ์ฃผ์ฒด ์์ฒด๋ฅผ ๋ฐํํ๋ ์๋จ์ ์ ๊ณตํ ์ ์๋ค.
์ด ๋ฌธ์๋ DID ๊ตฌ๋ฌธ, ๊ณตํต ๋ฐ์ดํฐ ๋ชจ๋ธ, ํต์ฌ ์์ฑ, ์ง๋ ฌํ๋ ํํ, DID ์์ ๋ฐ DID๊ฐ ๋ํ๋ด๋ ๋ฆฌ์์ค๋ฅผ ํ์ธํ๋ ํ๋ก์ธ์ค์ ๋ํ ์ค๋ช ์ ๋ช ์ํ๋ค.
The W3C Decentralized Identifier Working Group์ ์ด ๋ฌธ์๋ฅผ W3C ์ ์ ๊ถ์ฅ ์ฌํญ์ผ๋ก ๊ฒ์ํ์ผ๋ฉฐ ์ดํด ๊ด๊ณ์๊ฐ 2021๋ 8์ 26์ผ๊น์ง ์ด ๋ช ์ธ๋ฅผ ๊ฒํ ํ๋ก ์์ฒญํ๊ณ ์์ต๋๋ค.
๋ฌธ์ ๋ฐํ ์์ ์, ์คํ์ ์ธ DID ๋ฐฉ๋ฒ ๋ช ์ธ๊ฐ 103๊ฐ๊ฐ ์์์ผ๋ฉฐ, ์คํ์ ์ธ DID ๋ฐฉ๋ฒ ๋๋ผ์ด๋ฒ ๊ตฌํ์ด 32๊ฐ ์์๊ณ , ์ด ๋ช ์ธ์ ์ผ์นํ๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ํ ์คํธ ๋ชจ์ ๋ฐ ์ด ๋ช ์ธ์ ์คํ๋ 46๊ฐ์ ๊ตฌํ์ด ์ ์ถ๋์๋ค. ๋ ์๋ค์ DID Core ์ด์์ DID Core ํ ์คํธ ์ค์ํธ ์ด์์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด๋ ๊ฒ์ด ๊ถ์ฅ๋๋ฉฐ, ๊ฐ ์ด์์๋ ์ด ๋ช ์ธ์ ๋ณ๊ฒฝ์ ์ผ์ผํฌ ์ ์๋ ์ต์ ๊ณ ๋ ค ์ฌํญ ๋ฐ ์ ์๋ ๋ณ๊ฒฝ ์ฌํญ์ด ํฌํจ๋์ด ์๋ค. ๋ฌธ์ ์์ฑ ์์ ์์๋ ์ถ๊ฐ์ ์ธ ์ค์ง์ ์ธ ์ด์, ๋ณ๊ฒฝ ๋๋ ์์ ์ด ์์๋์ง ์๋๋ค.
์ด ๋ฌธ์์ ๋ํ ์๊ฒฌ์ ํ์ํฉ๋๋ค. ์๊ฒฌ์ ์ง์ GitHub์ ์ ์ถํ๊ฑฐ๋, [email protected]๋ก ๋ณด๋ด์ฃผ์ธ์ ( ๊ตฌ๋ , ์์นด์ด๋ธ).
๊ฐ์ธ ๋ฐ ์กฐ์ง์ผ๋ก์ ์ฐ๋ฆฌ ์ค ๋ง์ ์ฌ๋๋ค์ ๋ค์ํ ๋งฅ๋ฝ ์์์ ์ ์ธ๊ณ์ ์ผ๋ก ๊ณ ์ ํ ์๋ณ์๋ฅผ ์ฌ์ฉํ๋ค. ๊ทธ๋ค์ ํต์ ์ฃผ์ (์ ํ๋ฒํธ, ์ด๋ฉ์ผ ์ฃผ์, ์์ ๋ฏธ๋์ด์ ์ฌ์ฉ์ ์ด๋ฆ), ID ๋ฒํธ (์ฌ๊ถ, ์ด์ ๋ฉดํ์ฆ, ์ธ๊ธ ID, ๊ฑด๊ฐ๋ณดํ์ ์ํ) ๊ทธ๋ฆฌ๊ณ ์ํ ์๋ณ์ (์๋ฆฌ์ผ ๋ฒํธ, ๋ฐ์ฝ๋, RFID)์ ์ญํ ์ ํ๋ค. URI (Uniform Resource Identifier)๋ ์น ์์ ๋ฆฌ์์ค๋ฅผ ์ํด ์ฌ์ฉ๋๋ฉฐ, ๋ธ๋ผ์ฐ์ ์์ ๋ณด๋ ๊ฐ ์น ํ์ด์ง๋ ์ ์ธ๊ณ์ ์ผ๋ก ๊ณ ์ ํ URL (Uniform Resource Locator)์ ๊ฐ์ง๋ค.
์ด๋ฌํ ์ ์ธ๊ณ์ ์ผ๋ก ๊ณ ์ ํ ์๋ณ์๋ค ์ค ๋๋ถ๋ถ์ ์ฐ๋ฆฌ์ ํต์ ์์ ์์ง ์๋๋ค. ๊ทธ๋ค์ ๋๊ตฌ ๋๋ ๋ฌด์์ ์ฐธ์กฐํ๋์ง, ์ธ์ ์ฒ ํํ ์ ์๋์ง๋ฅผ ๊ฒฐ์ ํ๋ ์ธ๋ถ์ ๊ธฐ๊ด์ ์ํด ๋ฐํ๋๋ค. ๊ทธ๊ฒ๋ค์ ํน์ ์ํฉ์์๋ง ์ ์ฉํ๋ฉฐ ์ฐ๋ฆฌ๊ฐ ์ ํํ์ง ์์ ํน์ ๊ธฐ๊ด์์๋ง ์ธ์๋๋ค. ๊ทธ๊ฒ๋ค์ ๊ธฐ๊ด์ด ์กด์ํ๋๋ฐ ์คํจํ๋ฉด ์ฌ๋ผ์ง๊ฑฐ๋ ์ ํจํ์ง ์๊ฒ ๋ ์ ์๋ค. ๊ทธ๋ค์ ๋ถํ์ํ๊ฒ ๊ฐ์ธ ์ ๋ณด๋ฅผ ๊ณต๊ฐํ ์๋ ์๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ ์์ ์ธ ์ 3์์ ์ํด ์ฌ๊ธฐ์ ์ผ๋ก ๋ณต์ ๋๊ณ ์ฃผ์ฅ๋ ์ ์๋ค. ์ด๋ ์ผ๋ฐ์ ์ผ๋ก "์ ์๋์ฉ"์ผ๋ก ์๋ ค์ ธ ์๋ค.
์ด ๋ช ์ธ์ ์ ์๋ The Decentralized Identifiers (DID)๋ ์๋ก์ด ์ ํ์ ์ ์ธ๊ณ์ ์ผ๋ก ๊ณ ์ ํ ์๋ณ์์ด๋ค. ๊ทธ๋ค์ ๊ฐ์ธ๊ณผ ๊ธฐ๊ด์ด ์ ๋ขฐํ๋ ์์คํ ์ ์ฌ์ฉํ์ฌ ์์ ์ ์๋ณ์๋ฅผ ์์ฑํ ์ ์๋๋ก ์ค๊ณ๋์๋ค. ์ด๋ฌํ ์๋ก์ด ์๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋์งํธ ์๋ช ๊ณผ ๊ฐ์ ์ํธํ ์ฆ๋ช ์ ์ฌ์ฉํ์ฌ ์ธ์ฆํจ์ผ๋ก์จ ์๋ณ์์ ๋ํ ์ ์ด๋ฅผ ์ฆ๋ช ํ ์ ์๋ค.
Decentralized Identifiers์ ์์ฑ ๋ฐ ์ฃผ์ฅ์ ์ํฐํฐ์ ์ํด ์ ์ด๋๋ฏ๋ก ๊ฐ ์ํฐํฐ๋ ์ํ๋ ID, ํ๋ฅด์๋ ๋ฐ ์ํธ ์์ฉ์ ๋ถ๋ฆฌ๋ฅผ ์ ์งํ๋๋ฐ ํ์ํ ๋งํผ์ DID๋ฅผ ๊ฐ์ง ์ ์๋ค. ์ด๋ฌํ ์๋ณ์์ ์ฌ์ฉ์ ๋ค๋ฅธ ๋งฅ๋ฝ์ ์ ์ ํ๊ฒ ๋ฒ์๊ฐ ์ง์ ๋ ์ ์๋ค. ์ด๋ค์ ๊ฐ์ฒด๊ฐ ์์ ์ด๋ ์์ ์ด ํต์ ํ๋ ์ฌ๋ฌผ์ ์๋ณํ๋๋ก ์๊ตฌํ๋ ๋ค๋ฅธ ์ฌ๋, ๊ธฐ๊ด ๋๋ ์์คํ ๊ณผ์ ์ํธ ์์ฉ์ ์ง์ํ๋ ๋์์ ๊ฐ์ธ ๋๋ ๊ฐ์ธ ๋ฐ์ดํฐ์ ์ง์์ ์ธ ์กด์ฌ๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํด ์ค์ ๊ธฐ๊ด์ ์์กดํ์ง ์๊ณ ์ผ๋ง๋ ๋ง์ ๊ฐ์ธ ๋๋ ๊ฐ์ธ ๋ฐ์ดํฐ๊ฐ ๊ณต๊ฐ๋์ด์ผ ํ๋์ง์ ๋ํ ์ ์ด๋ฅผ ์ ๊ณตํ๋ค. ์ด๋ฌํ ์์ด๋์ด๋ DID ์ฌ์ฉ ์ฌ๋ก ๋ฌธ์ [[DID-USE-CASES]]์์ ์ดํด๋ณธ๋ค.
์ด ๋ช ์ธ๋ DID์ ์์ฑ, ์ง์์ฑ, ํด๊ฒฐ ๋๋ ํด์์ ๋ท๋ฐ์นจํ๋ ํน์ ๊ธฐ์ ์ด๋ ์ํธํ๋ฅผ ์ ์ ๋ก ํ์ง ์๋๋ค. ์๋ฅผ ๋ค์ด, ๊ตฌํ์๋ ์ฐํฉ ๋๋ ์ค์ ์ง์ค์ ID ๊ด๋ฆฌ ์์คํ ์ ๋ฑ๋ก๋ ์๋ณ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก DID๋ฅผ ์์ฑํ ์ ์๋ค. ์ค์ ๋ก ๊ฑฐ์ ๋ชจ๋ ์ ํ์ ์๋ณ์ ์์คํ ์ DID๋ฅผ ์ง์ํ ์ ์๋ค. ์ด๋ ์ค์ ์ง์ค์, ์ฐํฉ, ํ์ค์์ ์๋ณ์์ ์ธ๊ณ๋ฅผ ์ฐ๊ฒฐํ๋ ์ํธ ์ด์ฉ์ฑ์ ๋ค๋ฆฌ๋ฅผ ๋ง๋ ๋ค. ์ด๋ ๊ตฌํ์๊ฐ ์ ๋ขฐํ๋ ์ปดํจํ ์ธํ๋ผ์ ํจ๊ป ์๋ํ๋ ํน์ ์ ํ์ DID๋ฅผ ์ค๊ณํ ์ ์๋๋ก ํ๋ค. ์๋ฅผ๋ค์ด, ๋ถ์ฐ ์์ฅ, ํ์ค์ํ ํ์ผ ์์คํ , ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ P2P ๋คํธ์ํฌ์ ๊ฐ๋ค.
๋ณธ ๋ช ์ธ์๋ ๋ค์์ ์ํ ๊ฒ์ด๋ค:
์ด ์ฌ์ ์ธ์๋, ๋ ์๋ค์ ํ์ค์ ์๋ณ์์ ๋ํ ์ฌ์ฉ ์ฌ๋ก ๋ฐ ์๊ตฌ ์ฌํญ [[DID-USE-CASES]] ๋ฌธ์๋ฅผ ์ ์ฉํ๊ฒ ์ฐพ์ ์ ์์ ๊ฒ์ด๋ค.
DID๋ ์ธ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋ ๊ฐ๋จํ ํ
์คํธ ๋ฌธ์์ด์ด๋ค: 1)
did URI ์ฒด๊ณ ์๋ณ์, 2) DID ๋ฉ์๋์ ๋ํ ์๋ณ์,
๊ทธ๋ฆฌ๊ณ 3) DID ๋ฉ์๋๋ณ ํน์ ์๋ณ์.
์์ ์์ DID๋ DID ๋ฌธ์๋ก ํด์๋๋ค. DID ๋ฌธ์๋ DID์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ํฌํจํ๋ฉฐ, ์๋ฅผ ๋ค์ด DID ์ปจํธ๋กค๋ฌ๋ฅผ ์ํธํ์ ์ผ๋ก ์ธ์ฆํ๋ ๋ฐฉ๋ฒ๊ณผ ๊ฐ์ ๋ด์ฉ์ด ํฌํจ๋๋ค.
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/ed25519-2020/v1"
]
"id": "did:example:123456789abcdefghi",
"authentication": [{
// used to authenticate as did:...fghi
"id": "did:example:123456789abcdefghi#keys-1",
"type": "Ed25519VerificationKey2020",
"controller": "did:example:123456789abcdefghi",
"publicKeyMultibase": "zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
}]
}
ํ์ค์ ์๋ณ์๋ ๊ฒ์ฆ ๊ฐ๋ฅํ ํฌ๋ฆฌ๋ด์ ์ํ๊ณ [[VC-DATA-MODEL]]์ ๊ฐ์ ๋ ํฐ ์์คํ ์ ๊ตฌ์ฑ ์์๋ก, ์ด ์ฌ์์ ์ค๊ณ ๋ชฉํ์ ์ํฅ์ ๋ฏธ์ณค๋ค. ํ์ค์ ์๋ณ์์ ๋ํ ์ค๊ณ ๋ชฉํ๋ ์ฌ๊ธฐ์ ์์ฝ๋์ด ์๋ค.
| Goal | Description |
|---|---|
| ๋ถ์ฐํ | ์๋ณ์ ๊ด๋ฆฌ์์ ์ค์ ์ง์ค์ ๊ถํ ๋๋ ๋จ์ผ ์คํจ ์ง์ ์ ์๊ตฌ ์ฌํญ์ ์ ๊ฑฐํ๋ฉฐ, ์ด๋ ์ ์ธ๊ณ์ ์ผ๋ก ๊ณ ์ ํ ์๋ณ์, ๊ณต๊ฐ ๊ฒ์ฆ ํค, ์๋น์ค, ๊ทธ๋ฆฌ๊ณ ๊ธฐํ ์ ๋ณด์ ๋ฑ๋ก์ ํฌํจํ๋ค. |
| ์ ์ด | ์ธ๋ถ ๊ถํ์ ์์กดํ ํ์ ์์ด ์ธ๊ฐ ๋ฐ ๋น์ธ๊ฐ ๊ฐ์ฒด์๊ฒ ๊ทธ๋ค์ ๋์งํธ ์๋ณ์๋ฅผ ์ง์ ์ ์ดํ ์ ์๋ ๊ถํ์ ๋ถ์ฌํ๋ค. |
| ํ๋ผ์ด๋ฒ์ | ๊ฐ์ฒด๊ฐ ์ ๋ณด์ ํ๋ผ์ด๋ฒ์๋ฅผ ์ ์ดํ ์ ์๋๋ก ํ๋ฉฐ, ์ด๋ ์ต์ํ, ์ ํ์ ๋ฐ ๋จ๊ณ์ ์ธ ์์ฑ ๋๋ ๊ธฐํ ๋ฐ์ดํฐ์ ๊ณต๊ฐ๋ฅผ ํฌํจํ๋ค. |
| ๋ณด์ | ์์ฒญํ๋ ๋น์ฌ์๊ฐ ํ์ํ ์์ค์ ๋ณด์ฆ์ ๋ํด DID ๋ฌธ์์ ์์กดํ ์ ์์ ๋งํผ ์ถฉ๋ถํ ๋ณด์์ ์ ๊ณตํ๋ค. |
| ์ฆ๋ช ๊ธฐ๋ฐ | DID ์ปจํธ๋กค๋ฌ๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด์ ์ํธ ์์ฉํ ๋ ์ํธํ์ ์ฆ๋ช ์ ์ ๊ณตํ ์ ์๋๋ก ํ๋ค. |
| ๋ฐ๊ฒฌ ๊ฐ๋ฅ์ฑ | ๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด์ DID๋ฅผ ๋ฐ๊ฒฌํ์ฌ ๊ทธ ๊ฐ์ฒด์ ๋ํด ๋ ๋ง์ด ์์๋ณด๊ฑฐ๋ ์ํธ ์์ฉํ ์ ์๋๋ก ํ๋ค. |
| ์ํธ ์ด์ฉ์ฑ | ์ํธ ์ด์ฉ ๊ฐ๋ฅํ ํ์ค์ ์ฌ์ฉํ์ฌ DID ์ธํ๋ผ๊ฐ ์ํธ ์ด์ฉ์ฑ์ ์ํด ์ค๊ณ๋ ๊ธฐ์กด ๋๊ตฌ ๋ฐ ์ํํธ์จ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ ์ ์๋๋ก ํ๋ค. |
| ํด๋์ฑ | ์์คํ ๋ฐ ๋คํธ์ํฌ์ ๋ ๋ฆฝ์ ์ด๋ฉฐ DID ๋ฐ DID ๋ฉ์๋๋ฅผ ์ง์ํ๋ ๋ชจ๋ ์์คํ ์์ ๋์งํธ ์๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ค. |
| ๋จ์์ฑ | ๊ธฐ์ ์ ๋ ์ฝ๊ฒ ์ดํดํ๊ณ ๊ตฌํํ๋ฉฐ ๋ฐฐํฌํ ์ ์๋๋ก ๊ฐ๋จํ ๊ธฐ๋ฅ ์ธํธ๋ฅผ ์ ํธํ๋ค. |
| ํ์ฅ์ฑ | ๊ฐ๋ฅํ ๊ฒฝ์ฐ, ์ํธ ์ด์ฉ์ฑ, ํด๋์ฑ ๋๋ ๋จ์์ฑ์ ํฌ๊ฒ ๋ฐฉํดํ์ง ์๋ ํ ํ์ฅ์ฑ์ ์ ๊ณตํ๋ค. |
์ด ์น์ ์ ํ์ค์ ์๋ณ์ ๊ตฌ์กฐ์ ์ฃผ์ ๊ตฌ์ฑ ์์์ ๋ํ ๊ธฐ๋ณธ ๊ฐ์๋ฅผ ์ ๊ณตํ๋ค.
๋ค์ด์ด๊ทธ๋จ์๋ ๋ด๋ถ์ ์ผ๋ก ๋ ์ด๋ธ์ด ๋ถ์ ์ฌ์ฏ ๊ฐ์ ๋ํ์ด ์์ผ๋ฉฐ, ์ด๋ค ์ฌ์ด์๋ ๋ ์ด๋ธ์ด ๋ถ์ ํ์ดํ๊ฐ ๋ค์๊ณผ ๊ฐ์ด ํ์๋์ด ์๋ค. ๋ค์ด์ด๊ทธ๋จ์ ์ค์์๋ "DID URL"์ด๋ผ๊ณ ๋ ์ด๋ธ์ด ๋ถ์ ์ฌ๊ฐํ์ด ์์ผ๋ฉฐ, ๊ทธ ์์๋ "did:example:123/path/to/rsrc"๋ผ๊ณ ์์ ํ์๊ธฐ ๊ธ์จ๊ฐ ์ ํ ์๋ค. ๋ค์ด์ด๊ทธ๋จ์ ์๋จ ์ค์์๋ "did:example:123"์ด๋ผ๊ณ ์์ ํ์๊ธฐ ๊ธ์จ๊ฐ ์ ํ "DID"๋ผ๊ณ ๋ ์ด๋ธ์ด ๋ถ์ ์ฌ๊ฐํ์ด ์๋ค. ๋ค์ด์ด๊ทธ๋จ์ ์ผ์ชฝ ์๋จ์๋ "DID ์ฃผ์ฒด"๋ผ๊ณ ๋ ์ด๋ธ์ด ๋ถ์ ํ์ํ์ด ์๋ค. ๋ค์ด์ด๊ทธ๋จ์ ํ๋จ ์ค์์๋ "DID ๋ฌธ์"๋ผ๊ณ ๋ ์ด๋ธ์ด ๋ถ์ ์ฌ๊ฐํ์ด ์๋ค. ์ผ์ชฝ ํ๋จ์๋ "DID ์ปจํธ๋กค๋ฌ"๋ผ๊ณ ๋ ์ด๋ธ์ด ๋ถ์ ํ์ํ์ด ์๋ค. ๋ค์ด์ด๊ทธ๋จ์ ์ค๋ฅธ์ชฝ ์ค์์๋ "๊ฒ์ฆ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๋ ์ง์คํธ๋ฆฌ"๋ผ๊ณ ๋ ์ด๋ธ์ด ๋ถ์ ์ํตํ์ ์ ์ฒด์ ์ธ ๋ ๋๋ง์ด ์๋ค.
"DID URL" ์ฌ๊ฐํ์ ์๋จ์์ "ํฌํจํจ"์ด๋ผ๊ณ ๋ ์ด๋ธ์ด ๋ถ์ ํ์ดํ๊ฐ ์๋ก ํฅํ๋ฉฐ "DID" ์ฌ๊ฐํ์ ๊ฐ๋ฆฌํจ๋ค. "DID URL" ์ฌ๊ฐํ์ ํ๋จ์์ "์ฐธ์กฐํ๋ฉฐ, ์ญ์ฐธ์กฐํจ"์ด๋ผ๊ณ ๋ ์ด๋ธ์ด ๋ถ์ ํ์ดํ๊ฐ ์๋๋ก ํฅํ๋ฉฐ "DID ๋ฌธ์" ์ฌ๊ฐํ์ ๊ฐ๋ฆฌํจ๋ค. "DID" ์ฌ๊ฐํ์์ "ํด์๋จ์ผ๋ก" ๋ ์ด๋ธ์ด ๋ถ์ ํ์ดํ๊ฐ ์๋๋ก ํฅํด "DID ๋ฌธ์" ์ฌ๊ฐํ์ ๊ฐ๋ฆฌํจ๋ค. "DID" ์ฌ๊ฐํ์์ "์ฐธ์กฐํจ์ผ๋ก" ๋ ์ด๋ธ์ด ๋ถ์ ํ์ดํ๊ฐ ์ผ์ชฝ์ผ๋ก ํฅํด "DID ์ฃผ์ฒด" ํ์์ ๊ฐ๋ฆฌํจ๋ค. "DID ์ปจํธ๋กค๋ฌ" ํ์์์ "์ ์ดํจ"์ด๋ผ๊ณ ๋ ์ด๋ธ์ด ๋ถ์ ํ์ดํ๊ฐ ์ค๋ฅธ์ชฝ์ผ๋ก ํฅํด "DID ๋ฌธ์" ์ฌ๊ฐํ์ ๊ฐ๋ฆฌํต๋๋ค. "DID" ์ฌ๊ฐํ์์ "๊ธฐ๋ก๋จ์ผ๋ก" ๋ ์ด๋ธ์ด ๋ถ์ ํ์ดํ๊ฐ ์ค๋ฅธ์ชฝ ์๋๋ก ํฅํด "๊ฒ์ฆ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๋ ์ง์คํธ๋ฆฌ" ์ํต์ ๊ฐ๋ฆฌํจ๋ค. "DID ๋ฌธ์" ์ฌ๊ฐํ์์ "๊ธฐ๋ก๋จ์ผ๋ก" ๋ ์ด๋ธ์ด ๋ถ์ ํ์ดํ๊ฐ ์ค๋ฅธ์ชฝ ์๋ก ํฅํด "๊ฒ์ฆ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๋ ์ง์คํธ๋ฆฌ" ์ํต์ ๊ฐ๋ฆฌํจ๋ค.
did:, ๋ฉ์๋ ์๋ณ์, ๊ทธ๋ฆฌ๊ณ DID ๋ฉ์๋์
์ํด ์ง์ ๋ ๋
ํนํ ๋ฉ์๋๋ณ ์๋ณ์. DID๋ DID ๋ฌธ์๋ก
ํด์๋๋ค. DID URL์ ๊ธฐ๋ณธ DID์ ๊ตฌ๋ฌธ์ ํ์ฅํ์ฌ ๊ฒฝ๋ก,
์ฟผ๋ฆฌ, ํ๋๊ทธ๋จผํธ์ ๊ฐ์ ๋ค๋ฅธ ํ์ค URI ๊ตฌ์ฑ ์์๋ฅผ ํฌํจํ์ฌ
ํน์ ๋ฆฌ์์ค๋ฅผ ์ฐพ๋๋ค. ์๋ฅผ ๋ค์ด, DID ๋ฌธ์ ๋ด์
์ํธํ๋ ๊ณต๊ฐ ํค ๋๋ DID ๋ฌธ์ ์ธ๋ถ์ ๋ฆฌ์์ค. ์ด
๊ฐ๋
๋ค์ ๋ฐ
์์ ์์ธํ ์ค๋ช
๋๋ค.
์ด ๋ฌธ์์๋ JSON ๋ฐ JSON-LD ์ฝํ
์ธ ๊ฐ ํฌํจ๋ ์์๊ฐ ์๋ค. ์ด๋ฌํ ์์
์ค ์ผ๋ถ์๋ ์๋ชป๋ ๋ฌธ์๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ, ์ด์๋ ์ธ๋ผ์ธ
์ฃผ์(//)๊ณผ ์์์ ํฐ ๊ฐ์น๋ฅผ ๋ํ์ง ์๋ ์ ๋ณด๋ฅผ ๋ํ๋ด๊ธฐ
์ํ ์ค์ํ(...)๊ฐ ํฌํจ๋๋ค. ๊ตฌํ์๋ค์ ์ ํจํ JSON ๋๋
JSON-LD๋ก ์ ๋ณด๋ฅผ ์ฌ์ฉํ๊ณ ์ ํ ๊ฒฝ์ฐ ์ด ์ฝํ
์ธ ๋ฅผ ์ ๊ฑฐํด์ผ ํ๋ค๋ ์ ์
์ ์ํด์ผ ํ๋ค.
์ผ๋ถ ์์์๋ ์ด ์ฌ์์ ์ ์๋์ง ์์ ์ฉ์ด๋ค์ด ํฌํจ๋์ด ์์ผ๋ฉฐ, ์ด๋ค์
์์ฑ ์ด๋ฆ๊ณผ ๊ฐ ๋ชจ๋์ ํด๋นํ๋ค. ์ด๋ฌํ ์ฉ์ด๋ค์ ์ฃผ์(// external (property name|value))์ผ๋ก ํ์๋๋ค. DID ๋ฌธ์์์ ์ฌ์ฉ๋ ๋ ์ด๋ฌํ ์ฉ์ด๋ค์ DID
์ฌ์ ๋ ์ง์คํธ๋ฆฌ [[?DID-SPEC-REGISTRIES]]์ ๊ณต์ ์ ์ ๋ฐ JSON-LD
์ปจํ
์คํธ์ ํจ๊ป ๋ฑ๋ก๋์ด ์์ ๊ฒ์ผ๋ก ์์๋๋ค.
DID ๋ฐ DID ๋ฌธ์์ ๋ํ ๊ตฌํ์ ์ํธ ์ด์ฉ์ฑ์ ์ด ์ฌ์์ ๋ถํฉํ๋ DID ๋ฐ DID ๋ฌธ์๋ฅผ ์์ฑํ๊ณ ๊ตฌ๋ฌธ ๋ถ์ํ๋ ๊ตฌํ์ ๋ฅ๋ ฅ์ ํ๊ฐํจ์ผ๋ก์จ ํ ์คํธ๋๋ค. DID ๋ฐ DID ๋ฌธ์์ ์์ฐ์์ ์๋น์์ ๋ํ ์ํธ ์ด์ฉ์ฑ์ DID์ DID ๋ฌธ์๊ฐ ๊ท๋ฒ์ ๋ถํฉํ๋๋ก ๋ณด์ฅํจ์ผ๋ก์จ ์ ๊ณต๋๋ค. DID ๋ฉ์๋ ์ฌ์์ ๋ํ ์ํธ ์ด์ฉ์ฑ์ ๊ฐ DID ๋ฉ์๋ ์ฌ์์ ์ธ๋ถ ์ฌํญ์ ์ํด ์ ๊ณต๋๋ค. ์น ๋ธ๋ผ์ฐ์ ๊ฐ ๋ชจ๋ ์๋ ค์ง URI ์ฒด๊ณ๋ฅผ ๊ตฌํํ ํ์๊ฐ ์๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, DID์ ์๋ํ๋ ๊ท๋ฒ์ ๋ถํฉํ๋ ์ํํธ์จ์ด๊ฐ ๋ชจ๋ ์๋ ค์ง DID ๋ฉ์๋๋ฅผ ๊ตฌํํ ํ์๋ ์๋ค. ๊ทธ๋ฌ๋ ํน์ DID ๋ฉ์๋์ ๋ชจ๋ ๊ตฌํ์ ํด๋น ๋ฉ์๋์ ๋ํด ์ํธ ์ด์ฉ ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ์์๋๋ค.
๊ท๋ฒ์ ๋ถํฉํ๋ DID๋ ์์ ๋ช ์๋ ๊ท์น์ ๊ตฌ์ฒด์ ์ธ ํํ์ผ๋ก, ํด๋น ์น์ ์ ๊ด๋ จ ๊ท๋ฒ์ ์ง์ ์ ๋ถํฉํ๋ ๊ฒ์ด๋ค.
๊ท๋ฒ์ ๋ถํฉํ๋ DID ๋ฌธ์๋ ์ด ์ฌ์์์ ์ค๋ช ๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ตฌ์ฒด์ ์ธ ํํ์ผ๋ก, ๋ฐ ์ ๊ด๋ จ ๊ท๋ฒ์ ์ง์ ์ ๋ถํฉํ๋ ๊ฒ์ด๋ค. ๊ท๋ฒ์ ๋ถํฉํ๋ ๋ฌธ์์ ์ง๋ ฌํ ํ์์ ์ ์ค๋ช ๋ ๋๋ก ๊ฒฐ์ ์ ์ด๊ณ , ์๋ฐฉํฅ์ด๋ฉฐ, ์์ค์ด ์๋ค.
๊ท๋ฒ์ ๋ถํฉํ๋ ์์ฐ์๋ ๊ท๋ฒ์ ๋ถํฉํ๋ DID ๋๋ ๊ท๋ฒ์ ๋ถํฉํ๋ DID ๋ฌธ์๋ฅผ ์์ฑํ๊ณ ์ ๊ด๋ จ ๊ท๋ฒ์ ์ง์ ์ ๋ถํฉํ๋ ์ํํธ์จ์ด ๋ฐ/๋๋ ํ๋์จ์ด๋ก ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
๊ท๋ฒ์ ๋ถํฉํ๋ ์๋น์๋ ๊ท๋ฒ์ ๋ถํฉํ๋ DID ๋๋ ๊ท๋ฒ์ ๋ถํฉํ๋ DID ๋ฌธ์๋ฅผ ์๋นํ๊ณ ์ ๊ด๋ จ ๊ท๋ฒ์ ์ง์ ์ ๋ถํฉํ๋ ์ํํธ์จ์ด ๋ฐ/๋๋ ํ๋์จ์ด๋ก ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
๊ท๋ฒ์ ๋ถํฉํ๋ DID ๋ณํ๊ธฐ๋ ์ ๊ด๋ จ ๊ท๋ฒ์ ์ง์ ์ ๋ถํฉํ๋ ์ํํธ์จ์ด ๋ฐ/๋๋ ํ๋์จ์ด๋ก ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
๊ท๋ฒ์ ๋ถํฉํ๋ DID URL ์ญ์ฐธ์กฐ์๋ ์ ๊ด๋ จ ๊ท๋ฒ์ ์ง์ ์ ๋ถํฉํ๋ ์ํํธ์จ์ด ๋ฐ/๋๋ ํ๋์จ์ด๋ก ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
๊ท๋ฒ์ ๋ถํฉํ๋ DID ๋ฉ์๋๋ ์ ๊ด๋ จ ๊ท๋ฒ์ ์ง์ ์ ๋ถํฉํ๋ ๋ชจ๋ ์ฌ์์ด๋ค.
์ด ๊ท๊ฒฉ์ ์์ ์ฉ์ด๋ฟ๋ง ์๋๋ผ, ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ณต์์ ์ผ๋ก ์ ์ํ๊ธฐ ์ํด [[INFRA]] ๊ท๊ฒฉ์ ์ฉ์ด๋ฅผ ์ฌ์ฉํ๋ค. [[INFRA]] ์ฉ์ด๊ฐ ์ฌ์ฉ๋ ๋, ์๋ฅผ ๋ค์ด ๋ฌธ์์ด(string), ์งํฉ(set), ๋งต(map)๊ณผ ๊ฐ์ ๊ฒฝ์ฐ, ๊ทธ๊ฒ์ ํด๋น ๊ท๊ฒฉ์ ์ง์ ์ฐ๊ฒฐ๋๋ค.
์ด ์น์ ์์๋ DID ๋ฐ DID URL์ ๊ณต์ ๊ตฌ๋ฌธ์ ์ค๋ช ํ๋ค. "์ผ๋ฐ"์ด๋ผ๋ ์ฉ์ด๋ ์ฌ๊ธฐ์ ์ ์๋ ๊ตฌ๋ฌธ์ ํด๋น ์ฌ์์ ํน์ DID ๋ฉ์๋์ ์ํด ์ ์๋ ๊ตฌ๋ฌธ๊ณผ ๊ตฌ๋ณํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. DID ๋ฐ DID URL์ ์์ฑ ํ๋ก์ธ์ค์ ํ์ด๋ฐ์ ๋ฐ ์ ์ค๋ช ๋์ด ์๋ค.
์ผ๋ฐ DID ์ฒด๊ณ๋ [RFC3986]์ ์ค์ํ๋ URI ์ฒด๊ณ์ด๋ค. ABNF
์ ์๋ [RFC5234]์ ๊ตฌ๋ฌธ๊ณผ ALPHA ๋ฐ DIGIT์
๋ํ ํด๋น ์ ์๋ฅผ ์ฌ์ฉํ๋ ์๋์์ ์ฐพ์ ์ ์๋ค. ์๋ ABNF์ ์ ์๋์ง
์์ ๋ค๋ฅธ ๋ชจ๋ ๊ท์น ์ด๋ฆ์ [RFC3986]์ ์ ์๋์ด ์๋ค. ๋ชจ๋
DID๋ DID ๊ตฌ๋ฌธ ABNF ๊ท์น์ ์ค์ํด์ผ ํ๋ค.
| DID ๊ตฌ๋ฌธ ABNF ๊ท์น |
|---|
did = "did:" method-name ":" method-specific-id
method-name = 1*method-char
method-char = %x61-7A / DIGIT
method-specific-id = *( *idchar ":" ) 1*idchar
idchar = ALPHA / DIGIT / "." / "-" / "_" / pct-encoded
pct-encoded = "%" HEXDIG HEXDIG
|
DID ๊ตฌ๋ฌธ๊ณผ ๊ด๋ จ๋ DID ๋ฉ์๋ ์๊ตฌ ์ฌํญ์ ์น์ ์ ์ฐธ์กฐํ์ธ์.
DID URL์ ํน์ ๋ฆฌ์์ค์ ๋ํ ๋คํธ์ํฌ ์์น ์๋ณ์์ด๋ค. ์ด๋ DID ์ฃผ์ฒด, ๊ฒ์ฆ ๋ฐฉ๋ฒ, ์๋น์ค, DID ๋ฌธ์์ ํน์ ๋ถ๋ถ ๋๋ ๊ธฐํ ๋ฆฌ์์ค์ ๊ฐ์ ํญ๋ชฉ์ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์๋ค.
๋ค์์ [[!RFC5234]]์ ๋ฌธ๋ฒ์ ์ฌ์ฉํ๋ ABNF ์ ์์ด๋ค. ์ด๊ฒ์
์ ์ ์๋ did ์ฒด๊ณ์ ๊ธฐ๋ฐ์
๋๊ณ ์๋ค.
path-abempty, query, ๊ทธ๋ฆฌ๊ณ
fragment ๊ตฌ์ฑ
์์๋ค์ [[!RFC3986]]์ ์ ์๋์ด ์๋ค. ๋ชจ๋ DID URL์ DID URL
๋ฌธ๋ฒ ABNF ๊ท์น์ ์ค์ํด์ผ ํ๋ค. DID ๋ฉ์๋๋
์ ์ค๋ช
๋ ๋๋ก ์ด ๊ท์น๋ค์ ์ถ๊ฐ๋ก ์ ํํ
์ ์๋ค.
| DID URL ๊ตฌ๋ฌธ ABNF ๊ท์น |
|---|
did-url = did path-abempty [ "?" query ] [ "#" fragment ]
|
์ธ๋ฏธ์ฝ๋ก (;) ๋ฌธ์๋ DID URL ๋ฌธ๋ฒ์ ๊ท์น์ ๋ฐ๋ผ
์ฌ์ฉ๋ ์ ์์ง๋ง, ์ด ๊ท๊ฒฉ์ ๋ฏธ๋ ๋ฒ์ ์์๋ [[?MATRIX-URIS]]์ ์ค๋ช
๋
๋๋ก ๋งค๊ฐ๋ณ์์ ํ์ ๊ตฌ๋ถ์๋ก ์ฌ์ฉ๋ ์ ์๋ค. ๋ฏธ๋์ ์ถฉ๋์ ํผํ๊ธฐ
์ํด ๊ฐ๋ฐ์๋ค์ ์ด๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข๋ค.
DID ๊ฒฝ๋ก๋ ์ผ๋ฐ URI ๊ฒฝ๋ก์ ๋์ผํ๋ฉฐ
RFC 3986, ์น์
3.3์
path-abempty ABNF ๊ท์น์ ์ค์ํ๋ค. URI์
๋ง์ฐฌ๊ฐ์ง๋ก, ๊ฒฝ๋ก ์๋ฏธ๋ก ์ DID ๋ฉ์๋์ ์ํด ์ง์ ๋ ์ ์์ผ๋ฉฐ,
์ด๋ ๋ค์ DID ์ปจํธ๋กค๋ฌ๊ฐ ํด๋น ์๋ฏธ๋ก ์ ๋์ฑ ํนํํ ์ ์๊ฒ ํ
์ ์๋ค.
did:example:123456/path
DID ์ฟผ๋ฆฌ๋ ์ผ๋ฐ URI ์ฟผ๋ฆฌ์ ๋์ผํ๋ฉฐ
RFC 3986, ์น์
3.4์
query ABNF ๊ท์น์ ์ค์ํ๋ค. ์ด ๋ฌธ๋ฒ ๊ธฐ๋ฅ์
์์ ์์ธํ ์ค๋ช
๋์ด ์๋ค.
did:example:123456?versionId=1
DID ํ๋ ๊ทธ๋จผํธ์ ๋ฌธ๋ฒ๊ณผ ์๋ฏธ๋ก ์ ์ผ๋ฐ URI ํ๋ ๊ทธ๋จผํธ์
๋์ผํ๋ฉฐ
RFC 3986, ์น์
3.5์
fragment ABNF ๊ท์น์ ์ค์ํ๋ค.
DID ํ๋ ๊ทธ๋จผํธ๋ DID ๋ฌธ์๋ ์ธ๋ถ ๋ฆฌ์์ค๋ก์ ๋ฐฉ๋ฒ์ ๋ ๋ฆฝ์ ์ธ ์ฐธ์กฐ๋ก ์ฌ์ฉํ๋ค. ์๋์๋ DID ํ๋ ๊ทธ๋จผํธ ์๋ณ์์ ๋ช ๊ฐ์ง ์์๊ฐ ๋์ ์๋ค.
did:example:123#public-key-0
did:example:123#agent
did:example:123?service=agent&relativeRef=/credentials#degree
์ํธ ์ด์ฉ์ฑ์ ๊ทน๋ํํ๊ธฐ ์ํด, ๊ตฌํ์๋ค์ DID ํ๋ ๊ทธ๋จผํธ๊ฐ ํํ๊ฐ์ ๋์ผํ๊ฒ ํด์๋๋๋ก ๋ณด์ฅํ๋ ๋ฐ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ฌ์ผ ํ๋ค(์ฐธ์กฐ ). ์๋ฅผ ๋ค์ด, JSON Pointer [[?RFC6901]]๊ฐ DID ํ๋ ๊ทธ๋จผํธ์์ ์ฌ์ฉ๋ ์ ์์ง๋ง, ๋น-JSON ํํ์์๋ ๋์ผํ ๋ฐฉ์์ผ๋ก ํด์๋์ง ์์ ๊ฒ์ด๋ค.
์ด ์น์ ์ ์๋ฏธ๋ก ๊ณผ ํธํ๋๋ฉฐ ๊ทธ ์์ ๋ง๋ถ์ฌ์ง ํ๋ ๊ทธ๋จผํธ ์๋ณ์์ ๋ํ ์ถ๊ฐ์ ์ธ ์๋ฏธ๋ก ์ ์์ JSON-LD ํํ์ ๋ํด ์ค๋ช ๋์ด ์๋ค. DID ํ๋ ๊ทธ๋จผํธ๋ฅผ ์ด๋ป๊ฒ ์ญ์ฐธ์กฐํ๋์ง์ ๋ํ ์ ๋ณด๋ ์์ ํ์ธํ ์ ์๋ค.
DID URL ๋ฌธ๋ฒ์ ์์ ์ค๋ช
๋
query ๊ตฌ์ฑ ์์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๋งค๊ฐ๋ณ์์ ๋ํ ๊ฐ๋จํ
ํ์์ ์ง์ํ๋ค. DID URL์ DID ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๊ทธ
๋งค๊ฐ๋ณ์๊ฐ ๋ฆฌ์์ค์ ๋ํ ์๋ณ์์ ์ผ๋ถ๊ฐ ๋๋ค๋ ๊ฒ์
์๋ฏธํ๋ค.
did:example:123?versionTime=2021-05-10T17:00:00Z
did:example:123?service=files&relativeRef=/resume.pdf
์ผ๋ถ DID ๋งค๊ฐ๋ณ์๋ ํน์ DID ๋ฉ์๋์ ์์ ํ ๋ ๋ฆฝ์ ์ด๋ฉฐ, ๋ชจ๋ DID์ ๋ํด ๋์ผํ๊ฒ ์๋ํ๋ค. ๋ค๋ฅธ DID ๋งค๊ฐ๋ณ์๋ ๋ชจ๋ DID ๋ฉ์๋์์ ์ง์๋์ง ์๋ค. ์ ํ์ ๋งค๊ฐ๋ณ์๊ฐ ์ง์๋๋ ๊ฒฝ์ฐ, ์ง์ํ๋ DID ๋ฉ์๋ ์ ๋ฐ์ ๊ฑธ์ณ ๊ท ์ผํ๊ฒ ์๋ํ ๊ฒ์ผ๋ก ์์๋๋ค. ๋ค์ ํ๋ ๋ชจ๋ DID ๋ฉ์๋์์ ๋์ผํ๊ฒ ์๋ํ๋ ์ผ๋ฐ์ ์ธ DID ๋งค๊ฐ๋ณ์๋ฅผ ์ ๊ณตํ๋ค. ๋ชจ๋ DID ๋งค๊ฐ๋ณ์์ ๋ํ ์ง์์ ์ ํ์ ์ด๋ค.
์ผ๋ฐ์ ์ผ๋ก DID URL ์ญ์ฐธ์กฐ ๊ตฌํ์ฒด๋ ์ถ๊ฐ ๊ตฌํ ์ธ๋ถ์ฌํญ์ ๋ํด [[?DID-RESOLUTION]]์ ์ฐธ์กฐํ ๊ฒ์ผ๋ก ์์๋๋ค. ์ด ์ฌ์์ ๋ฒ์๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์์ ๊ณ์ฝ๋ง์ ์ ์ํ๋ค.
| Parameter Name | Description |
|---|---|
service
|
์๋น์ค ID๋ฅผ ํตํด DID ๋ฌธ์์์ ์๋น์ค๋ฅผ ์๋ณํ๋ค. ์กด์ฌํ๋ ๊ฒฝ์ฐ, ๊ด๋ จ ๊ฐ์ ๋ฐ๋์ ASCII ๋ฌธ์์ด์ด์ด์ผ ํ๋ค. |
relativeRef
|
RFC3986 ์น์
4.2์ ๋ฐ๋ฅธ
์๋์ ์ธ URI ์ฐธ์กฐ๋ก, service ๋งค๊ฐ๋ณ์๋ฅผ
์ฌ์ฉํ์ฌ DID ๋ฌธ์์์ ์ ํ๋ ์๋น์ค ์๋ํฌ์ธํธ์
์์นํ ๋ฆฌ์์ค๋ฅผ ์๋ณํ๋ค. ์กด์ฌํ๋ ๊ฒฝ์ฐ, ๊ด๋ จ ๊ฐ์
๋ฐ๋์ ASCII ๋ฌธ์์ด์ด์ด์ผ ํ๋ฉฐ
RFC3986 ์น์
2.1์
๋ช
์๋ ๋๋ก ํน์ ๋ฌธ์์ ๋ํด ํผ์ผํธ ์ธ์ฝ๋ฉ์ ์ฌ์ฉํด์ผ ํ๋ค.
|
versionId
|
ํด์๋ DID ๋ฌธ์์ ํน์ ๋ฒ์ ์ ์๋ณํ๋ค(๋ฒ์ ID๋ ์์ฐจ์ ์ด๊ฑฐ๋, UUID์ด๊ฑฐ๋, ๋ฉ์๋๋ณ ํน์ฑ์ ๊ฐ์ง ์ ์๋ค). ์กด์ฌํ๋ ๊ฒฝ์ฐ, ๊ด๋ จ ๊ฐ์ ๋ฐ๋์ ASCII ๋ฌธ์์ด์ด์ด์ผ ํ๋ค. |
versionTime
|
ํด์๋ DID ๋ฌธ์์ ํน์ ๋ฒ์ ํ์์คํฌํ๋ฅผ ์๋ณํ๋ค. ์ฆ,
ํน์ ์๊ฐ์ DID์ ์ ํจํ๋ DID ๋ฌธ์์ด๋ค.
์กด์ฌํ๋ ๊ฒฝ์ฐ, ๊ด๋ จ ๊ฐ์
W3C XML ์คํค๋ง ์ ์ ์ธ์ด (XSD) 1.1 ํํธ 2: ๋ฐ์ดํฐ ํ์
[[XMLSCHEMA11-2]]์ ์น์
3.3.7์ ์ ์๋ ์ ํจํ XML ๋ ์ง/์๊ฐ
๊ฐ์ธ ASCII ๋ฌธ์์ด์ด์ด์ผ ํ๋ค. ์ด ๋ ์ง/์๊ฐ ๊ฐ์ UTC
00:00:00์ผ๋ก ์ ๊ทํ๋์ด์ผ ํ๋ฉฐ, ์ด ๋จ์์ ์์์ ์ดํ ์ ๋ฐ๋๋
ํฌํจํ์ง ์์์ผ ํ๋ค. ์๋ฅผ ๋ค์ด:
2020-12-20T19:17:47Z.
|
hl
|
[[?HASHLINK]]์ ๋ช ์๋ ๋๋ก ๋ฌด๊ฒฐ์ฑ ๋ณดํธ๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํ DID ๋ฌธ์์ ๋ฆฌ์์ค ํด์์ด๋ค. ์ด ๋งค๊ฐ๋ณ์๋ ๊ท๋ฒ์ ์ด์ง ์๋ค. ์กด์ฌํ๋ ๊ฒฝ์ฐ, ๊ด๋ จ ๊ฐ์ ๋ฐ๋์ ASCII ๋ฌธ์์ด์ด์ด์ผ ํ๋ค. |
๊ตฌํ์๋ค๊ณผ DID ๋ฉ์๋ ์ฌ์ ์ ์๋ค์ ์ฌ๊ธฐ์ ๋์ด๋์ง ์์ ์ถ๊ฐ์ ์ธ DID ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ์ต๋ํ์ ์ํธ ์ด์ฉ์ฑ์ ์ํด, DID ๋งค๊ฐ๋ณ์๊ฐ ๋ค๋ฅธ ์๋ฏธ๋ฅผ ๊ฐ์ง ๋์ผํ DID ๋งค๊ฐ๋ณ์์์ ์ถฉ๋์ ํผํ๊ธฐ ์ํด DID ์ฌ์ ๋ ์ง์คํธ๋ฆฌ ๋ฉ์ปค๋์ฆ [[?DID-SPEC-REGISTRIES]]์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ถ์ฅ๋๋ค.
DID ๋งค๊ฐ๋ณ์๋ URL์ด DID๋ง์ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ๋ ์ ๋ฐํ๊ฒ ๋ฆฌ์์ค๋ฅผ ์ฐธ์กฐํ ํ์๊ฐ ์๋ ๋ช ํํ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์ ๋ ์ฌ์ฉ๋ ์ ์๋ค. DID ๋งค๊ฐ๋ณ์๋ ๋์ผํ ๊ธฐ๋ฅ์ด DID ๋ณํ๊ธฐ์ ์ ๋ ฅ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํจ์ผ๋ก์จ ํํ๋ ์ ์์ ๋ ์ฌ์ฉ๋์ง ์์ ๊ฒ์ผ๋ก ์์๋๋ค. ์ด๋ฌํ ๋งค๊ฐ๋ณ์๋ฅผ ์ฒ๋ฆฌํ๋ ์ถ๊ฐ์ ์ธ ๊ณ ๋ ค์ฌํญ์ [[?DID-RESOLUTION]]์์ ๋ ผ์๋๋ค.
DID ํด์ ๋ฐ DID URL ์ญ์ฐธ์กฐ ๊ธฐ๋ฅ์ DID URL์ ์ผ๋ถ๊ฐ ์๋ ์ ๋ ฅ ๋ฉํ๋ฐ์ดํฐ๋ฅผ DID ๋ณํ๊ธฐ์ ์ ๋ฌํจ์ผ๋ก์จ ์ํฅ์ ๋ฐ์ ์ ์๋ค(์ฐธ์กฐ ). ์ด๋ HTTP์ ๋น์ทํ๋ฐ, ํน์ ๋งค๊ฐ๋ณ์๊ฐ HTTP URL์ ํฌํจ๋๊ฑฐ๋, ๋๋ ์ญ์ฐธ์กฐ ๊ณผ์ ์ค์ HTTP ํค๋๋ก ์ ๋ฌ๋ ์ ์๋ค. ์ค์ํ ๊ตฌ๋ณ์ ์ DID URL์ ์ผ๋ถ์ธ DID ๋งค๊ฐ๋ณ์๋ ์ด๋ค ๋ฆฌ์์ค๊ฐ ์๋ณ๋๋์ง๋ฅผ ๋ช ์ํ๋ ๋ฐ ์ฌ์ฉ๋์ด์ผ ํ๋ฉฐ, DID URL์ ์ผ๋ถ๊ฐ ์๋ ์ ๋ ฅ ๋ฉํ๋ฐ์ดํฐ๋ ๊ทธ ๋ฆฌ์์ค๊ฐ ์ด๋ป๊ฒ ํด์๋๊ฑฐ๋ ์ญ์ฐธ์กฐ๋๋์ง๋ฅผ ์ ์ดํ๋ ๋ฐ ์ฌ์ฉ๋์ด์ผ ํ๋ค.
์๋์ ์ธ DID URL์ DID ๋ฌธ์ ๋ด์์
did:<method-name>:<method-specific-id>๋ก ์์ํ์ง
์๋ ๋ชจ๋ URL ๊ฐ์ ์๋ฏธํ๋ค. ๋ณด๋ค ๊ตฌ์ฒด์ ์ผ๋ก,
์์ ์ ์๋ ABNF๋ก ์์ํ์ง ์๋ ๋ชจ๋ URL
๊ฐ์ ๋งํ๋ค. ์ด URL์ ๋์ผํ DID ๋ฌธ์ ๋ด์ ๋ฆฌ์์ค๋ฅผ
์ฐธ์กฐํ ๊ฒ์ผ๋ก ์์๋๋ค. ์๋์ ์ธ DID URL์ ์๋ ๊ฒฝ๋ก ๊ตฌ์ฑ
์์, ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์ ๋ฐ ํ๋๊ทธ๋จผํธ ์๋ณ์๋ฅผ ํฌํจํ ์ ์๋ค.
์๋์ ์ธ DID URL ์ฐธ์กฐ๋ฅผ ํด๊ฒฐํ ๋,
RFC3986 ์น์
5: ์ฐธ์กฐ ํด๊ฒฐ์
๋ช
์๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ผ ํ๋ค. ๊ธฐ๋ณธ URI ๊ฐ์
DID ์ฃผ์ฒด์ ์ฐ๊ด๋ DID์ด๋ฉฐ, ์ฐธ์กฐ
. ์คํค๋ง๋
did์ด๊ณ , ๊ถํ์
<method-name>:<method-specific-id>์ ์กฐํฉ์ด๋ฉฐ,
๊ฒฝ๋ก, ์ฟผ๋ฆฌ ๋ฐ
ํ๋๊ทธ๋จผํธ ๊ฐ์ ๊ฐ๊ฐ ,
๋ฐ ์์ ์ ์๋ ๊ฒ์ด๋ค.
์๋์ ์ธ DID URL์ ์ ๋ URL์ ์ฌ์ฉํ์ง ์๊ณ DID ๋ฌธ์์์ ๊ฒ์ฆ ๋ฐฉ๋ฒ ๋ฐ ์๋น์ค๋ฅผ ์ฐธ์กฐํ๋ ๋ฐ ์ข ์ข ์ฌ์ฉ๋๋ค. ์ ์ฅ ๊ณต๊ฐ ํฌ๊ธฐ๊ฐ ๊ณ ๋ ค ์ฌํญ์ธ DID ๋ฉ์๋๋ DID ๋ฌธ์์ ์ ์ฅ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ธฐ ์ํด ์๋ URL์ ์ฌ์ฉํ ์ ์๋ค.
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/ed25519-2020/v1"
]
"id": "did:example:123456789abcdefghi",
"verificationMethod": [{
"id": "did:example:123456789abcdefghi#key-1",
"type": "Ed25519VerificationKey2020", // external (property value)
"controller": "did:example:123456789abcdefghi",
"publicKeyMultibase": "zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
}, ...],
"authentication": [
// a relative DID URL used to reference a verification method above
"#key-1"
]
}
In the example above, the relative DID URL value will be
transformed to an absolute DID URL value of
did:example:123456789abcdefghi#key-1.
์ด ์ฌ์์ DID ๋ฌธ์์ DID ๋ฌธ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ํํํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ ์ํ๋ค. ์ด ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฌ๋ฌ ๊ตฌ์ฒด์ ์ธ ํํ์ผ๋ก ์ง๋ ฌํ๋ ์ ์๋ค. ์ด ์น์ ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ณ ์์ค ์ค๋ช , ๋ฐ์ดํฐ ๋ชจ๋ธ์์ ๋ค์ํ ์ ํ์ ์์ฑ์ด ํํ๋๋ ๋ฐฉ๋ฒ์ ๋ํ ์ค๋ช , ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ ํ์ฅ ์ง์นจ์ ์ ๊ณตํ๋ค.
DID ๋ฌธ์๋ map์ ์ํธ๋ฆฌ๋ค๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ฐ ์ํธ๋ฆฌ๋ ํค/๊ฐ ์์ผ๋ก ๊ตฌ์ฑ๋๋ค. DID ๋ฌธ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ ์ด๋ ๋ ๊ฐ์ง ๋ค๋ฅธ ํด๋์ค์ ์ํธ๋ฆฌ๋ฅผ ํฌํจํ๋ค. ์ฒซ ๋ฒ์งธ ํด๋์ค์ ์ํธ๋ฆฌ๋ ์์ฑ์ด๋ผ๊ณ ํ๋ฉฐ, ์น์ ์์ ๋ช ์๋๋ค. ๋ ๋ฒ์งธ ํด๋์ค๋ ํํ๋ณ ํญ๋ชฉ์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ์น์ ์์ ๋ช ์๋๋ค.
DID ๋ฌธ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ชจ๋ ์ํธ๋ฆฌ ํค๋ ๋ฌธ์์ด์ด๋ค. ๋ชจ๋ ์ํธ๋ฆฌ ๊ฐ์ ์๋ ํ์ ์๋ ์ถ์ ๋ฐ์ดํฐ ํ์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ํํ๋๋ฉฐ, ๊ฐ ํํ์ ๊ฐ ๋ฐ์ดํฐ ํ์ ์ ๊ตฌ์ฒด์ ์ธ ์ง๋ ฌํ ํ์์ ๋ช ์ํ๋ค.
| Data Type | Considerations |
|---|---|
| map | ํค/๊ฐ ์์ ์ ํํ ์์ ์๋ ์ํ์ค๋ก, [INFRA]์ ๋ช ์๋ ๋๋ก ๊ฐ์ ํค๊ฐ ๋ ๋ฒ ๋ํ๋์ง ์๋๋ค. map์ ๋๋๋ก [INFRA]์์ ordered map์ผ๋ก ์ธ๊ธ๋๋ค. |
| list | [INFRA]์ ๋ช ์๋ ๋๋ก ํญ๋ชฉ๋ค์ ์ ํํ ์์ ์๋ ์ํ์ค์ด๋ค. |
| set | ๊ฐ์ ํญ๋ชฉ์ด ๋ ๋ฒ ํฌํจ๋์ง ์๋, [INFRA]์ ๋ช ์๋ ๋๋ก ํญ๋ชฉ๋ค์ ์ ํํ ์์ ์๋ ์ํ์ค์ด๋ค. ์ธํธ๋ ๋๋๋ก [INFRA]์์ ordered set๋ก ์ธ๊ธ๋๋ค. |
| datetime |
[XMLSCHEMA11-2]์ ๋ช
์๋
๋๋ก dateTime์ ์ํด ํํ๋ ์ ์๋ ๋ชจ๋ ๊ฐ์ ์์ค
์์ด ํํํ ์ ์๋ ๋ ์ง ๋ฐ ์๊ฐ ๊ฐ์ด๋ค.
|
| string | [INFRA]์ ๋ช ์๋ ๋๋ก ์ฃผ๋ก ์ธ๊ฐ์ด ์ฝ์ ์ ์๋ ์ธ์ด๋ฅผ ํํํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ฝ๋ ๋จ์์ ์ํ์ค์ด๋ค. |
| integer | ๋ถ์ ๊ตฌ์ฑ ์์๊ฐ ์๋ ์ค์๋ก [XMLSCHEMA11-2]์ ๋ช ์๋์ด ์๋ค. ์ํธ ์ด์ฉ์ฑ์ ๊ทน๋ํํ๊ธฐ ์ํด, ๊ตฌํ์๋ RFC8259, Section 6: Numbers ์ซ์์ ๋ํ ์ ์ ๊ด๋ จ ์กฐ์ธ์ ์ฃผ์ ๊น๊ฒ ๋ฐ๋ฅผ ๊ฒ์ ๊ถ์ฅํ๋ค. |
| double | [XMLSCHEMA11-2]์ ๋ช ์๋ ๋๋ก ์์์ ์ค์๋ฅผ ๊ทผ์ฌํ๋ ๋ฐ ์ข ์ข ์ฌ์ฉ๋๋ ๊ฐ์ด๋ค. ์ํธ ์ด์ฉ์ฑ์ ๊ทน๋ํํ๊ธฐ ์ํด, ๊ตฌํ์๋ RFC8259, Section 6: Numbers์ ๋ํ ๋๋ธ ๊ด๋ จ ์กฐ์ธ์ ์ฃผ์ ๊น๊ฒ ๋ฐ๋ฅผ ๊ฒ์ ๊ถ์ฅํ๋ค. |
| boolean | [INFRA]์์ ์ ์๋ ๋๋ก ์ฐธ ๋๋ ๊ฑฐ์ง์ธ ๊ฐ์ด๋ค. |
| null | ๊ฐ์ด ์์์ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ฐ์ผ๋ก [INFRA]์์ ์ ์๋์ด ์๋ค. |
๋ฐ์ดํฐ ๋ชจ๋ธ์ด [INFRA]์์ ์ฌ์ฉํ๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ ์๋ ๊ฒฐ๊ณผ๋ก, ๋ฆฌ์คํธ, maps and sets์ ๊ฐ์ด ํ๋ ์ด์์ ํญ๋ชฉ์ ํฌํจํ ์ ์๋ ์์ฑ ๊ฐ์ ๋ช ์์ ์ผ๋ก ์์๊ฐ ์ง์ ๋๋ค. [INFRA]์ ๋ชจ๋ ๋ฆฌ์คํธ์ ์ ์ฌํ ๊ฐ ๊ตฌ์กฐ๋ ์์๊ฐ ์์ผ๋ฉฐ, ๊ทธ ์์๊ฐ ์ค์ํ์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ์์๊ฐ ์๋ค. ์ด ๊ท๊ฒฉ์ ๋ชฉ์ ์, ๋ค๋ฅด๊ฒ ๋ช ์๋์ง ์๋ ํ, map๊ณผ set์ ์์๋ ์ค์ํ์ง ์์ผ๋ฉฐ, ๊ตฌํ์ด ๊ฒฐ์ ์ ์ผ๋ก ์์ ์๋ ๊ฐ์ ์์ฑํ๊ฑฐ๋ ์๋นํ ๊ฒ์ผ๋ก ๊ธฐ๋๋์ง ์๋๋ค.
๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ ๊ฐ์ง ์ ํ์ ํ์ฅ์ฑ์ ์ง์ํ๋ค.
๋ฑ๋ก๋์ง ์์ ํ์ฅ์ ์ ๋ขฐ๋๊ฐ ๋ฎ๋ค. ํญ์ DID ๊ท๊ฒฉ ๋ ์ง์คํธ๋ฆฌ [[?DID-SPEC-REGISTRIES]]์ ๊ธฐ๋ก๋์ง ์์ ์ํธ ์ดํดํ๋ ํ์ฅ์ด๋ ํํ์ ์ฌ์ฉํ๊ธฐ๋ก ๋ ํน์ ๊ตฌํ์ด ์ฌ์ ์ ํฉ์ํ ๊ฐ๋ฅ์ฑ์ด ์์ผ๋ฉฐ, ์ด๋ฌํ ๊ตฌํ๊ณผ ๋ ํฐ ์ํ๊ณ ์ฌ์ด์ ์ํธ ์ด์ฉ์ฑ์ ์ ๋ขฐ๋๊ฐ ๋ฎ๋ค.
DID๋ DID ๋ฌธ์์ ์ฐ๊ด๋๋ค. DID ๋ฌธ์๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ํํ๋๋ฉฐ, ํํ์ผ๋ก ์ง๋ ฌํ๋ ์ ์๋ค. ๋ค์ ์น์ ์ DID ๋ฌธ์์ ์์ฑ์ ์ ์ํ๋ฉฐ, ์ด๋ฌํ ์์ฑ์ด ํ์์ธ์ง ์ ํ์ ์ธ์ง๋ฅผ ํฌํจํ๋ค. ์ด๋ฌํ ์์ฑ์ DID ์ฃผ์ฒด์ ์์ฑ์ ๊ฐ ์ฌ์ด์ ๊ด๊ณ๋ฅผ ์ค๋ช ํ๋ค.
๋ค์ ํ์๋ ์ด ๊ท๊ฒฉ์ ์ํด ์ ์๋ ํต์ฌ ์์ฑ์ ๋ํ ์ ๋ณด ์ฐธ์กฐ๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ, ์์๋๋ ๊ฐ๊ณผ ํ์ ์ฌ๋ถ๋ฅผ ํฌํจํ๋ค. ํ์ ์์ฑ ์ด๋ฆ์ ๊ฐ ์์ฑ์ ๊ท๋ฒ์ ์ ์์ ๋ ์์ธํ ์ค๋ช ์ผ๋ก ์ฐ๊ฒฐ๋๋ค.
๋ค๋ฅธ ์ ํ์ map์์ ์ฌ์ฉ๋๋ ์์ฑ ์ด๋ฆ id,
type, ๋ฐ controller ์์ฑ ์ด๋ฆ์ ๊ฐ๋ฅํ ์ ์ฝ
์ฌํญ์์ ์ฐจ์ด๊ฐ ์์ ์ ์๋ ๋ค์ํ ์ ํ์ map์ ์กด์ฌํ ์ ์๋ค.
| Property | Required? | Value constraints |
|---|---|---|
id
|
yes | ์ ๊ท์น์ ์ค์ํ๋ ๋ฌธ์์ด์ด๋ค. |
alsoKnownAs
|
no | [[RFC3986]]์ ๋ํ URIs์ ๊ท์น์ ์ค์ํ๋ ๋ฌธ์์ด์ set์ด๋ค. |
controller
|
no | ์ ๊ท์น์ ์ค์ํ๋ ๋ฌธ์์ด ๋๋ ๋ฌธ์์ด์ set์ด๋ค. |
verificationMethod
|
no | ์ ์ค์ํ๋ Verification Method maps์ set์ด๋ค. |
authentication
|
no | ์ ์ค์ํ๋ Verification Method maps์ set) ๋๋ ์ ๊ท์น์ ์ค์ํ๋ ๋ฌธ์์ด์ set์ด๋ค. |
assertionMethod
|
no | |
keyAgreement
|
no | |
capabilityInvocation
|
no | |
capabilityDelegation
|
no | |
service
|
no | ์ ๊ท์น์ ์ค์ํ๋ Service Endpoint maps์ set์ด๋ค. |
| Property | Required? | Value constraints |
|---|---|---|
id |
yes | ์ ๊ท์น์ ์ค์ํ๋ ๋ฌธ์์ด์ด๋ค. |
controller
|
yes | ์ ๊ท์น์ ์ค์ํ๋ ๋ฌธ์์ด์ด๋ค. |
type |
yes | ๋ฌธ์์ด์ด๋ค. |
publicKeyJwk
|
no | [[RFC7517]]์ ์ค์ํ๋ JSON Web Key๋ฅผ ๋ํ๋ด๋ map์ด๋ค. ์ถ๊ฐ ์ ์ฝ์ฌํญ์ publicKeyJwk์ ์ ์๋ฅผ ์ฐธ์กฐ. |
publicKeyMultibase
|
no | [[?MULTIBASE]]๋ก ์ธ์ฝ๋ฉ๋ ๊ณต๊ฐํค๋ฅผ ์ค์ํ๋ ๋ฌธ์์ด์ด๋ค. |
| Property | Required? | Value constraints |
|---|---|---|
id |
yes | [[RFC3986]]์ ๋ํ URIs์ ๊ท์น์ ์ค์ํ๋ ๋ฌธ์์ด์ด๋ค. |
type |
yes | ๋ฌธ์์ด ๋๋ ๋ฌธ์์ด์ set์ด๋ค. |
serviceEndpoint
|
yes | [[RFC3986]]์ ๋ํ URIs์ ๊ท์น์ ์ค์ํ๋ ๋ฌธ์์ด, map, ๋๋ [[RFC3986]]์ ๋ํ URIs์ ๊ท์น์ ์ค์ํ๋ ํ๋ ์ด์์ ๋ฌธ์์ด๊ณผ ๋๋ map์ผ๋ก ๊ตฌ์ฑ๋ set์ด๋ค. |
์ด ์น์ ์ DID ๋ฌธ์๊ฐ DID ์ฃผ์ฒด์ DID ์ปจํธ๋กค๋ฌ๋ฅผ ์ํ ์๋ณ์๋ฅผ ํฌํจํ๋ ๋ฉ์ปค๋์ฆ์ ์ค๋ช ํ๋ค.
ํน์ DID ์ฃผ์ฒด์ ๋ํ DID๋ DID ๋ฌธ์์
id ์์ฑ์ ์ฌ์ฉํ์ฌ ํํ๋๋ค.
id์ ๊ฐ์ ์ ๊ท์น์
์ค์ํ๋ ๋ฌธ์์ด์ด์ด์ผ ํ๋ฉฐ
DID ๋ฌธ์์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ฃจํธ
map์ ๋ฐ๋์ ์กด์ฌํด์ผ ํ๋ค.
{
"id": "did:example:123456789abcdefghijk"
}
id ์์ฑ์ DID ๋ฌธ์์ ์ต์์
map์ ์กด์ฌํ ๋๋ง
DID ์ฃผ์ฒด์ DID๋ฅผ ๋ํ๋ธ๋ค.
DID ๋ฉ์๋ ๊ท๊ฒฉ์ DID ๋ฌธ์์
id ์์ฑ์ด ํฌํจ๋์ง ์๋ ์ค๊ฐ ํํ์ ์์ฑํ ์
์๋ค. ์๋ฅผ ๋ค์ด DID ๋ณํ๊ธฐ๊ฐ DID ํด์์ ์ํํ ๋์
๊ฐ์ ๊ฒฝ์ฐ์ด๋ค. ๊ทธ๋ฌ๋ ์์ ํ ํด์๋ DID ๋ฌธ์๋ ํญ์ ์ ํจํ
id
์์ฑ์ ํฌํจํ๋ค.
DID ์ปจํธ๋กค๋ฌ๋ DID ๋ฌธ์ ๋ณ๊ฒฝ ๊ถํ์ ๋ถ์ฌ๋ฐ์ ๊ฐ์ฒด์ด๋ค. DID ์ปจํธ๋กค๋ฌ๋ฅผ ์น์ธํ๋ ๊ณผ์ ์ DID ๋ฉ์๋์ ์ํด ์ ์๋๋ค.
controller์ ์์ฑ์ ์ ํ ์ฌํญ์ด๋ค. ์กด์ฌํ๋ ๊ฒฝ์ฐ,
๊ฐ์ ์ ๊ท์น์ ์ค์ํ๋
๋ฌธ์์ด ๋๋
๋ฌธ์์ด์
set์ฌ์ผ ํ๋ค. ํด๋นํ๋ DID
๋ฌธ์(๋ค)์ ํน์ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ํน์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก
๋ช
์์ ์ผ๋ก ํ์ฉํ๋ ๊ฒ์ฆ ๊ด๊ณ๋ฅผ ํฌํจํด์ผ ํ๋ค.
DID ๋ฌธ์์ controller ์์ฑ์ด ์กด์ฌํ๋
๊ฒฝ์ฐ, ๊ทธ ๊ฐ์ ํ๋ ์ด์์ DID๋ฅผ ํํํ๋ค. ๊ทธ DID๋ค์
DID ๋ฌธ์์ ํฌํจ๋ ๋ชจ๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ๊ถ์ ์๋ ๊ฒ์ผ๋ก
๋ฐ์๋ค์ฌ์ ธ์ผ ํ๋ฉฐ, ๊ทธ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ๋ง์กฑํ๋ ์ฆ๋ช
์
DID ์ฃผ์ฒด๊ฐ ์ ๊ณตํ ์ฆ๋ช
๊ณผ ๋๋ฑํ๊ฒ ๊ฐ์ฃผ๋์ด์ผ ํ๋ค.
{
"@context": "https://www.w3.org/ns/did/v1",
"id": "did:example:123456789abcdefghi",
"controller": "did:example:bcehfew7h32f32h7af3",
}
controller์ ๊ฐ์ ์ํด ์ ๊ณต๋๋ ์น์ธ์
์์ ์ค๋ช
ํ๋ ์ธ์ฆ๊ณผ ๋ณ๊ฐ์ด๋ค. ์ด๋
ํนํ ์ํธํ ํค ์์ค์ ๊ฒฝ์ฐ ํค ๋ณต๊ตฌ์ ์ค์ํ๋ค. ์ฌ๊ธฐ์
DID ์ฃผ์ฒด๋ ๋ ์ด์ ์์ ์ ํค์ ์ ๊ทผํ ์ ์๊ฑฐ๋, ํค ํํ์
๊ฒฝ์ฐ, DID ์ปจํธ๋กค๋ฌ์ ์ ๋ขฐํ ์ ์๋ ์ 3์๊ฐ ๊ณต๊ฒฉ์์ ์ํ
์
์์ ์ธ ํ๋์ ๋ฌดํจํํ ํ์๊ฐ ์๋ค. ์ํ ๋ชจ๋ธ ๋ฐ ๊ณต๊ฒฉ ๋ฒกํฐ์
๊ด๋ จ๋ ์ ๋ณด๋ ์ ์ฐธ์กฐ.
DID ์ฃผ์ฒด๋ ๋ค์ํ ๋ชฉ์ ์ ์ํด์๋ ์๋ก ๋ค๋ฅธ ์๊ฐ์ ๋ํด ์ฌ๋ฌ
์๋ณ์๋ฅผ ๊ฐ์ง ์ ์๋ค. ๋ ๊ฐ ์ด์์ DID(๋๋ ๋ค๋ฅธ ์ ํ์
URI)๊ฐ ๋์ผํ DID ์ฃผ์ฒด๋ฅผ ์ฐธ์กฐํ๋ค๋ ์ฃผ์ฅ์
alsoKnownAs ์์ฑ์ ์ฌ์ฉํ์ฌ ์ ๊ธฐ๋ ์ ์๋ค.
alsoKnownAs ์์ฑ์ ์ ํ ์ฌํญ์ด๋ค. ์์ฑ์ด ์กด์ฌํ๋
๊ฒฝ์ฐ, ๊ฐ์ [[RFC3986]]์ ๋ฐ๋ฅธ URI๋ฅผ ์ค์ํ๋
set์ ๊ฐ ํญ๋ชฉ์ด์ด์ผ ํ๋ค.
์์ฉ ํ๋ก๊ทธ๋จ์ alsoKnownAs ๊ด๊ณ๊ฐ ์ญ๋ฐฉํฅ์ผ๋ก
์ํธ ์์ฉํ ๊ฒฝ์ฐ ๋ ์๋ณ์๋ฅผ ๋ฑ๊ฐ๋ก ๊ฐ์ฃผํ ์ ์๋ค. ์ด ์ญ ๊ด๊ณ๊ฐ
์๋ ๊ฒฝ์ฐ์๋ ๋ฑ๊ฐ๋ก ๊ฐ์ฃผํ์ง ์๋ ๊ฒ์ด ์ต์ ์ด๋ค. ์ฆ,
alsoKnownAs ์ฃผ์ฅ์ ์กด์ฌ๊ฐ ์ด ์ฃผ์ฅ์ด ์ฐธ์์
์ฆ๋ช
ํ์ง๋ ์๋๋ค. ๋ฐ๋ผ์ ์์ฒญํ๋ ๋น์ฌ์๊ฐ
alsoKnownAs ์ฃผ์ฅ์ ๋
๋ฆฝ์ ์ธ ๊ฒ์ฆ์ ๋ฐ๋ ๊ฒ์ด ๊ฐ๋ ฅํ
๊ถ์ฅ๋๋ค.
DID ์ฃผ์ฒด๊ฐ ๋ค์ํ ๋ชฉ์ ์ ์ํด ๋ค๋ฅธ ์๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์, ๋ ์๋ณ์ ๊ฐ์ ๊ฐ๋ ฅํ ๋ฑ๊ฐ์ฑ ๊ธฐ๋๋ ํด๋นํ๋ ๋ DID ๋ฌธ์์ ์ ๋ณด๋ฅผ ๋ณํฉํ๋ ๊ฒ์ ์ํธ ๊ด๊ณ๊ฐ ์๋๋ผ๋ ๋ฐ๋์ ์ ์ ํ์ง๋ ์๋ค.
DID ๋ฌธ์๋ ์ํธํ ๊ณต๊ฐ ํค์ ๊ฐ์ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ํํํ ์ ์์ผ๋ฉฐ, ์ด๋ DID ์ฃผ์ฒด ๋๋ ๊ด๋ จ ๋น์ฌ์์์ ์ํธ ์์ฉ์ ์ธ์ฆํ๊ฑฐ๋ ์ธ๊ฐํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ์ํธํ ๊ณต๊ฐ ํค๋ ๋์งํธ ์๋ช ๊ณผ ๊ด๋ จํ์ฌ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉ๋ ์ ์์ผ๋ฉฐ, ์ด ๊ฒฝ์ฐ ์๋ช ์๊ฐ ๊ด๋ จ ์ํธํ ๊ฐ์ธ ํค๋ฅผ ์ฌ์ฉํ ์ ์์์ ๊ฒ์ฆํ๋ค. ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ๋ง์ ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ์ง ์ ์๋ค. ์ด์ ์๋ ์ํธํ ์๊ณ๊ฐ ์๋ช ์ ๊ธฐ์ฌํด์ผ ํ๋ ๋ค์ฏ ๊ฐ์ ์ํธํ ํค ์ค์์ ์ด๋ ์ธ ๊ฐ๊ฐ ํ์ํ ์ธํธ์ด๋ค.
verificationMethod ์์ฑ์ ์ ํ ์ฌํญ์ด๋ค. ์์ฑ์ด
์กด์ฌํ๋ ๊ฒฝ์ฐ, ๊ฐ์ map์
์ฌ์ฉํ์ฌ ํํ๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ์
set์ฌ์ผ ํ๋ค. ๊ฒ์ฆ ๋ฐฉ๋ฒ
map์๋ id,
type, controller ๋ฐ type์
๊ฐ์ ๋ฐ๋ผ ๊ฒฐ์ ๋๊ณ ์์
์ ์๋ ํน์ ๊ฒ์ฆ ์ฌ๋ฃ ์์ฑ์ด ํฌํจ๋์ด์ผ ํ๋ค. ๊ฒ์ฆ ๋ฐฉ๋ฒ์๋
์ถ๊ฐ ์์ฑ์ด ํฌํจ๋ ์ ์๋ค. ๊ฒ์ฆ ๋ฐฉ๋ฒ์ DID ๊ท๊ฒฉ ๋ ์ง์คํธ๋ฆฌ
[[DID-SPEC-REGISTRIES]]์ ๋ฑ๋ก๋์ด์ผ ํ๋ค.
๊ฒ์ฆ ๋ฐฉ๋ฒ์ id ์์ฑ ๊ฐ์ ์น์
์ ๊ท์น์ ์ค์ํ๋
๋ฌธ์์ด์ด์ด์ผ ํ๋ค.
type ์์ฑ ๊ฐ์ ์ ํํ ํ๋์
๊ฒ์ฆ ๋ฐฉ๋ฒ ์ ํ์ ์ฐธ์กฐํ๋
๋ฌธ์์ด์ด์ด์ผ ํ๋ค. ์ ์ธ๊ณ์ ์ธ
์ํธ ์ด์ฉ์ฑ์ ๊ทน๋ํํ๊ธฐ ์ํด, ๊ฒ์ฆ ๋ฐฉ๋ฒ ์ ํ์ DID ๊ท๊ฒฉ
๋ ์ง์คํธ๋ฆฌ [[?DID-SPEC-REGISTRIES]]์ ๋ฑ๋ก๋์ด์ผ ํ๋ค.
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/jws-2020/v1"
"https://w3id.org/security/suites/ed25519-2020/v1"
]
"id": "did:example:123456789abcdefghi",
...
"verificationMethod": [{
"id": ...,
"type": ...,
"controller": ...,
"publicKeyJwk": ...
}, {
"id": ...,
"type": ...,
"controller": ...,
"publicKeyMultibase": ...
}]
}
controller ์์ฑ์ ์๋ฏธ๋ ๊ด๊ณ์ ์ฃผ์ฒด๊ฐ DID ๋ฌธ์์ผ
๋์ ์ํธํ ๊ณต๊ฐ ํค์ ๊ฐ์ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ผ ๋ ๋์ผํ๋ค. ํค๊ฐ ์๊ธฐ ์์ ์
์ ์ดํ ์ ์๊ณ ํค์ ์ปจํธ๋กค๋ฌ๊ฐ DID ๋ฌธ์์์ ์ ์ถ๋ ์ ์๊ธฐ
๋๋ฌธ์, ํค ์ปจํธ๋กค๋ฌ์ ์ ์ฒด์ฑ์ ๋ช
์์ ์ผ๋ก ํํํ ํ์๊ฐ ์๋ค. ์ฐจ์ด์ ์
๊ฒ์ฆ ๋ฐฉ๋ฒ์ ๋ํ ์ปจํธ๋กค๋ฌ์ ๊ฐ์ด ๋ฐ๋์ DID ์ปจํธ๋กค๋ฌ์ผ ํ์๋
์๋ค๋ ๊ฒ์ด๋ค. DID ์ปจํธ๋กค๋ฌ๋ DID ๋ฌธ์์ ์ต์์ ์์ค(๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ต์์ map)์์ ์ปจํธ๋กค๋ฌ
์์ฑ์ ์ฌ์ฉํ์ฌ ํํ๋ฉ๋๋ค; ๋ฅผ ์ฐธ์กฐ.
๊ฒ์ฆ ์๋ฃ๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ์ ์ฉํ๋ ํ๋ก์ธ์ค์์ ์ฌ์ฉ๋๋ ๋ชจ๋
์ ๋ณด๋ฅผ ๋งํ๋ค. ๊ฒ์ฆ ๋ฐฉ๋ฒ์ type์ ํด๋น
ํ๋ก์ธ์ค์์ ํธํ์ฑ์ ๊ฒฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ ๊ฒ์ผ๋ก ์์๋๋ค. ๊ฒ์ฆ ์๋ฃ
์์ฑ์ ์๋ก๋ publicKeyJwk๋ publicKeyMultibase๊ฐ ์๋ค. ์ํธํ ์ค์ํธ ๊ท๊ฒฉ์ ๊ฒ์ฆ ๋ฐฉ๋ฒ์
type๊ณผ ๊ด๋ จ ๊ฒ์ฆ ์๋ฃ๋ฅผ ์ง์ ํ ์ฑ
์์ด ์๋ค. ์๋ฅผ ๋ค์ด,
JSON Web Signature 2020๊ณผ
Ed25519 Signature 2020์ ์ฐธ์กฐํ๋ผ. DID์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ๋ฑ๋ก๋
๊ฒ์ฆ ๋ฐฉ๋ฒ ์ ํ๊ณผ ๊ด๋ จ ๊ฒ์ฆ ์๋ฃ๋ DID ๊ท๊ฒฉ ๋ ์ง์คํธ๋ฆฌ
[[?DID-SPEC-REGISTRIES]]๋ฅผ ์ฐธ์กฐํ๋ผ.
์ํธ ์ด์ฉ ๊ฐ๋ฅํ ๊ตฌํ์ ๊ฐ๋ฅ์ฑ์ ๋์ด๊ธฐ ์ํด, ์ด ๊ท๊ฒฉ์ DID ๋ฌธ์์์ ๊ฒ์ฆ ์๋ฃ๋ฅผ ํํํ๊ธฐ ์ํ ํ์์ ์๋ฅผ ์ ํํ๋ค. ๊ตฌํ์๋ค์ด ๊ตฌํํด์ผ ํ ํ์์ด ์ ์์๋ก ๋ชจ๋ ํ์์ ์ง์ํ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ๊ตฌํ์ ์ฉ์ด์ฑ๊ณผ ์ญ์ฌ์ ์ผ๋ก ๋๋ฆฌ ๋ฐฐํฌ๋์ด ์จ ํ์์ ์ง์ํ๋ ๊ฒ ์ฌ์ด์์ ๋ฏธ๋ฌํ ๊ท ํ์ ๋ง์ถ๋ ค๊ณ ์๋ํ๋ค. ์ง์๋๋ ๋ ๊ฐ์ง ๊ฒ์ฆ ์๋ฃ ์์ฑ์ ๋ค์๊ณผ ๊ฐ๋ค:
publicKeyJwk ์์ฑ์ ์ ํ
์ฌํญ์ด๋ค. ์กด์ฌํ๋ ๊ฒฝ์ฐ, ๊ทธ ๊ฐ์ [[RFC7517]]์ ์ค์ํ๋ JSON Web
Key๋ฅผ ๋ํ๋ด๋ map์ด์ด์ผ
ํ๋ค. ์ด map์ "d"๋
๋ฑ๋ก ํ
ํ๋ฆฟ์ ์ค๋ช
๋ ๋น๊ณต๊ฐ ์ ๋ณด ํด๋์ค์ ๋ค๋ฅธ ๋ฉค๋ฒ๋ฅผ ํฌํจํด์๋ ์ ๋๋ค.
JWK [[RFC7517]]๋ฅผ ์ฌ์ฉํ์ฌ ๊ณต๊ฐ ํค๋ฅผ ํํํ๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ์
kid์ ๊ฐ์
ํ๋๊ทธ๋จผํธ ์๋ณ์๋ก ์ฌ์ฉํ๋ ๊ฒ์ด
๊ถ์ฅ๋๋ค. JWK kid ๊ฐ์ ๊ณต๊ฐ ํค ์ง๋ฌธ [[RFC7638]]์ผ๋ก
์ค์ ํ๋ ๊ฒ์ด ๊ถ์ฅ๋๋ค. ๋ณตํฉ ํค ์๋ณ์๋ฅผ ๊ฐ์ง ๊ณต๊ฐ ํค์ ์์๋
์ ์ฒซ
๋ฒ์งธ ํค๋ฅผ ์ฐธ์กฐํ๋ผ.
publicKeyMultibase ์์ฑ์ ์ ํ ์ฌํญ์ด๋ค. ์ด ๊ธฐ๋ฅ์
๋น๊ท๋ฒ์ ์ด๋ค. ์กด์ฌํ๋ ๊ฒฝ์ฐ, ๊ทธ ๊ฐ์ [[?MULTIBASE]]๋ก ์ธ์ฝ๋ฉ๋
๊ณต๊ฐ ํค์ ๋ฌธ์์ด ํํ์ด์ด์ผ
ํ๋ค.
[[?MULTIBASE]] ๊ท๊ฒฉ์ ์์ง ํ์ค์ด ์๋๋ฉฐ ๋ณ๊ฒฝ๋ ์ ์๋ค๋ ์ ์
์ ์ํ๋ผ. ๊ณต๊ฐ ํค๋ฅผ ํํํ ์ ์๋๋ก
publicKeyMultibase๊ฐ ์ ์๋์ง๋ง, ๋น๋ฐ ํค์
์ฐ๋ฐ์ ๋์ถ์ ๋ฐฉ์งํ๊ธฐ ์ํด
privateKeyMultibase๋ ์ ์๋์ง ์๋ ๊ฒฝ์ฐ์
๊ฐ์ด ์ด ๋ฐ์ดํฐ ํ์์ ๋ํ ์ผ๋ถ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์ ์ ์๋ค.
๊ฒ์ฆ ๋ฐฉ๋ฒ์ ๋์ผํ ์๋ฃ์ ๋ํด ์ฌ๋ฌ ๊ฒ์ฆ ์๋ฃ ์์ฑ์
ํฌํจํด์๋ ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ฒ์ฆ ๋ฐฉ๋ฒ์์
publicKeyJwk์ publicKeyMultibase๋ฅผ ๋์์
์ฌ์ฉํ์ฌ ํค ์๋ฃ๋ฅผ ํํํ๋ ๊ฒ์ ๊ธ์ง๋๋ค.
์์ ๋ ์์ฑ์ ๋ชจ๋ ์ฌ์ฉํ๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ํฌํจํ๋ DID ๋ฌธ์์ ์๋ ์๋์ ๊ฐ๋ค.
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/jws-2020/v1",
"https://w3id.org/security/suites/ed25519-2020/v1"
]
"id": "did:example:123456789abcdefghi",
...
"verificationMethod": [{
"id": "did:example:123#_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A",
"type": "JsonWebKey2020", // external (property value)
"controller": "did:example:123",
"publicKeyJwk": {
"crv": "Ed25519", // external (property name)
"x": "VCpo2LMLhn6iWku8MKvSLg2ZAoC-nlOyPVQaO3FxVeQ", // external (property name)
"kty": "OKP", // external (property name)
"kid": "_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A" // external (property name)
}
}, {
"id": "did:example:123456789abcdefghi#keys-1",
"type": "Ed25519VerificationKey2020", // external (property value)
"controller": "did:example:pqrstuvwxyz0987654321",
"publicKeyMultibase": "zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
}],
...
}
๊ฒ์ฆ ๋ฐฉ๋ฒ์ ์ ์ค๋ช ๋ ๋๋ก ๋ค์ํ ๊ฒ์ฆ ๊ด๊ณ์ ๊ด๋ จ๋ ์์ฑ์ ๋ด์ฅ๋๊ฑฐ๋ ์ฐธ์กฐ๋ ์ ์๋ค. ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ์ฐธ์กฐํ๋ฉด ๋ ์ด์์ ๊ฒ์ฆ ๊ด๊ณ์์ ์ฌ์ฉ๋ ์ ์๋ค.
๊ฒ์ฆ ๋ฐฉ๋ฒ ์์ฑ์ ๊ฐ์ด
map์ธ ๊ฒฝ์ฐ, ๊ฒ์ฆ ๋ฐฉ๋ฒ์
๋ด์ฅ๋ ๊ฒ์ด๋ฉฐ ํด๋น ์์ฑ์ ์ง์ ์ก์ธ์คํ ์ ์๋ค. ๊ทธ๋ฌ๋ ๊ฐ์ด URL
๋ฌธ์์ด์ธ ๊ฒฝ์ฐ, ๊ฒ์ฆ ๋ฐฉ๋ฒ์
์ฐธ์กฐ์ ์ํด ํฌํจ๋ ๊ฒ์ด๋ฉฐ ํด๋น ์์ฑ์ DID ๋ฌธ์์ ๋ค๋ฅธ ๊ณณ์ด๋
๋ค๋ฅธ DID ๋ฌธ์์์ ๊ฒ์๋์ด์ผ ํ๋ค. ์ด๋ URL์ ์ญ์ฐธ์กฐํ๊ณ ๊ฒฐ๊ณผ
๋ฆฌ์์ค์์ ๊ฐ์ด URL๊ณผ ์ผ์นํ๋ id ์์ฑ์ ๊ฐ์ง
๊ฒ์ฆ ๋ฐฉ๋ฒ map์ ๊ฒ์ํ์ฌ
์ํ๋๋ค.
{
...
"authentication": [
// this key is referenced and might be used by
// more than one verification relationship
"did:example:123456789abcdefghi#keys-1",
// this key is embedded and may *only* be used for authentication
{
"id": "did:example:123456789abcdefghi#keys-2",
"type": "Ed25519VerificationKey2020", // external (property value)
"controller": "did:example:123456789abcdefghi",
"publicKeyMultibase": "zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
}
],
...
}
๊ฒ์ฆ ๊ด๊ณ๋ DID ์ฃผ์ฒด์ ๊ฒ์ฆ ๋ฐฉ๋ฒ ์ฌ์ด์ ๊ด๊ณ๋ฅผ ํํํ๋ค.
์๋ก ๋ค๋ฅธ ๊ฒ์ฆ ๊ด๊ณ๋ ๊ด๋ จ๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ด ๋ค๋ฅธ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋ ์ ์๊ฒ ํ๋ค. ์ฌ์ฉ๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ด DID ๋ฌธ์์ ์ ์ ํ ๊ฒ์ฆ ๊ด๊ณ ์์ฑ์ ํฌํจ๋์ด ์๋์ง ํ์ธํจ์ผ๋ก์จ ๊ฒ์ฆ ์๋์ ์ ํจ์ฑ์ ํ์ธํ๋ ๊ฒ์ ๊ฒ์ฆ์์ ๋ชซ์ด๋ค.
DID ์ฃผ์ฒด์ ๊ฒ์ฆ ๋ฐฉ๋ฒ ์ฌ์ด์ ๊ฒ์ฆ ๊ด๊ณ๋
DID ๋ฌธ์์ ๋ช
์๋์ด ์๋ค. ํน์ ๊ฒ์ฆ ๊ด๊ณ์ ๊ด๋ จ๋์ง ์์
๊ฒ์ฆ ๋ฐฉ๋ฒ์ ํด๋น ๊ฒ์ฆ ๊ด๊ณ์ ์ฌ์ฉ๋ ์ ์๋ค. ์๋ฅผ ๋ค์ด,
authentication ์์ฑ์ ๊ฐ์ ์๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ์
DID ์ฃผ์ฒด์ ํค ๊ตํ ํ๋กํ ์ฝ์ ์ฐธ์ฌํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์๋ค. ์ด๋ฅผ
์ํด์๋ keyAgreement ์์ฑ์ ๊ฐ์ด ์ฌ์ฉ๋์ด์ผ ํ๋ค.
DID ๋ฌธ์๋ ๊ฒ์ฆ ๊ด๊ณ๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ธฐ๋ ํค๋ฅผ ํํํ์ง ์๋๋ค. ์ฐธ์กฐ๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ด ์ญ์ฐธ์กฐ์ ์ฌ์ฉ๋ ์ต์ DID ๋ฌธ์์ ์๋ ๊ฒฝ์ฐ, ํด๋น ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ์ ํจํ์ง ์๊ฑฐ๋ ํ๊ธฐ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ค. ๊ฐ DID ๋ฉ์๋ ๊ท๊ฒฉ์ ํ๊ธฐ๊ฐ ์ด๋ป๊ฒ ์ํ๋๊ณ ์ถ์ ๋๋์ง ์์ธํ ์ค๋ช ํด์ผ ํ๋ค.
๋ค์ ์น์ ์์๋ ๋ช ๊ฐ์ง ์ ์ฉํ ๊ฒ์ฆ ๊ด๊ณ๋ฅผ ์ ์ํ๋ค. DID ๋ฌธ์๋ ํน์ ๊ฒ์ฆ ๊ด๊ณ๋ฅผ ํํํ๊ธฐ ์ํด ์ด๋ค ์ค ์ด๋ ๊ฒ์ด๋ ๋๋ ๋ค๋ฅธ ์์ฑ๋ค์ ํฌํจํ ์ ์๋ค. ์ ์ธ๊ณ์ ์ธ ์ํธ ์ด์ฉ์ฑ์ ๊ทน๋ํํ๊ธฐ ์ํด, ์ฌ์ฉ๋๋ ๊ทธ๋ฌํ ๋ชจ๋ ์์ฑ์ DID ๊ท๊ฒฉ ๋ ์ง์คํธ๋ฆฌ [[?DID-SPEC-REGISTRIES]]์ ๋ฑ๋ก๋์ด์ผ ํ๋ค.
authentication ๊ฒ์ฆ ๊ด๊ณ๋ ์น์ฌ์ดํธ ๋ก๊ทธ์ธ์ด๋
๋ชจ๋ ์ข
๋ฅ์ ์ฑ๋ฆฐ์ง-์๋ต ํ๋กํ ์ฝ ์ฐธ์ฌ์ ๊ฐ์ ๋ชฉ์ ์ผ๋ก
DID ์ฃผ์ฒด๊ฐ ์ด๋ป๊ฒ ์ธ์ฆ๋ ๊ฒ์ผ๋ก ์์๋๋์ง ๋ช
์ํ๋ ๋ฐ
์ฌ์ฉ๋๋ค.
authentication ์์ฑ์ ์ ํ ์ฌํญ์ด๋ค. ์กด์ฌํ๋ ๊ฒฝ์ฐ,
๊ด๋ จ๋ ๊ฐ์ ํ๋ ์ด์์ ๊ฒ์ฆ ๋ฐฉ๋ฒ์
set์ด์ด์ผ ํ๋ค. ๊ฐ
๊ฒ์ฆ ๋ฐฉ๋ฒ์ ๋ด์ฅ๋๊ฑฐ๋ ์ฐธ์กฐ๋ ์ ์๋ค.
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/ed25519-2020/v1"
],
"id": "did:example:123456789abcdefghi",
...
"authentication": [
// this method can be used to authenticate as did:...fghi
"did:example:123456789abcdefghi#keys-1",
// this method is *only* approved for authentication, it may not
// be used for any other proof purpose, so its full description is
// embedded here rather than using only a reference
{
"id": "did:example:123456789abcdefghi#keys-2",
"type": "Ed25519VerificationKey2020",
"controller": "did:example:123456789abcdefghi",
"publicKeyMultibase": "zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
}
],
...
}
์ธ์ฆ์ด ํ๋ฆฝ๋๋ฉด, ํด๋น ์ ๋ณด๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊ฒ์ธ์ง๋ DID ๋ฉ์๋ ๋๋ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌ๋ ค ์๋ค. ํน์ DID ๋ฉ์๋๋ DID ์ปจํธ๋กค๋ฌ๋ก ์ธ์ฆํ๋ ๊ฒ์ด ์๋ฅผ ๋ค์ด DID ๋ฌธ์๋ฅผ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ์ญ์ ํ๊ธฐ์ ์ถฉ๋ถํ๋ค๊ณ ๊ฒฐ์ ํ ์ ์๋ค. ๋ค๋ฅธ DID ๋ฉ์๋๋ DID ๋ฌธ์๋ฅผ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ์ญ์ ํ๊ธฐ ์ํด ์ธ์ฆ์ ์ฌ์ฉ๋ ๊ฒ๊ณผ๋ ๋ค๋ฅธ ํค ๋๋ ์์ ํ ๋ค๋ฅธ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ด ์ ์๋์ด์ผ ํ ์ ์๋ค. ์ฆ, ์ธ์ฆ ํ์ธ ์ดํ์ ์ํ๋๋ ์์ ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ค; DID ๋ฉ์๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ฅผ ์ค์ค๋ก ์ ์ํด์ผ ํ๋ค.
์ด๋ ์ธ์ฆ์ ์๋ํ๋ ์ํฐํฐ๊ฐ ์ค์ ๋ก ์ ํจํ ์ธ์ฆ ์ฆ๋ช
์
์ ์ํ๊ณ ์๋์ง ํ์ธํ ํ์๊ฐ ์๋ ๋ชจ๋ ์ธ์ฆ ๊ฒ์ฆ์์๊ฒ
์ ์ฉํ๋ค. ๊ฒ์ฆ์๊ฐ "์ธ์ฆ"์ ๋ชฉ์ ์ผ๋ก ๋ง๋ค์ด์ง ์ฆ๋ช
์
ํฌํจํ๊ณ ์ํฐํฐ๊ฐ DID์ ์ํด ์๋ณ๋๋ค๊ณ ๋งํ๋ (์ผ๋ถ
ํ๋กํ ์ฝ๋ณ ํ์์) ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ฉด, ํด๋น ๊ฒ์ฆ์๋
DID ๋ฌธ์์ authentication ์๋์ ๋์ด๋
๊ฒ์ฆ ๋ฐฉ๋ฒ(์: ๊ณต๊ฐ ํค)์ ์ฌ์ฉํ์ฌ ์ฆ๋ช
์ ๊ฒ์ฆํ ์ ์๋์ง
ํ์ธํ๋ค.
DID ๋ฌธ์์ authentication ์์ฑ์ ์ํด
ํ์๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ DID ์ฃผ์ฒด๋ฅผ ์ธ์ฆํ๋ ๋ฐ๋ง
์ฌ์ฉ๋ ์ ์์์ ์ ์ํ๋ผ. ๋ค๋ฅธ DID ์ปจํธ๋กค๋ฌ๋ฅผ
์ธ์ฆํ๋ ค๋ฉด ์ ์ ์๋ ๋๋ก
controller ๊ฐ๊ณผ ๊ด๋ จ๋ ์ํฐํฐ๊ฐ ์์ ์
DID ๋ฌธ์ ๋ฐ ๊ด๋ จ authentication
๊ฒ์ฆ ๊ด๊ณ๋ก ์ธ์ฆํด์ผ ํ๋ค.
assertionMethod ๊ฒ์ฆ ๊ด๊ณ๋ ๊ฒ์ฆ ๊ฐ๋ฅํ ํฌ๋ฆฌ๋ด์
[[?VC-DATA-MODEL]]์ ๋ฐํํ๋ ๋ชฉ์ ๊ณผ ๊ฐ์ด DID ์ฃผ์ฒด๊ฐ ์ด๋ป๊ฒ
ํด๋ ์์ ํํํ ๊ฒ์ผ๋ก ์์๋๋์ง ๋ช
์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
assertionMethod ์์ฑ์ ์ ํ ์ฌํญ์ด๋ค. ์กด์ฌํ๋ ๊ฒฝ์ฐ,
๊ด๋ จ๋ ๊ฐ์ ํ๋ ์ด์์ ๊ฒ์ฆ ๋ฐฉ๋ฒ์
set์ด์ด์ผ ํ๋ค. ๊ฐ
๊ฒ์ฆ ๋ฐฉ๋ฒ์ ๋ด์ฅ๋๊ฑฐ๋ ์ฐธ์กฐ๋ ์ ์๋ค.
์ด ์์ฑ์ ์๋ฅผ ๋ค์ด, ๊ฒ์ฆ์๊ฐ ๊ฒ์ฆ ๊ฐ๋ฅํ ํฌ๋ฆฌ๋ด์
์ ์ฒ๋ฆฌํ๋
๋์ ์ ์ฉํ๋ค. ๊ฒ์ฆ ์ค์ ๊ฒ์ฆ์๋ ๊ฒ์ฆ ๊ฐ๋ฅํ ํฌ๋ฆฌ๋ด์
์
์ฆ๋ช
์ ์ด์ค์
ํ๋ ๋ฐ ์ฌ์ฉ๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ด ํด๋น
DID ๋ฌธ์์ assertionMethod ์์ฑ๊ณผ
์ฐ๊ฒฐ๋์ด ์๋์ง ํ์ธํจ์ผ๋ก์จ DID ์ฃผ์ฒด๊ฐ ์์ฑํ ์ฆ๋ช
์ด
ํฌํจ๋์ด ์๋์ง ํ์ธํ๋ค.
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/ed25519-2020/v1"
],
"id": "did:example:123456789abcdefghi",
...
"assertionMethod": [
// this method can be used to assert statements as did:...fghi
"did:example:123456789abcdefghi#keys-1",
// this method is *only* approved for assertion of statements, it is not
// used for any other verification relationship, so its full description is
// embedded here rather than using a reference
{
"id": "did:example:123456789abcdefghi#keys-2",
"type": "Ed25519VerificationKey2020", // external (property value)
"controller": "did:example:123456789abcdefghi",
"publicKeyMultibase": "zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
}
],
...
}
keyAgreement ๊ฒ์ฆ ๊ด๊ณ๋ ์์ ์์ ์์ ํ ํต์
์ฑ๋์ ์ค์ ํ๊ธฐ ์ํ ๋ชฉ์ ๊ณผ ๊ฐ์ด DID ์ฃผ์ฒด์๊ฒ ์ ๋ฌ๋๋ ๊ธฐ๋ฐ
์ ๋ณด๋ฅผ ์ ์กํ๊ธฐ ์ํด ์ํฐํฐ๊ฐ ์ํธํ ์๋ฃ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์ง์ ํ๋
๋ฐ ์ฌ์ฉ๋๋ค.
keyAgreement ์์ฑ์ ์ ํ ์ฌํญ์ด๋ค. ์กด์ฌํ๋ ๊ฒฝ์ฐ,
๊ด๋ จ๋ ๊ฐ์ ํ๋ ์ด์์ ๊ฒ์ฆ ๋ฐฉ๋ฒ์
set์ด์ด์ผ ํ๋ค. ๊ฐ
๊ฒ์ฆ ๋ฐฉ๋ฒ์ ๋ด์ฅ๋๊ฑฐ๋ ์ฐธ์กฐ๋ ์ ์๋ค.
์ด ์์ฑ์ด ์ ์ฉํ ์๋ DID ์ฃผ์ฒด์๊ฒ ์ ๋ฌํ๋ ค๋ ๋ฉ์์ง๋ฅผ ์ํธํํ ๋์ด๋ค. ์ด ๊ฒฝ์ฐ, ์๋๋ฐฉ์ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ์ํธํ ๊ณต๊ฐ ํค ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์๋ฅผ ์ํ ๋ณตํธํ ํค๋ฅผ ๋ํํ๋ค.
{
"@context": "https://www.w3.org/ns/did/v1",
"id": "did:example:123456789abcdefghi",
...
"keyAgreement": [
// this method can be used to perform key agreement as did:...fghi
"did:example:123456789abcdefghi#keys-1",
// this method is *only* approved for key agreement usage, it will not
// be used for any other verification relationship, so its full description is
// embedded here rather than using only a reference
{
"id": "did:example:123#zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS",
"type": "X25519KeyAgreementKey2019", // external (property value)
"controller": "did:example:123",
"publicKeyMultibase": "z9hFgmPVfmBZwRvFEyniQDBkz9LmV7gDEqytWyGZLmDXE"
}
],
...
}
capabilityInvocation ๊ฒ์ฆ ๊ด๊ณ๋
DID ๋ฌธ์๋ฅผ ์
๋ฐ์ดํธํ ๊ถํ๊ณผ ๊ฐ์ ์ํธํ ๊ธฐ๋ฅ์ ํธ์ถํ๊ธฐ ์ํด
DID ์ฃผ์ฒด๊ฐ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ์ง์ ํ๋ ๋ฐ
์ฌ์ฉ๋๋ค.
capabilityInvocation ์์ฑ์ ์ ํ ์ฌํญ์ด๋ค. ์กด์ฌํ๋
๊ฒฝ์ฐ, ๊ด๋ จ๋ ๊ฐ์ ํ๋ ์ด์์ ๊ฒ์ฆ ๋ฐฉ๋ฒ์
set์ด์ด์ผ ํ๋ค. ๊ฐ
๊ฒ์ฆ ๋ฐฉ๋ฒ์ ๋ด์ฅ๋๊ฑฐ๋ ์ฐธ์กฐ๋ ์ ์๋ค.
์ด ์์ฑ์ด ์ ์ฉํ ์๋ DID ์ฃผ์ฒด๊ฐ ์ฌ์ฉํ๊ธฐ ์ํด ์ธ์ฆ์ด ํ์ํ ๋ณดํธ๋ HTTP API์ ์ก์ธ์คํด์ผ ํ ๋์ด๋ค. HTTP API๋ฅผ ์ฌ์ฉํ ๋ ์ธ์ฆํ๊ธฐ ์ํด, DID ์ฃผ์ฒด๋ HTTP API๋ฅผ ํตํด ๋ ธ์ถ๋๋ ํน์ URL๊ณผ ์ฐ๊ฒฐ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ค. ๊ธฐ๋ฅ์ ํธ์ถ์ ์๋ฅผ ๋ค์ด HTTP ํค๋์ ๋ฐฐ์น๋๋ ๋์งํธ ์๋ช ๋ ๋ฉ์์ง์ ๊ฐ์ด ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ํํ๋ ์ ์๋ค.
HTTP API๋ฅผ ์ ๊ณตํ๋ ์๋ฒ๋ ๊ธฐ๋ฅ์ ๊ฒ์ฆ์์ด๋ฉฐ, ํธ์ถ๋
๊ธฐ๋ฅ์์ ์ฐธ์กฐํ๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ด DID ๋ฌธ์์
capabilityInvocation ์์ฑ์ ์กด์ฌํ๋์ง ๊ฒ์ฆํด์ผ
ํ๋ค. ๊ฒ์ฆ์๋ ๋ํ ์ํ๋๋ ์์
์ด ์ ํจํ๊ณ ๊ธฐ๋ฅ์ด ์ก์ธ์ค๋๋
๋ฆฌ์์ค์ ์ ์ ํ์ง ํ์ธํ๋ค. ๊ฒ์ฆ์ด ์ฑ๊ณตํ๋ฉด, ์๋ฒ๋ ํธ์ถ์๊ฐ ๋ณดํธ๋
๋ฆฌ์์ค์ ์ก์ธ์คํ ๊ถํ์ด ์์์ ์ํธํ์ ์ผ๋ก ๊ฒฐ์ ํ๋ค.
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/ed25519-2020/v1"
],
"id": "did:example:123456789abcdefghi",
...
"capabilityInvocation": [
// this method can be used to invoke capabilities as did:...fghi
"did:example:123456789abcdefghi#keys-1",
// this method is *only* approved for capability invocation usage, it will not
// be used for any other verification relationship, so its full description is
// embedded here rather than using only a reference
{
"id": "did:example:123456789abcdefghi#keys-2",
"type": "Ed25519VerificationKey2020", // external (property value)
"controller": "did:example:123456789abcdefghi",
"publicKeyMultibase": "zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
}
],
...
}
capabilityDelegation ๊ฒ์ฆ ๊ด๊ณ๋
DID ์ฃผ์ฒด๊ฐ ํน์ HTTP API์ ๋ํ ์ก์ธ์ค ๊ถํ์ ํ์ ์ฃผ์ฒด์
์์ํ๋ ๊ฒ๊ณผ ๊ฐ์ด ์ํธํ ๊ธฐ๋ฅ์ ๋ค๋ฅธ ๋น์ฌ์์๊ฒ ์์ํ๋ ๋ฐ ์ฌ์ฉํ
์ ์๋ ๋ฉ์ปค๋์ฆ์ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
capabilityDelegation ์์ฑ์ ์ ํ ์ฌํญ์ด๋ค. ์กด์ฌํ๋
๊ฒฝ์ฐ, ๊ด๋ จ๋ ๊ฐ์ ํ๋ ์ด์์ ๊ฒ์ฆ ๋ฐฉ๋ฒ์
set์ด์ด์ผ ํ๋ค. ๊ฐ
๊ฒ์ฆ ๋ฐฉ๋ฒ์ ๋ด์ฅ๋๊ฑฐ๋ ์ฐธ์กฐ๋ ์ ์๋ค.
์ด ์์ฑ์ด ์ ์ฉํ ์๋ DID ์ปจํธ๋กค๋ฌ๊ฐ ๋ณดํธ๋ HTTP API์
์ก์ธ์คํ ์ ์๋ ์์ ์ ๋ฅ๋ ฅ์ ์์ ์ด์ธ์ ๋น์ฌ์์๊ฒ ์์ํ๊ธฐ๋ก
์ ํํ ๋์ด๋ค. ๋ฅ๋ ฅ์ ์์ํ๊ธฐ ์ํด, DID ์ฃผ์ฒด๋
capabilityDelegation ๊ฒ์ฆ ๊ด๊ณ์ ์ฐ๊ฒฐ๋
๊ฒ์ฆ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ DID ์ฃผ์ฒด์๊ฒ ๋ฅ๋ ฅ์
์ํธํ์ ์ผ๋ก ์๋ช
ํ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ฉด ๋๋ฆฌ์ธ์
์ ์ค๋ช
๋ ์์ ์ ์ฌํ ๋ฐฉ์์ผ๋ก
๊ทธ ๋ฅ๋ ฅ์ ์ฌ์ฉํ ๊ฒ์ด๋ค.
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/ed25519-2020/v1"
],
"id": "did:example:123456789abcdefghi",
...
"capabilityDelegation": [
// this method can be used to perform capability delegation as did:...fghi
"did:example:123456789abcdefghi#keys-1",
// this method is *only* approved for granting capabilities; it will not
// be used for any other verification relationship, so its full description is
// embedded here rather than using only a reference
{
"id": "did:example:123456789abcdefghi#keys-2",
"type": "Ed25519VerificationKey2020", // external (property value)
"controller": "did:example:123456789abcdefghi",
"publicKeyMultibase": "zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
}
],
...
}
์๋น์ค๋ DID ๋ฌธ์์์ DID ์ฃผ์ฒด ๋๋ ๊ด๋ จ ์ํฐํฐ์ ํต์ ํ๋ ๋ฐฉ๋ฒ์ ํํํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์๋น์ค๋ DID ์ฃผ์ฒด๊ฐ ์ถ๊ฐ ํ์, ์ธ์ฆ, ๊ถํ ๋ถ์ฌ ๋๋ ์ํธ ์์ฉ์ ์ํ ํ์ค์ ์ ์ ๊ด๋ฆฌ ์๋น์ค๋ฅผ ํฌํจํ์ฌ ๊ด๊ณ ํ๊ณ ์ ํ๋ ๋ชจ๋ ์ ํ์ ์๋น์ค์ผ ์ ์๋ค.
๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๋ฌธ์ ๋ก ์ธํด, ์์ ๋ฏธ๋์ด ๊ณ์ , ๊ฐ์ธ ์น์ฌ์ดํธ, ์ด๋ฉ์ผ ์ฃผ์์ ๊ฐ์ ์๋น์ค๋ฅผ ํตํด ๊ณต๊ฐ ์ ๋ณด๋ฅผ ๊ณต๊ฐํ๋ ๊ฒ์ ๊ถ์ฅ๋์ง ์๋๋ค. ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๋ฌธ์ ์ ๋ํ ์ถ๊ฐ ํ์์ ์ ์์ ์ฐพ์ ์ ์๋ค. ์๋น์ค์ ๊ด๋ จ๋ ์ ๋ณด๋ ์ข ์ข ์๋น์ค์ ํนํ๋์ด ์๋ค. ์๋ฅผ ๋ค์ด, ์ํธํ๋ ๋ฉ์์ง ์๋น์ค์ ๊ด๋ จ๋ ์ ๋ณด๋ ๋ฉ์์ง์ด ์์๋๊ธฐ ์ ์ ์ํธํ๋ ๋งํฌ๋ฅผ ์์ํ๋ ๋ฐฉ๋ฒ์ ํํํ ์ ์๋ค.
์๋น์ค๋ ์๋์ ์ค๋ช
๋ service ์์ฑ์
์ฌ์ฉํ์ฌ ํํ๋๋ค:
service ์์ฑ์ ์ ํ ์ฌํญ์ด๋ค. ์กด์ฌํ๋ ๊ฒฝ์ฐ, ๊ด๋ จ๋
๊ฐ์ ๊ฐ ์๋น์ค๊ฐ map์ผ๋ก
์ค๋ช
๋๋ ์๋น์ค์
set์ด์ด์ผ ํ๋ค. ๊ฐ
์๋น์ค map์
id, type, serviceEndpoint ์์ฑ์
ํฌํจํด์ผ ํ๋ค. ๊ฐ ์๋น์ค ํ์ฅ์ ์ถ๊ฐ ์์ฑ์ ํฌํจํ ์ ์์ผ๋ฉฐ
ํ์ฅ๊ณผ ๊ด๋ จ๋ ์์ฑ์ ๋ ์ ํํ ์ ์๋ค.
id ์์ฑ์ ๊ฐ์ [[RFC3986]]์ ์ค์ํ๋
URI์ฌ์ผ ํ๋ค. ๊ท๋ฒ์ ๋ถํฉํ๋ ์์ฐ์๋ ๋์ผํ
id๋ฅผ ๊ฐ์ง ์ฌ๋ฌ ๊ฐ์ service ํญ๋ชฉ์
์์ฑํด์๋ ์ ๋๋ค. ๊ท๋ฒ์ ๋ถํฉํ๋ ์๋น์๋ ๋์ผํ
id๋ฅผ ๊ฐ์ง ์ฌ๋ฌ ๊ฐ์ service ํญ๋ชฉ์ด
๊ฐ์ง๋๋ฉด ์ค๋ฅ๋ฅผ ์์ฑํด์ผ ํ๋ค.
type ์์ฑ์ ๊ฐ์
๋ฌธ์์ด ๋๋
๋ฌธ์์ด์
set์ด์ด์ผ ํ๋ค. ์ํธ
์ด์ฉ์ฑ์ ์ต๋ํํ๊ธฐ ์ํด service ์ ํ๊ณผ ๊ด๋ จ ์์ฑ์ DID
๊ท๊ฒฉ ๋ ์ง์คํธ๋ฆฌ [[?DID-SPEC-REGISTRIES]]์ ๋ฑ๋ก๋์ด์ผ ํ๋ค.
serviceEndpoint ์์ฑ์ ๊ฐ์
๋ฌธ์์ด,
map, ๋๋ ํ๋ ์ด์์
๋ฌธ์์ด ๋ฐ/๋๋
map์ผ๋ก ๊ตฌ์ฑ๋
set์ด์ด์ผ ํ๋ค. ๋ชจ๋
๋ฌธ์์ด ๊ฐ์ [[RFC3986]]์
์ค์ํ๋ ์ ํจํ URI์ฌ์ผ ํ๋ฉฐ
RFC3986์ ์ ๊ทํ ๋ฐ ๋น๊ต ๊ท์น๊ณผ ํด๋น URI ์ฒด๊ณ ๊ท๊ฒฉ์ ๋ชจ๋ ์ ๊ทํ ๊ท์น์ ๋ฐ๋ผ
์ ๊ทํ๋์ด์ผ ํ๋ค.
For more information regarding privacy and security considerations related to services see , , , and .
{
"service": [{
"id":"did:example:123#linked-domain",
"type": "LinkedDomains", // external (property value)
"serviceEndpoint": "https://bar.example.com"
}]
}
์ด ๊ท๊ฒฉ์์ DID ๋ฌธ์์ ๊ตฌ์ฒด์ ์ธ ์ง๋ ฌํ๋ฅผ ํํ์ด๋ผ๊ณ ํ๋ค. ํํ์ ์์ฐ์ด๋ผ๊ณ ํ๋ ํ๋ก์ธ์ค๋ฅผ ํตํด ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ง๋ ฌํํ์ฌ ์์ฑ๋๋ค. ํํ์ ์๋น๋ผ๊ณ ํ๋ ํ๋ก์ธ์ค๋ฅผ ํตํด ๋ฐ์ดํฐ ๋ชจ๋ธ๋ก ๋ณํ๋๋ค. ์์ฐ ๋ฐ ์๋น ํ๋ก์ธ์ค๋ฅผ ํตํด ์ ๋ณด๋ฅผ ํ ํํ์์ ๋ค๋ฅธ ํํ์ผ๋ก ๋ณํํ ์ ์๋ค. ์ด ๊ท๊ฒฉ์ JSON๊ณผ JSON-LD์ ๋ํ ํํ์ ์ ์ํ๋ฉฐ, ๊ฐ๋ฐ์๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ํํํ ์ ์๋ XML์ด๋ YAML๊ณผ ๊ฐ์ ๋ค๋ฅธ ํํ์ ์ฌ์ฉํ ์ ์๋ค. ๋ค์ ์น์ ์์๋ JSON ๋ฐ JSON-LD ํํ๋ฟ๋ง ์๋๋ผ ์์ฐ ๋ฐ ์๋น์ ๋ํ ์ผ๋ฐ์ ์ธ ๊ท์น์ ์ ์ํ๋ค.
์ด ๊ท๊ฒฉ์ ์ ์๋ ํํ ์ธ์๋, ๊ตฌํ์๋ ๊ฐ ํํ์ด ์ ์ ํ๊ฒ ์ง์ ๋์ด ์๋ ๊ฒฝ์ฐ(DID ๊ท๊ฒฉ ๋ ์ง์คํธ๋ฆฌ [[?DID-SPEC-REGISTRIES]]์ ๋์ด๋์ง ์์ ์์ฑ์ ์ํธ ์ด์ฉ ๊ฐ๋ฅํ ์ฒ๋ฆฌ๋ฅผ ์ํ ๊ท์น ํฌํจ) ๋ค๋ฅธ ํํ์ ์ฌ์ฉํ ์ ์๋ค. ์์ธํ ๋ด์ฉ์ ๋ฅผ ์ฐธ์กฐํ๋ผ.
๋ชจ๋ ํํ์ ๋ํ ์๊ตฌ์ฌํญ์ ๋ค์๊ณผ ๊ฐ๋ค:
dateTime ์ดํ ์ง๋ ฌํ๋ฅผ ์ฌ์ฉํ๋ค. ํํ์
๋ฐ์ดํฐ ๋ชจ๋ธ๋ก ๋ค์ ์๋นํ๋
๊ณผ์ ์์ ์์ค์ด ์๋ ํ ๋ค๋ฅธ ์ดํ ์ง๋ ฌํ๋ฅผ ์ฌ์ฉํ์ฌ
๋ฐ์ดํฐ ๋ชจ๋ธ ๋ฐ์ดํฐ ์ ํ์ ์ง๋ ฌํํ๋๋ก
์ ํํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ์ผ๋ถ CBOR ๊ธฐ๋ฐ ํํ์ Unix ์๋
์ดํ์ ์ด ์๋ฅผ ๋ํ๋ด๋ ์ ์๋ฅผ ์ฌ์ฉํ์ฌ datetime ๊ฐ์
ํํํ๋ค.
๋ชจ๋ ๊ท๋ฒ์ ๋ถํฉํ๋ ์์ฐ์์ ๋ํ ์๊ตฌ์ฌํญ์ ๋ค์๊ณผ ๊ฐ๋ค:
๋ชจ๋ ๊ท๋ฒ์ ๋ถํฉํ๋ ์๋น์์ ๋ํ ์๊ตฌ์ฌํญ์ ๋ค์๊ณผ ๊ฐ๋ค:
The upper left quadrant of the diagram contains a rectangle with dashed grey outline, containing two blue-outlined rectangles, one above the other. The upper, larger rectangle is labeled, in blue, "Core Properties", and contains the following INFRA notation:
ยซ[
"id" โ "example:123",
"verificationMethod" โ ยซ ยซ[
"id": "did:example:123#keys-1",
"controller": "did:example:123",
"type": "Ed25519VerificationKey2018",
"publicKeyBase58": "H3C2AVvLMv6gmMNam3uVA"
]ยป ยป,
"authentication" โ ยซ
"did:example:123#keys-1"
ยป
]ยป
The lower, smaller rectangle is labeled, in blue, "Core
Representation-specific Entries (JSON-LD)", and contains the following
monospaced INFRA notation:
ยซ[ "@context" โ "https://www.w3.org/ns/did/v1" ]ยป
From the grey-outlined rectangle, three pairs of arrows extend to three different black-outlined rectangles, one on the upper right of the diagram, one in the lower right, and one in the lower left. Each pair of arrows consists of one blue arrow pointing from the grey-outlined rectangle to the respective black-outlined rectangle, labeled "produce", and one red arrow pointing in the reverse direction, labeled "consume". The black-outlined rectangle in the upper right is labeled "application/did+cbor", and contains hexadecimal data. The rectangle in the lower right is labeled "application/did+json", and contains the following JSON data:
{
"id": "did:example:123",
"verificationMethod": [{
"id": "did:example:123#keys-1",
"controller": "did:example:123",
"type": "Ed25519VerificationKey2018",
"publicKeyBase58": "H3C2AVvLMv6gmMNam3uVA"
}],
"authentication": [
"did:example:123#keys-1"
]
}
The rectangle in the lower left is labeled "application/did+ld+json", and contains the following JSON-LD data:
{
"@context": ["https://www.w3.org/ns/did/v1"],
"id": "did:example:123",
"verificationMethod": [{
"id": "did:example:123#keys-1",
"controller": "did:example:123",
"type": "Ed25519VerificationKey2018",
"publicKeyBase58": "H3C2AVvLMv6gmMNam3uVA"
}],
"authentication": [
"did:example:123#keys-1"
]
}
An implementation is expected to convert between representations by using the consumption rules on the source representation resulting in the data model and then using the production rules to serialize data model to the target representation, or any other mechanism that results in the same target representation.
์ด ์น์ ์์๋ JSON ํํ์ ๋ํ ์์ฐ ๋ฐ ์๋น ๊ท์น์ ์ ์ํ๋ค.
DID ๋ฌธ์, DID ๋ฌธ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ฐ representation-specific entries map์ ๋ค์ ์์ฐ ๊ท์น์ ๋ฐ๋ผ JSON ํํ์ผ๋ก ์ง๋ ฌํ๋์ด์ผ ํ๋ค:
| ๋ฐ์ดํฐ ์ ํ | JSON ํํ ์ ํ |
|---|---|
| map | ๊ฐ ํญ๋ชฉ์ด JSON ๊ฐ์ฒด์ ๋ฉค๋ฒ๋ก ์ง๋ ฌํ๋๋ฉฐ, ํญ๋ชฉ ํค๋ JSON ๋ฌธ์์ด ๋ฉค๋ฒ ์ด๋ฆ์ผ๋ก, ํญ๋ชฉ ๊ฐ์ ์ด ํ์ ์ ์๋ ๋๋ก ํด๋น ์ ํ์ ๋ฐ๋ผ ์ง๋ ฌํ๋๋ JSON ๊ฐ์ฒด. |
| list | ๋ชฉ๋ก์ ๊ฐ ์์๊ฐ ์์๋๋ก ์ด ํ์ ์ ์๋ ๋๋ก ํด๋น ์ ํ์ ๋ฐ๋ผ ๋ฐฐ์ด์ ๊ฐ์ผ๋ก ์ง๋ ฌํ๋๋ JSON ๋ฐฐ์ด. |
| set | ์งํฉ์ ๊ฐ ์์๊ฐ ์์๋๋ก ์ด ํ์ ์ ์๋ ๋๋ก ํด๋น ์ ํ์ ๋ฐ๋ผ ๋ฐฐ์ด์ ๊ฐ์ผ๋ก ์ถ๊ฐ๋๋ JSON ๋ฐฐ์ด. |
| datetime |
UTC 00:00:00์ผ๋ก ์ ๊ทํ๋๊ณ ์ด ๋ฏธ๋ง์ ์์ ์๋ฆฟ์ ์ ๋ฐ๋ ์์ด
XML Datetime์ผ๋ก
์ง๋ ฌํ๋ JSON ๋ฌธ์์ด. ์:
2020-12-20T19:17:47Z.
|
| string | JSON ๋ฌธ์์ด. |
| integer | ์์ ๋๋ ๋ถ์ ์ฑ๋ถ์ด ์๋ JSON ์ซ์. |
| double | ์์์ ๋ถ์ ์ฑ๋ถ์ด ์๋ JSON ์ซ์. |
| boolean | JSON ๋ถ๋ฆฌ์ธ. |
| Null | JSON null ๋ฆฌํฐ๋ด. |
JSON ํํ์ ์์ฑํ๋ ๊ท๋ฒ์ ๋ถํฉํ๋ ์์ฐ์๋ฅผ ๋ง๋๋ ๋ชจ๋ ๊ตฌํ์๋ ์์ ์ ์๊ณ ๋ฆฌ์ฆ์ด [[INFRA]] ๊ท๊ฒฉ์ JSON ์ง๋ ฌํ ๊ท์น๊ณผ JSON [[RFC8259]] ๊ท๊ฒฉ์ ์ซ์์ ๋ํ ์ ๋ฐ๋ ๊ถ๊ณ ์ฌํญ์ ๋ง์ถฐ์ ธ ์๋์ง ํ์ธํ๋ ๊ฒ์ด ์ข๋ค.
DID ๋ฌธ์์ ๋ชจ๋ ํญ๋ชฉ์ ๋ฃจํธ
JSON ๊ฐ์ฒด์ ํฌํจ๋์ด์ผ ํ๋ค.
ํญ๋ชฉ์ ์ ๋ชฉ๋ก์ ๊ฐ ํํ ๊ท์น์ ๋ฐ๋ผ ์ถ๊ฐ ๋ฐ์ดํฐ ํ์ ๊ตฌ์กฐ๋ฅผ ํฌํจํ
์ ์๋ค. DID ๋ฌธ์๋ฅผ ์ง๋ ฌํํ ๋,
๊ท๋ฒ์ ๋ถํฉํ๋ ์์ฐ์๋
์ ์ค๋ช
๋ ๊ฒ๊ณผ ๊ฐ์ด ํ์
์ ํ๋ฆฌ์ผ์ด์
์ application/did+json์ ๋ฏธ๋์ด ์ ํ์
์ง์ ํด์ผ ํ๋ค.
{
"id": "did:example:123456789abcdefghi",
"authentication": [{
"id": "did:example:123456789abcdefghi#keys-1",
"type": "Ed25519VerificationKey2018",
"controller": "did:example:123456789abcdefghi",
"publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
}]
}
DID ๋ฌธ์์ DID ๋ฌธ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ JSON ํํ์ ๋ค์๊ณผ ๊ฐ์ ์๋น ๊ท์น์ ๋ฐ๋ผ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ก ์ญ์ง๋ ฌํ๋์ด์ผ ํ๋ค:
| JSON Representation Type | Data Type |
|---|---|
| JSON Object | map์ด๋ฉฐ, JSON ๊ฐ์ฒด์ ๊ฐ ๋ฉค๋ฒ๋ map์ ํญ๋ชฉ์ผ๋ก ์ถ๊ฐ๋๋ค. ๊ฐ ํญ๋ชฉ ํค๋ JSON ๊ฐ์ฒด ๋ฉค๋ฒ ์ด๋ฆ์ผ๋ก ์ค์ ๋๋ค. ๊ฐ ํญ๋ชฉ ๊ฐ์ ์ด ํ์ ์ ์๋ JSON ํํ ํ์ ์ ๋ฐ๋ผ JSON ๊ฐ์ฒด ๋ฉค๋ฒ ๊ฐ์ ๋ณํํ์ฌ ์ค์ ๋๋ค. JSON ๊ฐ์ฒด์์ ์์๊ฐ ์ง์ ๋์ง ์์ผ๋ฏ๋ก, ์ฝ์ ์์๊ฐ ๋ณด์ฅ๋์ง ์๋๋ค. |
| JSON ๋ฐฐ์ด์ด๋ฉฐ, ๋ฐ์ดํฐ ๋ชจ๋ธ ํญ๋ชฉ ๊ฐ์ด ๋ฆฌ์คํธ ๋๋ ๋ฏธ์ ์ธ ๊ฒฝ์ฐ์ ํด๋นํ๋ค. | list์ด๋ฉฐ, JSON ๋ฐฐ์ด์ ๊ฐ ๊ฐ์ ์์์ ๋ฐ๋ผ ๋ฆฌ์คํธ์ ์ถ๊ฐ๋๋ค. ๋ฐฐ์ด ๊ฐ์ JSON ํํ ์ ํ์ ๋ฐ๋ผ ๋ณํ๋๋ฉฐ, ์ด๋ ๋ณธ ํ์ ์ ์๋์ด ์๋ค. |
| ๋ฐ์ดํฐ ๋ชจ๋ธ ํญ๋ชฉ ๊ฐ์ด set์ธ JSON ๋ฐฐ์ด | JSON ๋ฐฐ์ด์ ๊ฐ ๊ฐ์ด ์ด ํ์ ์ ์๋ ๋๋ก ๋ฐฐ์ด ๊ฐ์ JSON ํํ ์ ํ์ ๋ฐ๋ผ ๋ณํ๋์ด ์์๋๋ก ์ถ๊ฐ๋๋ set. |
| ๋ฐ์ดํฐ ๋ชจ๋ธ ํญ๋ชฉ ๊ฐ์ด datetime์ธ JSON ๋ฌธ์์ด | datetime. |
| ๋ฐ์ดํฐ ๋ชจ๋ธ ํญ๋ชฉ ๊ฐ ์ ํ์ด string ๋๋ ์ ์ ์๋ JSON ๋ฌธ์์ด | string. |
| ์์ ๋๋ ๋ถ์ ์ฑ๋ถ์ด ์๋ JSON ์ซ์ | integer. |
| ์์์ ๋ถ์ ์ฑ๋ถ์ด ์๋ JSON ์ซ์ ๋๋ ๋ถ์ ์ฑ๋ถ ํฌํจ ์ฌ๋ถ์ ๊ด๊ณ์์ด ํญ๋ชฉ ๊ฐ์ด double์ผ ๋ | double. |
| JSON ๋ถ๋ฆฌ์ธ | boolean. |
| JSON null ๋ฆฌํฐ๋ด | null ๊ฐ. |
JSON ํํ์ ์์ฑํ๋ ๊ท๋ฒ์ ๋ถํฉํ๋ ์๋น์๋ฅผ ๋ง๋๋ ๋ชจ๋ ๊ตฌํ์๋ ์์ ์ ์๊ณ ๋ฆฌ์ฆ์ด [[INFRA]] ๊ท๊ฒฉ์ JSON ๋ณํ ๊ท์น๊ณผ JSON [[RFC8259]] ๊ท๊ฒฉ์ ์ซ์์ ๋ํ ์ ๋ฐ๋ ์กฐ์ธ์ ๋ถํฉํ๋๋ก ํด์ผ ํ๋ค.
๋ฏธ๋์ด ์ ํ ์ ๋ณด๋ฅผ ๊ท๋ฒ์ ๋ถํฉํ๋ ์๋น์๊ฐ ์ฌ์ฉํ ์ ์๊ณ
๋ฏธ๋์ด ์ ํ ๊ฐ์ด application/did+json์ธ ๊ฒฝ์ฐ, ์๋น๋๋
๋ฐ์ดํฐ ๊ตฌ์กฐ๋ DID ๋ฌธ์์ด๋ฉฐ, ๋ฃจํธ ์์๋ ๊ฐ์ฒด์ ๋ชจ๋ ๋ฉค๋ฒ๊ฐ
DID ๋ฌธ์์ ํญ๋ชฉ์ธ
JSON ๊ฐ์ฒด์ฌ์ผ ํ๋ค. ๋ฃจํธ ์์๊ฐ
JSON ๊ฐ์ฒด๊ฐ ์๋
DID ๋ฌธ์๋ฅผ ์๋นํ๋ JSON ํํ์ ๋ํ
๊ท๋ฒ์ ๋ถํฉํ๋ ์๋น์๋ ์ค๋ฅ๋ฅผ ๋ณด๊ณ ํด์ผ ํ๋ค.
JSON-LD [[JSON-LD11]]๋ ์ฐ๊ฒฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ง๋ ฌํํ๋ ๋ฐ ์ฌ์ฉ๋๋ JSON ๊ธฐ๋ฐ ํ์์ด๋ค. ์ด ์น์ ์์๋ JSON-LD ํํ์ ๋ํ ์์ฐ ๋ฐ ์๋น ๊ท์น์ ์ ์ํ๋ค.
JSON-LD ํํ์ ๋ค์๊ณผ ๊ฐ์ ํํ๋ณ ํญ๋ชฉ์ ์ ์ํ๋ค:
DID ๋ฌธ์, DID ๋ฌธ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ฐ representation-specific entries map์ ์ ์ ์๋ JSON ํํ ์์ฐ ๊ท์น์ ๋ฐ๋ผ JSON-LD ํํ์ผ๋ก ์ง๋ ฌํ๋์ด์ผ ํ๋ค.
JSON ํํ ์์ฐ ๊ท์น์ ์ฌ์ฉํ๋ ๊ฒ ์ธ์๋, JSON-LD
์์ฐ์ ํํ๋ณ
@context ํญ๋ชฉ์ ํฌํจํด์ผ ํ๋ค.
@context์ ์ง๋ ฌํ๋ ๊ฐ์
JSON ๋ฌธ์์ด
https://www.w3.org/ns/did/v1์ด๊ฑฐ๋, ์ฒซ ๋ฒ์งธ ํญ๋ชฉ์ด
JSON ๋ฌธ์์ด
https://www.w3.org/ns/did/v1์ด๊ณ ํ์ ํญ๋ชฉ์ด JSON
ํํ ์์ฐ ๊ท์น์ ๋ฐ๋ผ ์ง๋ ฌํ๋
JSON ๋ฐฐ์ด์ด์ด์ผ ํ๋ค.
{
"@context": "https://www.w3.org/ns/did/v1",
...
}
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://did-method-extension.example/v1"
],
...
}
JSON-LD ํํ์ ์์ฑํ๋ ๊ท๋ฒ์ ๋ถํฉํ๋ ์์ฐ์๋ฅผ ๋ง๋๋ ๋ชจ๋ ๊ตฌํ์๋ ์์ ์ ์๊ณ ๋ฆฌ์ฆ์ด ์ ํจํ JSON-LD [[JSON-LD11]] ๋ฌธ์๋ฅผ ์์ฑํ๋๋ก ํด์ผ ํ๋ค. ์ ํจํ์ง ์์ JSON-LD ๋ฌธ์๋ JSON-LD ํ๋ก์ธ์๊ฐ ์ค์ง๋๊ณ ์ค๋ฅ๋ฅผ ๋ณด๊ณ ํ๋๋ก ํ ๊ฒ์ด๋ค.
์๋ก ๋ค๋ฅธ ํํ ๊ฐ์ ์ํธ ์ด์ฉ์ฑ์ ๋ฌ์ฑํ๊ธฐ ์ํด, ๋ชจ๋ JSON-LD ์ปจํ ์คํธ์ ํด๋น ์ฉ์ด๋ DID ๊ท๊ฒฉ ๋ ์ง์คํธ๋ฆฌ [[?DID-SPEC-REGISTRIES]]์ ๋ฑ๋ก๋์ด์ผ ํ๋ค.
JSON-LD ํํ์ ์์ฑํ๋ ๊ท๋ฒ์ ๋ถํฉํ๋ ์์ฐ์๋
๊ท๋ฒ์ ๋ถํฉํ๋ ์๋น์๊ฐ ์ ์ ์๋ ์ฉ์ด๋ฅผ ์ ๊ฑฐํ ๊ฒ์ผ๋ก
์์๋๋ฏ๋ก @context๋ฅผ ํตํด ์ ์๋์ง ์์ ์ฉ์ด๊ฐ ํฌํจ๋
DID ๋ฌธ์๋ฅผ ์์ฑํ์ง ๋ง์์ผ ํ๋ค. DID ๋ฌธ์์ JSON-LD
ํํ์ ์ง๋ ฌํํ ๋, ๊ท๋ฒ์ ๋ถํฉํ๋ ์์ฐ์๋
์ ์ค๋ช
๋ ๊ฒ๊ณผ ๊ฐ์ด ํ์
์ ํ๋ฆฌ์ผ์ด์
์ application/did+ld+json์ ๋ฏธ๋์ด ์ ํ์
์ง์ ํด์ผ ํ๋ค.
JSON-LD ํํ์ผ๋ก ํํ๋ DID ๋ฌธ์ ๋ฐ ๋ชจ๋ DID ๋ฌธ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ์ ์ ์๋ JSON ํํ ์๋น ๊ท์น์ ๋ฐ๋ผ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ก ์ญ์ง๋ ฌํ๋์ด์ผ ํ๋ค.
JSON-LD ํํ์ ์๋นํ๋ ๊ท๋ฒ์ ๋ถํฉํ๋ ์๋น์๋ฅผ ๋ง๋๋ ๋ชจ๋ ๊ตฌํ์๋ ์์ ์ ์๊ณ ๋ฆฌ์ฆ์ด ์ ํจํ JSON-LD [[JSON-LD11]] ๋ฌธ์๋ง ์์ฉํ๋๋ก ํด์ผ ํ๋ค. ์ ํจํ์ง ์์ JSON-LD ๋ฌธ์๋ JSON-LD ํ๋ก์ธ์๊ฐ ์ค์ง๋๊ณ ์ค๋ฅ๋ฅผ ๋ณด๊ณ ํ๋๋ก ํ ๊ฒ์ด๋ค.
JSON-LD ํํ์ ์ฒ๋ฆฌํ๋ ๊ท๋ฒ์ ๋ถํฉํ๋ ์๋น์๋
@context๋ฅผ ํตํด ์ ์๋์ง ์์ DID ๋ฌธ์์ ๋ชจ๋
์ฉ์ด๋ฅผ ์ญ์ ํด์ผ ํ๋ค.
์ด ์น์ ์์๋ DID ํด์๊ณผ DID URL ์ญ์ฐธ์กฐ์ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ์ ์ํ๋ค. ์ด๋ค์ ์ ํํ ๊ตฌํ์ ์ด ๊ท๊ฒฉ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋์ง๋ง, ๊ตฌํ์๋ฅผ ์ํ ๋ช ๊ฐ์ง ๊ณ ๋ ค์ฌํญ์ [[?DID-RESOLUTION]]์์ ๋ ผ์๋๋ค.
๊ท๋ฒ์ ์ค์ํ๋ ๋ชจ๋ DID ๋ณํ๊ธฐ๋ ์ต์ํ ํ๋์ DID ๋ฉ์๋์ ๋ํ DID ํด์ ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํ๋ฉฐ, ์ต์ํ ํ๋์ ๊ท๋ฒ์ ์ค์ํ๋ ํํ์ผ๋ก DID ๋ฌธ์๋ฅผ ๋ฐํํ ์ ์์ด์ผ ํ๋ค.
DID ํด์ ๊ธฐ๋ฅ์ ์ ์ค๋ช ๋ ๋๋ก ์ ์ฉ ๊ฐ๋ฅํ DID ๋ฉ์๋์ "์ฝ๊ธฐ" ์ฐ์ฐ์ ์ฌ์ฉํ์ฌ DID๋ฅผ DID ๋ฌธ์๋ก ํด์ํ๋ค. ์ด ํ๋ก์ธ์ค๊ฐ ์ด๋ป๊ฒ ์ํ๋๋์ง์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ด ๊ท๊ฒฉ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋์ง๋ง, ๊ท๋ฒ์ ์ค์ํ๋ ๋ชจ๋ DID ๋ณํ๊ธฐ๋ ๋ค์๊ณผ ๊ฐ์ ์ถ์์ ํํ๋ฅผ ๊ฐ์ง ์๋์ ํจ์๋ฅผ ๊ตฌํํ๋ค:
resolve(did, resolutionOptions) โ
ยซ didResolutionMetadata, didDocument, didDocumentMetadata ยป
resolveRepresentation(did, resolutionOptions) โ
ยซ didResolutionMetadata, didDocumentStream, didDocumentMetadata ยป
resolve ํจ์๋ ์ถ์์ ํํ(a
map)๋ก DID ๋ฌธ์๋ฅผ ๋ฐํํ๋ค.
resolveRepresentation ํจ์๋ ํด๋น ํํ์ผ๋ก ํฌ๋งท๋
DID ๋ฌธ์์ ๋ฐ์ดํธ ์คํธ๋ฆผ์ ๋ฐํํ๋ค.
๋ค์ด์ด๊ทธ๋จ์ ์๋จ ์ค๊ฐ ๋ถ๋ถ์๋ ์ ์ ์ผ๋ก ๋ ํ์ ์ค๊ณฝ์ ์ด ์๋ ์ฌ๊ฐํ์ด ํฌํจ๋์ด ์์ผ๋ฉฐ, ๊ทธ ์์๋ ํ๋์ ์ค๊ณฝ์ ์ด ์๋ ๋ ๊ฐ์ ์ฌ๊ฐํ์ด ์์๋๋ก ๋ฐฐ์น๋์ด ์๋ค. ์์ชฝ์ ๋ ํฐ ์ฌ๊ฐํ์๋ ํ๋์์ผ๋ก "Core Properties"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ด ์์ผ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ INFRA ํ๊ธฐ๋ฒ์ ํฌํจํ๊ณ ์๋ค:
ยซ[
"id" โ "example:123",
"verificationMethod" โ ยซ ยซ[
"id": "did:example:123#keys-1",
"controller": "did:example:123",
"type": "Ed25519VerificationKey2018",
"publicKeyBase58": "H3C2AVvLMv6gmMNam3uVA"
]ยป ยป,
"authentication" โ ยซ
"did:example:123#keys-1"
ยป
]ยป
ํ๋จ์ ์์ ์ฌ๊ฐํ์๋ ํ๋์์ผ๋ก "Core Representation-specific Entries (JSON-LD)"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ด ์์ผ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ ๋ชจ๋ ธ์คํ์ด์ค INFRA ํ๊ธฐ๋ฒ์ ํฌํจํ๊ณ ์๋ค:
ยซ[ "@context" โ "https://www.w3.org/ns/did/v1" ]ยป
ํ์ ์ค๊ณฝ์ ์ฌ๊ฐํ์์ ๋ค์ด์ด๊ทธ๋จ ํ๋จ์ ๋๋ํ ์ ๋ ฌ๋ ์ธ ๊ฐ์ ๊ฒ์์ ์ค๊ณฝ์ ์ฌ๊ฐํ์ผ๋ก ์ธ ์์ ํ์ดํ๊ฐ ๋ป์ด ์๋ค. ๊ฐ ํ์ดํ ์์ ํ์ ์ค๊ณฝ์ ์ฌ๊ฐํ์์ ๊ฐ๊ฐ์ ๊ฒ์์ ์ค๊ณฝ์ ์ฌ๊ฐํ์ผ๋ก "produce"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ํ๋์ ํ์ดํ ํ๋์ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก "consume"์ด๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ๋นจ๊ฐ์ ํ์ดํ ํ๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ ๊ฒ์์ ์ค๊ณฝ์ ์ฌ๊ฐํ์๋ "application/did+ld+json"์ด๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ด ์์ผ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ JSON-LD ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๊ณ ์๋ค:
{
"@context": ["https://www.w3.org/ns/did/v1"],
"id": "did:example:123",
"verificationMethod": [{
"id": "did:example:123#keys-1",
"controller": "did:example:123",
"type": "Ed25519VerificationKey2018",
"publicKeyBase58": "H3C2AVvLMv6gmMNam3uVA"
}],
"authentication": [
"did:example:123#keys-1"
]
}
๋ ๋ฒ์งธ ์ฌ๊ฐํ์๋ "application/did+json"์ด๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ด ์์ผ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ JSON ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๊ณ ์๋ค:
{
"id": "did:example:123",
"verificationMethod": [{
"id": "did:example:123#keys-1",
"controller": "did:example:123",
"type": "Ed25519VerificationKey2018",
"publicKeyBase58": "H3C2AVvLMv6gmMNam3uVA"
}],
"authentication": [
"did:example:123#keys-1"
]
}
์ธ ๋ฒ์งธ ์ฌ๊ฐํ์๋ "application/did+cbor"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ด ์์ผ๋ฉฐ, 16์ง์ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๊ณ ์๋ค.
๋ค์ด์ด๊ทธ๋จ ์ผ์ชฝ ์ค๊ฐ์๋ ๊ฒ์์ ์ค๊ณฝ์ ๊ณผ ์ฐํ ํ์ ๋ฐฐ๊ฒฝ์ ์์๊ฐ ์๋ค. ์ด ์์์๋ "VERIFIABLE DATA REGISTRY"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ด ์์ผ๋ฉฐ, ๋ ธ๋์ ํธ๋ก ๊ตฌ์ฑ๋ ๊ทธ๋ํ๋ฅผ ๋ํ๋ด๋ ๊ธฐํธ๋ฅผ ํฌํจํ๊ณ ์๋ค. ์ด ์์์์ "resolve()"์ด๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ํ์ดํ ํ๋๊ฐ ์์ชฝ์ผ๋ก ๋ป์ด ํ์ ์ค๊ณฝ์ ์ฌ๊ฐํ์ด ์๋ ๋ค์ด์ด๊ทธ๋จ ์๋จ์ ๊ฐ๋ฆฌํต๋๋ค. "resolveRepresentation()"์ด๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ๋ ๋ค๋ฅธ ํ์ดํ๋ ์๋์ชฝ์ผ๋ก ๋ป์ด ์ธ ๊ฐ์ ๊ฒ์์ ์ค๊ณฝ์ ์ฌ๊ฐํ์ด ์๋ ๋ค์ด์ด๊ทธ๋จ ํ๋จ์ ๊ฐ๋ฆฌํต๋๋ค.
resolve์ resolveRepresentation ํจ์์ ์
๋ ฅ
๋ณ์๋ ๋ค์๊ณผ ๊ฐ๋ค:
์ด ํจ์๋ค์ ๊ฐ๊ฐ ์ฌ๋ฌ ๊ฐ์ ๋ฐํํ๋ฉฐ, ์ด๋ฌํ ๊ฐ๋ค์ด ํจ๊ป ๋ฐํ๋๋
๋ฐฉ์์๋ ์ ํ์ด ์๋ค. resolve์ ๋ฐํ ๊ฐ์
didResolutionMetadata, didDocument,
didDocumentMetadata์ด๋ค. resolveRepresentation์
๋ฐํ ๊ฐ์ didResolutionMetadata, didDocumentStream,
didDocumentMetadata์ด๋ค. ์ด ๊ฐ๋ค์ ์๋์ ์ค๋ช
๋์ด ์๋ค:
resolve์ resolveRepresentation ํจ์๋ฅผ
ํธ์ถํ ๋๋ง๋ค ๋ณ๊ฒฝ๋๋ฉฐ, ํด์ ํ๋ก์ธ์ค ์์ฒด์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ธ๋ค.
์ด ๊ตฌ์กฐ๋ ํ์์ด๋ฉฐ, ํด์ ํ๋ก์ธ์ค์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ด ๊ตฌ์กฐ๋
๋น์ด ์์ด์๋ ์ ๋๋ค. ์ด ๋ฉํ๋ฐ์ดํฐ๋
์ ์ํด ์ ์๋๋ค.
resolveRepresentation์ด ํธ์ถ๋ ๊ฒฝ์ฐ, ์ด ๊ตฌ์กฐ๋
didDocumentStream์์ ๋ฐ๊ฒฌ๋ ํํ์ ๋ฏธ๋์ด ์ ํ์
ํฌํจํ๋ contentType ์์ฑ์ ํฌํจํด์ผ ํ๋ค. ํด์์ด
์ฑ๊ณตํ์ง ์์ ๊ฒฝ์ฐ, ์ด ๊ตฌ์กฐ๋ ์ค๋ฅ๋ฅผ ์ค๋ช
ํ๋
error ์์ฑ์ ํฌํจํด์ผ ํ๋ค.
resolve ํจ์๊ฐ ํธ์ถ๋ ๊ฒฝ์ฐ, ์ด๋
์ ์ค๋ช
๋ DID ๋ฌธ์ ์ถ์ ๋ฐ์ดํฐ
๋ชจ๋ธ(map)์ด์ด์ผ ํ๋ฉฐ, ํํ์ ์ํด
์ง์ ๋ ์์ฐ ๊ท์น์ ์ฌ์ฉํ์ฌ ๊ท๋ฒ์ ๋ถํฉํ๋ DID ๋ฌธ์ (ํํ)๋ก
๋ณํ๋ ์ ์์ด์ผ ํ๋ค. ํด์๋ DID ๋ฌธ์์์
id์ ๊ฐ์ ํด์๋ DID์ ์ผ์นํด์ผ ํ๋ค. ํด์์ด ์ฑ๊ณตํ์ง ์์
๊ฒฝ์ฐ, ์ด ๊ฐ์ ๋น์ด ์์ด์ผ ํ๋ค.
resolveRepresentation ํจ์๊ฐ ํธ์ถ๋
๊ฒฝ์ฐ, ์ด๋ ๊ท๊ฒฉ์ ์ค์ํ๋ ํํ ์ค
ํ๋๋ก ํด์๋ DID ๋ฌธ์์ ๋ฐ์ดํธ ์คํธ๋ฆผ์ด์ด์ผ ํ๋ค. ๊ทธ๋ฐ ๋ค์
resolveRepresentation ํจ์์ ํธ์ถ์๊ฐ ๋ฐ์ดํธ ์คํธ๋ฆผ์
๋ฐ์ดํฐ ๋ชจ๋ธ๋ก ํ์ฑํ์ฌ ์ ํจ์ฑ์ ๊ฒ์ฌํ๊ณ
์ฒ๋ฆฌํ ์ ์๋ค. ํด์์ด ์ฑ๊ณตํ์ง ์์ ๊ฒฝ์ฐ, ์ด ๊ฐ์ ๋น ์คํธ๋ฆผ์ด์ด์ผ
ํ๋ค.
didDocument ์์ฑ์ ํฌํจ๋ DID ๋ฌธ์์ ๋ํ
๋ฉํ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ค. ์ด ๋ฉํ๋ฐ์ดํฐ๋ ์ผ๋ฐ์ ์ผ๋ก DID ๋ฌธ์๊ฐ
๋ณ๊ฒฝ๋์ง ์๋ ํ resolve์
resolveRepresentation ํจ์๋ฅผ ํธ์ถํ ๋๋ง๋ค ๋ณ๊ฒฝ๋์ง
์์ผ๋ฉฐ, DID ๋ฌธ์์ ๋ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ธ๋ค. ํด์์ด
์ฑ๊ณตํ์ง ์์ ๊ฒฝ์ฐ, ์ด ์ถ๋ ฅ์ ๋น
๋ฉํ๋ฐ์ดํฐ ๊ตฌ์กฐ์ฌ์ผ ํ๋ค. ์ด
๊ท๊ฒฉ์ ์ํด ์ ์๋ ์์ฑ์ ์
์๋ค.
๊ท๊ฒฉ์ ์ค์ํ๋ DID ๋ณํ๊ธฐ ๊ตฌํ์ ์ด๋ฌํ ํจ์์ ์๊ทธ๋์ฒ๋ฅผ ์ด๋ค
์์ผ๋ก๋ ๋ณ๊ฒฝํ์ง ์๋๋ค. DID ๋ณํ๊ธฐ ๊ตฌํ์ ์ค์
DID ํด์ ํ๋ก์ธ์ค๋ฅผ ์ํํ๊ธฐ ์ํด resolve์
resolveRepresentation ํจ์๋ฅผ ๋ฉ์๋๋ณ ๋ด๋ถ ํจ์์ ๋งคํํ
์ ์๋ค. DID ๋ณํ๊ธฐ ๊ตฌํ์ ์ฌ๊ธฐ์ ์ง์ ๋ resolve์
resolveRepresentation ํจ์ ์ธ์ ๋ค๋ฅธ ์๊ทธ๋์ฒ๋ฅผ ๊ฐ์ง ์ถ๊ฐ
ํจ์๋ฅผ ๊ตฌํํ๊ณ ๋
ธ์ถํ ์ ์๋ค.
์ด ๊ตฌ์กฐ ๋ด์ ๊ฐ๋ฅํ ์์ฑ๊ณผ ๊ทธ ๊ฐ๋ฅํ ๊ฐ์ DID ๊ท๊ฒฉ ๋ ์ง์คํธ๋ฆฌ [[?DID-SPEC-REGISTRIES]]์ ๋ฑ๋ก๋์ด ์๋ค. ์ด ๊ท๊ฒฉ์ ๋ค์๊ณผ ๊ฐ์ ๊ณตํต ์์ฑ์ ์ ์ํ๋ค.
didDocumentStream์ ํฌํจ๋ ํํ์ ๊ฒฐ์ ํด์ผ
ํ๋ค. ์ด ์์ฑ์ resolveRepresentation ํจ์์ ๋ํด์๋
์ ํ ์ฌํญ์ด๋ฉฐ resolve ํจ์์ ํจ๊ป ์ฌ์ฉํด์๋ ์ ๋๋ค.
์ด ๊ตฌ์กฐ ๋ด์ ๊ฐ๋ฅํ ์์ฑ๊ณผ ๊ทธ ๊ฐ๋ฅํ ๊ฐ์ DID ๊ท๊ฒฉ ๋ ์ง์คํธ๋ฆฌ [[?DID-SPEC-REGISTRIES]]์ ๋ฑ๋ก๋์ด ์๋ค. ์ด ๊ท๊ฒฉ์ ๋ค์๊ณผ ๊ฐ์ DID ํด์ ๋ฉํ๋ฐ์ดํฐ ์์ฑ์ ์ ์ํ๋ค:
didDocumentStream์ ๋ฏธ๋์ด ์ ํ. ์ด ์์ฑ์
ํด์์ด ์ฑ๊ณตํ๊ณ resolveRepresentation ํจ์๊ฐ ํธ์ถ๋
๊ฒฝ์ฐ ํ์์ด๋ค. ์ด ์์ฑ์ resolve ํจ์๊ฐ ํธ์ถ๋ ๊ฒฝ์ฐ
์กด์ฌํด์๋ ์ ๋๋ค. ์ด ์์ฑ์ ๊ฐ์ ๊ท๊ฒฉ์ ์ค์ํ๋ ํํ์
๋ฏธ๋์ด ์ ํ์ธ ASCII ๋ฌธ์์ด์ด์ด์ผ
ํ๋ค. resolveRepresentation ํจ์์ ํธ์ถ์๋ ์ด ๊ฐ์
์ฌ์ฉํ์ฌ ์ด ํจ์์ ์ํด ๋ฐํ๋ didDocumentStream์
๋ฐ์ดํฐ ๋ชจ๋ธ๋ก ํ์ฑํ๊ณ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์
๊ฒฐ์ ํด์ผ ํ๋ค.
accept ์
๋ ฅ ๋ฉํ๋ฐ์ดํฐ ์์ฑ์ ํตํด ์์ฒญ๋
ํํ์ด DID ๋ฉ์๋ ๋ฐ/๋๋
DID ๋ณํ๊ธฐ ๊ตฌํ์์ ์ง์๋์ง ์๋ ๊ฒฝ์ฐ ์ด ์ค๋ฅ ์ฝ๋๊ฐ
๋ฐํ๋๋ค.
์ด ๊ตฌ์กฐ ๋ด์ ๊ฐ๋ฅํ ์์ฑ๊ณผ ๊ทธ ๊ฐ๋ฅํ ๊ฐ์ DID ๊ท๊ฒฉ ๋ ์ง์คํธ๋ฆฌ [[?DID-SPEC-REGISTRIES]]์ ๋ฑ๋ก๋์ด์ผ ํ๋ค. ์ด ๊ท๊ฒฉ์ ๋ค์๊ณผ ๊ฐ์ ๊ณตํต ์์ฑ์ ์ ์ํ๋ค.
created ์์ฑ์ด ํฌํจ๋์ด์ผ ํ๋ค. ์์ฑ ๊ฐ์ UTC
00:00:00์ผ๋ก ์ ๊ทํ๋๊ณ ์ด ๋ฏธ๋ง์ ์์ ์ ๋ฐ๋ ์์ด
XML Datetime์ผ๋ก ํฌ๋งท๋
๋ฌธ์์ด์ด์ด์ผ ํ๋ค. ์:
2020-12-20T19:17:47Z.
updated ์์ฑ์ด ํฌํจ๋์ด์ผ ํ๋ค. ์์ฑ
๊ฐ์ created ์์ฑ๊ณผ ๋์ผํ ํฌ๋งท ๊ท์น์ ๋ฐ๋ผ์ผ ํ๋ค.
DID ๋ฌธ์์ ๋ํด ์
๋ฐ์ดํธ ์์
์ด ์ํ๋ ์ ์ด ์๋ ๊ฒฝ์ฐ
updated ์์ฑ์ ์๋ต๋๋ค. updated ์์ฑ์ด
์กด์ฌํ๋ ๊ฒฝ์ฐ, ๋ ํ์์คํฌํ ๊ฐ์ ์ฐจ์ด๊ฐ 1์ด ๋ฏธ๋ง์ผ ๋
created ์์ฑ๊ณผ ๋์ผํ ๊ฐ์ผ ์ ์๋ค.
true๋ฅผ ๊ฐ์ ธ์ผ ํ๋ค. DID๊ฐ ๋นํ์ฑํ๋์ง ์์ ๊ฒฝ์ฐ, ์ด
์์ฑ์ ์ ํ ์ฌํญ์ด์ง๋ง ํฌํจ๋ ๊ฒฝ์ฐ ๋ถ๋ฆฌ์ธ ๊ฐ false๋ฅผ
๊ฐ์ ธ์ผ ํ๋ค.
nextUpdate ์์ฑ์ด
ํฌํจ๋ ์ ์๋ค. ์ด๋ ๋ค์
์
๋ฐ์ดํธ ์์
์ ํ์์คํฌํ๋ฅผ
๋ํ๋ธ๋ค. ์์ฑ ๊ฐ์ created ์์ฑ๊ณผ ๋์ผํ ํฌ๋งท ๊ท์น์
๋ฐ๋ผ์ผ ํ๋ค.
versionId ์์ฑ์ด ํฌํจ๋์ด์ผ ํ๋ค. ์์ฑ ๊ฐ์
ASCII ๋ฌธ์์ด์ด์ด์ผ ํ๋ค.
nextVersionId ์์ฑ์ด
ํฌํจ๋ ์ ์๋ค. ์ด๋ ๋ค์
์
๋ฐ์ดํธ ์์
์ ๋ฒ์ ์ ๋ํ๋ธ๋ค.
์์ฑ ๊ฐ์ ASCII ๋ฌธ์์ด์ด์ด์ผ ํ๋ค.
DID ๋ฉ์๋๋ ๋
ผ๋ฆฌ์ ์ผ๋ก ๋๋ฑํ DID์ ๋ค์ํ ํ์์
์ ์ํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, DID๊ฐ
๊ฒ์ฆ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๋ ์ง์คํธ๋ฆฌ์ ๋ฑ๋ก๋๊ธฐ ์ ์ ํ ๊ฐ์ง
ํ์์ ์ทจํ๊ณ ๋ฑ๋ก ํ์ ๋ค๋ฅธ ํ์์ ์ทจํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด ๊ฒฝ์ฐ,
DID ๋ฉ์๋ ๊ท๊ฒฉ์ ํด์๋ DID์ ๋
ผ๋ฆฌ์ ์ผ๋ก ๋๋ฑํ
ํ๋ ์ด์์ DID๋ฅผ DID ๋ฌธ์์ ์์ฑ์ผ๋ก ํํํด์ผ ํ
์ ์๋ค. ์ด๊ฒ์ด equivalentId ์์ฑ์
๋ชฉ์ ์ด๋ค.
DID ๋ฌธ์ ๋ฉํ๋ฐ์ดํฐ์๋ equivalentId ์์ฑ์ด
ํฌํจ๋ ์ ์๋ค. ์กด์ฌํ๋ ๊ฒฝ์ฐ, ๊ฐ์ ๊ฐ ํญ๋ชฉ์ด
์ ๊ท์น์ ์ค์ํ๋
๋ฌธ์์ด์ธ
set์ด์ด์ผ ํ๋ค. ์ด ๊ด๊ณ๋
๊ฐ equivalentId ๊ฐ์ด id ์์ฑ
๊ฐ๊ณผ ๋
ผ๋ฆฌ์ ์ผ๋ก ๋๋ฑํ๋ฉฐ ๋ฐ๋ผ์ ๋์ผํ DID ์ฃผ์ฒด๋ฅผ
์ฐธ์กฐํ๋ค๋ ์ง์ ์ด๋ค. ๊ฐ equivalentId DID
๊ฐ์ id ์์ฑ ๊ฐ๊ณผ ๋์ผํ DID ๋ฉ์๋์ ์ํด
์์ฑ๋๊ณ ํด๋น ๋ฉ์๋์ ํ ํ์์ด์ด์ผ ํ๋ค. (์:
did:example:abc == did:example:ABC)
๊ท๊ฒฉ์ ์ค์ํ๋ DID ๋ฉ์๋ ๊ท๊ฒฉ์ ๊ฐ
equivalentId ๊ฐ์ด id ์์ฑ ๊ฐ๊ณผ
๋
ผ๋ฆฌ์ ์ผ๋ก ๋๋ฑํจ์ ๋ณด์ฅํด์ผ ํ๋ค.
์์ฒญ ๋น์ฌ์๋ id ๋ฐ
equivalentId ์์ฑ์ ๊ฐ์ ์ ์งํ์ฌ ์ด๋ค์ด
ํฌํจํ๋ ๊ฐ ์ค ํ๋์์ ํ์ ์ํธ ์์ฉ์ด ๋
ผ๋ฆฌ์ ์ผ๋ก ๋๋ฑํ
๊ฒ์ผ๋ก ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌ๋๋๋ก ํด์ผ ํ๋ค(์: ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ๋
๋ณํ์ ์ ์งํ์ฌ ํ๋์์ ๋ชจ๋ ์ํธ ์์ฉ์ด ๋์ผํ ๊ธฐ๋ณธ ๊ณ์ ์
๋งคํ๋๋๋ก ํจ).
๋๋ฑ์ฑ์ ๊ด๋ฆฌ ์ค์ธ DID ๋ฉ์๋์ ์ํด ๋ณด์ฅ๋์ด์ผ ํ๋ฏ๋ก
equivalentId๋ alsoKnownAs๋ณด๋ค ํจ์ฌ ๋ ๊ฐ๋ ฅํ ํํ์ ๋๋ฑ์ฑ์ด๋ค.
equivalentId๋ ๋์ผํ DID ๋ฌธ์๊ฐ equivalentId
DID์ id ์์ฑ DID๋ฅผ ๋ชจ๋ ์ค๋ช
ํ๊ธฐ
๋๋ฌธ์ ์์ ํ ๊ทธ๋ํ ๋ณํฉ์ ๋ํ๋ธ๋ค.
์์ฒญ ๋น์ฌ์๊ฐ id ๋ฐ
equivalentId ์์ฑ์ ๊ฐ์ ์ ์งํ๊ณ ํฌํจ๋ ๊ฐ
์ค ํ๋์์ ํ์ ์ํธ ์์ฉ์ด ๋
ผ๋ฆฌ์ ์ผ๋ก ๋๋ฑํ๊ฒ ์ฌ๋ฐ๋ฅด๊ฒ
์ฒ๋ฆฌ๋๋๋ก ํ์ง ์์ผ๋ฉด ๋ถ์ ์ ์ด๊ฑฐ๋ ์๊ธฐ์น ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์
์๋ค. ๊ตฌํ์๋ ์ด ๋ฉํ๋ฐ์ดํฐ ์์ฑ๊ณผ ๊ด๋ จ๋ ์ง์นจ์ ์ค์ํ๋ ๊ฒ์ด
์ข๋ค.
canonicalId ์์ฑ์
equivalentId ์์ฑ๊ณผ ๋์ผํ์ง๋ง ๋ค์ ๋ ๊ฐ์ง
์ธก๋ฉด์์ ๋ค๋ฅด๋ค: a) set์ด ์๋ ๋จ์ผ ๊ฐ๊ณผ ์ฐ๊ด๋๋ฉฐ, b)
DID๋ ํฌํจํ๋ DID ๋ฌธ์์ ๋ฒ์ ๋ด์์
DID ์ฃผ์ฒด์ ๋ํ ํ์ค ID๋ก ์ ์๋๋ค.
DID ๋ฌธ์ ๋ฉํ๋ฐ์ดํฐ์๋ canonicalId ์์ฑ์ด
ํฌํจ๋ ์ ์๋ค. ์กด์ฌํ๋ ๊ฒฝ์ฐ, ๊ฐ์ ์
๊ท์น์ ์ค์ํ๋ ๋ฌธ์์ด์ด์ด์ผ
ํ๋ค. ์ด ๊ด๊ณ๋ canonicalId ๊ฐ์ด
id ์์ฑ ๊ฐ๊ณผ ๋
ผ๋ฆฌ์ ์ผ๋ก ๋๋ฑํ๋ฉฐ
canonicalId ๊ฐ์ด ํฌํจํ๋ DID ๋ฌธ์์
๋ฒ์ ๋ด์์ DID ์ฃผ์ฒด์ ๋ํ ํ์ค ID๋ก DID ๋ฉ์๋์
์ํด ์ ์๋๋ค๋ ์ง์ ์ด๋ค. canonicalId ๊ฐ์
id ์์ฑ ๊ฐ๊ณผ ๋์ผํ DID ๋ฉ์๋์ ์ํด
์์ฑ๋๊ณ ํด๋น ๋ฉ์๋์ ํ ํ์์ด์ด์ผ ํ๋ค. (์:
did:example:abc == did:example:ABC).
๊ท๊ฒฉ์ ์ค์ํ๋ DID ๋ฉ์๋ ๊ท๊ฒฉ์
canonicalId ๊ฐ์ด id ์์ฑ ๊ฐ๊ณผ
๋
ผ๋ฆฌ์ ์ผ๋ก ๋๋ฑํจ์ ๋ณด์ฅํด์ผ ํ๋ค.
์์ฒญ ๋น์ฌ์๋ canonicalId ๊ฐ์
DID ์ฃผ์ฒด์ ๋ํ ๊ธฐ๋ณธ ID ๊ฐ์ผ๋ก ์ฌ์ฉํ๊ณ ๋ค๋ฅธ ๋ชจ๋ ๋๋ฑํ
๊ฐ์ ๋ณด์กฐ ๋ณ์นญ์ผ๋ก ์ฒ๋ฆฌํด์ผ ํ๋ค(์: ์๋ก์ด ํ์ค ID ์ง์๋ฅผ
๋ฐ์ํ๊ธฐ ์ํด ์์คํ
์์ ํด๋น ๊ธฐ๋ณธ ์ฐธ์กฐ๋ฅผ ์
๋ฐ์ดํธ).
canonicalId๋ equivalentId์ ๋์ผํ ๋๋ฑ์ฑ ์ง์ ์ด์ง๋ง, DID ๋ฌธ์์ ๋ฒ์ ๋ด์์
DID ์ฃผ์ฒด์ ๋ํด ํ์ค์ผ๋ก ์ ์๋ ๋จ์ผ ๊ฐ์ผ๋ก ์ ํ๋๋ค.
equivalentId์ ๋ง์ฐฌ๊ฐ์ง๋ก canonicalId๋ ๋์ผํ DID ๋ฌธ์๊ฐ
canonicalId DID์ id ์์ฑ
DID๋ฅผ ๋ชจ๋ ์ค๋ช
ํ๊ธฐ ๋๋ฌธ์ ์์ ํ ๊ทธ๋ํ ๋ณํฉ์ ๋ํ๋ธ๋ค.
ํด์ ๋น์ฌ์๊ฐ canonicalId ๊ฐ์ DID ์ฃผ์ฒด์
๋ํ ๊ธฐ๋ณธ ID ๊ฐ์ผ๋ก ์ฌ์ฉํ์ง ์๊ณ ๋ค๋ฅธ ๋ชจ๋ ๋๋ฑํ ๊ฐ์ ๋ณด์กฐ
๋ณ์นญ์ผ๋ก ์ฒ๋ฆฌํ์ง ์์ผ๋ฉด ์ฌ์ฉ์ ๊ฒฝํ๊ณผ ๊ด๋ จํ์ฌ ๋ถ์ ์ ์ด๊ฑฐ๋
์๊ธฐ์น ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค. ๊ตฌํ์๋ ์ด ๋ฉํ๋ฐ์ดํฐ ์์ฑ๊ณผ
๊ด๋ จ๋ ์ง์ ์ฌํญ์ ์ค์ํ๋ ๊ฒ์ด ์ข๋ค.
DID URL ์ญ์ฐธ์กฐ ํจ์๋ DID URL์ DID ๋ฉ์๋, ๋ฉ์๋๋ณ ์๋ณ์, ๊ฒฝ๋ก, ์ฟผ๋ฆฌ ๋ฐ ํ๋๊ทธ๋จผํธ๋ฅผ ํฌํจํ DID URL์ ๊ตฌ์ฑ ์์์ ๋ฐ๋ผ ๋ด์ฉ์ด ๋ฌ๋ผ์ง๋ ๋ฆฌ์์ค๋ก ์ญ์ฐธ์กฐํ๋ค. ์ด ํ๋ก์ธ์ค๋ DID URL์ ํฌํจ๋ DID์ DID ํด์์ ์์กดํ๋ค. DID URL ์ญ์ฐธ์กฐ๋ ์ฌ๋ฌ ๋จ๊ณ๋ฅผ ํฌํจํ ์ ์์ผ๋ฉฐ(์: ์ญ์ฐธ์กฐ๋๋ DID URL์ ํ๋๊ทธ๋จผํธ๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ), ์ด ํจ์๋ ๋ชจ๋ ๋จ๊ณ๊ฐ ์๋ฃ๋ ํ ์ต์ข ๋ฆฌ์์ค๋ฅผ ๋ฐํํ๋๋ก ์ ์๋๋ค. ์ด ํ๋ก์ธ์ค๊ฐ ์ํ๋๋ ๋ฐฉ์์ ๋ํ ์ธ๋ถ ์ฌํญ์ ์ด ๊ท๊ฒฉ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ค. ๋ค์ ๊ทธ๋ฆผ์ ์์์ ์ค๋ช ํ ๊ด๊ณ๋ฅผ ๋ํ๋ธ๋ค.
๋ค์ด์ด๊ทธ๋จ์ ์ผ์ชฝ ์๋จ์๋ "DID"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ๊ฒ์์ ์ค๊ณฝ์ ์ ์ฌ๊ฐํ์ด ํฌํจ๋์ด ์๋ค.
๋ค์ด์ด๊ทธ๋จ์ ์ผ์ชฝ ํ๋จ์๋ "DID URL"์ด๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ๊ฒ์์ ์ค๊ณฝ์ ์ ์ฌ๊ฐํ์ด ํฌํจ๋์ด ์๋ค. ์ด ์ฌ๊ฐํ์๋ ์๋ก ์ธ์ ํ ์ํ ํ์ผ๋ก ์ ๋ ฌ๋ 4๊ฐ์ ๋ ์์ ๊ฒ์์ ์ค๊ณฝ์ ์ฌ๊ฐํ์ด ํฌํจ๋์ด ์๋ค. ์ด ๋ ์์ ์ฌ๊ฐํ์ ์์๋๋ก "DID", "path", "query", "fragment"๋ก ๋ ์ด๋ธ์ด ๋ถ์ด ์๋ค.
๋ค์ด์ด๊ทธ๋จ์ ์ค๋ฅธ์ชฝ ์๋จ์๋ "DID document"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ๊ฒ์์ ์ค๊ณฝ์ ์ ์ฌ๊ฐํ์ด ํฌํจ๋์ด ์๋ค. ์ด ์ฌ๊ฐํ์๋ ์ธ ๊ฐ์ ๋ ์์ ๊ฒ์์ ์ค๊ณฝ์ ์ฌ๊ฐํ์ด ํฌํจ๋์ด ์๋ค. ์ด ๋ ์์ ์ฌ๊ฐํ์ "id", "(property X)", "(property Y)"๋ก ๋ ์ด๋ธ์ด ๋ถ์ด ์๊ณ ์ฌ๋ฌ ์ค์ ์ ์ธ ๊ฐ(์ค์ํ)๋ก ๋๋ฌ์ธ์ฌ ์๋ค. "DID document - relative fragment dereference"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ๊ฒ์์ ๊ณก์ ํ์ดํ๊ฐ "(property X)"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ์ฌ๊ฐํ์์ "(property Y)"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ์ฌ๊ฐํ์ ๊ฐ๋ฆฌํจ๋ค.
๋ค์ด์ด๊ทธ๋จ์ ์ค๋ฅธ์ชฝ ํ๋จ์๋ "Resource"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ๊ฒ์์ ์ค๊ณฝ์ ์ ํ์ํ์ด ํฌํจ๋์ด ์๋ค.
"resolves to a DID document"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ๊ฒ์์ ํ์ดํ๊ฐ ๋ค์ด์ด๊ทธ๋จ์ ์ผ์ชฝ ์๋จ์ ์๋ "DID"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ์ฌ๊ฐํ์์ ๋ค์ด์ด๊ทธ๋จ์ ์ค๋ฅธ์ชฝ ์๋จ์ ์๋ "DID document"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ์ฌ๊ฐํ์ ๊ฐ๋ฆฌํจ๋ค.
"refers to"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ๊ฒ์์ ํ์ดํ๊ฐ ๋ค์ด์ด๊ทธ๋จ์ ์ค๋ฅธ์ชฝ ์๋จ์ ์๋ "DID document"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ์ฌ๊ฐํ์์ ๋ค์ด์ด๊ทธ๋จ์ ์ค๋ฅธ์ชฝ ํ๋จ์ ์๋ "Resource"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ํ์ํ์ ๊ฐ๋ฆฌํจ๋ค.
"contains"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ๊ฒ์์ ํ์ดํ๊ฐ ๋ค์ด์ด๊ทธ๋จ์ ์ผ์ชฝ ํ๋จ์ ์๋ "DID URL"์ด๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ์ฌ๊ฐํ ๋ด๋ถ์ "DID"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ์์ ์ฌ๊ฐํ์์ ๋ค์ด์ด๊ทธ๋จ์ ์ผ์ชฝ ์๋จ์ ์๋ "DID"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ์ฌ๊ฐํ์ ๊ฐ๋ฆฌํจ๋ค.
"dereferences to a DID document"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ๊ฒ์์ ํ์ดํ๊ฐ ๋ค์ด์ด๊ทธ๋จ์ ์ผ์ชฝ ํ๋จ์ ์๋ "DID URL"์ด๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ์ฌ๊ฐํ์์ ๋ค์ด์ด๊ทธ๋จ์ ์ค๋ฅธ์ชฝ ์๋จ์ ์๋ "DID document"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ์ฌ๊ฐํ์ ๊ฐ๋ฆฌํจ๋ค.
"dereferences to a resource"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ๊ฒ์์ ํ์ดํ๊ฐ ๋ค์ด์ด๊ทธ๋จ์ ์ผ์ชฝ ํ๋จ์ ์๋ "DID URL"์ด๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ์ฌ๊ฐํ์์ ๋ค์ด์ด๊ทธ๋จ์ ์ค๋ฅธ์ชฝ ํ๋จ์ ์๋ "Resource"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ ํ์ํ์ ๊ฐ๋ฆฌํจ๋ค.
All conforming DID resolvers implement the following function which has the following abstract form:
dereference(didUrl, dereferenceOptions) โ
ยซ dereferencingMetadata, contentStream, contentMetadata ยป
dereference ํจ์์ ์
๋ ฅ ๋ณ์๋ ๋ค์๊ณผ ๊ฐ๋ค:
๋ชจ๋ didUrl์ DID URL ์ญ์ฐธ์กฐ์์ ์ ๋ฌํ๋ ๊ฒ์ด
์ ํจํ์ง๋ง, ๊ตฌํ์๋ DID URL์ด ์ด๋ป๊ฒ ์ญ์ฐธ์กฐ๋ ๊ฒ์ผ๋ก
์์๋๋์ง์ ๋ํ ์ผ๋ฐ์ ์ธ ํจํด์ ๋ ์ ์ดํดํ๊ธฐ ์ํด
[[?DID-RESOLUTION]]์ ์ฐธ์กฐํ ๊ฒ์ผ๋ก ์์๋๋ค.
didUrl ์์ฒด ์ธ์ dereference ํจ์์ ๋ํ
์
๋ ฅ ์ต์
์ผ๋ก ๊ตฌ์ฑ๋
๋ฉํ๋ฐ์ดํฐ ๊ตฌ์กฐ์ด๋ค. ์ด ๊ท๊ฒฉ์์
์ ์ํ ์์ฑ์ ์ ์๋ค.
์ด ์
๋ ฅ์ ํ์์ด์ง๋ง ๊ตฌ์กฐ๋ ๋น์ด ์์ ์ ์๋ค.
์ด ํจ์๋ ์ฌ๋ฌ ๊ฐ์ ๋ฐํํ๋ฉฐ, ์ด๋ฌํ ๊ฐ๋ค์ด ํจ๊ป ๋ฐํ๋๋ ๋ฐฉ์์๋
์ ํ์ด ์๋ค. dereference์ ๋ฐํ ๊ฐ์๋
dereferencingMetadata, contentStream,
contentMetadata๊ฐ ํฌํจ๋๋ค:
error ์์ฑ์
ํฌํจํด์ผ ํ๋ค.
dereferencing ํจ์๊ฐ ํธ์ถ๋์ด ์ฑ๊ณตํ ๊ฒฝ์ฐ, ์ด๋
DID URL์ ํด๋นํ๋ ๋ฆฌ์์ค๋ฅผ ํฌํจํด์ผ ํ๋ค.
contentStream์ ๊ท๊ฒฉ์ ์ค์ํ๋ ํํ ์ค ํ๋๋ก
์ง๋ ฌํ ๊ฐ๋ฅํ DID ๋ฌธ์,
๊ฒ์ฆ ๋ฐฉ๋ฒ,
์๋น์ค ๋๋ ๋ฏธ๋์ด ์ ํ์ ํตํด ์๋ณ๋๊ณ ํด์
ํ๋ก์ธ์ค๋ฅผ ํตํด ์ป์ ์ ์๋ ๊ธฐํ ๋ฆฌ์์ค ํ์๊ณผ ๊ฐ์ ๋ฆฌ์์ค์ผ
์ ์๋ค. ์ญ์ฐธ์กฐ๊ฐ ์ฑ๊ณตํ์ง ์์ผ๋ฉด ์ด ๊ฐ์ ๋น์ด ์์ด์ผ ํ๋ค.
contentStream์ ๋ํ
๋ฉํ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ค. contentStream์ด
DID ๋ฌธ์์ธ ๊ฒฝ์ฐ, ์ด๋ DID ํด์์ ์ค๋ช
๋ ๋๋ก
didDocumentMetadata ๊ตฌ์กฐ์ฌ์ผ ํ๋ค. ์ญ์ฐธ์กฐ๊ฐ ์ฑ๊ณตํ์ง ์์ผ๋ฉด
์ด ์ถ๋ ฅ์ ๋น ๋ฉํ๋ฐ์ดํฐ ๊ตฌ์กฐ์ฌ์ผ
ํ๋ค.
๊ท๊ฒฉ์ ์ค์ํ๋ DID URL ์ญ์ฐธ์กฐ ๊ตฌํ์ ์ด๋ฌํ ํจ์์ ์๊ทธ๋์ฒ๋ฅผ
์ด๋ค ์์ผ๋ก๋ ๋ณ๊ฒฝํ์ง ์๋๋ค. DID URL ์ญ์ฐธ์กฐ ๊ตฌํ์ ์ค์
DID URL ์ญ์ฐธ์กฐ ํ๋ก์ธ์ค๋ฅผ ์ํํ๊ธฐ ์ํด
dereference ํจ์๋ฅผ ๋ฉ์๋๋ณ ๋ด๋ถ ํจ์์ ๋งคํํ ์ ์๋ค.
DID URL ์ญ์ฐธ์กฐ ๊ตฌํ์ ์ฌ๊ธฐ์ ์ง์ ๋
dereference ํจ์ ์ธ์ ๋ค๋ฅธ ์๊ทธ๋์ฒ๋ฅผ ๊ฐ์ง ์ถ๊ฐ ํจ์๋ฅผ
๊ตฌํํ๊ณ ๋
ธ์ถํ ์ ์๋ค.
์ด ๊ตฌ์กฐ ๋ด์ ๊ฐ๋ฅํ ์์ฑ๊ณผ ๊ทธ ๊ฐ๋ฅํ ๊ฐ์ DID ๊ท๊ฒฉ ๋ ์ง์คํธ๋ฆฌ [[?DID-SPEC-REGISTRIES]]์ ๋ฑ๋ก๋์ด์ผ ํ๋ค. ์ด ๊ท๊ฒฉ์ ์ญ์ฐธ์กฐ ์ต์ ์ ๋ํด ๋ค์๊ณผ ๊ฐ์ ๊ณตํต ์์ฑ์ ์ ์ํ๋ค:
contentStream์ ๋ํด ์ ํธํ๋ ๋ฏธ๋์ด
์ ํ์ด๋ค. ๋ฏธ๋์ด ์ ํ์
ASCII ๋ฌธ์์ด๋ก ํํ๋์ด์ผ ํ๋ค. ํด๋น
ํํ์ด ์ง์๋๊ณ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ
DID URL ์ญ์ฐธ์กฐ ๊ตฌํ์ ์ด ๊ฐ์ ์ฌ์ฉํ์ฌ ๋ฐํ๋ ๊ฐ์ ํฌํจ๋
ํํ์ contentType์ ๊ฒฐ์ ํด์ผ ํ๋ค.
์ด ๊ตฌ์กฐ ๋ด์ ๊ฐ๋ฅํ ์์ฑ๊ณผ ๊ทธ ๊ฐ๋ฅํ ๊ฐ์ DID ๊ท๊ฒฉ ๋ ์ง์คํธ๋ฆฌ [[?DID-SPEC-REGISTRIES]]์ ๋ฑ๋ก๋์ด ์๋ค. ์ด ๊ท๊ฒฉ์ ๋ค์๊ณผ ๊ฐ์ ๊ณตํต ์์ฑ์ ์ ์ํ๋ค.
contentStream์ ๋ฏธ๋์ด
์ ํ์ ์ด ์์ฑ์ ์ฌ์ฉํ์ฌ ํํ๋์ด์ผ ํ๋ค. ๋ฏธ๋์ด ์ ํ ๊ฐ์
ASCII ๋ฌธ์์ด๋ก ํํ๋์ด์ผ ํ๋ค.
contentStream์ ์ฐพ์ ์ ์๋ค.
์ ๋ ฅ ๋ฐ ์ถ๋ ฅ ๋ฉํ๋ฐ์ดํฐ๋ ์ข ์ข DID ํด์, DID URL ์ญ์ฐธ์กฐ ๋ฐ ๊ธฐํ DID ๊ด๋ จ ํ๋ก์ธ์ค ์ค์ ๊ด๋ จ๋๋ค. ์ด ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ตฌ์กฐ๋ ์์ฑ์ map์ด์ด์ผ ํ๋ค. ๊ฐ ์์ฑ ์ด๋ฆ์ ๋ฌธ์์ด์ด์ด์ผ ํ๋ค. ๊ฐ ์์ฑ ๊ฐ์ ๋ฌธ์์ด, map, ๋ชฉ๋ก, set, ๋ถ๋ฆฌ์ธ ๋๋ ๋์ด์ด์ผ ํ๋ค. map๊ณผ ๋ชฉ๋ก๊ณผ ๊ฐ์ ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ด์ ๊ฐ๋ ์ด๋ฌํ ๋ฐ์ดํฐ ์ ํ ์ค ํ๋์ฌ์ผ ํ๋ค. DID ๊ท๊ฒฉ ๋ ์ง์คํธ๋ฆฌ [[?DID-SPEC-REGISTRIES]]์ ๋ฑ๋ก๋ ๋ชจ๋ ๋ฉํ๋ฐ์ดํฐ ์์ฑ ์ ์๋ ํด๋น ๊ฐ์ ๋ํ ์ถ๊ฐ ํ์์ด๋ ์ ํ์ ํฌํจํ์ฌ ๊ฐ ์ ํ์ ์ ์ํด์ผ ํ๋ค(์: ๋ ์ง ๋๋ 10์ง ์ ์๋ก ํฌ๋งท๋ ๋ฌธ์์ด). ์์ฑ ์ ์์์ ๊ฐ์ ๋ฌธ์์ด์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ถ์ฅ๋๋ค. ์ ์ฒด ๋ฉํ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ [[INFRA]] ๊ท๊ฒฉ์ JSON ์ง๋ ฌํ ๊ท์น์ ๋ฐ๋ผ ์ง๋ ฌํํ ์ ์์ด์ผ ํ๋ค. ๊ตฌํ์ ๋ฉํ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ค๋ฅธ ๋ฐ์ดํฐ ํ์์ผ๋ก ์ง๋ ฌํํ ์ ์๋ค.
๋ฉํ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ๋ ฅ์ด๋ ์ถ๋ ฅ์ผ๋ก ์ฌ์ฉํ๋ ํจ์์ ๋ชจ๋ ๊ตฌํ์ ์ฌ๊ธฐ์ ์ค๋ช ๋ ๋ชจ๋ ๋ฐ์ดํฐ ์ ํ์ ๊ฒฐ์ ์ ์ธ ๋ฐฉ์์ผ๋ก ์์ ํ ํํํ ์ ์๋ค. ๋ฉํ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ์ง๋ ฌํ๊ฐ ์๋ ๋ฐ์ดํฐ ์ ํ์ ๊ด์ ์์ ์ ์๋๋ฏ๋ก, ํํ์ ์ํ ๋ฐฉ๋ฒ์ ํจ์์ ๊ตฌํ ๋ด๋ถ์ ์์ผ๋ฉฐ ์ด ๊ท๊ฒฉ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ค.
๋ค์ ์์ ๋ DID ํด์ ์ ๋ ฅ ๋ฉํ๋ฐ์ดํฐ๋ก ์ฌ์ฉ๋ ์ ์๋ JSON ์ธ์ฝ๋ฉ๋ ๋ฉํ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ค๋ค.
{
"accept": "application/did+ld+json"
}
์ด ์์ ๋ ๋ค์ ํ์์ ๋ฉํ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ํด๋นํ๋ค:
ยซ[
"accept" โ "application/did+ld+json"
]ยป
๋ค์ ์์ ๋ DID๋ฅผ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ DID ํด์ ๋ฉํ๋ฐ์ดํฐ๋ก ์ฌ์ฉ๋ ์ ์๋ JSON ์ธ์ฝ๋ฉ๋ ๋ฉํ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ค๋ค.
{
"error": "notFound"
}
์ด ์์ ๋ ๋ค์ ํ์์ ๋ฉํ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ํด๋นํ๋ค:
ยซ[
"error" โ "notFound"
]ยป
๋ค์ ์์ ๋ DID ๋ฌธ์์ ๊ด๋ จ๋ ํ์์คํฌํ๋ฅผ ์ค๋ช ํ๊ธฐ ์ํด DID ๋ฌธ์ ๋ฉํ๋ฐ์ดํฐ๋ก ์ฌ์ฉ๋ ์ ์๋ JSON ์ธ์ฝ๋ฉ๋ ๋ฉํ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ค๋ค.
{
"created": "2019-03-23T06:35:22Z",
"updated": "2023-08-10T13:40:06Z"
}
์ด ์์ ๋ ๋ค์ ํ์์ ๋ฉํ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ํด๋นํ๋ค:
ยซ[
"created" โ "2019-03-23T06:35:22Z",
"updated" โ "2023-08-10T13:40:06Z"
]ยป
DID ๋ฉ์๋๋ ๊ตฌํ์๊ฐ ์ด ๊ท๊ฒฉ์์ ์ค๋ช ํ๋ ๊ธฐ๋ฅ์ ์ด๋ป๊ฒ ๊ตฌํํ ์ ์๋์ง ์ ์ํ๋ค. DID ๋ฉ์๋๋ ์ข ์ข ํน์ ๊ฒ์ฆ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๋ ์ง์คํธ๋ฆฌ์ ์ฐ๊ด๋๋ค. ์๋ก์ด DID ๋ฉ์๋๋ ๋์ผํ DID ๋ฉ์๋์ ์๋ก ๋ค๋ฅธ ๊ตฌํ ๊ฐ์ ์ํธ ์ด์ฉ์ฑ์ ๊ฐ๋ฅํ๊ฒ ํ๊ธฐ ์ํด ์์ฒด ๊ท๊ฒฉ์ ์ ์๋๋ค.
๊ฐ๋
์ ์ผ๋ก, ์ด ๊ท๊ฒฉ๊ณผ DID ๋ฉ์๋ ๊ท๊ฒฉ ๊ฐ์ ๊ด๊ณ๋ IETF ์ผ๋ฐ
URI ๊ท๊ฒฉ [[?RFC3986]]๊ณผ http ์ฒด๊ณ [[?RFC7230]]์
๊ฐ์ ํน์ URI ์ฒด๊ณ [[?IANA-URI-SCHEMES]] ๊ฐ์ ๊ด๊ณ์ ์ ์ฌํ๋ค.
DID ๋ฉ์๋ ๊ท๊ฒฉ์ ํน์ DID ์ฒด๊ณ๋ฅผ ์ ์ํ๋ ๊ฒ ์ธ์๋ ํน์
์ ํ์ ๊ฒ์ฆ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ DID์
DID ๋ฌธ์๋ฅผ ์์ฑ, ํด์, ๊ฐฑ์ ๋ฐ ๋นํ์ฑํํ๋ ๋ฉ์ปค๋์ฆ์ ์ ์ํ๋ค.
๋ํ DID์ ๊ด๋ จ๋ ๋ชจ๋ ๊ตฌํ ๊ณ ๋ ค์ฌํญ๊ณผ ๋ณด์ ๋ฐ ๊ฐ์ธ์ ๋ณด ๋ณดํธ
๊ณ ๋ ค์ฌํญ์ ๋ฌธ์ํํ๋ค.
์ด ์น์ ์์๋ DID ๋ฉ์๋ ๊ท๊ฒฉ ์์ฑ์ ์ํ ์๊ตฌ์ฌํญ์ ๋ช ์ํ๋ค.
๋ฉ์๋๋ณ DID ๊ตฌ๋ฌธ์ ์ ์ํ ๋ ๋ชจ๋ DID ๋ฉ์๋ ๊ท๊ฒฉ์ ๋ํ ์๊ตฌ์ฌํญ์ ๋ค์๊ณผ ๊ฐ๋ค:
method-name ๊ท์น์ ๋ช
์๋ ๋๋ก ์ ํํ ํ๋์ ๋ฉ์๋
์ด๋ฆ์ผ๋ก ์๋ณ๋๋ ์ ํํ ํ๋์ ๋ฉ์๋๋ณ DID ์ฒด๊ณ๋ฅผ ์ ์ํด์ผ
ํ๋ค.
method-specific-id ๊ตฌ์ฑ ์์๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ช
์ํด์ผ
ํ๋ค.
method-specific-id ๊ฐ์
๋ฏผ๊ฐ๋์ ์ ๊ทํ๋ฅผ ์ ์ํด์ผ ํ๋ค.
method-specific-id ๊ฐ์ DID ๋ฉ์๋ ๋ด์์
๊ณ ์ ํด์ผ ํ๋ค. method-specific-id ๊ฐ ์์ฒด๋ ์
์ธ๊ณ์ ์ผ๋ก ๊ณ ์ ํ ์ ์๋ค.
method-name ์ถฉ๋ ๊ฐ๋ฅ์ฑ์ ์ค์ด๊ธฐ ์ํด
DID ๋ฉ์๋ ๊ท๊ฒฉ์ DID ๊ท๊ฒฉ ๋ ์ง์คํธ๋ฆฌ
[[?DID-SPEC-REGISTRIES]]์ ๋ฑ๋ก๋์ด์ผ ํ๋ค.
method-specific-id ํ์์
์ ์ํ ์ ์๋ค.
method-specific-id ํ์์ ์ฝ๋ก ์ ํฌํจํ ์ ์๋ค. ์ฝ๋ก ์
์ฌ์ฉ์ method-specific-id ABNF ๊ท์น๊ณผ ๊ตฌ๋ฌธ์ ์ผ๋ก
์ผ์นํด์ผ ํ๋ค.
method-specific-id์ ์ฝ๋ก ์ ์๋ฏธ๋ ์ ์ ์ผ๋ก ๋ฉ์๋๋ณ๋ก
๋ค๋ฅด๋ค. ์ฝ๋ก ์ DID ๋ฉ์๋์์ ๊ณ์ธต์ ์ผ๋ก ๋ถํ ๋ ๋ค์์คํ์ด์ค๋ฅผ
์ค์ ํ๊ฑฐ๋, ๊ฒ์ฆ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๋ ์ง์คํธ๋ฆฌ์ ํน์ ์ธ์คํด์ค ๋๋
๋ถ๋ถ์ ์๋ณํ๊ฑฐ๋, ๊ธฐํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋ ์ ์๋ค. ๊ตฌํ์๋ ๋ชจ๋
DID ๋ฉ์๋์ ์ผ๋ฐ์ ์ผ๋ก ์ ์ฉ๋๋ ์ฝ๋ก ๊ณผ ๊ด๋ จ๋ ์๋ฏธ๋ ๋์์
๊ฐ์ ํ์ง ์๋ ๊ฒ์ด ์ข๋ค.
๋ฉ์๋ ์์ ์ ์ ์ํ ๋ ๋ชจ๋ DID ๋ฉ์๋ ๊ท๊ฒฉ์ ๋ํ ์๊ตฌ์ฌํญ์ ๋ค์๊ณผ ๊ฐ๋ค:
์์ ์ํ์ ์ํ ์ธ์ฆ์ ์ํํ๋ ๋น์ฌ์์ ๊ถํ์ DID ๋ฉ์๋์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์๋ฅผ ๋ค์ด, DID ๋ฉ์๋๋ —
controller ์์ฑ์ ์ฌ์ฉํ ์ ์๋ค.
authentication ์๋์ ๋์ด๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ๋ฅผ
์ฌ์ฉํ ์ ์๋ค.
capabilityInvocation ๊ฒ์ฆ ๊ด๊ณ๋ฅผ ํตํด
์ง์ ๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ๊ฐ์ DID ๋ฌธ์์ ๋ค๋ฅธ ๊ตฌ์ฑ์ ์ฌ์ฉํ
์ ์๋ค.
๋ณด์ ๊ณ ๋ ค์ฌํญ ์น์ ์ ์์ฑํ ๋ ๋ชจ๋ DID ๋ฉ์๋ ๊ท๊ฒฉ์ ๋ํ ์๊ตฌ์ฌํญ์ ๋ค์๊ณผ ๊ฐ๋ค:
๊ฐ์ธ์ ๋ณด ๋ณดํธ ๊ณ ๋ ค์ฌํญ ์น์ ์ ์์ฑํ ๋ ๋ชจ๋ DID ๋ฉ์๋ ๊ท๊ฒฉ์ ๋ํ ์๊ตฌ์ฌํญ์ ๋ค์๊ณผ ๊ฐ๋ค:
์ด ์น์ ์๋ ํ์ค์ ์๋ณ์๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ด ์ด ๊ธฐ์ ์ ํ๋ก๋์ ํ๊ฒฝ์ ๋ฐฐํฌํ๊ธฐ ์ ์ ๊ณ ๋ คํ ๊ฒ์ ๊ถ์ฅํ๋ ๋ค์ํ ๋ณด์ ๊ณ ๋ ค์ฌํญ์ด ํฌํจ๋์ด ์๋ค. DID๋ ๋ง์ IETF ํ์ค์์ ์ฌ์ฉ๋๊ณ [[?RFC3552]]์ ๋ฌธ์ํ๋ ์ํ ๋ชจ๋ธ์์ ์๋ํ๋๋ก ์ค๊ณ๋์๋ค. ์ด ์น์ ์์๋ [[?RFC3552]]์ ์ฌ๋ฌ ๊ณ ๋ ค์ฌํญ๊ณผ DID ์ํคํ ์ฒ์ ๊ณ ์ ํ ๊ธฐํ ๊ณ ๋ ค์ฌํญ์ ๋ํด ์์ธํ ์ค๋ช ํ๋ค.
DID ๊ท๊ฒฉ ๋ ์ง์คํธ๋ฆฌ [[?DID-SPEC-REGISTRIES]]์๋ DID ๋ฉ์๋ ์ด๋ฆ๊ณผ ํด๋น DID ๋ฉ์๋ ๊ท๊ฒฉ์ ์ ๋ณด ๋ชฉ๋ก์ด ํฌํจ๋์ด ์๋ค. ๊ตฌํ์๋ ์ด๋ค ํน์ ํ DID ๋ฉ์๋ ์ด๋ฆ๊ณผ ์ฌ์ฉํด์ผ ํ DID ๋ฉ์๋ ๊ท๊ฒฉ์ ์ง์ํ ์ค์ ๊ถํ์ด ์๋ค๋ ์ ์ ์ผ๋์ ๋์ด์ผ ํ๋ค. ํน์ DID ๋ณํ๊ธฐ๊ฐ DID ๋ฉ์๋๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌํํ๋์ง ์ฌ๋ถ์ ์์ฌ์ด ์๋ ๊ฒฝ์ฐ, DID ๊ท๊ฒฉ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฑ๋ก๋ ๊ท๊ฒฉ์ ์กฐํํ๊ณ ์ฌ์ฉํ DID ๋ณํ๊ธฐ ๊ตฌํ์ ๋ํ ์ ๋ณด์ ์ ๊ฐํ ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์๋ค.
๋์งํธ ์ธ๊ณ ๋๋ ๋ฌผ๋ฆฌ์ ์ธ๊ณ์ ์ํฐํฐ๋ฅผ DID, DID ๋ฌธ์ ๋๋ ์ํธํ ์๋ฃ์ ๋ฐ์ธ๋ฉํ๋ ค๋ฉด ์ด ๊ท๊ฒฉ์์ ๊ณ ๋ คํ๋ ๋ณด์ ํ๋กํ ์ฝ์ ์ฌ์ฉํด์ผ ํ๋ค. ๋ค์ ์น์ ์์๋ ๋ช ๊ฐ์ง ๊ฐ๋ฅํ ์๋๋ฆฌ์ค์ ์ธ์ฆ ๋๋ ๊ถํ ๋ถ์ฌ๋ฅผ ๋ชฉ์ ์ผ๋ก ์ํฐํฐ๊ฐ DID ๋๋ DID ๋ฌธ์์ ๋ํ ์ ์ด๋ฅผ ์ฆ๋ช ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ค.
DID ๋ฐ/๋๋ DID ๋ฌธ์์ ๋ํ ์ ์ด๋ฅผ ์ฆ๋ช ํ๋ ๊ฒ์ ๊ฒ์ฆ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๋ ์ง์คํธ๋ฆฌ์์ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ์๊ฒฉ ์์คํ ์์ ์ธ์ฆํ ๋ ์ ์ฉํ๋ค. ์ํธํ๋ ๋์งํธ ์๋ช ๊ณผ ๊ฒ์ฆ ๊ฐ๋ฅํ ํ์์คํฌํ๋ฅผ ํตํด DID ๋ฌธ์์ ๊ด๋ จ๋ ํน์ ๋ณด์ ํ๋กํ ์ฝ์ ์ํธํ์ ์ผ๋ก ๊ฒ์ฆํ ์ ์๋ค. ์ด๋ฅผ ์ํด ์ด ๊ท๊ฒฉ์ ๊ณผ ์์ ์ ์ฉํ ๊ฒ์ฆ ๊ด๊ณ๋ฅผ ์ ์ํ๋ค. ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ์ฐ๊ฒฐ๋ ๋น๋ฐ ์ํธํ ์๋ฃ๋ ์ธ์ฆ ๋๋ ๊ถํ ๋ถ์ฌ ๋ณด์ ํ๋กํ ์ฝ์ ์ผ๋ถ๋ก ์ํธํ๋ ๋์งํธ ์๋ช ์ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ค.
์ผ๋ถ DID ๋ฉ์๋๋ ๋์งํธ ์๋ช ๊ณผ ๊ธฐํ ์ฆ๋ช ์ DID ๋ฌธ์ ๋๋ ์ ํฌํจ์ํฌ ์ ์๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ฌํ ์ฆ๋ช ์์ฒด๋ง์ผ๋ก๋ ๋ฐ๋์ DID์ ๋ํ ์ ์ด๋ฅผ ์ฆ๋ช ํ๊ฑฐ๋ DID ๋ฌธ์๊ฐ DID์ ๋ํด ์ฌ๋ฐ๋ฅธ ๊ฒ์์ ๋ณด์ฅํ์ง๋ ์๋๋ค. ์ฌ๋ฐ๋ฅธ DID ๋ฌธ์๋ฅผ ์ป๊ณ DID์ ๋ํ ์ ์ด๋ฅผ ๊ฒ์ฆํ๋ ค๋ฉด DID ๋ฉ์๋์์ ์ ์ํ ๋๋ก DID ํด์ ํ๋ก์ธ์ค๋ฅผ ์ํํด์ผ ํ๋ค.
DID์ DID ๋ฌธ์๋ ๋ณธ์ง์ ์ผ๋ก ๊ฐ์ธ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ์ง ์์ผ๋ฉฐ, ๋น๊ณต๊ฐ ์ํฐํฐ๊ฐ DID ๋ฌธ์์ ๊ฐ์ธ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ์ง ์๋ ๊ฒ์ด ๊ฐ๋ ฅํ ๊ถ๊ณ ๋๋ค.
DID๋ฅผ ์ ๋ถ์ ๊ฐ์ ์ ๋ขฐํ ์ ์๋ ๊ธฐ๊ด์ ์ํด ์ฆ๋ช ๋ ์ ์๋ ๋ฐฉ์์ผ๋ก ๊ฐ์ธ ๋๋ ์กฐ์ง์ ๋ฌผ๋ฆฌ์ ์ ์์ ๋ฐ์ธ๋ฉํ๋ ๊ฒ์ด ์ ์ฉํ ์ ์๋ค. ์ด ๊ท๊ฒฉ์ ์ด๋ฌํ ๋ชฉ์ ์ผ๋ก ๊ฒ์ฆ ๊ด๊ณ๋ฅผ ์ ๊ณตํ๋ค. ์ด ๊ธฐ๋ฅ์ ์ฌ์ ์ด๋ฉฐ ํ๋ ์ด์์ ๊ดํ ๊ตฌ์ญ์์ ๋ฒ์ ๊ฐ์ ๋ ฅ์ด ์๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ ์ ์๋ ์ํธ ์์ฉ์ ๊ฐ๋ฅํ๊ฒ ํ ์ ์๋ค. ๊ทธ๋ฌํ ๋ฐ์ธ๋ฉ์ ์ค์ ํ๋ ๊ฒ์ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๊ณ ๋ ค์ฌํญ๊ณผ ์ ์คํ๊ฒ ๊ท ํ์ ์ด๋ฃจ์ด์ผ ํ๋ค( ์ฐธ์กฐ).
DID๋ฅผ ์ฌ๋์ด๋ ์กฐ์ง๊ณผ ๊ฐ์ ๋ฌผ๋ฆฌ์ ์ธ๊ณ์ ๋ฌด์ธ๊ฐ์ ๋ฐ์ธ๋ฉํ๋ ํ๋ก์ธ์ค(์: ํด๋น DID์ ๋์ผํ ์ฃผ์ฒด๋ฅผ ๊ฐ์ง ๊ฒ์ฆ ๊ฐ๋ฅํ ํฌ๋ฆฌ๋ด์ ์ฌ์ฉ)๋ ์ด ๊ท๊ฒฉ์์ ๊ณ ๋ ค๋๋ฉฐ ๊ฒ์ฆ ๊ฐ๋ฅํ ํฌ๋ฆฌ๋ด์ ๋ฐ์ดํฐ ๋ชจ๋ธ [[VC-DATA-MODEL]]์์ ์ถ๊ฐ๋ก ์ ์๋๋ค.
DID ๋ฌธ์๊ฐ DID ์ฃผ์ฒด์ ์ธ์ฆ ๋๋ ๊ถํ ๋ถ์ฌ๋ฅผ ์ํ ์๋น์ค๋ฅผ ๊ฒ์ํ๋ ๊ฒฝ์ฐ( ์ฐธ์กฐ), ์๋น์ค ์๋ํฌ์ธํธ ์ ๊ณต์, ์ฃผ์ฒด ๋๋ ์์ฒญ ๋น์ฌ์๋ ํด๋น ์๋น์ค ์๋ํฌ์ธํธ์์ ์ง์๋๋ ์ธ์ฆ ํ๋กํ ์ฝ์ ์๊ตฌ์ฌํญ์ ์ค์ํ ์ฑ ์์ด ์๋ค.
DID ๋ฐ DID ๋ฌธ์ ์ ๋ฐ์ดํธ์ ๋ถ์ธ ๋ฐฉ์ง๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ์ง์๋๋ค:
DID ๋ฌธ์์ ๋ํ ๋ฌด๋จ ๋ณ๊ฒฝ์ ์ํํ๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ ๋ DID ์ฃผ์ฒด๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ์ ๊ทน์ ์ผ๋ก ์๋ฆฌ๋ ๊ฒ์ด๋ค. ์ด๋ ๊ธฐ์กด์ ์ฌ์ฉ์ ์ด๋ฆ/์ํธ ๊ณ์ ์์ ํ์ผ์ ์ด๋ฉ์ผ ์ฃผ์๋ก ์ํธ ์ฌ์ค์ ์๋ฆผ์ ๋ณด๋ด ๊ณ์ ํ์ทจ๋ฅผ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋๋ ๊ฒ๊ณผ ์ ์ฌํ๋ค.
DID์ ๊ฒฝ์ฐ, ๊ทธ๋ฌํ ์๋ฆผ์ ์์ฑํ ์ค๊ฐ ๋ฑ๋ก ๊ธฐ๊ด์ด๋ ๊ณ์ ์ ๊ณต์๊ฐ ์๋ค. ๊ทธ๋ฌ๋ DID๊ฐ ๋ฑ๋ก๋ ๊ฒ์ฆ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๋ ์ง์คํธ๋ฆฌ๊ฐ ๋ณ๊ฒฝ ์๋ฆผ์ ์ง์ ์ง์ํ๋ ๊ฒฝ์ฐ, DID ์ปจํธ๋กค๋ฌ์๊ฒ ๊ตฌ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์๋ค. ์๋ฆผ์ ๊ธฐ์กด DID์ ๋์ด๋ ๊ด๋ จ ์๋น์ค ์๋ํฌ์ธํธ๋ก ์ง์ ์ ์ก๋ ์ ์๋ค.
DID ์ปจํธ๋กค๋ฌ๊ฐ (๊ฒ์ฆ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๋ ์ง์คํธ๋ฆฌ ์์ฒด ์ด์ธ์) ์ 3์ ๋ชจ๋ํฐ๋ง ์๋น์ค์ ์์กดํ๊ธฐ๋ก ์ ํํ๋ฉด ๋ค๋ฅธ ๊ณต๊ฒฉ ๋ฒกํฐ๊ฐ ๋์ ๋๋ค.
ํ์ค์ ์๋ณ์ ์ํคํ ์ฒ์์๋ ์ํธํ ์๋ฃ๋ ์ํธํ๋ ๋์งํธ ์๋ช ๋ง๋ฃ ์ ์ฑ ์ ์ํํ ์ค์ ์ง์ค์ ๊ธฐ๊ด์ด ์์ ์ ์๋ค. ๋ฐ๋ผ์ ์์ฒญ ๋น์ฌ์๋ DID ๋ณํ๊ธฐ ๋ฐ ๊ฒ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ์ ์ง์ ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ํธํ ์๋ฃ๊ฐ ์ฌ์ฉ๋ ๋น์์ ๋ง๋ฃ๋์ง ์์๋์ง ๊ฒ์ฆํ๋ค. ์์ฒญ ๋น์ฌ์๋ ๊ฒ์ฆ ํ๋ก์ธ์ค์ ๋ํ ์ ๋ ฅ ์ธ์๋ ์์ฒด ๋ง๋ฃ ์ ์ฑ ์ ์ฌ์ฉํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ์ผ๋ถ ์์ฒญ ๋น์ฌ์๋ 5๋ถ ์ ์ ์ธ์ฆ์ ์๋ฝํ ์ ์๋ ๋ฐ๋ฉด, ๊ณ ์ ๋ฐ ์๊ฐ ์์ค์ ์ก์ธ์คํ ์ ์๋ ๋ค๋ฅธ ์์ฒญ ๋น์ฌ์๋ ์ธ์ฆ์ ์ง๋ 500๋ฐ๋ฆฌ์ด ์ด๋ด์ ํ์์คํฌํ๊ฐ ์ฐํ์ผ ํ ์ ์๋ค.
๋ ๊ฑฐ์ ์ํธํ๋ ๋์งํธ ์๋ช ์ ๊ฒ์ฆํ๋ ๊ฒ๊ณผ ๊ฐ์ด ์ด๋ฏธ ๋ง๋ฃ๋ ์ํธํ ์๋ฃ์ ์ฌ์ฉ์ ํ์ฅํด์ผ ํ๋ ์ ๋นํ ํ์์ฑ์ด ์๋ ์์ฒญ ๋น์ฌ์๋ ์๋ค. ์ด๋ฌํ ์๋๋ฆฌ์ค์์ ์์ฒญ ๋น์ฌ์๋ ๊ฒ์ฆ ์ํํธ์จ์ด์ ์ํธํ ํค ์๋ฃ ๋ง๋ฃ๋ฅผ ๋ฌด์ํ๋๋ก ์ง์ํ๊ฑฐ๋ ์ํธํ ํค ์๋ฃ๊ฐ ์ฌ์ฉ๋ ๋น์์ ๋ง๋ฃ๋์๋์ง ํ์ธํ ์ ์๋ค.
๊ต์ฒด๋ ์๋ก์ด ๊ฒ์ฆ ๋ฐฉ๋ฒ๊ฐ DID ๋ฌธ์์ ์ถ๊ฐ๋๋ฉด ๊ธฐ์กด ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ์ฐ๊ฒฐ๋ ๋น๋ฐ ์ํธํ ์๋ฃ๋ฅผ ๋นํ์ฑํํ๊ฑฐ๋ ํ๊ธฐํ ์ ์๊ฒ ํด์ฃผ๋ ๊ด๋ฆฌ ํ๋ก์ธ์ค์ด๋ค. ์์ผ๋ก ์ปจํธ๋กค๋ฌ๊ฐ ์ด์ ๋น๋ฐ ์ํธํ ์๋ฃ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑํ์ ์๋ก์ด ์ฆ๋ช ์ ์ด์ ์๋ก์ด ์ํธํ ์๋ฃ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ์ ์์ผ๋ฉฐ ์๋ก์ด ๊ฒ์ฆ ๋ฐฉ๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ฆ๋ ์ ์๋ค.
๊ต์ฒด๋ ์ปจํธ๋กค๋ฌ์ ์ํ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ๋น๋ฒํ ๊ต์ฒด๊ฐ ๊ณต๊ฒฉ์์๊ฒ ๋จ์ผ ์์๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ๊ฐ์น๋ฅผ ์ค์ด๊ธฐ ๋๋ฌธ์ ๊ฒ์ฆ ๋ฐฉ๋ฒ ์์์ผ๋ก๋ถํฐ ๋ณดํธํ๋ ๋ฐ ์ ์ฉํ ๋ฉ์ปค๋์ฆ์ด๋ค. ๊ต์ฒด ์งํ ์ฆ์ ํ๊ธฐํ๋ ๊ฒ์ ๋ฉ์์ง ์ํธํ ๋ฐ ์ธ์ฆ๊ณผ ๊ด๋ จ๋ ๊ฒ๊ณผ ๊ฐ์ด ์ปจํธ๋กค๋ฌ๊ฐ ๋จ๊ธฐ ๊ฒ์ฆ์ ์ํด ์ง์ ํ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ์ ์ฉํ๋ค.
๊ฒ์ฆ ๋ฐฉ๋ฒ ๊ต์ฒด ์ฌ์ฉ์ ๊ณ ๋ คํ ๋ ๋ค์ ์ฌํญ์ด ์ ์ฉํ ์ ์๋ค:
ํ๊ธฐ๋ ๊ธฐ์กด ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ์ฐ๊ฒฐ๋ ๋น๋ฐ ์ํธํ ์๋ฃ๋ฅผ ๋นํ์ฑํํ์ฌ ์๋ก์ด ๋์งํธ ์๋ช ์ฆ๋ช ์ ์์ฑํ๋ ์ ํจํ ํ์์ด ๋์ง ์๋๋ก ํ๋ ๊ด๋ฆฌ ํ๋ก์ธ์ค์ด๋ค.
ํ๊ธฐ๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ ์์์ ๋์ํ๋ ์ ์ฉํ ๋ฉ์ปค๋์ฆ์ด๋ค. ๊ต์ฒด ์งํ ์ฆ์ ํ๊ธฐํ๋ ๊ฒ์ ๋ฉ์์ง ์ํธํ ๋ฐ ์ธ์ฆ๊ณผ ๊ด๋ จ๋ ๊ฒ๊ณผ ๊ฐ์ด ์ปจํธ๋กค๋ฌ๊ฐ ๋จ๊ธฐ ๊ฒ์ฆ์ ์ํด ์ง์ ํ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ์ ์ฉํ๋ค.
๊ฒ์ฆ ๋ฐฉ๋ฒ์ ์ฐ๊ฒฐ๋ ๋น๋ฐ์ ์์์ ๊ณต๊ฒฉ์๊ฐ DID ๋ฌธ์์์ ์ปจํธ๋กค๋ฌ์ ์ํด ํํ๋ ๊ฒ์ฆ ๊ด๊ณ์ ๋ฐ๋ผ ์๋ฅผ ๋ค์ด ์ธ์ฆ์ ์ํด ์ด๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ค. ๊ณต๊ฒฉ์์ ๋น๋ฐ ์ฌ์ฉ์ ๊ฒ์ฆ ๋ฐฉ๋ฒ๊ฐ ๋ฑ๋ก๋ ์์ ๋ถํฐ ํ๊ธฐ๋ ์์ ๊น์ง ํฉ๋ฒ์ ์ธ ์ปจํธ๋กค๋ฌ์ ์ฌ์ฉ๊ณผ ๊ตฌ๋ณํ ์ ์์ ์ ์๋ค.
๊ฒ์ฆ ๋ฐฉ๋ฒ ํ๊ธฐ ์ฌ์ฉ์ ๊ณ ๋ คํ ๋ ๋ค์ ์ฌํญ์ด ์ ์ฉํ ์ ์๋ค:
๊ฒ์ฆ์๊ฐ ํ๊ธฐ๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ์ฆ๋ช ์ด๋ ์๋ช ์ ์๋ฝํ์ง ์๊ธฐ๋ก ์ ํํ ์ ์์ง๋ง, ๊ฒ์ฆ์ด ํ๊ธฐ๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ๋ก ์ด๋ฃจ์ด์ก๋์ง ์๋ ๊ฒ์ ๋ณด์ด๋ ๊ฒ๋ณด๋ค ๊น๋ค๋กญ๋ค. ์ผ๋ถ DID ๋ฉ์๋๋ ํน์ ์์ ๋๋ DID ๋ฌธ์์ ํน์ ๋ฒ์ ์์ DID์ ์ํ๋ฅผ ๋๋์๋ณผ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ด ์ํธํ๋ก ๊ฒ์ฆ ๊ฐ๋ฅํ ๋ช ์ธ๊ฐ ๋ง๋ค์ด์ง ์์ ๋๋ DID ๋ฒ์ ์ ์ ๋ขฐํ ์ ์๋ ๋ฐฉ์์ผ๋ก ๊ฒฐ์ ํ๋ ๊ธฐ๋ฅ๊ณผ ๊ฒฐํฉ๋๋ฉด ํ๊ธฐ๊ฐ ํด๋น ๋ช ์ธ๋ฅผ ์ทจ์ํ์ง ์๋๋ค. ์ด๋ DID๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฅผ ๋ค์ด ๋ด๋ณด ๋์ถ์ ์๋ช ํ๋ ๊ฒ๊ณผ ๊ฐ์ ๊ตฌ์๋ ฅ ์๋ ์ฝ์ ์ ํ๊ธฐ ์ํ ๊ธฐ๋ฐ์ด ๋ ์ ์๋ค.
์ด๋ฌํ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋๋ฉด ํ๊ธฐ๋ ์๊ธ ์ ์ฉ๋์ง ์์ผ๋ฉฐ ํฅํ ๋ฉ์๋ ์ฌ์ฉ๋ง ๋ฌดํจํํ๋ค.
๊ทธ๋ฌ๋ ์ด๋ฌํ ์๋ฏธ๋ก ์ด ์์ ํ๋ ค๋ฉด ๋ ๋ฒ์งธ ์กฐ๊ฑด์ธ ์ฃผ์ฅ์ด ์ด๋ฃจ์ด์ง ์์ ์ DID ๋ฌธ์์ ์ํ๊ฐ ์ด๋ ํ๋์ง ์ ์ ์๋ ๋ฅ๋ ฅ์ด ์ ์ฉ๋์ด์ผ ํ๋ค. ๊ทธ ๋ณด์ฅ ์์ด๋ ๋๊ตฐ๊ฐ๊ฐ ํ๊ธฐ๋ ํค๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๊ณผ๊ฑฐ์ ๋ชจ์ ๋ ์ง๋ก ์ํธํ๋ก ๊ฒ์ฆ ๊ฐ๋ฅํ ๋ช ์ธ๋ฅผ ๋ง๋๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ค.
์ผ๋ถ DID ๋ฉ์๋๋ DID์ ํ์ฌ ์ํ๋ง ๊ฒ์ํ ์ ์๋ค. ์ด๊ฒ์ด ์ฌ์ค์ด๊ฑฐ๋ ์ํธํ๋ก ๊ฒ์ฆ ๊ฐ๋ฅํ ๋ช ์ธ๊ฐ ์ด๋ฃจ์ด์ง ์์ ์ DID ์ํ๋ฅผ ์ ๋ขฐํ ์ ์๊ฒ ๊ฒฐ์ ํ ์ ์๋ ๊ฒฝ์ฐ, ํ์ฌ ์๊ฐ์ ์ ์ธํ๊ณ ์๊ฐ๊ณผ ๊ด๋ จํ์ฌ DID ์ํ๋ฅผ ๊ณ ๋ คํ๋ ๊ฒ์ ํ์ฉํ์ง ์๋ ๊ฒ์ด ์ ์ผํ ์์ ํ ๋ฐฉ๋ฒ์ด๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ทจํ๋ DID ์ํ๊ณ๋ ๋ณธ์ง์ ์ผ๋ก DID ์ปจํธ๋กค๋ฌ์ ์ํด ์ธ์ ๋ ์ง ๋ฌดํจํ๋ ์ ์๋ ์ผ์์ ์ธ ํ ํฐ์ผ๋ก ์ํธํ๋ก ๊ฒ์ฆ ๊ฐ๋ฅํ ๋ช ์ธ๋ฅผ ์ ๊ณตํ๋ค.
์ ๋ขฐํ ์ ์๋ ์์คํ ์ ๋ชจ๋ ์ ๋ขฐ๊ฐ ์ํธํ์ ์ผ๋ก ์ฆ๋ช ๊ฐ๋ฅํ ์ฃผ์ฅ์์ ํ์๋๊ณ , ๋ ๊ตฌ์ฒด์ ์ผ๋ก๋ ์ํธํ ์์คํ ์ธ๋ถ์ ๋ฉํ๋ฐ์ดํฐ๊ฐ ์์คํ ์ ๋ํ ์ ๋ขฐ ๊ฒฐ์ ์ ๊ณ ๋ ค๋์ง ์๋ ์์คํ ์ด๋ค. ์ ๋ขฐํ ์ ์๋ ์์คํ ์์ ํ๊ธฐ๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ๋ํ ์๋ช ๋๋ ์ฆ๋ช ์ ๊ฒ์ฆํ๋ ค๋ฉด DID ๋ฉ์๋๊ฐ `versionId` ๋๋ `versionTime` ์ค ํ๋ ๋๋ ๋ ๋ค์ `updated` ๋ฐ `nextUpdate`๋ผ๋ DID ๋ฌธ์ ๋ฉํ๋ฐ์ดํฐ ์์ฑ ๋ชจ๋๋ฅผ ์ง์ํด์ผ ํ๋ค. ๊ฒ์ฆ์๋ ๋ค์์ด ๋ชจ๋ ์ฌ์ค์ธ ๊ฒฝ์ฐ์๋ง ํ๊ธฐ๋ ํค์ ์๋ช ๋๋ ์ฆ๋ช ์ ๊ฒ์ฆํ ์ ์๋ค:
์ํธํ ์ ๋ ฅ์ ๊ตฌ์ฑํ๋ ๋ฉํ๋ฐ์ดํฐ ์ด์ธ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ธ์ ํ๋ ค๋ ์์คํ ์์๋ ์ ์ฌํ ์ ๋ขฐ๋ฅผ ๋ฌ์ฑํ ์ ์์ง๋ง, ํญ์ ์๋ช ์ด๋ฒคํธ ์์ ์ DID ๋ฌธ์ ๋ด์ฉ์ด ์์ ๋ด์ฉ์ ํฌํจํ๋์ง์ ๋ํ ์ ์คํ ํ๋จ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค.
๋ณต๊ตฌ๋ ์ฅ์น ๋ถ์ค ๋ฑ์ผ๋ก ์ธํด DID ์์ ์ ์ํํ ์ ์๋ ๋ฅ๋ ฅ์ ์์คํ ์ปจํธ๋กค๋ฌ๊ฐ DID ์์ ์ ์ํํ ์ ์๋ ๋ฅ๋ ฅ์ ํ๋ณตํ ์ ์๋ ๋ฐ์์ ์ธ ๋ณด์ ์กฐ์น์ด๋ค.
DID ๋ณต๊ตฌ ์ฌ์ฉ์ ๊ณ ๋ คํ ๋ ๋ค์ ์ฌํญ์ด ์ ์ฉํ ์ ์๋ค:
DID๋ ์ค์ ๋ฑ๋ก ๊ธฐ๊ด์ ํ์ ์์ด ์ ์ธ๊ณ์ ์ธ ๊ณ ์ ์ฑ์ ๋ฌ์ฑํ๋ค. ์ด๋ ์ฌ๋์ด ๊ธฐ์ตํ๊ธฐ ์ด๋ ค์ด ๋๊ฐ๋ก ์จ๋ค. ์ ์ธ๊ณ์ ์ผ๋ก ๋ชจํธํ์ง ์์ ์๋ณ์๋ฅผ ์์ฑํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ๋์๊ฒ ์๋ฏธ๊ฐ ์๋ ๋ฌด์์ ๋ฌธ์์ด์ ์์ฑํ๋ค. ์ด๋ฌํ ์์ถฉ ๊ด๊ณ๋ ์ข ์ข ์ฃผ์ฝ์ ์ผ๊ฐํ์ด๋ผ๊ณ ํ๋ค.
์ฌ๋์ด ์์๋ณด๊ธฐ ์ฌ์ด ์๋ณ์์์ ์์ํ์ฌ DID๋ฅผ ๋ฐ๊ฒฌํ๋ ๊ฒ์ด ๋ฐ๋์งํ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋ค. ์๋ฅผ ๋ค์ด ์์ฐ์ด ์ด๋ฆ, ๋๋ฉ์ธ ์ด๋ฆ ๋๋ DID ์ปจํธ๋กค๋ฌ์ ๊ธฐ์กด ์ฃผ์(์: ํด๋์ ํ ๋ฒํธ, ์ด๋ฉ์ผ ์ฃผ์, ์์ ๋ฏธ๋์ด ์ฌ์ฉ์ ์ด๋ฆ ๋๋ ๋ธ๋ก๊ทธ URL)๊ฐ ์๋ค. ๊ทธ๋ฌ๋ ์ฌ๋์ด ์์๋ณด๊ธฐ ์ฌ์ด ์๋ณ์๋ฅผ DID์ ๋งคํํ๊ณ ๊ฒ์ฆ ๋ฐ ์ ๋ขฐํ ์ ์๋ ๋ฐฉ์์ผ๋ก ์ด๋ฅผ ์ํํ๋ ๋ฌธ์ ๋ ์ด ๊ท๊ฒฉ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์ ์ด ๊ท๊ฒฉ์ ์ฐธ์กฐํ๋ [[?DNS-DID]]์ ๊ฐ์ ๋ณ๋์ ๊ท๊ฒฉ์ ์ ์๋์ด ์๋ค. ์ด๋ฌํ ๊ท๊ฒฉ์์๋ ๋ค์ ์ฌํญ์ ์ ์คํ๊ฒ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ข๋ค:
DID ์ปจํธ๋กค๋ฌ๊ฐ ์ํ๋ ๊ฒฝ์ฐ DID ๋๋ DID URL์ ์๊ตฌ์ ์ด๊ณ ์์น์ ๋ ๋ฆฝ์ ์ธ ๋ฆฌ์์ค ์๋ณ์ ์ญํ ์ ํ ์ ์๋ค. ์ด๋ฌํ ์ ํ์ ์๋ณ์๋ Uniform Resource Name(URN)์ผ๋ก ๋ถ๋ฅ๋๋ฉฐ [[RFC8141]]์ ์ ์๋์ด ์๋ค. DID๋ ๋์งํธ ๋ฆฌ์์ค์ ๋ํ ์ํธํ๋ก ์์ ํ๊ณ ์์น์ ๋ ๋ฆฝ์ ์ธ ์๋ณ์๋ฅผ ์ ๊ณตํ๋ ๋์์ ๊ฒ์์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ฉํ๋ฐ์ดํฐ๋ ์ ๊ณตํ๋ ํฅ์๋ ํํ์ URN์ด๋ค. DID ๋ฌธ์์ DID ์์ฒด ์ฌ์ด์ ๊ฐ์ ์ฐธ์กฐ๋ก ์ธํด DID ์ปจํธ๋กค๋ฌ๋ DID๋ฅผ ์กฐ์ ํ์ง ์๊ณ ๋ ๋ฆฌ์์ค์ ์ค์ ์์น๋ฅผ ์กฐ์ ํ๊ฑฐ๋ ์ฌ์ง์ด ๋ฆฌ์์ค๋ฅผ ์ง์ ์ ๊ณตํ ์ ์๋ค. ์ด๋ฌํ ์ ํ์ DID๋ ๊ฒ์๋ ๋ฆฌ์์ค๊ฐ ์ค์ ๋ก ์๋ณ๋ ๋ฆฌ์์ค์์ ํ์คํ๊ฒ ๊ฒ์ฆํ ์ ์๋ค.
DID๋ฅผ ์ด ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๋ ค๋ DID ์ปจํธ๋กค๋ฌ๋ [[RFC8141]]์ ๋ณด์ ๊ณ ๋ ค์ฌํญ์ ๋ฐ๋ฅด๋ ๊ฒ์ด ์ข๋ค. ํนํ:
๋ง์ ์ฌ์ด๋ฒ ๋ณด์ ์นจํด๋ ํ์ค๊ณผ ํฉ๋ฆฌ์ ์ด๊ณ ์ ์์ ํ์์์ ๊ฐ์ ์ฌ์ด์ ๊ฒฉ์ฐจ๋ฅผ ์ ์ฉํ๋ ๋ฐ ๋ฌ๋ ค ์๋ค. DID ๋ฌธ์์ ๋ถ๋ณ์ฑ์ ์ผ๋ถ ๋ณด์ ์ด์ ์ ์ ๊ณตํ ์ ์๋ค. ๊ฐ๋ณ DID ๋ฉ์๋๋ ํ์ํ์ง ์์ ํ๋์ด๋ ์๋ฏธ๋ก ์ ์ ๊ฑฐํ ์ ์๋ ์ ์ฝ ์กฐ๊ฑด์ ๊ณ ๋ คํด์ผ ํ๋ค. DID ๋ฉ์๋๊ฐ ๋์ผํ ๊ธฐ๋ฅ ์งํฉ์ ์ ๊ณตํ๋ฉด์ ๋ ์ ๊ฒจ ์์์๋ก ์ ์์ ์ธ ํ์์์ ์ํด ์กฐ์๋ ๊ฐ๋ฅ์ฑ์ด ์ค์ด๋ ๋ค.
์๋ฅผ ๋ค์ด DID ๋ฌธ์๋ฅผ ํ ๋ฒ๋ง ํธ์งํด๋ ๋ฌธ์์ ๋ฃจํธ
id ์์ฑ์ ์ ์ธํ ๋ชจ๋ ๊ฒ์ ๋ณ๊ฒฝํ ์ ์๋ค. ๊ทธ๋ฌ๋
์๋น์ค๊ฐ ์ ์๋ ํ type์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์ค์ ๋ก
๋ฐ๋์งํ๊ฐ? ๋๋ ํค๊ฐ ๊ทธ ๊ฐ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ๋ฐ๋์งํ๊ฐ? ์๋๋ฉด ๊ฐ์ฒด์
ํน์ ๊ธฐ๋ณธ ์์ฑ์ด ๋ณ๊ฒฝ๋ ๋ ์๋ก์ด id๋ฅผ ์๊ตฌํ๋ ๊ฒ์ด ๋ ์ข์๊น? ์น์ฌ์ดํธ์ ์
์์ ์ธ ํ์ทจ๋ ์ข
์ข
์ฌ์ดํธ๊ฐ
ํธ์คํธ ์ด๋ฆ ์๋ณ์๋ฅผ ์ ์งํ์ง๋ง ๊ทธ ์๋์์ ๋ฏธ๋ฌํ๊ฒ ๋ณ๊ฒฝ๋๋ ๊ฒฐ๊ณผ๋ฅผ
๋ชฉํ๋ก ํ๋ค. ์ฌ์ดํธ์ ํน์ ์์ฑ(์: IP ์ฃผ์์ ์ฐ๊ฒฐ๋
ASN)์ด ๊ท๊ฒฉ์ ์ํด ๋ถ๋ณํด์ผ ํ๋ ๊ฒฝ์ฐ, ์ด์ ๊ฐ์ง๊ฐ ๋ ์ฌ์์ง๊ณ ๊ณต๊ฒฉ์ด
ํจ์ฌ ๋ ์ด๋ ค์์ง๊ณ ๋น์ฉ์ด ๋ง์ด ๋ค ๊ฒ์ด๋ค.
์ ์ธ๊ณ์ ์ธ ์ง์ค์ ์์ฒ๊ณผ ์ฐ๊ฒฐ๋ DID ๋ฉ์๋์ ๊ฒฝ์ฐ DID ๋ฌธ์์ ์ต์ ๋ฒ์ ์ ๋ํ ์ง์ ์ ์ด๊ณ ์ ์์ ์ธ ๊ฒ์์ด ํญ์ ๊ฐ๋ฅํ๋ค. ๊ทธ๋ฌ๋ DID ๋ณํ๊ธฐ์ ํด๋น ์ง์ค์ ์์ฒ ์ฌ์ด์ ์บ์ ๊ณ์ธต์ด ๊ฒฐ๊ตญ ์์นํ ๊ฐ๋ฅ์ฑ์ด ์์ด ๋ณด์ธ๋ค. ๋ง์ฝ ๊ทธ๋ ๋ค๋ฉด DID ๋ฌธ์์ ๊ฐ์ฒด ์์ฑ์ด ์ค์ ๋ก๋ ๋ฏธ๋ฌํ๊ฒ ๋ค๋ฅธ๋ฐ ์ฃผ์ด์ง ์ํ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๊ณ ๋ฏฟ๋ ๊ฒ์ ์ ์ฉ์ ์ด๋ํ ์ ์๋ค. ์ด๋ ์ผ๋ถ ๊ฒ์์ด ์ ์ฒด DID ๋ฌธ์์ ๋ํ ๊ฒ์ด๊ณ ๋ค๋ฅธ ๊ฒ์์ ๋ ํฐ ๋งฅ๋ฝ์ด ๊ฐ์ ๋๋ ๋ถ๋ถ ๋ฐ์ดํฐ์ ๋ํ ๊ฒ์ธ ๊ฒฝ์ฐ์ ํนํ ๊ทธ๋ฌํ๋ค.
์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ํธํ๊ณผ ์ปดํจํ ๋ฅ๋ ฅ์ ๋ฐ์ ์ผ๋ก ์ธํด ์คํจํ๋ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์๋ค. ๊ตฌํ์๋ DID ๋ฌธ์์ ๋ฐฐ์น๋ ์ํธํ๋ ๋ฐ์ดํฐ๊ฐ ๊ฒฐ๊ตญ ์ํธํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋์ผํ ๋์์๊ฒ ์ผ๋ฐ ํ ์คํธ๋ก ์ ๊ณต๋ ์ ์๋ค๊ณ ๊ฐ์ ํ๋ ๊ฒ์ด ์ข๋ค. ์ด๋ DID ๋ฌธ์๊ฐ ๊ณต๊ฐ๋ ๊ฒฝ์ฐ ํนํ ์ ์ ํ๋ค.
DID ๋ฌธ์์ ์ ์ฒด ๋๋ ์ผ๋ถ๋ฅผ ์ํธํํ๋ ๊ฒ์ ์ฅ๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ธฐ ์ํ ์ ์ ํ ์๋จ์ด ์๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ์ํธํ๋ ๋ฐ์ดํฐ๋ฅผ DID ๋ฌธ์์ ๋ฐฐ์นํ๋ ๊ฒ์ ๊ฐ์ธ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ธฐ ์ํ ์ ์ ํ ์๋จ์ด ์๋๋ค.
์์ ์ฃผ์์ฌํญ์ ๊ณ ๋ คํ ๋ ์ํธํ๋ ๋ฐ์ดํฐ๊ฐ DID ๋ฌธ์์ ํฌํจ๋๋ ๊ฒฝ์ฐ ๊ตฌํ์๋ ์ํธํ๋ ๋ฐ์ดํฐ์ ๊ด๋ จ ๋น์ฌ์ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ถ๋ก ํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์๋ ์ํธ ์ฐ๊ด ๊ฐ๋ฅํ ์ ๋ณด๋ฅผ ์ฐ๊ฒฐํ์ง ์๋ ๊ฒ์ด ์ข๋ค. ์ํธ ์ฐ๊ด ๊ฐ๋ฅํ ์ ๋ณด์ ์๋ก๋ ์์ ๋น์ฌ์์ ๊ณต๊ฐ ํค, ์์ ๋น์ฌ์์ ์ ์ด ํ์ ์๋ ๊ฒ์ผ๋ก ์๋ ค์ง ๋์งํธ ์์ฐ์ ๋ํ ์๋ณ์ ๋๋ ์์ ๋น์ฌ์์ ๋ํ ์ฌ๋์ด ์ฝ์ ์ ์๋ ์ค๋ช ๋ฑ์ด ์๋ค.
equivalentId์ canonicalId ์์ฑ์ DID ๋ฉ์๋ ์์ฒด์์
์์ฑ๋๋ฏ๋ก DID ๋ฌธ์์ id ํ๋์ ์๋ ํด์๋
DID์ ์ ์ฉ๋๋ ๋์ผํ ๋ณด์ ๋ฐ ์ ํ์ฑ ๋ณด์ฅ์ด ์ด๋ฌํ ์์ฑ์๋
์ ์ฉ๋๋ค. alsoKnownAs ์์ฑ์ ๋๋ฑ์ฑ์ ๋ํ ์ ํํ
์ง์ ์์ด ๋ณด์ฅ๋์ง ์์ผ๋ฉฐ DID ๋ฌธ์์ ํด์์ ๋์ด์ ์ ํจ์ฑ ๊ฒ์ฌ
๋จ๊ณ๋ฅผ ์ํํ์ง ์๊ณ ๋ ์ ๋ขฐํด์๋ ์ ๋๋ค.
equivalentId์ canonicalId ์์ฑ์ ๋์ผํ DID ๋ฉ์๋์
์ํด ์์ฑ๋ ๋จ์ผ DID์ ๋ณํ์ ๋ํ ๋๋ฑ์ฑ ์ฃผ์ฅ์ ํํํ๋ฉฐ, ์์ฒญ
๋น์ฌ์๊ฐ DID ๋ฉ์๋์ ๊ท๋ฒ์ ๋ถํฉํ๋ ์์ฐ์ ๋ฐ ๋ณํ๊ธฐ๋ฅผ
์ ๋ขฐํ๋ ์ ๋๊น์ง ์ ๋ขฐํ ์ ์๋ค.
alsoKnownAs ์์ฑ์ ๋์ผํ DID ๋ฉ์๋์ ์ํด
์ ์ด๋์ง ์๋ URI์ ๋ํ ๋๋ฑ์ฑ ์ฃผ์ฅ์ ํ์ฉํ๋ฉฐ ๊ด๋ฆฌ ์ค์ธ
DID ๋ฉ์๋ ์ธ๋ถ์์ ๊ฒ์ฆ ๋จ๊ณ๋ฅผ ์ํํ์ง ์๊ณ ๋ ์ ๋ขฐํ ์ ์๋ค.
์ ์ถ๊ฐ ์ง์นจ์ ์ฐธ์กฐํ๋ผ.
DID ๋ฌธ์์ ๋ค๋ฅธ ๋ณด์ ๊ด๋ จ ์์ฑ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, DID ๋ฌธ์์ ๋๋ฑ์ฑ ์ง์ ์ ์์กดํ๋ ๋น์ฌ์๋ ์ ์ ํ ๊ฒ์ฆ์ด ์ํ๋ ํ ์ด๋ฌํ ์์ฑ์ ๊ฐ์ด ๊ณต๊ฒฉ์์ ์ํด ๋์ฒด๋๋ ๊ฒ์ ๋ฐฉ์งํด์ผ ํ๋ค. ๊ฒ์ฆ์ด ์ํ๋ ํ ๋ฉ๋ชจ๋ฆฌ ๋๋ ๋์คํฌ์ ์ ์ฅ๋ DID ๋ฌธ์์ ๋ํ ๋ชจ๋ ์ฐ๊ธฐ ์ก์ธ์ค๋ DID ๋ฌธ์๊ฐ ์ฌ๊ฒ์ฆ๋์ง ์๋ ํ ๊ฒ์ฆ์ ์ฐํํ ์ ์๋ ๊ณต๊ฒฉ ๋ฒกํฐ์ด๋ค.
์ด๋ฏธ์ง, ์น ํ์ด์ง ๋๋ ์คํค๋ง์ ๊ฐ์ ์ธ๋ถ ๊ธฐ๊ณ ํ๋ ๊ฐ๋ฅ ์ฝํ ์ธ ์ ๋ํ ๋งํฌ๋ฅผ ํฌํจํ๋ DID ๋ฌธ์๋ ๋ณ์กฐ์ ์ทจ์ฝํ๋ค. ํด์๋งํฌ [[?HASHLINK]]์ ๊ฐ์ ์๋ฃจ์ ์ ์ฌ์ฉํ์ฌ ์ธ๋ถ ๋งํฌ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณดํธํ๋ ๊ฒ์ด ๊ฐ๋ ฅํ ๊ถ์ฅ๋๋ค. ์ธ๋ถ ๋งํฌ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณดํธํ ์ ์๊ณ DID ๋ฌธ์์ ๋ฌด๊ฒฐ์ฑ์ด ์ธ๋ถ ๋งํฌ์ ์์กดํ๋ ๊ฒฝ์ฐ ์ธ๋ถ ๋งํฌ๋ ํผํด์ผ ํ๋ค.
DID ๋ฌธ์ ์์ฒด์ ๋ฌด๊ฒฐ์ฑ์ ์ํฅ์ ์ค ์ ์๋ ์ธ๋ถ ๋งํฌ์ ํ ์๋ JSON-LD ์ปจํ ์คํธ [[JSON-LD11]]์ด๋ค. ์์์ผ๋ก๋ถํฐ ๋ณดํธํ๊ธฐ ์ํด DID ๋ฌธ์ ์๋น์๋ JSON-LD ์ปจํ ์คํธ์ ๋ก์ปฌ ์ ์ ์ฌ๋ณธ์ ์บ์ํ๊ฑฐ๋ ์์ ํ ๋ฒ์ ์ ์ธ๋ถ JSON-LD ์ปจํ ์คํธ์ ์ฐ๊ด๋ ๊ฒ์ผ๋ก ์๋ ค์ง ์ํธํ ํด์์ ๋ํด ์ธ๋ถ ์ปจํ ์คํธ์ ๋ฌด๊ฒฐ์ฑ์ ๊ฒ์ฆํ๋ ๊ฒ์ด ์ข๋ค.
DID๋ ์ปจํธ๋กค๋ฌ๊ฐ ์์ ์ ์๋ณ์๋ฅผ ์ ์งํ๊ธฐ ์ํด ๋จ์ผ ์ ๋ขฐํ ์ ์๋ ์ 3์ ๋๋ ๊ด๋ฆฌ์์ ์์กดํ ํ์๊ฐ ์๋๋ก ์ง์์ ์ผ๋ก ์ค๊ณ๋์๋ค. ์ด์์ ์ธ ๊ฒฝ์ฐ ์ด๋ค ๊ด๋ฆฌ์๋ ์ปจํธ๋กค๋ฌ๋ก๋ถํฐ ์ ์ด๊ถ์ ๋นผ์์ ์ ์์ผ๋ฉฐ ์ธ์ฆ, ๊ถํ ๋ถ์ฌ ๋ฐ ์ฆ๋ช ๊ณผ ๊ฐ์ ํน์ ๋ชฉ์ ์ผ๋ก ์๋ณ์ ์ฌ์ฉ์ ๋ง์ ์ ์๋ค. ์ 3์๋ ์ปจํธ๋กค๋ฌ์ ๋์ ์์ด ์ํฐํฐ์ ์๋ณ์๋ฅผ ์ ๊ฑฐํ๊ฑฐ๋ ์๋ํ์ง ์๊ฒ ๋ง๋ค๊ธฐ ์ํด ์ปจํธ๋กค๋ฌ๋ฅผ ๋์ ํ์ฌ ํ๋ํ ์ ์๋ค.
๊ทธ๋ฌ๋ ์ํธํ ์ ์ด ์ฆ๋ช ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ชจ๋ DID ๋ฉ์๋์์ ์ ์ด๋ฅผ ์ฆ๋ช ํ๋ ์๋จ์ ํญ์ ๋น๋ฐ ์ํธํ ์๋ฃ๋ฅผ ๋ค๋ฅธ ๋น์ฌ์์๊ฒ ์ ์กํจ์ผ๋ก์จ ์ ์ก๋ ์ ์๋ค๋ ์ ์ ์ ์ํ๋ ๊ฒ์ด ์ค์ํ๋ค. ๋ฐ๋ผ์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์๋ณ์์ ์ง์์ฑ์ ์์กดํ๋ ์์คํ ์ ์๋ณ์๊ฐ ์ค์ ๋ก ์ฌ์ ํ ์๋ํ ๋น์ฌ์์ ์ ์ด ํ์ ์๋์ง ์ ๊ธฐ์ ์ผ๋ก ํ์ธํด์ผ ํ๋ค.
๋ถํํ๋ ์ํธํ ์์ฒด๋ง์ผ๋ก๋ ์ฃผ์ด์ง ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ๊ด๋ จ๋ ๋น๋ฐ ์ํธํ ์๋ฃ๊ฐ ์์๋์๋์ง ์ฌ๋ถ๋ฅผ ํ๋จํ ์ ์๋ค. ์์๋๋ ์ปจํธ๋กค๋ฌ๊ฐ ์ฌ์ ํ ๋น๋ฐ ์ํธํ ์๋ฃ์ ์ก์ธ์คํ ์ ์์ผ๋ฉฐ, ์ด์ ๋ฐ๋ผ ๊ฒ์ฆ ํ๋ก์ธ์ค์ ์ผ๋ถ๋ก ์ ์ด ์ฆ๋ช ์ ์คํํ ์ ์๋ ๋ฐ๋ฉด, ๋์์ ์ ์์ ์ธ ํ์์๋ ๋์ผํ ํค ๋๋ ๊ทธ ์ฌ๋ณธ์ ์ก์ธ์คํ ์ ์์ ์ ์๋ค.
๋ฐ๋ผ์ ์ํธํ ์ ์ด ์ฆ๋ช ์ ๊ณ ์ํ ์๋๋ฆฌ์ค์ ํ์ํ ์ ์ ๋ณด์ฆ ์์ค์ ํ๊ฐํ๋ ๋ฐ ํ๋์ ์์๋ก๋ง ์ฌ์ฉ๋ ๊ฒ์ผ๋ก ์์๋๋ค. DID ๊ธฐ๋ฐ ์ธ์ฆ์ ์์คํ ๊ฐ์ ํด๋น ๋น๋ฐ์ ์ ์กํ์ง ์๊ณ ๋ ์ํธํ ๋น๋ฐ์ ๋ํ ์ ์ด๋ฅผ ๊ฒฐ์ ํ ์ ์๋ ๊ธฐ๋ฅ ๋๋ถ์ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ์ํธ๋ณด๋ค ํจ์ฌ ๋ ํฐ ๋ณด์ฆ์ ์ ๊ณตํ๋ค. ๊ทธ๋ฌ๋ ๋ฌด์ค๋ฅ๋ ์๋๋ค. ๋ฏผ๊ฐํ๊ฑฐ๋ ๊ณ ๊ฐ์น ๋๋ ์๋ช ์ ์ค์ํ ์์ ๊ณผ ๊ด๋ จ๋ ์๋๋ฆฌ์ค์์๋ ์ ์ ํ ์ถ๊ฐ ์์๋ฅผ ์ฌ์ฉํ ๊ฒ์ผ๋ก ์์๋๋ค.
์๋ก ๋ค๋ฅธ ์ปจํธ๋กค๋ฌ์ ์ํ ์ฌ์ฉ์ผ๋ก ์ธํ ์ ์ฌ์ ๋ชจํธ์ฑ ์ธ์๋, ์ผ๋ฐ์ ์ผ๋ก ์ฃผ์ด์ง DID๊ฐ ํน์ ์์ ์ ๋์ผํ ์ฃผ์ฒด๋ฅผ ์ฐธ์กฐํ์ฌ ์ฌ์ฉ๋๊ณ ์์์ ๋ณด์ฅํ ์ ์๋ค. ์ปจํธ๋กค๋ฌ๊ฐ ์๋ก ๋ค๋ฅธ ์ฃผ์ฒด์ ๋ํด DID๋ฅผ ์ฌ์ฌ์ฉํ๋ ๊ฒ์ ๊ธฐ์ ์ ์ผ๋ก ๊ฐ๋ฅํ๋ฉฐ, ๋ ๋ฏธ๋ฌํ๊ฒ๋ ์ฃผ์ฒด์ ์ ํํ ์ ์๊ฐ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋๊ฑฐ๋ ์คํด๋ ์ ์๋ค.
์๋ฅผ ๋ค์ด, ๊ธ์ต ๊ฑฐ๋์ ์ฌ์ฉ๋๋ ๋ค์ํ ์๊ฒฉ ์ฆ๋ช ์ ๋ฐ๋ ๊ฐ์ธ ๊ธฐ์ ์ ์ฌ์ฉ๋๋ DID๋ฅผ ๊ณ ๋ คํด ๋ณด์. ์ปจํธ๋กค๋ฌ์๊ฒ ํด๋น ์๋ณ์๋ ์ฌ์ ์ ์ง์นญํ๋ค. ์ฌ์ ์ด ์ฑ์ฅํจ์ ๋ฐ๋ผ ๊ฒฐ๊ตญ ์ ํ์ฑ ์ํ์ฌ๋ก ๋ฒ์ธํ๋๋ค. ์ปจํธ๋กค๋ฌ๋ DID๊ฐ ์ฌ์ ์ ์ง์นญํ๊ธฐ ๋๋ฌธ์ ๋์ผํ DID๋ฅผ ๊ณ์ ์ฌ์ฉํ๋ค. ๊ทธ๋ฌ๋ ์ฃผ, ์ธ๋ฌด ๋น๊ตญ ๋ฐ ์ง๋ฐฉ ์์น ๋จ์ฒด์ ๋ํด์๋ DID๊ฐ ๋ ์ด์ ๋์ผํ ์ํฐํฐ๋ฅผ ์ง์นญํ์ง ์๋๋ค. ์๋ฏธ์ ๋ฏธ๋ฌํ ๋ณํ๊ฐ ์ ์ฉ ์ ๊ณต์๋ ๊ณต๊ธ์์๊ฒ ์ค์ํ์ง ์ฌ๋ถ๋ ๋ฐ๋์ ๊ทธ๋ค์ด ๊ฒฐ์ ํด์ผ ํ๋ค. ๋ง์ ๊ฒฝ์ฐ ์ฒญ๊ตฌ์๊ฐ ์ง๋ถ๋๊ณ ์ถ์ฌ์ด ์ํ๋ ์ ์๋ ํ ๋ณํ๋ ์ค์ํ์ง ์๋ค.
์ด๋ฌํ ์ ์ฌ์ ๋ชจํธ์ฑ์ผ๋ก ์ธํด DID๋ ์ ๋์ ์ด๋ผ๊ธฐ๋ณด๋ค๋ ๋ฌธ๋งฅ์ ์ผ๋ก ์ ํจํ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋์ด์ผ ํ๋ค. ๊ทธ๊ฒ๋ค์ ์ง์์ฑ์ ๊ทธ๊ฒ๋ค์ด ์ ํํ ๋์ผํ ์ฃผ์ฒด๋ฅผ ์ง์นญํ๋ค๊ฑฐ๋ ๋์ผํ ์ปจํธ๋กค๋ฌ์ ์ ์ด ํ์ ์์์ ์๋ฏธํ์ง ์๋๋ค. ๋์ DID๊ฐ ์์ฑ๋ ๋งฅ๋ฝ, ์ด๋ป๊ฒ ์ฌ์ฉ๋๋์ง, ๊ทธ ์๋ฏธ์ ๋ณํ ๊ฐ๋ฅ์ฑ์ ์ดํดํ๊ณ ์ ์ฌ์ ์ด๊ณ ๋ถ๊ฐํผํ ์๋ฏธ๋ก ์ ๋ณํ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ ์ฐจ์ ์ ์ฑ ์ ์ฑํํด์ผ ํ๋ค.
๊ท์ ๋ ๊ธ์ต ๋ฐ ๊ณต๊ณต ๋ถ๋ฌธ๊ณผ ๊ฐ์ ์์ญ์์๋ ํนํ ๊ท์ ์ค์๋ฅผ ์ํด ์ธ์ฆ ์ด๋ฒคํธ์ ๋ณด์ ์ปจํ ์คํธ์ ๋ํ ์ถ๊ฐ ์ ๋ณด๊ฐ ์ข ์ข ํ์ํ๋ค. ์ด ์ ๋ณด๋ ์ข ์ข ๋ณด์ฆ ์์ค(LOA)์ด๋ผ๊ณ ํ๋ค. ์๋ก๋ ๋น๋ฐ ์ํธํ ์๋ฃ์ ๋ณดํธ, ์ ์ ์ฆ๋ช ํ๋ก์ธ์ค, ์ธ์ฆ์์ ํํ ๋ฑ์ด ์๋ค.
Payment services (PSD 2) and eIDAS introduce such requirements to the security context. Level of assurance frameworks are classified and defined by regulations and standards such as eIDAS, NIST 800-63-3 and ISO/IEC 29115:2013, including their requirements for the security context, and making recommendations on how to achieve them. This might include strong user authentication where FIDO2/WebAuthn can fulfill the requirement.
์ผ๋ถ ๊ท์ ๋๋ ์๋๋ฆฌ์ค์์๋ ํน์ ์์ค์ ๋ณด์ฆ์ ๊ตฌํํด์ผ ํ๋ค.
assertionMethod์ authentication๊ณผ ๊ฐ์ ๊ฒ์ฆ ๊ด๊ณ๊ฐ ์ด๋ฌํ ์ํฉ ์ค ์ผ๋ถ์์ ์ฌ์ฉ๋ ์ ์์ผ๋ฏ๋ก
์ ์ฉ๋ ๋ณด์ ์ปจํ
์คํธ์ ๋ํ ์ ๋ณด๋ฅผ ํํํ๊ณ ๊ฒ์ฆ์์๊ฒ
์ ๊ณตํด์ผ ํ ์ ์๋ค. ์ด ์ ๋ณด๋ฅผ DID ๋ฌธ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ธ์ฝ๋ฉํ
๊ฒ์ธ์ง ์ฌ๋ถ์ ๋ฐฉ๋ฒ์ ์ด ๊ท๊ฒฉ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ค. ๊ด์ฌ ์๋ ๋
์๋ 1)
์ ๋ณด๊ฐ ๊ฒ์ฆ ๊ฐ๋ฅํ ํฌ๋ฆฌ๋ด์
[[?VC-DATA-MODEL]]์ ์ฌ์ฉํ์ฌ ์ ์ก๋ ์
์๊ณ , 2) DID ๋ฌธ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์
์ค๋ช
๋ ๋๋ก ์ด ์ ๋ณด๋ฅผ ํตํฉํ๋๋ก ํ์ฅ๋ ์ ์์ผ๋ฉฐ, ์ฌ๊ธฐ์
๋ ๊ทธ๋ฌํ ํ์ฅ์ ์ ์ฉ๋ ์
์๋ค๋ ์ ์ ์ ์ํ ์ ์๋ค.
DID์ DID ๋ฌธ์๋ DID ์ปจํธ๋กค๋ฌ์ ์ํด ์ง์ ๊ด๋ฆฌ๋๋๋ก ์ค๊ณ๋์๊ธฐ ๋๋ฌธ์ ํ์ค์ ์๋ณ์ ์ํคํ ์ฒ์ ๋ชจ๋ ์ธก๋ฉด์ Privacy by Design [[PRIVACY-BY-DESIGN]]์ ์์น์ ์ ์ฉํ๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํ๋ค. ์ด ๊ท๊ฒฉ์ ๊ฐ๋ฐํ๋ ๋์ ์ด ์ผ๊ณฑ ๊ฐ์ง ์์น์ด ๋ชจ๋ ์ ์ฉ๋์๋ค. ์ด ๊ท๊ฒฉ์ ์ฌ์ฉ๋ ์ค๊ณ๋ ์ถ๊ฐ์ ์ธ ๊ฐ์ธ์ ๋ณด ๋ณดํธ ์กฐ์น๋ฅผ ๊ถ์ฅํ๊ฑฐ๋ ์ ์ฉํ ๋ฑ๋ก ๊ธฐ๊ด, ํธ์คํ ํ์ฌ ๋๋ ๊ธฐํ ์ค๊ฐ ์๋น์ค ์ ๊ณต์๊ฐ ์๋ค๊ณ ๊ฐ์ ํ์ง ์๋๋ค. ์ด ๊ท๊ฒฉ์ ๊ฐ์ธ์ ๋ณด ๋ณดํธ๋ ์ฌํ ๋์ฑ ์ด ์๋๋ผ ์๋ฐฉ์ ์ด๋ฉฐ ๊ธฐ๋ณธ์ผ๋ก ๋ด์ฅ๋์ด ์๋ค. ๋ค์ ์น์ ์์๋ ํ์ค์ ์๋ณ์๋ฅผ ํ์ฉํ๋ ์์คํ ์ ๊ตฌ์ถํ ๋ ๊ตฌํ์๊ฐ ์ ์ฉํ๊ฒ ํ์ฉํ ์ ์๋ ๊ฐ์ธ์ ๋ณด ๋ณดํธ ๊ณ ๋ ค์ฌํญ์ ๋ค๋ฃฌ๋ค.
DID ๋ฉ์๋ ๊ท๊ฒฉ์ด ํด๋น DID์ DID ๋ฌธ์๊ฐ ๊ณต๊ฐ๋ ์ ์๋ ๊ณต๊ฐ ๋์ ๊ฒ์ฆ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๋ ์ง์คํธ๋ฆฌ์ ๋ํด ์์ฑ๋ ๊ฒฝ์ฐ, ํด๋น DID ๋ฌธ์์ ๊ฐ์ธ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋์ง ์๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํ๋ค. ๊ฐ์ธ ๋ฐ์ดํฐ๋ ๋์ 1) ๊ฒ์ฆ ๊ฐ๋ฅํ ํฌ๋ฆฌ๋ด์ [[?VC-DATA-MODEL]] ๋๋ 2) DID ์ฃผ์ฒด ๋๋ DID ์ปจํธ๋กค๋ฌ์ ์ ์ดํ์ ์๋ ์๋น์ค ์๋ํฌ์ธํธ์ ๊ฐ์ ๋ค๋ฅธ ์๋จ์ ํตํด ์ ์ก๋ ์ ์๋ค.
์๋น์ค ์๋ํฌ์ธํธ์ URL์์ ๊ฐ์ธ ๋ฐ์ดํฐ ์ ์ถ ๋๋ ์๋น์ค ์๋ํฌ์ธํธ์ URL ๋ด ์๊ด๊ด๊ณ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด URL ์ฌ์ฉ๊ณผ ๊ด๋ จํ์ฌ ์ค์ฌ๊ฐ ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค. ์๋ฅผ ๋ค์ด ์ฌ์ฉ์ ์ด๋ฆ์ ํฌํจํ๋ URL์ DID ๋ฌธ์์ ํฌํจํ๊ธฐ์ ์ํํ๋ฐ, ๊ทธ ์ด์ ๋ ์ฌ์ฉ์ ์ด๋ฆ์ด DID ์ฃผ์ฒด๊ฐ ๊ณต์ ํ๋ ๋ฐ ๋์ํ์ง ์์ ์ ๋ณด๋ฅผ ๊ณต๊ฐํ ์ ์๋ ๋ฐฉ์์ผ๋ก ์ฌ๋์๊ฒ ์๋ฏธ ์์ ๊ฐ๋ฅ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ด ๊ท๊ฒฉ์์ ์ ์ํ๋ ๊ฐ์ธ์ ๋ณด ๋ณดํธ ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํ๋ฉด DID ๋ฌธ์์ ๊ฒ์ฆ ๋ฐฉ๋ฒ๋ก ์๋ณ๋๊ณ ๋ณดํธ๋๋ ํต์ ์ฑ๋์ ์ฌ์ฉํ์ฌ ๊ฐ์ธ ๋ฐ์ดํฐ๋ฅผ ๋น๊ณต๊ฐ๋ก ํผ์ด ๊ฐ์ ๊ตํํ ์ ์๋ค. ์ด๋ฅผ ํตํด DID ์ฃผ์ฒด์ ์์ฒญ ๋น์ฌ์๊ฐ GDPR์ ์ํ ๊ถ๋ฆฌ๋ฅผ ๊ตฌํํ ์ ์๋๋ฐ, ๊ทธ ์ด์ ๋ ๊ฐ์ธ ๋ฐ์ดํฐ๊ฐ ๋ถ๋ณ์ ๋ถ์ฐ ์์ฅ์ ๊ธฐ๋ก๋์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ ์ธ๊ณ์ ์ผ๋ก ๋ชจํธํ์ง ์์ ์๋ณ์์ ๋ง์ฐฌ๊ฐ์ง๋ก DID๋ ์๊ด๊ด๊ณ์ ์ฌ์ฉ๋ ์ ์๋ค. DID ์ปจํธ๋กค๋ฌ๋ ๊ฐ ๊ด๊ณ์ ๊ณ ์ ํ ์๋ณ DID๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ๊ฐ์ธ์ ๋ณด ๋ณดํธ ์ํ์ ์ํํ ์ ์๋ค. ์ค์ ๋ก ๊ฐ DID๋ ๊ฐ๋ช ์ผ๋ก ์์ฉํ๋ค. ์๋ณ DID๋ ์๊ด๊ด๊ณ๊ฐ ๋ช ์์ ์ผ๋ก ์ํ๋ ๊ฒฝ์ฐ์๋ง ๋ ์ด์์ ๋น์ฌ์์ ๊ณต์ ํ ํ์๊ฐ ์๋ค. ์๋ณ DID๊ฐ ๊ธฐ๋ณธ๊ฐ์ธ ๊ฒฝ์ฐ DID๋ฅผ ๊ณต๊ฐ์ ์ผ๋ก ๊ฒ์ํ๊ฑฐ๋ ์ฌ๋ฌ ๋น์ฌ์์ ๊ณต์ ํด์ผ ํ ์ ์ผํ ํ์์ฑ์ DID ์ปจํธ๋กค๋ฌ ๋ฐ/๋๋ DID ์ฃผ์ฒด๊ฐ ๋ช ์์ ์ผ๋ก ๊ณต๊ฐ ์๋ณ ๋ฐ ์๊ด๊ด๊ณ๋ฅผ ์ํ ๋์ด๋ค.
ํด๋น DID ๋ฌธ์์ ๋ฐ์ดํฐ๋ฅผ ์ํธ ์ฐ๊ด์ํฌ ์ ์๋ ๊ฒฝ์ฐ ์๋ณ DID์ ๋ฐ์๊ด๊ด๊ณ ๋ณดํธ๊ฐ ์ฝ๊ฒ ๋ฌด๋ ฅํ๋๋ค. ์๋ฅผ ๋ค์ด ์ฌ๋ฌ DID ๋ฌธ์์์ ๋์ผํ ๊ฒ์ฆ ๋ฐฉ๋ฒ ๋๋ ๋ง์ถคํ ์๋น์ค ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ผํ DID๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋งํผ ๋ง์ ์๊ด๊ด๊ณ ์ ๋ณด๋ฅผ ์ ๊ณตํ ์ ์๋ค. ๋ฐ๋ผ์ ์๋ณ DID์ ๋ํ DID ๋ฌธ์๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ๊ฐ ์๋ณ ๊ด๊ณ์ ๊ณ ์ ํ์ง ํ์ธํ๋ ๊ฒ๊ณผ ๊ฐ์ ์๋ณ ๊ณ ์ ์ ๋ณด๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
์๋ณ DID์ ๋ํ DID ๋ฌธ์์์ ์๋ณ ๊ณ ์ ์๋น์ค ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ ์์ฐ์ค๋ฌ์ ๋ณด์ผ ์ ์๋ค. ๊ทธ๋ฌ๋ ๊ณ ์ ํ ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ DID ์ฌ์ด์ ๋ชจ๋ ํธ๋ํฝ์ ๊ณ ์ ํ ๋ฒํท์ผ๋ก ์๋ฒฝํ๊ฒ ๋ถ๋ฆฌํ ์ ์์ผ๋ฏ๋ก ํ์ด๋ฐ ์๊ด๊ด๊ณ ๋ฐ ์ ์ฌํ ๋ถ์์ด ์ฌ์์ง๋ค. ๋ฐ๋ผ์ ์๋ํฌ์ธํธ ๊ฐ์ธ์ ๋ณด ๋ณดํธ๋ฅผ ์ํ ๋ ๋์ ์ ๋ต์ ๋ง์ ๋ค๋ฅธ ์ฃผ์ฒด๊ฐ ์ ์ดํ๋ ๋ค์์ DID ๊ฐ์ ์๋ํฌ์ธํธ๋ฅผ ๊ณต์ ํ๋ ๊ฒ์ผ ์ ์๋ค( ์ฐธ์กฐ).
DID ์ฃผ์ฒด๊ฐ ๋ฌด์์ธ์ง, ํนํ DID ์ฃผ์ฒด๊ฐ ์ฌ๋์ธ ๊ฒฝ์ฐ ๋ช ์์ ์ผ๋ก ๋๋ ์ถ๋ก ์ ํตํด ์ ํ ๋๋ ์ฑ์ง์ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉ๋ ์ ์๋ ์์ฑ์ DID ๋ฌธ์์ ์ถ๊ฐํ๋ ๊ฒ์ ์ํํ๋ค.
์ด๋ฌํ ์์ฑ์ DID ๋ฌธ์์ ๊ฐ์ธ ๋ฐ์ดํฐ( ์ฐธ์กฐ) ๋๋ ์ํธ ์ฐ๊ด ๊ฐ๋ฅํ ๋ฐ์ดํฐ( ๋ฐ ์ฐธ์กฐ)๊ฐ ์กด์ฌํ๊ฒ ํ ๋ฟ๋ง ์๋๋ผ, ํน์ DID๋ฅผ ๊ทธ๋ฃนํํ์ฌ ํน์ ์์ ์ด๋ ๊ธฐ๋ฅ์ ํฌํจ์ํค๊ฑฐ๋ ์ ์ธ์ํค๋ ๋ฐ ์ฌ์ฉ๋ ์ ์๋ค.
DID ๋ฌธ์์ ์ ํ ์ ๋ณด๋ฅผ ํฌํจํ๋ฉด IoT ์ฅ์น์ ๊ฐ์ด ์ฌ๋์ด ์๋ ์ํฐํฐ์ธ DID ์ฃผ์ฒด์ ๋ํด์๋ ๊ฐ์ธ์ ๋ณด ๋ณดํธ ํผํด๊ฐ ๋ฐ์ํ ์ ์๋ค. DID ์ปจํธ๋กค๋ฌ ์ฃผ๋ณ์ ์ด๋ฌํ ์ ๋ณด ์ง๊ณ๋ ์ผ์ข ์ ๋์งํธ ์ง๋ฌธ ์ญํ ์ ํ ์ ์์ผ๋ฏ๋ก ํผํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข๋ค.
์ด๋ฌํ ์ํ์ ์ต์ํํ๊ธฐ ์ํด DID ๋ฌธ์์ ๋ชจ๋ ์์ฑ์ DID ์ฌ์ฉ๊ณผ ๊ด๋ จ๋ ์ํธํ ์๋ฃ, ์๋ํฌ์ธํธ ๋๋ ๊ฒ์ฆ ๋ฐฉ๋ฒ๋ฅผ ํํํ๊ธฐ ์ํ ๊ฒ์ด์ด์ผ ํ๋ค.
DID ์ฃผ์ฒด๊ฐ ๊ตฐ์ค ์์์ ๊ตฌ๋ณํ ์ ์์ ๋ ๊ฐ์ธ์ ๋ณด ๋ณดํธ๋ฅผ ์ด์ฉํ ์ ์๋ค. ๋ค๋ฅธ ๋น์ฌ์์ ์ฌ์ ์ผ๋ก ๊ด์ฌํ๋ ํ์ ์์ฒด๊ฐ ์ธ์ ๊ฐ๋ฅํ ์ ํธ์ผ ๋ ๊ฐ์ธ์ ๋ณด ๋ณดํธ๋ ํฌ๊ฒ ๊ฐ์ํ๋ค.
DID์ DID ๋ฉ์๋๋ ํนํ ํฉ๋ฒ์ ์ผ๋ก ๊ฐ์ฅ ํ์๋ก ํ๋ ์ฌ๋๋ค์ ์ํด ๊ตฐ์ค ๊ฐ์ธ์ ๋ณด ๋ณดํธ๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ๋ ธ๋ ฅํด์ผ ํ๋ค. ์ต๋ช ์ฑ๊ณผ ๊ฐ๋ช ์ฑ์ ๋ณด์กดํ๋ ๊ฒ์ ๊ธฐ๋ณธ์ผ๋ก ํ๋ ๊ธฐ์ ๊ณผ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ ํํ๋ผ. ๋์งํธ ์ง๋ฌธ์ ์ค์ด๊ธฐ ์ํด ์์ฒญ ๋น์ฌ์ ๊ตฌํ์์ ๊ณตํต ์ค์ ์ ๊ณต์ ํ๊ณ , ์ ์ ํ๋กํ ์ฝ์์ ํ์๋ ์ต์ ์ ์ต์ํ์ผ๋ก ์ ์งํ๊ณ , ์ํธํ๋ ์ ์ก ๊ณ์ธต์ ์ฌ์ฉํ๊ณ , ๋ฉ์์ง๋ฅผ ํ์ค ๊ธธ์ด๋ก ์ฑ์๋ผ.
์ปจํธ๋กค๋ฌ๊ฐ DID ๋ฌธ์์์ ์ ํ์ ์ผ๋ก ํ๋ ์ด์์ ์๋น์ค ์๋ํฌ์ธํธ๋ฅผ ํํํ ์ ์๋ ๋ฅ๋ ฅ์ ๊ทธ๋ค์ ์ ์ด์ ์ฃผ์ฒด์ฑ์ ์ฆ๊ฐ์ํจ๋ค. DID ๋ฌธ์์ ๊ฐ ์ถ๊ฐ ์๋ํฌ์ธํธ๋ ์๋ํฌ์ธํธ ์ค๋ช ์ ๊ฑธ์น ์๊ด๊ด๊ณ๋ก ์ธํด ๊ฐ์ธ์ ๋ณด ๋ณดํธ ์ํ์ ์ฆ๊ฐ์ํค๊ฑฐ๋ ์๋น์ค๊ฐ ์ธ์ฆ ๋ฉ์ปค๋์ฆ์ ์ํด ๋ณดํธ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ ๋ ๋ค๋ก ์ธํด ๊ฐ์ธ์ ๋ณด ๋ณดํธ ์ํ์ ์ฆ๊ฐ์ํจ๋ค.
DID ๋ฌธ์๋ ์ข ์ข ๊ณต๊ฐ์ ์ด๋ฉฐ ํ์คํ๋์ด ์๊ธฐ ๋๋ฌธ์ ํ์ค ๊ธฐ๋ฐ ํน์ฑ์ ๋ฐ๋ผ ํจ์จ์ ์ผ๋ก ์ ์ฅ๋๊ณ ์์ธํ๋๋ค. ์ด ์ํ์ DID ๋ฌธ์๊ฐ ๋ถ๋ณ์ ๊ฒ์ฆ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๋ ์ง์คํธ๋ฆฌ์ ๊ฒ์๋๋ ๊ฒฝ์ฐ ๋ ์ฌ๊ฐํ๋ค. DID์ ์ํด ์ฐธ์กฐ๋๋ DID ๋ฌธ์ ๊ธฐ๋ก์ ๋ํ ์ก์ธ์ค๋ ํ์ค ์ฌ์ฉ์ ํตํด ๋ ํจ์จ์ ์ผ๋ก ์ด๋ฃจ์ด์ง๋ ์ผ์ข ์ ํธ๋ํฝ ๋ถ์ ํํ๋ฅผ ๋ํ๋ธ๋ค.
ํ๋์ DID ๋ฌธ์์์ ์ฌ๋ฌ ์๋น์ค ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ
๋ฐ์ํ๋ ์ถ๊ฐ์ ์ธ ๊ฐ์ธ์ ๋ณด ๋ณดํธ ์ํ์ ์ ๋๋ ์ถ์ ํ๊ธฐ ์ด๋ ค์ธ ์ ์๋ค.
๊ฐ์ธ์ ๋ณด ๋ณดํธ ํผํด๋ ์ผ๋ฐ์ ์ผ๋ก ์๋ํ์ง ์์ ๊ฒฐ๊ณผ์ด๋ค. DID๋
๊ฐ์ธ, ๊ฐ๊ตฌ, ํด๋ฝ, ๊ณ ์ฉ์ฃผ์ ๊ด๋ จ๋ ์ ์๋ ๋ฌธ์, ์๋น์ค, ์คํค๋ง
๋ฐ ๊ธฐํ ์ฌํญ์ ์ง์นญํ ์ ์์ผ๋ฉฐ, ์ด๋ค์
์๋น์ค ์๋ํฌ์ธํธ ์๊ด๊ด๊ณ๋ ๊ฐ๋ ฅํ ๊ฐ์ ๋ฐ ์ถ๋ก ๋๊ตฌ๊ฐ ๋ ์
์๋ค. ์ด๋ฌํ ์ ์ฌ์ ํผํด์ ์๋ https://example.co.uk์
๊ฐ์ ์ฌ๋ฌ ๊ณตํต ๊ตญ๊ฐ ์์ค ์ต์์ ๋๋ฉ์ธ์ ์ฌ์ฉํ์ฌ ๋ ๋์ ํ๋ฅ ๋ก
DID ์ฃผ์ฒด์ ๋๋ต์ ์ธ ์์น๋ฅผ ์ถ๋ก ํ ์ ์์ ๋ ํ์ธํ ์ ์๋ค.
๊ฐ๋ฅํ ์๋ํฌ์ธํธ์ ๋ค์์ฑ์ผ๋ก ์ธํด DID ์ฃผ์ฒด์ ๋ํ ์ ๋ณด๊ฐ ์ ์ถ๋์ง ์๋ ๊ตฐ์ค ๊ฐ์ธ์ ๋ณด ๋ณดํธ๋ฅผ ์ ์งํ๋ ๊ฒ์ด ํนํ ์ด๋ ค์ธ ์ ์๋ค( ์ฐธ์กฐ).
์ฒซ์งธ, ์๋น์ค ์๋ํฌ์ธํธ๊ฐ URI๋ก ์ง์ ๋ ์ ์๊ธฐ ๋๋ฌธ์ ์๋น์ค
์ํคํ
์ฒ๋ก ์ธํด ์๋์น ์๊ฒ ๊ฐ์ธ ์ ๋ณด๊ฐ ์ ์ถ๋ ์ ์๋ค. ์๋ฅผ ๋ค์ด
http://example.com/MyFirstName์ด๋ผ๋ ์๋น์ค
์๋ํฌ์ธํธ๋ DID ๋ฌธ์์ ์ก์ธ์คํ ์ ์๋ ๋ชจ๋ ์ฌ๋์๊ฒ
MyFirstName์ด๋ผ๋ ์ฉ์ด๋ฅผ ์ ์ถํ๊ณ ์๋ค. ๋ ๊ฑฐ์ ์์คํ
๊ณผ
์ฐ๊ฒฐํ ๋๋ ์ด๋ฌํ ์ํ์ ํผํ ์ ์์ผ๋ฉฐ ์ด๋ฌํ ๊ฒฝ์ฐ ์ฃผ์๊ฐ
ํ์ํ๋ค. ์ด ๊ท๊ฒฉ์ ์๋ก์ด DID ์ธ์ ์๋ํฌ์ธํธ๊ฐ ํ์ํ ๋ชจ๋
์๋ณ์ ์ํด DID ์์ฒด ์ด์์ ๊ฒ์ ์ฌ์ฉํ์ง ์๋๋ก ๊ถ์ฅํ๋ค.
์๋ฅผ ๋ค์ด ์๋น์ค ์ค๋ช
์
http://example.com/did%3Aexample%3Aabc123์ด ํฌํจ๋์ด
์๋๋ผ๋ did:example:abc123์ด ์ด๋ฏธ DID ๋ฌธ์์ ๋
ธ์ถ๋์ด
์๊ธฐ ๋๋ฌธ์ ์ถ๊ฐ ์ ๋ณด๊ฐ ์ ์ถ๋์ง ์์ผ๋ฏ๋ก ํผํด๊ฐ ๋ฐ์ํ์ง ์๋๋ค.
๋์งธ, DID ๋ฌธ์์ ์ฌ๋ฌ ์๋น์ค ์๋ํฌ์ธํธ๊ฐ ๋์ด๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์ด๋ค ๋งฅ๋ฝ์์๋ ์ฐ๊ฒฐ๋์ง ์์ ์๋น์ค๋ฅผ ๋์ดํฌ ์ ์๊ฒ ์ฐ๊ฒฐํ ์ ์๋ค. ์ด๋ฌํ ์๊ด๊ด๊ณ ์์ฒด๋ง์ผ๋ก๋ ์ฌ์ฉ๋ URI๊ฐ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ํฌํจํ์ง ์์๋๋ผ๋ DID ์ฃผ์ฒด์ ๋ํ ์ ๋ณด๋ฅผ ๊ณต๊ฐํจ์ผ๋ก์จ ๊ฐ์ธ์ ๋ณด ๋ณดํธ ํผํด๋ก ์ด์ด์ง ์ ์๋ค.
์ ์งธ, ์ผ๋ถ ์ ํ์ DID ์ฃผ์ฒด๊ฐ ํน์ ์๋ํฌ์ธํธ๋ฅผ ๋์ดํ ๊ฐ๋ฅ์ฑ์ด ๋ ๋๊ฑฐ๋ ๋ฎ๊ธฐ ๋๋ฌธ์ ์ฃผ์ด์ง ์๋น์ค์ ๋์ด ์์ฒด๋ก DID ์ฃผ์ฒด์ ๋ํด ์ถ๋ก ํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์๋ ์ ๋ณด๋ฅผ ์ ์ถํ ์ ์๋ค. ์๋ฅผ ๋ค์ด ์๋์ฐจ์ฉ DID์๋ ์๋์ฐจ๊ตญ์ ๊ณต๊ณต ์์ ๊ถ ๊ธฐ๋ก์ ๋ํ ํฌ์ธํฐ๊ฐ ํฌํจ๋ ์ ์์ง๋ง ๊ฐ์ธ์ฉ DID์๋ ํด๋น ์ ๋ณด๊ฐ ํฌํจ๋์ง ์์ ์ ์๋ค.
๊ตฐ์ค ๊ฐ์ธ์ ๋ณด ๋ณดํธ์ ๋ชฉํ๋ ํน์ DID ์ฃผ์ฒด์ ํน์ฑ์ด ์ ์ฒด ๋ชจ์ง๋จ์ ์ํด ๋ชจํธํด์ง๋๋ก ํ๋ ๊ฒ์ด๋ค. ๊ตฐ์ค ๊ฐ์ธ์ ๋ณด ๋ณดํธ๋ฅผ ๊ทน๋ํํ๊ธฐ ์ํด ๊ตฌํ์๋ ์ด๋ฌํ ์ฐ๊ฒฐ์ ๋ณดํธํ๊ณ ๊ถ๊ทน์ ์ธ ์๋น์ค์ ๋ํ ์์ฒญ์ ๊ฐ๋ฆฌ๊ธฐ ์ํด ์ปจํธ๋กค๋ฌ๊ฐ ๊ธฐ๊บผ์ด ์์กดํ ํ๋ก์ ๋๋ ์ค์ฌ์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ํ๋์ ์๋น์ค ์๋ํฌ์ธํธ์๋ง ์์กดํด์ผ ํ๋ค.
์ด์ ์น์ ์ ์ฐ๋ ค์ฌํญ์ ๊ฐ์ํ ๋ ๊ตฌํ์๋ ๋ค์๊ณผ ๊ฐ์ ์๋น์ค ์๋ํฌ์ธํธ ์ ๊ทผ ๋ฐฉ์์ ๊ณ ๋ คํด์ผ ํ๋ค:
์ด๋ฌํ ์๋น์ค ์๋ํฌ์ธํธ ์ ํ์ ๊ณ์ํด์ ํ์ ๊ณผ ํ์์ ์์ญ์ด ๋๊ณ ์๋ค.
์ ํ์ ํ์ฅ ๋ฐ ๊ธฐํ ๊ฒ์ฆ ๋ฐฉ๋ฒ ์ ํ์ ๊ฒ์ฆ ๋ฐฉ๋ฒ ์ ํ [[?DID-SPEC-REGISTRIES]]์ ์ฐธ์กฐํ๋ผ.
์ด ์์๋ค์ ์ ๋ณด ์ ๊ณต ๋ชฉ์ ์ผ๋ก๋ง ์ ๊ณต๋ ๊ฒ์ด๋ฉฐ, ๋์ผํ ๊ฒ์ฆ ๋ฐฉ๋ฒ๋ฅผ ์ฌ๋ฌ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ํผํ๋ ๊ฒ์ด ์ข์ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ค.
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/ed25519-2020/v1"
],
"id": "did:example:123",
"authentication": [
{
"id": "did:example:123#z6MkecaLyHuYWkayBDLw5ihndj3T1m6zKTGqau3A51G7RBf3",
"type": "Ed25519VerificationKey2020", // external (property value)
"controller": "did:example:123",
"publicKeyMultibase": "zAKJP3f7BD6W4iWEQ9jwndVTCBq8ua2Utt8EEjJ6Vxsf"
}
],
"capabilityInvocation": [
{
"id": "did:example:123#z6MkhdmzFu659ZJ4XKj31vtEDmjvsi5yDZG5L7Caz63oP39k",
"type": "Ed25519VerificationKey2020", // external (property value)
"controller": "did:example:123",
"publicKeyMultibase": "z4BWwfeqdp1obQptLLMvPNgBw48p7og1ie6Hf9p5nTpNN"
}
],
"capabilityDelegation": [
{
"id": "did:example:123#z6Mkw94ByR26zMSkNdCUi6FNRsWnc2DFEeDXyBGJ5KTzSWyi",
"type": "Ed25519VerificationKey2020", // external (property value)
"controller": "did:example:123",
"publicKeyMultibase": "zHgo9PAmfeoxHG8Mn2XHXamxnnSwPpkyBHAMNF3VyXJCL"
}
],
"assertionMethod": [
{
"id": "did:example:123#z6MkiukuAuQAE8ozxvmahnQGzApvtW7KT5XXKfojjwbdEomY",
"type": "Ed25519VerificationKey2020", // external (property value)
"controller": "did:example:123",
"publicKeyMultibase": "z5TVraf9itbKXrRvt2DSS95Gw4vqU3CHAdetoufdcKazA"
}
]
}
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/jws-2020/v1"
],
"verificationMethod": [
{
"id": "did:example:123#key-0",
"type": "JsonWebKey2020",
"controller": "did:example:123",
"publicKeyJwk": {
"kty": "OKP", // external (property name)
"crv": "Ed25519", // external (property name)
"x": "VCpo2LMLhn6iWku8MKvSLg2ZAoC-nlOyPVQaO3FxVeQ" // external (property name)
}
},
{
"id": "did:example:123#key-1",
"type": "JsonWebKey2020",
"controller": "did:example:123",
"publicKeyJwk": {
"kty": "OKP", // external (property name)
"crv": "X25519", // external (property name)
"x": "pE_mG098rdQjY3MKK2D5SUQ6ZOEW3a6Z6T7Z4SgnzCE" // external (property name)
}
},
{
"id": "did:example:123#key-2",
"type": "JsonWebKey2020",
"controller": "did:example:123",
"publicKeyJwk": {
"kty": "EC", // external (property name)
"crv": "secp256k1", // external (property name)
"x": "Z4Y3NNOxv0J6tCgqOBFnHnaZhJF6LdulT7z8A-2D5_8", // external (property name)
"y": "i5a2NtJoUKXkLm6q8nOEu9WOkso1Ag6FTUT6k_LMnGk" // external (property name)
}
},
{
"id": "did:example:123#key-3",
"type": "JsonWebKey2020",
"controller": "did:example:123",
"publicKeyJwk": {
"kty": "EC", // external (property name)
"crv": "secp256k1", // external (property name)
"x": "U1V4TVZVMUpUa0ZVU1NBcU9CRm5IbmFaaEpGNkxkdWx", // external (property name)
"y": "i5a2NtJoUKXkLm6q8nOEu9WOkso1Ag6FTUT6k_LMnGk" // external (property name)
}
},
{
"id": "did:example:123#key-4",
"type": "JsonWebKey2020",
"controller": "did:example:123",
"publicKeyJwk": {
"kty": "EC", // external (property name)
"crv": "P-256", // external (property name)
"x": "Ums5WVgwRkRTVVFnU3k5c2xvZllMbEcwM3NPRW91ZzN", // external (property name)
"y": "nDQW6XZ7b_u2Sy9slofYLlG03sOEoug3I0aAPQ0exs4" // external (property name)
}
},
{
"id": "did:example:123#key-5",
"type": "JsonWebKey2020",
"controller": "did:example:123",
"publicKeyJwk": {
"kty": "EC", // external (property name)
"crv": "P-384", // external (property name)
"x": "VUZKSlUwMGdpSXplekRwODhzX2N4U1BYdHVYWUZsaXVDR25kZ1U0UXA4bDkxeHpE", // external (property name)
"y": "jq4QoAHKiIzezDp88s_cxSPXtuXYFliuCGndgU4Qp8l91xzD1spCmFIzQgVjqvcP" // external (property name)
}
},
{
"id": "did:example:123#key-6",
"type": "JsonWebKey2020",
"controller": "did:example:123",
"publicKeyJwk": {
"kty": "EC", // external (property name)
"crv": "P-521", // external (property name)
"x": "VTI5c1lYSmZWMmx1WkhNZ0dQTXhaYkhtSnBEU3UtSXZwdUtpZ0VOMnB6Z1d0U28tLVJ3ZC1uNzhuclduWnplRGMx", // external (property name)
"y": "UW5WNVgwSnBkR052YVc0Z1VqY1B6LVpoZWNaRnliT3FMSUpqVk9sTEVUSDd1UGx5RzBnRW9NV25JWlhoUVZ5cFB5" // external (property name)
}
},
{
"id": "did:example:123#key-7",
"type": "JsonWebKey2020",
"controller": "did:example:123",
"publicKeyJwk": {
"kty": "RSA", // external (property name)
"e": "AQAB", // external (property name)
"n": "UkhWaGJGOUZRMTlFVWtKSElBdENGV2hlU1F2djFNRXh1NVJMQ01UNGpWazlraEpLdjhKZU1YV2UzYldIYXRqUHNrZGYyZGxhR2tXNVFqdE9uVUtMNzQybXZyNHRDbGRLUzNVTElhVDFoSkluTUhIeGoyZ2N1Yk82ZUVlZ0FDUTRRU3U5TE8wSC1MTV9MM0RzUkFCQjdRamE4SGVjcHl1c3BXMVR1X0RicXhjU253ZW5kYW13TDUyVjE3ZUtobE80dVh3djJIRmx4dWZGSE0wS21DSnVqSUt5QXhqRF9tM3FfX0lpSFVWSEQxdERJRXZMUGhHOUF6c24zajk1ZC1zYU" // external (property name)
}
}
]
}
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/ed25519-2018/v1",
"https://w3id.org/security/suites/x25519-2019/v1",
"https://w3id.org/security/suites/secp256k1-2019/v1",
"https://w3id.org/security/suites/jws-2020/v1"
],
"verificationMethod": [
{
"id": "did:example:123#key-0",
"type": "Ed25519VerificationKey2018",
"controller": "did:example:123",
"publicKeyBase58": "3M5RCDjPTWPkKSN3sxUmmMqHbmRPegYP1tjcKyrDbt9J" // external (property name)
},
{
"id": "did:example:123#key-1",
"type": "X25519KeyAgreementKey2019",
"controller": "did:example:123",
"publicKeyBase58": "FbQWLPRhTH95MCkQUeFYdiSoQt8zMwetqfWoxqPgaq7x" // external (property name)
},
{
"id": "did:example:123#key-2",
"type": "EcdsaSecp256k1VerificationKey2019",
"controller": "did:example:123",
"publicKeyBase58": "ns2aFDq25fEV1NUd3wZ65sgj5QjFW8JCAHdUJfLwfodt" // external (property name)
},
{
"id": "did:example:123#key-3",
"type": "JsonWebKey2020",
"controller": "did:example:123",
"publicKeyJwk": {
"kty": "EC", // external (property name)
"crv": "P-256", // external (property name)
"x": "Er6KSSnAjI70ObRWhlaMgqyIOQYrDJTE94ej5hybQ2M", // external (property name)
"y": "pPVzCOTJwgikPjuUE6UebfZySqEJ0ZtsWFpj7YSPGEk" // external (property name)
}
}
]
}
์ด ์์ ๋ ์ ๋ณด์ ๋ฌ๋ง์ ๋ชฉ์ ์ผ๋ก ํ๋ค. ์ถ๊ฐ์ ์ธ ์์ ํ์ธ์ W3C Verifiable Credentials Data Model ๋ฅผ ์ฐธ๊ณ ํ๋ผ.
{ // external (all terms in this example)
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://w3id.org/citizenship/v1"
],
"type": [
"VerifiableCredential",
"PermanentResidentCard"
],
"credentialSubject": {
"id": "did:example:123",
"type": [
"PermanentResident",
"Person"
],
"givenName": "JOHN",
"familyName": "SMITH",
"gender": "Male",
"image": "data:image/png;base64,iVBORw0KGgo...kJggg==",
"residentSince": "2015-01-01",
"lprCategory": "C09",
"lprNumber": "000-000-204",
"commuterClassification": "C1",
"birthCountry": "Bahamas",
"birthDate": "1958-08-17"
},
"issuer": "did:example:456",
"issuanceDate": "2020-04-22T10:37:22Z",
"identifier": "83627465",
"name": "Permanent Resident Card",
"description": "Government of Example Permanent Resident Card.",
"proof": {
"type": "Ed25519Signature2018",
"created": "2020-04-22T10:37:22Z",
"proofPurpose": "assertionMethod",
"verificationMethod": "did:example:456#key-1",
"jws": "eyJjcml0IjpbImI2NCJdLCJiNjQiOmZhbHNlLCJhbGciOiJFZERTQSJ9..BhWew0x-txcroGjgdtK-yBCqoetg9DD9SgV4245TmXJi-PmqFzux6Cwaph0r-mbqzlE17yLebjfqbRT275U1AA"
}
}
{ // external (all terms in this example)
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://www.w3.org/2018/credentials/examples/v1"
],
"id": "http://example.gov/credentials/3732",
"type": ["VerifiableCredential", "UniversityDegreeCredential"],
"issuer": { "id": "did:example:123" },
"issuanceDate": "2020-03-10T04:24:12.164Z",
"credentialSubject": {
"id": "did:example:456",
"degree": {
"type": "BachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "JsonWebSignature2020",
"created": "2020-02-15T17:13:18Z",
"verificationMethod": "did:example:123#_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A",
"proofPurpose": "assertionMethod",
"jws": "eyJiNjQiOmZhbHNlLCJjcml0IjpbImI2NCJdLCJhbGciOiJFZERTQSJ9..Y0KqovWCPAeeFhkJxfQ22pbVl43Z7UI-X-1JX32CA9MkFHkmNprcNj9Da4Q4QOl0cY3obF8cdDRdnKr0IwNrAw"
}
}
{ // external (all terms in this example)
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://w3id.org/security/bbs/v1",
{
"name": "https://schema.org/name",
"birthDate": "https://schema.org/birthDate"
}
],
"id": "urn:uuid:c499e122-3ba9-4e95-8d4d-c0ebfcf8c51a",
"type": ["VerifiableCredential"],
"issuanceDate": "2021-02-07T16:02:08.571Z",
"issuer": {
"id": "did:example:123"
},
"credentialSubject": {
"id": "did:example:456",
"name": "John Smith",
"birthDate": "2021-02-07"
},
"proof": {
"type": "BbsBlsSignature2020",
"created": "2021-02-07T16:02:10Z",
"proofPurpose": "assertionMethod",
"proofValue": "o7zD2eNTp657YzkJLub+IO4Zqy/R3Lv/AWmtSA/kUlEAOa73BNyP1vOeoow35jkABolx4kYMKkp/ZsFDweuKwe/p9vxv9wrMJ9GpiOZjHcpjelDRRJLBiccg9Yv7608mHgH0N1Qrj14PZ2saUlfhpQ==",
"verificationMethod": "did:example:123#bls12381-g2-key"
}
}
{ // external (all terms in this example)
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://w3id.org/security/bbs/v1",
{
"name": "https://schema.org/name",
"birthDate": "https://schema.org/birthDate"
}
],
"id": "urn:uuid:c499e122-3ba9-4e95-8d4d-c0ebfcf8c51a",
"type": "VerifiableCredential",
"issuanceDate": "2021-02-07T16:02:08.571Z",
"issuer": {
"id": "did:example:123"
},
"credentialSubject": {
"id": "did:example:456",
"birthDate": "2021-02-07"
},
"proof": {
"type": "BbsBlsSignatureProof2020",
"created": "2021-02-07T16:02:10Z",
"nonce": "OqZHsV/aunS34BhLaSoxiHWK+SUaG4iozM3V+1jO06zRRNcDWID+I0uwtPJJ767Yo8Q=",
"proofPurpose": "assertionMethod",
"proofValue": "AAsH34lcKsqaqPaLQWcnLMe3mDM+K7fZM0t4Iesfj7BhD//HBtuWCmZE946BqW7OHYU106MP8mLntutqB8FyGwS7AOyK+5/7iW6JwLNVCvh4Nt3IaF3AN47fqVs2VikD9DiCsaFAUU6ISj5pbad8O+6jiT9Yw6ug8t8vJn3XHvMUhCPnDZJeBEdKD1qo4Z0LOq3L8QAAAHSEgtC9BoZL2MLjz4QuPxpwbhTTRC08MIUjdJnP4JUtz6163Lsl3rpadGu2d3Te7loAAAACZBD4YWOgV0xpPoYZ5vywNA5/NTeDHDbX36gvoV5RDJtY1SLU2LN/IDPZGrfhEiASbD1/QXqj8dod6FbjBs9m/LchBcy7z4yDBv/8DnBzDJ9dEaM4bDjpwmqtgJqha2kwtlyNog67xG9tNjnp5rrbIgAAAANMVanwWmlkg5I/f1M2QJ5GRvQiBL4lyL5sttxwIOalbTZP8VqWtFJI54xMNjTiK71aFWWN8SlNEwfVIX34HO5zBIb6fvc+Or21ubYllT9eXv1epl2o2CojuieCZyxE8/Q=",
"verificationMethod": "did:example:123#bls12381-g2-key"
}
}
{ // external (all terms in this example)
"protected": {
"kid": "did:example:123#_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A",
"alg": "EdDSA"
},
"payload": {
"iss": "did:example:123",
"sub": "did:example:456",
"vc": {
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://www.w3.org/2018/credentials/examples/v1"
],
"id": "http://example.gov/credentials/3732",
"type": [
"VerifiableCredential",
"UniversityDegreeCredential"
],
"issuer": {
"id": "did:example:123"
},
"issuanceDate": "2020-03-10T04:24:12.164Z",
"credentialSubject": {
"id": "did:example:456",
"degree": {
"type": "BachelorDegree",
"name": "Bachelor of Science and Arts"
}
}
},
"jti": "http://example.gov/credentials/3732",
"nbf": 1583814252
},
"signature": "qSv6dpZJGFybtcifLwGf4ujzlEu-fam_M7HPxinCbVhz9iIJCg70UMeQbPa1ex6BmQ2tnSS7F11FHnMB2bJRAw"
}
์ด๋ฌํ ์๋ ์ ๋ณด ์ ๊ณต ๋ชฉ์ ์ผ๋ก๋ง ์ ๊ณต๋๋ฉฐ, JWE ํค๋์์ ๋ถํ์ํ ์ ๋ณด๋ฅผ ๊ณต๊ฐํ์ง ์๋ ๊ฒ์ด ๋ชจ๋ฒ ์ฌ๋ก๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
{ // external (all terms in this example)
"ciphertext": "3SHQQJajNH6q0fyAHmw...",
"iv": "QldSPLVnFf2-VXcNLza6mbylYwphW57Q",
"protected": "eyJlbmMiOiJYQzIwUCJ9",
"recipients": [
{
"encrypted_key": "BMJ19zK12YHftJ4sr6Pz1rX1HtYni_L9DZvO1cEZfRWDN2vXeOYlwA",
"header": {
"alg": "ECDH-ES+A256KW",
"apu": "Tx9qG69ZfodhRos-8qfhTPc6ZFnNUcgNDVdHqX1UR3s",
"apv": "ZGlkOmVsZW06cm9wc3RlbjpFa...",
"epk": {
"crv": "X25519",
"kty": "OKP",
"x": "Tx9qG69ZfodhRos-8qfhTPc6ZFnNUcgNDVdHqX1UR3s"
},
"kid": "did:example:123#zC1Rnuvw9rVa6E5TKF4uQVRuQuaCpVgB81Um2u17Fu7UK"
}
}
],
"tag": "xbfwwDkzOAJfSVem0jr1bA"
}
Following is a diagram showing the relationships among , , and , and .
DID์ ์์ฑ์ ๊ฐ DID ๋ฉ์๋์ ์ํด ์ ์๋๋ ํ๋ก์ธ์ค์ด๋ค.
did:key์ ๊ฐ์ ์ผ๋ถ DID ๋ฉ์๋๋ ์์ํ๊ฒ
์์ฑ์ ์ด์ด์ ๋จ์ผ ์ํธํ ์๋ฃ๋ฅผ ๊ท๊ฒฉ์ ๋ง๋ ํํ์ผ๋ก ๋ณํํ์ฌ
DID์ DID ๋ฌธ์๋ฅผ ์์ฑํ๋ค. ๋ค๋ฅธ DID ๋ฉ์๋๋
๊ฒ์ฆ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๋ ์ง์คํธ๋ฆฌ์ ์ฌ์ฉ์ ์๊ตฌํ ์ ์์ผ๋ฉฐ, ์ฌ๊ธฐ์
DID์ DID ๋ฌธ์๋ ํด๋น DID ๋ฉ์๋์ ์ํด ์ ์๋
๋๋ก ๋ฑ๋ก์ด ์๋ฃ๋์์ ๋๋ง ์ 3์์ ์ํด ์กด์ฌํ๋ ๊ฒ์ผ๋ก ์ธ์๋๋ค.
๋ค๋ฅธ ํ๋ก์ธ์ค๋ ํด๋น DID ๋ฉ์๋์ ์ํด ์ ์๋ ์ ์๋ค.
DID๋ ํน์ ์ ํ์ URI(Uniform Resource Identifier)์ด๋ฏ๋ก DID๋ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ์ฐธ์กฐํ ์ ์๋ค. [[RFC3986]]์ ๋ฐ๋ฅด๋ฉด:
"๋ฆฌ์์ค"๋ผ๋ ์ฉ์ด๋ URI์ ์ํด ์๋ณ๋ ์ ์๋ ๋ชจ๋ ๊ฒ์ ๋ํด ์ผ๋ฐ์ ์ธ ์๋ฏธ๋ก ์ฌ์ฉ๋๋ค. [...] ๋ฆฌ์์ค๊ฐ ๋ฐ๋์ ์ธํฐ๋ท์ ํตํด ์ ๊ทผ ๊ฐ๋ฅํ ๊ฒ์ ์๋๋ค.
๋ฆฌ์์ค๋ ๋์งํธ ๋๋ ๋ฌผ๋ฆฌ์ , ์ถ์์ ๋๋ ๊ตฌ์ฒด์ ์ผ ์ ์๋ค. URI๋ฅผ ํ ๋นํ ์ ์๋ ๋ชจ๋ ๋ฆฌ์์ค์ DID๋ฅผ ํ ๋นํ ์ ์๋ค. DID์ ์ํด ์ฐธ์กฐ๋๋ ๋ฆฌ์์ค๋ DID ์ฃผ์ฒด์ด๋ค.
DID ์ปจํธ๋กค๋ฌ๋ DID ์ฃผ์ฒด๋ฅผ ๊ฒฐ์ ํ๋ค. DID ์์ฒด๋ฅผ ๋ณด๊ณ DID ์ฃผ์ฒด๋ฅผ ๊ฒฐ์ ํ ์ ์์ ๊ฒ์ผ๋ก ์์๋์ง ์๋๋ฐ, ์ด๋ DID๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋์ด ์๋ ๊ธฐ๊ณ์๋ง ์๋ฏธ๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค. DID๋ DID ์ฃผ์ฒด์ ๋ํ ์ ๋ณด๋ฅผ ํฌํจํ์ง ์์ ๊ฐ๋ฅ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ DID ์ฃผ์ฒด์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ DID๋ฅผ DID ๋ฌธ์๋ก ๋ณํํ๊ฑฐ๋ DID์ ๋ํ ๊ฒ์ฆ ๊ฐ๋ฅํ ํฌ๋ฆฌ๋ด์ ์ ์ป๊ฑฐ๋ DID์ ๋ํ ๋ค๋ฅธ ์ค๋ช ์ ํตํด์๋ง ๋ฐ๊ฒฌํ ์ ์๋ค.
๊ฒ์๋ DID ๋ฌธ์์ id ์์ฑ์ ๊ฐ์ ํญ์ ํด์
์ค์ธ DID์ ์ผ์นํด์ผ ํ์ง๋ง, DID๊ฐ ์ค์ ๋ก ์ฐธ์กฐํ๋
๋ฆฌ์์ค๊ฐ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋ ์ ์๋์ง ์ฌ๋ถ๋
DID ๋ฉ์๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค. ์๋ฅผ ๋ค์ด DID ์ฃผ์ฒด๊ฐ
๋ณ๊ฒฝ๋๋ ๊ฒ์ ํ์ฉํ๋ DID ๋ฉ์๋๋ ํ์ฌ์ CEO์ ๊ฐ์ ํน์
์ญํ ์ ํ์ฌ ๋ด๋น์์ ๋ํ DID๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ผ๋ฉฐ,
์ฌ๊ธฐ์ ์ค์ ๋ก ๊ทธ ์ญํ ์ ๋งก๊ณ ์๋ ์ฌ๋์ DID๊ฐ ํด์๋๋ ์์ ์
๋ฐ๋ผ ๋ค๋ฅผ ์ ์๋ค.
DID๋ DID ์ฃผ์ฒด๋ฅผ ์ฐธ์กฐํ๊ณ (DID ๋ฉ์๋์ ์ํด ์ง์ ๋ ํ๋กํ ์ฝ์ ๋ฐ๋ผ) DID ๋ฌธ์๋ก ํด์๋๋ค. DID ๋ฌธ์๋ DID ์ฃผ์ฒด์ ๋ณ๊ฐ์ ๋ฆฌ์์ค๊ฐ ์๋๋ฉฐ DID์ ๋ณ๊ฐ์ URI๋ฅผ ๊ฐ์ง๊ณ ์์ง ์๋ค. ์คํ๋ ค DID ๋ฌธ์๋ DID ์ฃผ์ฒด๋ฅผ ์ค๋ช ํ๊ธฐ ์ํด DID ์ปจํธ๋กค๋ฌ์ ์ํด ์ ์ด๋๋ DID ํด์์ ๊ฒฐ๊ณผ๋ฌผ์ด๋ค.
This distinction is illustrated by the graph model shown below.
DID ๋ฌธ์์ ๊ฐ ์์ฑ์ ๋ค์์ ์ค๋ช ํ๋ DID ์ปจํธ๋กค๋ฌ์ ๋ช ์ธ์ด๋ค:
id ๋ฐ alsoKnownAs ์์ฑ)
verificationMethod ๋ฐ
service ์์ฑ).
@context ์์ฑ).
DID ๋ฌธ์์์ ํ์ ์์ฑ์ id๋ฟ์ด๋ฏ๋ก, ์ด๊ฒ์ด DID ๋ฌธ์์ ๋ณด์ฅ๋๋ ์ ์ผํ ๋ช
์ธ์ด๋ค. ์ด
๋ช
์ธ๋ ์์ DID์
DID ์ฃผ์ฒด ์ฌ์ด์ ์ง์ ๋งํฌ๋ก ํ์๋๋ค.
DID ์ฃผ์ฒด์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ๋ฐ๊ฒฌํ๋ ์ต์
์ DID ๋ฌธ์์
์กด์ฌํ๋ ์์ฑ์ ๋ฐ๋ผ ๋ค๋ฅด๋ค. service ์์ฑ์ด ์๋
๊ฒฝ์ฐ ์๋น์ค ์๋ํฌ์ธํธ์์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์์ฒญํ ์ ์๋ค. ์๋ฅผ
๋ค์ด DID ์ฃผ์ฒด๋ฅผ ์ค๋ช
ํ๋ ํ๋ ์ด์์ ํด๋ ์(์์ฑ)์ ๋ํด ๊ฒ์ฆ
๊ฐ๋ฅํ ํฌ๋ฆฌ๋ด์
์ ์ง์ํ๋ ์๋น์ค ์๋ํฌ์ธํธ๋ฅผ ์ฟผ๋ฆฌํ์ฌ ์ถ๊ฐ
์ ๋ณด๋ฅผ ์ป์ ์ ์๋ค.
๋ ๋ค๋ฅธ ์ต์
์ DID ๋ฌธ์์
alsoKnownAs ์์ฑ์ด ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
DID ์ปจํธ๋กค๋ฌ๋ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋์ผํ DID ์ฃผ์ฒด๋ฅผ ์ฐธ์กฐํ๋
๋ค๋ฅธ URI(๋ค๋ฅธ DID ํฌํจ) ๋ชฉ๋ก์ ์ ๊ณตํ ์ ์๋ค. ์๋ ๊ทธ๋ฆผ์
ํ์๋ ๊ฒ์ฒ๋ผ ์ด๋ฌํ URI๋ฅผ ํด์ํ๊ฑฐ๋ ์ญ์ฐธ์กฐํ๋ฉด DID ์ฃผ์ฒด์
๋ํ ๋ค๋ฅธ ์ค๋ช
๋๋ ํํ์ ์ป์ ์ ์๋ค.
DID ์ฃผ์ฒด๊ฐ ์ธํฐ๋ท์์ ๊ฒ์ํ ์ ์๋ ๋์งํธ ๋ฆฌ์์ค์ธ ๊ฒฝ์ฐ DID ๋ฉ์๋๋ DID ์ฃผ์ฒด ์์ฒด์ ํํ์ ๋ฐํํ๋ DID URL์ ๊ตฌ์ฑํ๋๋ก ์ ํํ ์ ์๋ค. ์๋ฅผ ๋ค์ด ์๊ตฌ์ ์ด๊ณ ์ํธํ์ ์ผ๋ก ๊ฒ์ฆ ๊ฐ๋ฅํ ์๋ณ์๊ฐ ํ์ํ ๋ฐ์ดํฐ ์คํค๋ง์ DID๋ฅผ ํ ๋นํ ์ ์์ผ๋ฉฐ, ์ง์ ๋ DID ๋งค๊ฐ๋ณ์( ์ฐธ์กฐ)๋ฅผ ์ ๋ฌํ๋ ๊ฒ์ ํด๋น ์คํค๋ง์ ํํ์ ๊ฒ์ํ๋ ํ์ค ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉ๋ ์ ์๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ํด๋น ๊ธฐ๋ฅ์ด ์ ์ฉ ๊ฐ๋ฅํ DID ๋ฉ์๋์์ ์ง์๋๋ ๊ฒฝ์ฐ DID๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ฆ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๋ ์ง์คํธ๋ฆฌ์์ ์ง์ ๋ฐํ๋ ์ ์๋ ๋์งํธ ๋ฆฌ์์ค(์: ์ด๋ฏธ์ง)๋ฅผ ์ฐธ์กฐํ ์ ์๋ค.
์น ํ์ด์ง ๋๋ ๋ค๋ฅธ ์น ๋ฆฌ์์ค์ ์ปจํธ๋กค๋ฌ๊ฐ ์๊ตฌ์ ์ด๊ณ ์ํธํ์ ์ผ๋ก
๊ฒ์ฆ ๊ฐ๋ฅํ ์๋ณ์๋ฅผ ํ ๋นํ๋ ค๋ ๊ฒฝ์ฐ ์ปจํธ๋กค๋ฌ๋ DID๋ฅผ ๋ถ์ฌํ ์
์๋ค. ์๋ฅผ ๋ค์ด ๋ธ๋ก๊ทธ ํธ์คํ
ํ์ฌ(ํด๋น ํธ์คํ
ํ์ฌ์ ๋๋ฉ์ธ์์)๊ฐ
ํธ์คํ
ํ๋ ๋ธ๋ก๊ทธ์ ์์ฑ์๋ ๋ธ๋ก๊ทธ์ ๋ํ DID๋ฅผ ๋ง๋ค ์ ์๋ค.
DID ๋ฌธ์์์ ์์ฑ์๋ ๋ธ๋ก๊ทธ์ ํ์ฌ URL์ ๊ฐ๋ฆฌํค๋
alsoKnownAs ์์ฑ์ ํฌํจํ ์ ์๋ค. ์:
"alsoKnownAs": ["https://myblog.blogging-host.example/home"]
์์ฑ์๊ฐ ๋์ค์ ๋ธ๋ก๊ทธ๋ฅผ ๋ค๋ฅธ ํธ์คํ ํ์ฌ(๋๋ ์์ฑ์ ์์ ์ ๋๋ฉ์ธ)๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ ์์ฑ์๋ DID ๋ฌธ์๋ฅผ ์ ๋ฐ์ดํธํ์ฌ ๋ธ๋ก๊ทธ์ ์ URL์ ๊ฐ๋ฆฌํฌ ์ ์๋ค. ์:
"alsoKnownAs": ["https://myblog.example/"]
DID๋ ๋ธ๋ก๊ทธ URL์ ๋ํ ๊ฐ์ ๋ ์ด์ด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ถ๊ฐํ๋ค. ์ด ๊ฐ์ ๋ ์ด์ด๋ ๋ธ๋ก๊ทธ ํธ์คํ ํ์ฌ์ ๊ฐ์ ์ธ๋ถ ๊ด๋ฆฌ ๊ธฐ๊ด์ ์ ์ด๊ฐ ์๋ ์์ฑ์์ ์ ์ด ํ์ ์๋ค. ์ด๊ฒ์ด DID๊ฐ ๋คํธ์ํฌ ์์น๊ฐ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋ ์ ์๋ ์ ๋ณด ๋ฆฌ์์ค์ ๋ํ ์๊ตฌ ์๋ณ์์ธ URN(Uniform Resource Name)์ผ๋ก ํจ๊ณผ์ ์ผ๋ก ๊ธฐ๋ฅํ๋ ๋ฐฉ๋ฒ์ด๋ค.
ํผ๋์ ํผํ๊ธฐ ์ํด DID ์ปจํธ๋กค๋ฌ์์ ๊ด๊ณ์ ๋ฐ๋ผ DID ์ฃผ์ฒด๋ฅผ ๋ ๊ฐ์ ์๋ก ์ ์งํฉ์ผ๋ก ๋ถ๋ฅํ๋ ๊ฒ์ด ๋์์ด ๋๋ค.
์ ํ์๋ ์ฒซ ๋ฒ์งธ ๊ฒฝ์ฐ๋ DID ์ฃผ์ฒด๊ฐ DID ์ปจํธ๋กค๋ฌ์ด๊ธฐ๋ ํ ์ผ๋ฐ์ ์ธ ์๋๋ฆฌ์ค์ด๋ค. ์ด๊ฒ์ ๊ฐ์ธ์ด๋ ์กฐ์ง์ด ์๊ธฐ ์์ ์ ์๋ณํ๊ธฐ ์ํด DID๋ฅผ ๋ง๋๋ ๊ฒฝ์ฐ์ด๋ค.
๊ทธ๋ํ ๋ชจ๋ธ ๊ด์ ์์ ๋ณด๋ฉด, ์์ DID ์ปจํธ๋กค๋ฌ์ DID ์ฃผ์ฒด๋ก ์๋ณ๋๋ ๋ ธ๋๊ฐ ์๋ก ๊ตฌ๋ณ๋๋๋ผ๋ ์๋ฏธ๋ก ์ ๋๋ฑ์ฑ ๊ด๊ณ๋ฅผ ํํํ๊ธฐ ์ํด ์ด๋ค์ ์ฐ๊ฒฐํ๋ ๋ ผ๋ฆฌ์ ํธ๊ฐ ์๋ค.
๋ ๋ฒ์งธ ๊ฒฝ์ฐ๋ DID ์ฃผ์ฒด๊ฐ DID ์ปจํธ๋กค๋ฌ์ ๋ณ๊ฐ์ ์ํฐํฐ์ธ ๊ฒฝ์ฐ์ด๋ค. ์ด๋ ์๋ฅผ ๋ค์ด ๋ถ๋ชจ๊ฐ ์๋ ๋ฅผ ์ํ DID๋ฅผ ์์ฑํ๊ณ ์ ์ด๋ฅผ ์ ์งํ๋ ๊ฒฝ์ฐ, ๊ธฐ์ ์ด ์ํ์ฌ๋ฅผ ์ํ DID๋ฅผ ์์ฑํ๊ณ ์ ์ด๋ฅผ ์ ์งํ๋ ๊ฒฝ์ฐ, ๋๋ ์ ์กฐ์ ์ฒด๊ฐ ์ ํ, IoT ์ฅ์น ๋๋ ๋์งํธ ํ์ผ์ ์ํ DID๋ฅผ ์์ฑํ๊ณ ์ ์ด๋ฅผ ์ ์งํ๋ ๊ฒฝ์ฐ์ด๋ค.
๊ทธ๋ํ ๋ชจ๋ธ ๊ด์ ์์ ๋ณด๋ฉด, ์งํฉ 1๊ณผ์ ์ ์ผํ ์ฐจ์ด์ ์ DID ์ฃผ์ฒด์ DID ์ปจํธ๋กค๋ฌ ๋ ธ๋ ์ฌ์ด์ ๋๋ฑ์ฑ ํธ ๊ด๊ณ๊ฐ ์๋ค๋ ๊ฒ์ด๋ค.
DID ๋ฌธ์์๋ ๋ ์ด์์ DID ์ปจํธ๋กค๋ฌ๊ฐ ์์ ์ ์๋ค. ์ด๋ ๋ ๊ฐ์ง ๋ฐฉ์ ์ค ํ๋๋ก ๋ฐ์ํ ์ ์๋ค.
์ด ๊ฒฝ์ฐ ๊ฐ DID ์ปจํธ๋กค๋ฌ๋ ๋ ์์ ์ผ๋ก ํ๋ํ ์ ์๋ค. ์ฆ, ๊ฐ ์ปจํธ๋กค๋ฌ๋ DID ๋ฌธ์๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์ ๋ฐ์ดํธํ ์ ์๋ ์์ ํ ๊ถํ์ ๊ฐ์ง๊ณ ์๋ค. ๊ทธ๋ํ ๋ชจ๋ธ ๊ด์ ์์ ์ด ๊ตฌ์ฑ์์๋:
๊ทธ๋ฃน ์ ์ด์ ๊ฒฝ์ฐ DID ์ปจํธ๋กค๋ฌ๋ ์ฌ๋ฌ ๋์งํธ ์๋ช ("๋ฉํฐ ์๊ทธ")์ด๋ ์๊ณ๊ฐ ์์ ๋์งํธ ์๋ช ("m-of-n")์ ์๊ตฌํ๋ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ๋์ ๊ฐ์ด ์ด๋ค ๋ฐฉ์์ผ๋ก๋ ํจ๊ป ํ๋ํ ๊ฒ์ผ๋ก ์์๋๋ค. ๊ธฐ๋ฅ์ ๊ด์ ์์ ์ด ์ต์ ์ ๋จ์ผ DID ์ปจํธ๋กค๋ฌ์ ์ ์ฌํ๋ฐ, ๋น๋ก DID ์ปจํธ๋กค๋ฌ ๊ทธ๋ฃน์ ๊ฐ DID ์ปจํธ๋กค๋ฌ๊ฐ ์์ฒด ๊ทธ๋ํ ๋ ธ๋๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง ์ ํ์๋ ๊ฒ์ฒ๋ผ ์ค์ ์ ์ด๋ DID ์ปจํธ๋กค๋ฌ ๊ทธ๋ฃน์ ๋ํ๋ด๋ ๋จ์ผ ๋ ผ๋ฆฌ์ ๊ทธ๋ํ ๋ ธ๋๋ก ์ถ์๋๊ธฐ ๋๋ฌธ์ด๋ค.
์ด ๊ตฌ์ฑ์ DID ์ฃผ์ฒด๊ฐ ๋จ์ผ ๊ฐ์ธ์ด ์ ์ดํ์ง ์๋ ์กฐ์ง, ๊ธฐ์ , ์ ๋ถ ๊ธฐ๊ด, ์ปค๋ฎค๋ํฐ ๋๋ ๊ธฐํ ๊ทธ๋ฃน์ผ ๋ ์ข ์ข ์ ์ฉ๋ ๊ฒ์ด๋ค.
DID ๋ฌธ์์๋ DID ์ฃผ์ฒด๋ฅผ ์ฐธ์กฐํ๋ ์ ํํ ํ๋์
DID๊ฐ ์๋ค. DID๋ id ์์ฑ์ ๊ฐ์ผ๋ก
ํํ๋๋ค. ์ด ์์ฑ ๊ฐ์ DID ๋ฌธ์์ ์๋ช
๋์ ๋ถ๋ณ์ด๋ค.
๊ทธ๋ฌ๋ DID์ ์ํด ์๋ณ๋ ๋ฆฌ์์ค์ธ DID ์ฃผ์ฒด๊ฐ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋ ์ ์๋ค. ์ด๋ DID ์ปจํธ๋กค๋ฌ์ ๋ ์ ์ ๊ถํ ํ์ ์๋ค. ์์ธํ ๋ด์ฉ์ ์น์ ์ ์ฐธ์กฐํ๋ผ.
DID ๋ฌธ์์ DID ์ปจํธ๋กค๋ฌ๋ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋ ์ ์๋ค. ๊ทธ๋ฌ๋ ๊ตฌํ ๋ฐฉ์์ ๋ฐ๋ผ DID ์ปจํธ๋กค๋ฌ์ ๋ณ๊ฒฝ์ DID ๋ฌธ์ ์์ฒด์ ๋ณ๊ฒฝ์ผ๋ก ๋ช ํํ ๋๋ฌ๋์ง ์์ ์ ์๋ค. ์๋ฅผ ๋ค์ด ๋ณ๊ฒฝ์ด DID ๋ฌธ์์ ํ๋ ์ด์์ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ์ฌ์ฉ๋๋ ๊ธฐ๋ณธ ์ํธํ ํค ๋๋ ๊ธฐํ ์ ์ด์ ์์ ๊ถ ์ด๋์ ํตํด ๊ตฌํ๋๋ ๊ฒฝ์ฐ ํ์ค ํค ๊ต์ฒด์ ๊ตฌ๋ณํ ์ ์์ ์ ์๋ค.
๋ฐ๋ฉด์ ๋ณ๊ฒฝ์ด `controller` ์์ฑ์ ๊ฐ์ ๋ณ๊ฒฝํ์ฌ ๊ตฌํ๋๋ ๊ฒฝ์ฐ ํฌ๋ช ํ ๊ฒ์ด๋ค.
DID ์ปจํธ๋กค๋ฌ์ ๋ณ๊ฒฝ์ ๊ฒ์ฆํ๋ ๊ฒ์ด ์ค์ํ ๊ฒฝ์ฐ ๊ตฌํ์๋ ์์ ๋ DID ๋ฌธ์์ ๊ฒ์ฆ ๋ฐฉ๋ฒ์ ๋ํด ์๋ก์ด DID ์ปจํธ๋กค๋ฌ๋ฅผ ์ธ์ฆํ๋ ๊ฒ์ด ์ข๋ค.
This section contains the changes that have been made since the publication of this specification as a W3C First Public Working Draft.
Changes since the Second Candidate Recommendation include:
publicKeyMultibase.
Changes since the First Candidate Recommendation include:
Changes since the First Public Working Draft include:
The Working Group extends deep appreciation and heartfelt thanks to our Chairs Brent Zundel and Dan Burnett, as well as our W3C Staff Contact, Ivan Herman, for their tireless work in keeping the Working Group headed in a productive direction and navigating the deep and dangerous waters of the standards process.
The Working Group gratefully acknowledges the work that led to the creation of this specification, and extends sincere appreciation to those individuals that worked on technologies and specifications that deeply influenced our work. In particular, this includes the work of Phil Zimmerman, Jon Callas, Lutz Donnerhacke, Hal Finney, David Shaw, and Rodney Thayer on Pretty Good Privacy (PGP) in the 1990s and 2000s.
In the mid-2010s, preliminary implementations of what would become Decentralized Identifiers were built in collaboration with Jeremie Miller's Telehash project and the W3C Web Payments Community Group's work led by Dave Longley and Manu Sporny. Around a year later, the XDI.org Registry Working Group began exploring decentralized technologies for replacing its existing identifier registry. Some of the first written papers exploring the concept of Decentralized Identifiers can be traced back to the first several Rebooting the Web of Trust workshops convened by Christopher Allen. That work led to a key collaboration between Christopher Allen, Drummond Reed, Les Chasen, Manu Sporny, and Anil John. Anil saw promise in the technology and allocated the initial set of government funding to explore the space. Without the support of Anil John and his guidance through the years, it is unlikely that Decentralized Identifiers would be where they are today. Further refinement at the Rebooting the Web of Trust workshops led to the first implementers documentation, edited by Drummond Reed, Les Chasen, Christopher Allen, and Ryan Grant. Contributors included Manu Sporny, Dave Longley, Jason Law, Daniel Hardman, Markus Sabadello, Christian Lundkvist, and Jonathan Endersby. This initial work was then merged into the W3C Credentials Community Group, incubated further, and then transitioned to the W3C Decentralized Identifiers Working Group for global standardization.
Portions of the work on this specification have been funded by the United States Department of Homeland Security's (US DHS) Science and Technology Directorate under contracts HSHQDC-16-R00012-H-SB2016-1-002, and HSHQDC-17-C-00019, as well as the US DHS Silicon Valley Innovation Program under contracts 70RSAT20T00000010, 70RSAT20T00000029, 70RSAT20T00000030, 70RSAT20T00000045, 70RSAT20T00000003, and 70RSAT20T00000033. The content of this specification does not necessarily reflect the position or the policy of the U.S. Government and no official endorsement should be inferred.
Portions of the work on this specification have also been funded by the European Union's StandICT.eu program under sub-grantee contract number CALL05/19. The content of this specification does not necessarily reflect the position or the policy of the European Union and no official endorsement should be inferred.
Work on this specification has also been supported by the Rebooting the Web of Trust community facilitated by Christopher Allen, Shannon Appelcline, Kiara Robles, Brian Weller, Betty Dhamers, Kaliya Young, Kim Hamilton Duffy, Manu Sporny, Drummond Reed, Joe Andrieu, and Heather Vescent. Development of this specification has also been supported by the W3C Credentials Community Group, which has been Chaired by Kim Hamilton Duffy, Joe Andrieu, Christopher Allen, Heather Vescent, and Wayne Chang. The participants in the Internet Identity Workshop, facilitated by Phil Windley, Kaliya Young, Doc Searls, and Heidi Nobantu Saul, also supported this work through numerous working sessions designed to debate, improve, and educate participants about this specification.
The Working Group thanks the following individuals for their contributions to this specification (in alphabetical order, Github handles start with `@` and are sorted as last names): Denis Ah-Kang, Nacho Alamillo, Christopher Allen, Joe Andrieu, Antonio, Phil Archer, George Aristy, Baha, Juan Benet, BigBlueHat, Dan Bolser, Chris Boscolo, Pelle Braendgaard, Daniel Buchner, Daniel Burnett, Juan Caballero, @cabo, Tim Cappalli, Melvin Carvalho, David Chadwick, Wayne Chang, Sam Curren, Hai Dang, Tim Daubenschรผtz, Oskar van Deventer, Kim Hamilton Duffy, Arnaud Durand, Ken Ebert, Veikko Eeva, @ewagner70, Carson Farmer, Nikos Fotiou, Gabe, Gayan, @gimly-jack, @gjgd, Ryan Grant, Peter Grassberger, Adrian Gropper, Amy Guy, Daniel Hardman, Kyle Den Hartog, Philippe Le Hegaret, Ivan Herman, Michael Herman, Alen Horvat, Dave Huseby, Marcel Jackisch, Mike Jones, Andrew Jones, Tom Jones, jonnycrunch, Gregg Kellogg, Michael Klein, @kdenhartog-sybil1, Paul Knowles, @ktobich, David I. Lehn, Charles E. Lehner, Michael Lodder, @mooreT1881, Dave Longley, Tobias Looker, Wolf McNally, Robert Mitwicki, Mircea Nistor, Grant Noble, Mark Nottingham, @oare, Darrell O'Donnell, Vinod Panicker, Dirk Porsche, Praveen, Mike Prorock, @pukkamustard, Drummond Reed, Julian Reschke, Yancy Ribbens, Justin Richer, Rieks, @rknobloch, Mikeal Rogers, Evstifeev Roman, Troy Ronda, Leonard Rosenthol, Michael Ruminer, Markus Sabadello, Cihan Saglam, Samu, Rob Sanderson, Wendy Seltzer, Mehran Shakeri, Jaehoon (Ace) Shim, Samuel Smith, James M Snell, SondreB, Manu Sporny, @ssstolk, Orie Steele, Shigeya Suzuki, Sammotic Switchyarn, @tahpot, Oliver Terbu, Ted Thibodeau Jr., Joel Thorstensson, Tralcan, Henry Tsai, Rod Vagg, Mike Varley, Kaliya "Identity Woman" Young, Eric Welton, Fuqiao Xue, @Yue, Dmitri Zagidulin, @zhanb, and Brent Zundel.
This section will be submitted to the Internet Engineering Steering Group (IESG) for review, approval, and registration with IANA when this specification becomes a W3C Proposed Recommendation.
Fragment identifiers used with application/did+json are treated according to the rules defined in .
The Candidate Recommendation phase for this specification received a
significant number of implementations for the
application/did+ld+json media type. Registration of the
media type application/did+ld+json at IANA is pending
resolution of the
Media Types with Multiple Suffixes
issue. Work is expected to continue in the
IETF Media Type Maintenance Working Group
with a registration of the application/did+ld+json media
type by W3C following shortly after the publication of the
Media Types with Multiple Suffixes
RFC.
Fragment identifiers used with application/did+ld+json are treated according to the rules associated with the JSON-LD 1.1: application/ld+json media type [[JSON-LD11]].