¿Qué es una identidad uPort?

En este artículo intentaré cubrir lo que necesita saber sobre las identidades de uPort como desarrollador.

TLDR; En su nivel más básico, una identidad de uPort es una dirección Ethereum. Entonces, si todo lo que necesita al interactuar con un usuario final es su dirección Ethereum, uPort la proporciona. Sin embargo, uPort también permite que las aplicaciones y sus usuarios intercambien información de forma privada, sin dejar de estar respaldado por la seguridad de la cadena de bloques Ethereum.

Con más detalle, una identidad uPort es una representación digital completa de una persona (o aplicación, organización, dispositivo o bot) que puede hacer declaraciones sobre quiénes son cuando interactúa con contratos inteligentes y otras identidades uPort, ya sea en cadena o fuera de cadena. Esta capacidad de hacer declaraciones sobre sí mismos, sin depender de proveedores de identidad centralizados, es lo que convierte a uPort en una plataforma para la identidad soberana.

El verdadero poder de uPort es que hace que su aplicación Ethereum sea más accesible para sus usuarios finales. Algunas de las interacciones habilitadas por uPort son transacciones simples de blockchain como comprar acciones en el mercado de predicción de Gnosis, mientras que otras incluyen interacciones fuera de la cadena como hacer declaraciones privadas a otros usuarios o aplicaciones de uPort. Todo esto es posible sin que los usuarios finales tengan que soportar una compleja gestión de claves.

Una identidad persistente

En los sistemas de criptografía de clave pública tradicionales, las claves públicas representan identidades. La propiedad de la identidad se determina mediante la posesión de la clave privada que controla la clave pública. Este modelo de clave pública / privada tiene muchas propiedades beneficiosas que se han utilizado en los sistemas de identidad criptográfica durante años. No se necesita mucha infraestructura para verificar una firma; solo necesita acceso a la clave pública. Sin embargo, este modelo tradicional tiene algunos problemas críticos. Si pierde sus claves privadas (por pérdida, robo u otros medios), pierde su identidad. Además, no es directamente posible revocar una clave sin una infraestructura centralizada adicional, ni transferir de forma segura el control de una identidad a otra persona. Estas limitaciones tecnológicas han obstaculizado la adopción de intentos anteriores de sistemas de identidad criptográfica.

Los contratos inteligentes de Ethereum nos brindan la primera solución de propósito general al problema de la administración de claves criptográficas y sientan las bases para las identidades persistentes. Una identidad Ethereum se puede representar mediante la dirección de un contrato inteligente o una clave pública tradicional. Dado que los contratos inteligentes se pueden controlar mediante otros contratos inteligentes, se pueden programar para admitir varios métodos de lógica de recuperación de claves. Esta flexibilidad de la lógica de control habilitada por Ethereum permite que las identidades criptográficas sean fáciles de usar y significativas.

Una identidad uPort es un contrato inteligente muy simple que está controlado por un contrato de controlador reemplazable, que contiene recuperación de claves y control de acceso. lógica. El contrato del controlador, a su vez, está controlado por claves almacenadas de forma segura en su teléfono inteligente.

En un artículo futuro, explicaremos en detalle cómo funciona esta arquitectura y las elecciones de diseño que tomamos para ella.

El registro uPort: una fuente compartida de verdad

El uPort Registry es un contrato inteligente único compartido por todas las identidades de uPort que proporciona la infraestructura necesaria para el intercambio de datos fuera de la cadena y la verificación de la identidad. Básicamente, permite que las identidades hagan declaraciones simples sobre quiénes son.

Si crea una identidad uPort dentro de la aplicación móvil uPort, puede establecer información sobre usted en un perfil público. De forma predeterminada, su nombre, imagen, imagen de banner y descripción están configurados como públicos. En futuras versiones de la aplicación, podrá controlar qué información está en su perfil público, pero por ahora puede pensar en ella como el equivalente Ethereum de su perfil público de Facebook. Esta es su declaración pública al mundo sobre quién es usted.

La forma en que la aplicación uPort funciona con el registro uPort es realmente simple:

Aunque uPort Registry es un contrato compartido, los datos almacenados por cada identidad en esta única fuente de verdad solo son controlables por la propia identidad de uPort, por lo que es imposible censurar o bloquear. Este aspecto de control simple es clave para el concepto de una identidad uPort autónoma.

