A identidade soberana é uma identidade portátil vitalícia para qualquer pessoa, organização ou coisa que não dependa de nenhuma autoridade centralizada e nunca pode ser retirada. A identidade auto-venenosa é um modelo de relacionamento de duas partes, sem terceiros entre você e a organização, agora considerado seu "par".
O SSI é possível hoje com DIDS e credenciais verificáveis.
DID é um novo tipo de identificador globalmente único (URI) que não requer uma autoridade de registro centralizada porque o controle do identificador pode ser comprovado usando criptografia. Você pode pensar nisso como um dos identificadores com os quais estamos mais familiarizados - um nome de domínio ou um número de telefone - sem um registrador central como a ICANN ou o NANP.
A verificável credencial (VC) é o novo formato para a credencial digital interoperável sendo definida pelo grupo de trabalho de reivindicações verificáveis do W3C. Credenciais verificáveis estão em conformidade com o modelo de dados de credenciais verificáveis do W3C, e facilitam as interações usando um padrão chamado Triângulo de Confiança:
Os emissores criam credenciais, geralmente com a JSON Docs assinada digitalmente de uma maneira especial. Os titulares os armazenam, e os verificadores pedem provas com base neles. Apresentações verificáveis que os titulares fornecem aos verificadores são pacotes de evidências - credenciais ou dados derivados de uma ou mais credenciais - construídas pelos titulares para atender aos requisitos de um verificador. Os verificadores aprendem com certeza quais emissores atestaram algo verificando as assinaturas digitais em relação a um registro de dados verificável (normalmente, uma blockchain).
O React MSDK é construído usando o Evernym Mobile SDK como um pacote nativo de React compatível com Áries, que permite a rápida construção de carteiras digitais personalizadas (completamente sob seu controle) representando um lado do suporte no modelo de credenciais verificáveis.
Com o SDK móvel nativo do React, seu aplicativo pode:
O aplicativo de carteira de identidade permite inúmeros casos de uso, incluindo provar que você está em uma idade legal específica sem revelar sua data exata de nascimento, compartilhar registros de saúde de maneira privada e segura e acabar com o conceito de nome de usuário e passagem de uma vez por todas.
Para o teste da sua carteira de identidade, você pode usar o Verity SDK representando o lado oposto da comunicação.
Nos repositórios do Evernym Mobile SDK e Verity SDK, você pode encontrar muitas informações úteis sobre a construção de carteiras de identidade e o processo de troca de credenciais verificáveis.
Para criar um novo projeto, você precisaria seguir as etapas a seguir.
Crie um novo projeto nativo do React. Vamos chamá -lo de awesomeMsdkProject para este guia.
npx react-native init awesomeMsdkProject --version 0.65.1 Nota : Você precisa usar a mesma versão do react-native , conforme especificado na seção peerDependencies do arquivo package.json para o Evernym React-native-SDK. A versão react-nativa atualmente recomendada é 0.65.1 . Ao usar uma versão diferente, você corre o risco de ter problemas com o SDK.
Para incluir o SDK em seu novo aplicativo, você precisa configurar suas dependências.
Substitua a seção de dependências, deixando apenas @evernym/react-native-white-label-app dependência do seu package.json .
"dependencies" : {
"@evernym/react-native-white-label-app" : " https://gitlab.com/evernym/mobile/react-native-white-label-app.git " ,
}, Dependências nativas devem ser colocadas em dependências de aplicativos (consulte a edição). Eles são listados como dependências de pares no SDK.
Adicione todas as dependências de colegas da seção de @evernym/react-native-white-label-app à dependencies do seu App package.json .
"dependencies" : {
"@react-native-community/async-storage" : " x " ,
...
"react-native-zip-archive" : " x " ,
"react-native" : " 0.65.1 " ,
"rn-fetch-blob" : " x " ,
...
}, Adicione todas devDependencies de @evernym/react-native-white-label-app na seção devDependencies do seu aplicativo package.json .
"devDependencies" : {
...
"copyfiles" : " x "
}, Adicione o seguinte comando à sua seção scripts do seu App package.json :
"scripts" : {
...
"evernym-sdk:configure" : " yarn --cwd node_modules/@evernym/react-native-white-label-app run configure "
}, Este comando adicionará os módulos necessários para a personalização futura de aplicativos via evernym-sdk .
Agora você pode instalar todas as dependências e fazer a configuração automática, executar os seguintes comandos no diretório do seu projeto:
yarn
yarn evernym-sdk:configure Isso instalará todas as dependências e adicionará módulos necessários ao awesomeMsdkProject/app/evernym-sdk .
Remova App.js padrão e coloque o seguinte em index.js :
import * as EvernymSdk from '@evernym/react-native-white-label-app' ;
import { name as appName } from './app.json' ;
EvernymSdk . createApp ( appName ) ; Navegue até o arquivo app/evernym-sdk/provision.js e defina o ambiente a ser usado por seu aplicativo e função a ser chamado para obter tokens de provisionamento.
Observe que o ambiente do aplicativo deve corresponder ao ambiente em que o servidor patrocinador está registrado.
Por exemplo, o aplicativo deve usarDEMOse o servidor patrocinador estivesse registrado no ambienteDEMO.
DEFAULT_SERVER_ENVIRONMENT - o nome do ambiente a ser usado.
Existem vários ambientes predefinidos:
// 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' Você também pode fornecer e usar seu ambiente personalizado usando uma combinação de variáveis SERVER_ENVIRONMENTS e 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 - A função será chamada para obter um token de provisionamento do agente para o seu aplicativo.
/// 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]
}
}
Parabéns! Agora temos a parte JS pronta do aplicativo. Como as próximas etapas, precisamos configurar a compilação para as plataformas de destino.
Nota : Neste ponto, você já deve ter concluído a seção de configuração do aplicativo básico.
Para configurar o edifício do seu aplicativo para uma plataforma Android, consulte o documento.
Nota : Neste ponto, você já deve ter concluído a seção de configuração do aplicativo básico.
Para configurar o edifício do seu aplicativo para uma plataforma iOS, consulte o documento.
Consulte a documentação para obter uma visão geral das opções de configuração disponíveis.
Esse esforço faz parte de um projeto que recebeu financiamento do Programa de Pesquisa e Inovação Horizon 2020 da União Europeia, sob o Contrato de Grant Nº 871932, entregue através de nossa participação no Essif-Lab, que visa avançar a ampla adoção da identidade auto-vendida para o benefício de todos.