paint-brush
¿Qué es una billetera de recuperación social?by@Vitalik
5,124
5,124

¿Qué es una billetera de recuperación social?

Un agradecimiento especial a Itamar Lesuisse de Argent y Daniel Wang de Loopring por sus comentarios. Uno de los grandes desafíos para hacer que las aplicaciones de criptomonedas y blockchain sean utilizables para los usuarios promedio es la seguridad: ¿cómo evitamos que los fondos de los usuarios se pierdan o sean robados? Las pérdidas y los robos son un problema grave, que a menudo les cuesta a los usuarios inocentes de blockchain miles de dólares o incluso, en algunos casos, la mayor parte de su patrimonio neto. Se han propuesto muchas soluciones a lo largo de los años: billeteras de papel, billeteras de hardware y mi favorito de una sola vez: billeteras multisig. Y, de hecho, han llevado a mejoras significativas en la seguridad. Sin embargo, todas estas soluciones han sufrido varios defectos: a veces brindan mucha menos protección adicional contra robos y pérdidas de lo que realmente se necesita, a veces son engorrosas y difíciles de usar, lo que lleva a una adopción muy baja y, a veces, ambas cosas.

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coins Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - ¿Qué es una billetera de recuperación social?
Vitalik Buterin HackerNoon profile picture


Un agradecimiento especial a Itamar Lesuisse de Argent y Daniel Wang de Loopring por sus comentarios.


Uno de los grandes desafíos para hacer que las aplicaciones de criptomonedas y blockchain sean utilizables para los usuarios promedio es la seguridad: ¿cómo evitamos que los fondos de los usuarios se pierdan o sean robados?


Las pérdidas y los robos son un problema grave, que a menudo les cuesta a los usuarios inocentes de blockchain miles de dólares o incluso, en algunos casos, la mayor parte de su patrimonio neto.


Se han propuesto muchas soluciones a lo largo de los años: billeteras de papel, billeteras de hardware y mi favorito de una sola vez: billeteras multisig .


Y, de hecho, han llevado a mejoras significativas en la seguridad. Sin embargo, todas estas soluciones han sufrido varios defectos: a veces brindan mucha menos protección adicional contra robos y pérdidas de lo que realmente se necesita, a veces son engorrosas y difíciles de usar, lo que lleva a una adopción muy baja y, a veces, ambas cosas.


Pero recientemente, está surgiendo una mejor alternativa: un tipo más nuevo de billetera de contrato inteligente llamada billetera de recuperación social .


Estas billeteras pueden proporcionar potencialmente un alto nivel de seguridad y una facilidad de uso mucho mejor que las opciones anteriores, pero aún queda mucho camino por recorrer antes de que puedan implementarse fácil y ampliamente.


Esta publicación analizará qué son las billeteras de recuperación social, por qué son importantes y cómo podemos y debemos avanzar hacia una adopción mucho más amplia de ellas en todo el ecosistema.

La seguridad de la billetera es un problema realmente grande

Los problemas de seguridad de la billetera han sido una espina en el costado del ecosistema blockchain casi desde el principio.


Las pérdidas y los robos de criptomonedas eran rampantes incluso en 2011, cuando Bitcoin era casi la única criptomoneda que existía; de hecho, en mi papel anterior a Ethereum como cofundador y escritor de Bitcoin Magazine , escribí un artículo completo que detalla los horrores de los ataques, las pérdidas y los robos que ya estaban ocurriendo en ese momento.


Aquí hay una muestra:


Anoche, alrededor de las 9 p. m. PDT, hice clic en un enlace para ir a CoinChat[.]freetzi[.]com, y se me solicitó que ejecutara java. Lo hice (pensando que se trataba de un chatoom legítimo) y no pasó nada. Cerré la ventana y no pensé en nada. Abrí mi billetera bitcoin-qt aproximadamente 14 minutos después y vi una transacción que NO aprobé ir a la billetera 1Es3QVvKN1qA2p6me7jLCVMZpQXVXWPNTC por casi toda mi billetera...


Las pérdidas de esta persona fueron de 2,07 BTC, con un valor de $300 en ese momento, y más de $70 000 en la actualidad. Aqui hay otro más:


