Es Marzo del 2016 y son muchos los meses en los que se lleva hablando de un tema clave entre la comunidad: el tamaño que deberían tener de los bloques de la red Bitcoin debido al crecimiento del ritmo de las transacciones que está desarrollándose sobre esta.
¿Core? ¿Classic? ¿Unlimited?
Seguro que has oído hablar de muchos clientes (monederos) que presentan unas opciones u otras y la verdad es que han derivado en intensos debates en los principales canales de comunicación de los usuarios de bitcoin incluso llegando a acusaciones directas entre todas las partes. Está claro que nos encontramos ante un tema delicado y cada uno tiende a defender que su propuesta es la mejor.
Desde Bit2Me no vamos a entrar en qué opción es mejor que otra o qué proyecto es más óptimo de cara al futuro. La idea es que tras leer este artículo hayas aprendido algo nuevo relacionado con Bitcoin y qué mejor que explicar las propuestas que han llegado hasta la fecha sobre un posible tamaño de los bloques dinámico. Ninguna de las propuestas mencionadas anteriormente lo ha presentado como punto de partida podría ser una opción interesante de la que se está empezando a hablar tras el “Bitcoin Improvement Proposal” bajo el título de “Adaptative blocksize” que ha publicado por kleetus, de Bitpay.
A DESTACAR: esta no es una idea nueva y han sido varios los miembros de la comunidad como Meni Rosenfeld o upalc que ya trataron el tema con anterioridad.
En este post nos centraremos en los BIP (Bitcoin Inprovement Proposal). de Upal y Bitpay intentando explicar de la forma más clara y en Español ambas propuestas para que no pierdas detalle y te quede clara la idea que pretenden transmitir para unos bloques dinámicos que ayuden a evitar un estancamiento en la escalabilidad de Bitcoin.
Tamaños máximos de bloques dinámicos – Upal
Dynamically Controlled Bitcoin Block Size Max Cap
En esta propuesta, Upal propone sustituir el tamaño máximo fijo por un tamaño de bloque máximo controlado dinámicamente y que pueda aumentar o disminuir con el cambio de dificultad dependiendo de diversos factores de la red. Estas son sus dos propuestas:
- Bloques dinámicos dependiendo únicamente en el cálculo a partir del tamaño del bloque anterior.
- Bloques dinámicos dependiendo en el cálculo del tamaño del bloque anterior y las fees de las transacciones recibidas por los mineros.
Con el aumento de la adopción, el volumen de transacciones en la red Bitcoin está destinado a crecer progresivamente. Para upal, el hecho de no cambiar el límite de 1 megabyte por uno flexible obstaculizaría la adopción y el crecimiento de Bitcoin.
Primera propuesta: dependiendo únicamente del bloque anterior
SI más del 50% de los tamaños de los bloques encontrados en los primeros 2000 del último período de dificultad son superiores al 90% de su capacidad
ENTONCES Se dobla el MaxBlockSizeSINO SI más del 90% de los tamaños de bloque encontrados en los primeros 2000 del último período de dificultad es menor al 50% de la capacidad máxima de un bloque
ENTONCES el MaxBlockSize será la mitadSINO
ENTONCES se mantendrá el mismo MaxBlockSize
Por lo tanto, esta opción no sólo aumentaría el tamaño de los bloques sino que también podría reducirse dependiendo de las necesidades del momento.
Segunda propuesta: dependiendo del cálculo a partir del bloque anterior y las fees de las transacciones que reciben los mineros
TotalBlockSizeInLastButOneDifficulty = Suma de todos los tamaños de bloque de los primeros 2008 bloques en los últimos 2 períodos de dificultad
TotalBlockSizeInLastDifficulty = Suma de todos los tamaños de bloque de los segundos 2008 bloques en los últimos 2 períodos de dificultad (Este incluye 8 bloques de la penúltima dificultad)TotalTxFeeInLastButOneDifficulty = Suma de todas las comisiones de transacción de los primeros 2008 bloques en los últimos 2 períodos de dificultad
TotalTxFeeInLastDifficulty = Suma de todas las fees de transacciones de los segundos 2008 bloques en los últimos 2 períodos de dificultad (Este incluye también 8 bloques de la penúltima dificultad)SI (((Suma del tamaño de los primeros 4016 bloques en los últimos 2 períodos de dificultad)/4016 > 50% MaxBlockSize) Y (TotalTxFeeInLastDifficulty > TotalTxFeeInLastButOneDifficulty) Y (TotalBlockSizeInLastDifficulty > TotalBlockSizeInLastButOneDifficulty))
ENTONCES MaxBlockSize = TotalBlockSizeInLastDifficulty * MaxBlockSize / TotalBlockSizeInLastButOneDifficultySINO SI (((Suma del tamaño de los primeros 4016 bloques en los últimos 2 períodos de dificultad)/4016 < 50% MaxBlockSize) Y (TotalTxFeeInLastDifficulty < TotalTxFeeInLastButOneDifficulty) Y (TotalBlockSizeInLastDifficulty < TotalBlockSizeInLastButOneDifficulty) )
ENTONCES MaxBlockSize = TotalBlockSizeInLastDifficulty * MaxBlockSize / TotalBlockSizeInLastButOneDifficultySINO Se mantiene el mismo MaxBlockSize
Esta opción contempla una recompensa estable para los mineros no aumentando el tamaño máximo de los bloques hasta que las fees de transacción no estén incrementando y creando una fiuerte presión en el coste por transacción. Además y pese a ser bloques dinámicos, es difícil intentar «trampearlo» porque el incremento o decremento se produciría en la misma proporción que el promedio de aumento o disminución del tamaño de bloque.
Tamaño máximo de bloques basado en la media de block size – Bitpay
Maximum Block Size Consensus Rule Based On Median Block Size
BIP publicado el día 22 de marzo por Kleetus de Bitpay proponiendo un límite también dinámico basado en el tamaño de bloque medio de los últimos 12960 bloques (3 meses de transacciones aprox) multiplicado por 2 y calculados cuando un bloque ya está conectado a la blockchain, aumentando o disminuyendo siguiendo el uso real de la red.
Fórmula que plantean en el BIP para el calcular el tamaño de los bloques cada 3 meses aproximadamente:
median = ((blocksizes[6480] + blocksizes[6479]) / 2)
median * 2 (2 is the growth multiplier)
Si la mediana es menor a 0.5MB, el tamaño máximo de bloque será de 1MB hasta el siguiente cálculo. Sino 2 por la mediana será el aumento final del tamaño máximo por bloque.
Según Bitpay, todas estas métricas funcionaron bien para reaccionar lo más rápidamente posible a las fuerzas del mercado sin ser excesivamente volátiles. Excepto en las extremidades, otras opciones para una mirada retrospectiva periodo funcionarían igual de bien. Con su propuesta, los mineros tendrían más opciones a la hora de delimitar el tamaño de los bloques creados. Algunos querrán bloques más grandes para minimizar los tiempos de confirmación de las transacciones y otros preferirán seguir siendo conservadores.
Estamos hablando de dos propuestas que sin duda enriquecen el ecosistema Bitcoin. Con esta introducción a ambas ya no puedes decir que no estás al día! ? A partir de aquí es momento de ver y analizar todos los tests que hagan a modo de prueba para verificar la viabilidad de todas las propuestas entorno a los bloques dinámicos.