Ej. 3: Prueba de Trabajo vs Prueba de Participación

En este ejemplo vamos a hablar de los principales métodos de generación y almacenamiento de moneda electrónica en el momento actual.  La mayor parte de monedas electrónicas usan un mecanismo conocido como Proof of Work (PoW) o Prueba de Trabajo que es el que usa Bitcoin.  Algunas otras, las menos, usan Proof of Stake (PoS) o Prueba de Participación.

Con la nueva y misteriosa moneda Nxtcoin (NXT) , que es 100% Proof of Stake, parece que PoS está tomando cierta relevancia.  Así es que he creído oportuno crear un ejemplo en el blog para ilustrar el modo de funcionamiento de este mecanismo.

PoS no es un concepto nuevo, se conoce desde hace bastante tiempo y está aplicado ya en algunas monedas.  Una de ellas es Peercoin (PPC), que aplica un método híbrido con PoW predominante a corto plazo y PoS a largo plazo, y es esta moneda la que usaré para ilustrar el ejemplo que nos ocupa.

Como primer paso recordemos que Proof of Work se basa en cálculos masivos de Hashes de Bloques, miles o millones de Hashes por segundo, dependiendo de la potencia de cálculo de los aparatos de minería utilizados, hasta dar con el Hash que cumpla el criterio de Dificultad fijado; el mismo criterio para todos los nodos mineros de la red.  No olvidemos que la Dificultad fija el número de ceros que tiene que tener el Hash al principio para considerar que se ha “descubierto” un Bloque.  Una vez descubierto el Hash del Bloque, se incorpora a la Cadena de Bloques y se propaga por toda la red, tal y como veíamos en el ejemplo de ¿Cómo funciona Bitcoin?

Hay muchos puntos comunes entre ambos conceptos en cuanto a Transacciones, Bloques, Cadena de Bloques, etc…  Las diferencias principales de Proof of Stake son dos:

1.- El número de Hashes por segundo está fijado.  No depende de la potencia de cálculo que uno tenga.  Por mucho que pongamos ASICs versión 1000, o de la siguiente tecnología que salga, no vamos a calcular más Hashes/s que los establecidos.

2.- La Dificultad no es igual para todos los nodos, al contrario de lo que sucede en PoW.   Depende de la cantidad de moneda que tenga cada nodo y es inversamente proporcional a ésta.  Es decir, cuanta más moneda se tenga, menor será la Dificultad Particular y más fácil será encontrar el Hash del Bloque buscado.

Una vez aclarados estos puntos desarrollaremos nuestro ejemplo de minería con la moneda PPC, suponiendo que estamos minando Bloques por Proof of Stake.  Nuestro minero está vez es Manolín, como sabemos, ya tiene experiencia como minero de BTC, que usa Proof of Work, y como es algo curioso el tipo, quería conocer el funcionamiento del Proof of Stake.  Para ello hace dos meses compró 1.000 PPCs y se ha puesto a minar con ellos.

Para minar con los PPCs simplemente hace falta abrir el monedero PPC, y si lo tenemos encriptado, desencriptarlo para habilitar la Minería (ppcoind walletpassphrase <Passphrase> 9999999 true).  Debe tenerse en cuenta también que para poder comenzar a minar, los PPCs deben tener al menos 30 días de antigüedad en nuestro monedero.

Con PPC aparece un concepto nuevo que es el Coin-Age, que también podemos expresarlo como Coin-Years o Coin-Days:

Coin-Days=Montante*DíasEnMonedero

Por tanto los PPCs de Manolín tienen 1.000*60=60.000 Coin-Days.  Multiplicando esta cantidad por el 1% y dividiéndola en entre 365 días se obtiene la recompensa que obtendrá Manolín por el siguiente Bloque que descubra su monedero.  Esto es así porque PPC genera por cada descubrimiento de Bloque el 1% del montante que se tenga de Coin-Years, o lo que es lo mismo un 1% anual.

Premio en PPCs  = (Coin-Days/365)*0,01

Con lo cual, Manolín generará para el siguiente Bloque que descubra 1,64 PPCs.  Una vez descubierto el contador de Coin-Age se pondrá de nuevo a cero.

