Proof of Stake
Proof of Stake -PoS- (Prueba de participación) es uno de los principales protocolos de blockchain junto a Proof of Work -PoW- (Prueba de trabajo). Estos protocolos son algoritmos de consenso para redes distribuidas: un conjunto de normas que indican cómo la red, compuesta por miles de nodos, va a admitir la adhesión de nuevos bloques a la cadena.
El diseño de PoS es un tipo de algoritmo mediante el cual una red blockchain logra un consenso distribuido eligiendo de forma aleatoria los nodos encargados de validar bloques en lugar de emplear trabajo de cómputo para resolver operaciones complejas como demanda PoW. En función de la cantidad de stake (cuota de monedas), los nodos tienen mayor o menor probabilidades de ser elegidos.
Origen de Proof of Stake
El protocolo de PoW, utilizado por Bitcoin, para lograr consenso y admitir un nuevo bloque en la cadena requiere enormes cantidades de energía, lo que presenta un problema de escalabilidad para las redes que lo emplean y para la adopción global de la misma.
La primera mención a la estrategia de PoS se dio en 2011 en el foro de Bitcointalk, como una alternativa superadora al problema que presenta el protocolo de PoW.
En 2012 Peercoin fue la primera blockchain en implementar un protocolo híbrido: PoW para la distribución de nuevas monedas y PoS para garantizar la seguridad de la red.
Delegated Proof of Stake
Delegated Proof of Stake -DPoS- (Prueba de participación delegada) es una variante de PoS creada en 2014. La diferencia entre PoS y DPoS es que los nodos son elegidos de diferentes maneras, mientras PoS utiliza un sistema aleatorio en base al stake que un nodo administra, en DPoS los participantes de la red votan por los nodos a los cuales le otorgarán la responsabilidad y confianza de generar nuevos bloques.
Eficiencia, Escalabilidad y Descentralización
En una red PoW un nodo tiene mayores probabilidades de ser elegido para validar un bloque de acuerdo a su capacidad de resolver operaciones de cómputo: a mayor capacidad, mayores probabilidades y mayor consumo de energía.
La generación de bloques será realizada por aquellos que dispongan de los recursos para ofrecer mayor capacidad de cómputo y consumo de energía: esto implica dejar de lado a quienes no dispongan de energía barata o acceso a dispositivos patentados de hardware, entre otras cosas. En 2021 el 62% de los bloques fueron minados por solamente 5 pools según los datos de BTC.com.
En el caso de PoS un nodo es elegido de forma aleatoria teniendo mayor probabilidad a medida que su stake asociado aumenta y no en base a la capacidad de cómputo que posee.
No son premiados aquellos nodos que dispongan de mayor poder de resolver complejas operaciones, las recompensas obtenidas por los nodos validadores de bloques se calcula según el staking que tenga el nodo.
Ambos conceptos tienden a centralizar la red en unos pocos nodos: en el caso de PoW aquellos nodos con mayor poder de cómputo capitalizaran las validaciones de los bloques y en el caso de PoS aquellos nodos que dispongan de mayor stake tendrán más posibilidades de ser elegidos que aquellos con menos stake en su poder. Cardano incorporó un concepto de "saturación de nodo" para reducir este riesgo: cuando un nodo que posea una cantidad de stake superior a la considerada ideal por la red obtendrá recompensas menores y de esta forma potenciará la descentralización de la red.
Funcionamiento
Selección de nodo
El algoritmo usa un proceso de selección aleatoria para elegir un nodo que se encargará de validar el siguiente bloque. Este proceso puede basarse en una combinación de distintos factores tales como monto delegado, tiempo de delegación, aleatoriedad o el estado del nodo entre otras. En Cardano un nodo es un Stake Pool y su elección dependerá de la cantidad de stake que controle.
Validación de bloque y recompensa
Una vez el nodo es elegido éste deberá validar las transacciones y agregarlas a un nuevo bloque que será firmado por quien lo produzca y contendrá una referencia al bloque previo en la red, esto hace que sea imposible eliminar transacciones de un bloque, alterar el orden de los bloques, eliminar un bloque de la red o agregar un bloque sin notificar a la red.
Los nodos que produzcan nuevos bloques serán recompensados.
Cabe aclarar que cada blockchain implementa su propio algoritmo de Proof of Stake, en el caso de Cardano es Ouroboros.
Seguridad
La delegación funciona como un motivador financiero para que el nodo no valide o cree transacciones fraudulentas. Dependiendo de la red puede o no implementar sanciones para los nodos, en el caso de Cardano no existen tales penalizaciones ya que posee un sistema que permite procesar solamente transacciones válidas: Extended UTXO Model.
Un minero en una red PoW no tiene la obligación de tener en su poder la moneda que está minando, a diferencia de PoS donde la cantidad de stake que posee define la probabilidad de un nodo parar ser elegido.
Velocidad
El mecanismo de PoS ofrece confirmación de transacciones mucho más rápidas. En una red blockchain la confirmación de transacciones depende de dos factores: número de transacciones por segundo (TX/s) y tiempo de confirmación de bloque (block time). Y para calcular las TX/s necesitamos el tamaño de bloque (block size) y tamaño de transacción (tx size).
Por ejemplo Bitcoin (PoW) tiene:
- Block size: 1048576 bytes.
- TX size: 250 bytes.
- Block time: 600s
Bitcoin procesa 7 transacciones por segundo.
Comúnmente las redes PoS tienen tamaños de bloques más grandes y un tiempo de confirmación de bloque menor por lo que procesan mayor cantidad de transacciones por segundo.
Referencias
Proof of Stake instead Proof of Work - Bitcointalk
Proof of Stake explained - Binance Academy
Delegated Proof of Stake explained - Binance Academy
v1.0 - Escrito por Muxcortoi, revisado por MoxiePool - 01-05-2022