Veo varias fuentes de descargas binarias de la cadena de bloques de Bitcoin. ¿Se puede usar alguno de estos de forma segura?
Hasta donde yo sé, no existe un modelo de ataque concebible si va a utilizar la cadena de bloques para sembrar el cliente Bitcoin normal. No aceptará un bloque inválido. Y entiende que gana la cadena de bloques "más larga". Por lo tanto, un archivo comprometido que fuera más largo que la cadena de bloques oficial no puede existir, y un archivo comprometido que fuera más corto simplemente sería rechazado tan pronto como el cliente se conectara a la red.
En el inicio, el cliente verifica para asegurarse de que la cadena sea básicamente válida y contenga el punto de control más reciente.
Si hay algún ataque que funcione de esta manera, es un defecto en el cliente. Porque alguien también podría enviarle la misma cadena de bloques "rota" a través de la red.
[Actualización: con el cliente de Bitcoin v0.7, -loadblock= permitirá al cliente importar datos de la cadena de bloques, de forma segura, desde un archivo de la cadena de bloques local en lugar de hacerlo desde la red. La descarga de blockchain de BitcoinCharts.com se puede usar para esto. Copie el blk*.dat de esa descarga a un directorio temporal e inicie Bitcoin-qt -loadblock=temp/blk0001.dat y observe cómo se cargan los bloques rápidamente.]
Voy a tratar de responder la pregunta yo mismo.
Copias recientes de los archivos de datos de la cadena de bloques están disponibles (y firmadas digitalmente) por uno de los principales desarrolladores del equipo de Bitcoin.org.
La URL no es SSL, pero hay una firma digital que se puede usar para verificar que el binario descargado coincida.
Al usar estos, confío en que el desarrollador sea honesto y no haya alterado la cadena de bloques. Si este desarrollador lo intentara, se podrían inyectar datos no válidos en el archivo de datos de la cadena de bloques, lo que luego engañaría a mi cliente para que verificara transacciones que en otro lugar serían rechazadas como no válidas.
Incluso hay un archivo un poco más antiguo de Blockchain del sitio de distribución de Bitcoin Sourceforge:
Ahora veo que otros también proporcionan datos binarios de blockchain.
Este sitio no usa SSL ni tiene una firma digital para garantizar que la descarga sea la misma que la que aloja el autor.
Si bien estos métodos generalmente no se consideran seguros, puede haber situaciones en las que la seguridad se puede cambiar por la conveniencia. Por ejemplo, si solo gastará monedas recibidas previamente y no las recibirá, existe poco riesgo al usar uno de estos archivos de cadena de bloques.
Respuesta corta: si el cliente verifica los bloques, está bien. Los clientes no suelen hacer esto y la falta de certeza sobre la base de datos es riesgosa. Qué ataque es posible dependerá de las especificaciones del cliente, pero lo más probable es que existan ataques.
Tendría que confiar en esa persona y tener una medida de integridad de datos o revalidar la cadena descargada usted mismo. Recuerde que el cliente predeterminado trata los bloques ya descargados de manera bastante diferente a los bloques descargados.
Una solución de "baja tecnología" podría ser ejecutar el cliente bitcoin dos veces, una con y otra sin la cadena descargada. Configúralos para que se conecten entre sí. Ahora uno de los dos descargará y verificará la cadena localmente. No es la forma más eficiente, pero es tan confiable como la descarga desde la web.
Editar: después de una discusión con Pieter Wuille, estoy seguro de que no estoy seguro de qué tan seguras son las cadenas descargadas y eliminé las afirmaciones sobre seguridad.
Hay un archivo reciente con datos de blockchain sin procesar e instrucciones sobre cómo hacer que su cliente bitcoin-qt funcione rápidamente en:
He seguido las instrucciones y funcionó perfectamente. Tuve a mi cliente listo y funcionando en menos de 3 horas
Esteban Gornick
pieter wuille
Esteban Gornick
pieter wuille