Bitcoin Forum
February 26, 2020, 05:57:04 PM *
News: Latest Bitcoin Core release: 0.19.0.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: El problema Nothing at Stake. O: ¿Por qué el Bitcoin no se pasa a PoS?  (Read 76 times)
d5000
Legendary
*
Offline Offline

Activity: 2366
Merit: 1702


Decentralization Maximalist


View Profile
November 21, 2019, 09:31:40 PM
Last edit: November 22, 2019, 08:25:59 PM by d5000
Merited by DdmrDdmr (2), LUCKMCFLY (1)
 #1

El problema Nothing at Stake (abreviado N@S) es la razón principal por la cual el Proof of Work se considera actualmente más seguro que el Proof of Stake.

Vi que todavía no hay mucha información en castellano/español sobre el problema Nothing-at-stake. Quizá por eso es frecuente ver posts como "el Bitcoin no se pasa a Proof of Stake porque es conservador". O. "El Bitcoin será reemplazado por un altcoin con PoS porque gasta mucha energía". Es decir, mucha gente subestima el problema o directamente lo desconoce.

Voy a intentar una explicación lo más corta posible. El problema Nothing at Stake es un problema que tiene que ver con los mismos fundamentos de la informática, y por lo tanto no puede ser "resuelto" fácilmente.

Problema fundamental

En el Proof of Stake no cuesta dinero atacar la cadena y tratar de efectuar un "doble gasto" porque no se gasta energía. "No hay nada en juego" (en inglés: "there is nothing at stake"). En comparación, en el Proof of Work para cada ataque se debe gastar energía para minar algunos bloques.

Explicación

En una criptomoneda, los nodos necesitan un método para saber cual es el bloque válido cuando hay más de una opción, es decir, cuando la cadena se bifurca.

El Bitcoin emplea el método del Proof of Work: Los mineros necesitan gastar energía para "encontrar" un bloque. Acumulando el valor de la "difficulty" (un valor que está relacionado al hashrate), cada nodo puede saber cual es la cadena válida: la que presenta el mayor valor acumulado.

El Proof of Stake hace algo similar, pero diferente. Básicamente, en el Proof of Stake "encuentra el bloque", el que posee la dirección en la cual, en un momento determinado, se encuentra la mayor cantidad de coins (es un poco más complicado, pero para esta explicación alcanza). También hay un valor similar a la "difficulty", que indica (de manera simplificada) cuantos coins se usaron para minar un bloque. Cuando la cadena se bifurca, los nodos consideran válida la cadena con mayor valor acumulado de este indicador.

Ahora bien: En el Proof of Stake, no se gasta un significativo monto de energía para "minar".

Esto es un problema. ¿Por qué? Porque un minero puede minar varios bloques de manera paralela, prácticamente sin gastar dinero.

¿Pero para que sirve eso? Bueno, principalmente para una razón: atacar la criptomoneda y realizar un doble gasto. En los ataques del tipo "51%", lo que hace el minero es efectuar un gasto - por ejemplo, comprar un producto en una tienda online - y minar este bloque. Luego, en secreto, mina una cadena paralela que no contiene esta transacción sino otra que transfiere los coins a una direcci+on de su propia cartera. Cuando el minero recibe la contraprestación por su transacción (ej: el producto de la tienda on line), publica la cadena "secreta". En el caso del PoW, si el minero cuenta con el 50% o más del hashrate, en algún momento podrá hacer creer a los otros nodos que su cadena "secreta" es la válida. Pero tiene que gastar mucho dinero para este intento de ataque.

En el caso del PoS ocurre lo mismo: El atacante "mina" una cadena en secreto y luego la publica. Esta será aceptada siempre y cuando el atacante haya usado más coins para minarla que los competidores que minaron la cadena "verdadera", o sea, con el 50% de los coins que están haciendo "staking". Pero: No gasta dinero para el ataque. Puede intentar el ataque infinitas veces hasta que salga.

Y hay otro problema, un poco más difícil de entender: En PoS, alcanza que el atacante haya tenido control en algún momento sobre el 50% de los coins usados para el "staking". Simplemente comienza su cadena secreta con el bloque cuando perdió el control sobre estas monedas. Este problema tiene que ver con que el PoS usa un recurso dentro del sistema (la cantidad de coins en una dirección) para determinar quien mina un bloque, mientras que el PoW usa un recurso fuera del sistema, la energia vertida en la minería.

Objeciones

