Cuentas de firma múltiple

junio 27, 2020 VICTOR HUGO LAZARTE 0 Comments



Lisk tiene la misión de permitirle crear aplicaciones de blockchain descentralizadas, eficientes y transparentes

En este artículo damos una visión general de las principales mejoras relacionadas con las cuentas de múltiples firmas introducidas en la fase de Economía de la Red de la Hoja de Ruta del Protocolo Lisk . Todos estos cambios se especifican formalmente en la Propuesta de Mejora de Lisk 0017 (LIP 0017) que se ha investigado y revisado a fondo. 
Comenzaremos con la motivación para admitir cuentas con múltiples firmas y una descripción general rápida de las posibilidades actuales en la red Lisk. A continuación, se describen las mejoras que trae LIP 0017, las nuevas características que estarán disponibles después de la implementación del LIP y cómo configurar una cuenta de múltiples firmas. Para concluir, presentaremos diferentes casos de uso en los que las cuentas con múltiples firmas son útiles.

Cuentas y firmas

El concepto de cuentas de múltiples firmas es común en la banca tradicional o en otros proyectos de blockchain como Bitcoin. Si tiene una cuenta de múltiples firmas en su banco local, es posible que deba ir allí en persona con los otros firmantes y juntos realizar una transacción bancaria. 
En una blockchain como Lisk, las cuentas están vinculadas a claves públicas, y cuando se firma una transacción, la red puede verificar la correspondencia entre la firma digital y la clave pública. Si la firma es válida, se procesa la transacción; por otro lado, si no es válido, la transacción se rechaza. Las cuentas de firma múltiple son muy similares, excepto que están vinculadas a múltiples claves públicasLas transacciones que gastan tokens de una cuenta de múltiples firmas deben firmarse con firmas correspondientes al conjunto de claves públicas predefinidas.
Las cuentas de múltiples firmas generalmente se describen como M-out-of-N. Esto significa que N claves públicas han sido designadas como firmantes potenciales, sin embargo, cualquier grupo de M de ellas es suficiente para firmar una transacción.




A menudo también existe la opción de hacer que algunas de las firmas del conjunto de claves públicas sean obligatorias. Por ejemplo, en la configuración a continuación, la firma de A siempre se requiere con la firma de B o C. 




Cuentas corrientes de firma múltiple en Lisk

La cadena de bloques de Lisk actualmente ofrece dos funcionalidades que modifican el conjunto de firmas requeridas para que una transacción sea válida:
  •  El registro de la segunda firma se usa para agregar una segunda clave obligatoria a una cuenta Lisk.

  •  El registro de múltiples firmas se utiliza para agregar claves opcionales a una cuenta Lisk.

En ambas opciones, siempre se requiere una firma correspondiente a la clave pública original. Además, agregar más de una clave pública obligatoria solo es posible al requerir siempre todas las claves públicas registradas. El objetivo principal de LIP 0017 es eliminar esas restricciones y hacer que el registro de firmas múltiples sea más flexible.

Nuevas cuentas de firma múltiple

Con LIP 0017, se mejora la funcionalidad de múltiples firmas. El nuevo registro de múltiples firmas es más flexible, ya que permitirá cualquier cantidad de claves obligatorias combinadas con cualquier cantidad de claves opcionales.
Las nuevas cuentas de firma múltiple se caracterizarán por las siguientes tres propiedades:
  •  Las claves obligatorias: las transacciones salientes requerirán firmas para cada clave pública en este conjunto.

  •  Las claves opcionales: las transacciones salientes requerirán un número determinado de firmas para claves públicas en este conjunto.

  •  El número de firmas requeridas: este número es el número total de firmas requeridas para las transacciones salientes.

Las funcionalidades actuales de las cuentas de segunda firma y firma múltiple aún se pueden reproducir fácilmente:
  •  Cuentas de segunda firma actuales: Corresponden a las cuentas nuevas de múltiples firmas 2 de 2 con dos claves públicas obligatorias, la clave pública original y la segunda clave pública.

  •  Cuenta actual de firma múltiple: corresponden a nuevas cuentas de firma múltiple con una clave obligatoria y las otras claves como opcionales. 

  •  Cuentas actuales de firma múltiple y segunda firma: como una combinación de los dos casos anteriores, estas cuentas corresponden a cuentas nuevas de firma múltiple con dos claves públicas obligatorias y otras claves como opcionales.

Después de estos puntos, es posible registrar su cuenta con la nueva firma múltiple para reproducir cualquiera de los comportamientos actuales (y más). El registro actual de la segunda firma ya no es útil y se elimina. Todas las cuentas que están registradas actualmente con una segunda firma o como una cuenta de múltiples firmas, se convertirán automáticamente a nuevas cuentas de múltiples firmas como se describe anteriormente sin ningún cambio en sus reglas de acceso.

Configuración de una cuenta de firma múltiple en Lisk

Cualquier cuenta se puede registrar como una cuenta de múltiples firmas. El único requisito es enviar una transacción de registro de firma múltiple dedicada desde la cuenta para transformar la cuenta en una cuenta de firma múltiple. La transacción contiene toda la información relacionada con las nuevas claves públicas.




