본문 바로가기

Web3

블록체인 서비스기획 4주차 - 1일 수업 노트

✅ 비트코인이 마켓의 50%정도의 점유율을 유지하기 때문에 비트코인의 가격 = 곧 산업의 INDEX지표

👉🏻 어떻게 변화하고 있는지는 알아야 한다.

 

중요한 경제지표? 금리! 👉🏻 https://kr.investing.com/news/economy/article-928273?dicbo=v2-yn5PsDc

 

DID

Digital identity

► 온라인에서 존재하는  개인, 조직, 디바이스를 고유하게 식별할 수 있는 식별 정보(URI, E-mail, URL, CID, 전화번호, 우편번호)

TLS문서를 봐야 Digital identity가 얼마나 위험한 구조를 가지고 있는지 이해하고 블록체인기술의 필요성을 알 수 있다.

 

ID의 종류

- 중앙집중형 : ID/PW

- 두 당사자 중간에 아이덴티티의 신뢰를  보장하는 아이덴티티 제공자: sns 연결 로그인 등

 

- Federated: 하나의 그룹사에서 아이덴디티의 신뢰를 보장해서 하나의 계정에 연결해서 사용

- User-centric: SNS에서 내 아이디를 가지고 다른 플랫폼에 연결해주는 것(외부의 조직)

- Self-sovereign: DID 기반으로 만들어짐. 나한테 내 정보,소유권이 있음 👉🏻그 외의 시스템은 모두 중앙화된 서버에 정보 저자

 

✅DID의 특징

DID: Decentralized Identifier :글로벌하게 유니크한 하나의 DID에 연결시켜주는 identifier

👉🏻 Persistent : 서비스 제공자가 사라져도 웹3 네트워크에 기록이 남기때문에 내 자산의 가치를 지킬 수 있다!

📌 자산의 가치를 담으려면 '나만의' identity를 연속적으로 가지고 있을 수 있어야한다!

   👉🏻 '나'에 귀속되는 영역이어야함.(플랫폼,서버에 의지x)
   👉🏻자기주권을 보장하는 블록체인기반 아이덴티티는 두 당사자의 신뢰를 블록체인 기반으로 인증
👉🏻 Scheme
+ DID method + DI Method specific string(변함)

 

✅ DID의 장점

- 세계적으로 유니크, 이용하기 쉽고, 지속적이고(서버가 없어져도 유지), 암호학적으로 증명가능하며 중앙화서버가 필요없음

DID documents에 들어가야할 표준 내용들 

DID Documents 코드에 들어갈 내용들로 코드 구성!

✅ 여러가지 신분을 증명해줄 수 있는 DID 👉🏻 있어야 '자산'value를 이동/소유 할 수 있음 👉🏻 Globally unique한 ID가 필요함

► 지갑에 보유한 나의 시티즌 신분,자격증, 뱅크어카운트 등을 연결할 수 있다.

 

DID methods
📌 CRUD : the four basic operations (create, read, update, and delete) of data storage

👉🏻 호텔 출입증 등에 체크인/체크아웃 시간에 맞춰 activate, deactivate 할 수 있도록 만들어 제공하는 등의 응용이 가능하다.

👉🏻 각종 증명서,라이센스,출입증 등에 응용가능

► 유럽에서는 여러 나라에서 사용가능한 DID기반의 증명서를 연구 중임

- DID가 들어가면 resolver가 전달되어 DID document의 엔드포인트가 DID Verifiable Data registry로 연결

✅ DID는 내가 누군지를 식별(ID)

example에 method가 들어가야됨


👉🏻 DID method(CRUD)에는 뭘할건지 CRUD정의, IPFS에 저장

👉🏻 DID resolver가 document로 풀어내면

👉🏻 여기 적혀있는대로 작동하는 것

 

 

DID 참조 문서(개관)

https://www.w3.org/2019/did-wg/

 

W3C DID Working Group

DID Working Group --> The mission of the Decentralized Identifier Working Group is to standardize the DID URI scheme, the data model and syntax of DID Documents, which contain information related to DIDs that enable the aforementioned initial use cases, an

www.w3.org

 

Self Sovereign Identity(SSI)

✅SSI가 없다면?

1) Persistent accounts가 Identity providers에게 의존해야함(Facebook, Google) ► 정보에 대해서도 통제

2) 여러 Identity provders에게 의존해서 아이디를 여러개 만들어야함

 

👉🏻 Identifier가 나를 증명하기가 굉장히 어렵게 되어있으며 Hacker가 IP-address바꾸는게 너무 쉽다.

👉🏻 잘못된 신분증명을 이용하는 사이버 범죄, 사기, 인터넷에서의 프라이버시 문제가 발생

👉🏻 👉🏻 PKI 기술을 활용한 암호학에 기반한 증명기술을 현재 많이 사용하고 있다.