Ahora, muchos van a decir: ¡Pero si las monedas PoS funcionan! Es verdad que monedas PoS grandes, como Peercoin, Blackcoin, Bitshares, Steem, NEM (que usa una variante del PoS llamada Proof of Importance) o NXT/Ardor, nunca han sido atacadas con éxito.

Es que hay mecanismos que pueden ayudar a minimizar el problema. Pero no lo resuelven por completo. Por ejemplo, NXT no permite "reorganizar" la cadena por más de 720 bloques. Esto significa que cualquier ataque se debe realizar dentro de este límite. Otras monedas como Cardano usan un sistema que pre-selecciona a los mineros con mucha anticipación, lo que hace que no pueda aparecer otro minero con una cadena secreta.

Pero todos estos mecanismos no son el 100% infalibles y en muchos casos llevan a otros problemas (por ejemplo, en Cardano es posible que la cadena pare de producir bloques si hay un cartel de mineros suficientemente grande, y se necesita un hard fork para que siga operando).

También está la objeción que el atacante "cava su propia fosa" si ataca la cadena para efectuar un doble gasto, porque el valor de la criptomoneda luego se podría derrumbar debido al ataque. Pero también hay un problema con esta afirmación: El atacante podría efectuar una venta al descubierto ("short sell"), que lo beneficia cuando el precio cae, para cubrir sus pérdidas. Y también esto no previene ataques cuyo fin es simplemente "sabotear" a una criptomoneda (por ejemplo, por parte de gobiernos o competidores).

Conclusión

Bitcoin no se pasa a Proof of Stake porque el problema del Nothing at Stake es considerado demasiado grave y todavía no se ha demostrado que puede ser "resuelto". Si bien el problema hasta ahora ha sido teórico, no está garantizado que nunca nadie encuentre una forma de atacar el PoS obteniendo ganancias, haciendo fallar todo el sistema de seguridad.

Para leer

Un buen resumen, bastante completo, de los problemas informáticos que influyen en el Proof of Stake se puede encontrar en la FAQ de Ethereum (inglés)

(PD: Editado y precisado algunos conceptos)

Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1582739824
Hero Member
*
Offline Offline

Posts: 1582739824

View Profile Personal Message (Offline)

Ignore
1582739824
Reply with quote  #2

1582739824
Report to moderator
1582739824
Hero Member
*
Offline Offline

Posts: 1582739824

View Profile Personal Message (Offline)

Ignore
1582739824
Reply with quote  #2

1582739824
Report to moderator
th3nolo
Hero Member
*****
Offline Offline

Activity: 1092
Merit: 648



View Profile
November 21, 2019, 10:03:52 PM
 #2

Aquí hay un problema cuando dices nothing at stake, ¿no se supone que las cadenas POS "Quitan/Eliminan/Destruyen" las monedas de un atacante que está tratando de hacer un doble gasto, todo esto para quitar incentivos de ese tipo de ataques?

Es una duda.
d5000
Legendary
*
Offline Offline

Activity: 2366
Merit: 1702


Decentralization Maximalist


View Profile
November 22, 2019, 01:08:03 AM
 #3

Aquí hay un problema cuando dices nothing at stake, ¿no se supone que las cadenas POS "Quitan/Eliminan/Destruyen" las monedas de un atacante que está tratando de hacer un doble gasto, todo esto para quitar incentivos de ese tipo de ataques?
El gran problema es que las cadenas de bloque generalmente solo "saben que existen ellas" y por eso no pueden reconocer "así no más" un gasto doble (sino no necesitaríamos proof of work ni proof of stake, el principio de la cadena de bloques ya sería suficiente). Una vez que aparece la "cadena de ataque", cadena 2 va a decir que solamente el spend 2 es válido y cadena 1 que lo es el spend 1. El nodo entonces ve cual de las dos tiene el mayor valor del "chain trust" (lo que equivaldría a la difficulty) y sigue esta.

Hay sistemas sofisticados como Slasher que intentan o intentaron solucionar este problema pero parece que ninguno es el 100% infalible. Slasher, por ejemplo, nunca se implementó.

Otros sistemas como Cardano usan además del proof of stake un sistema de "tolerancia a faltas bizantinas" (byzantine fault tolerance, BFT). Estos pueden detectar gastos dobles, pero requieren que una mayoría de los nodos que realizan "staking" esté siempre en línea, y si esto no es el caso, la cadena se para y se necesita un hard fork para reactivarla.

th3nolo
Hero Member
*****
Offline Offline

Activity: 1092
Merit: 648



View Profile
November 22, 2019, 04:00:46 AM
 #4

