- Volver al menú
- Volver al menúPrecios
- Volver al menúInvestigación
- Volver al menúConsenso
- Volver al menú
- Volver al menú
- Volver al menú
- Volver al menúWebinars y Eventos
Cómo salvar la red de nodos de Bitcoin de la centralización
Jameson Lopp de BitGo LOOKS por qué la cantidad de nodos de Bitcoin está disminuyendo en la red y analiza qué podría revertir la tendencia.
La descentralización es, en mi opinión, la propiedad más importante de la red Bitcoin . Sin ella, muchas de sus otras propiedades, como su capacidad para facilitar transacciones sin intermediarios o proporcionar una plataforma sin permisos para la innovación, se verían comprometidas.
Hay muchas facetas que contribuyen a la descentralización de Bitcoin, la más importante de las cuales es la red de nodos que componen la infraestructura de Bitcoin al mantener copias de la cadena de bloques y compartir datos de bloques y transacciones a través de la red.
Y, sin embargo, a pesar de su importancia, el número denodosHa ido disminuyendo durante años, posiblemente centralizando la red.

He estadoescribiendo sobre el decliveen el recuento de nodos durante un par de años y he estado monitoreando mis nodos con elStatoshi software que lancé en 2014. Debido a que el rendimiento de los nodos y la red Bitcoin en general se ha convertido en un tema HOT en los últimos tiempos, debates sobre escalabilidadEspero arrojar algo de luz sobre algunos puntos que no han recibido mucha atención.
En los inicios de Bitcoin, la única forma de participar en la red era ejecutando un nodo completo. Con el paso de los años, el ecosistema ha florecido y ahora existen numerosas opciones de billeteras entre las que los usuarios pueden elegir. La mayoría de las billeteras actuales son clientes ligeros que consultan datos de nodos completos o están alojadas por terceros, por lo que no requieren que el usuario ejecute un nodo completo.
Como resultado, la mayoría de los nuevos usuarios optan por no operar un nodo completo, mientras que algunos operadores de nodos existentes han optado por cerrar los suyos. ¿Cuántos nodos necesita realmente Bitcoin ?
Dependiendo de tu perspectiva, podrías llegar a varias conclusiones:
- ONE: dado que Bitcoin no requiere confianza, el único nodo que importa es el nodo que usted ejecuta.
- Cientos: O suficientes para que resulte inviable para una sola entidad cerrar una porción significativa de la red debido a la diversidad geográfica y jurisdiccional.
- Miles: O suficientes para satisfacer la alta demanda de ranuras de conexión por parte de los clientes SPV. Los clientes SPV no son necesariamente solo billeteras, sino que también pueden ser aplicaciones peer-to-peer comoFaro.
En el otro extremo, nunca podemos tener demasiados nodos ni descentralizar demasiado la red. Dicho esto, ¿cómo deberíamos reaccionar ante el hecho de que menos del 1% de los usuarios de Bitcoin gestionan un nodo completo?
Cuando le pregunté a Pieter Wuille, desarrollador de Bitcoin CORE , hace varios años sobre la importancia del número de nodos, esto fue lo que dijo:
Lo que hacen los nodos completos es garantizar la honestidad de la red. Y no se trata tanto de cuántos hay, sino de lo difícil que es ejecutar ONE.
Pieter es ONE de los desarrolladores de Bitcoin más prolíficos en cuanto a código y funciones añadidas al protocolo; sabe de lo que habla. Pieter también es el autor de Testigo segregado, lo que esperamos nos proporcione un camino para implementar varias soluciones de escalabilidad para Bitcoin.
Debido a que Bitcoin se ha vuelto lo suficientemente popular como para que estemos llegando al límite de 1 MB en tamaños de bloque, existe una gran controversia sobre cómo podemos escalar la red para soportar más usuarios sin afectar negativamente la descentralización de Bitcoin.
Debate sobre el tamaño del bloque
Un argumento frecuente durante el debate sobre el tamaño de bloque se basa en el coste de funcionamiento de un nodo. Existe la teoría de que unos costes más elevados (como la necesidad de recursos computacionales adicionales para validar y retransmitir bloques más grandes) resultarán en menos nodos y viceversa.
El desarrollador Paul Sztorc introdujo el concepto de CONOP (costo de opción de nodo) en su excelente publicación,Medición de la descentralizaciónArgumenta que la reducción de costos debería resultar en que más personas realicen acciones que les beneficien. Este argumento tiene sentido si se asume que no hay más variables en juego que el costo de operar un nodo.
Más adelante en esta publicación analizaremos otros factores que probablemente afecten al CONOP.
Después de observar y participar en debates sobre escalabilidad durante el año pasado, siempre vuelvo al mismo problema:No hay requisitos mínimos de recursos definidos para ejecutar un nodo.
Como resultado, no existe un objetivo que los desarrolladores de Bitcoin deban considerar al considerar la posibilidad de realizar cambios de protocolo que resulten en mayores requisitos de recursos para ejecutar un nodo completo. Si se desarrolla una especificación mínima, probablemente debería basarse en el hardware actual que se utiliza para ejecutar nodos completos.
Un dispositivo basado en ARM, como una Raspberry Pi o un ODROID+, parece ser el requisito mínimo viable para ejecutar un nodo. Puede KEEP bloques de 1 MB, aunque la sincronización inicial de la cadena de bloques (al bloque 390 000) tarda dos semanas debido a la baja potencia de la CPU.
Puedes comprar unSemilla de bitspor $170 o unaBitcoin Minipor $140. Si eres experto en tecnología, puedes construir el tuyo propio.Nodo Raspberry Pipor $100 o puedes construir un nodo bastante potentepor unos 200 dólaresque debería poder funcionar bien durante varios años.

