Pages:
Author

Topic: Propuesta alternativa para un mineo más racional y una red más resiliente - page 2. (Read 2565 times)

sr. member
Activity: 310
Merit: 253
Una cosa que me había dejado en mi mensaje anterior, que publiqué por error antes de tiempo:

Al no poder forzar la creación de hashes, cada nodo entra en una especie de lotería en que todos tienen el mismo número de boletos y las recompensas se van repartiendo al azar entre todos. El poder de cálculo de la red es simplemente 65 * (número_de_nodos) kH/s. Y, lo que es más importante, no tiene sentido la minería en "pools", puesto que cada nodo puede cumplir por sí mismo la máxima tasa de minado eficiente.

Como tú mismo y otros hemos comentado, existen otras maneras de recalcular los valores hash sin esperar a incrementar el contador de tiempo, por lo que las restricciones al rango de valores del nonce simplemente llevarían a los mineros a recurrir a otras estrategias válidas para poder calcular valores hash sin pausa.

El problema que veo, como decía en mi anterior mensaje, estaría en pretender sustituir la idea de "poder computacional del conjunto de nodos" por el concepto aparentemente más simple de "número de nodos" y que sea este último parámetro el determinante para la lotería de los bloques. Tengo la impresión de que eso (diferenciar los nodos individuales) no es posible.
sr. member
Activity: 310
Merit: 253
En otro hilo he expresado mi opinión de que bitcoin tiene un problema de diseño en la generación de bloques mediante la "prueba de trabajo". Este problema se manifiesta con dos síntomas:

  • La absurda carrera a ninguna parte de la potencia de cálculo, que ahora experimenta un repunte importante con los ASIC: es como el juego de la cuerda, con dos equipos tirando de ella; de repente uno ata un burro y parece que va a ganar, hasta que el otro equipo ata otro burro; después un caballo, después un tractor, después un camión... y ambos equipos siguen exactamente donde estaban al principio, pero habiendo invertido estérilmente en todos esos recursos. Pues bien:  ¿en qué beneficia esa carrera a bitcoin? ¿acaso es más seguro con más potencia de cálculo? ¿Para qué gastar tanta energía y recursos tontamente?
  • Favorece la creación de "pools" centralizados, rompiendo el carácter distribuido de la red. Eso no sólo no ayuda al proyecto, sino que lo perjudica gravemente

La potencia de cálculo, aunque se utilice calculando valores hash en sí mismos irrelevantes, sirve para reducir la probabilidad de que un atacante malicioso se haga con la toma de decisiones de la red. En el sistema de prueba-de-trabajo se establece una equivalencia entre "poder de decisión" y "poder de computación". La idea es que en una red con muchas máquinas participantes habrá una correlación buena entre el poder de computación disponible y la cantidad de usuarios interesados en que el sistema funcione. Si consideras que esos cálculos de valores hash son un gasto tonto de energía y recursos tendrás que encontrar otra manera que impida, con la misma efectividad, que un atacante pueda hacerse con el control del 51% de poder de decisión en la red.

[...]

Por tanto, despues de nuestros 10.000 intentos, esperamos 1 segundo y volvemos a intentarlo. El problema es que no es necesario esperar... ¡porque no nos da tiempo a desbordar el contador real, que contiene 32 cifras binarias! Y 32 cifras binarias supone la friolera de probar 2^32 = 4x10^9 hashes antes de que el contador de tiempo se incremente. Es decir, tendríamos que tener una potencia de cálculo de 4 GH/s para desbordar el contador "nonce" antes de que se incremente el contador temporal. Esto favorece repartir el trabajo en "mineros", asignando a cada uno una porción del "nonce".

