ì´ ë¬¸ìë 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]].