Segregado Testigo, Parte 1: ¿Cómo un Clever Hack podría aumentar significativamente el potencial de Bitcoin

Si uno de propuestas asistentes emocionados en la reciente escalado Bitcoin taller en Hong Kong, Bitcoin Core y Blockstream, fue desarrollador Dr. . segregada Testigo de Pieter Wuille. Alabado por muchos dentro de la comunidad técnica, se espera segregada Testigo para mejorar el rendimiento de Bitcoin en un número de maneras, mientras que algunos incluso esperan que podría ser la solución de escalamiento que ayuda a traer un poco de paz a la comunidad Bitcoin.

En esta primera parte de Bitcoin revista ‘s serie de tres partes sobre segregada Testigo:. ¿Cómo funciona?

¿Cuáles son nuevamente las transacciones Bitcoin?

Para entender segregada testigo, es útil para entender lo que las transacciones de Bitcoin están en un nivel más técnico. (Siéntase libre para saltar a la última sección de este artículo si se trata de un tema familiar.)

Para empezar, es importante darse cuenta de que el protocolo de Bitcoin, en esencia, consiste en transacciones. Los nodos de la red peer-to-peer no envían entre sí bitcoin; que envían unos a otros paquetes que contienen datos de la transacción

Estas transacciones Bitcoin, en cierto modo, son en realidad conjuntos de “bloqueos”.. Más específicamente, cada transacción contiene dos componentes principales. Una media desbloquea efectivamente bitcoin que fueron encerrados en las operaciones anteriores, el uso de piezas de datos llamados entradas . Las entradas incluyen guiones , instrucciones sobre cómo desbloquear la entrada, llamado scriptSigs . La otra mitad se compone de uno o varios nuevos cerraduras llamados salidas , que bloquean la misma cantidad o menos Bitcoin de nuevo. Las salidas incluyen guiones llamados scriptPubKeys . Como tal, Bitcoin efectivamente pasar de entradas a las salidas en una sola transacción, y saltar de una transacción a la vez.

Hay una excepción principal a esta regla. Una transacción coinbase (que no debe confundirse por la empresa billetera y el intercambio con el mismo nombre) es la transacción creado por un minero cuando encuentra un nuevo bloque, y contiene la recompensa bloque: actualmente 25 bitcoin. Además, un minero puede aumentar la recompensa coinbase por cualquier cantidad de bitcoin que se abrió en las transacciones, pero no con llave de nuevo: la diferencia entre las entradas y las salidas. Estos son los gastos de transacción.

Todo esto “desbloqueo” y “encerrar” de bitcoin que se hace por los remitentes de las transacciones, y transmitida posteriormente por la red Bitcoin como paquetes de información. Todos los nodos de la red y, a continuación, comprobar si este proceso de desbloquear y bloquear hasta se ha realizado correctamente. Si todo sale bien, que transmitan la transacción a otros nodos. Y si un nodo es también un minero, que podría incluir la transacción en un bloque. Ya sea que en realidad hace es hasta el minero, sin embargo; es por eso que tiene sentido incluir una tarifa.

Es de vital importancia que las reglas utilizadas por todos los nodos para verificar las transacciones son compatible con las reglas utilizadas por (casi) todos los mineros. Si algunos mineros incluirían transacciones en bloques que otros nodos rechazan, todo el bloque sería considerada inválida por ese nodo. Si ese nodo es también un minero, esto podría llevar a duplicar gasta y tenedores de red.

Estas reglas consensuadas las reglas todos los nodos están de acuerdo en permitirán transacciones encierran (y desbloquear) bitcoin de varias maneras diferentes a la vez. Pero salidas que encierran bitcoin normalmente, por lo menos, incluyen un scriptPubKey lo largo de las líneas de: “Demostrar que es el propietario (o: know) el clave privada que corresponde a la clave pública que corresponde a este Bitcoin dirección . “

(Es fácil de reproducir un clave pública de un clave privada , pero es básicamente imposible de reproducir un clave privada de un clave pública . Del mismo modo, es fácil de reproducir un Bitcoin dirección de un i> clave pública <, pero es imposible de reproducir un i> clave pública < de un dirección Bitcoin . Como tal, también es fácil de reproducir un Bitcoin dirección de un i clave privada <> , pero imposible de reproducir un i> tecla de un Bitcoin dirección . Es una “calle de sentido único.”)

