¿Puede alguien explicarme FIBER como si tuviera 5 años y por qué es útil?

Leí el sitio web pero implican que ya sabes por qué esto es valioso. ¿Puede alguien por favor iluminarme sobre este tema?

Respuestas (2)

Primero el "por qué importa":

Fiber (Fast Internet Bitcoin Relay Engine) es un protocolo que intenta entregar bloques de Bitcoin en todo el mundo con demoras tan cercanas a los límites físicos como sea posible.

Esto es muy importante porque la minería de Bitcoin pretende ser una lotería justa: si tiene el x% del hashrate, debería encontrar el x% de los bloques, en promedio. Pero cuando se necesita tiempo para comunicar, la minería de bloques actúa más como una carrera que como una lotería: el minero más grande obtiene una parte injusta, creando una presión para centralizar.

Esto se debe a que cuando un minero crea un bloque, otros mineros no pueden extenderlo hasta que hayan oído hablar de él, durante ese tiempo pueden crear sus propios bloques. Si eres un pequeño minero y creas un bloque, esto funciona en tu contra porque nadie intenta extraer el sucesor de tu bloque hasta más tarde. Si un minero más grande extrae un bloque, también funciona en tu contra, porque te has quedado atrás.

Este comportamiento de carrera es el mismo que permite la minería egoísta.

El efecto de carrera también puede beneficiar a los atacantes que intentan dominar la red, porque no necesitan competir con el hashrate perdido por bloques obsoletos.

Mejorar las velocidades de propagación reduce la carrera y hace que la minería sea más justa, reduce la presión para centralizar y mejora la seguridad de la red.

Ahora, "¿por qué es difícil":

El mundo es un lugar grande y un viaje de ida y vuelta desde San Francisco a Australia suele ser de más de 200 ms. Estos retrasos se deben sustancialmente a la velocidad de la luz en la fibra y, si bien un mejor enrutamiento puede mejorarlos un poco, no desaparecerán sin las comunicaciones de neutrinos a través de la tierra u otras cosas de ciencia ficción.

Los enlaces de Internet internacionales frecuentemente tienen pérdida de paquetes. Si envía un mensaje en una ruta RTT de 200 ms, no puede escuchar sobre ningún paquete perdido durante 200 ms, y no pueden obtener ningún reemplazo por otros 100 ms. Los protocolos de transmisión tradicionales como TCP no logran alcanzar la capacidad del enlace cuando los retrasos son altos, especialmente si hay alguna pérdida.

En teoría, el problema se soluciona un poco porque el 99,9% de los datos del bloque ya se conoce porque el bloque contiene principalmente transacciones que ya se han transmitido, pero desafortunadamente un nodo que envía un bloque no sabe qué transacciones te faltarán en ese momento. su bloque aparece y usted les dice que tomará demasiado tiempo debido a los tiempos de ida y vuelta mencionados anteriormente .

Qué hace Fiber para solucionarlo:

La fibra le permite construir de manera efectiva un nodo distribuido que mueve internamente un bloque alrededor del mundo muy cerca del retardo de comunicación unidireccional más bajo entre las computadoras que lo componen.

El autor de la fibra solía ejecutar uno de esos nodos en sistemas públicos que estaban bien mantenidos y cualquiera podía conectarse. El protocolo P2P normal de Bitcoin, con BIP152, se usó para la última milla, ya que para eso está optimizado BIP152.

Similar a BIP152 (con el que fue desarrollado conjuntamente), Fiber primero envía un boceto de bloque corto: una lista de hashes y longitudes cortos que permiten que el otro extremo use su mempool para diseñar transacciones en un bloque, con huecos en posiciones donde el faltaban transacciones o el hash era ambiguo.

Luego, Fiber divide los bloques en paquetes y envía datos de corrección de errores. La corrección de errores permite que el receptor recupere el bloque tan pronto como haya recibido tantos paquetes como fragmentos faltantes, aunque el remitente no sepa qué falta. La codificación de corrección de errores también se utiliza en el boceto inicial. Esto es similar a cómo funciona la codificación Raid o PAR, pero la implementación se complica mucho más por la necesidad de ser muy rápido.

Toda esta comunicación se realiza a través de UDP con velocidades de transmisión preprogramadas, por lo que no es necesario aumentar lentamente ni esperar paquetes perdidos.

El remitente también envía diferentes fragmentos a cada uno de sus pares de Fiber y esos mismos pares transmiten los fragmentos entre sí tan pronto como los reciben, a fin de utilizar todo el ancho de banda disponible de la interfaz. Cuando un par de Fiber obtiene lo suficiente para decodificar el bloque, lo hace y comienza a emitir fragmentos novedosos.

Este proceso evita que se envíen datos duplicados y es muy resistente a la pérdida de paquetes, así como a las fallas de enlaces y nodos, y logra un retraso muy constante.

En cada paso, Fiber cambia el ancho de banda por la latencia y puede enviar varias veces el tamaño del bloque de datos para lograr el menor retraso en los enlaces de larga distancia por los que viaja.

Hay mucho más en los detalles, probablemente suficiente para dos docenas de preguntas.

¿De dónde viene la fibra?

La fibra fue construida por Matt Corallo y fue el producto de varios años de experiencia ejecutando redes de retransmisión rápida anteriores como varios años de investigación en técnicas de propagación rápida de bloques. Matt tomó muchas ideas que eran demasiado lentas computacionalmente para ser prácticas, resolvió los desafíos de ingeniería restantes, optimizó al máximo y luego puso el resultado en un sistema público bien seleccionado. La buena gestión de la red y el trabajo del administrador del sistema son casi tan importantes para reducir los retrasos como el propio protocolo.

La FIBRA es valiosa ya que permite a los mineros propagar extremadamente rápido sus bloques a otros mineros y al resto de la red. El objetivo de FIBER es reducir la latencia en la transmisión de bloques. Por lo tanto, los mineros perderán menos tiempo tratando de extraer un bloque que ya se ha encontrado, por lo que reducirán sus tasas de bloques obsoletos y estarán trabajando en el último bloque casi tan pronto como se encuentre y se transmita a la red.