►  SSI에는 디지털 월렛, 디지털 credentials(신분증등), conections이 중요 컴포넌트로 들어감

 

✅SSI 시스템: Issue/ Holder/ Verifier 이 존재

SSI의 시스템의 일부로 구분자,인식자로 들어가는 부분이 DID! 👉🏻 SSI의 구성요소로 이해하기

 

✅SSI의 열가지 원칙

-독립적: 유저가 독립적으로 존재

-통제: 유저가 컨트롤 할수 있어야함

-접근: 유저는 언제든 자기 데이터에 접근할 수 있어야함

-투명성: 시스템과 알고리즘은 투명해야함

-지속성: ID는 영구적이어야함

-이동성: 들고다니면서 넘나들 수 있어야함

-범용성: 어떤 서버에서든지간에 서버가 DID을 수용할 수 있는 구조로 만들어야함

         👉🏻유저는 VP(Verifiable presentation)만 제출하고 서버가 받아야할 위치에서는 VP가 맞는지만 확인하는
             Verfier역할만 수행하면 되므로 많은 리소스가 들지 않음! 

-동의: 유저들은 그들의 ID의 사용에 동의해야함

-최소화: 프라이버시 이슈 👉🏻 꼭 필요한 정보만 verifiying에 사용되어야함 selected disclosure

-보호: 유저의 권리는 반드시 지켜져야함

 

✅ DID기반의 서비스를 설계할 때 PM의 역할

👉🏻 issuer, holder, verifier의 요구사항에 대해서 정의

👉🏻 요구사항 넘버들을 기술

👉🏻 기능들을 텍스트로 정리해서 정의

👉🏻 UML그릴 때 필요한 요구사항들에 대해서 정의

►더 자세히 알기위해서는 코딩언어 공부!( 여기서는 Java script가 사용되었음)필요!

 

✅ Verifiable Credentials Data Model v 1.1

✓ Subject 👉🏻 하나의 Thing

✓ Claim 👉🏻 Subject- property-value relationships

👉🏻 객체에서 property value = professor / Graph -> Pat이라는 subject에 여러개의 property가 연결되어 있음

✓ Credential : a set of one or more claims

✓ claims가 복수개 ►Proof도 여러개가 가능, 즉 발행기관의 사인이 여러개(여러 기관이 proof로 참여가능)

✓Presentation : holder가 verifier에게 전달하는 단계 ► Privacy를 높이는 단계

- 여러가지 페르소나 중에서 적당한 걸 골라서 던지는 것 ► Present할 정보만! 최소화해서 꺼내서 전달하기

 

► PKI 기술을 사용해서 verifying

서명을 할떄는 비공개키 확인은 공개키로확인 하듯 verify 한다는건 issuer가 맞는지 안맞는지를 확인

제출된 VP가 정상된 VP가 발행한 사람의 VP가 맞는지를 확인하기 위해서 풀어봄(check) 디지털 서명이 풀리면 원본발행자가 발행한게 맞음

 

► Verifiable Credential  👉🏻 Derived credential로 바뀌어서 Presentation이 일어남

► 왼쪽의 Verifiable credential에서 필요한 정보만 Derived credential을 모아서 하나의 Presentation을 만들어 제출

► 다양한 자격/신원을 한번에 확인할 수 있다.

 

DID usecases

- Online shopping: 진품과 가품을 구분하는데 DID사용

- Vehicle assemblies; VIN(Vehicle Identity numbers)를 DID로 바꾸어 차에 대한 모든 정보들(과거 사고, 부품교체 등)에 대한 모든 정보를 축적해서 확인 가능

- Public authority identity

✓ Requirement 테이블 참조하여 서비스시 필요한 기능들 분류가능할 듯

 

<실습> : 프로젝트에 적용한다면?

✅ DID를 우리 프로젝트에 적용한다면?

1) 인플루언서
a) 성별,연령,지역 등에 대한 필요한 정보에 따라서 브랜드들이 원하는 인플루언서들을 선택할 때, 또는 확인할 떄 
(E.g 동남아시아지역의 성인 여성 인플루언서를 원하는 경우)

b) SNS 플랫폼에서 사칭하는 가짜 계정들을 구분할 수 있음

2)브랜드

a) 가짜가 아닌 진짜 브랜드에서 진행하는 마케팅 캠페인임을 믿을 수 있음
(E.g. 짝퉁 상품을 홍보하는 마케팅에 참여하면 인플루언서의 신뢰도가 떨어지므로 선호하지 않을 수 있음)

 

👉🏻 문제: Issuer가 누구인가... wrapped DID (중앙기관에서 발행한 ID를 블록체인으로 옮기기만 한것..)

👉🏻 문제: 내가 나인걸 디지털 세상에서 어떻게 증명할 것인가...? 

현재로써는 오라클 문제가 있으나... ! 발행된 ID에 기반하여 DID를 제공하는 시스템만 설계가 가능함.