Otro problema que se pasa por alto cuando se debate el costo aceptable de ejecutar un nodo es que nunca hemos definido la base de usuarios objetivo para ejecutar un nodo completo.
Las encuestas demográficas que se han realizado a lo largo de los años siguen indicando que la mayoría de los usuarios de Bitcoin son hombres caucásicos menores de 30 años con orientación técnica, pero esto es un reflejo de la mayoría de los primeros en adoptar la Tecnología .
Parece haber un sentimiento general en la comunidad de que para que Bitcoin tenga éxito a largo plazo, necesitamos encontrar una manera de llevarlo a las masas.
Aun así, como muestra el siguiente gráfico de BitNodes, los nodos están fuertemente concentrados en América del Norte y Europa Occidental.

¿Quién queremos que gestione un nodo completo? La respuesta ingenua sería "todos", pero claramente eso no es viable, ya que el acceso a internet aún no es ubicuo.
Sospecho que el acceso confiable y asequible a Internet de banda ancha es una razón importante para la actual distribución geográfica de los nodos.
Gavin Andresen dijo una vez:
La mayoría de la gente común NO debería tener un nodo completo. Necesitamos nodos completos que estén siempre activos, tengan más de ocho conexiones y una conexión a Internet de alto ancho de banda.
Datos recopilados con Statoshi
muestra que un nodo altamente conectado necesita en promedio 200 Kb/s de bajada y 1,5 Mb/s de subida, aunque el uso es mucho más irregular y puede ver fácilmente picos de 2 Mb/s de bajada y 40 Mb/s de subida.
Según AkamaiEstado de InternetSegún el informe, el ancho de banda promedio disponible es de 5 Mb/s, pero su lista sólo cubre una cuarta parte del mundo.
Las estimaciones muestran que a partir de 2014sólo el 60%de la población mundial utiliza Internet.
Una especificación mínima de nodo
Una especificación mínima bien diseñada debe establecer objetivos para las características de rendimiento deseadas para un nodo, los recursos necesarios para cumplir esos objetivos de rendimiento y un costo para obtener hardware que cumpla con los objetivos de rendimiento.
Recomendaría que incorporara una lógica similar a la desarrollada por Jonas Nick, Greg Sanders y Mark Friedenbach paracostos de validación del tamaño del bloqueSu enfoque está bien pensado, aunque una especificación mínima tendría que ser más compleja porque tendría dimensiones adicionales.
Por ejemplo, una especificación mínima podría verse así:
- Costo objetivo de los recursos de hardware: $200
- Tiempo objetivo en el peor de los casos para validar un bloque: 10 segundos
- E/S de red mínima: 2 Mb/s
- E/S de disco mínima: 2 Mb/s
- CPU mínima: 5000 MIPS
- RAM mínima: 1 GB
Jean-Paul Kogelman dio unagran ejemplode cómo una especificación mínima establecida ayudaría en la toma de decisiones durante los debates sobre escalabilidad al examinar los cambios recientes en los costos de verificación de firmas de transacciones.
En versiones de Bitcoin CORE anteriores a la 0.12, se utiliza OpenSSL para verificar firmas. A partir de la 0.12, las firmas se verifican con secp256k1, que es aproximadamente cinco veces más rápido que OpenSSL. Como resultado, el tiempo de verificación de transacciones (y, por lo tanto, de bloques) debería ser casi cinco veces más rápido.
Dado que esto debería reducir el tiempo en el peor de los casos para verificar un bloque en casi un 80%, la especificación mínima nos da una opción binaria simple:
- Ajuste los requisitos mínimos de recursos hacia abajo de manera adecuada
- Ajuste otros parámetros, como el número de operaciones de firma por transacción y el número de transacciones por bloque, de manera adecuada para volver a estar en línea con los objetivos mínimos de rendimiento.
Cuando se proponen cambios al protocolo que afecten al rendimiento, si se dispone de una especificación mínima, debe quedar claro cómo se ve afectada por dichos cambios. A medida que la Tecnología avanza y el coste de los recursos computacionales disminuye, también debe quedar claro cómo se pueden aumentar los requisitos de recursos sin incrementar el coste operativo de un nodo.
Por lo tanto, las opciones adecuadas para responder a los cambios deberían ser menos controvertidas que las que hemos experimentado con el debate sobre el tamaño de bloque. Si, por ejemplo, es evidente que los operadores de nodos que ejecutan hardware con requisitos mínimos no se verán afectados negativamente al aumentar las operaciones de firma permitidas por bloque para igualar la mejora de rendimiento de secp256k1, aumentarlas no debería ser controvertido.
Costo versus beneficio
Considero un objetivo admirable intentar KEEP los costos de operación de los nodos bajos y accesibles para el usuario promedio.
Por otro lado, si KEEP los requerimientos de recursos de los nodos en el nivel que el último modelo de Raspberry Pi pueda manejar en una conexión a Internet residencial (promedio global), no estoy seguro de cuán útil será si la demanda de inclusión en bloques resulta en tarifas de transacción que dejen fuera a más usuarios.
Dicho de otro modo, si el coste de usar la red aumenta hasta el punto de impedir que el usuario promedio realice transacciones en la blockchain de Bitcoin, probablemente no le importará poder operar un nodo a un coste insignificante. Considérelo un equilibrio entre el coste de la verificación de transacciones y el coste de realizarlas.
Las redes de capa dos (como Lightning Network y la red de micropagos de 21) ciertamente pueden desempeñar un papel en aliviar la carga en este caso, pero recuerde que incluso los usuarios de redes de capa dos tendránEventualmente necesitaremos asentarnoscontra la cadena de bloques de Bitcoin.
Existen numerosos costos para ejecutar un nodo, tales como:
- Curva de aprendizaje inicial (costo de tiempo)
- Costo de instalación, configuración y sincronización inicial (tiempo, ancho de banda, CPU)
- Costos operativos continuos (ancho de banda, CPU, RAM, disco)
- Costos de mantenimiento (tiempo para realizar resolución de problemas y actualizaciones).
La curva de aprendizaje inicial para apreciar el valor de Bitcoin puede llevar semanas o meses. Descubrir cómo ejecutar un nodo puede llevar unas horas; estoy bastante seguro de que la mayoría de la gente ni siquiera llega al paso de reenvío de puertos.
La sincronización inicial puede tardar desde varias horas hasta varias semanas, dependiendo de las especificaciones de la máquina. Calculo subjetivamente que el coste de mantenimiento es de una hora al mes en el peor de los casos.
Hasta ahora hemos examinado el coste de operar un nodo desde diversas perspectivas. Es lógico teorizar que unos costes más altos resultarán en menos nodos y unos costes más bajos resultarán en más nodos, pero ¿qué pasa si el coste no es el único factor?
BitPay
Director ejecutivo Stephen Pairsucintamente establecido:
“En la red Bitcoin hay tantos nodos como demanda para realizar una validación independiente y sin confianza de las transacciones”.
Creo que Pair y Stzorc tienen razón y, por lo tanto, el número de nodos depende de la demanda de validación de transacciones sin confianza frente al coste de funcionamiento de un nodo. Por lo tanto, creo que el número de nodos también depende del valor almacenado y transaccionado por los usuarios de Bitcoin .
Si bien algunos afirman que ejecutar un nodo hoy en día es puramente altruista, existen incentivos para hacerlo:
- Inversión:Si ha invertido mucho en Bitcoin, es posible que desee respaldar la red para proteger esa inversión.
- Actuación:Es mucho más rápido consultar una copia local de la cadena de bloques que consultar servicios de datos de la cadena de bloques a través de Internet.
- Resistencia a la censura y a la falta de permisos:Al recibir y enviar transacciones desde su propio nodo, ONE tiene el poder de impedirle hacerlo.
- Privacidad:Si estás consultando otros nodos o servicios acerca de datos de blockchain, estos pueden usar esas consultas para intentar desanonimizarte.
- Desconfianza:Ser propietario de una copia del libro de contabilidad que usted mismo ha validado significa que no tiene que confiar en que un tercero sea honesto sobre el estado del libro de contabilidad.
En mi opinión, en lugar de aspirar a que cualquier persona gestione un nodo, el objetivo debería ser que cualquiera con un valor considerable en Bitcoin lo gestione. Quienes tienen el mayor valor en riesgo tienen el mayor incentivo para invertir recursos en la protección de sus activos operando sin confianza.
Hemos visto que BTCC se ha implementado recientemente100 nodos Y sabemos que muchas otras empresas de Bitcoin gestionan sus propios nodos. Yo mismo superviso la operación de varios nodos de la red principal y de prueba en nombre de... BitGo y también ejecuto varios nodos personalmente porque tengo una gran cantidad de recursos invertidos en Bitcoin y deseo apoyar la red.
Si un usuario sólo posee 100 dólares en Bitcoin, entonces no tiene mucho sentido que ejecute un nodo completo a menos que el tiempo y el coste de recursos para ejecutar un nodo sean del orden de unos pocos minutos y unos pocos centavos.
Para conocer la opinión de los usuarios de Bitcoin sobre su decisión de ejecutar o no un nodo completo, realicé una encuesta y recopilé más de 500 respuestas. Claramente, no se trata de una encuesta científica rigurosa, pero espero que sea mejor que nada.
Puede ver el análisis de alto nivelaquíy los datos brutos están disponiblesaquí.
Algunas conclusiones clave de esta encuesta:
- El 24% de los encuestados solía ejecutar un nodo completo, pero ya no lo hace.
- El 42% de los no operadores no ve ningún incentivo para ejecutar un nodo
- El 44% o más de los operadores de nodos utilizan su nodo para su propio beneficio directo
- El 57% de los usuarios están dispuestos a dedicar más de 100 KB/S de ancho de banda ascendente a un nodo
- El 58% de los usuarios no están dispuestos a pagar más de $10 al mes para ejecutar un nodo
- El 81% de los operadores de nodos ejecutan un nodo en casa.
El resultado más sorprendente fue que parece no haber correlación entre la inversión de un usuario en Bitcoin y su interés en ejecutar un nodo.
Sin embargo, puede que haya sido una pregunta demasiado vaga, ya que no pedía cantidades monetarias específicas.
Sigo creyendo que cualquier entidad (especialmente una empresa) que realiza transacciones o almacena cantidades significativas de valor tiene más incentivos para ejecutar un nodo.