En junio de 2011, el miembro de Bitcointalk "allinvain" perdió 25 000 BTC (con un valor de $500 000 en ese momento) después de que un intruso desconocido de alguna manera obtuviera acceso directo a su computadora. El atacante pudo acceder al archivo wallet.dat de allinvain y vaciar rápidamente la billetera, ya sea enviando una transacción desde la computadora de allinvain o simplemente cargando el archivo wallet.dat y vaciándolo en su propia máquina.


En valor actual, eso es una pérdida de casi mil millones de dólares . Pero el robo no es la única preocupación; también hay pérdidas por perder las claves privadas. Aquí está Stefan Thomas:


El desarrollador de Bitcoin, Stefan Thomas, tenía tres copias de seguridad de su billetera: una memoria USB encriptada, una cuenta de Dropbox y una máquina virtual Virtualbox. Sin embargo, logró borrar dos de ellos y olvidó la contraseña del tercero, perdiendo para siempre el acceso a 7000 BTC (valorados en $125 000 en ese momento). La reacción de Thomas: "[Estoy] bastante dedicado a crear mejores clientes desde entonces".


Un análisis del ecosistema de Bitcoin sugiere que se pueden perder 1500 BTC todos los días , más de diez veces más de lo que los usuarios de Bitcoin gastan en tarifas de transacción y, a lo largo de los años, suman hasta el 20% del suministro total .


Tanto las historias como los números apuntan a la misma verdad ineludible: la importancia del problema de seguridad de la billetera es grande y no debe subestimarse .


Es fácil ver las razones sociales y psicológicas por las que la seguridad de la billetera es fácil de subestimar: las personas, naturalmente, se preocupan por parecer descuidadas o tontas frente a un público siempre crítico, y muchos mantienen sus experiencias con sus fondos pirateados para sí mismos. La pérdida de fondos es aún peor, ya que hay un sentimiento generalizado (aunque en mi opinión muy incorrecto) de que "no hay nadie a quien culpar sino a ti mismo".


Pero la realidad es que el objetivo de la tecnología digital , incluidas las cadenas de bloques, es facilitar que los humanos se involucren en tareas muy complicadas sin tener que hacer un esfuerzo mental extremo o vivir con el temor constante de cometer errores.


Un ecosistema cuya única respuesta a pérdidas y robos es una combinación de tutoriales de 12 pasos, medidas a medias no muy seguras y el no tan ocasional semisarcástico "perdón por tu pérdida" va a tener dificultades para conseguirlo. adopción amplia.


Por lo tanto, las soluciones que reducen la cantidad de pérdidas y robos que se producen, sin exigir que todos los usuarios de criptomonedas conviertan la seguridad personal en un pasatiempo de tiempo completo, son muy valiosas para la industria.

Las billeteras de hardware por sí solas no son lo suficientemente buenas

Las billeteras de hardware a menudo se promocionan como la mejor tecnología de su clase para la gestión de fondos de criptomonedas.


Una billetera de hardware es un dispositivo de hardware especializado que se puede conectar a su computadora o teléfono (por ejemplo, a través de USB) y que contiene un chip especializado que solo puede generar claves privadas y firmar transacciones.


Una transacción se iniciaría en su computadora o teléfono, debe confirmarse en la billetera de hardware antes de que pueda enviarse. La clave privada permanece en su billetera de hardware, por lo que un atacante que piratee su computadora o teléfono no podría drenar los fondos.


Las billeteras de hardware son una mejora significativa y ciertamente habrían protegido a la víctima de la sala de chat de Java, pero no son perfectas. Veo dos problemas principales con las billeteras de hardware:


  • Ataques a la cadena de suministro : si compra una billetera de hardware, está confiando en una serie de actores que participaron en su producción: la empresa que diseñó la billetera, la fábrica que la produjo y todos los involucrados en el envío que podrían haberla reemplazado con un falso.


    Las billeteras de hardware son potencialmente un imán para tales ataques: la proporción de fondos robados a la cantidad de dispositivos comprometidos es muy alta.


    Para su crédito, los fabricantes de billeteras de hardware como Ledger han puesto muchas medidas de seguridad para protegerse contra estos riesgos, pero aún quedan algunos riesgos. Básicamente, un dispositivo de hardware no se puede auditar de la misma manera que se puede auditar una pieza de software de código abierto.


  • Todavía hay un único punto de falla : si alguien roba su billetera de hardware justo después de pararse detrás de su hombro y atraparlo escribiendo el PIN, pueden robar sus fondos.


    Si pierde su billetera de hardware, entonces perderá sus fondos, a menos que la billetera de hardware genere y genere una copia de seguridad en el momento de la configuración, pero como veremos, esos tienen sus propios problemas...

