Cómo los protocolos P2P buscan resolver la centralización de la minería Bitcoin PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Cómo los protocolos P2P buscan resolver la centralización de la minería de Bitcoin

Los pools de minería de Bitcoin dependen de la centralización, pero P2Pool y otros protocolos han buscado reducir la necesidad de confianza en terceros.

En un Artículo anterior, escribí sobre la naturaleza de la descentralización frente a la centralización en la minería de Bitcoin y cómo conceptualizar eso en un sentido mayoritariamente cualitativo. El artículo desglosó toda la pila de minería, desde la coordinación del grupo hasta la producción de energía para dar una idea de la relación entre las diferentes capas de la pila de minería y el potencial para maximizar la descentralización, señalando que cuanto más abajo en la pila ir hacia la producción de energía, más difícil e intensivo en capital se vuelve traer un nivel significativo de descentralización a esa capa.

En este artículo, tengo la intención de profundizar en el tema de los grupos de minería y la coordinación de los mineros para facilitar las operaciones mineras de propiedad independiente que cooperan en un esfuerzo por extraer bloques para agregarlos a la cadena de bloques.

La creación de piscinas mineras

La minería ha recorrido un largo camino desde los días en que simplemente podía hacer clic en un botón y extraer bloques de manera confiable por sí mismo en la CPU de una computadora portátil. En aquel entonces, era efectivamente un esfuerzo de un aficionado que no requería una inversión de capital real o experiencia, pero hoy en día es un mercado profesional multimillonario que requiere una inversión de capital masiva a escala. Es un juego de pelota completamente diferente.

Una de las consecuencias naturales de este cambio en la naturaleza de la industria minera fue la creación muy temprana de pools de minería. Cuando la minería dejaba efectivamente una computadora portátil funcionando en la esquina, la variación y la imprevisibilidad de cuándo encontraría un bloque no era realmente un gran problema; eventualmente, lo haría y el costo de energía de mantener una computadora portátil en funcionamiento no era realmente económico. importancia.

Una vez que las cosas cambiaron a GPU y ASIC, hubo un costo de inversión material por adelantado y un costo de electricidad mucho más significativo para mantenerlos en funcionamiento. Esa imprevisibilidad sobre cuándo encontrar un bloque se convirtió en un problema mucho mayor para los mineros que intentaban obtener un retorno de sus inversiones de capital y operar de manera rentable. Aquí es donde los pools de minería entran en escena.

Permiten a los mineros cooperar para encontrar un encabezado de bloque válido que trabaje en el mismo bloque, enviando la recompensa de Coinbase al grupo de minería, que luego la distribuye proporcionalmente entre todos los mineros participantes en relación con la cantidad de trabajo que han realizado para ayudar a encontrar el bloque. Esto se demuestra entregando "acciones" al grupo minero; bloques que no cumplen con el objetivo de dificultad de la red pero que son lo suficientemente altos como para demostrar que un minero no está mintiendo y en realidad está ejecutando hardware e intentando encontrar un bloque válido.

Centralización de pools de minería

Los grupos de minería centralizados tienen grandes implicaciones para los mineros individuales. Son un punto de centralización en el proceso de seleccionar (o, más importante, excluir) transacciones para incluirlas en un bloque. Esto le da a cada operador del pool de minería un control total sobre las transacciones que eligen procesar en la cadena de bloques, sin que los propietarios reales del hardware de minería puedan opinar sobre eso, excepto abandonando el pool si no están de acuerdo con los criterios que el el operador elige establecer.

También custodian los bitcoins de los mineros individuales hasta que esos mineros decidan retirarlos del grupo, dejando al operador del grupo actuando como custodio y punto central que podría defraudar a los mineros que utilizan el grupo, o ser presionado por los gobiernos para confiscar los fondos de los mineros individuales o aplicar KYC. requisitos para ellos.

Entonces, ¿qué soluciones existen para abordar este problema?

P2Pool: el pool de minería descentralizado original

Piscina P2 es el protocolo de grupo de minería descentralizado original. Es un protocolo peer-to-peer en el que los mineros se coordinan entre ellos para dividir las recompensas mineras mientras trabajan juntos para encontrar un bloque válido que cumpla con el objetivo de dificultad. Esta coordinación se logra utilizando lo que el diseño del protocolo denomina "cadena compartida".