Aunque se acabaran los valores posibles del nonce en menos de un segundo, se pueden hacer otros cambios como modificar la dirección Bitcoin a la que iría la recompensa del bloque. Creo que eso es lo que hace el código original de bitcoind a través en la función IncrementExtraNonce. Incluso para modificar la marca temporal tal vez tampoco sería necesario esperar ya que los tiempos en Bitcoin se utilizan muy a la ligera; de hecho un bloque N+1 puede tener un tiempo de creación anterior al del bloque N que le precede. Lo que quiero decir es que el algoritmo de minado no está pensado para que sean necesarias pausas de espera sino precisamente para calcular valores hash a destajo hasta que se encuentre uno válido.

Pues bien, mi propuesta es rebajar el "nonce" a 16 bits, que es equivalente a 2^16 = 65.536 hashes. Por tanto, con una potencia mínima de 65 kH/s, fácilmente conseguible incluso con CPUs, cada nodo puede desbordar su "nonce" y esperar a que el contador de tiempo se incremente. Salvo que sea muy impaciente (que lo será, si hay BTCs de recompensa de por medio) y decida manipular la otra parte de la cabecera que es manipulable: el "hash" de las transacciones; en particular, la transacción de generación, que es tremendamente voluble y cuya manipulación altera la cabecera del bloque a discreción.

Pero entonces, ¿para qué mantener esos 65.536 hashes? Si el sistema de prueba de trabajo basado en calcular valores de hash no te convence y ves una manera de identificar los nodos individuales sin atender a la potencia de cálculo, ¿qué te aporta el sistema de minado? Mi impresión es que no valen las medias tintas: o bien mantienes la prueba-de-trabajo con todo lo que eso conlleva: minado, bloques, etc. o bien lo eliminas todo, pero en ese último caso seguramente necesitarías algún tipo de centralización. Todos los intentos de eliminar los cálculos de hash aparentemente absurdos del sistema de prueba de trabajo suelen chocar con alguna incompatibilidad con la idea de la descentralización.

Quote
Pues bien:  ¿en qué beneficia esa carrera a bitcoin? ¿acaso es más seguro con más potencia de cálculo? ¿Para qué gastar tanta energía y recursos tontamente?

Sí, cuanta más potencia de calculo, más segura es la red Bitcoin.


Eso no es verdad.

La red es más segura con más nodos, no necesariamente con más potencia de cálculo.

Pero entonces tienes el problema de decidir qué es "un nodo". Sin haberme parado a pensarlo mucho, me imagino que hay restricciones  de IP y puertos lógicos que pueden dificultar que un atacante haga un programa que simule ser muchos nodos, pero creo que es un tipo de ataque factible. Una máquina podría simular por software mil identidades diferenciadas, pero nunca podrá simular que tiene mil veces la potencia computacional que realmente tiene. Ese es para mí el gran logro intelectual de Satoshi Nakamoto: el poder computacional es lo único no falsificable en una red distribuida. Dicho de otro modo, en el mundo cibernético "un hombre un voto" no tiene sentido, pero "cierta potencia de cálculo un voto" sí lo tiene. Esa es más o menos la idea como yo la entiendo.
legendary
Activity: 1820
Merit: 1017
Oye Shevek, valoro tu esfuerzo. La ciencia y la técnica avanzan a base de no considerar inamovibles los axiomas en los que creemos, lo cual no quiere decir que la solución que hemos imaginado resuelva los problemas que se plantean, pero sin indagar e insistir en ellos no se avanza.


Así, a grandes rasgos, lo que logras es cambiar la carrera por conseguir chips más rápidos y eficientes por conseguir construir muchos equipos baratos que trabajen en conjunto. Me imagino equipos tipo Rasberry Pi o Arduino con sus propietarios compitiendo por lograr una granja de ellos lo mayor posible e invirtiendo cantidades similares a las actuales, es decir, lo que pueda permitirse cada minero. Cambias el riesgo de concentración de potencia de hash por concentración de equipos baratos y tendríamos la carrera tecnológica en el espacio de almacenamiento que, o se encuentra un resquicio en el software de modo que muchos nodos puedan compartir una misma base de datos (la cadena de bloques) o el que disponga de una tecnología que abarate el almacenar cientos de veces la cadena de bloques en cientos de nodos podrá lograr un mayor número de estos y controlar un porcentaje mayor de dicha red.