Las frases mnemotécnicas no son lo suficientemente buenas

Muchas billeteras, tanto de hardware como de software, tienen un procedimiento de configuración durante el cual emiten una frase mnemotécnica , que es una codificación de 12 a 24 palabras legible por humanos de la clave privada raíz de la billetera. Una frase mnemotécnica se ve así:


 vote dance type subject valley fall usage silk essay lunch endorse lunar obvious race ribbon key already arrow enable drama keen survey lesson cruel


Si pierde su billetera pero tiene la frase mnemotécnica, puede ingresar la frase al configurar una nueva billetera para recuperar su cuenta, ya que la frase mnemotécnica contiene la clave raíz a partir de la cual se pueden generar todas sus otras claves.


Las frases mnemotécnicas son buenas para proteger contra pérdidas, pero no hacen nada contra el robo. Peor aún, agregan un nuevo vector para el robo: si tiene el combo estándar de billetera de hardware + copia de seguridad mnemotécnica, alguien que robe su billetera de hardware + PIN o su copia de seguridad mnemotécnica puede robar sus fondos.


Además, mantener una frase mnemotécnica y no tirarla accidentalmente es en sí mismo un esfuerzo mental no trivial.


Los problemas con el robo pueden aliviarse si divides la frase por la mitad y le das la mitad a tu amigo, pero (i) casi nadie promueve esto, (ii) hay problemas de seguridad, como si la frase fuera corta (128 bits) entonces, un atacante sofisticado y motivado que roba una pieza puede usar la fuerza bruta en todas las \(2^{64}\) combinaciones posibles para encontrar la otra, y (iii) aumenta aún más la sobrecarga mental.

¿Entonces, qué necesitamos?

Lo que necesitamos es un diseño de billetera que satisfaga tres criterios clave:


  • Ningún punto único de falla : no hay una sola cosa (e idealmente, ninguna colección de cosas que viajan juntas) que, si es robada, pueda dar acceso a un atacante a sus fondos, o si se pierde, puede negarle el acceso a sus fondos.


  • Baja sobrecarga mental : en la medida de lo posible, no debe exigir a los usuarios que aprendan nuevos hábitos extraños o que hagan un esfuerzo mental para recordar siempre seguir ciertos patrones de comportamiento.


  • Máxima facilidad de transacción : la mayoría de las actividades normales no deberían requerir mucho más esfuerzo que en las billeteras regulares (por ejemplo, Estado, Metamask...)

¡Multigrado es bueno!

La mejor tecnología de su clase para resolver estos problemas en 2013 era multisig. Podría tener una billetera que tenga tres claves, donde se necesitan dos de ellas para enviar una transacción.


Esta tecnología se desarrolló originalmente dentro del ecosistema Bitcoin, pero ahora también existen excelentes billeteras multisig (por ejemplo, consulte Gnosis Safe ) para Ethereum.


Las billeteras multisig han tenido mucho éxito dentro de las organizaciones: la Fundación Ethereum utiliza una billetera multisig 4 de 7 para almacenar sus fondos , al igual que muchas otras organizaciones en el ecosistema Ethereum.


Para que una billetera multisig mantenga los fondos para un individuo , el principal desafío es: ¿quién tiene los fondos y cómo se aprueban las transacciones? La fórmula más común es una variante de "dos claves de fácil acceso, pero separadas, que usted tiene (por ejemplo, una computadora portátil y un teléfono) y una tercera más segura pero menos accesible, una copia de seguridad, que se encuentra fuera de línea o por un amigo o institución".


Esto es razonablemente seguro: no hay un solo dispositivo que pueda perderse o ser robado y que le haga perder el acceso a sus fondos. Pero la seguridad está lejos de ser perfecta: si puede robar la computadora portátil de alguien, a menudo no es tan difícil robar también su teléfono.


