¿Por qué se eliminó el código Schnorr de Bitcoin Core?

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?

Respuestas (1)

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.

¿Hay alguna visibilidad en el desarrollo de Bitcoin Core Schnorr o se hace de forma privada? Dado que Schnorr es una respuesta a la escalabilidad de Bitcoin, es extraño ver que no hay ningún código comprometido en el núcleo.
Las firmas de Schnorr (específicamente la agregación de firmas de Schnorr) actualmente son completamente experimentales y algunos colaboradores de Bitcoin Core están trabajando en ellas en privado. Actualmente no es algo en lo que Core esté trabajando en su conjunto (si es que tal cosa pudiera suceder). La implementación de la agregación de firmas de Schnorr también requiere una bifurcación, que también requeriría un BIP y muchas otras cosas. Ninguno de ellos existe todavía, ya que los detalles criptográficos de las firmas de Schnorr ni siquiera están completos. Thins que son WIP nunca se comprometerán con Core hasta que estén completos.
"y está siendo trabajado en privado por algunos colaboradores de Bitcoin Core"... Se está trabajando en público, en otras solicitudes de extracción en el repositorio. (También hay trabajo privado, por ejemplo, nuestras publicaciones académicas sobre él, pero el desarrollo del protocolo es público). Todavía prefiero trabajar en público.