La dirección Bitcoin utilizado para bloquear bitcoin en el scriptPubKey, por supuesto, es la dirección proporcionada por el extremo receptor de la transacción. Desde el receptor crea esa dirección usando una clave privada que sólo él sabe, él es el único que puede crear un scriptSig válida, y por lo tanto el único que puede crear una nueva transacción y pasar el bitcoin encerrado.

¿De dónde vienen las firmas en?

Para probar la propiedad de la clave privada que corresponde a la clave pública que corresponde a una dirección Bitcoin, se podría incluir en teoría, la clave privada en el scriptSig de una transacción. Pero, por supuesto, eso no es seguro en absoluto. Lo más importante, cualquier persona que ve la transacción podría tener la clave privada, y crear una nueva transacción (o cambiar la transacción original) atribuir a sí mismo como muchos bitcoin como están encerrados antes la transacción original se incluye en un bloque. De hecho, si un minero hizo esto, se convertiría en un pedazo de pastel para robar bitcoin, ya que él es el que escoger qué transacciones para confirmar.

En cambio, por lo tanto, los scriptPubKeys suelen requerir la scriptSig incluir uno o más firmas con el fin de desbloquear bitcoin.

Firmas son un truco de cifrado que utiliza un clave privada en combinación con cualquier otro dato para calcular una cadena única de números. Y, con la magia de la criptografía, la correspondiente clave pública se puede utilizar para verificar que la firma se ha creado usando que clave privada . Como tal, las firmas prueban tanto la propiedad de una clave privada, así como la aprobación de una pieza específica de datos por parte del dueño de esa clave privada, todo sin llegar a la necesidad de revelar la clave privada.

En el caso de Bitcoin, claves privadas se utilizan normalmente para firmar los datos de la transacción menos los insumos. (Por lo tanto, los scriptPubKeys, las cantidades cerradas, y algunos detalles adicionales.) A continuación, se añaden esta firma y la clave pública de la cual se gastan bitcoin al campo de entrada de la transacción. Esto prueba que el propietario de la clave privada pretende realmente para crear la transacción y se asegura de que no puede ser manipulado.

Entonces, todos estos datos de transacción – incluyendo las entradas de este tiempo – es hash juntos, lo que crea el ID de la transacción, la identificación de la transacción específica. Si una transacción se incluyó posteriormente en un bloque, el minero hashes el ID de transacción junto con otro ID de transacción para producir un nuevo hash. Y este hash se hash de nuevo, esta vez junto con el hash de otros dos ID de transacción. Este proceso continúa hasta que sólo hay un hash de la izquierda. Esta estructura de hashes se llama Merkle árbol , y el hash restante del Merkle Raíz . Este Merkle Root se combina con datos de bloque adicionales para formar el cabecera de bloque , que se utiliza para identificar el bloque específico. Un hash de esta cabecera de bloque, por último, se debe incluir en la cabecera del siguiente bloque, el encadenamiento de bloques juntos.

Bitcoin se considera inmutable porque cambiar cualquier parte de cualquier transacción con carácter retroactivo alteraría el ID de transacción, a su vez, la alteración de la cabecera del bloque. Pero esta cabecera bloque alterado ya no cumpliría con el prueba de trabajo requisito. Y puesto que la cabecera del bloque influye en la composición de las cabeceras de bloques posteriores, ni haría nada de eso.

¿Qué es Testigo segregada?

La propuesta segregada testigo presentado por Wuille en Hong Kong se basa en un concepto utilizado en cadena lateral de Blockstream Elementos , y una idea complementando por Bitcoin Core desarrollador Lucas Dashjr. Se conceptualiza en el último par de meses, en colaboración con los desarrolladores de Bitcoin Core Gregory Maxwell y Eric Lombrozo, y puede que se extenderá durante el próximo año.

Por lo tanto, desde la perspectiva de los nodos de Bitcoin que no utilizo segregada Testigo (le llamaremos “viejos nodos”), algunos productos de nueva creación pronto podría utilizar un tipo extraño de scriptPubKeys . Extraño, porque estos scriptPubKeys difícilmente pueden considerarse un bloqueo en absoluto. Comúnmente conocido como “Cualquiera puede pasar”, estas scriptPubKeys básicamente proclaman que no Necesito una firma. Además, se incluirá un texto sin sentido.

