forked from w3c/vc-data-model
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
6106 lines (5532 loc) · 282 KB
/
index.html
File metadata and controls
6106 lines (5532 loc) · 282 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html lang="ko">
<head>
<title>
검증가능한 크리덴셜 데이터 모델(Verifiable Credentials Data Model v1.1)
</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<!--
=== NOTA BENE ===
For the three scripts below, if your spec resides on dev.w3 you can check them
out in the same tree and use relative links so that they'll work offline,
-->
<script
class="remove"
src="https://unpkg.com/browse/jquery/dist/jquery.min.js"
></script>
<script
src="https://www.w3.org/Tools/respec/respec-w3c"
class="remove"
></script>
<script src="./common.js" class="remove"></script>
<script class="remove">
var respecConfig = {
group: 'vc',
// specification status (e.g., WD, LCWD, NOTE, etc.). If in doubt use ED.
specStatus: 'REC',
// the specification's short name, as in http://www.w3.org/TR/short-name/
shortName: 'vc-data-model',
// subtitle for the spec
subtitle: 'Expressing verifiable information on the Web',
// if you wish the publication date to be other than today, set this
publishDate: '2021-11-09',
//crEnd: "2019-08-21",
//prEnd: "2019-10-01",
implementationReportURI:
'https://w3c.github.io/vc-test-suite/implementations/',
errata: 'https://w3c.github.io/vc-data-model/errata.html',
previousMaturity: 'REC',
previousPublishDate: '2019-11-19',
// if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
// and its maturity status
// previousPublishDate: "1977-03-15",
// previousMaturity: "WD",
// extend the bibliography entries
localBiblio: vcwg.localBiblio,
doJsonLd: true,
// Uncomment these to use the respec extension that generates a list of
// normative statements:
preProcess: [
/*prepare_reqlist*/
],
postProcess: [, /*add_reqlist_button*/ restrictRefs],
github: 'https://github.com/w3c/vc-data-model/',
includePermalinks: false,
// if there a publicly available Editor's Draft, this is the link
edDraftURI: 'https://w3c.github.io/vc-data-model/',
// if this is a LCWD, uncomment and set the end of its review period
// lcEnd: "2009-08-05",
// editors, add as many as you like
// only "name" is required
editors: [
{
name: 'Manu Sporny',
url: 'https://www.linkedin.com/in/manusporny/',
company: 'Digital Bazaar',
companyURL: 'http://digitalbazaar.com/',
note: 'v1.0, v1.1',
},
{
name: 'Grant Noble',
url: 'https://www.linkedin.com/in/grant-noble-8253994a/',
company: 'ConsenSys',
companyURL: 'https://consensys.net/',
note: 'v1.0',
},
{
name: 'Dave Longley',
url: 'https://github.com/dlongley',
company: 'Digital Bazaar',
companyURL: 'http://digitalbazaar.com/',
note: 'v1.0',
},
{
name: 'Daniel C. Burnett',
url: 'https://www.linkedin.com/in/daburnett/',
company: 'ConsenSys',
companyURL: 'https://consensys.net/',
note: 'v1.0',
},
{
name: 'Brent Zundel',
url: 'https://www.linkedin.com/in/bzundel/',
company: 'Evernym',
companyURL: 'https://www.evernym.com/',
note: 'v1.0',
},
{
name: 'Kyle Den Hartog',
url: 'https://www.linkedin.com/in/kyledenhartog/',
company: 'MATTR',
companyURL: 'https://mattr.global/',
note: 'v1.1',
},
],
// authors, add as many as you like.
// This is optional, uncomment if you have authors as well as editors.
// only "name" is required. Same format as editors.
authors: [
{
name: 'Manu Sporny',
url: 'http://digitalbazaar.com/',
company: 'Digital Bazaar',
companyURL: 'http://digitalbazaar.com/',
},
{
name: 'Dave Longley',
url: 'http://digitalbazaar.com/',
company: 'Digital Bazaar',
companyURL: 'http://digitalbazaar.com/',
},
{
name: 'David Chadwick',
url: 'https://www.linkedin.com/in/david-chadwick-36816395/',
company: 'University of Kent',
companyURL: 'https://www.kent.ac.uk/',
},
],
maxTocLevel: 2,
inlineCSS: true,
};
</script>
<style>
pre .highlight {
font-weight: bold;
color: Green;
}
pre .subject {
font-weight: bold;
color: RoyalBlue;
}
pre .property {
font-weight: bold;
color: DarkGoldenrod;
}
pre .comment {
font-weight: bold;
color: SteelBlue;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.color-text {
font-weight: bold;
text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;
}
</style>
</head>
<body>
<div class="advisement" style="font-size: small">
<p>
이 문서는
<a href="https://www.w3.org/TR/vc-data-model/"
>W3C Verifiable Credentials Data Model v1.1</a
>의 한국어 번역본입니다.
</p>
<p>
이 문서에 오역 및 오타를 포함할 수 있습니다.
<b>영어 원문만이 공식적이고 규범적인 효력을 가지고 있습니다.</b>
문의나 개선사항은
<a href="https://github.com/lukasjhan/vc-data-model">깃헙 링크</a>나
<a href="mailto:lukas.j.han@gmail.com">lukas.j.han@gmail.com</a>로
연락주시기 바랍니다.<br />
</p>
<p>
원문작성일: 2022-03-03<br />
최초번역일: 2024-03-23<br />
최종수정일: 2024-04-25<br />
</p>
<dl>
<dt><span style="font-weight: 500">편집자 (가나다순)</span>:</dt>
<dd>
<a href="mailto:lukas.j.han@gmail.com">한종호</a> (<a
href="https://www.hopae.com/"
>Hopae Inc.</a
>)
</dd>
</dl>
</div>
<section id="abstract">
<h2>Abstract</h2>
<p>
<a>크리덴셜</a>은 우리 일상생활의 한 부분이다. 운전면허증은 우리가
자동차를 운전할 수 있는 능력이 있음을 주장하는 데 사용되고, 대학 학위는
우리의 교육 수준을 주장하는 데 사용될 수 있으며, 정부에서 발급한 여권은
우리가 국가 간에 여행할 수 있게 해준다. 이 규격은 이러한 종류의
<a>크리덴셜</a>을 암호학적으로 안전하고, 프라이버시를 존중하며,
기계적으로 검증 가능한 방식으로 웹에서 표현할 수 있는 메커니즘을
제공한다.
</p>
</section>
<section id="sotd">
<h2>Status of This Document</h2>
<p>
Comments regarding this document by the W3C Advisory Committee are
welcome before January 14th 2021, but readers should be aware that the
comment period regarding the rest of this document has ended and the
Working Group is unlikley to make substantive modifications to the
specification at this stage. Please file issues directly on
<a href="https://github.com/w3c/vc-data-model/issues/">GitHub</a>, or
send them to
<a href="mailto:public-vc-comments@w3.org">public-vc-comments@w3.org</a>
(<a href="mailto:public-vc-comments-request@w3.org?subject=subscribe"
>subscribe</a
>,
<a href="https://lists.w3.org/Archives/Public/public-vc-comments/"
>archives</a
>).
</p>
<p>
The Working Group has received implementation feedback showing that
there are at least two implementations for each normative feature in the
specification. The group has obtained reports from fourteen (14)
implementations. For details, see the
<a href="https://github.com/w3c/vc-test-suite/">test suite</a> and
<a href="https://w3c.github.io/vc-test-suite/implementations/"
>implementation report</a
>.
</p>
</section>
<section class="informative">
<h2>소개</h2>
<p>
<a>크리덴셜</a>은 우리 일상생활의 한 부분이다. 운전면허증은 우리가
자동차를 운전할 수 있는 능력이 있음을 주장하는 데 사용되고, 대학 학위는
우리의 교육 수준을 주장하는 데 사용될 수 있으며, 정부에서 발급한 여권은
우리가 국가 간에 여행할 수 있게 해준다. 이러한 <a>크리덴셜</a>은 물리적
세계에서 사용될 때 우리에게 이점을 제공하지만, 웹에서의 사용은 여전히
난해한 상태이다.
</p>
<p>
현재 웹에서 교육 자격, 의료 데이터, 금융 계좌 세부 정보 및 기타 종류의
제3자 <a>검증</a>된 기계 판독 가능한 개인 정보를 표현하는 것은 어렵다.
웹에서 디지털 <a>크리덴셜</a>을 표현하는 것이 어렵기 때문에 물리적
<a>크리덴셜</a>이 물리적 세계에서 우리에게 제공하는 것과 동일한 이점을
웹을 통해 받는 것이 어려워진다.
</p>
<p>
이 규격은 <a>크리덴셜</a>을 암호학적으로 안전하고, 프라이버시를
존중하며, 기계적으로 검증 가능한 방식으로 웹에서 표현할 수 있는 표준
방법을 제공한다.
</p>
<p>
<a>검증가능한 크리덴셜</a>과 관련된 개념에 익숙하지 않은 사람들을 위해
다음 섹션에서는 다음에 대한 개요를 제공한다:
</p>
<ul>
<li><a>검증가능한 크리덴셜</a>을 구성하는 컴포넌트</li>
<li><a>검증가능한 프레젠테이션</a>을 구성하는 컴포넌트</li>
<li>
<a>검증가능한 크리덴셜</a>과 <a>검증가능한 프레젠테이션</a>이 유용할
것으로 예상되는 생태계
</li>
<li>이 규격에 영향을 준 사용 사례와 요구사항</li>
</ul>
<section class="informative">
<h3>검증가능한 크리덴셜이란 무엇인가?</h3>
<p>물리적 세계에서 <a>크리덴셜</a>은 다음으로 구성될 수 있다:</p>
<ul>
<li>
<a>크리덴셜</a>의 <a>주체</a>를 식별하는 것과 관련된 정보 (예: 사진,
이름 또는 식별 번호)
</li>
<li>
발급 기관과 관련된 정보 (예: 시 정부, 국가 기관 또는 인증 기관)
</li>
<li>
이것이 어떤 유형의 <a>크리덴셜</a>인지에 대한 정보 (예: 네덜란드
여권, 미국 운전면허증 또는 건강보험증)
</li>
<li>
발급 기관이 <a>주체</a>에 대해 주장하는 특정 속성이나 속성에 관련된
정보 (예: 국적, 운전 가능한 차량 등급 또는 생년월일)
</li>
<li><a>크리덴셜</a>이 어떻게 파생되었는지에 대한 증거</li>
<li>
크리덴셜에 대한 제약 조건에 관련된 정보 (예: 만료 날짜 또는 사용
약관).
</li>
</ul>
<p>
<a>검증가능한 크리덴셜</a>은 물리적 <a>크리덴셜</a>이 나타내는 모든
정보를 표현할 수 있다. 디지털 서명과 같은 기술의 추가로 인해
<a>검증가능한 크리덴셜</a>은 물리적인 크리덴셜보다 변조가 더 어렵고
신뢰할 수 있게 된다.
</p>
<p>
<a>검증가능한 크리덴셜</a>의 <a>보유자</a>는
<a>검증가능한 프레젠테이션</a>을 생성한 다음 이러한
<a>검증가능한 프레젠테이션</a>을 <a>검증자</a>와 공유하여 특정 특성을
가진 <a>검증가능한 크리덴셜</a>을 소유하고 있음을 증명할 수 있다.
</p>
<p>
<a>검증가능한 크리덴셜</a>과 <a>검증가능한 프레젠테이션</a> 모두
빠르게 전송될 수 있어, 원격으로 신뢰를 구축하려고 할 때 물리적인
크리덴셜보다 더 편리하다.
</p>
<p>
이 규격은 디지털 <a>크리덴셜</a>을 쉽게 표현할 수 있도록 하는 동시에,
이 목표를 다수의 프라이버시 보호 목표와 균형을 맞추려고 시도한다.
디지털 정보의 지속성과 이질적인 디지털 데이터 출처를 쉽게 수집하고
연관시킬 수 있다는 점은 <a>검증 가능</a>하고 쉽게 기계 판독이 가능한
<a>크리덴셜</a>의 사용으로 인해 악화될 수 있는 프라이버시 문제이다. 이
문서는 <a href="#privacy-considerations"></a> 섹션에서 이러한 문제들을
설명하고 해결하려고 시도한다. 영지식 증명과 같은 프라이버시 강화
기술을 사용하여 이 데이터 모델을 사용하는 방법의 예시도 이 문서 전반에
걸쳐 제공된다.
</p>
</section>
<section class="informative">
<h3 id="ecosystem-overview">생태계 개요</h3>
<p>
이 섹션에서는 <a>검증가능한 크리덴셜</a>이 유용할 것으로 예상되는
생태계에서 핵심 참여자의 역할과 그들 간의 관계에 대해 설명한다. 역할은
다양한 방식으로 구현될 수 있는 추상적인 개념이다. 역할의 분리는
표준화를 위한 인터페이스와 프로토콜을 제안한다. 이 규격에서는 다음과
같은 역할을 소개한다:
</p>
<dl>
<dt><a>보유자</a></dt>
<dd>
하나 이상의 <a>검증가능한 크리덴셜</a>을 소유하고 이로부터
<a>검증가능한 프레젠테이션</a>을 생성함으로써 <a>엔티티</a>가 수행할
수 있는 역할. 보유자의 예로는 학생, 직원 및 고객이 있다.
</dd>
<dt><a>발급자</a></dt>
<dd>
하나 이상의 <a>주체</a>에 대한 <a>클레임</a>을 주장하고, 이러한
<a>클레임</a>으로부터 <a>검증가능한 크리덴셜</a>을 만들고,
<a>검증가능한 크리덴셜</a>을 <a>보유자</a>에게 전송함으로써
<a>엔티티</a>가 수행하는 역할. 발급자의 예로는 기업, 비영리 단체,
무역 협회, 정부 및 개인이 있다.
</dd>
<dt><a>주체</a></dt>
<dd>
<a>클레임</a>이 만들어지는 대상인 <a>엔티티</a>. 주체의 예로는 인간,
동물 및 사물이 있다. 대부분의 경우 <a>검증가능한 크리덴셜</a>의
<a>보유자</a>가 주체이지만, 특정 경우에는 그렇지 않다. 예를 들어,
부모(<a>보유자</a>)가 자녀(<a>주체</a>)의
<a>검증가능한 크리덴셜</a>을 보유하거나, 애완동물
주인(<a>보유자</a>)이 애완동물(<a>주체</a>)의
<a>검증가능한 크리덴셜</a>을 보유할 수 있다. 이러한 특수한 경우에
대한 자세한 내용은 부록
<a href="#subject-holder-relationships"></a>을 참조하시오.
</dd>
<dt><a>검증자</a></dt>
<dd>
처리를 위해 하나 이상의 <a>검증가능한 크리덴셜</a>을 선택적으로
<a>검증가능한 프레젠테이션</a> 내에서 수신함으로써 <a>엔티티</a>가
수행하는 역할. 검증자의 예로는 고용주, 보안 담당자 및 웹사이트 등이
있다.
</dd>
<dt><a>검증가능한 데이터 레지스트리</a></dt>
<dd>
<a>검증가능한 크리덴셜</a> 사용에 필요할 수 있는 식별자, 키 및 기타
관련 데이터(예: <a>검증가능한 크리덴셜</a> 스키마, 폐기 레지스트리,
발급자 공개 키 등)의 생성 및 <a>검증</a>을 중재함으로써 시스템이
수행할 수 있는 역할. 일부 구성에서는 <a>주체</a>에 대한 상관관계가
있는 식별자가 필요할 수 있다. 검증가능한 데이터 레지스트리의 예로는
신뢰할 수 있는 데이터베이스, 탈중앙화된 데이터베이스, 정부 ID
데이터베이스 및 분산 원장 등이 있다. 종종 생태계에서는 두 가지
이상의 유형의 검증가능한 데이터 레지스트리가 활용된다.
</dd>
</dl>
<figure id="roles">
<img
style="margin: auto; display: block; width: 75%"
src="diagrams/ecosystem.svg"
alt="diagram showing how
credentials flow from issuer to holder and
presentations flow from holder to verifier where all
three parties can use information from a logical
verifiable data registry"
/>
<figcaption style="text-align: center">
The roles and information flows forming the basis for this
specification.
</figcaption>
</figure>
<p class="note">
<a href="#roles"></a> above provides an example ecosystem in which to
ground the rest of the concepts in this specification. Other
ecosystems exist, such as protected environments or proprietary
systems, where <a>verifiable credentials</a> also provide benefit.
</p>
</section>
<section class="informative">
<h3>사용 사례 및 요구사항</h3>
<p>
검증가능한 크리덴셜 사용 사례 문서 [[VC-USE-CASES]]는 독자에게 유용할
수 있는 여러 가지 주요 주제를 간략히 설명하고 있다:
</p>
<ul>
<li>
위에서 소개한
<a href="https://www.w3.org/TR/vc-use-cases/#user-roles">역할</a>에
대한 보다 철저한 설명
</li>
<li>
교육, 금융, 의료, 소매, 전문 면허 및 정부와 같은 수직 시장에서
식별된
<a href="https://www.w3.org/TR/vc-use-cases/#user-needs"
>요구사항</a
>
</li>
<li>
생태계의 역할이 수행하는 공통
<a href="https://www.w3.org/TR/vc-use-cases/#user-tasks">작업</a> 및
관련 요구 사항
</li>
<li>
작업 그룹에서 식별한 공통
<a href="https://www.w3.org/TR/vc-use-cases/#user-sequences"
>시퀀스 및 흐름</a
>
</li>
</ul>
<p>
사용 사례 문서의 문서화 및 분석 결과, 이 규격에 대해 다음과 같은
바람직한 생태계 특성이 식별되었다:
</p>
<ul>
<li><a>크리덴셜</a>은 <a>발급자</a>가 만든 진술을 나타낸다.</li>
<li>
<a>검증가능한 크리덴셜</a>은 <a>발급자</a>가 변조 방지 및 프라이버시
존중 방식으로 만든 진술을 나타낸다.
</li>
<li>
<a>보유자</a>는 다른 <a>발급자</a>의 <a>크리덴셜</a> 및/또는
<a>검증가능한 크리덴셜</a> 컬렉션을 단일 아티팩트인
<a>프레젠테이션</a>으로 조합한다.
</li>
<li>
보유자는 <a>프레젠테이션</a>을 <a>검증가능한 프레젠테이션</a>으로
변환하여 변조 방지를 구현한다.
</li>
<li>
<a>발급자</a>는 모든 <a>주체</a>에 대해 <a>검증가능한 크리덴셜</a>을
발급할 수 있다.
</li>
<li>
<a>발급자</a>, <a>보유자</a> 또는 <a>검증자</a>로서 행동하려면 어떤
기관에 등록하거나 승인받을 필요가 없다. 관련 신뢰는 당사자 간에
양방향으로 이루어진다.
</li>
<li>
<a>검증가능한 프레젠테이션</a>은 모든 <a>검증자</a>가 모든
<a>발급자</a>의 <a>검증가능한 크리덴셜</a>의 진위를 <a>검증</a>할 수
있게 한다.
</li>
<li>
<a>보유자</a>는 누구에게서든 <a>검증가능한 크리덴셜</a>을 받을 수
있다.
</li>
<li>
<a>보유자</a>는 모든 사용자 에이전트를 통해 모든 <a>발급자</a> 및
모든 <a>검증자</a>와 상호 작용할 수 있다.
</li>
<li>
<a>보유자</a>는 <a>검증가능한 프레젠테이션</a>을 공유할 수 있으며,
이는 <a>발급자</a>에게 <a>검증자</a>의 신원을 밝히지 않고
<a>검증</a>될 수 있다.
</li>
<li>
<a>보유자</a>는 <a>검증가능한 크리덴셜</a>을 어느 위치에나 저장할 수
있으며, 이는 <a>검증 가능성</a>에 영향을 미치지 않고 <a>발급자</a>가
크리덴셜이 저장된 위치나 접근 시기에 대해 알 필요가 없다.
</li>
<li>
<a>보유자</a>는 <a>검증가능한 프레젠테이션</a>을 모든
<a>검증자</a>에게 제시할 수 있으며, 이는 클레임의 진위성에 영향을
미치지 않고 <a>발급자</a>에게 그 행위를 밝히지 않는다.
</li>
<li>
<a>검증자</a>는 모든 <a>보유자</a>의
<a>검증가능한 프레젠테이션</a>을 <a>검증</a>할 수 있으며, 이는 모든
<a>발급자</a>의 <a>클레임</a> 증명을 포함한다.
</li>
<li>
<a>검증</a>은 <a>발급자</a>와 <a>검증자</a> 간의 직접적인 상호
작용에 의존해서는 안 된다.
</li>
<li>
<a>검증</a>은 <a>검증자</a>의 신원을 <a>발급자</a>에게 공개해서는 안
된다.
</li>
<li>
이 규격은 모든 적합한 소프트웨어가 해당 기능을 지원하도록 요구하지
않고 <a>발급자</a>가 선택적 공개를 지원하는
<a>검증가능한 크리덴셜</a>을 발급할 수 있는 수단을 제공해야 한다.
</li>
<li>
<a>발급자</a>는 선택적 공개를 지원하는 <a>검증가능한 크리덴셜</a>을
발급할 수 있다.
</li>
<li>
단일 <a>검증가능한 크리덴셜</a>이 선택적 공개를 지원하는 경우,
<a>보유자</a>는 전체 <a>검증가능한 크리덴셜</a>을 공개하지 않고
<a>클레임</a> 증명을 제시할 수 있다.
</li>
<li>
<a>검증가능한 프레젠테이션</a>은 <a>검증가능한 크리덴셜</a>의 속성을
공개하거나 <a>검증자</a>가 요청한 <a>파생 술어</a>를 만족시킬 수
있다. <a>파생 술어</a>는 크거나 같음, 작거나 같음, 같음, 집합에 속함
등과 같은 부울 조건이다.
</li>
<li>
<a>발급자</a>는 폐기 가능한 <a>검증가능한 크리덴셜</a>을 발급할 수
있다.
</li>
<li>
<a>크리덴셜</a>과 <a>프레젠테이션</a>을 암호화로 보호하고
<a>검증가능한 크리덴셜</a>과 <a>검증가능한 프레젠테이션</a>을
검증하는 프로세스는 결정론적이고 양방향이며 손실이 없어야 한다.
<a>검증가능한 크리덴셜</a> 또는 <a>검증가능한 프레젠테이션</a>의
모든 검증은 결정론적 프로세스에서 이 문서에 정의된 일반 데이터
모델로 변환 가능해야 하며, 결과적으로 생성되는 <a>크리덴셜</a> 또는
<a>프레젠테이션</a>은 원래 구성과 의미적으로 그리고 구문적으로
동등해야 하므로 상호운용 가능한 방식으로 처리될 수 있다.
</li>
<li>
<a>검증가능한 크리덴셜</a>과 <a>검증가능한 프레젠테이션</a>은 하나
이상의 기계 판독 가능한 데이터 형식으로 직렬화할 수 있어야 한다.
직렬화 및/또는 역직렬화 프로세스는 결정론적이고 양방향이며 손실이
없어야 한다. <a>검증가능한 크리덴셜</a> 또는
<a>검증가능한 프레젠테이션</a>의 모든 직렬화는 결정론적 프로세스에서
이 문서에 정의된 일반 데이터 모델로 변환 가능해야 하며, 결과적으로
생성되는 <a>검증가능한 크리덴셜</a>은 상호운용 가능한 방식으로
처리될 수 있다. 또한 직렬화된 형식은 데이터 또는 내용 손실 없이
데이터 모델에서 생성할 수 있어야 한다.
</li>
<li>데이터 모델과 직렬화는 최소한의 조정으로 확장 가능해야 한다.</li>
<li>
<a>발급자</a>에 의한 폐기는 <a>주체</a>, <a>보유자</a>, 특정
<a>검증가능한 크리덴셜</a> 또는 <a>검증자</a>에 대한 식별 정보를
공개해서는 안 된다.
</li>
<li><a>발급자</a>는 폐기 사유를 공개할 수 있다.</li>
<li>
<a>검증가능한 크리덴셜</a>을 폐기하는 <a>발급자</a>는 암호화
무결성(예: 서명 키 손상)에 대한 폐기와 상태 변경(예: 운전면허증
정지)에 대한 폐기를 구분해야 한다.
</li>
<li>
<a>발급자</a>는 <a>검증가능한 크리덴셜</a>을 새로 고치기 위한
서비스를 제공할 수 있다.
</li>
</ul>
</section>
<section id="conformance" class="normative">
<h2>Conformance</h2>
<p>
<dfn>적합한 문서</dfn>는 이 규격의 규범적 진술을 준수하는 데이터
모델의 모든 구체적인 표현이다. 구체적으로, 이 문서의
<a href="#basic-concepts"></a>, <a href="#advanced-concepts"></a> 및
<a href="#syntaxes"></a> 섹션의 모든 관련 규범적 진술은 반드시
시행되어야 한다. 적합한 문서의 직렬화 형식은
<a href="#syntaxes"></a> 섹션에 설명된 대로 결정론적이고 양방향이며
무손실이어야 한다. <a>적합한 문서</a>는 그러한 모든 직렬화 형식으로
전송되거나 저장될 수 있다.
</p>
<p>
<dfn>적합한 프로세서</dfn>는 <a>적합한 문서</a>를 생성하거나 사용하는
소프트웨어 및/또는 하드웨어로 실현된 모든 알고리즘이다. 적합한
프로세서는 부적합한 문서가 사용될 때 오류를 생성해야 한다.
</p>
<p>
이 규격은 <a>발급자</a>, <a>보유자</a> 또는 <a>검증자</a>와 같은
생태계의 역할 적합성에 대해 규범적인 진술을 하지 않는다. 생태계 역할의
적합성은 애플리케이션, 사용 사례 및 시장 수직 분야에 매우 특화되어
있기 때문이다.
</p>
<p>
디지털 서명의 하위 집합인 디지털 증명 메커니즘은
<a>검증가능한 크리덴셜</a>의 보호를 보장하는 데 필요하다. 증명을
보유하고 유효성 검사하는 것은 증명의 구문에 따라 달라질 수 있으며(예:
키 보유자 증명을 위해 JSON Web Token의 JSON Web Signature 사용),
<a>검증가능한 크리덴셜</a>을 처리하는 데 필수적인 부분이다. 출판
시점에, 작업 그룹 구성원들은 최소한 세 가지 증명 메커니즘을 사용하여
<a>검증가능한 크리덴셜</a>을 구현했다:
</p>
<ul>
<li>
JSON Web Signature \[\[RFC7515\]\]로 보호된 JSON Web Tokens
\[\[RFC7519\]\]
</li>
<li>Linked Data Proofs \[\[?LD-PROOFS\]\]</li>
<li>
Camenisch-Lysyanskaya Zero-Knowledge Proofs \[\[?CL-SIGNATURES\]\].
</li>
</ul>
<p>
구현자는 이 규격의 출판 날짜를 기준으로 모든 증명 메커니즘이
표준화되지는 않았음에 유의해야 한다. 그룹은 이러한 메커니즘 중 일부와
새로운 메커니즘이 독립적으로 성숙하여 시간이 지남에 따라 표준화될
것으로 기대한다. 여러 유효한 증명 메커니즘이 있기 때문에 이 규격은
단일 디지털 서명 메커니즘을 표준화하지 않는다. 이 규격의 목표 중
하나는 다양한 현재 및 미래의 디지털 증명 메커니즘으로 보호할 수 있는
데이터 모델을 제공하는 것이다. 이 규격을 준수하는 것은 특정 증명
메커니즘의 세부 사항에 의존하지 않으며, <a>검증가능한 크리덴셜</a>이
사용하는 메커니즘을 명확하게 식별할 것을 요구한다.
</p>
<p>
이 문서에는 또한 JSON 및 JSON-LD 콘텐츠가 포함된 예제가 포함되어 있다.
이러한 예제 중 일부에는 인라인 주석(<code>//</code>) 및 예제에 거의
가치를 더하지 않는 정보를 표시하기 위한 줄임표(<code>...</code>)
사용과 같이 잘못된 JSON 문자가 포함되어 있다. 구현자는 정보를 유효한
JSON 또는 JSON-LD로 사용하려면 이 내용을 제거하는 것이 좋다.
</p>
</section>
</section>
<section class="informative">
<h2>Terminology</h2>
<div data-include="./terms.html"></div>
</section>
<section class="informative">
<h2 id="core-data-model">핵심 데이터 모델</h2>
<p>
다음 섹션에서는 이 규격의 기반을 형성하는 <a>클레임</a>,
<a>크리덴셜</a>, <a>프레젠테이션</a>과 같은 핵심 데이터 모델 개념에 대해
설명한다.
</p>
<section class="informative">
<h3>클레임</h3>
<p>
<a>클레임</a>은 <a>주체</a>에 대한 진술이다. <a>주체</a>는
<a>클레임</a>이 만들어질 수 있는 대상이다. <a>클레임</a>은
<strong><em>주체</em></strong
>-<dfn data-lt="property|properties">속성</dfn>-<dfn>값</dfn> 관계를
사용하여 표현된다.
</p>
<figure id="basic-structure">
<img
style="margin: auto; display: block; width: 50%"
src="diagrams/claim.svg"
alt="주체는 값을 갖는 속성을 가지고 있다"
/>
<figcaption style="text-align: center">
클레임의 기본 구조.
</figcaption>
</figure>
<p>
위의 <a href="#basic-structure"></a>에 설명된 <a>클레임</a>의 데이터
모델은 강력하며 다양한 진술을 표현하는 데 사용될 수 있다. 예를 들어,
누군가가 특정 대학을 졸업했는지 여부는 아래
<a href="#basic-example"></a>와 같이 표현될 수 있다.
</p>
<figure id="basic-example">
<img
style="margin: auto; display: block; width: 60%"
src="diagrams/claim-example.svg"
alt="Pat은 Example University라는 값을 가진 alumniOf 속성을 가지고 있다"
/>
<figcaption style="text-align: center">
Pat이 "Example University"의 동문임을 나타내는 기본 클레임.
</figcaption>
</figure>
<p>
개별 <a>클레임</a>은 <a>주체</a>에 대한 정보의 <a>그래프</a>를
표현하기 위해 결합될 수 있다. 아래 <a href="#multiple-claims"></a>에
표시된 예는 Pat이 Sam을 알고 있으며 Sam이 교수로 고용되어 있다는
<a>클레임</a>을 추가하여 이전 <a>클레임</a>을 확장한 것이다.
</p>
<figure id="multiple-claims">
<img
style="margin: auto; display: block; width: 75%"
src="diagrams/claim-extended.svg"
alt="extends previous
diagram with another property called knows whose value is
Sam, and Sam has a property jobTitle whose value is Professor"
/>
<figcaption style="text-align: center">
Multiple claims can be combined to express a graph of information.
</figcaption>
</figure>
<p>
이 시점에서 <a>클레임</a>과 정보의 <a>그래프</a> 개념이 소개되었다.
<a>클레임</a>을 신뢰할 수 있으려면 그래프에 더 많은 정보가 추가될
것으로 예상된다.
</p>
</section>
<section class="informative">
<h3 id="credentials">크리덴셜</h3>
<p>
<a>크리덴셜</a>은 동일한 <a>엔티티</a>에 의해 만들어진 하나 이상의
<a>클레임</a> 집합이다. <a>크리덴셜</a>에는 <a>발급자</a>, 만료 날짜
및 시간, 대표 이미지, <a>검증</a>을 위해 사용할 공개 키, 폐기 메커니즘
등과 같은 <a>크리덴셜</a>의 속성을 설명하는 식별자와 메타데이터도
포함될 수 있다. 메타데이터에는 <a>발급자</a>의 서명이 포함될 수 있다.
<a>검증가능한 크리덴셜</a>은 변조 방지 <a>클레임</a>과 메타데이터
집합으로, 누가 발급했는지를 암호학적으로 증명한다.
</p>
<figure id="basic-vc">
<img
style="margin: auto; display: block; width: 50%"
src="diagrams/credential.svg"
alt="검증가능한 크리덴셜은 크리덴셜 메타데이터, 클레임, 증명을 포함한다"
/>
<figcaption style="text-align: center">
검증가능한 크리덴셜의 기본 구성 요소.
</figcaption>
</figure>
<p>
<a>검증가능한 크리덴셜</a>의 예로는 디지털 직원 신분증, 디지털
출생증명서, 디지털 교육 증명서 등이 있다.
</p>
<p class="note">
<a>크리덴셜</a> 식별자는 종종 <a>크리덴셜</a>의 특정 인스턴스를
식별하는 데 사용된다. 이러한 식별자는 상관관계에도 사용될 수 있다.
상관관계를 최소화하려는 <a>보유자</a>는 <a>크리덴셜</a> 식별자를
공개하지 않는 선택적 공개 체계를 사용하는 것이 좋다.
</p>
<p>
위의 <a href="#basic-vc"></a>는 <a>검증가능한 크리덴셜</a>의 기본 구성
요소를 보여주지만, <a>클레임</a>이 정보 <a>그래프</a>로 구성되는
방법과 이러한 정보 <a>그래프</a>가 <a>검증가능한 크리덴셜</a>로
구성되는 방법에 대한 세부 사항은 추상화한다. 아래
<a href="#info-graph-vc"></a>는 일반적으로 적어도 두 개의 정보
<a>그래프</a>로 구성되는 <a>검증가능한 크리덴셜</a>의 보다 완전한
묘사를 보여준다. 첫 번째 <a>그래프</a>는
<span class="color-text" style="color: #d5a6bd"
>크리덴셜 메타데이터</span
>와 <span class="color-text" style="color: #ffe599">클레임</span>을
포함하는 <a>검증가능한 크리덴셜</a> 자체를 표현한다. 두 번째
<a>그래프</a>는 일반적으로 디지털 서명인
<span class="color-text" style="color: #b6d7a8">디지털 증명</span>을
표현한다.
</p>
<figure id="info-graph-vc">
<img
style="margin: auto; display: block; width: 100%"
src="diagrams/credential-graph.svg"
alt="diagram with a
Credential Graph on top connected via a proof to a
Proof Graph on the bottom. The Credental Graph has
Credential 123 with 4 properties: 'type' of value
AlumniCredential, 'issuer' of Example University,
'issuanceDate' of 2010-01-01T19:23:24Z, and
credentialSubject of Pat, who has an alumniOf property
with value of Example University. The Proof Graph has
Signature 456 with 5 properties: 'type' of
RsaSignature2018, 'verificationMethod' of Example University
Public Key 7, 'created' of 2017-06-18T21:19:10Z, and 'jws'
of 'BavEll0...3JT24='"
/>
<figcaption style="text-align: center">
Information graphs associated with a basic verifiable credential.
</figcaption>
</figure>
<p class="note">
결혼 증명서와 같이 서로 관련이 없어도 되는 다른 <a>주체</a>에 대한
여러 <a>클레임</a>을 포함하는 <a>크리덴셜</a>을 가질 수 있다.
</p>
<p class="note">
<a>크리덴셜</a>이 발급된 <a>엔티티</a>에 대한 <a>클레임</a>을 전혀
포함하지 않는 <a>크리덴셜</a>을 가질 수 있다. 예를 들어, 특정 개에
대한 <a>클레임</a>만 포함하지만 개의 주인에게 발급되는
<a>크리덴셜</a>이 있다.
</p>
</section>
<section class="informative">
<h3 id="presentations">프레젠테이션</h3>
<p>
프라이버시 향상은 이 규격의 핵심 설계 기능이다. 따라서 이 기술을
사용하는 <a>엔티티</a>가 특정 상황에 적합한 페르소나의 일부분만 표현할
수 있는 것이 중요하다. 페르소나의 일부를 표현하는 것을
<a>검증가능한 프레젠테이션</a>이라고 한다. 서로 다른 페르소나의 예로는
한 사람의 직업상 페르소나, 온라인 게임 페르소나, 가족 페르소나 또는
익명 페르소나 등이 있다.
</p>
<p>
<a>검증가능한 프레젠테이션</a>은 하나 이상의
<a>검증가능한 크리덴셜</a>의 데이터를 표현하며, 데이터의 저작권을
<a>검증</a>할 수 있는 방식으로 패키징된다.
<a>검증가능한 크리덴셜</a>이 직접 제시되면
<a>검증가능한 프레젠테이션</a>이 된다. <a>검증가능한 크리덴셜</a>에서
파생되었지만 그 자체로는 <a>검증가능한 크리덴셜</a>을 포함하지 않는
암호학적으로 <a>검증 가능한</a> 데이터 형식도
<a>검증가능한 프레젠테이션</a>일 수 있다.
</p>
<p>
<a>프레젠테이션</a>의 데이터는 종종 동일한 <a>주체</a>에 관한
것이지만, 여러 <a>발급자</a>에 의해 발급되었을 수 있다. 이 정보의
집합은 일반적으로 사람, 조직 또는 <a>엔티티</a>의 한 측면을 표현한다.
</p>
<figure id="basic-vp">
<img
style="margin: auto; display: block; width: 50%"
src="diagrams/presentation.svg"
alt="검증가능한 프레젠테이션은 프레젠테이션 메타데이터, 검증가능한 크리덴셜, 증명을 포함한다"
/>
<figcaption style="text-align: center">
검증가능한 프레젠테이션의 기본 구성 요소.
</figcaption>
</figure>
<p>
위의 <a href="#basic-vp"></a>는 <a>검증가능한 프레젠테이션</a>의 구성
요소를 보여주지만, <a>검증가능한 크리덴셜</a>이 정보 <a>그래프</a>로
구성되고 이러한 정보 <a>그래프</a>가
<a>검증가능한 프레젠테이션</a>으로 구성되는 방법에 대한 세부 사항은
추상화한다.
</p>
<p>
아래 <a href="#info-graph-vp"></a>는 일반적으로 적어도 네 개의 정보
<a>그래프</a>로 구성되는 <a>검증가능한 프레젠테이션</a>의 보다 완전한
묘사를 보여준다. 첫 번째 정보 <a>그래프</a>인 프레젠테이션
<a>그래프</a>는 프레젠테이션 메타데이터를 포함하는
<a>검증가능한 프레젠테이션</a> 자체를 표현한다. 프레젠테이션
<a>그래프</a>의 <code>verifiableCredential</code> 속성은 하나 이상의
<a>검증가능한 크리덴셜</a>을 참조하며, 각각은 두 번째 정보
<a>그래프</a>, 즉 크리덴셜 메타데이터와 클레임을 포함하는 자체 포함된
크리덴셜 <a>그래프</a>이다. 세 번째 정보 <a>그래프</a>인 크리덴셜 증명
<a>그래프</a>는 일반적으로 디지털 서명인 크리덴셜 그래프 증명을
표현한다. 네 번째 정보 <a>그래프</a>인 프레젠테이션 증명
<a>그래프</a>는 일반적으로 디지털 서명인 프레젠테이션 그래프 증명을
표현한다.
</p>
<figure id="info-graph-vp">
<img
style="margin: auto; display: block; width: 75%"
src="diagrams/presentation-graph.svg"
alt="상단에 프레젠테이션 그래프가 있고 하단에 프레젠테이션 증명 그래프가 증명으로 연결된 다이어그램. 프레젠테이션 그래프에는 값이 VerifiablePresentation인 'type', 값이 Do Not Archive인 'termsOfUse', 값이 Figure 6인 'verifiableCredential'의 3가지 속성을 가진 프레젠테이션 ABC가 있다. 프레젠테이션 증명 그래프에는 RsaSignature2018인 'type', Example Presenter Public Key 11인 'verificationMethod', 2018-01-15T12:43:56Z인 'created', d28348djsj3239인 'challenge', 'p2KaZ...8Fj3K='인 'jws'의 5가지 속성을 가진 시그니처 8910이 있다."
/>
<figcaption style="text-align: center">
기본 검증가능한 프레젠테이션과 관련된 정보 그래프.
</figcaption>
</figure>
<p class="note">
비즈니스 페르소나와 같이 종종 관련이 있지만 반드시 그럴 필요는 없는
여러 <a>주체</a>에 대한 여러 <a>크리덴셜</a>을 사용하는
<a>프레젠테이션</a>을 가질 수 있다.
</p>
</section>
<section class="informative">
<h3>구체적인 라이프사이클 예시</h3>
<p>
이전 섹션에서는 그래픽 묘사를 사용하여 <a>클레임</a>,
<a>검증가능한 크리덴셜</a>, <a>검증가능한 프레젠테이션</a>의 개념을
소개했다. 이 섹션에서는 이 규격에서 지원하는 구체적인 구문 중 하나로
표현된 데이터 모델의 간단하지만 완전한 라이프사이클 예시를 제공한다.
<a href="#ecosystem-overview">검증가능한 크리덴셜 생태계</a>에서
<a>크리덴셜</a>과 <a>프레젠테이션</a>의 라이프사이클은 일반적으로
다음과 같은 공통 경로를 거친다:
</p>
<ol>
<li>하나 이상의 <a>검증가능한 크리덴셜</a> 발급.</li>
<li>
<a>검증가능한 크리덴셜</a>을 (디지털 지갑과 같은)
<a>크리덴셜 리포지토리</a>에 저장.
</li>
<li>
<a>검증자</a>를 위해 <a>검증가능한 크리덴셜</a>을
<a>검증가능한 프레젠테이션</a>으로 구성.
</li>
<li>
<a>검증자</a>에 의한 <a>검증가능한 프레젠테이션</a>의 <a>검증</a>.
</li>
</ol>
<p>
이 라이프사이클을 설명하기 위해, 대학에서 동문 할인을 받는 예시를
사용할 것이다. 아래 예시에서 Pat은 대학에서 동문
<a>검증가능한 크리덴셜</a>을 받고, Pat은 <a>검증가능한 크리덴셜</a>을
디지털 지갑에 저장한다.
</p>
<pre
class="example nohighlight"
title="A simple example of a verifiable credential"
>
{
<span class='comment'>// set the context, which establishes the special terms we will be using
// such as 'issuer' and 'alumniOf'.</span>
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://www.w3.org/2018/credentials/examples/v1"
],
<span class='comment'>// specify the identifier for the credential</span>
"id": "http://example.edu/credentials/1872",
<span class='comment'>// the credential types, which declare what data to expect in the credential</span>
"type": ["VerifiableCredential", "AlumniCredential"],
<span class='comment'>// the entity that issued the credential</span>
"issuer": "https://example.edu/issuers/565049",
<span class='comment'>// when the credential was issued</span>
"issuanceDate": "2010-01-01T19:23:24Z",
<span class='comment'>// claims about the subjects of the credential</span>
"credentialSubject": {
<span class='comment'>// identifier for the only subject of the credential</span>
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
<span class='comment'>// assertion about the only subject of the credential</span>
"alumniOf": {
"id": "did:example:c276e12ec21ebfeb1f712ebc6f1",
"name": [{
"value": "Example University",
"lang": "en"
}, {
"value": "Exemple d'Université",
"lang": "fr"
}]
}
},
<span class='comment'>// digital proof that makes the credential tamper-evident</span>
<span class='comment'>// see the NOTE at end of this section for more detail</span>
"proof": {
<span class='comment'>// the cryptographic signature suite that was used to generate the signature</span>
"type": "RsaSignature2018",
<span class='comment'>// the date the signature was created</span>
"created": "2017-06-18T21:19:10Z",
<span class='comment'>// purpose of this proof</span>
"proofPurpose": "assertionMethod",
<span class='comment'>// the identifier of the public key that can verify the signature</span>
"verificationMethod": "https://example.edu/issuers/565049/keys/1",