Pero es que eso no es un inconveniente, sino una ventaja. Mayor número de nodos implica una red más resistente...

Sólo si ese mayor número de nodos están controlados por un mayor número de personas de las que ahora controlan el hastrate.

El mecanismo que me falta por explicar implica que la red ve a cada IP como un único nodo; los equipos tras una NAT salen con la misma IP, por tanto son el mismo nodo; no serviría tener cientos de ordenadores tras una NAT, sino con una IP directa a internet. Habría que contratar servidores dedicados con su propia IP. Y eso es caro.

Habrá gente que se pueda permitir tal dispendio, pero dudo mucho que sea más fácil conseguir superioridad así, que con el sistema actual a base de invertir en GH/s.

Ya me imaginaba que podrías intentar limitar el número de nodos mediante IPs, el problema es que ahora se da más poder sobre la red a aquellos que deciden a quién se asignan las direcciones IP (ICANN) y tienen mayor ventaja los que disponen de más cantidad de direcciones, ver asignación de direcciones IP por país ―se puede comprobar cómo, por cuestiones políticas y de ventaja tecnológica, Estados Unidos tiene asignadas unas 5 IPs por habitante y controla el 44,5 % de las IPs que pueden existir mientras China se tiene que conformar con 0,25 IPs por persona; esto da una situación de claro privilegio a los EE.UU.―. En la hipótesis de que trabajemos con IPv6 desaparece este sistema de control puesto que podríamos considerar el número de direcciones IP ilimitado en la práctica.

En cuanto a los pools de minería seguirían existiendo porque dicho diseño no resuelve el problema por el que la gente se asocia a un pool y es la muy baja probabilidad de encontrar un bloque en un corto periodo de tiempo. Puesto que en este modelo esto se va a dar de la misma forma, la gente sumaría sus nodos al los de un gran pool minero para que se repartan proporcionalmente los bloques que encuentre el pool (que lo va a hacer en gran medida porque va a sumar una enorme cantidad de nodos trabajando para él) y así disminuir el tiempo de espera de varias semanas o meses para hallar un bloque mientras gastas electricidad y no sube el balance de dinero de tu monedero.

Je, je... eso se soluciona con lo que aún no he explicado. Pero demuestra que le das a la cabeza y que has reflexionado sobre el asunto. Muchas gracias.

Espero tu propuesta, pero solamente creo que vas a poder evitar la concentración del minado en pools si logras que la recompensa a los mineros se produzca de manera proporcional a su aporte en cada bloque que se encuentre.
legendary
Activity: 1623
Merit: 1608
Me cito a mi mismo:

Quote
Salvo que sea muy impaciente (que lo será, si hay BTCs de recompensa de por medio) y decida manipular la otra parte de la cabecera que es manipulable: el "hash" de las transacciones; en particular, la transacción de generación, que es tremendamente voluble y cuya manipulación altera la cabecera del bloque a discreción.

Es decir, que ya lo sé. Por eso he añadido:

Quote
Efectivamente, habría que cambiar también la forma en que se construye la transacción de generación, pero ahora no quiero extenderme más. Simplemente supongamos por ahora que esto también se puede controlar y veamos las implicaciones.

OK, Shevek. Queda claro.

Otra cosa por la que me gustan los ASICs es porque el coste de minería se convierte, sobre todo, en investigación y desarrollo en tecnología. En definitiva, el tipo de trabajo que cualquier país quiere tener dentro de sus fronteras.
sr. member
Activity: 252
Merit: 250
Por cierto, Shevek, recuerda que cada vez que añades una transacción al bloque, el hash de la cabecera cambia, por lo que además de por las razones explicadas anteriormente, me temo que tu propuesta no funcionaría...

Me cito a mi mismo:

Quote
Salvo que sea muy impaciente (que lo será, si hay BTCs de recompensa de por medio) y decida manipular la otra parte de la cabecera que es manipulable: el "hash" de las transacciones; en particular, la transacción de generación, que es tremendamente voluble y cuya manipulación altera la cabecera del bloque a discreción.