Conclusiones
Recuerde la teoría a menudo citada de que mayores costos resultarán en menos nodos.
Puede que esta no sea una suposición válida, ya que un mayor volumen de transacciones puede ser el resultado de una mayor adopción y, por lo tanto, de más entidades dispuestas a ejecutar nodos completos.
Sí, el costo será más alto y muy bien puede superar el umbral de $10 al mes que el usuario promedio está (actualmente) dispuesto a pagar, pero si la utilidad de la red Bitcoin continúa aumentando y más entidades realizan transacciones de grandes cantidades de valor, tendrán un mayor incentivo para pagar costos más altos para operar de manera confiable.
Por otro lado, también debemos KEEP en cuenta que tiene poca utilidad participar en un sistema descentralizado cuando el costo de validación es bajo pero el costo de transacción es extremadamente alto debido a la contención por el espacio de bloques.
Si abordamos el debate sobre el tamaño de bloque desde la perspectiva del uso de recursos, me parece que alguien quedará excluido de todas formas. No aumentar el tamaño de bloque excluirá a algunos usuarios del envío de transacciones, mientras que aumentarlo excluirá a otros de la ejecución de nodos.
Hay muchas variables en juego y debemos esforzarnos KEEP en equilibrio para que podamos hacer crecer el ecosistema manteniéndolo descentralizado.
En orden de prioridad decreciente, recomiendo que los desarrolladores de Bitcoin :
Determinar una especificación mínima de recursos para ejecutar un nodo completo con características de rendimiento objetivo, como el peor tiempo posible para validar un bloque.
Centrarse en aumentar el volumen de transacciones que la red Bitcoin puede soportar, incrementando así su utilidad y la cantidad de usuarios (y casos de uso) que puede atender. Como resultado, debería haber más entidades que realizan almacenamiento y transferencias de alto valor que se verán incentivadas a operar sus propios nodos.
Concéntrese en facilitar la gestión de un nodo desde la perspectiva de la curva de aprendizaje. Esto también debería ocurrir de forma natural a medida que Bitcoin construye una historia y una reputación más largas.
Facilitar la ejecución de un nodo desde el punto de vista de los recursos computacionales. Permitir que un nodo se ejecute instantáneamente en modo SPV mientras sincroniza la blockchain en segundo plano sería un buen primer paso. Arrancar un nodo a partir de compromisos UTXO sería un gran avance.
Investigar directamente la incentivación financiera del funcionamiento de los nodos, por ejemplo:prestación de servicios de datosa cambio de honorarios.
Si podemos KEEP que el costo de operar un nodo aumente a un ritmo más rápido que su valor, deberíamos poder KEEP la infraestructura de red descentralizada incluso mientras aumentamos la carga sobre los operadores de nodos.
Es probable que la demografía de los operadores de nodos siga cambiando, pero animo a los usuarios de Bitcoin a adoptar los cambios en el ecosistema mientras la propiedad fundamental de la descentralización permanezca intacta.
Síguenos a Jameson en Gorjeo.
Imagen costo-beneficiovía Shutterstock
Jameson Lopp
Jameson Lopp es el director de tecnología y cofundador de Casa, un servicio de autocustodia. Un ciberpunk cuyo objetivo es desarrollar Tecnología que empodere a las personas, ha estado desarrollando monederos de Bitcoin multifirma desde 2015. Antes de fundar Casa, fue el ingeniero principal de infraestructura en BitGo. Es el fundador del Grupo de Interés Especial Bitcoin de Mensa, la reunión Triangle Blockchain and Business y varios proyectos de Bitcoin de código abierto. A lo largo de este tiempo, ha trabajado para enseñar a otros lo que ha aprendido con la dificultad al desarrollar software robusto que puede resistir tanto a adversarios como a usuarios finales sin experiencia.