El conjunto de datos del que se pretende obtener el Hash del Bloque contiene entre otras cosas una Transacción de generación llamada coinstake, que hace las veces de la coinbase de generación de Bitcoin, con un primer input llamado Kernel con todas las monedas que tiene en su monedero actual hacia si mismo más el premio; el número de Coin-Days; el Hash del Bloque anterior; y un Timestamp que se genera cada segundo y que es el que marca el ritmo de Hasheo fijado por Proof of Stake.  De tal forma que nadie puede superar más de 1 Hash/s por monedero con algún montante en su interior.  Este Timestamp viene a ser algo similar al Nonce del PoW.  Es lo que provoca que el conjunto de datos varíe en cada Hash y así nos vayamos dirigiendo hacia el Hash objetivo.  Con este ritmo tan bajo de Hasheo cualquier CPU de cualquier ordenador actual puede hacer los cálculos sin demasiado trabajo, que es lo que hace la CPU del ordenador de Manolín mientras tiene abierto su monedero de PPC.  Si el monedero está vacío no Hashea porque no puede generar la Transacción de generación.

De esta forma se consigue obtener la Cadena de Bloques sin tanto derroche de energía eléctrica como con Proof of Work, y en este caso de nuevo, cuantas más Confirmaciones vaya teniendo una transacción más tiempo costaría alterarla, ya que ello supondría que habría que calcular todos los Bloques posteriores de nuevo.  Para lo cual, ahora no haría falta poder de Hasheo como sucedía en Bitcoin, si no montante de PPCs, que es lo que haría bajar la Dificultad Particular para que fuera posible el recalculado fraudulento.   Así sólo aquellos que tienen los mayores montantes de PPCs serían los que podrían lanzar ataques serios contra la red, pero hacerlo sería un contrasentido, ya que ese colectivo es el más interesado en que la red permanezca segura, al ser ellos precisamente los más beneficiados con la seguridad.

Sin duda este mecanismo, que lleva asociada la gran ventaja del bajo consumo energético, dará mucho que hablar, y muy probablemente será sobre el que se construirán importantes monedas futuras…

Fuentes:
http://bitcoin.org/bitcoin.pdf
http://www.peercoin.net
https://www.nxtforum.org/
Publicado en General Etiquetado con: ,
3 Comentarios en “Ej. 3: Prueba de Trabajo vs Prueba de Participación
  1. jaime dice:

    Gracias por los ejemplos !!!

  2. dario dice:

    gracias amigo excelente explicacion

  3. Juan dice:

    Tengo una duda con respecto al tema del Proof of Stake, espero puedas aclarármela.

    Si yo deseo minar (o forjar) una moneda que trabaje con el Proof of Stake, necesito obligatoriamente comprar una cantidad mínima de esta moneda para tener saldo en mi monedero y así poder producir más monedas.

    Mi pregunta es ¿Es posible que esto pueda causar un efecto burbuja?, es decir, como ha pasado durante la historia moderna de la humanidad cada vez que se propaga la idea del valor y la rentabilidad de una inversión, las emociones humanas juegan un papel preponderante, de manera, que la ambición de la mayoría los lleva a invertir grandes sumas de dinero con el objetivo de obtener intereses sustanciosos.

    Esto ya lo hemos visto por ejemplo, en la crisis de los tulipanes, la depresión de 1929, las crisis inmobiliarias, créditos subprime, etc.

    He visto que muchas altcoins que trabajan con Proof of Stake, ofrecen cantidades de beneficios que parecen irreales o demasiado buenos para ser ciertos, como por ejemplo, intereses del 100% anual, o que la moneda alcanzará un valor de 1 euro o más para tal fecha, premios que van desde Ipods hasta viajes al extranjero y cosas por el estilo.

    Creo entender la utilidad del Proof of Stake y la utilidad para resolver el problema latente del monopolio del 51%, sin embargo, pienso que es posible que muchas personas inescrupulosas se aprovechen de esto, para crear sus propias burbujas, esquemas ponzi, o sistemas piramidales y no estoy muy seguro que el mercado en si mismo pueda evitar esto.

4 Pings/Trackbacks para "Ej. 3: Prueba de Trabajo vs Prueba de Participación"
  1. […] de minado de los que preocuparse.  Así es como funciona PoS, para más información leerse el ejemplo número 3. Dicho esto analizaremos unos sencillos casos de rentabilidad, y para ello haremos unos sencillos […]

  2. […] explicación detallada del Proof of Stake en castellano se encuentra aquí: Prueba de Trabajo vs Prueba de Participación en […]

  3. […] Bitcoin.  Fue una versión 2.0 construida desde cero y basada en un mecanismo de seguridad llamado Proof of Stake (PoS) en lugar del Proof of Work (PoW) en el que estaba basado Bitcoin.   El gasto de Energía de […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*