Es decir, que ya lo sé. Por eso he añadido:

Quote
Efectivamente, habría que cambiar también la forma en que se construye la transacción de generación, pero ahora no quiero extenderme más. Simplemente supongamos por ahora que esto también se puede controlar y veamos las implicaciones.
sr. member
Activity: 252
Merit: 250
Quote
Pues bien:  ¿en qué beneficia esa carrera a bitcoin? ¿acaso es más seguro con más potencia de cálculo? ¿Para qué gastar tanta energía y recursos tontamente?

Sí, cuanta más potencia de calculo, más segura es la red Bitcoin.


Eso no es verdad.

La red es más segura con más nodos, no necesariamente con más potencia de cálculo.
sr. member
Activity: 252
Merit: 250

La minería de bitcoins es un negocio muy competitivo. Siempre habrá una carrera continua por ser el minero más eficiente, por fabricar los ASICs más potentes del mercado, que consuman menos energía, etc. Es el coste que pagan los usuarios por eliminar de la ecuación la confianza necesaria en las monedas fiduciarias (euro, dólar,etc). Es decir, sustituimos confianza en bancos centrales por trabajo de minero.


Es que creo que no has entendido bien la propuesta: cualquiera que llegue a 65 kH/s ha alcanzado la máxima eficiencia. Repito: Cualquiera que llegue a 65 kH/s ha alcanzado la máxima eficiencia. Fin del problema. No tienen sentido los ASIC ni nada de eso.


Así, a grandes rasgos, lo que logras es cambiar la carrera por conseguir chips más rápidos y eficientes por conseguir construir muchos equipos baratos que trabajen en conjunto. Me imagino equipos tipo Rasberry Pi o Arduino con sus propietarios compitiendo por lograr una granja de ellos lo mayor posible e invirtiendo cantidades similares a las actuales, es decir, lo que pueda permitirse cada minero. Cambias el riesgo de concentración de potencia de hash por concentración de equipos baratos y tendríamos la carrera tecnológica en el espacio de almacenamiento que, o se encuentra un resquicio en el software de modo que muchos nodos puedan compartir una misma base de datos (la cadena de bloques) o el que disponga de una tecnología que abarate el almacenar cientos de veces la cadena de bloques en cientos de nodos podrá lograr un mayor número de estos y controlar un porcentaje mayor de dicha red.


Pero es que eso no es un inconveniente, sino una ventaja. Mayor número de nodos implica una red más resistente. Repito que la codicia rema a favor de la robustez de la red.

El mecanismo que me falta por explicar implica que la red ve a cada IP como un único nodo; los equipos tras una NAT salen con la misma IP, por tanto son el mismo nodo; no serviría tener cientos de ordenadores tras una NAT, sino con una IP directa a internet. Habría que contratar servidores dedicados con su propia IP. Y eso es caro.

Habrá gente que se pueda permitir tal dispendio, pero dudo mucho que sea más fácil conseguir superioridad así, que con el sistema actual a base de invertir en GH/s.

En cuanto a los pools de minería seguirían existiendo porque dicho diseño no resuelve el problema por el que la gente se asocia a un pool y es la muy baja probabilidad de encontrar un bloque en un corto periodo de tiempo. Puesto que en este modelo esto se va a dar de la misma forma, la gente sumaría sus nodos al los de un gran pool minero para que se repartan proporcionalmente los bloques que encuentre el pool (que lo va a hacer en gran medida porque va a sumar una enorme cantidad de nodos trabajando para él) y así disminuir el tiempo de espera de varias semanas o meses para hallar un bloque mientras gastas electricidad y no sube el balance de dinero de tu monedero.

Je, je... eso se soluciona con lo que aún no he explicado. Pero demuestra que le das a la cabeza y que has reflexionado sobre el asunto. Muchas gracias.
legendary
Activity: 1623
Merit: 1608
Y además, los ASICs generan incentivos directos e indirectos en las empresas que los fabrican. Vamos, que hasta los trabajadores de la línea de producción de los ASICs estarán interesados en el éxito de Bitcoin para mantener el trabajo. Este incentivo no existía cuando los bitcoins se minaban con una GPU de propósito general.

