Presentamos Recoverbull: un sistema de respaldo para billeteras de Bitcoin que utiliza cifrado robusto, almacenamiento en la nube y servidores de claves anónimos.
Bull Bitcoin está totalmente enfocado en un único objetivo: ayudar a las personas a convertirse en individuos soberanos mediante la creación de herramientas que hagan que la autocustodia de Bitcoin sea sencilla.
Nuestra misión es que la experiencia de comprar y vender Bitcoin, recibir y enviar pagos en Bitcoin, y almacenar Bitcoin para ahorros a largo plazo utilizando un intercambio no custodial y un billetera autocustodiado sea tan fluida y conveniente como usar servicios custodiales como Coinbase.
Hemos identificado tres grandes problemas asociados con la autocustodia de Bitcoin:
- Para comprar Bitcoin desde un intercambio no custodial, los usuarios primero necesitan crear un billetera autocustodiado. Necesitan usar dos aplicaciones diferentes: una aplicación de intercambio y una aplicación de billetera. Cuando están comprando Bitcoin, ¡puede que ni siquiera sepan qué es un billetera de Bitcoin! La mayoría de las personas solo ve “el número sube” y quieren invertir en el precio de Bitcoin.
- Enviar y recibir pagos usando la red Bitcoin puede ser caro y lento. Todos sabemos que comprar un café en persona usando la cadena principal no tiene mucho sentido. Los billeteras de Lightning Network autocustodiados resuelven esto, pero tienen sus propios problemas.
- No es fácil crear un respaldo seguro para un billetera de Bitcoin. La parte más dolorosa de ser un defensor de Bitcoin es ver cómo las personas pierden sus billeteras de Bitcoin y no tienen un respaldo, o que sus fondos sean robados por un respaldo inseguro.
Ya hemos resuelto los dos primeros puntos creando el billetera Bull, que está integrado de manera fluida con el intercambio de Bull Bitcoin y que utiliza la tecnología de atomic swaps de última generación para enviar y recibir pagos de Lightning desde un billetera en la red Liquid.
Entonces, ¿cómo resolvemos el problema de garantizar que los billeteras de las personas estén respaldados de manera segura?
Filosofía de Bull Bitcoin
Antes de hablar de nuestra solución al problema del respaldo, permítame exponer nuestra filosofía.
En Bull Bitcoin, somos constructores y solucionadores de problemas. Reconocemos y aceptamos de manera plena los problemas y compromisos del protocolo Bitcoin. No podemos, y no queremos, cambiar cómo funciona Bitcoin. Pero creemos que podemos crear herramientas innovadoras, aplicaciones y experiencias de usuario que hagan que usar Bitcoin sea más fácil y seguro para cualquier persona.
Es fácil tomar atajos y comprometer los valores cypherpunk fundamentales de Bitcoin para “simplificar” la experiencia del usuario. Por eso la mayoría de las empresas de Bitcoin ofrecen servicios custodiales: no hay necesidad de preocuparse por problemas de autocustodia si no se practica la autocustodia. Lo difícil es lograr una experiencia de usuario excelente mientras se hace el menor compromiso posible.
Resolviendo el problema del respaldo: “estás frito”
Muchos bitcoiners dirán: “crear un respaldo es fácil, solo tienes que escribir tu frase semilla de 12 palabras”. No estamos en desacuerdo. Pero después de ayudar a decenas de miles de personas a usar aplicaciones autocustodiadas, se obtiene una perspectiva más pragmática: crear un respaldo no es tan simple como eso.
Permítame ilustrarlo con un ejemplo: estoy explicando Bitcoin a un taxista y logro que descargue el billetera Bull Bitcoin. Antes de sentirme cómodo con que he hecho bien mi trabajo como educador de Bitcoin, necesito asegurarme de que tenga un respaldo adecuado. Esto es lo que tendría que decirle:
- Si no haces un respaldo y pierdes tu teléfono, estás frito.
- Si escribes tu respaldo en un papel, lo dejas en el bolsillo y se destruye en la lavadora, estás frito. Mejor compra una placa metálica de respaldo.
- Si pierdes tu teléfono y no encuentras la placa metálica, estás frito. Probablemente deberías comprar dos placas y guardarlas en lugares separados.
- Si alguien encuentra tu placa metálica de respaldo, estás frito. Necesitas agregar una contraseña BIP39 a tu billetera.
- Si tu contraseña BIP39 no es lo suficientemente fuerte, será fácil de forzar por fuerza bruta. Si alguien la encuentra, estás frito. Usa una contraseña fuerte y generada aleatoriamente.
- Si olvidas o pierdes tu contraseña, estás frito. Guarda una copia de tu contraseña.
- Si guardas la copia de tu contraseña en el mismo lugar que la copia del respaldo y alguien la encuentra, estás frito. Necesitas dos lugares diferentes: uno para el respaldo y otro para la contraseña.
- Y si mueres… eso es un conjunto de problemas completamente distinto.
Déjeme ser claro: es perfectamente posible que una persona promedio haga todo esto, pero estoy seguro de que estará de acuerdo en que no es la manera ideal de introducir a un taxista a Bitcoin. Por esta razón, la mayoría de las personas simplemente hacen que el taxista descargue Wallet of Satoshi, le envían algunos sats y esperan que en el futuro aprenda a autocustodiar por sí mismo. Lo que probablemente suceda es que esa persona seguirá usando Wallet of Satoshi para siempre (dependencia del camino).
Soluciones existentes
Existen muchas soluciones al problema del respaldo. Algunos ejemplos:
- Simplemente no “enseñas” a la gente y les dices que, si no lo entienden, Bitcoin no es para ellos.
- Les dices que compren “suitcoins” como $MSTR o ETFs como $IBIT desde sus cuentas comitentes.
- Les dices que compren Bitcoin en Coinbase y simplemente lo dejen allí.
- Les dices que usen un billetera custodial.
- Les dices que utilicen un servicio profesional de custodia como Onramp o Balance.
- Les dices que usen multisig colaborativo con servicios de recuperación de llaves como Casa o Bitkey.
- Les dices que usen un billetera miniscript con multisig decreciente o creciente y rutas de recuperación con bloqueo temporal como Liania. (Para ser justos, creo que esta solución es fantástica).
Pero, si volvemos al cuadro que publiqué anteriormente, ninguna de estas soluciones tiene el equilibrio adecuado entre compromiso y facilidad de uso. O comprometen demasiado la seguridad o son demasiado difíciles de usar.
Todo esto para decir que mi objetivo era crear una solución con compromisos que considero hacen que sea usable y segura al mismo tiempo. Y déjeme decirle que no fue nada fácil.
Nadie discutirá que la experiencia de usuario que hemos creado es perfecta. Sé que muchas personas estarán en desacuerdo sobre si comprometimos demasiado, pero personalmente estoy satisfecho de haber hecho lo mejor posible.
Construyendo la solución: objetivos de diseño
Estos son los objetivos que establecí para mí y para nuestro desarrollador Azad:
- Los usuarios de Bitcoin pueden ser ignorantes, poco prudentes, desmotivados, inexpertos o incompetentes.
- El anonimato es inseparable de la seguridad. Cualquier servicio o protocolo que gestione respaldos de billeteras de Bitcoin debe priorizar el anonimato. Cualquier información revelada por un usuario de Bitcoin, incluso el simple hecho de que posee Bitcoin, puede ser usada en su contra por un atacante.
- El proceso de respaldo debe ser fácil de completar en menos de 2 minutos.
- El respaldo debe mantener su seguridad y anonimato sin importar la ubicación o dispositivo del usuario final.
- Cualquier servicio que facilite respaldos de billeteras de Bitcoin nunca debe tener acceso a las llaves privadas del usuario, cifradas o no, para evitar ser clasificado como un servicio de transmisión de dinero o proveedor de activos virtuales.
- Los servicios que faciliten la recuperación deben ser gratuitos (o extremadamente baratos).
- Los servicios que faciliten la recuperación no deben imponer bloqueo de proveedor; los respaldos deben ser portables fuera de la aplicación del proveedor.
- Los servicios de respaldo no deben requerir hardware o software especial, y deben aprovechar tecnologías ubicuas y ampliamente disponibles.
Construyendo la solución: nuestros principios
Al construir la solución, trabajamos bajo los siguientes principios:
- Un archivo digital correctamente cifrado es la forma más segura de proteger una frase mnemotécnica de Bitcoin contra el robo, si el cifrado es lo suficientemente fuerte para prevenir ataques por fuerza bruta y se realiza en un entorno del dispositivo tan seguro como el usado para generar llaves y firmar transacciones.
- Los humanos son malos generando contraseñas fuertes. Cualquier clave de cifrado debe generarse de manera aleatoria con suficiente entropía para prevenir ataques de fuerza bruta.
- No podemos esperar que los usuarios memoricen claves de cifrado aleatorias con suficiente entropía.
- Los humanos son malos respaldando sus datos, tanto sensibles como no sensibles.
- Los gestores de contraseñas son, para la mayoría de las personas, una forma cómoda y segura de respaldar contraseñas y forman parte de los hábitos de las personas.
- Los proveedores de almacenamiento en la nube son, para la mayoría de las personas, la mejor y más fácil manera de respaldar datos para protegerse contra pérdidas accidentales.
- Los usuarios de Bitcoin tienen más probabilidades de ser atacados por intentar acceder a sus datos que un usuario promedio, y por lo tanto deben tomar su seguridad de datos más en serio.
Presentamos nuestra solución: Recoverbull
Modelo de autenticación y seguridad
La autenticación con el Servidor de Llaves se realiza mediante una contraseña proporcionada por el usuario. La responsabilidad del usuario es recordar o almacenar esta contraseña. El protocolo está diseñado de modo que esta contraseña sea memorable y pueda ser débil. Se espera que los usuarios elijan un PIN de 6 dígitos similar al que usan para desbloquear sus dispositivos móviles.
La fuerza bruta se previene mediante un límite estricto a nivel del Servidor de Llaves.
En términos simples, el resultado final es:
- El respaldo cifrado se aloja en el almacenamiento en la nube del usuario.
- La clave de cifrado se aloja en un servidor anónimo.
- Para recuperar la clave de cifrado, solo se necesita un PIN o contraseña simple.
El anonimato del usuario es un componente crítico del modelo de seguridad. El Servidor de Llaves no debe recolectar ni almacenar información que pueda identificar al usuario. Si la base de datos del servidor se ve comprometida o el servidor es malicioso, cualquier información personal podría permitir ataques dirigidos. Correos electrónicos o números de teléfono podrían revelar la identidad legal del usuario y exponerlo como poseedor de Bitcoin.
Proceso de respaldo Recoverbull: pasos técnicos
Paso 1: Se genera una clave de respaldo derivando 256 bits de entropía a partir de la clave privada del billetera usando BIP85.
Paso 2: Se cifra el respaldo del billetera utilizando la clave de respaldo generada en el paso 1.
Paso 3: Se crea un archivo de respaldo que incluye: La frase mnemotécnica cifrada (cifrado), la ruta de derivación BIP85 usada para generar la clave de cifrado, un ID de respaldo generado aleatoriamente, una salt generada aleatoriamente.
Como resultado, la clave de cifrado y el archivo de respaldo se crean en el dispositivo del usuario. La parte importante ahora es dónde se almacenarán estos datos.
Paso 4: El usuario almacena el archivo de respaldo donde quiera. Por defecto, se proponen proveedores de almacenamiento en la nube como Google Drive o Apple Cloud, ya que son ubicuos. Sin embargo, el usuario puede guardar el archivo en otro dispositivo o en un servicio de nube autoalojado.
Paso 5: Se solicita al usuario que proporcione una contraseña. Esta contraseña puede y debe ser de baja entropía, para que sea memorable. La implementación de Bull Bitcoin evita el uso de los 1000 PIN de 6 dígitos más comunes, pero no hay otros requisitos. La contraseña, junto con la salt del archivo de respaldo, se utiliza para producir dos claves:
- Clave de autenticación
- Clave de cifrado
Paso 6: La clave de cifrado recién derivada se usa para cifrar la clave de respaldo. Para descifrarla, se necesita la contraseña del usuario y el archivo de respaldo (que contiene la salt).
Paso 7: El billetera del usuario inicia un cliente TOR y se conecta a un servidor Recoverbull a través de TOR. Sube la clave de respaldo cifrada, el identificador (del archivo de respaldo) y la clave de autenticación (derivada de la contraseña y la salt).
Paso 8: El servidor Recoverbull aplica un hash a la clave de autenticación del usuario y al identificador para generar un Key ID. La clave de respaldo cifrada se almacena en el servidor Recoverbull y se asocia a este Key ID correspondiente.
Es importante notar que la clave de respaldo cifrada no está asociada directamente al identificador ni a la clave de autenticación en la base de datos del servidor, sino a este Key ID. La razón es que no queremos que el servidor Recoverbull pueda saber qué clave de respaldo cifrada puede desbloquear un archivo de respaldo específico a menos que se proporcione la clave de autenticación del usuario.
En otras palabras, este mecanismo impide que el servidor Recoverbull asocie un archivo de respaldo con una clave cifrada a menos que se proporcionen tanto el archivo de respaldo como la contraseña del usuario.
Sin embargo, para poder aplicar la limitación de intentos (rate-limiting), el servidor Recoverbull mantendrá el identificador en memoria durante un período de 24 horas.
En este punto, el proceso de respaldo está completo. El resultado final es que:
- El archivo de respaldo del usuario se almacena en un lugar fácilmente accesible, presumiblemente en su proveedor de almacenamiento en la nube.
- La clave de respaldo cifrada se almacena en el servidor Recoverbull.
Esto crea, en efecto, un esquema de respaldo 2-de-2, en el que dos partes del secreto almacenadas por separado deben combinarse, además de la contraseña del usuario, para acceder al respaldo.
Proceso paso a paso de respaldo Recoverbull
Paso 1: El usuario debe primero obtener su archivo de respaldo e importarlo en la aplicación compatible con Recoverbull (presumiblemente, su billetera Bull Bitcoin).
Paso 2: Ahora que la aplicación cliente tiene el archivo de respaldo, el usuario proporciona su contraseña. A partir de la salt en el archivo de respaldo y de la contraseña del usuario, la aplicación recreará la clave de cifrado y la clave de autenticación que se habían creado originalmente en el paso 5 del proceso de respaldo.
Paso 3: La aplicación cliente inicia la conexión TOR con el servidor Recoverbull, proporciona el identificador y la clave de autenticación, y solicita la clave de respaldo cifrada asociada. El servidor Recoverbull aplica estrictamente un límite de 3 intentos por día asociado a un único identificador. Por eso el servidor debe mantener el identificador en memoria durante el período de limitación (en nuestra implementación, 24 horas).
Un atacante que tenga en su poder un archivo de respaldo e intente forzar el acceso al servidor de recuperación para obtener la clave de respaldo lo haría generando múltiples claves de autenticación a partir de la salt del archivo de respaldo. La limitación de velocidad asegura que este ataque de fuerza bruta sea extremadamente improbable de tener éxito.
Paso 4: El servidor Recoverbull, habiendo recibido la clave de autenticación y el identificador, genera a partir de estos dos elementos el Key ID. Si se encuentra un Key ID, el servidor sabe que puede devolver de manera segura la clave de respaldo cifrada al cliente, porque la única forma de generar este Key ID es que el cliente esté en posesión tanto del archivo de respaldo como de la contraseña.
Paso 5: La aplicación cliente ahora tiene el archivo de respaldo, la clave de respaldo cifrada y la clave de cifrado. Primero descifra la clave de respaldo cifrada usando la clave de cifrado, y luego descifra la frase mnemotécnica cifrada en el archivo de respaldo usando la clave de respaldo.
Como resultado, la aplicación cliente ahora posee el respaldo mnemotécnico del billetera del usuario, y puede restaurar el billetera Bitcoin del usuario.
Revisión del modelo de seguridad
Ahora que tenemos una comprensión clara del proceso de Recoverbull, revisemos los componentes clave del modelo de seguridad.
- A nivel técnico, se trata de un esquema de respaldo 2-de-2, donde se requieren dos piezas de información para recuperar una billetera: el archivo de respaldo y la clave de respaldo. Debido a que la clave de respaldo se almacena presumiblemente en el servidor de claves, y dado que este servidor requiere una clave de autenticación derivada de la contraseña del usuario, en realidad se trata de un esquema 3-de-3, ya que, a menos que el usuario haya guardado una copia de la clave de respaldo, su contraseña será necesaria para realizar una recuperación. Esto está diseñado para prevenir el robo o el acceso no autorizado al respaldo.
- El usuario confía en servicios de almacenamiento en la nube ubicuos para guardar el archivo de respaldo, y en un servidor Recoverbull dedicado para almacenar la clave de respaldo. Esto tiene como objetivo evitar la pérdida accidental de acceso al respaldo.
- El modelo de seguridad se basa en que el usuario solo tenga la responsabilidad de memorizar su contraseña. Por esta razón, el protocolo está diseñado para contraseñas de muy baja entropía. La responsabilidad de almacenar las otras partes del respaldo (el archivo y la clave) se externaliza a proveedores de servicios externos.
- El modelo de seguridad del propio servidor de claves depende de la limitación de la frecuencia de solicitudes por parte de los clientes para obtener una clave de respaldo cifrada. Esto sirve para evitar que atacantes obtengan acceso no autorizado al archivo de respaldo de un usuario y, posteriormente, a la clave de respaldo.
- El usuario permanece en todo momento absolutamente anónimo frente al servidor Recoverbull. No solo el servidor no posee ninguna información identificativa del usuario (¡ni siquiera una dirección IP!), sino que tampoco tiene información que pueda vincular una clave de respaldo con un archivo de respaldo, a menos que se proporcione la contraseña del usuario. Esto sirve para mitigar y prevenir solicitudes de las autoridades que obliguen al servidor Recoverbull a entregar la clave de respaldo asociada a un usuario. Lo que no sabe, no puede compartirlo.
- Finalmente, el servidor Recoverbull también es anónimo. Parte de la razón por la que este servidor funciona exclusivamente sobre TOR es para que sus operadores no puedan ser identificados. En la implementación de la billetera de Bull Bitcoin, se proporciona un servidor Recoverbull predeterminado. Este servidor es administrado por voluntarios anónimos. Cualquiera puede ejecutar un servidor Recoverbull. El servidor debe ser confiable en cuanto a su disponibilidad constante y a no coludir con los proveedores de almacenamiento en la nube. Bull Bitcoin confía firmemente en que los voluntarios anónimos que administran el servidor Recoverbull actualmente sugerido por defecto en la billetera Bull Bitcoin son confiables para estos dos propósitos.
Modelo de amenazas y escenarios catastróficos
Los siguientes escenarios pueden conducir a una pérdida total de acceso a la billetera de un usuario:
- Pérdida: el usuario pierde acceso tanto a su dispositivo como a su archivo de respaldo, y no tenía una copia física.
- Pérdida: el usuario pierde acceso a su dispositivo, el servidor de claves es inaccesible, no tenía una copia de la clave de respaldo ni una copia física.
- Pérdida: el usuario pierde acceso a su dispositivo y a su contraseña, y no tenía una copia de la clave de respaldo ni una copia física.
- Robo: un atacante malicioso accede al archivo de respaldo del usuario y también conoce la contraseña.
- Robo: un atacante malicioso obtiene acceso a un archivo de respaldo y la base de datos del servidor Recoverbull se filtra públicamente.
- Robo: el proveedor de almacenamiento en la nube colude activamente con el operador del servidor Recoverbull (o ejecuta un servidor Recoverbull trampa).
- Robo: tanto el servidor Recoverbull como el proveedor de almacenamiento en la nube son obligados por la misma autoridad legal a entregar sus bases de datos completas, y ambos deciden cumplir.
¿Cuál es el caso de uso de Recoverbull?
No es una solución de almacenamieno en frío
- No es una alternativa a las billeteras de hardware con copias físicas adecuadas.
- No es una solución segura de almacenamiento de Bitcoin a largo plazo.
- No es una alternativa a la custodia colaborativa ni a las billeteras multisig basadas en miniscript.
Es una solución de respaldo para billeteras calientes
- Es una alternativa a las billeteras custodiales o cuentas en exchanges.
- Es una alternativa a los respaldos físicos de las billeteras calientes.
- Es una alternativa a las contraseñas adicionales BIP39 para respaldos físicos.
Recoverbull debe considerarse una solución temporal. La razón es que, si el servidor Recoverbull que almacena las claves desaparece, el usuario no podrá recuperar su respaldo Recoverbull a menos que tenga una copia separada de la clave de respaldo. La regla general es que debería usarse un respaldo Recoverbull para los mismos montos con los que se siente cómodo usando una billetera custodial o una billetera caliente en su teléfono.
Para desarrolladores
El código fuente del cliente y del servidor Recoverbull es, por supuesto, de código abierto. Como implementación de referencia, puede consultarse el código fuente de la billetera de Bull Bitcoin:
- Whitepaper: https://recoverbull.com/whitepaper
- Cliente: https://github.com/SatoshiPortal/recoverbull-client-dart
- Servidor: https://github.com/SatoshiPortal/recoverbull-server
- Billetera Bull Bitcoin: https://github.com/SatoshiPortal/bullbitcoin-mobile/tree/develop
- Recoverbull website: https://recoverbull.com/
Publications connexes
En savoir plus avec les articles suivants
7 mins
about 21 hours ago
Découvrez RecoverBull : une sauvegarde de portefeuille Bitcoin sécurisée grâce au chiffrement, au cloud et à des serveurs de clés anonymes.
Recoverbull est un nouveau protocole de sauvegarde open‑source de Bull Bitcoin, rendant la récupération de portefeuille mobile rapide, simple et sécurisée, sans jamais céder la garde de vos fonds. Chiffrez votre portefeuille en deux minutes, stockez-le où vous le voulez et récupérez-le avec un simple code PIN. La souveraineté, sans compromis.
CEO
5 mins
about 1 month ago
BULL - Le Wallet Bitcoin Parfait
Ils disaient que c'était un rêve impossible. Ils me disaient que je ne pourrais pas créer un wallet Bitcoin qui satisfasse les experts cypherpunks de Bitcoin, tout en étant également idéal pour que les débutants fassent leurs premiers pas. Que je devrais choisir l'un ou l'autre. Et ils avaient tous tort.
CEO
5 mins
2 months ago
Ne manquez jamais une correction : Les ordres limites sont disponibles sur Bull Bitcoin
Alors que Bitcoin poursuit son ascension vers de nouveaux sommets, notre équipe a travaillé sans relâche pour vous offrir une fonctionnalité essentielle : les ordres limites (limit orders).
Europe GM, Bull Bitcoin