domingo, 24 de enero de 2016

Mayores bloques en Bitcoin sin los riesgos de un hard fork: Testigos Segregados (Segregated Witness)

Aunque la conferencia Scaling Bitcoin celebrada en Hong Kong no ha servido para salir de allí con una solución al debate del aumento del tamaño de los bloques, lo cierto es que el optimismo por encontrar una solución a la escalabilidad de Bitcoin va en aumento. Quizás parte de responsabilidad de ello la tenga la propuesta de Testigos Segregados (Segregated Witness, en inglés- y ya se usa el acrónimo SegWit para referirse a ello) presentada en el marco del encuentro por Pieter Wuille, cofundador de Blockstream, y que podría aumentar la capacidad de la red Bitcoin sin necesitar una bifurcación dura (hard fork) y los riesgos asociados a ello.

En su propuesta, Wuille plantea la posibilidad de variar los datos que incluyen las transacciones Bitcoin actualmente, de tal manera que el espacio que éstas ocupan en la cadena de bloques (blockchain) sea bastante más reducido (un 75% inferior) lo que, a su vez, incidiría en una mayor cantidad de transacciones incluidas en cada uno de los bloques, que actualmente tienen un tamaño de 1MB, y que pasarían a ser equivalentes a 4MB sin que sufrieran una variación. Básicamente se trataría de un aumento del tamaño de los bloques, sin cambiar el mismo.

Cómo se implementará Testigos Segregados (Segregated Witness – SegWit)

Las transacciones Bitcoin incluyen uno o varios campos de inputs que determinan de dónde vienen los fondos, y uno o más campos de outputs que indican dónde van esos fondos. Además, cada transacción incluye un campo con la firma que valida que el dueño de los fondos puede efectuar la transacción, y que no es necesario que sean vistas por todos los nodos, sino únicamente lo son para los nodos completos que hacen validaciones (mineros y carteras). Por ello puede variarse su ubicación, e introducirse en una nueva estructura de datos separada, para que los mineros y las carteras puedan corroborar así que las firmas de las transacciones son válidas, sin que ello signifique que el tamaño de las transacciones sea tan grande como lo es en la actualidad. Wuille propone “ignorarlos en los caso en que sea posible” y para ello, Testigos Segregados implementaría el código necesario para trasladar esas firmas a la coinbase de la transacción, a través de un Merkle Tree. De esta forma se conseguiría un incremento del tamaño de los bloques del 75%, es decir, siendo los bloques de 1 MB, tendrían capacidad para incluir tantas transacciones como permitirían bloques de un tamaño de 4MB.

Para entenderlo mejor pongamos un ejemplo: una transacción con un solo input y un output con Testigo Segregado ocuparía 90 bytes de datos de transacción más o menos y 80 bytes de firma. Únicamente los 90 bytes (los de los datos de transacción) son los que sería necesario incluir en el bloque, por lo que de los 170 bytes se pasa a 90 bytes.

Según datos presentados por Wuille, las firman suponen el 60% del tamaño de la cadena de bloques. Por lo que su propuesta conseguiría que el tamaño de la cadena de bloques se reduzca drásticamente: De 49 GB actuales a poco más de 20GB.

Además de lograr este incremento efectivo del tamaño de los bloques, la propuesta de Wuille también permitiría dotar al protocolo Bitcoin de otras funcionalidades:

·         Solucionar la maleabilidad de las transacciones.

·         Implementar las actualizaciones de lenguajes del script más fácilmente.

·         Permite las pruebas de fraude.

·         Eliminar las firmas de las transacciones históricas y reducir con ello el tamaño total de la cadena de bloques en un 60%.

·         Reducir los requisitos de ancho de banda para los clientes ligeros y para la sincronización inicial de la cadena de bloques.

 

 

Fuente