Bitcoin Minisketch

La ejecución de clientes completos de Bitcoin es un componente vital de la descentralización sostenible de la red y una representación útil de la adopción saludable de la red. Sin embargo, operar nodos completos no es un proceso conveniente para que los usuarios principales accedan a Bitcoin.

Los nodos completos deben sincronizarse con toda la cadena de bloques de Bitcoin (~ 200 GB) y conectarse a varios pares para transmitir transacciones transmitidas a través de la red. Los nodos completos estándar se conectan con 8 pares y los relés de transacciones representan una gran parte del ancho de banda necesario para administrar un nodo completo.

Bitcoin Minisketch

Gregory Maxwell, un desarrollador líder de Bitcoin y cofundador de Blockstream, estimó que los relés de transacciones representan aproximadamente 87 por ciento de los requisitos de ancho de banda de nodo completo.

Además, las sincronizaciones completas de nodos pueden tardar varios días en completarse e implican algunos conocimientos técnicos básicos de Bitcoin. El proceso a menudo engorroso de ejecutar un nodo completo es una barrera sustancial para la adopción que evita en gran medida que muchos usuarios comunes lancen un cliente completo..

Varios desarrollos han mejorado el proceso de lanzamiento y operación de un cliente completo, como Nodo de hardware de Casa y de Pierre Rochard lanzador de nodos – que incluye compatibilidad LN con Borrar y Joule. Sin embargo, reducir la carga sobre los operadores de nodos completos es una empresa prudente a largo plazo y es el foco de varias mejoras en Bitcoin, incluido MiniSketch..

MiniSketch es un método propuesto para la “reconciliación de conjuntos” de conjuntos de mempool entre nodos de la red, encabezado por Peter Wuille, Gregory Maxwell y Gleb Naumenko.

Sincronización entre nodos

Antes de sumergirse en MiniSketch, es importante abordar el proceso de sincronización entre nodos y el trasfondo de la reconciliación de conjuntos..

La reconciliación de conjuntos es un proceso en informática en el que conjuntos de datos resuelven (es decir, concilian) las diferencias entre sus conjuntos de datos para converger en copias precisas. Maxwell describió el proceso en un pedazo por la revista Bitcoin como similar a sincronizar listas de contactos telefónicos entre dos personas que comparten muchos de los mismos contactos.

“Podrías enviarles tu lista completa pero no cabe en una postal y sería un desperdicio en cualquier caso, ya que ellos ya conocen a la mayoría de los contactos… De hecho, es posible comunicar todo tu conjunto de contactos a enviándoles sólo tanta información como el tamaño de la diferencia entre sus listas, incluso sin tener una idea previa de cuáles son las diferencias reales “.

La conciliación de diferencias entre conjuntos de datos de diferentes computadoras requiere ancho de banda para hacer referencias cruzadas de las discrepancias específicas entre los dos conjuntos y converger en la copia idéntica. Los algoritmos para mejorar la conciliación de conjuntos proporcionan rutas más eficientes para conciliar las diferencias entre conjuntos de datos, lo que reduce los requisitos de ancho de banda.

MiniSketch en Bitcoin es una implementación del PinSketch Algoritmo de boceto seguro basado en BCH. BCH significa “Bose-Chaudhuri-Hocquenghem“Y son códigos que se utilizan para la corrección de errores cíclicos en la programación de computadoras y se implementan en aplicaciones como comunicaciones por satélite.

En Bitcoin, MiniSketch implementa PinSketch para optimizar la distribución de transacciones en la red, permitiendo que los clientes completos se conecten a más pares con requisitos de ancho de banda reducidos..

Los conjuntos de datos que se concilian en Bitcoin son las transacciones recibidas y transmitidas por los nodos pares. La mayoría de los nodos contienen muchas de las mismas transacciones, pero el orden en el que se reciben a veces causa discrepancias, lo que retrasa la sincronización de datos entre sus memorias y aumenta el uso del ancho de banda..

Los nodos de la red Bitcoin transmiten transacciones a través del protocolo de chismes de redes, conocido como difusión. El objetivo es transmitir transacciones a través de la red a la mayoría de nodos muy rápidamente. Esto conduce a inconsistencias en el orden de las transacciones dentro de las memorias en comparación con los bloques sincronizados recientemente..