La usabilidad también es un desafío, ya que ahora cada transacción requiere dos confirmaciones con dos dispositivos.

La recuperación social es mejor

Esto nos lleva a mi método preferido para asegurar una billetera: la recuperación social. Un sistema de recuperación social funciona de la siguiente manera:


  1. Hay una sola "clave de firma" que se puede usar para aprobar transacciones


  2. Hay un conjunto de al menos 3 (o un número mucho mayor) de "tutores", de los cuales la mayoría puede cooperar para cambiar la clave de firma de la cuenta.


La clave de firma tiene la capacidad de agregar o eliminar tutores, aunque solo después de un retraso (a menudo de 1 a 3 días).

En todas las circunstancias normales, el usuario puede simplemente usar su billetera de recuperación social como una billetera normal, firmando mensajes con su clave de firma para que cada transacción firmada pueda volar con un solo clic de confirmación como lo haría en una billetera "tradicional" como Metamask. .


Si un usuario pierde su clave de firma, es cuando se activaría la funcionalidad de recuperación social. El usuario simplemente puede comunicarse con sus tutores y pedirles que firmen una transacción especial para cambiar la clave pública de firma registrada en el contrato de billetera a una nueva. .


Esto es fácil: simplemente pueden ir a una página web como security.loopring.io , iniciar sesión, ver una solicitud de recuperación y firmarla. Casi tan fácil para cada guardián como hacer un intercambio Uniswap.


Hay muchas opciones posibles para elegir como tutor. Las tres opciones más comunes son:


  • Otros dispositivos (o mnemónicos en papel) propiedad del propio titular de la billetera


  • Amigos y familiares


  • Instituciones, que firmarían un mensaje de recuperación si obtienen una confirmación de su número de teléfono o correo electrónico o quizás en casos de alto valor lo verifiquen personalmente por videollamada.


Los tutores son fáciles de agregar: puede agregar un tutor simplemente escribiendo su nombre ENS o dirección ETH, aunque la mayoría de las billeteras de recuperación social requerirán que el tutor firme una transacción en la página web de recuperación para aceptar ser agregado.


En cualquier billetera de recuperación social diseñada con cordura, el guardián NO necesita descargar y usar la misma billetera; simplemente pueden usar su billetera Ethereum existente, sea cual sea el tipo de billetera.


Dada la gran conveniencia de agregar tutores, si tiene la suerte de que sus círculos sociales ya están formados por usuarios de Ethereum, personalmente prefiero contar con un alto número de tutores (idealmente 7+) para una mayor seguridad.


Si ya tiene una billetera, no se requiere un esfuerzo mental continuo para ser un guardián: cualquier operación de recuperación que realice se realizará a través de su billetera existente. Si no conoce a muchos otros usuarios activos de Ethereum, lo mejor es un número menor de guardianes en los que confíe para que sean técnicamente competentes.


Para reducir el riesgo de ataques a los tutores y colusión, no es necesario que sus tutores sean conocidos públicamente: de hecho, no es necesario que conozcan las identidades de los demás . Esto se puede lograr de dos maneras.


Primero, en lugar de que las direcciones de los tutores se almacenen directamente en la cadena, se puede almacenar un hash de la lista de direcciones en la cadena, y el propietario de la billetera solo necesitaría publicar la lista completa en el momento de la recuperación.


En segundo lugar, se puede pedir a cada guardián que genere de manera determinista una nueva dirección de propósito único que usaría solo para esa recuperación en particular; no necesitarían enviar ninguna transacción con esa dirección a menos que realmente se requiera una recuperación.


Para complementar estas protecciones técnicas, se recomienda elegir una colección diversa de tutores de diferentes círculos sociales (incluyendo idealmente un tutor institucional) ; estas recomendaciones juntas harían extremadamente difícil que los guardianes fueran atacados simultáneamente o en colusión.


En el caso de que muera o quede incapacitado permanentemente, sería un protocolo estándar socialmente acordado que los tutores puedan anunciarse públicamente, para que en ese caso puedan encontrarse y recuperar sus fondos.

Las billeteras de recuperación social no son una traición, sino una expresión de "valores criptográficos"

