Shamir's Secret Sharing y el modelo híbrido de Drop
Cómo protege una wallet tu clave parece una decisión técnica. También es una decisión sobre personas: quién puede mover tu dinero, quién puede perderlo y en quién tienes que confiar. Las decisiones técnicas son decisiones morales.
La página Modelo de Seguridad describe cómo Drop protege tu clave. Esta página trata una de las decisiones que hay detrás: por qué no usamos Shamir's Secret Sharing, la forma más común de dividir una clave, y cuánto cuesta esa elección.
Shamir's Secret Sharing en breve
Shamir's Secret Sharing (SSS) divide una clave privada en partes llamadas shares y te deja elegir cuántas hacen falta para reconstruirla, por ejemplo 2 cualesquiera de 3. Quien tenga menos no aprende nada sobre la clave, y se puede perder un share sin perder la clave. El método data de 1979 y se usa en toda la industria.
Una wallet SSS típica guarda un share en tu dispositivo, otro con el proveedor y un share de recuperación que guardas tú.
Drop, en cambio, divide la clave en dos shares, y siempre hacen falta los dos. No existe un share adicional capaz de reconstruir la clave privada, como en SSS.
Tres decisiones
¿Quién guarda el share de repuesto?
Con SSS, tú. Poder perder un share es su principal atractivo, y eso depende de un repuesto guardado en algún sitio: un archivo, una nube, un código impreso. Es una cosa más que puedes perder o que se puede filtrar.
Con Drop, no hay share de repuesto ni nada extra que tengas que guardar.
El coste: perder un share no es una opción, así que las copias de seguridad recaen en nosotros y en tu segundo dispositivo.
¿A quién se le pregunta cuando roban algo?
Con SSS, posiblemente a nadie. Si el share de recuperación acaba junto al share del dispositivo, en el mismo teléfono, la misma cuenta en la nube o la misma copia del portátil, quien entre en ese único lugar tiene la clave completa. No hay paso de aprobación, ni límite, ni alerta, porque con dos shares basta.
Con Drop, un archivo copiado o una copia de seguridad robada nunca bastan. Con un passkey compatible, el share de tu lado es inútil sin ese passkey, y nuestro servicio solo libera el otro share para una petición aprobada por tu passkey.
¿Cuánto puede fallar en la aritmética?
Con SSS, más de lo que cabría esperar. Se apoya en una aritmética que deja margen para errores que las pruebas habituales no detectan. Una auditoría independiente de la biblioteca de código abierto de Privy, que está construida con cuidado y se usa ampliamente, encontró que en algunos casos menos shares de los previstos podían recuperar parte de un secreto. Privy lo corrigió y lo contó abiertamente. Además, SSS no puede saber si un share es incorrecto: combinar uno malo produce una clave distinta, sin aviso.
Con Drop, los dos shares se combinan de la forma más simple que existe. Eso conserva la propiedad por la que se valora SSS, que un share por sí solo no revela nada, con mucho menos que pueda salir mal. Drop también comprueba que la clave reconstruida corresponde a la dirección de tu wallet antes de usarla.
El coste: flexibilidad. «2 cualesquiera de 3» es justo lo que compra la aritmética adicional.
Cómo cubrimos el coste
- Tres copias de seguridad de nuestro lado. Por ahora mantenemos tres copias de seguridad de los shares cifrados del lado del servidor, y podríamos ampliarlas con más réplicas: una en una base de datos de respaldo, una en una base de datos en una cuenta de AWS separada y aislada, y una en hardware offline
- Un segundo dispositivo de tu lado. Empareja uno con Respaldar Passkey, para que perder un dispositivo no te deje fuera
- Una salida. Puedes exportar tu clave privada en cualquier momento. A partir de entonces, proteger esa copia depende solo de ti