자기 주권 정체성은 중앙 집중식 권한에 의존하지 않고 절대 빼앗을 수없는 사람, 조직 또는 사물에 대한 평생 휴대용 정체성입니다. 자기 주권 정체성은 2 자 관계 모델이며, 귀하와 조직 사이에 제 3자가 오지 않으며 이제는 "피어"로 간주됩니다.
SSI는 오늘날 DIDS 및 검증 가능한 자격 증명으로 가능합니다.
DID는 식별자의 제어가 암호화를 사용하여 입증 될 수 있기 때문에 중앙 집중식 등록 기관이 필요하지 않은 새로운 유형의 전 세계 고유 식별자 (URI)입니다. ICANN 또는 NANP와 같은 중앙 등록 기관없이 우리가 더 익숙한 식별자 중 하나 (도메인 이름 또는 전화 번호)처럼 생각할 수 있습니다.
VC (Verifiable Credential)는 W3C Veriquible Claims Working Group에서 정의하는 상호 운용 가능한 디지털 자격 증명을위한 새로운 형식입니다. 검증 가능한 자격 증명은 W3C의 검증 가능한 자격 증명 데이터 모델을 준수하며 The Triangle of Trust라는 패턴을 사용하여 상호 작용을 용이하게합니다.
발행자는 일반적으로 JSON DOCS에 특별한 방식으로 DIGITTHING으로 서명함으로써 자격 증명을 만듭니다. 보유자는 저장하고 검증자는 그에 따라 증거를 요구합니다. 보유자가 검증 자에게 제공하는 검증 가능한 프레젠테이션은 검증 자의 요구 사항을 충족시키기 위해 소지자가 제기 한 자격 증명 또는 하나 이상의 자격 증명에서 파생 된 데이터 패키지입니다. 검증자는 검증 가능한 데이터 레지스트리 (일반적으로 블록 체인)에 대해 디지털 서명을 확인하여 발행자가 무언가를 증명 한 확실성을 배웁니다.
React MSDK는 Evernym Mobile SDK를 Aries 호환 React Native 패키지로 사용하여 구축되어 검증 가능한 자격 증명 모델의 보유자 측을 나타내는 맞춤형 디지털 지갑 (완전히 제어 아래)을 빠르게 구축 할 수 있습니다.
React-Native Mobile SDK를 사용하면 응용 프로그램이 다음과 같습니다.
Identity Wallet 앱을 사용하면 정확한 생년월일을 밝히지 않고 특정 법적 연령을 초과하고 건강 기록을 개인적이고 안전하게 공유하며 사용자 이름과 통과 워드 개념을 한 번에 멀리하는 것을 포함하여 무수한 사용 사례가 가능합니다.
Identity 지갑을 테스트하기 위해 반대 통신 측을 나타내는 Verity SDK를 사용할 수 있습니다.
Evernym Mobile SDK 및 Verity SDK 리포지토리에서는 구축 ID 지갑 및 검증 가능한 자격 증명 교환 프로세스에 관한 유용한 정보를 많이 찾을 수 있습니다.
새 프로젝트를 만들려면 다음 단계를 살펴 봐야합니다.
새로운 React Native Project를 만듭니다. 이 가이드를 위해 awesomeMsdkProject 라고 할 것입니다.
npx react-native init awesomeMsdkProject --version 0.65.1 참고 : Evernym React-Native-SDK에 대한 package.json 파일의 peerDependencies 섹션에 지정된 동일한 버전의 react-native 사용해야합니다. 현재 권장되는 React-Native 버전은 0.65.1 입니다. 다른 버전을 사용하면 SDK에 문제가 발생할 위험이 있습니다.
새 응용 프로그램에 SDK를 포함하려면 종속성을 설정해야합니다.
@evernym/react-native-white-label-app 종속성 만 package.json 에만 남겨 두는 종속성 섹션을 교체하십시오.
"dependencies" : {
"@evernym/react-native-white-label-app" : " https://gitlab.com/evernym/mobile/react-native-white-label-app.git " ,
}, 기본 종속성은 앱 종속성에 넣어야합니다 (문제 참조). SDK에서 동료 의존성으로 표시됩니다.
@evernym/react-native-white-label-app 의 모든 피어 종속성을 앱 package.json 의 dependencies 섹션에 추가하십시오.
"dependencies" : {
"@react-native-community/async-storage" : " x " ,
...
"react-native-zip-archive" : " x " ,
"react-native" : " 0.65.1 " ,
"rn-fetch-blob" : " x " ,
...
}, @evernym/react-native-white-label-app 의 모든 devDependencies 앱 package.json 의 devDependencies 섹션에 추가하십시오.
"devDependencies" : {
...
"copyfiles" : " x "
}, App package.json 의 scripts 섹션에 다음 명령을 추가하십시오.
"scripts" : {
...
"evernym-sdk:configure" : " yarn --cwd node_modules/@evernym/react-native-white-label-app run configure "
}, 이 명령은 evernym-sdk 를 통해 향후 애플리케이션 사용자 정의에 필요한 모듈을 추가합니다.
이제 모든 종속성을 설치하고 자동 구성을 수행하고 프로젝트 디렉토리에서 다음 명령을 실행할 수 있습니다.
yarn
yarn evernym-sdk:configure 이렇게하면 모든 종속성을 설치하고 awesomeMsdkProject/app/evernym-sdk 디렉토리에 필요한 모듈을 추가합니다.
기본 App.js 제거하고 다음을 index.js 에 넣습니다.
import * as EvernymSdk from '@evernym/react-native-white-label-app' ;
import { name as appName } from './app.json' ;
EvernymSdk . createApp ( appName ) ; app/evernym-sdk/provision.js 파일로 이동하고 응용 프로그램과 기능에서 사용할 환경을 정의하여 프로비저닝 토큰을 얻기 위해 요구됩니다.
응용 프로그램 환경은 스폰서 서버가 등록되는 환경과 일치 해야합니다.
예를 들어, 스폰서 서버가DEMO환경에 등록 된 경우 응용 프로그램은DEMO사용해야합니다.
DEFAULT_SERVER_ENVIRONMENT 사용할 환경 이름.
사전 정의 된 여러 환경이 있습니다.
// use default combination - DEMO for debug and PROD for releases builds
export const DEFAULT_SERVER_ENVIRONMENT = null
// use Demo env
// Agency: `https://agency.pps.evernym.com` and `Sovrin Staging Net`
export const DEFAULT_SERVER_ENVIRONMENT = 'DEMO'
// use Production env
// Agency: `https://agency.evernym.com` and `Sovrin Live Net`
export const DEFAULT_SERVER_ENVIRONMENT = 'PROD'
// use Staging env
// Agency: `https://agency.pstg.evernym.com` and `Sovrin Staging Net`
export const DEFAULT_SERVER_ENVIRONMENT = 'STAGING' SERVER_ENVIRONMENTS 와 DEFAULT_SERVER_ENVIRONMENT 변수의 조합을 사용하여 사용자 정의 환경을 제공하고 사용할 수 있습니다.
export const SERVER_ENVIRONMENTS = {
'CUSTOM' : {
agencyUrl : 'ahency_url' ,
agencyDID : 'did' ,
agencyVerificationKey : 'verkey' ,
poolConfig : [ { key : 'staging' , genesis : 'genesis_transactions' } ] ,
}
}
export const DEFAULT_SERVER_ENVIRONMENT = 'CUSTOM' GET_PROVISION_TOKEN_FUNC 응용 프로그램에 대한 에이전트 프로비저닝 토큰을 얻기 위해 함수가 호출됩니다.
/// example
export const GET_PROVISION_TOKEN_FUNC = async (): [error: string | null, token: string | null] => {
try {
// call your sponsor server endpoint
const response = fetch_api(your_endpoint)
// process response
// return result in format [error, token]
return [null, response.token]
} catch (error) {
return [error.message, null]
}
}
축하해요! 이제 우리는 응용 프로그램의 JS 부분을 준비했습니다. 다음 단계는 대상 플랫폼의 빌드를 구성해야합니다.
참고 :이 시점에서 이미 기본 앱 구성 섹션을 완료해야합니다.
Android 플랫폼에 대한 응용 프로그램 구축을 구성하려면 문서를 참조하십시오.
참고 :이 시점에서 이미 기본 앱 구성 섹션을 완료해야합니다.
iOS 플랫폼 응용 프로그램 빌딩을 구성하려면 문서를 참조하십시오.
사용 가능한 구성 옵션에 대한 개요를 얻으려면 설명서를 참조하십시오.
이러한 노력은 ESSIF-LAB에 대한 우리의 참여를 통해 전달 된 보조금 계약 번호 871932에 따른 유럽 연합의 Horizon 2020 연구 및 혁신 프로그램으로부터 자금을받은 프로젝트의 일부로, 모든 사람의 이익을 위해 자기 주권 정체성의 광범위한 채택을 발전시키는 것을 목표로합니다.