Ahora entiendo de mejor porque muchas personas empezaron a hablar de ETH 2.0 como centralizado, tenía entendido que podría ser centralizado, pero no había caído en cuenta hasta qué punto llegaba el algoritmo de Consenso POS.

Respecto al modelo staking de cardano, ¿cómo pueden ellos reconocer un doble gasto y los otros modelos POS no? aunque el byzantine fault tolerance no es tan elegante al necesitar un hardfork para sobrevivir al ataque.
d5000
Legendary
*
Offline Offline

Activity: 2366
Merit: 1702


Decentralization Maximalist


View Profile
November 22, 2019, 02:05:11 PM
 #5

Respecto al modelo staking de cardano, ¿cómo pueden ellos reconocer un doble gasto y los otros modelos POS no?
En Cardano y algoritmos parecidos, se pre-selecciona un grupo de "stakers" que crearán los próximos bloques. Cada bloque tiene un participante asignado como "líder". Esto implica que no puede haber bifurcaciones ni dobles gastos si todos los "slot leaders" están presentes, o al menos si la mayoría lo están. No puede aparecer otro minero de la nada y "reorganizar" la cadena con bloques que creó en secreto. Si fue seleccionado, debe extender la cadena del "líder" seleccionado para el bloque anterior, y si no lo fue, entonces simplemente no podrá crear bloques hasta la próxima elección.

De esta manera, es imposible que se cree una cadena alternativa (bifurcación) con un doble gasto.

Los problemas aparecen en estos protocolos cuando los "líderes" seleccionados no están presentes. Hay cierto grado de tolerancia pero una mayoría de estos nodos seleccionados deben estar en línea. Cuando no lo están, se para la cadena de bloques.

Hay otros protocolos que hacen algo similar, por ejemplo también el DPoS de Bitshares y EOS están basados en este principio.

th3nolo
Hero Member
*****
Offline Offline

Activity: 1092
Merit: 648



View Profile
November 22, 2019, 03:40:17 PM
 #6

Sé que este mensaje es totalmente off-topic o bueno no tan off-topic porque estamos hablando de problemas de los protocolos de consenso y el doble gasto.

Pero podrías realizar un hilo parecido a este referente al problema de doble gasto en criptomonedas que utilizan DAGS (Directed acyclic graph).
seoincorporation
Legendary
*
Offline Offline

Activity: 1624
Merit: 1555


BtcBoss


View Profile
November 22, 2019, 04:54:33 PM
Merited by DdmrDdmr (1)
 #7

...
En el Proof of Stake no cuesta dinero atacar la cadena y tratar de efectuar un "doble gasto" porque no se gasta energía.
...

No estoy de acuerdo con este articulo ya que personalmente he visto muchos ataques de doble gasto en bitcoin y nunca en monedas PoS... Para comprender este tema hay que entender como funciona el ataque de doble gasto el cual consiste en gastar 2 veces las mismas monedas antes de que estas sean confirmadas, al final solo una de las transacciones se confirma. Pero los mineros normalmente confirman la transacción con fees mas elevados.

Es bien sabido que los mineros podrían hacer un doble gasto siendo selectivos con sus ataques, pero la mayoría de estos ataques son por parte de los usuarios y no de los mineros y el realizar el ataque no tiene realmente un costo ya que estamos gastando las mismas monedas 2 o mas veces.

Si esto fuera un problema así como lo indicas no creo que ETH se animaría a migrar a PoS como lo va a hacer en Enero del 2020.

.BitDice.               ▄▄███▄▄
           ▄▄██▀▀ ▄ ▀▀██▄▄
      ▄▄█ ▀▀  ▄▄█████▄▄  ▀▀ █▄▄
  ▄▄██▀▀     ▀▀ █████ ▀▀     ▀▀██▄▄
██▀▀ ▄▄██▀      ▀███▀      ▀██▄▄ ▀▀██
██  ████▄▄       ███       ▄▄████  ██
██  █▀▀████▄▄  ▄█████▄  ▄▄████▀▀█  ██
██  ▀     ▀▀▀███████████▀▀▀     ▀  ██
             ███████████
