Por José Felip Darás

Para que un sistema blockchain funcione de manera segura y correcta son necesarios varios niveles de seguridad. Uno de ellos es la «prueba de…» (Proof of…), que incluye diferentes tipos según las características y el protocolo de cada cadena de bloques.

La prueba (proof) se basa principalmente en un sistema (matemático, algorítmico, físico, de almacenamiento, etc.) que, para evitar comportamientos indeseados (por ejemplo, ataques de denegación de servicio, spam, registros duplicados o modificaciones) o simplemente para verificar el contenido de los datos que se deben añadir a la blockchain, requiere que el cliente del servicio realice algún tipo de trabajo (cálculo normalmente) que tenga cierto coste (dificultad) y que sea verificado fácilmente en la parte del servidor. Normalmente el trabajo consiste en realizar un cómputo en el ordenador del cliente. La característica clave de la estrategia es su asimetría: el trabajo debe resultar moderadamente difícil (pero factible) por el lado del cliente, pero fácil de verificar por el lado del servidor.

Modelos clásicos
PoW: Proof of Work (Prueba de trabajo)

Usado en la primera criptomoneda y blockchain creadas (Bitcoin), se basa en realizar cálculos para verificar las transacciones incluidas en un bloque que se añadirá a la cadena de bloques. Basado en un nonce, que es un número que se incrementa según la cantidad de nodos activos en la red y otros factores más técnicos, crea un problema de cálculo de alta dificultad. Cuanta más potencia computacional se posea, más rápido se puede llegar a la solución del problema, y con ello verificar el bloque para que sea incluido en la cadena y recibir así la recompensa por su esfuerzo. Con el tiempo, PoW se considera una de las formas más seguras, pero el alto nivel de dificultad actual de las principales blockchains que lo usan conlleva un gran costo de energía.

PoS: Proof of Stake (Prueba de participación)

Es un protocolo de consenso para redes distribuidas que asegura una red de criptomonedas mediante la petición de pruebas de posesión de dichas monedas. Con PoS la probabilidad de encontrar un bloque de transacciones —y recibir el premio correspondiente— resulta directamente proporcional a la cantidad de monedas que uno tiene acumuladas (evitando así que la confianza venga dada por la cantidad de trabajo invertida). Se basa en la suposición de que quienes poseen más unidades de una moneda regulada por PoS se hallan especialmente interesados en la supervivencia y el buen funcionamiento de la red que otorga valor a dichas monedas, y por tanto son ellos los más indicados para cargar con la responsabilidad de proteger al sistema de posibles ataques. Es por eso que el protocolo los premia con una menor dificultad para encontrar bloques (inversamente proporcional al número de monedas que demuestren poseer). De este tipo de modelo han aparecido los llamados «masternodos». La prueba puede ser de dos tipos:

Prueba de participación pura: Consiste en simplemente hacer la construcción de bloques más fácil para aquellos que pueden demostrar que controlan una gran cantidad de monedas. No se tiene en cuenta la antigüedad de la posesión de las monedas. La desventaja de este enfoque es que el más rico siempre tiene más facilidad para construir los bloques de la cadena.

Prueba de depósito (Proof of Deposit): En este enfoque, cuando las monedas son usadas por los creadores de bloques para crear un bloque, son congeladas hasta que se confirmen cierta cantidad de bloques. En lugar de recompensar a un minero por almacenar monedas que no han sido gastadas durante un largo periodo de tiempo en el pasado, el sistema recompensa a los mineros que están dispuestos a tener monedas inmóviles durante largo tiempo en el futuro.

En el tipo PoS se podría alcanzar un ataque del 51% si un usuario consiguiese almacenar al menos el 51% de las monedas en circulación o la suma total de varios grandes usuarios se uniese para tal ataque.

PoT: Proof of Time (Prueba de tiempo o de sellado)

Este tipo de prueba garantiza que en una determinada fecha y hora ha ocurrido un evento o registro en la cadena de bloques. No comporta seguridad a la propia blockchain directamente, pero sí a sus registros (que pueden ser a su vez los propios bloques, en ese caso sí comportaría el factor seguridad a la blockchain).

PoB: Proof of Burn (Prueba de quemado)

Es la llamada «prueba de trabajo sin trabajo», ya que consiste en enviar una determinada cantidad de monedas a una dirección supuestamente inaccesible o irrecuperable para demostrar la prueba solicitada.