Una respuesta común a las sugerencias de usar cualquier forma de multigrado, recuperación social o de otro tipo, es la idea de que esta solución se remonta a "confiar en las personas", y por lo tanto es una traición a los valores de la industria de las cadenas de bloques y las criptomonedas.


Si bien entiendo por qué uno puede pensar esto a primera vista, diría que esta crítica se deriva de un malentendido fundamental de lo que debería ser la criptografía.


Para mí, el objetivo de las criptomonedas nunca fue eliminar la necesidad de toda confianza.


Más bien, el objetivo de las criptomonedas es brindarles a las personas acceso a bloques de construcción criptográficos y económicos que les den más opciones en quién confiar y, además, permitirles construir formas de confianza más restringidas : darle a alguien el poder de hacer algunas cosas en su nombre. sin darles el poder de hacerlo todo.


Visto de esta manera, multisig y recuperación social son una expresión perfecta de este principio : cada participante tiene cierta influencia sobre la capacidad de aceptar o rechazar transacciones, pero nadie puede mover fondos unilateralmente.


Esta lógica más compleja permite una configuración mucho más segura de lo que sería posible si tuviera que haber una persona o clave que controlara unilateralmente los fondos.


Esta idea fundamental, que los aportes humanos deben manejarse con cuidado pero no descartarse por completo, es poderosa porque funciona bien con las fortalezas y debilidades del cerebro humano.


El cerebro humano es bastante pobre para recordar contraseñas y rastrear billeteras de papel, pero es un ASIC para rastrear las relaciones con otras personas. Este efecto es aún más fuerte para los usuarios menos técnicos: pueden tener más dificultades con las billeteras y las contraseñas, pero son igualmente expertos en tareas sociales como "elegir a 7 personas que no se unan a mí".


Si podemos extraer al menos algo de información de las entradas humanas en un mecanismo, sin que esas entradas se conviertan en un vector de ataque y explotación, entonces deberíamos descubrir cómo.


Y la recuperación social es muy robusta: para que una billetera con 7 guardianes se vea comprometida, 4 de los 7 guardianes tendrían que descubrirse entre sí de alguna manera y acordar robar los fondos, sin que ninguno de ellos avise al propietario: sin duda, un desafío mucho más difícil. que atacar una billetera protegida puramente por una sola persona .

¿Cómo puede Social Recovery proteger contra el robo?

La recuperación social, como se explicó anteriormente, se ocupa del riesgo de que pierda su billetera. Pero aún existe el riesgo de que te roben la clave de firma: alguien piratea tu computadora, se acerca sigilosamente detrás de ti mientras ya estás conectado y te golpea en la cabeza, o incluso usa algún problema técnico en la interfaz de usuario para engañarte para que firmes. una transacción que no tenía la intención de firmar.


Podemos ampliar la recuperación social para hacer frente a estos problemas mediante la adición de una bóveda . Cada billetera de recuperación social puede venir con una bóveda generada automáticamente. Los activos se pueden mover a la bóveda simplemente enviándolos a la dirección de la bóveda, pero se pueden sacar de la bóveda solo con una demora de 1 semana.


Durante ese retraso, la clave de firma (o, por extensión, los tutores) puede cancelar la transacción. Si lo desea, la bóveda también podría programarse para que algunas operaciones financieras limitadas (por ejemplo, intercambios Uniswap entre algunos tokens incluidos en la lista blanca) se puedan realizar sin demora.

Monederos de recuperación social existentes

Actualmente, las dos billeteras principales que han implementado la recuperación social son la billetera Argent y la billetera Loopring :

La billetera Argent es la primera "billetera de contrato inteligente" importante, y sigue siendo la más popular, actualmente en uso, y la recuperación social es uno de sus principales puntos de venta. La billetera Argent incluye una interfaz mediante la cual se pueden agregar y eliminar guardianes:


Para protegerse contra el robo, la billetera tiene un límite diario: las transacciones hasta ese monto son instantáneas, pero las transacciones superiores a ese monto requieren la aprobación de los tutores para finalizar el retiro.


La billetera Loopring es más conocida por haber sido creada por los desarrolladores del protocolo Loopring (y, por supuesto, por incluir soporte para este), un paquete ZK para pagos e intercambio descentralizado. Pero la billetera Loopring también tiene una función de recuperación social, que funciona de manera muy similar a la de Argent.


