-
Un checkpoint es un mecanismo que busca garantizar un punto común para reconocer la blockchain.
-
Buscan proteger la cadena de bloques contra ataques de reorganización de bloque o del 51%.
Para Bitcoin y el resto de las criptomonedas, la seguridad es un punto crítico, fundamental. Estas redes están diseñadas para manejar millones de dólares de inversionistas y usuarios alrededor del mundo, por lo que son necesarias medidas que permitan asegurar su buen funcionamiento. Entre este tipo de medidas se cuenta la creación de checkpoints o puntos de control.
En este artículo especial de CriptoNoticias te contaremos qué son, cómo funcionan y otros detalles sobre estos elementos que funcionan cdentro del protocolo de varias criptomonedas del ecosistema, incluido Bitcoin, en donde el propio Satoshi Nakamoto colocó ciertas líneas de código para establecer este tipo de control.
¿Qué es un checkpoint o un punto de control?
Cuando hablamos de un checkpoint o punto de control nos referimos a una línea de código que busca proteger la cadena de bloques contra ataques de reorganización de bloques. La idea es que exista una forma en la que los miembros honestos de la red, principalmente operadores de nodos, puedan reconocer los bloques bien formados, el estado más actual de la red y la cadena con mayor prueba de trabajo.
Sea una retención de bloques, con el minado secreto de una cadena alterna a la respaldada en la blockchain más actual, o un ataque de 51%, donde una entidad posee más de la mitad del hash rate de la red, decidiendo qué bloques se incluyen a discreción, los checkpoints buscan minimizar las posibilidades de que estos ataques sean exitosos.
Esto quiere decir que todas las transacciones hasta el checkpoint serán tomadas como válidas e irreversibles. Tomar un bloque anterior al checkpoint para bifurcar la cadena será inútil: los nodos sencillamente no aceptarán la bifurcación. El registro de la blockchain queda asegurado, ya que el punto de control establece un límite para que los nodos verifiquen los bloques.
¿Cómo funcionan los checkpoints?
Los checkpoints establecen límites para que los nodos honestos tengan una referencia para reconocer la cadena de bloques correcta. Esta línea de código cumple con el resguardo del registro, haciendo que cualquier cadena que no contenga la marca sea ignorada. Generalmente se trata de una línea que especifica un bloque determinado a partir del que se deben sincronizar los nodos de la red.
Los desarrolladores seleccionan la altura de bloque (X) a partir de la que la cadena debe reconocerse. Además, los desarrolladores agregan checkpoints firmados y emitidos centralmente en el software del cliente. Esta línea de código señala que el bloque X ha sido validado por como parte de la cadena honesta, por lo que puede tomarse como referencia.
Cabe decir que con su funcionamiento, los checkpoints o puntos de control evitan que ataques de denegación de servicio hagan que los nodos sean aislados o inundados con bloques de cadenas falsas. De acuerdo con algunos desarrolladores de Bitcoin como Peter Todd, hablamos de una característica especialmente útil para la descarga inicial de blockchain.
Algunos ejemplos de checkpoints
Bitcoin
Incluso el protocolo de Bitcoin tiene checkpoints en su protocolo. A pesar de que este tipo de líneas de código han dejado de añadirse desde 2014, el cliente de referencia de Bitcoin, Bitcoin Core, cuenta con varios puntos de control más antiguos, aunque cualquier otra implementación de cliente es libre de agregar más o remover los que existen.
Vale la pena señalar que Bitcoin tiene 13 puntos de control codificados, pero no cambian el modelo de seguridad de la forma en que lo hacen los checkpoints emitidos. El último punto de control se agregó a Bitcoin Core 0.9.3 y se encuentra en el bloque 295.000, creado el 9 de abril de 2014 (…) Estos antiguos puntos de control permiten un aumento del rendimiento (omitiendo la verificación de firma) al sincronizar inicialmente la cadena de bloques histórica.
Jameson Lopp, CTO, CasaHODL
Bitcoin Cash
La bifurcación de BTC, Bitcoin Cash (BCH) también tiene checkpoints, aunque, en este caso, se trató de una medida para impedir que los partidarios de Bitcoin Satoshi Vision (BSV) pudieran manipular sus registros. El equipo decidió apostar por checkpoints cuando las hostilidades entre Bitcoin ABC (principales responsables del cliente de referencia de BCH), y los partidarios y mineros de BSV amenazaron su red.
El código fue añadido en noviembre de 2018, justo antes de que BSV se bifurcara para aumentar el tamaño de los bloques y añadiera otras modificaciones al cliente de referencia de Bitcoin ABC. Esta decisión generó gran controversia, especialmente porque los desarrolladores añadieron el código sin anunciarlo. Los checkpoints son firmados cada 10 bloques, de forma automática, por el software de los nodos.
La red enfocada en el efectivo digital, Dash, también cuenta con su propio esquema de checkpoints, aunque en el caso de este proyecto, los puntos de control son llamados ChainLocks, y funcionan en los masternodos de la red, que se operan con un stake de 1.000 DASH, lo que equivale a unos USD 92.000 si consideramos los precios actuales del mercado.
En este caso, los checkpoints consisten en votos entre los operadores de masternodos, que además funcionan con un nuevo mecanismo de quorum entre este tipo de nodos llamado Long Living Masternode Quorums (LLMQs), un nuevo sistema para el registro y bloqueo de las transacciones. La idea es que exista un voto verificable entre los masternodos de la red sobre la aprobación de los bloques que se añaden y propagan al resto de nodos. El punto de control se crea por el consenso de estos operadores. Los ChainLocks deben ser evaluados por los masternodos cada 6 bloques, aunque el tiempo en el que se deben firmar los bloques para establecer el checkpoint no se especifica. En la DIP8, donde fue propuesto, se lee «periódicamente».
Críticas contra los checkpoints
Si bien este tipo de controles reduce las posibilidades de ataques, también implican cierta confianza en la buena voluntad del equipo de desarrollo, pues como usuarios, asumimos que los puntos de control son verdaderamente válidos, a pesar de que dependen de la labor y aprobación de los programadores. Damos por sentada la buena fe de los desarrolladores al aplicar los checkpoints..
Además, este tipo de decisiones de control podría generar una disminución considerable en la incensurabilidad de las transacciones, añadiendo la posibilidad de que los desarrolladores coludan con otros usuarios de la red (especialmente mineros y operadores de nodos o masternodos) para añadir las transacciones que decidan a discreción.
En ambos casos, la crítica se centra en la reducción de la descentralización que supone la adición de este tipo de controles.
Como hemos visto, los checkpoints o puntos de control son un tema que acompaña a Bitcoin desde su etapa temprana, e incluso el propio Satoshi Nakamoto añadió varios al protocolo de referencia de Bitcoin. Su objetivo es aumentar la seguridad del registro en la cadena de bloques aunque mejorar en este ámbito también tiene un costo en cuanto a centralización.