Pages

Derribando mitos – Hoy: “Bitcoin no es escalable”

Fuente: gavinandresen.ninja  Por Gavin Andresen

La informática tiene esta cosa llamada “notación Big-O” (eso es O como en “oh”, no es cero). Es una manera de describir cómo los algoritmos se comportan a medida que se les da mayores problemas para resolver.

fractal-tree

Durante el gran debate por el tamaño máximo del bloque, se ha dicho reiteradamente que “Bitcoin no es escalable, ya que se comporta como O(n2)”. La escala de N al cuadrado no es sostenible; dobla el N y necesitarás cuatro veces más recursos (memoria o CPU).

En la conferencia de Montreal sobre la escalabilidad de Bitcoin tuve la oportunidad de conversar con un par de esas personas y preguntarles de qué diablos estaban hablando. Y resultó que se estaban refiriendo a cosas diferentes.

Algunos de ellos toman la ley de Metcalfe (“el valor de una red de comunicaciones aumenta proporcionalmente al cuadrado del número de usuarios del sistema (n2)”) y la aplican a las transacciones Bitcoin, en el supuesto de que si hay N personas utilizando Bitcoin, generarán colectivamente N2 transacciones. Eso es una tontería, porque incluso si teóricamente todo el mundo pudiese realizar transacciones con todos los demás utilizando Bitcoin, no lo harían. Yo he hecho transacciones probablemente con menos de 100 personas o empresas en los cinco años que he estado utilizando Bitcoin; la demanda de transacciones escala linealmente con el número de personas que lo usan.

Luego está la observación de que, en el supuesto de un crecimiento del número de transacciones “n” en el tiempo, todo el historial de transacciones crece O(n2) (véase la reciente presentación de Patrick Strateman). Según esta afirmación, crecer más rápido que la energía del CPU o el espacio del disco duro implicará que a la larga ningún nuevo usuario será capaz de validar toda la cadena de bloques.

El problema es la creencia de que debes validar toda la cadena de bloques, desde el bloque génesis en adelante, para ser un verdadero bitcoiner. Esa es en mi opinión una visión innecesariamente acotada —creo que cada persona debe tener la libertad de hacer concesiones en función de su propia evaluación de confianza/coste/conveniencia–. Por ejemplo, un usuario nuevo podría evitar la descarga de toda la cadena de bloques obteniendo una instantánea del libro mayor de algún bloque reciente (“buscar el conjunto de outputs no gastados (UTXO)”) de uno o más nodos de la red. Eso es mucho más rápido y cómodo que descargar toda la historia de la cadena de bloques, y es casi perfectamente seguro. Incluso si obtienes una mala copia del libro mayor, lo peor que puede pasar es que hayan entradas adicionales en el libro (tal vez el atacante se otorgue a sí mismo un millón de bitcoins que en realidad no tiene), o que falten entradas.

Si hay entradas extra, un atacante podría enviarte una transacción no válida que nunca se confirmaría. Es decir que podría hacer básicamente lo mismo que hoy puede hacer simplemente enviándote una transacción y al resto de la red un doble gasto. Si, en cambio, faltaran entradas, tu cartera podría pensar lo contrario –que una transacción válida no lo es–. El error sería descubierto tan pronto como la transacción fuera verificada en la cadena, y podría recuperarse consiguiendo el libro mayor de una fuente más fiable.

Por último, este otro argumento de O(n2) se ha mencionado:

Si asumimos que hay “n” usuarios, y una proporción constante de ellos (por ejemplo 1%) mantiene nodos completos, y cada usuario genera un cierto número de transacciones por día… entonces el trabajo de validación total realizado por todos los nodos completos cada día es O(n2) (En realidad, O((n/100)2), pero los factores constantes se ignoran en la notación Big-O).

Hay dos errores en este argumento: primero, la suposición de que una proporción constante de usuarios mantendrá nodos completos con el crecimiento de la red podría ser incorrecta. Es probable que una proporción cada vez mayor de la gente opte por usar nodos de validación parcial. En el futuro podría haber mil millones de personas usando Bitcoin, pero sólo unas decenas de miles (en lugar de decenas de millones) de nodos de validación completa. Ese sería un futuro brillante, exitoso, descentralizado y seguro.

La segunda cosa que está mal en ese argumento es que mientras toda la red podría, de hecho, realizar O(n2) trabajo de validación, cada uno de los n individuos sólo realizaría O(n) trabajo –y esa es la métrica importante, ya que cada individuo es indiferente a la cantidad de trabajo que el resto de la red está haciendo para validar transacciones; lo que le interesa es la cantidad de trabajo que su equipo debe hacer–.

Ver texto original en inglés

  • pelias

    ¡A punto de tocar la línea!

    • ¿Podrías explicarlo para quienes no dominamos el análisis técnico?

      • pelias

        Yo tampoco lo domino. Es la línea que conecta los dos puntos más altos en la gráfica en diciembre de 2013. Salvo en esa época, el precio siempre ha cumplido la propiedad de estar por debajo de esa línea pero ahora se ha sobrepasado. Pienso que puede ser significativo.

        • JJ

          Hola,

          efectivamente está estos días en un momento interesante. De ocurrir algún movimiento especulativo importante debería de ocurrir en estos días venideros., aunque creo que todavía falta un pelín ¿1 mes?. Esa gráfica estaría mejor en escala logarítmica.

          • Drogoteca

            A mí los más o menos 230 $ por Bitcoin actuales me parecen un suelo bastante razonable -incluso sólido- como para que puedan surgir nuevos momentos expansivos.

            Bitcoin llegó al gran público a través de las drogas, los mercados como Silk Road y la darknet. Guste o no, ha sido así tras la fase silk road / mtgox (besos Gochi) en la que se ha presentado como la moneda del mundo underground de las drogas.

            No pueden contar el mismo cuento dos veces, el público ya conoce la moneda (ahorra la mitad de la explicación) y sólo le falta entender que su uso en esos mercados de drogas anónimos es sólo una de las cuestiones que se derivan de sus capacidades como moneda…. y que está en su mano aplicarlo a otros mercados.

            No me disgusta lo que viene por delante.

      • Urbano

        Desde mi punto de vista, esa línea no significa nada relevante. El simple hecho de unir dos puntos máximos en una escala semanal no crea una línea de tendencia, quizás uniendo tres, o utilizando los precios de cierre en lugar de máximos ( tendencia que ya rompió en el ultimo rally hasta los 3xx)… Seguimos paralelos, y no veo mal un precio estable en bitcoin en torno a los 250$. Por otra parte, hay que pensar que esos bitcoins (40-70%) que se movieron a las direcciones de mayor envergadura, no le pertenecen al mismo individuo y no le va a dar el punto de venderlos de un día para otro.

    • chamán

      Si alguien quiere entender este gráfico le recomiendo que pruebe ayahuasca, muy bueno.

  • Pingback: Bitcoin y la ley de hierro de la oligarquía - Bitcoin en español()