En ambos casos, las compañías de carteras proporcionan un tutor de forma gratuita, que se basa en un código de confirmación enviado por teléfono móvil para autenticarlo. Para los otros guardianes, puede agregar otros usuarios de la misma billetera o cualquier usuario de Ethereum proporcionando su dirección de Ethereum.


La experiencia del usuario en ambos casos es sorprendentemente fluida. Había dos desafíos principales. Primero, la fluidez en ambos casos se basa en un "retransmisor" central administrado por el fabricante de la billetera que vuelve a publicar los mensajes firmados como transacciones. En segundo lugar, las tarifas son altas. Afortunadamente, ambos problemas son superables.

La migración a la capa 2 (rollups) puede resolver los desafíos restantes

Como se mencionó anteriormente, existen dos desafíos clave: (i) la dependencia de los repetidores para resolver las transacciones y (ii) las altas tarifas de transacción . El primer desafío, la dependencia de repetidores, es un problema cada vez más común en las aplicaciones de Ethereum.


El problema surge porque hay dos tipos de cuentas en Ethereum: cuentas de propiedad externa (EOA) , que son cuentas controladas por una única clave privada, y contratos . En Ethereum, existe una regla de que cada transacción debe comenzar desde un EOA; la intención original era que los EOA representaran "usuarios" y los contratos representaran "aplicaciones", y una aplicación solo puede ejecutarse si un usuario habla con la aplicación.


Si queremos billeteras con políticas más complejas, como multigrado y recuperación social, necesitamos usar contratos para representar a los usuarios. Pero esto plantea un desafío: si sus fondos están en un contrato, debe tener alguna otra cuenta que tenga ETH que pueda pagar para iniciar cada transacción, y necesita una gran cantidad de ETH en caso de que las tarifas de transacción sean realmente altas.


Argent y Loopring resuelven este problema ejecutando personalmente un "retransmisor". El repetidor escucha los "mensajes" firmados digitalmente fuera de la cadena enviados por los usuarios, envuelve estos mensajes en una transacción y los publica en la cadena.


Pero a la larga, esta es una mala solución; añade un punto extra de centralización. Si el repetidor está inactivo y un usuario realmente necesita enviar una transacción, siempre puede enviarla desde su propio EOA, pero, sin embargo, se presenta un nuevo equilibrio entre la centralización y la inconveniencia.


Hay esfuerzos para resolver este problema y obtener comodidad sin centralización; las dos categorías principales giran en torno a la creación de una red de retransmisión descentralizada generalizada o la modificación del propio protocolo Ethereum para permitir que las transacciones comiencen a partir de contratos . Pero ninguna de estas soluciones resuelve las tarifas de transacción y, de hecho, empeoran el problema debido a la mayor complejidad inherente de los contratos inteligentes.


Afortunadamente, podemos resolver ambos problemas al mismo tiempo, mirando hacia una tercera solución: mover el ecosistema a protocolos de capa 2 , como resúmenes optimistas y resúmenes ZK.


Los rollups Optimista y ZK se pueden diseñar con abstracción de cuenta incorporada, evitando cualquier necesidad de repetidores. Los desarrolladores de billeteras existentes ya están buscando paquetes acumulativos, pero en última instancia, migrar a paquetes acumulativos en masa es un desafío para todo el ecosistema.


Una migración masiva de todo el ecosistema a acumulaciones es una oportunidad tan buena como cualquier otra para revertir los errores anteriores del ecosistema Ethereum y otorgar a las billeteras de contratos inteligentes y multisig un papel mucho más central para ayudar a asegurar los fondos de los usuarios.


Pero esto requiere un reconocimiento más amplio de que la seguridad de la billetera es un desafío, y que no hemos ido tan lejos en tratar de enfrentar y desafiar como deberíamos.


Multisig y la recuperación social no tienen por qué ser el final de la historia; bien puede haber diseños que funcionen aún mejor. Pero la simple reforma de pasar a los rollups y asegurarse de que estos rollups traten a las billeteras de contratos inteligentes como ciudadanos de primera clase es un paso importante para que eso suceda.


También publicado aquí.