«Destruimos dinero para luego ganárnoslo a través de las recompensas de los bloques. ¡Las monedas quemadas son equipos de minería!» (Iain Stewart, inventor de Proof of Burn).

El acto de quemar monedas se puede comparar con el acto de comprar un equipo de minería. Es decir, siempre, cuando quemamos monedas, compramos un equipo de minería virtual que nos da el poder de escribir bloques. Cuantas más monedas quememos, más potencia tendrá nuestro equipo virtual. Si quieres mantener tu poder para acuñar dinero, de vez en cuando tienes que quemar más monedas.

Un poco de historia
Hashcash

Es una propuesta realizada por Adam Back en 1997 para combatir el correo basura o spam. Este método agrega un string (cadena de texto) al encabezado de un correo electrónico que prueba que el emisor dedicó un poco de tiempo para calcular dicho string. La idea es que como el emisor le dedicó tiempo a calcular el string y enviar el correo, resulta improbable que este sea spam. Por otro lado, el receptor puede, con un costo computacional casi nulo, verificar que el string es válido.

RPoW: Reusable Proof of Work (Prueba de trabajo reutilizable)

Es un sistema presentado por Hal Finney en 2004 para crear una especie de criptomoneda. Precursor de Bitcoin, y basado en Hashcash, diseñó un sistema RPoW que difiere de un sistema PoW normal en que después de que un servidor recibe una prueba de trabajo («moneda PoW») de un cliente, este puede cambiar esta moneda ya gastada por otra que no lo esté, que puede ser utilizada para acceder a otro servidor que también requiera la entrega de una prueba de trabajo. De esta manera, el servidor se ahorra el costo de hacer el trabajo requerido, usando en cambio el trabajo que este ha recibido por sus servicios. El otro servidor a su vez también puede cambiar la prueba de trabajo recibida por otra que pueda usar.

Evolución
PoW + PoS:

Este sistema permite que la verificación de las transacciones resulte más sencilla que la que regularmente se utiliza en PoW, que se basa en algoritmos complejos que hacen que la computadora trabaje más. La combinación de ambas depende del algoritmo implementado en cada cadena de bloques, siendo los porcentajes de PoW y PoS variables y diferentes para cada blockchain.

DPoS: Delegated Proof of Stake (Prueba de participación delegada)

Daniel Larimer se dio cuenta de que la minería PoW derrochaba demasiada energía. También reconoció que la minería de Bitcoin se centralizaría en el futuro, con enormes grupos de minería controlando la red de Bitcoin. Decidió inventar y construir un nuevo sistema que usaba muy poca energía, era muy rápido y también muy seguro. Dan llamó a este nuevo sistema Delegated Proof of Stake, o DPoS.

Se basa en la figura de los «testigos» o espectadores: las personas de una comunidad de criptomonedas en particular votan por los testigos para proteger su red informática. Solo los cien mejores testigos reciben un pago por su servicio. Los veinte mejores ganan un salario regular. Debido a que muchos quieren convertirse en testigos, hay cientos de testigos de respaldo. La fuerza del voto popular se encuentra determinada por la cantidad de monedas que tienen. Esto significa que las personas que poseen más monedas influirán en la red más que las personas que dispongan de pocas monedas. A medida que la comunidad crece, se hace cada vez más difícil seguir siendo un testigo pagado debido al aumento de la competencia. Si un testigo comienza a actuar mal o deja de hacer un trabajo de calidad para proteger la red, las personas de la comunidad pueden eliminar sus votos, lo que básicamente significa despedir al mal actor. La votación siempre está en curso.

Este sistema funciona porque es capaz de eliminar a los malos actores y al mismo tiempo reconocer nuevos miembros valiosos. El sistema depende de los votantes activos en la comunidad, por lo que educar a los nuevos miembros sobre cómo funciona el sistema resulta esencial para el bienestar del sistema. Un ejemplo es la comunidad de Steem: he pertenecido a ella durante más de un año y he visto ir y venir testigos según sus acciones y reputación.

En resumen

Aunque PoW consume mucha energía a medida que aumenta su variable de dificultad, resulta sin duda la manera más eficiente hasta el momento de conseguir una alta seguridad en una cadena de bloques, no se concentra en unos pocos nodos como PoS y hace mucho más difícil un ataque del 51%.

Mi apuesta en un futuro es un sistema de consenso combinado… Aunque todavía no sé cuál.

José Felip Darás
CEO https://bitcoiner.today
Autor y coordinador del libro
http://laeradelasblock.com/