nodos viejos considerarán estas operaciones loco. Ellos pensarán que cualquiera puede crear un nuevo scriptSig, abriendo estas salidas, lo que significa que son altamente inseguro. Pero, al mismo tiempo, los nodos antiguos no les importará tampoco. Después de todo, no es su bitcoin que se está en mal estado por ahí con, y otras personas son libres de hacer con su bitcoin como les plazca. El texto de sentido será considerado raro, pero muy bien también. Así que van a confirmar las transacciones como válido, y lo remitirá a otros nodos.

nodos Sin embargo, activado-Testigo segregada (permite llamarlos “nuevos nodos”) se dará cuenta de algo más. Ellos verán el texto de lo contrario carece de sentido en el scriptPubKey, pero no considerarlo sentido en absoluto. En cambio, los nuevos nodos reconocerán este pedazo de texto como otro – muy especial – tipo de salida de

Al igual que las salidas típicas, esto. nuevo tipo de salida requerirá una o varias firmas para desbloquear el bitcoin. Pero a diferencia de salidas típicas, este nuevo tipo de salida no se requerirá la firma para ser incluido en la scriptSig de una transacción subsiguiente. En lugar de ello, se requerirá la firma que se incluirá en una nueva parte de la transacción:. Testigo segregada

Esta segregada Testigo es básicamente un “add-on” que lleva las firmas y algunos datos adicionales. Es importante destacar que los Testigos segregadas son completamente ignoradas por los nodos de edad, pero reconocidos por nuevos nodos. Por otra parte, los datos que llevan no se hash junto con las otras partes de una transacción en el ID de transacción.

Como tal, tanto viejos y nuevos nodos linfáticos considerarán transacciones que contiene las firmas en el Testigo segregada válida. Nodos viejos ellos validan porque desde su perspectiva estas transacciones no requieren una firma en todos (y no ven una), y los nuevos nodos que validan porque la firma requerida está en el Testigo segregada. Y puesto que los viejos y nuevos nodos picadillo los datos de la transacción en el mismo ID de transacción, todo el mundo está de acuerdo sobre la composición de los bloques, y, como tal, en la estructura de todo el blockchain.

(Observe que es importante que todos los mineros – o una gran mayoría – debe utilizar segregada testigo con el fin de evitar la doble pasa y tenedores de cadena, o ninguno de ellos debe. Si todos los mineros hacen uso segregada Testigo, nodos viejos en la red podría preguntarse por qué algunas transacciones no están incluidos en los bloques, pero ya que estaba siempre a los mineros para decidir qué transacciones para incluir, y puesto que estos no son . sus transacciones, que no les importará, tampoco)

Pero hay un problema: Si las firmas no tienen efecto sobre la composición del blockchain, el blockchain ya no sirve como prueba de que las firmas correctas se incluyeron en las transacciones.

Para asegurarse de que las firmas son incrustado en el blockchain independientemente, un minero habilitado Testigo segregada añade un truco, también. En lugar de crear solamente un árbol Merkle de todas las transacciones, sino que también crea un árbol de Merkle de todos los testigos segregadas, para reflejar el árbol de transacción. El segregada Testigo Merkle Root, entonces, está incluido en el campo de entrada de la transacción coinbase. Como tal, el segregada Testigo Merkle Raíz cambia los datos de la transacción de la transacción coinbase, su ID de transacción, por lo tanto, influye en la cabecera del bloque y, en última instancia, la composición de la blockchain.

propuesta segregada Testigo de Wuille permite firmas para ser retirados de las transacciones de Bitcoin, manteniendo al mismo tiempo la inmutabilidad de Bitcoin, y sin romper ninguna de las normas de consenso existentes.

La segunda parte de esta historia en tres partes, que se publicará mañana, voy a explorar por qué segregada Testigo es realmente útil.

Gracias salgo a Blockstream co-fundadores Pieter Wuille y Mark Friedenbach, Ciphrex CEO Eric Lombrozo y Blocktrail CTO Rubén de Vries para proporcionar información y añadido retroalimentación.

El puesto Segregado Testigo, Parte 1:. ¿Cómo un Clever Hack Podría Aumentar significativamente Potencial de Bitcoin apareció por primera vez en Bitcoin revista

Bitcoin Revista

Leave a Comment

Your email address will not be published. Required fields are marked *

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

I agree to these terms.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top
Notice: ob_end_flush(): failed to send buffer of zlib output compression (0) in /home4/gotwocli/public_html/swissapp/wp-includes/functions.php on line 4669