Cómo convertir nuestros teléfonos inteligentes en billeteras de hardware cotidianas

Arranque Zippie en Sony Xperia X

TL; DR: Las criptomonedas y los servicios basados ​​en blockchain deben ser fáciles y seguros de usar para ser adoptados por las masas: la impresión y el almacenamiento de billeteras de papel no van a ser suficientes. Utilizando el uso compartido secreto de Shamir y el aislamiento de Android, Zippie tiene como objetivo hacer que las criptomonedas y las tecnologías descentralizadas se conviertan en una corriente principal al convertir nuestros teléfonos inteligentes en billeteras de hardware fáciles de usar que controlamos.

Todos hemos estado ahí. Tratando de almacenar nuestras claves privadas en un lugar seguro para que los piratas informáticos no puedan robar nuestras criptomonedas preciosas, solo para darnos cuenta de que preferimos comer un ladrillo que recoger nuestras billeteras de hardware o memorias USB del sótano y conectarlas a nuestras computadoras cada vez que queramos para hacer una transacción

Usar un servicio de custodia como un intercambio para almacenar nuestra criptografía no es una opción. El objetivo de la descentralización es devolver el poder a las personas para que podamos gestionar nuestra propia vida digital: dinero, datos e identidad.

A pesar de que nadie ha resuelto el dilema de la clave privada y ha encontrado el equilibrio perfecto entre hacer que las transacciones de criptomonedas sean fáciles y seguras (ya que usted controla su propia clave privada de manera confiable), queremos intentarlo.

Divide la llave, descentraliza el riesgo

En Zippie, nuestro objetivo es llevar los servicios basados ​​en blockchain a las masas al hacerlos accesibles y fáciles de usar para todos, respetando los propósitos centrales de la descentralización.

¿Y cuál podría ser un punto de entrada más fácil para blockchain para miles de millones de personas que sus teléfonos inteligentes?

Inicialmente, Zippie convierte nuestros teléfonos inteligentes en billeteras de hardware adecuadas para el uso diario. El software Zippie crea un compartimento aislado para dispositivos Android que es fácil de usar y totalmente controlado por el usuario.

Para lograr esto, utilizamos el intercambio secreto de Shamir para descentralizar la administración de claves privadas. El intercambio secreto de Shamir nos permite dividir un secreto en N piezas de modo que se necesiten M de N piezas para reconstruir el secreto.

En aras de la simplicidad, cuando hablamos de su clave a continuación, en realidad nos referimos a su mnemotécnico, que a través de un algoritmo puede derivarse determinísticamente en infinitas cantidades de claves privadas.

Del mismo modo, se entiende en esta publicación que una clave privada tiene una clave pública correspondiente que se genera fácilmente; y que si tiene la clave privada, puede descifrar los datos cifrados con la clave pública correspondiente y viceversa.

Cada dispositivo que está inscrito en una identidad Zippie almacena tres datos:

  1. una clave privada del dispositivo
  2. una clave privada de autenticación del dispositivo, esta y la anterior se almacenan idealmente en el chip de seguridad del dispositivo
  3. una parte de su clave (una parte de dos; se requieren dos partes para volver a montar la clave), cifrada contra la clave pública del dispositivo
Zippie usa el intercambio secreto de Shamir para dividir un secreto

Como puede ver, un dispositivo Zippie registrado no almacena la clave completa.

Sin embargo, cuando el dispositivo necesita obtener un breve acceso a su clave para realizar la firma de transacciones, ¿qué sucede entonces?

La otra parte de su clave, cifrada con la clave pública de su dispositivo, se almacena en un servicio en línea (inicialmente alojado por Zippie, pero cualquiera podría ejecutar uno con la misma API). Este servicio en línea tiene cuatro propósitos básicos:

  • Si demuestra criptográficamente que es el titular de una clave privada de autenticación del dispositivo, le dará la otra parte de su clave
  • Si demuestra criptográficamente que es el titular de una clave privada de revocación del dispositivo, será imposible que la clave privada de autenticación del dispositivo acceda nuevamente a la otra parte de su clave; un poco como bloquearías tu tarjeta de crédito
  • Haga posible almacenar la otra parte de su clave y especifique qué claves públicas pueden realizar la autenticación y cuáles pueden solicitar la revocación
  • Hará todo lo posible para eliminar completamente la otra parte de la clave cuando se solicite

Como probablemente observe, no hay ninguna clave de revocación almacenada en el dispositivo. Antes de sumergirnos más en esto; Aquí hay un poco de información general sobre mnemotecnia y el algoritmo utilizado para derivar las claves.

