들어가며.
UCAN은 웹3 세상을 위한 Authorization(이후 AuthZ) 기술 입니다.
DID를 이용해서, DID document가 제공하는 pub-key를 인증 수단으로 사용하자는 아이디어가 핵심입니다.

 

웹3를 위한 Access Token, UCAN

 

개요

  • UCAN은 User Controlled AuthZ Network의 약자 (본질은 Access Token)
  • 사용자 데이터의 통제권을 사용자 개인에게 부여하는 기술
  • UCAN의 특징
    • Trustless: UCAN 토큰의 유통 및 권한 행사에 참여하는 누구도 신뢰를 강요하지 않는다 (Trustless한 객체들이 모여 신뢰할 수 있는 결과를 만든다)
    • Secure: 암호 알고리즘이 안전을 보장한다
    • 그리고, local-first, user-originated 하다

 

상세

  • 아이디어의 배경: 탈중앙화된 웹3 환경에서는 기존과 다른 AuthZ 방식을 고민해야 한다
    • ACL을 관리하는 '중앙'이 없기 때문이다
    • AuthZ 관리에 필요한 모든 내용을 포함한 토큰을 이용하면 탈중앙화된 방식으로 권한 관리를 수행할 수 있다 (UCAN은 SPKI와 OCAP/object capability 기술을 참조했다)
  • UCAN 토큰은 영화티켓에 비유할 수 있다
    • 누구도 당신의 신원/Identity을 묻지 않는다
    • 다른 사람에게 티켓을 양도할 수 있다 (이를 위해 극장과 협의할 필요도 없다)
  • UCAN은 자원, 권한, 주체를 명시하기 위해 DID를 사용한다
    • UCAN 규격은 다음 예시와 같다 (Payload 스펙 참조)
      {
        `header`: {
          `alg`: Algorithm, // the type of signature.
          `typ`: Type, // the type of this data structure, JWT.
          `uav`: UCAN version.
        },
        `payload`: {
          `iss`: DID, // Required. Issuer DID (sender)
          `aud`: DID, // Required. Audience DID (receiver)
          `sub`: DID, // Required. Principal that the chain is about (the [Subject])
          `cmd`: String, // Required. The [Command] to eventually invoke
          `args`: {String : Any}, // Required. Any [Arguments] for the Invocation
          `nonce`: Bytes, // Required. Nonce
          `meta`: {String : Any}, // Not Required. [Meta] (asserted, signed data)
          `nbf`: Integer, // Not Required. "Not before" UTC Unix Timestamp
          `exp`: Integer | Null, // Required. Expiration UTC Unix Timestamp
        },
        `signature`: Bytes // A signature (using alg) of the base64 encoded header and payload concatenated together and delimited by '.'
      }
  • UCAN으로 할 수 있는 일
    • Delegation/위임: 권한을 발급, 전달, 제한한다
    • Invocation/사용: 위임된 권한을 행사한다
    • Revocation/철회: UCAN 토큰에 명시된 권한을 철회한다
  • UCAN 토큰 발급과 검증을 위한 다수의 라이브러리가 존재한다

 

Ref.

 

요약.
UCAN은 DID를 기반으로 정의한 탈중앙화 Web3 시대를 위한 억세스 토큰(AuthZ 토큰)입니다.
UCAN이 동작하려면 DID 인프라가 갖춰져 있어야 합니다.

Posted by ingeeC
,