En una charla reciente, Pieter Wuille habló sobre acelerar la verificación cuando se utilizan firmas Schnorr y varios algoritmos para verificar múltiples firmas.
¿Sería realmente posible verificar un solo bloque agregando las claves y firmas de todas las transacciones? (En teoría, incluso más transacciones en varios bloques)
Supongo que esto implica que el antiguo esquema ECDSA ya no se usaría. Si fuéramos compatibles con versiones anteriores, probablemente solo podríamos hacer esto para transacciones que usaran firmas Schorr, mientras que las otras tendrían que verificarse una por una.
(Dejando de lado la política de cambios drásticos de protocolo) ¿No podríamos incluso ahorrar más espacio si adoptamos el encabezado del bloque para incluir una firma Schnorre agregada para el bloque y dejar de lado todas las firmas Schnorr de las transacciones individuales dentro de ese bloque?
¿Yo me perdí algo? La charla no dio muchos detalles pero solo mencionó la idea.
Sí, una validación por bloque, pero no una firma por bloque.
Para aclarar la confusión, hay 3 tecnologías distintas involucradas aquí:
Las firmas de Schnorr (y cualquier otro esquema de firma conocido basado en logaritmos discretos) admiten (2) y (3), pero no (1).
La falta de (1) significa que no puede haber una sola firma para un bloque completo (*), ya que el minero que construye el bloque es un tercero que no participa en la creación de la firma.
Debido a (2), lo mejor que podemos esperar (siempre que estemos restringidos a firmas basadas en DL) es una firma por transacción. Incluso eso requiere la agregación de entradas cruzadas, que tiene complejidades más allá de la implementación de las firmas Schnorr en cadena (consulte esta publicación , por ejemplo).
Sin embargo, debido a (3) es correcto que puede haber una sola validación por bloque, pero no una sola firma por bloque. De hecho, la aceleración que es posible a través de la validación por lotes se vuelve no trivial. Cada una de las 4 líneas es una técnica de optimización que se implementa actualmente en libsecp256k1, que elegirá la mejor según el tamaño del problema y las limitaciones de memoria.
(*) Existe una forma de "media agregación" no interactiva para firmas basadas en DL, donde N firmas se pueden combinar de forma no interactiva en una única firma de tamaño (1+N)/2 firmas originales. Esto podría usarse para bloques, aunque las ganancias no son tan grandes y existen complejidades en torno a la agregación de todo el bloque que lo hacen menos interesante.
René Pickhardt
pieter wuille
pieter wuille
Martín Schwarz
pieter wuille
Martín Schwarz
Marcos Lundeberg