Resumen: Delegaci贸n e incentivos del PoS (Proof of Stake - Prueba de Participacion) (Lars Brunjes). Traduccion al espa帽ol 馃嚜馃嚫

translation
espa帽ol-馃嚜馃嚫

#1

Resumen: Delegaci贸n e incentivos del PoS (Proof of Stake - Prueba de Participacion) (Lars Brunjes).

El Dr. Lars Br眉njes, Director de Educaci贸n del IOHK, estuvo recientemente en Hamburgo en una reuni贸n de Blockchain Mania donde dio una charla t茅cnica sobre los incentivos de Cardano. A continuaci贸n encontrar谩 un resumen de esta charla.

Aunque est谩 involucrado en los esfuerzos educativos de IOHK, tales como cursos de Haskell y capacitaci贸n interna/externa. Tambi茅n dirige la corriente de trabajo de 鈥渋ncentivos鈥 en Cardano, trabajando junto con el profesor Kiayias, el profesor Koutsoupias y Aikaterini.

驴Cu谩l es el Punto de Incentivos?

En blockchain, el objetivo es incentivar a los participantes para que 鈥渉agan lo correcto鈥. Con Cardano, eso significa lograr una cierta distribuci贸n de la participaci贸n. Esta distribuci贸n debe lograrse con agrupaciones de participantes (stake pools) , en los que no queremos demasiados ni tampoco demasiados pocos. La mayor parte de las inversiones se concentrar谩n en las agrupaciones de participantes (stake pools) y estas agrupaciones (stake pools) estar谩n en l铆nea y participar谩n activamente en el protocolo.

Los incentivos deben establecerse de tal manera que si cada uno sigue su propio inter茅s financiero racional, el resultado sea una buena distribuci贸n de la participaci贸n.

驴Qu茅 son los incentivos?

Los incentivos en el contexto de una criptomoneda son formas de animar a la gente a participar en el protocolo y a seguirlo fielmente.

En el caso de Bitcoin, esto significa minar bloques e incorporar tantas transacciones v谩lidas en esos bloques como sea posible.

En Cardano, significa estar en l铆nea y crear un bloque cuando han sido elegidos como l铆deres de franja (slot leader) y participar en el proceso electoral.

La participaci贸n en el protocolo Cardano tiene un coste de c谩lculo mucho menor que la participaci贸n en Bitcoin. Sin embargo, tener a los l铆deres en l铆nea cuando les toca a ellos es importante tanto para la seguridad como para la eficiencia. Y para estos l铆deres de franja (slot leader), hay alguna inversi贸n (en forma de hardware, tiempo, etc.) as铆 que es justo que se les reembolse por el problema.

En nuestro caso, los incentivos se refieren a incentivos monetarios en forma de ADA.

Sin embargo, cabe se帽alar que existen otros tipos de incentivos, como por ejemplo:

Idealismo
Moral
Deseo general de 鈥渉acer lo correcto鈥.

Por ejemplo, cuando la agrupacion minera (mining pool) de Bitcoin Ghash acumul贸 el 42% de la potencia minera total, la gente empez贸 a abandonar la agrupacion minera (mining pool) voluntariamente y la redujo al 38% en cuesti贸n de dos d铆as. Esto no se hizo por razones financieras, ya que las personas que abandonaron Ghash no recibieron ning煤n incentivo monetario. Pero lo hicieron porque cre铆an en Bitcoin y en la descentralizaci贸n y en el deseo de hacer lo correcto.

En el mundo ideal, los incentivos monetarios y morales deber铆an estar alineados.
En el ejemplo de Bitcoin dado anteriormente, no era ideal, ya que la gente ten铆a que elegir entre hacer lo correcto desde el punto de vista moral o buscar beneficios econ贸micos.

El objetivo de Cardano es alinear estas dos cosas: si usted maximiza sus ganancias, autom谩ticamente est谩 haciendo lo correcto.

驴Qu茅 queremos incentivar?

A los participantes a estar en l铆nea
Participaci贸n en el protocolo: cuando las partes interesadas son elegidas como l铆deres de una determinada franja horaria, deben estar en l铆nea en esa franja horaria para crear el bloque