Es importante recordar que el contrato del Registro uPort es un punto de referencia en la cadena para los datos fuera de la cadena. Los datos que se cargan en IPFS no se almacenan en cadena, solo se almacena el hash de IPFS.

La versión actual de uport-registry se implementa en 0xb9C1598e24650437a3055F7f66AC1820c419a679 en la red Ropsten. Eche un vistazo al código fuente de solidez intencionalmente simple.

Por ejemplo, mi identidad de uPort:

Mi identidad de uPort es 0xceaaac60d36d2cb52ac727a93ad5ea301afc89dc. No dude en agregarme como contacto en su aplicación móvil uPort. También puede ver mi identidad en un explorador de bloques.

En el momento de escribir este artículo, mi perfil público de uPort actual tiene el hash IPFS QmWBAr1QBWaAGaRJMcggbPiFYTBZhoHc4jBoWtKzLyZfSN

Si tiene la aplicación móvil uPort, puede ver fácilmente su propio perfil público en la página de identidad & gt; Configuración & gt; Herramientas para desarrolladores.

Uso en cadena frente a fuera de cadena

En un mundo Ethereum puro donde todas las aplicaciones y los datos viven completamente en la cadena de bloques, no necesitaríamos el Registro uPort como una fuente compartida de la verdad. En cambio, la verdad simplemente se leería desde la cadena de bloques pública. Sin embargo, en realidad, incluso el dApp UX más simple tiene un gran requisito de datos fuera de la cadena debido a las restricciones de privacidad de los datos de la cadena de bloques. Si la UX de una aplicación necesita mostrar información sobre un usuario además de su dirección y saldos de Ethereum, los desarrolladores deben confiar en algo como el Registro uPort, Facebook Connect o su propia base de datos de usuarios centralizada.

Hay muchos más casos de uso avanzados para la necesidad de intercambiar información privada, como ingresos anuales o número de identificación nacional, entre un usuario y una aplicación. La mayoría de la gente no estaría feliz de almacenar esta información en una cadena de bloques pública y, por lo tanto, necesitamos una forma de compartirla de forma segura fuera de la cadena.

Una red troncal descentralizada y en cadena para un mundo fuera de la cadena

Como mencionamos anteriormente, una identidad de contrato inteligente en la cadena de bloques Ethereum puede hacer casi todo lo que puede hacer una identidad basada en claves, y mucho más. Pero, desafortunadamente, una cosa que no puede hacer es firmar datos arbitrarios fuera de la cadena como lo hace una clave privada. Por lo tanto, necesitamos una forma para que uPort Registry delegue la firma arbitraria de datos fuera de la cadena a un par de claves.

El campo publicKey en la entrada de uPort Registry sirve para este propósito. publicKey permite que mi identidad persistente delegue el permiso de firma a otro dispositivo, en este caso mi aplicación móvil uPort. También me permite cambiar esta clave si pierdo o actualizo mi dispositivo.

La biblioteca javascript de uPort Connect utiliza de forma transparente esta funcionalidad de registro de clave pública descentralizada de uPort para comunicar y compartir información de forma segura entre su aplicación y nuestro móvil aplicación con JWT (JSON Web Tokens) verificado por el Registro de uPort.

En un artículo futuro, analizaremos cómo puede utilizar uPort Connect para desarrollar funciones adicionales fuera de la cadena para sus usuarios.

Uport humaniza su aplicación Ethereum

Quizás la razón más importante para admitir uPort al crear su aplicación Ethereum es que uPort humaniza las experiencias de los usuarios de blockchain. Los usuarios ya no son solo direcciones abstractas codificadas en hexadecimal que interactúan con otras direcciones hexadecimales, sino personas reales que ahora pueden expresarse plenamente mientras interactúan con otras personas, aplicaciones, dispositivos y empresas reales.

Además, La combinación de la aplicación móvil uPort y las bibliotecas hace que sea increíblemente fácil para usted atraer nuevos usuarios no técnicos a sus aplicaciones. Esperamos que esto sea una fuerza impulsora detrás de la ampliación de las aplicaciones de Ethereum a la corriente principal.

Si aún no lo ha hecho, regístrese en el alfa cerrado de uPort para recibir acceso anticipado a nuestra aplicación. A continuación, eche un vistazo a nuestro sitio para desarrolladores de uPort y únase al canal de uPort Gitter.