██  ▄     ▄▄▄███████████▄▄▄     ▄  ██
██  █▄▄████▀▀  ▀█████▀  ▀▀████▄▄█  ██
██  ████▀▀       ███       ▀▀████  ██
██▄▄ ▀▀██▄      ▄███▄      ▄██▀▀ ▄▄██
  ▀▀██▄▄     ▄▄ █████ ▄▄     ▄▄██▀▀
      ▀▀█ ▄▄  ▀▀█████▀▀  ▄▄ █▀▀
           ▀▀██▄▄ ▀ ▄▄██▀▀
               ▀▀███▀▀
        ▄▄███████▄▄
     ▄███████████████▄
    ████▀▀       ▀▀████
   ████▀           ▀████
   ████             ████
   ████ ▄▄▄▄▄▄▄▄▄▄▄ ████
▄█████████████████████████▄
██████████▀▀▀▀▀▀▀██████████
████                   ████
████                   ████
████                   ████
████                   ████
████                   ████
████▄                 ▄████
████████▄▄▄     ▄▄▄████████
  ▀▀▀█████████████████▀▀▀
        ▀▀▀█████▀▀▀
▄▄████████████████████████████████▄▄
██████████████████████████████████████
█████                            █████
█████                            █████
█████                            █████
█████                            █████
█████                     ▄▄▄▄▄▄▄▄▄▄
█████                   ▄█▀▀▀▀▀▀▀▀▀▀█▄
█████                   ██          ██
█████                   ██          ██
█████                   ██          ██
██████████████████▀▀███ ██          ██
 ████████████████▄  ▄██ ██          ██
   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ██          ██
             ██████████ ██          ██
           ▄███████████ ██████▀▀██████
          █████████████  ▀████▄▄████▀
[/]
d5000
Legendary
*
Offline Offline

Activity: 2366
Merit: 1702


Decentralization Maximalist


View Profile
November 22, 2019, 08:04:44 PM
Last edit: November 23, 2019, 12:04:00 AM by d5000
Merited by DdmrDdmr (1)
 #8

No estoy de acuerdo con este articulo ya que personalmente he visto muchos ataques de doble gasto en bitcoin y nunca en monedas PoS... [...]
Si esto fuera un problema así como lo indicas no creo que ETH se animaría a migrar a PoS como lo va a hacer en Enero del 2020.
Esto es cierto, y también lo menciono en el post. Solamente ha habido un ataque exitoso a un coin PoS (APEXcoin) y era uno que estaba ya prácticamente "muerto".

Por eso quiero destacar otra vez que el problema Nothing at Stake es, por ahora, un problema teórico. Cardano por ejemplo afirma que ha "solucionado" el problema y que su algoritmo es "comprobablemente" seguro, pero sigue estando el problema de que la cadena podría dejar de funcionar, como muchas veces han criticado expertos en el tema como Anonymint (que ya no escribe más en el foro). Me faltaría analizar el nuevo algoritmo de Ethereum para ver si tiene alguna mejora sustancial con respecto a la primera versión de Casper (esta tenía el mismo problema que Cardano).

Yo personalmente considero el Proof of Stake (aunque no lo crean después de este post Wink ) una tecnología muy interesante, pero creo que se sigue necesitando más investigación. Hasta ahora no hay un modelo matemático aceptado universalmente que permita calcular los costos de un ataque. Los que sí me parecen ya seguros son los algoritmos que combinan el proof of work con el proof of stake, que pueden aumentar el nivel de su seguridad "sin costo".

El motivo de este post es que al googlear (al contestar otro post del foro quise enlazar un texto sobre Nothing at Stake) no encontré ninguna explicación en castellano del problema Nothing at Stake o N@S y creo que para usuarios novatos es importante conocer la diferencia con el modelo de seguridad del PoW.

@th3nolo: Con respecto a los modelos DAG, parece que hay varios problemas que dependen del modelo concreto utilizado (Obyte/Byteball por ejemplo es un poco parecido a Hashgraph pero muy diferente a IOTA). Además no estoy tan bien al tanto de los desarrollos en este ámbito. Por eso dejo este tema para otro si alguien quiere Wink

th3nolo
Hero Member
*****
Offline Offline

Activity: 1092
Merit: 648



View Profile
November 22, 2019, 10:11:25 PM
 #9

@th3nolo: Con respecto a los modelos DAG, parece que hay varios problemas que dependen del modelo concreto utilizado (Obyte/Byteball por ejemplo es un poco parecido a Hashgraph pero muy diferenta a IOTA). Además no estoy tan bien al tanto de los desarrollos en este ámbito. Por eso dejo este tema para otro si alguien quiere Wink

Es una lastima, tengo una idea para una stablecoin basada en DAG, pero me preocupa muchísimo los problemas de doble gasto.
Ya que escalar una red con esos problemas solo puede tener resultados terribles, sobre todo para los non- tech savy
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!