-
Los covenants podrían ayudar a aumentar la seguridad de los bitcoins de los usuarios, afirma.
-
Entre los diferentes tipos de covenants, Lopp remarca el potencial de los vaults.
Jameson Lopp, desarrollador de software vinculado a Bitcoin, afirma que el protocolo debería incluir covenants. Esta función (cuya traducción al español sería «convenios») ofrece la posibilidad de establecer condiciones para la recepción de una transacción en la red en el futuro.
Hasta ahora, el script de Bitcoin solo ofrece la alternativa de colocar condiciones para una transacción de salida no gastada (UTXO). «Cuando creas una dirección de Bitcoin para recibir fondos, esa dirección es en realidad un hash (transformado) del script Bitcoin que define lo que se necesita para desbloquear los fondos depositados y gastarlos», explica Lopp en un artículo de su autoría.
En cambio, escribe Lopp, «no hay forma de restringir ninguno de los atributos de las salidas de una transacción en Bitcoin (donde se depositan los fondos gastados)».
Introducir los covenants en el código de Bitcoin podría ser una buena alternativa, según Lopp, para facilitar a los usuarios la protección de sus fondos cuando las llaves privadas de sus wallets están comprometidas.
Algunas construcciones de covenants incluyen bloqueos de tiempo (timelocks) absolutos para imponer retrasos que ralenticen a los atacantes y te ofrezcan ‘puertas de escape’ para salir de escenarios en los que tus claves se hayan visto comprometidas.
Jameson Lopp, desarrollador de software.
Jameson Lopp explica que la implementación de covenants que más le interesa son los vaults (bóvedas). Como se explicó en CriptoNoticias, se trata de un mecanismo de almacenamiento de bitcoins (BTC) que, a diferencia de unahardware wallet, posee un mecanismo de protección de fondos en caso de sufrir una violación a su seguridad, el cual se basa en retiros fraccionados determinados por el dueño del vault. Es decir, el atacante no podría llevarse todos los bitcoins de una sola vez, y eso daría posibilidad de reacción al propietario legítimo de esos fondos.
«Creo que el valor que ofrecen es bastante sencillo y es aplicable a todos y cada uno de los usuarios de bitcoin de autocustodia, independientemente del tipo de wallet que utilicen», escribió Lopp acerca de este tipo de covenants.
Riesgos de implementar covenants en Bitcoin
Sin embargo, Lopp reconoce que los covenants presentan cierta complejidad. Por ejemplo, según el tipo de covenant del que se trate, pueden demandar «planificar y firmar todas las posibles transacciones futuras de antemano», «generar llaves privadas efímeras para las transacciones prefirmadas (…) y luego eliminarlas para que un atacante no pueda usarlas», o incluso «repetir el proceso ante cada nuevo depósito (para crear una nueva UTXO con las condiciones a las que se someterá el covenant)».
Por otro lado, explicó que los covenants también implican riesgos, dado que «podrían utilizarse para ocultar restricciones a los destinatarios», lo que pondría en riesgo su dinero incluso después de haberlo recibido. Para evitarlo, Lopp dice que «abogaría por que los covenants exigieran que los usuarios se comprometieran a cumplir sus condiciones» para evitar así el robo abrupto de fondos conocido como «rug pull».
Covenants, una discusión de larga data en Bitcoin
Los covenants constituyen un tipo de solución que lleva «9 años y medio en discusión» en los foros de Bitcoin, explica el desarrollador. Lopp destacó que, si bien «Bitcoin ha funcionado bien durante 14 años sin esa funcionalidad», no es que no haya intentado sumarlas.
Existen dos categorías de covenants según su modo de operación, explica el especialista. Por un lado, los generalizados, «más flexibles y funcionales, pero con más complejidad y desventajas»; y los restrictivos, que «solo añaden un conjunto específico de funciones y tienden a ser más fáciles de razonar».
Asimismo, los covenants se pueden clasificar en «recursivos» y «no recursivos», según se pueden utilizar una sola vez o de forma indefinida; y también se pueden separar en caso de que su ejecución se base en opcode o en signatures (firmas).
Esta herramienta sí existe en otras redes, como por ejemplo en Ethereum. En uno de sus artículos de su blog, el cocreador de la red, Vitalik Buterin, opina que la razón por la que no se añadieron los covenants en Bitcoin «no es que los desarrolladores ven su valor pero consideran intolerable añadir apenas un poco más de complejidad en el protocolo», sino que «están preocupados por los riesgos de la complejidad sistémica» que su adición podría suponer.