El activo de la transacción de registro de firmas múltiples contiene todas las claves públicas necesarias para configurar la cuenta de firmas múltiples.
La transacción de registro de firmas múltiples también debe contener una firma para cada clave en el registro de firmas múltiples (ya sea obligatorio u opcional). Esto evita la situación de ser incluido en una cuenta de múltiples firmas sin su consentimiento.

Delegar cuenta con firma múltiple

Como habrá notado, la nueva firma múltiple no requiere que la clave pública original sea parte de las claves obligatorias. Esto puede ser muy conveniente ya que le permite crear nuevas cuentas, registrarlas como una cuenta de múltiples firmas con las claves públicas de los participantes y luego olvidar las claves utilizadas originalmente para crear las cuentas. Por lo tanto, solo necesita recordar un par de claves, independientemente de la cantidad de cuentas de múltiples firmas de las que pueda formar parte.
Sin embargo, si la cuenta de firmas múltiples también se registra como delegado, se debe conservar el par de claves original. El par de claves utilizado para firmar encabezados de bloque es siempre la clave original, y no se modifica mediante el registro de múltiples firmas. El registro de cuentas de delegado con una firma múltiple es útil para proteger los fondos en caso de perder la clave de falsificación. Sin embargo, es prudente tener en cuenta que los delegados que hayan registrado una firma múltiple aún deben tener cuidado con la clave de falsificación. Un atacante podría usarlo para crear bloques contradictorios, lo que podría resultar en que el delegado sea castigado por mal comportamiento .

Casos de uso


Seguridad adicional

Tener una cuenta de múltiples firmas 2 de 3 puede ser más seguro que una cuenta normal. La configuración podría ser como se describe aquí. Una frase de contraseña se almacena (encriptada) en su teléfono inteligente; una frase de contraseña se almacena (también encriptada) en su computadora portátil y la última frase de contraseña de respaldo se almacena físicamente en una caja fuerte. Esto garantiza que si pierde su teléfono, o en caso de que su computadora falle o sea pirateada, puede recuperar y transferir sus tokens a una nueva cuenta utilizando la frase de contraseña de respaldo. Además, si el teléfono es robado y el ladrón (o el hacker de la computadora portátil) logra descifrar la frase de contraseña robada, solo tienen una clave y no pueden robar los tokens en la cuenta.

Cuenta compartida

Los socios pueden compartir una cuenta 1 de 2 sin clave obligatoria. Cada uno tiene una clave que les permite gastar los tokens en la cuenta. De esta manera, queda claro quién ha firmado qué transacción.

Cuentas comunitarias

Un club social podría utilizar una cuenta con 1 firma obligatoria y 1 fuera de N opcional. La cuenta requeriría la firma del contador y otro miembro. De esta manera, el contador aprueba cada transacción, lo que a su vez les permite controlar todos los gastos del club. Además, cada transacción también está firmada por un miembro del club, que prohíbe al contador robar cualquiera de los fondos.

Delegado operado por múltiples usuarios

Asegurar suficientes votos propios para ser un delegado activo podría ser más fácil de lograr para un grupo que para un solo individuo. Por ejemplo, tres personas podrían participar en una cuenta de múltiples firmas con tres claves obligatorias y registrar esta cuenta como delegado. Ahora el nodo de forja puede ser operado de forma segura por cualquiera de los participantes sin riesgo de perder fondos.
Los usos para las cuentas de múltiples firmas son numerosos y los ejemplos anteriores son solo una pequeña selección de las posibilidades potenciales. Para obtener más ejemplos, la mayoría de los casos de uso de Bitcoin se pueden traducir a Lisk con esta nueva mejora.

Una nota técnica sobre la transmisión de transacciones desde cuentas de múltiples firmas

La implementación actual de la red punto a punto acepta y difunde transacciones que no tienen todas las firmas requeridas si se envían desde una cuenta de múltiples firmas. Esto permite a los usuarios compartir sus transacciones a través de la red punto a punto de Lisk antes de que estén completamente firmadas.
Sin embargo, esto tiene un impacto significativo en el rendimiento de la red Lisk y permite que la red sea spam por transacciones no firmadas que se almacenan y transmiten. LIP 0017 elimina este problema al requerir que todas las transacciones estén firmadas válidamente para ser aceptadas por la red. Para las transacciones de cuentas de múltiples firmas, esto significa que los usuarios deben coordinar y reunir las firmas antes de enviarlas a la red.
Si los pares de claves están en manos de un solo usuario, o en el caso de una firma múltiple de 1 de N, la billetera Lisk realizará la recopilación de la firma directamente. De lo contrario, la transacción debe almacenarse, local o remotamente, hasta que se alcance el número correcto de firmas y la transacción esté lista para ser emitida.
Fuente: blog de lisk.io

Lisk tiene la misión de permitirle crear aplicaciones de blockchain descentralizadas, eficientes y transparentes En este artícu...