Los mineros en P2Pool toman bloques que no cumplen con el objetivo de dificultad de la red y extraen efectivamente su propia cadena de bloques compuesta por todas las copias del bloque único en el que está trabajando el grupo. Cuando alcanzan el objetivo de menor dificultad donde el bloque se convertiría en un grupo para demostrar que están minando en un modelo centralizado, transmiten ese bloque al resto de los mineros. La "dificultad para compartir" de P2Pool se centró en que los mineros encontraran una acción aproximadamente una vez cada treinta segundos.

Estoy seguro de que los lectores se preguntan cómo funciona el pago a los mineros individuales. La transacción de la base de monedas está estructurada de modo que se crea una salida para cada minero individual en el P2Pool, dividiendo los fondos directamente de la transacción de la base de monedas. Los mineros en P2Pool verifican que todos los pagos para ellos mismos y para todos los que participan en el grupo sean correctos, y que cada minero que ha contribuido con una acción a la cadena de acciones recibe el pago correcto por su trabajo en cada nueva acción agregada. Si algún minero participante no está estructurando correctamente los pagos a todos en su última parte, entonces todos los demás mineros en el P2Pool dejan de incluirlos en sus propios pagos y efectivamente "desalojan" a ese minero del grupo por no comportarse de manera justa.

Este diseño provocó algunos problemas de escala, por lo que ya no se usa. A medida que crece la participación en un P2Pool, también lo hace el objetivo de dificultad agregada para las acciones en la cadena de acciones, cuyo objetivo es aproximadamente una vez cada treinta segundos. Esto significa que para los mineros más pequeños se vuelve más difícil alcanzar la dificultad de la cadena de acciones dentro de un período de treinta segundos. Esto significa que para los mineros más pequeños, la variación, o la imprevisibilidad, en sus ingresos aumenta a medida que aumenta la tasa de hash agregada en un P2Pool. Esto también conduce a una mayor cantidad de bloques obsoletos a medida que más mineros encuentran acciones competidoras para la cadena de acciones aproximadamente al mismo tiempo que más mineros se unen a P2Pool, lo que lleva a un "trabajo desperdiciado" desde el punto de vista de los mineros individuales que solo obtienen compensados ​​si su parte está incluida en la cadena de acciones.

El otro problema principal de escalabilidad está en los pagos que van directamente a los mineros individuales desde la propia transacción de la base de monedas. Dado que a cada minero se le paga en proporción a las acciones que ha extraído y que están incluidas en la cadena de acciones, cada minero en el P2Pool requiere que se agregue una nueva salida en la transacción de la base de monedas.

Esto tiene dos consecuencias. Primero: los mineros reciben UTXO pequeños y de bajo valor en cada bloque que encuentra el P2Pool, lo que conlleva el costo de condensar esas salidas más adelante y/o asumir el costo de transacciones mucho más grandes cuando van a gastar sus monedas debido a la numerosos UTXO individuales con los que terminan, en lugar de uno solo cuando se retiran después de un período de un grupo convencional. Segundo: cada nueva salida de coinbase está ocupando un espacio de bloque que podría ser consumido por las transacciones de otras personas y generando más ingresos para P2Pool en concepto de tarifas. Es una doble pérdida para los mineros que participan en el protocolo.

Estos dos problemas contribuyeron a que el protocolo desapareciera lentamente y finalmente cayera en desuso. Según todas las indicaciones de mi mejor esfuerzo para rastrear estadísticas precisas y recientes (muchos exploradores de bloques antiguos que rastrean la participación del grupo de minería se han cerrado a lo largo de los años), parece que el último bloque extraído por P2Pool estaba en Febrero 12, 2019.

P2Pool con pagos de canales de pago

En 2017, un mes después de que se fijó la activación de SegWit, Chris Belcher hizo una propuesta para mejorar la escalabilidad de P2Pool con el uso de canales de pago unidireccionales y un grupo de centros que manejan los pagos a los mineros.

El objetivo central de la propuesta es abordar el problema de las transacciones de base de monedas más grandes que pierden el dinero de los mineros de dos maneras diferentes. En un nivel alto, la idea es simplemente pagar toda la transacción de la base de monedas a un centro con canales de pago abiertos a los mineros individuales, y garantizar que la capacidad de reclamar los fondos de la transacción de la base de monedas esté atómicamente vinculada a los mineros que están siendo compensados. sus acciones a través de los canales de pago.

Para lograr el objetivo de atomicidad entre la transacción de coinbase y los canales de pago para pagos, el script de salida de la transacción de coinbase debe personalizarse. En la propuesta de Belcher, se estructura como un guión multi-rama con tres condiciones de gasto:

  • Un dos de dos multisig. Clave uno: el cubo (Hc). Clave dos: minero que encontró el bloque (Mc).
  • Una sola clave y un hashlock. Clave: el cubo (H). Hashlock: un valor aleatorio generado por el concentrador (X).
  • Una sola llave y un timelock. Clave: el minero que encontró el bloque (M). Timelock: un timelock relativo a CSV de seis meses.

Cualquiera de estas condiciones de gasto se puede utilizar para desbloquear la salida de transacciones de coinbase. Ahora, veamos el script del canal de pago para los mineros para que podamos ver cómo interactúan las dos cosas:

  • Un dos de dos multisig. Clave uno: el eje (Hc1). Clave dos: el minero (Mc1).
  • Un dos de dos multisig y un hashlock. Clave uno: el hub (Hu1). Clave dos: el minero (Mu1). Hashlock: el valor aleatorio generado por el concentrador utilizado en la base de monedas (X).

Ahora, veamos cómo estas dos cosas interactúan entre sí.

A medida que los mineros producen recursos compartidos para agregar a la cadena compartida, el centro supervisa el progreso. Para cada acción, el centro actualiza el estado del canal con mineros que entregan una acción para pagarles proporcionalmente a la cantidad de trabajo que están haciendo. Sin embargo, solo les dan una firma para la segunda ruta de secuencia de comandos que requiere que se gaste la preimagen del hashlock; esto garantiza que, de forma predeterminada, sin que el centro les dé una firma para la primera ruta, no pueden reclamar esos fondos a menos que el centro gaste la base de monedas. salida por sí mismo usando la ruta del script con el hashlock, lo que requiere que publiquen la preimagen.

Ahora, eventualmente uno de los mineros en P2Pool encontrará un bloque válido y lo publicará en la red. En este punto, el centro puede actualizar todos los canales de pago con los mineros y proporcionar la firma a la primera ruta del script en el canal, lo que permite a cada minero cerrar su canal y cobrar las recompensas que ha ganado cuando lo desee sin necesidad del hashlock. preimagen

En este punto, el minero que encontró el bloque firma la primera ruta de script en la base de monedas, lo que permite que el centro reclame los fondos de la base de monedas. Ese minero recibe una pequeña bonificación de las recompensas mineras para incentivarlo a firmar cooperativamente. Pero recuerda: si el minero se niega a cooperar, el centro puede simplemente gastar por sí mismo usando la ruta hashlock y revelar la preimagen, lo que permite que todos los mineros obtengan su parte justa de la recompensa.

Esto solo tiene la desventaja de obligar a todos los canales a cerrarse en cadena, y es necesario volver a abrirlos para continuar con la extracción. La última opción existe en caso de que el operador del centro decida dejar de procesar los pagos o desaparezca. Después de seis meses, el minero que encontró el bloque puede reclamar los fondos en su totalidad si el centro no ha respondido para cooperar o ha gastado las monedas con la ruta hashlock.

Esto deja dos problemas específicos en términos de modelo de amenazas con las mejoras propuestas por Belcher. Decidir qué transacciones incluir en un bloque deja espacio para la variación en la cantidad de la recompensa total del bloque que se basa en lo que los mineros individuales eligen incluir en las plantillas de bloque que están extrayendo.

Cuando se introducen canales de pago, esto crea un margen de error, es decir, la recompensa del bloque minado real no es igual a lo que un centro de minería se compromete en los canales de pago a los mineros. En el caso de que las estimaciones de tarifas reales sean más pequeñas que la recompensa del bloque, el centro puede simplemente actualizar los canales de pago utilizando la ruta de gasto cooperativo con la cantidad menor, y siempre que no reclamen la salida de la base de monedas con la ruta hashlock, los mineros no tienen más remedio que aceptar el pago menor que coincide con lo que realmente fue la recompensa minera.

En el caso de que la recompensa minera fuera ligeramente más alta que la estimación, aún le conviene al centro actualizar los canales a los mineros para reflejar esto, ya que los mineros que el centro trata de manera deshonesta pueden simplemente irse en cualquier momento. El único caso extremo en el que podría tener sentido que el centro deserte y se quede con la recompensa adicional sería si alguien pagara una tarifa de minero anormalmente alta, pero aparte de esa situación, está en el interés del centro y de los mineros ajustarse a cualquier discrepancia entre la estimación de la recompensa y la recompensa del bloque real.

El segundo problema es el hecho de que el concentrador es un punto central que puede ser DDoS y forzado para evitar que P2Pool funcione. La propuesta de Belcher implica el uso de múltiples centros y el envío de cada transacción de base de monedas desde diferentes bloques a diferentes centros. Sin embargo, esto requiere que los mineros tengan canales abiertos desde todos los centros que están utilizando, lo que, según la estimación de Belcher de un centro que necesita 50 veces la recompensa del bloque (alrededor de 650 BTC) para proporcionar liquidez a los mineros, se vuelve increíblemente ineficiente en términos de capital.

Braidpool: otra iteración

Participar Grupo trenzado (advertencia: el enlace es una descarga directa en PDF desde GitHub). Braidpool es una propuesta de Bob McElrath y Kulpreet Singh que se basa en la propuesta de Belcher utilizando canales de pago. Hay dos cambios principales introducidos que mejoran los problemas pendientes que quedan con la propuesta de Belcher.

El primero es una alteración en la forma en que los centros y los mineros se comunican entre sí. Proponen que los mineros adjunten una dirección Tor v3 a cada uno de los recursos compartidos que transmiten al grupo. De esta forma, el concentrador puede operar sin exponer ningún extremo de la red que sea susceptible a ataques DoS.

El operador del concentrador puede luego conectarse con los mineros para abrir y actualizar los canales con ellos, aliviando la necesidad de que los mineros usen múltiples concentradores para evitar un único punto de ataque. Esto permite que un Braidpool opere con un solo concentrador, lo que hace que todo el sistema sea más sólido y eficiente en términos de capital.

Cómo los protocolos P2P buscan resolver la centralización de la minería Bitcoin PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.
Fuente: Libro blanco de Braidpool

El segundo cambio es el uso de un gráfico acíclico dirigido (DAG) en lugar de una cadena de acciones. El problema con la cadena de acciones era que, con el objetivo de tiempo compartido de treinta segundos, la dificultad requerida para las acciones aumentaba a medida que el grupo crecía en tamaño, haciéndolo más difícil para los mineros más pequeños. El uso de un DAG como Ethereum, donde no es un juego de suma cero de una sola acción que se convierte en la cadena de acciones y otras quedan huérfanas, permite a los mineros establecer dinámicamente una dificultad para las acciones que se puede ajustar en función de la tasa de hash que tienen y cómo con frecuencia pueden encontrar acciones con él.

La estructura DAG incluye a todos los que han participado en él entre los bloques de Bitcoin encontrados reales, distribuyendo las recompensas proporcionalmente entre todos en función del trabajo que hayan proporcionado al DAG. Esto resuelve el problema de escala de la varianza para los mineros individuales a medida que los grupos crecen.

Aparte de estos dos cambios, el resto de la estructura es como la propuesta de Belcher, la base de datos coinbase y los guiones del canal son los mismos.

Consideraciones Finales:

Algunos lectores podrían preguntarse por qué Betterhash no se mencionó en este artículo. Si bien descentraliza la selección de transacciones para su inclusión en un bloque, no descentraliza por completo todas las funciones del grupo, lo que es más importante, la naturaleza de custodia de los fondos que manejan los grupos. Esto deja a los mineros abiertos a la coerción a través de la negativa a pagar fondos si el minero selecciona transacciones que el grupo no aprueba. Por lo tanto, no lo consideraría un grupo de minería descentralizado, aunque mejora marginalmente la situación en un entorno hostil pero no del todo antagónico.

Este artículo se ha centrado en P2Pool y ha propuesto iteraciones para mejorar sus limitaciones de escalado. En aras de no escribir un libro completo, no he mencionado otros diseños existentes o potenciales. Tan pronto como pueda hacerlo, planeo escribir un artículo de seguimiento sobre otros mecanismos para descentralizar los grupos de minería.

Esta es una publicación de invitado de Shinobi. Las opiniones expresadas son totalmente propias y no reflejan necesariamente las de BTC Inc o Bitcoin Magazine.

Sello de tiempo:

Mas de Bitcoin Magazine