Cómo los bloques de extensión de bitcoin son compatibles con versiones anteriores, y cómo no son

Microsoft Azure OpenDev—June 2017 (Julio 2019).

Anonim

A través de un toque en los medios, Purse y su implementación alternativa local de Bitcoin, Bcoin presentaron recientemente su propuesta de escalado, llamada "To the Moon". "Donde Bitcoin XT, Bitcoin Classic y Bitcoin Unlimited intentan aumentar el límite de tamaño de bloque de Bitcoin con un hard fork, y los desarrolladores de Bitcoin Core prefieren un soft tenedor Segregated Witness (SegWit), el CEO de Purse Andrew Lee anunció un tercer enfoque: bloques de extensión.

Los bloques de extensión en realidad fueron propuestos inicialmente por el desarrollador de Bitcoin Core Johnson Lau en 2013 (como "bloques auxiliares"), y nuevamente a principios de este año. La solución generalmente comparte muchas de las virtudes de las horquillas duras: los bloques de extensión permiten casi cualquier cambio de protocolo. Pero comparten un beneficio significativo con las teas suaves: los bloques de extensión son compatibles con versiones anteriores.

Bueno, más o menos …

Tenedores suaves

Las telas blandas son cambios de protocolo que agregan nuevas reglas o ajustan las existentes. Los "nodos antiguos", como los llamaremos ahora, considerarán válida una cadena de bifurcación suave porque no infringe ninguna de las "reglas anteriores". "Esto hace que las horquillas blandas sean compatibles con versiones anteriores: permiten que los nodos antiguos coexistan en la misma red con" nuevos nodos "que hacen cumplir la horquilla.

Si bien los tenedores suaves solo pueden agregar o ajustar reglas, se pueden usar inteligentemente para ampliar las capacidades de Bitcoin. Para hacer esto, las bifurcaciones blandas generalmente utilizan direcciones especiales de Bitcoin conocidas como "anycanspend". "(En realidad son" salidas ", no direcciones, pero por razones de simplicidad, ignórelas por el momento).

Si estas direcciones dependen de cualquier bitcoins, significa que cualquiera puede gastarlas; no se requiere firma criptográfica ni nada más … o eso parece a los nodos antiguos.

Pero eso no es lo que los nuevos nodos, haciendo cumplir las nuevas reglas, ven. Las nuevas reglas prescriben que las bitcoins en estas direcciones de exportación de cualquier usuario solo se pueden gastar en condiciones específicas, definidas por el soft tenedor. Estas nuevas reglas pueden, por ejemplo, prescribir que debe pasar una cierta cantidad de tiempo (CLTV) o que se debe incluir una firma en una nueva parte de un bloque de Bitcoin (SegWit).

Bloques de extensión

Los bloques de extensión se parecen a las bifurcaciones blandas, pero literalmente llevan el concepto a otro nivel.

Un bloque de extensión en sí mismo se parece mucho a un bloque de Bitcoin normal, que llamaremos un "bloque de base". "Al igual que un bloque base, un bloque de extensión generalmente incluye un montón de transacciones.

Pero hay una diferencia. Un bloque base está vinculado criptográficamente al bloque base anterior y al siguiente bloque base, encadenando todos los bloques base cronológicamente para formar la cadena de bloques de Bitcoin. Un bloque de extensión, por otro lado, vincula solo a un bloque base correspondiente. La extensión bloquea los bloques base "peg along".

Similar a la mayoría de las horquillas blandas, los bloques de extensión utilizan cualquier dirección dependiente.Pero ahora, estas direcciones dependen de cualquier cantidad que actúen como puntos de entrada y salida hacia y desde los bloques de extensión.

Cuando se envía una transacción desde un bloque base a un bloque de extensión, se engaña a un nodo antiguo. Desde la perspectiva del antiguo nodo, las monedas se envían a una dirección típica de búsqueda de cualquier número en el bloque base. Las monedas nunca abandonan el bloque de base en lo que respecta al nodo anterior, y de hecho, el nodo anterior ni siquiera ve el bloque de extensión.

