Diseño de monedero sin conexión
La forma en que la gente prefiere utilizar Bitcoin Cash se refleja probablemente en lo que la gente hace hoy en día. Cuando miro a mi alrededor, la gran mayoría de la gente que paga electrónicamente lo hace con una tarjeta bancaria y sólo un pequeño número utiliza un teléfono.
Esto plantea la cuestión de si podemos hacer un monedero seguro y útil que siga el factor de forma de una tarjeta bancaria. Y resulta que sí se puede.
El reto es que la tarjeta bancaria no tiene conexión a Internet, no tiene acceso a WiFi y, en general, sólo puede almacenar una pequeña cantidad de datos. Lo importante es que las tarjetas inteligentes actuales tienen suficiente potencia para firmar sus transacciones, así que eso es prometedor.
La Configuración de la Wallet.
Necesitamos 3 componentes de hardware para que el monedero pueda hacer lo suyo.
Un punto de carga. Para recargar tu tarjeta. Puede ser una aplicación en tu teléfono.
La tarjeta inteligente. Vea la imagen de abajo.
Una estación de punto de venta compatible.
Para unir estos tres componentes tendremos que diseñar una buena manera de hacer que estos tres componentes se comuniquen entre sí, pero esto es ciertamente un esfuerzo futuro en el que nos gustaría que un mayor número de monederos y desarrolladores que en los puntos de venta trabajen juntos.
A partir de estos componentes ya se puede tener una pequeña idea del flujo de las cosas. Por favor, no sobrecompliquemos las cosas aquí, sólo estamos usando transacciones estándar y tipos de pago estándar del tipo (pay-to-pubkey-hash).
Punto de Carga.
El punto de carga es en realidad una aplicación que deposita monedas en la dirección que posee la tarjeta. La tarjeta es básicamente un monedero de hardware y, por tanto, se puede enviar dinero a sus direcciones de BitcoinCash (BCH). Lo único especial es que el punto de carga transfiere la transacción real a la tarjeta. La tarjeta también recuerda la transacción. Como la tarjeta no tiene Internet, el punto de carga se toma la tarea de transmitir la transacción a la red de Bitcoin Cash.
Pago con tarjeta inteligente en un punto de venta.
En este punto, la tarjeta inteligente ha averiguado, a partir de la transacción que ha recibido, que tiene monedas. Las llamaremos UTXOs. La tarjeta tiene UTXOs almacenados en su memoria. Concretamente, los UTXOs ya han sincronizado las claves correspondientes para poder gastarlo.
Cuando un punto de venta exige el pago de una determinada cantidad, resulta sencillo construir una transacción correcta. El punto de venta proporciona las salidas, la tarjeta inteligente proporciona las entradas y puede confirmarlas.
Utilizando un sistema como el defendido por BIP 70, la tarjeta inteligente envía toda la transacción al punto de venta y éste se encarga de transmitirla a la red. Y el pago ya está hecho.
La tarjeta inteligente almacenará el nuevo cambio/UTXO para asegurarse de que la tarjeta no necesita ser "recargada" de nuevo hasta que los fondos sean realmente demasiado bajos.
Traducción al artículo original : https://read.cash/@TomZ/offline-dumb-wallet-design-7bfa9b62