Minisketch

MiniSketch está diseñado para mejorar el proceso de conciliación de conjuntos al presentar un mecanismo más eficiente para que los mempools de los nodos se sincronicen y pasen solo los datos necesarios entre ellos en lugar de los conjuntos de datos completos..

Los nodos desperdician un ancho de banda sustancial al discernir qué nodos necesitan recibir qué datos de transacción para que la red esté sincronizada a medida que los mineros recogen las transacciones del mempool. MiniSketch permite a los nodos hacer referencias cruzadas de los datos a través de un algoritmo basado en solamente los datos que ocurren en un conjunto pero no en el otro.

Normalmente, el intercambio de datos entre nodos se centra en hacer referencia a todos los conjuntos de datos de mempool. MiniSketch permite una sincronización (reconciliación) mucho más compacta de conjuntos de memoria de transacciones al esbozar las diferencias entre conjuntos de datos a través de “sumas de comprobación de conjuntos”.

Las sumas de comprobación establecidas tienen una capacidad predeterminada y se pueden utilizar para trazar la diferencia simétrica entre dos conjuntos de datos. Por ejemplo, si Alice y Bob quieren conciliar sus conjuntos de transacciones de nodos, pueden usar MiniSketch para calcular un esquema de los elementos dentro de sus conjuntos de datos..

Una de las partes, digamos Bob, mide la diferencia simétrica entre los dos conjuntos de datos, lo que equivale a encontrar un número preciso de diferencias entre varios tipos de sumas de datos. Sin embargo, Bob solo busca recuperar los diferentes datos del boceto de Alice de su boceto. Luego envía las diferencias a Alice, y ambos pueden reconciliar sus conjuntos de transacciones de manera mucho más eficiente..

De acuerdo con la MiniSketch Github Archivo Léame:

“Esto siempre tendrá éxito cuando el tamaño de la diferencia (elementos que tiene Alice pero Bob no más elementos que Bob tiene pero Alice no) no excede la capacidad del boceto que Alice envió. Lo interesante es que esto funciona independientemente de los tamaños reales de los conjuntos, solo importa la diferencia “.

Según Maxwell en el artículo de Bitcoin Magazine, MiniSketch podría permitir una reducción potencial en la sobrecarga de transmisión de transacciones de nodo en 40X, que es lo que indicaron sus simulaciones..

Las dos ventajas principales de MiniSketch son:

  1. Reducciones de ancho de banda de nodo.
  2. La capacidad de los nodos para conectarse a más pares..

La reducción del ancho de banda usando MiniSketch es evidente y puede usarse para una propagación de bloques más eficiente en enlaces por satélite de bajo ancho de banda.

La disminución de la carga de ancho de banda por nodo también permitiría a los nodos conectarse con más pares de lo habitual, como 16 en lugar de 8. Otras ventajas y aplicaciones de MiniSketch, como se cita en el repositorio de Github, son su combinación potencial con dc-nets para la “comunicación anónima criptográfica de múltiples partes” y para ayudar a extraer una clave criptográfica de datos biométricos “difusos”.

En particular, MiniSketch también es opcional para los operadores de nodos, ya que no forma parte del consenso de Bitcoin que requiere que los nodos se actualicen a la última especificación principal. En cambio, los operadores podrían optar por ejecutar el protocolo con otros para aumentar la eficiencia de su ancho de banda..

Un BIP formal para MiniSketch aún no está disponible, y una propuesta futura puede integrarse con otro protocolo conocido como “Tablas de búsqueda de Bloom invertible’Para mejorar la propagación de bloques. La existencia opcional de MiniSketch también lo hace menos propenso a ser atrasada con otras propuestas de cambio de consenso formal a la criptomoneda heredada..

Las ventajas generales de MiniSketch son atractivas para los operadores de nodos, ya que reduce la barrera para operar un nodo completo y lo hace más eficiente. Más clientes completos de Bitcoin significan una descentralización más sólida y una red más saludable.