-
Alice firma parcialmente una transacción y cede a Bob la ejecución de la misma.
-
La técnica no requiere actualizaciones o bifurcaciones en el protocolo Bitcoin.
Mientras Bitcoin sigue aumentando de precio, crece también su poder de procesamiento y el tamaño de su red de nodos, al igual que sus soluciones de segunda capa como Lightning, los desarrolladores siguen investigando sobre nuevas formas de utilizar esta tecnología.
En el boletín Bitcoin Optech Newsletter #141, publicado el pasado 24 de marzo de 2021, el desarrollador de Bitcoin, Jeremy Rubin, propuso una técnica para que un usuario pueda delegar a otro la realización de una transacción en la red principal o primera capa de Bitcoin, sin tener que actualizar el protocolo para que esto sea posible.
En el boletín se resume el planteamiento de Jeremy Rubin, el cual a su vez proviene de la lista de correos de desarrolladores de Bitcoin que conduce la Fundación Linux, en un mensaje enviado el 23 de marzo.
La explicación consiste en un esquema donde Alice, con una salida o User Transaction Output (UTXO) A, quiere delegar a Bob la realización de una transacción con esta salida.
Para esto, Alice crea una transacción parcialmente firmada con su salida A (UTXO_A) y una salida de Bob (UTXO_B). El comando a utilizar es la firma de hash SIGHASH_NONE, lo que valida la transacción sin gastar las salidas. Ante esto, Bob estaría habilitado para utilizar una firma SIGHASH_ALL, y firmar tanto la salida de Alice como la suya (UTXO_B), tomando potestad para gastar ambas.
Esto le da a Bob el control unilateral sobre las salidas (outputs, UTXO), utilizando la firma SIGHASH_ALL para comprometerse con esos outputs y prevenir que cualquiera pueda modificar la transacción después de crearse. Con este truco de utilizar dos entradas firmadas bajo el SIGHASH_NONE, Alice delega a Bob la habilidad de firmar sus UTXO.
Bitcoin Optech Newsletter.
En la publicación se comenta que otras implementaciones como OP_CHECKTEMPLATEVERIFY (OP_CTV), OP_CHECKSIGFROMSTRACK (OP_CSFS) y graftroot, también permiten la delegación en Bitcoin.
Pero a diferencia de la técnica propuesta, en esta oportunidad (SIGHASH_NONE, SIGHASH_ALL), estos desarrollos requieren la activación de soluciones de escalabilidad como Taproot y Schnorr, aún en discusión. Asimismo, esta propuesta fue hecha para fines conceptuales o experimentales.
En respuesta al correo de Jeremy Rubin, el desarrollador identificado con el pseudónimo ZmnSCPxj aseguró que podrían existir otras técnicas donde Alice entrega a Bob su llave privada para firmar una transacción conjuntamente.
Sin embargo, este método que parece ser más simple, estaría limitado a otras posibilidades más complejas, que se pueden configurar utilizando comandos o scripts del software de Bitcoin.
La posibilidad de programar las condiciones bajo las que se realiza una transacción está siendo aprovechada por otros proyectos, como reportamos en CriptoNoticias, con los miniscripts, que son comandos más fácilmente legibles y ejecutables por todos los participantes.