En general, lo que sucede es que su mnemónica se cocina en una semilla que luego se procesa de una manera que le permite generar las mismas claves privadas y claves públicas al proporcionar la misma "ruta de derivación".

Usando el mismo mnemónico, puede generar múltiples semillas al proporcionar esencialmente un elemento adicional de datos, por lo que puede imaginar que sin este elemento adicional generará claves que usará para pequeños pagos diarios; pero al usar una contraseña como elemento adicional, las claves generadas serían las que guardan sus ahorros de toda la vida. O podría tener una tercera contraseña de "coacción" que genera claves que tienen derechos sobre algo de dinero que estaría bien dando a criminales o al gobierno mientras está bajo coacción.

Entonces, ¿qué haces cuando pierdes o te roban tu dispositivo Zippie?

De forma similar a como lo haría con una cuenta de Google o ID de Apple, podría usar otro de sus dispositivos que ya haya iniciado sesión y deshabilitar el dispositivo en cuestión, forzándolo efectivamente a 'cerrar sesión' en el otro dispositivo y hacer que no pueda acceder a sus datos.

Como el mnemónico es un elemento común de los dispositivos que puede autenticarse con éxito con su clave de autenticación de dispositivo particular, obtener, descifrar y combinar las dos partes del mnemónico, parece un buen lugar para comenzar.

Esto significa que si tiene acceso a su clave en un dispositivo, básicamente puede generar la clave privada de revocación del dispositivo proporcionando la mnemónica y un elemento de datos adicional (el nombre del dispositivo); y enviar la solicitud de revocación al servicio en línea.

¿Cómo se recupera si no tiene otro dispositivo conectado?

Estamos utilizando activamente IPFS en la solución Zippie. En pocas palabras, IPFS permite que pueda recuperar un dato en particular al proporcionar el hash de los datos; haciendo una red de contenido dirigido en la práctica.

Nuestra idea actual es que en la caja del dispositivo, proporcionemos una etiqueta NFC, en forma de llavero, que le sugerimos al usuario de Zippie que ponga, por ejemplo, en su llavero.

Llavero NFC. Alrededor de 0.10 USD

Lo que se escribirá en la etiqueta NFC debe caber en aproximadamente 144 bytes, el chip NFC más barato disponible. Resulta que:

https://gateway.ipfs.io/ipfs/QmSOME_IPFS_HASH#32_BYTES_ENCODED

cabe exactamente en 144 bytes.

Cuando el usuario escanea la etiqueta NFC en un nuevo dispositivo, el dispositivo obtendrá el IPFS_HASH en cuestión (reflejado por los servicios de la elección de los usuarios).

La página IPFS_HASH sería una experiencia de navegador completa con un blob cifrado incrustado, que se puede descifrar con la clave de 256 bits proporcionada más allá del # en la URL. Esto significa que el host de la página IPFS_HASH no puede acceder al contenido del blob cifrado.

Lo que contiene el blob es aproximadamente lo mismo que lo que se almacenaría en un dispositivo Zippie, pero acceder a las claves privadas para la autenticación y descifrado requiere pasar por la autenticación multifactor (reconocimiento facial, autenticación de correo electrónico, etc.) que le entrega sus piezas de las claves privadas cuando tiene éxito. Exigir esto significa que simplemente poseer los datos de la etiqueta NFC no es suficiente. Después de eso, puede acceder a su identidad Zippie completa y revocar el acceso de un dispositivo.

También estamos investigando los medios para almacenar un "llavero" virtual en servicios en la nube existentes, como su correo electrónico o almacenamiento en la nube.

Incluso Android no puede acceder a su billetera

Viniendo de un entorno de Nokia y Jolla / Sailfish OS, estamos bastante familiarizados con los sistemas operativos móviles y los teléfonos inteligentes en general. Sabiendo cuán hambrientos pueden ser los sistemas operativos hambrientos de datos, como Android, creemos que hacer una simple aplicación de billetera no es suficiente para mantener sus transacciones y datos privados solo entre usted y el receptor. La billetera debe estar enraizada más profundamente en su teléfono inteligente.

Al usar Zippie, puede imaginar que su teléfono inteligente tiene un contenedor aislado sobre el cual solo usted tiene control total, incluso el sistema operativo del teléfono, como Android, no puede acceder a él sin su permiso. Al mismo tiempo, acceder a este contenedor es tan fácil como cualquier otra aplicación o widget en su teléfono.

¿Curioso cómo funciona todo eso? Cuidado con nuestras próximas publicaciones de blog de tecnología.

Mientras tanto, únase a la discusión en nuestro Telegram y sea el primero en recibir una notificación sobre nuestra venta de tokens que pronto comenzará.