Por otro lado, puede haber personas que no est谩n interesadas o que no tienen los conocimientos t茅cnicos para configurar el software o el tiempo para estar en l铆nea 鈫, pero a煤n as铆 pueden participar delegando su participaci贸n en una agrupacion de participantes (stake pool)

Configuraci贸n deseada

El 80% de toda la participaci贸n debe delegarse en un n煤mero ( k) de agrupaciones de participantes (stake pools)
K debe estar alrededor del 100 (el numero se elevo a 1000 al momento de la traduccion. 31 de Enero 2019)
Y esas agrupaciones de participantes (stake pools) deber铆an ser usuarios avanzados y estar en l铆nea cuando sea necesario.
Tambi茅n deben proporcionar infraestructura de red adicional (nodos de retransmisi贸n)
Est谩 bien que el 20% restante participe en el protocolo por su cuenta o simplemente no haga nada

El equipo est谩 configurando los incentivos de manera que logren este resultado.

Mecanismo de delegaci贸n

Cardano es un sistema de PoS (Proof of Stake - Prueba de Participacion). Tener una participaci贸n (poseer Ada) significa algo m谩s que tener Bitcoin. Ada puede ser utilizada para comprar bienes o servicios ya que es una criptomoneda, pero adem谩s del poder de compra/pago, tambi茅n significa que usted tiene el derecho y la obligaci贸n de participar en el protocolo y crear bloques.