Pero desde la perspectiva de un nuevo nodo, los bitcoins realmente se envían a una nueva dirección en el bloque de extensión: una "dirección de extensión". "Esta dirección de extensión se comporta más o menos como una dirección de Bitcoin normal.

Curiosamente, estos bitcoins pueden incluso comenzar a circular desde la dirección de extensión a la dirección de extensión, desde un bloque de extensión al siguiente. Como tal, los nuevos nodos ven las monedas moviéndose y cambiando la propiedad. Al mismo tiempo, los nodos antiguos no ven nada y piensan que los bitcoins aún están bloqueados en la dirección original de cualquier número de negocios.

Un nuevo nodo también puede enviar los bitcoins desde su dirección de extensión a una dirección normal en el bloque base. Esto se hace mediante el engaño de nodos viejos nuevamente: desde la perspectiva del nodo anterior, las monedas finalmente se mueven desde la dirección anycanspend. Solo un nuevo nodo sabe de dónde provienen las monedas.

Una vez que las bitcoins están de vuelta en el bloque base y una dirección normal, los nodos antiguos y nuevos ven lo mismo.

Tal vez sea el principal beneficio de los bloques de extensión, ya que no necesitan adherirse al protocolo original de Bitcoin de ninguna manera. Esto abre una categoría completa de nuevas posibilidades. Los bloques de extensión quizás ofrezcan más programabilidad como Ethereum o Ethereum Classic, o más privacidad como Monero, Zcash o Mimblewimble.

La propuesta de Bcoin es modesta, sin embargo: los bloques de extensión "To the Moon" son mayoritariamente más grandes que los bloques normales (por una cantidad hasta ahora desconocida), por lo que pueden manejar más transacciones. También incluyen Segregated Witness y algunos beneficios adicionales específicamente diseñados para admitir la red de rayos en la parte superior de los bloques de extensión.

Complejidad

Si bien los bloques de extensión en general, y To the Moon en particular, pueden funcionar técnicamente, presentan algunos inconvenientes.

En el corazón de estos inconvenientes, To the Moon es más complejo desde el punto de vista técnico que otras soluciones de escalado propuestas hasta ahora, incluidas todas las horquillas duras, así como una bifurcación Segregated Witness. Esto también los hace más complicados de implementar.

Y desde la perspectiva del usuario, To the Moon dejaría nodos viejos en la oscuridad más de lo que lo hacen la mayoría de los tenedores blandos. Mientras que los nodos antiguos no saben cómo se pueden gastar las monedas en las direcciones bifurcadas con bifurcación suave, con bloques de extensión, los nodos antiguos ni siquiera saben dónde están las monedas. Esto significa que los nodos antiguos no pueden rastrear el historial de una moneda y que, en algunos casos, temporalmente ni siquiera pueden gastarla. (Este podría ser el caso si se lleva a cabo una reorganización de cadena de bloques, lo que puede cambiar estéticamente cómo se ve una transacción de un bloque de extensión a un nodo antiguo).)

Como tal, no todos aman a la luna. Johnson Lau, el proponente original de los bloques de extensión, argumenta que To the Moon "no cumplió con el requisito muy importante de un softfork: compatibilidad con versiones anteriores. "En su lugar, todavía considera los bloques de extensión" más como un tema académico que como algo realmente listo para el uso de producción. "De forma similar, el desarrollador de Bitcoin Core y mantenedor de Bitcoin Knots, Luke Dashjr, advierte que los bloques de extensión" son un riesgo de crear dos clases de 'nodos completos', donde los nodos no actualizados se quedan inseguros como pseudo-SPV (ni SPV real) nodos. "Y el desarrollador de Bitcoin Core, Matt Corallo, descarta la idea de que los bloques de extensión se consideren opt-in, en su lugar," toda la red se ve obligada a confiar en el bloque de extensión ", un" precedente bastante terrible ". "

Para obtener más información sobre To the Moon, consulte la lista de correo de desarrollo de Bitcoin.