Estaba buscando la implementación de Schnorr en Bitcoin Core y me sorprendió ver que se eliminó en noviembre de 2016 (confirmación e06e878fd7dcc99825025fa99aedb86bc7d5c29f
). ¿Por qué se eliminó por completo el código fuente de Bitcoin Core? ¿Se movió a algún otro repositorio de desarrollo?
La implementación de Schnorr nunca estuvo en Bitcoin Core. Más bien, está en la biblioteca libsecp256k1 que es un subárbol en Bitcoin Core. La confirmación a la que hace referencia es en realidad una confirmación en esa biblioteca que aparece en el historial de confirmación de Core porque el subárbol en Core se actualiza periódicamente con el código fuente ascendente libsecp256k1.
El motivo de la eliminación se explica en la solicitud de extracción que lo eliminó :
Este módulo implementó un esquema de firma de Schnorr personalizado e ingenuo, aunque desde entonces se han descubierto varias fallas con su enfoque (falta de compromiso con las claves públicas, capacidad de terceros para adaptar firmas a claves relacionadas y una API de firma múltiple que es vulnerable a ataques de cancelación, reiniciar los ataques que filtran una clave privada a los cosignatarios).
He estado trabajando en un mejor esquema, pero no creo que esto deba ser ascendente hasta que haya sido investigado de manera más exhaustiva. La gente asumió que estar incluido en el repositorio era una señal de que era definitivo, por lo que lo eliminaré para evitar confusiones.
Janus Troelsen