Por cierto, Shevek, recuerda que cada vez que añades una transacción al bloque, el hash de la cabecera cambia, por lo que además de por las razones explicadas anteriormente, me temo que tu propuesta no funcionaría...
legendary
Activity: 1148
Merit: 1001
Radix-The Decentralized Finance Protocol
Quote
Pues bien:  ¿en qué beneficia esa carrera a bitcoin? ¿acaso es más seguro con más potencia de cálculo? ¿Para qué gastar tanta energía y recursos tontamente?

Sí, cuanta más potencia de calculo, más segura es la red Bitcoin.

No se están gastando recursos y energía tontamente. Primero, las ASICS no consumen más que las FPGA's or las GPU's, son más eficientes. Y segundo, si la gente está dispuesta a pagar por el servicio significa que son recursos bien empleados. La minería son recursos destinados a mantener la red Bitcoin segura y ese es un servicio que mucha gente aprecia.
hero member
Activity: 686
Merit: 500
A mi no me parece absurda la carrera, el mayor hash y por tanto mayor dificultad no augmenta la seguridad de encryptacion de la red? O eso creia...
El tema de la centralizacion del mineo y por tanto su vulnerabilidad esta mas que resuelto, se llama p2pool, t puedes montar tu nodo en casa o entrar en las pools al 0.5% de fee, 1/2 1/5 de lo que se llegan a pagar en otros pools.
Y opino como luiscar, entre comillas t quejas de que la peña invierte en mas hash, pero con tu solucion solo desplazas la inversion.
legendary
Activity: 1820
Merit: 1017
Ésta es mi visión personal:

Así, a grandes rasgos, lo que logras es cambiar la carrera por conseguir chips más rápidos y eficientes por conseguir construir muchos equipos baratos que trabajen en conjunto. Me imagino equipos tipo Rasberry Pi o Arduino con sus propietarios compitiendo por lograr una granja de ellos lo mayor posible e invirtiendo cantidades similares a las actuales, es decir, lo que pueda permitirse cada minero. Cambias el riesgo de concentración de potencia de hash por concentración de equipos baratos y tendríamos la carrera tecnológica en el espacio de almacenamiento que, o se encuentra un resquicio en el software de modo que muchos nodos puedan compartir una misma base de datos (la cadena de bloques) o el que disponga de una tecnología que abarate el almacenar cientos de veces la cadena de bloques en cientos de nodos podrá lograr un mayor número de estos y controlar un porcentaje mayor de dicha red.

En cuanto a los pools de minería seguirían existiendo porque dicho diseño no resuelve el problema por el que la gente se asocia a un pool y es la muy baja probabilidad de encontrar un bloque en un corto periodo de tiempo. Puesto que en este modelo esto se va a dar de la misma forma, la gente sumaría sus nodos al los de un gran pool minero para que se repartan proporcionalmente los bloques que encuentre el pool (que lo va a hacer en gran medida porque va a sumar una enorme cantidad de nodos trabajando para él) y así disminuir el tiempo de espera de varias semanas o meses para hallar un bloque mientras gastas electricidad y no sube el balance de dinero de tu monedero.
legendary
Activity: 1623
Merit: 1608
Shevek, me temo que tu solución no funcionaría.

La minería de bitcoins es un negocio muy competitivo. Siempre habrá una carrera continua por ser el minero más eficiente, por fabricar los ASICs más potentes del mercado, que consuman menos energía, etc. Es el coste que pagan los usuarios por eliminar de la ecuación la confianza necesaria en las monedas fiduciarias (euro, dólar,etc). Es decir, sustituimos confianza en bancos centrales por trabajo de minero.

