반응형
W3C
W3C는 World Wide Web Consortium의 약어로, 월드 와이드 웹을 발전시키기 위한 국제 컨소시엄입니다. 1994년 팀 버너스리(Tim Berners-Lee)와 함께 창설되어 웹의 표준화와 기술 발전을 위해 다양한 규격과 지침을 제정하고 있습니다.
W3C에서 제정하는 규격은 HTML, CSS, XML, 웹 서비스, 웹 접근성 등 다양한 웹 기술과 관련된 것이며, 이를 따르는 웹 사이트와 애플리케이션은 보다 안정적이고 호환성이 좋아지며, 보다 많은 사용자와 기술을 지원할 수 있게 됩니다.
또한 W3C는 웹 표준을 만들기 위한 다양한 작업 그룹을 운영하고 있으며, 이를 통해 다양한 이해 관계자들이 함께 협력하여 웹 기술의 발전을 이끌어내고 있습니다.
W3C 탈중앙화 신원증명
W3C 탈중앙화 신원증명 서비스는 DID(Distributed Identifiers)와 Verifiable Credentials(검증 가능한 자격증명) 기술을 사용하여 동작합니다.
- DID 생성: 사용자는 분산원장 기술을 이용하여 자신의 DID를 생성합니다. DID는 고유한 식별자로, 블록체인 등의 분산원장 기술을 이용하여 생성됩니다.
- Verifiable Credentials 발급: 사용자는 자신의 개인정보를 포함한 Verifiable Credentials를 생성하고, 이를 DID에 연결합니다. Verifiable Credentials는 사용자의 신원을 증명하기 위한 정보를 포함한 자격증명입니다.
- 검증: Verifiable Credentials를 검증하기 위해서는 검증자가 해당 정보를 확인할 수 있어야 합니다. 검증자는 DID를 이용하여 해당 사용자의 Verifiable Credentials를 확인할 수 있습니다.
- 인증: 검증자는 Verifiable Credentials를 확인한 후, 사용자의 신원을 인증합니다. 이를 통해 사용자는 중앙 집중형 인증 기관이나 제삼자 신뢰 기관의 개입 없이도, 탈중앙화된 방식으로 인증을 받을 수 있습니다.
이러한 방식으로 W3C 탈중앙화 신원증명 서비스는 분산원장 기술을 이용하여 사용자의 신원을 관리하고, 탈중앙화된 방식으로 신원증명을 제공합니다.
자바스크립트에서 DID와 Verifiable Credentials를 생성하고, 검증자가 해당 정보를 확인하여 인증하는 샘플 코드
const { Ed25519VerificationKey2020 } = require('@digitalbazaar/ed25519-verification-key-2020');
const { Ed25519Signature2020 } = require('@digitalbazaar/ed25519-signature-2020');
const { Ed25519VerificationKey2018 } = require('@digitalbazaar/ed25519-verification-key-2018');
const { Ed25519Signature2018 } = require('@digitalbazaar/ed25519-signature-2018');
const { Ed25519KeyPair } = require('@transmute/ed25519-key-pair');
const { Ed25519Signature2020 } = require('@digitalbazaar/ed25519-signature-2020');
const { Ed25519VerificationKey2020 } = require('@digitalbazaar/ed25519-verification-key-2020');
const vcjs = require('@transmute/vc.js');
// DID 생성
const key = await Ed25519KeyPair.generate();
const did = `did:key:${key.fingerprint()}`;
// Verifiable Credential 발급
const credential = {
'@context': ['https://www.w3.org/2018/credentials/v1'],
type: ['VerifiableCredential'],
issuer: did,
issuanceDate: new Date().toISOString(),
credentialSubject: {
id: 'did:example:ebfeb1f712ebc6f1c276e12ec21',
degree: {
type: 'BachelorDegree',
name: 'Bachelor of Science and Arts',
},
},
};
const suite = new Ed25519Signature2020({ key });
const verifiableCredential = await vcjs.issue({
credential,
suite,
documentLoader,
});
// 검증
const result = await vcjs.verify({
credential: verifiableCredential,
suite: new Ed25519VerificationKey2020({
verificationMethod: `${did}#key`,
key,
}),
documentLoader,
});
console.log(result);
반응형
'돈되는 생활 정보' 카테고리의 다른 글
Union of Salvation 2019 영화 소개 : Grape shot (0) | 2023.03.24 |
---|---|
성경에서 헌금 비율을 정의한 부분 (0) | 2023.03.23 |
빚에 대한 격언 (0) | 2023.03.21 |
애플 페이 동작 원리 간략 설명 (0) | 2023.03.21 |
미 국무부가 발표한 2022 국가 인권 보고서 : 한국 (0) | 2023.03.21 |
댓글