A partir de noviembre de 2012, la cadena de bloques tiene un tamaño de casi 3 GB con un crecimiento casi lineal de aproximadamente 500 MB/mes (supongo que se redujo del crecimiento exponencial por el límite de tamaño de bloque codificado).
Quiero instalar Bitcoin en mi computadora portátil promedio: descargar y verificar el último bootstrap.dat de Bitcoincharts tomó algunas horas (5-9, supongo), ¡pero eso fue solo 2.3 GB! Ahora, he estado esperando que Bitcoin se ponga al día con los últimos 2 o 3 meses, en los que los bloques han sido considerablemente más grandes y cada bloque tarda unos 5 segundos en procesarse, con mi CPU en ~25 % y mi disco duro en carga de trabajo máxima.
Esto es, para decirlo a la ligera, insostenible.
Necesitamos un sistema en el que una cadena de bloques ya verificada se pueda descargar y copiar directamente a la carpeta de bitcoin, tal vez de forma incremental. Se debe confiar en la fuente, para esto, se necesita un sistema de verificación en el que todos puedan controlar la corrección de la cadena de bloques y luego firmarla, propondría usar claves gpg para esto.
Luego, la fuente se puede distribuir a través de un torrent respaldado por un servidor, por ejemplo.
¿Es esto técnicamente posible y cómo?
Editar: dado que abordé esto con una mentalidad equivocada, publiqué una especie de pregunta de seguimiento sobre los riesgos de seguridad de los clientes ligeros. ¿Debería un usuario final descargar toda la cadena de bloques? ¿O es suficiente un cliente “ligero”?
Ya existen versiones descargables de la cadena de bloques. No hay problema en principio en que sean firmadas por GPG por varias personas de confianza. Sin embargo:
Debilita un poco la seguridad. Con el software en sí, puede confiar en las firmas y puede inspeccionar el código. Con la inspección de datos de blockchain es inviable.
Las versiones futuras utilizarán un formato de base de datos diferente que permitirá una verificación mucho más rápida, por lo que no habrá muchas ventajas para un sistema en el que se obvia la verificación pero aún es necesario descargar los datos.
A largo plazo, los usuarios finales no utilizarán un cliente completo, sino (en el mejor de los casos) un cliente SPV que no necesita descargar ni verificar toda la cadena de bloques.
Esto es ciertamente técnicamente posible (ejecutar -detachdb
y luego copiar el directorio de la base de datos), pero la pregunta es si desearía esto.
Primero, da un paso atrás. Bitcoin está diseñado para funcionar con una seguridad razonable en nodos livianos (ver "Verificación de pago simplificada" en el artículo de Satoshi ). Lo único que requieren los nodos ligeros de confianza es que la cadena con más trabajo también contenga transacciones válidas. Estos nodos livianos requieren unos pocos megabytes de descargas para sincronizarse y casi no causan carga de CPU o disco. Ejemplos de tales implementaciones de nodos incluyen Multibit o Bitcoin Wallet para Android .
La razón por la que esto es posible es porque los nodos livianos asumen que hay nodos completos que verifican todo, y que ningún minero se arriesgará a crear bloques que contengan transacciones no válidas (una suposición muy razonable, ya que en una red sana, tales bloques serán ignorados por todos los demás). Estos nodos completos forman la columna vertebral de seguridad de la red y, dado que verifican todo, esencialmente requieren confianza cero. Esta es una propiedad central de Bitcoin, que casi no existe en ningún otro sistema de pago: el privilegio de no tener que confiar en nadie.
Si va a descargar una cadena de bloques preindexada, está renunciando a ese privilegio. Básicamente, confiará en una persona (tal vez en algunas, si realmente se molesta en verificar las firmas) para que le diga qué transacciones en el historial de Bitcoin fueron válidas. Esta es una suposición mucho más fuerte que la que hace cuando ejecuta un cliente ligero. Si alguien pudiera corromper (¡incluso sin querer!) una descarga de este tipo y fuera utilizada por muchas personas, el riesgo podría ser una red bifurcada. Esto podría ser un desastre.
Entonces, si cree que su sistema no puede manejar la carga actual de ejecutar un nodo completo, simplemente ejecute uno liviano. Si el software liviano no ofrece las funciones que desea, anímelos a implementarlas; serán necesarias a medida que pase el tiempo.
Como nota al margen, la próxima versión (0.8) de Bitcoind/Bitcoin-Qt debería ser mucho más rápida, especialmente en hardware con entrada/salida lenta.
¡Puedes elegir desde dónde descargar!
Consulte ¿Cuál es la forma más rápida posible de descargar la cadena de bloques?
Describí cómo decirle al cliente bitcoin que se conecte a nodos personalizados. De esta manera, puede decirle a bitcoin que se conecte a los principales nodos centrales, por ejemplo.
Esto tiene 2 ventajas:
A) control total en quién confiar
B) Descarga ultrarrápida de blockchain de bitcoin.
Profpatsch
Meni Rosenfeld
Esteban Gornick
pieter wuille
sydwell