En el oro ocurre lo mismo. Hay una continua carrera por ser el minero más eficiente. Si el precio del oro sube, los mineros están más dispuestos a minar más profundo y en sitios más inhóspitos para extraer la materia prima. Incluso uno de los fundadores de Google se plantea seriamente traer un asteroide a la Tierra para extraer el oro, si su precio lo hiciera rentable.

Con el petróleo, ocurre lo mismo. A partir de 150 dólares por barril, merece la pena extraerlo de las arenas bituminosas de Canadá mediante un proceso más caro pero que genera margen para sus productores.

sr. member
Activity: 252
Merit: 250
Salvo que sea muy impaciente (que lo será, si hay BTCs de recompensa de por medio) y decida manipular la otra parte de la cabecera que es manipulable: el "hash" de las transacciones; en particular, la transacción de generación, que es tremendamente voluble y cuya manipulación altera la cabecera del bloque a discreción.

Efectivamente, habría que cambiar también la forma en que se construye la transacción de generación, pero ahora no quiero extenderme más. Simplemente supongamos por ahora que esto también se puede controlar y veamos las implicaciones.

No conozco los detalles pero ese hash de las transacciones, si es lo que su nombre indica, se puede modificar no sólo con la coinbase sino alterando el orden de las transacciones, o sacándome de la manga una nueva transacción a mí mismo. Así que creo que no se podría evitar que ese hash cambiara a voluntad.

Eso ya lo veremos  Smiley

Aparte de eso... ¿alguna otra debilidad?
legendary
Activity: 1974
Merit: 1030
Salvo que sea muy impaciente (que lo será, si hay BTCs de recompensa de por medio) y decida manipular la otra parte de la cabecera que es manipulable: el "hash" de las transacciones; en particular, la transacción de generación, que es tremendamente voluble y cuya manipulación altera la cabecera del bloque a discreción.

Efectivamente, habría que cambiar también la forma en que se construye la transacción de generación, pero ahora no quiero extenderme más. Simplemente supongamos por ahora que esto también se puede controlar y veamos las implicaciones.

No conozco los detalles pero ese hash de las transacciones, si es lo que su nombre indica, se puede modificar no sólo con la coinbase sino alterando el orden de las transacciones, o sacándome de la manga una nueva transacción a mí mismo. Así que creo que no se podría evitar que ese hash cambiara a voluntad.
sr. member
Activity: 252
Merit: 250
En otro hilo he expresado mi opinión de que bitcoin tiene un problema de diseño en la generación de bloques mediante la "prueba de trabajo". Este problema se manifiesta con dos síntomas:

  • La absurda carrera a ninguna parte de la potencia de cálculo, que ahora experimenta un repunte importante con los ASIC: es como el juego de la cuerda, con dos equipos tirando de ella; de repente uno ata un burro y parece que va a ganar, hasta que el otro equipo ata otro burro; después un caballo, después un tractor, después un camión... y ambos equipos siguen exactamente donde estaban al principio, pero habiendo invertido estérilmente en todos esos recursos. Pues bien:  ¿en qué beneficia esa carrera a bitcoin? ¿acaso es más seguro con más potencia de cálculo? ¿Para qué gastar tanta energía y recursos tontamente?
  • Favorece la creación de "pools" centralizados, rompiendo el carácter distribuido de la red. Eso no sólo no ayuda al proyecto, sino que lo perjudica gravemente

Ante esta situación hay una solución relativamente sencilla de haberse pensado antes, porque ahora es imposible introducirla en el protocolo de bitcoin. Aquí la dejo, por si alguien la considera para la creación de una nueva criptomoneda.

La prueba de trabajo consiste en "hashear" la cabecera del bloque y ver si el resultado, interpretado como un número, está por debajo de un cierto valor objetivo ("target"), que es tanto más pequeño cuando mayor es la dificultad. Si es así, el nodo emite el bloque y los demás pueden probar fácilmente que es válido "hasheando" la cabecera.