Estos 2 usos pueden ser separados por el mecanismo de delegaci贸n - lo que significa que alguien que posee Ada puede mantener el poder adquisitivo, mientras que delega el poder de participar en el protocolo a otra persona (agrupaciones de participantes (skate pools).
Es importante se帽alar que los fondos se pueden gastar normalmente en cualquier momento.

Direcciones

Hay 3 tipos distintos de direcciones o cuentas. Cada uno de los cuales est谩 asociado a 2 llaves (par). Una llave es para el pago y otra para la delegacion/generacion de intereses (staking key).

3 Tipos de direcciones:

Direcci贸n de base: la llave de delegacion (staking key) est谩 directamente vinculada a la direcci贸n
Pointer Address: es m谩s indirecto. La direcci贸n apunta a un punto de la cadena de bloques 鈫 en ese punto de la cadena de bloques, hay algunos metadatos que definen la llave de delegacion (staking key)
Direcci贸n de empresa: no delegar/generar intereses (stake). Se utiliza para los intercambios (exchangers). Desde el punto de vista de la cadena de bloques (blockchain), los intercambios (exchangers) son extremadamente ricos. Pero el Ada en esta direcci贸n en realidad pertenece a un n煤mero de individuos separados que depositaron en la bolsa. No se quiere que los intercambios (exchangers) utilicen el dinero de los clientes para participar en el protocolo. Este tipo de direcci贸n s贸lo puede transferir fondos.

Qu茅 es el certificado de delegaci贸n

Es una pieza de metadatos firmada criptogr谩ficamente en la blockchain que transfiere los derechos de delegacion/generacion de intereses de una llave de delegacion (staking key) a otra.

Un certificado de delegaci贸n puede ser publicado en la blockchain, en cuyo caso se denomina peso pesado. Esta transacci贸n estar谩 en la blockchain y parte de estos metadatos ser谩 la certificaci贸n de esta delegaci贸n. Debido a esto, habr谩 cargos por transacci贸n (los mismos que los cargos normales).

Tambi茅n hay certificados de peso ligero. No se publican en la blockchain y no forman parte de los metadatos de la transacci贸n. S贸lo se hacen p煤blicos como parte de un bloque y el creador del bloque los incluye en las cabeceras de los bloques, para demostrar que tiene los derechos de participaci贸n para la direcci贸n que fue elegida como l铆der de la franja horaria.

Si hay certificados contradictorios (es decir, si delegas en alguien y luego en otra persona) y hay 2 certificados de delegaci贸n. Hay una regla para romper el empate, y esta es la que m谩s tarde gane en la blockchain.

Registro de Agrupacion de Participantes (Staking Pool)

Si uno quiere crear una agrupacion de participantes (staking pool), debe crear formalmente un registro y ser escrito en la blockchain. La agrupacion de participantes (staking pool) crear谩 un certificado de registro. Esto tambi茅n se incluir谩 en una transacci贸n especial (por lo tanto, habr谩 una tasa para crear una agrupacion de participantes (staking pool)) en el sistema. El certificado contiene la llave de delagacion del l铆der de la agrupacion de partipantes (staking pool). Las personas que deseen delegar en este grupo crear谩n un certificado de delegaci贸n en el que transferir谩n sus derechos de participaci贸n a esa clave de participaci贸n.

Mecanismo de Incentivos: 驴De d贸nde proviene el dinero para los incentivos?

Hay dos fuentes de fondos para los incentivos.

  1. Tarifas de transacci贸n
    Hay dos razones principales para las comisiones de transacci贸n:

Prevenci贸n de ataques DDos (Distributed Denial of Service)
En un ataque DDoS, un atacante intenta inundar la red con transacciones ficticias para sobrecargar el sistema. Si tiene que pagar una tarifa suficientemente alta por cada una de esas transacciones ficticias, esta forma de ataque ser谩 prohibitivamente cara para 茅l.
Para proporcionar fondos para incentivos.

En una seccion siguiente se explicara c贸mo se calculan las comisiones.

  1. Expansi贸n Monetaria
    El suministro total de Ada en la actualidad es de aproximadamente 31.000 millones. Y la oferta m谩xima es de 45.000 millones. Por lo tanto, hay una brecha de 14 mil millones de Ada disponibles. Estos Ada tambi茅n se pueden utilizar como incentivos.

Aunque se trata de una cantidad muy grande, no es infinita.
La idea es hacer algo similar a Bitcoin, que es tener una disminuci贸n exponencial con el tiempo (el porcentaje utilizado para los incentivos ser谩 cada vez menor). El objetivo y la esperanza es que, por supuesto, Cardano se convierta en un gran 茅xito. Con ello, m谩s y m谩s personas lo utilizar谩n y la cantidad recibida a trav茅s de las comisiones por transaccion aumentar谩. Esto crear谩 menos necesidad de este dinero extra para la expansi贸n monetaria.

C贸mo funcionan los honorarios

Hay una regla que es de c贸digo r铆gido, para cada transacci贸n sobre lo que son los honorarios m铆nimos. Cada transacci贸n, debe incluir por lo menos honorarios m铆nimos. Por lo tanto, las entradas para las transacciones tienen que ser m谩s grandes que las salidas de la transacci贸n y la diferencia debe ser por lo menos la tarifa m铆nima (o puede pagar m谩s si lo desea).

F贸rmula de honorarios m铆nimos
Es una funci贸n lineal:
a + b x tama帽o
(鈥渢ama帽o鈥 es el de la transacci贸n, en bytes, y no el importe de Ada)

a = constante, en este momento es 0,155381 Ada
Necesario para la prevenci贸n de DDoS 鈫 de modo que no importa lo peque帽a que sea la transacci贸n, deber铆a costar lo suficiente para da帽ar a un ataque que intenta generar miles de transacciones ficticias.

b = constante, en este momento es 0,000043946 Ada/byte
Esto es para ser justos. La idea es que usted debe pagar por la presi贸n que ejerce sobre el sistema. Si usted tiene una transacci贸n grande, las personas que ejecutan el protocolo tendr谩n que almacenar sus datos en su computadora y tener memoria en la computadora. Por lo tanto, tiene sentido que cuanto m谩s grande sea la transacci贸n, m谩s cara deber铆a ser.

A modo de ejemplo: Tome una transacci贸n, con un tama帽o bastante t铆pico de 200 bytes. Introduciendo las constantes y el tama帽o, la tarifa de transacci贸n se ver谩 como:
0,155381 Ada + 0,000043946 Ada/byte x 200 bytes = 0,1641702 Ada

En alg煤n momento, se prev茅 que los valores puedan ajustarse para reflejar mejor los costes reales. Esto depende del curso de Ada y de las estad铆sticas de uso del sistema.

El Dr. Br眉njes tambi茅n se帽ala aqu铆 que puede haber t茅rminos adicionales en el futuro. Hay ideas como mirar el n煤mero de UTxO (lo que hace que su billetera sea m谩s complicada) y tambi茅n afecta la cantidad de datos, o mirar el tama帽o real de Ada (grandes cantidades de Ada, no s贸lo en byte).

Distribuci贸n de incentivos

En Cardano, existe una estricta divisi贸n del tiempo (en 茅pocas y franjas horarias).
Las franjas (slots) duran 20 segundos. Para cada franja (slot), se elige al azar una moneda y el propietario de esa moneda tiene el derecho de crear este bloque en esa franja.
Cada Epoca (Epoch) contiene 21.600 franjas (slots), es decir, exactamente 5 d铆as. Una 茅poca es cuando ocurre el proceso de elecci贸n/aleatorizaci贸n. Cada 5 d铆as, la gente 鈥榯ira sus dados鈥 y los l铆deres de franja (slot) para la siguiente 茅poca (Epoch) son elegidos en ese momento.

En Bitcoin, la distribuci贸n se produce bloque a bloque. Pero en Cardano, el plan es distribuir los incentivos 茅poca por 茅poca. Todas las comisiones de transacci贸n (de todos los bloques de una 茅poca) m谩s la expansi贸n monetaria se pondr谩n en un fondo com煤n de recompensas, para toda la 茅poca. Entonces toda este fondo ser谩 distribuido entre las personas que fueron activas/importantes durante esta 茅poca.

Idea b谩sica de la distribuci贸n: Explicado en dos pasos

  1. C贸mo se distribuye todo el pool de recompensas entre los pools
    La idea b谩sica es hacerlo proporcional a la participacion /inversion para que se pueda ver la participacion y hacer el c谩lculo. O puede ver el n煤mero de franjas (slots) en esa 茅poca en la que ese grupo fue elegido como l铆der de franja (slot) (no el n煤mero de bloques reales que cre贸).

Estos dos enfoques parecen diferentes al principio, pero la probabilidad de ser elegido l铆der de franja (slot) es proporcional a la participacion /inversion (debido a c贸mo funciona el protocolo cardano). Entonces, estos m茅todos tienen las mismas recompensas esperadas.

Hay dos refinamientos, a seguir:

Refinamiento 1:
La proporci贸n m谩xima de recompensas que puede recibir una agrupacion de participantes (stake pool) estar谩 limitada a 1/k
(k es el n煤mero de grupos (pools) deseados, probablemente alrededor de 100) (al momento de traduccion se pronostican 1000 stake pools, 31 de enero 2019)
Sin esto, las agrupaciones de participantes (stake pools) querr铆an ser cada vez m谩s grandes porque todav铆a reciben la misma recompensa, con un costo m谩s bajo, ya que los gastos generales no ser谩n mucho m谩s altos que los de una agrupacion de participantes (stake pool) m谩s peque帽a.

Por ejemplo:
si k = 100
A y B con un 0,3% y un 1,2% de participaci贸n, respectivamente.
A" recibir谩 el 0.3% de las recompensas, pero 鈥淏鈥 recibir谩 1/100 = 1%.
En este ejemplo, no importa cu谩n alta sea su participacion /inversion, nunca podr谩 obtener m谩s del 1% de las recompensas. La esperanza es que esto tenga el efecto de que las agrupaciones (staking pools) no se agranden demasiado.

Refinamiento 2:
Hasta ahora, todo esto depend铆a 煤nicamente de la participacion /inversion que tiene la agrupacion de participantes (stake pool), pero no del trabajo que realmente realizan. Se necesita un mecanismo que compruebe que se est谩n creando bloques en el momento de la elecci贸n. Por lo tanto, las agrupaciones de participantes (stake pools) deben ser penalizadas por no seguir el protocolo y no estar en l铆nea cuando es su turno.

Este predicado decidir谩 si la agrupacion de participantes (stake pool) es elegible para su participaci贸n en el fondo de recompensas, observando las franjas horarias para las que se eligi贸 como l铆der a una determinada agrupacion de participantes (stake pool) y el n煤mero de bloques que realmente cre贸. Esto no puede ser tan simple como 鈥渃rear al menos el x% de los bloques que se supon铆a que deb铆a鈥. 鈫 Dicen que debes crear al menos el 鈥90%鈥 de los bloques que has sido elegido para crear para recibir tu recompensa. En este caso, si un grupo (stake pool) es elegido para 100 slots en la 茅poca, y ya ha creado 90 bloques, entonces lo m谩s probable es que simplemente apaguen el ordenador e ignoren los 煤ltimos 10. Si todos hicieran eso, entonces al final de las 茅pocas, todos apagar铆an la computadora, lo cual no es bueno.
Es por eso que necesita ser un poco m谩s complicado, ya sea la aleatorizaci贸n u otros algoritmos.

  1. C贸mo un grupo (stake pool) divide las recompensas entre los miembros:

Despu茅s de que las recompensas se hayan dividido entre las agrupaciones de participantes (stake pools), cada l铆der de stake pool tiene que distribuir su parte de los intereses entre los miembros de su fondo. Los miembros del grupo son las personas que delegaron su participaci贸n en el grupo

Las dos directrices generales son:

El lider del grupo (stake pool) debe ser compensads por sus costos (hardware, registro, potencia de computaci贸n, tiempo en l铆nea, etc.) y recompensado por sus esfuerzos.
Los miembros del grupo (stake pool) deben ser recompensados proporcionalmente a la participaci贸n que delegaron al grupo.

Para entender esto, tomemos este ejemplo:
Considere a la l铆der del grupo (stake pool) Alice con un 0,2% de participaci贸n que forma su grupo con Bob (0,1% de participaci贸n) y Charlie (0,2% de participaci贸n).

Supongamos adem谩s que el fondo de recompensa para una 茅poca ficticia, y que contiene 5.000.000 Ada. Tambi茅n asuma que el grupo de Alice cumpli贸 con sus predicados y cre贸 bloques obedientemente durante todas las franjas horarias en las que fue elegido l铆der de franja (slot)

Entonces, el grupo de Alice que tiene (0,2% + 0,1% + 0,2%) 0,5% de participaci贸n, que es inferior a 1/k y no tiene tope: recibir谩 (0,5% de 5.000.000) 25.000 Ada del fondo de recompensas para esta 茅poca.

De los 25.000 Ada, Bob recibir谩 la mitad de lo que recibe Charlie.
Pero Charlie recibir谩 menos que la propia Alicia, para recompensar a Alicia por el costo y la molestia de manejar su grupo (stake pool)

Supongamos que esta compensaci贸n adicional para ejecutar un pool en este ejemplo es de 5.000 Ada. Esto ir谩 al l铆der del grupo (stake pool). As铆 que de los 20.000 restantes, puede hacer un c谩lculo 2:1:2 basado en el porcentaje de participaci贸n.
Alice recibir谩 13.000 Ada (8.000 + 5.000)
Bob obtendr谩 4.000 Ada
Charlie recibir谩 8.000 Ada

*Nota! Este ejemplo es puramente ficticio y tiene por objeto explicar la idea de la distribuci贸n de recompensas. De ninguna manera refleja las futuras cantidades de recompensas reales!

Hay dos razones por las que usted podr铆a recibir menos:

Si tiene m谩s de 1/k como se explic贸 anteriormente
Si no haces tu trabajo y participas en el protocolo

En estos casos, las recompensas no son distribuidas. Es importante que esta recompensa no gastada no se distribuya entre el resto de la gente. Esto no es un error, sino m谩s bien una caracter铆stica, porque estos fondos ir谩n a la tesorer铆a que promueve la sustentabilidad del sistema.
No hay competencia entre los grupos (stake pools)

Una consecuencia importante de estos grupos de participantes (stake pools) no distribuidos es que significa que no hay competencia entre ellos. No hay nada que un grupo pueda hacer para aumentar sus recompensas disminuyendo la recompensa de otro grupo. No hay ning煤n incentivo para que un grupo sabotee el trabajo de otro grupo.

Los ataques cl谩sicos en Bitcoin como la miner铆a ego铆sta o la retenci贸n de bloques no pueden funcionar porque los gupos (stake pools) est谩n cercadas entre s铆. Las acciones de un grupo s贸lo afectan a sus propias recompensas.

Vea el video de la presentaci贸n aqu铆:

Y sus diapositivas de presentaci贸n se pueden encontrar aqu铆

Resumen realizado gracias a @maki.mukai