Si no tiene éxito en este proceso, el nodo puede modificar un parámetro de la cabecera del bloque que es como una especie de contador (en el argot anglosajón: "nonce"); lo incrementa y vuelve a "hashear" y comprobar con el objetivo. Lo normal es empezar con el contador a 0 e ir subiendo hasta que el contador se "desborda". Es decir, suponed que el contador admite sólo 4 cifras decimales; pues empezando en 0 tenemos 10.000 oportunidades de probar (hasta el 9999) antes de que se desborde.

Si hemos llegado sin éxito al punto en que el contador se desborda, no tiene sentido empezar desde 0 otra vez, porque ya sabemos que no vamos a conseguir nada. Hay que modificar otro parámetro de la cabecera, puesto que sabemos que las funciones "hash" son muy sensibles a un cambio nimio. Hay otros dos parámetros que se pueden cambiar: el "hash" de las transacciones (hablaré de esto más tarde) y otro contador, que se incrementa en 1 con cada segundo que pasa y que, en principio, es más rápido que el anterior.

Por tanto, despues de nuestros 10.000 intentos, esperamos 1 segundo y volvemos a intentarlo. El problema es que no es necesario esperar... ¡porque no nos da tiempo a desbordar el contador real, que contiene 32 cifras binarias! Y 32 cifras binarias supone la friolera de probar 2^32 = 4x10^9 hashes antes de que el contador de tiempo se incremente. Es decir, tendríamos que tener una potencia de cálculo de 4 GH/s para desbordar el contador "nonce" antes de que se incremente el contador temporal. Esto favorece repartir el trabajo en "mineros", asignando a cada uno una porción del "nonce".

Pues bien, mi propuesta es rebajar el "nonce" a 16 bits, que es equivalente a 2^16 = 65.536 hashes. Por tanto, con una potencia mínima de 65 kH/s, fácilmente conseguible incluso con CPUs, cada nodo puede desbordar su "nonce" y esperar a que el contador de tiempo se incremente. Salvo que sea muy impaciente (que lo será, si hay BTCs de recompensa de por medio) y decida manipular la otra parte de la cabecera que es manipulable: el "hash" de las transacciones; en particular, la transacción de generación, que es tremendamente voluble y cuya manipulación altera la cabecera del bloque a discreción.

Efectivamente, habría que cambiar también la forma en que se construye la transacción de generación, pero ahora no quiero extenderme más. Simplemente supongamos por ahora que esto también se puede controlar y veamos las implicaciones.

Al no poder forzar la creación de hashes, cada nodo entra en una especie de lotería en que todos tienen el mismo número de boletos y las recompensas se van repartiendo al azar entre todos. El poder de cálculo de la red es simplemente 65 * (número_de_nodos) kH/s. Y, lo que es más importante, no tiene sentido la minería en "pools", puesto que cada nodo puede cumplir por sí mismo la máxima tasa de minado eficiente.

Por supuesto, la dificultad base tiene que ser inferior a la actual. La podemos calcular de forma que un nodo solitario, trabajando a 65 kH/s, tarde un promedio de 10 minutos en generar un bloque. Esto es: 2^16 * 600 ~ 2^25 (en lugar de 2^32 como es ahora). La dificultad de generar un nodo se calcularía como ahora, de forma que toda la red genere en promedio un bloque cada 10 minutos; y ese número sería muy parecido al número de nodos conectados. Si hay 1000 nodos la dificultad es ~1000, si hay 1 millón, ~1 millón.

Aún así, los usuarios pueden hacer "trampas". Supongamos que un tipo quiere multiplicar sus ganancias y se dedica a instalar nodos, contratando servidores dedicados y/o usando todos los ordenadores a los que tiene acceso como nodos. ¡Esta persona multiplicaría sus posibilidades de recompensa! Sí, pero a costa de incrementar la robustez de la red, haciéndola más resiliente con más nodos. Es decir, la codicia de los usuarios rema a favor de los intereses de la red.

Y, por último, la red sería también más robusta que la actual, puesto que para controlar el 51% de la potencia de cálculo habría que controlar el 51% de nodos.

¿Qué os parece?
Pages:
Jump to: