Documentaci贸n de la Capa de Contabilidad (Settlement Layer- SL) Cardano. Perspectiva general de Cardano. Traducci贸n al espa帽ol 馃嚜馃嚫

Ver Documento Original aqu铆.

Algoritmo de Prueba de Participaci贸n (Proof of Stake - PoS) Ouroboros

El Algoritmo de Prueba de Participaci贸n (PoS) Ouroboros es la parte m谩s importante del protocolo. Define la forma en que los nodos alcanzan el consenso sobre el estado del libro mayor.

Ouroboros es 煤nico como primer protocolo de prueba de participaci贸n de cadenas de bloques (blockchain) basado en investigaciones acad茅micas formales y revisadas por pares.

驴Por qu茅 prueba de participaci贸n?

Lo m谩s importante a la hora de elegir un algoritmo de prueba de participaci贸n (PoS) en lugar de un algoritmo de prueba de trabajo (PoW) (tal y como ha sido adoptado por Bitcoin), son las consideraciones de consumo de energ铆a. La ejecuci贸n del protocolo bitcoin es una tarea muy costosa que utiliza grandes cantidades de energ铆a. Se estima que 3,8 hogares estadounidenses pueden ser alimentados durante un d铆a con la energ铆a que se gasta para generar una transacci贸n de bitcoin. Estos requisitos de energ铆a para el funcionamiento del protocolo bitcoin siguen creciendo a medida que m谩s y m谩s mineros de bitcoin invierten dinero en la miner铆a. Adem谩s, se necesita m谩s energ铆a a medida que aumenta la dificultad de los problemas que encuentran sus computadoras o plataformas mineras. Por esta raz贸n, los investigadores han investigado formas alternativas de llegar a un consenso, como el uso de los denominados BFT (Byzantine Fault Tolerant), los algoritmos de consenso y los algoritmos PoS.

驴Qu茅 es la Prueba de participaci贸n?

La Prueba de Participaci贸n (Proof of Stake- PoS) es un enfoque novedoso para la generaci贸n de bloques. La idea central de Proof of Stake es que en lugar de desperdiciar electricidad en problemas computacionalmente graves, se selecciona un nodo para generar (o 鈥渁cu帽ar鈥) un nuevo bloque con una probabilidad proporcional a la cantidad de monedas que tiene este nodo. Si un nodo tiene una participaci贸n positiva (> 0), se denomina 鈥減arte interesada鈥. Si un nodo es elegido para acu帽ar un nuevo bloque, se le llama 鈥渓铆der de franja鈥.

Prueba

La parte 鈥減rueba鈥 de la 鈥減rueba de participaci贸n鈥 se refiere a la prueba de que los bloques de transacciones son leg铆timos.

Participaci贸n

Mientras que 鈥減articipaci贸n鈥 (stake) significa 鈥渆l valor relativo que tienen las direcciones en el nodo鈥. Por 鈥渧alor relativo鈥 se entiende 鈥渢odo el valor total que poseen las billeteras de un determinado nodo dividido por el valor total del sistema Cardano SL鈥. Para m谩s informaci贸n, por favor vea: Saldo y participaci贸n en Cardano SL

Acerca de los L铆deres de Franja

Los nodos con un inter茅s positivo se denominan partes interesadas, y s贸lo 茅stas pueden participar en la ejecuci贸n del protocolo. Adem谩s, para poder generar nuevos bloques para la cadena de bloques, se debe elegir a una parte interesada como l铆der de la franja horaria. El l铆der de la franja puede escuchar las transacciones anunciadas por otros nodos, hacer un bloque de esas transacciones, firmar este bloque con su clave secreta y publicarlo en la red.

Se puede pensar en un l铆der de franja como un minero en bitcoin, pero el consenso antes mencionado define qui茅n podr谩 explotar, cu谩ndo y cu谩nto.

脡pocas y Franjas

El protocolo de Ouroboros divide el tiempo f铆sico en 茅pocas, y cada 茅poca se divide en franjas horarias. Por ejemplo:

Nota: una franja es un per铆odo de tiempo relativamente corto (por ejemplo, 20 segundos).
Cada franja tiene un y s贸lo un l铆der (l铆der de franja, SL):

El l铆der de la franja tiene derecho (exclusivo) a producir un 煤nico bloque durante su turno.

Esto significa que el n煤mero de l铆deres de franja es estrictamente igual al n煤mero de franjas en la 茅poca (llam茅mosle N), por lo que es imposible producir m谩s de N bloques durante una 茅poca.

Si el l铆der de la franja perdi贸 su franja (por ejemplo, cuando est谩 fuera de l铆nea), el derecho a producir un bloque se pierde hasta que sea elegido de nuevo.

Nota: Una o m谩s franjas pueden permanecer vac铆as (sin bloques generados), pero la mayor铆a de los bloques (al menos 50% + 1) deben generarse durante un per铆odo.

C贸mo funcionan las elecciones de los l铆deres de las franjas

Los l铆deres de las franjas se eligen del grupo de todas las partes interesadas. Tenga en cuenta que no todas las partes interesadas participan en esta elecci贸n, sino s贸lo aquellas que tienen suficiente participaci贸n (por ejemplo, el 2% de la participaci贸n total). Este grupo de actores se conoce como 鈥渆lectores鈥.

Los electores eligen a los l铆deres de las franjas para la siguiente 茅poca durante la 茅poca actual. As铆, al final de la 茅poca N ya se sabe qui茅nes son los l铆deres de las franjas para la 茅poca N+1, y no se puede cambiar.

Usted puede pensar en estas elecciones como una 鈥渓oter铆a justa鈥; cualquier persona del grupo de partes interesadas puede convertirse en un l铆der de franja. Sin embargo, una idea importante del PoS es que cuanto mayor sea el n煤mero de partes interesadas, mayores ser谩n las posibilidades de ser elegido como l铆der de la franja horaria.

Nota: Una parte interesada puede ser elegida como l铆der de tfranja para m谩s de una franja durante la misma 茅poca.

Computaci贸n multipartita

Uno de los problemas fundamentales del proceso de elecci贸n del l铆der de la franja horaria es su imparcialidad. Se necesita un cierto grado de aleatoriedad como base para la elecci贸n, en este caso, los resultados de esta elecci贸n son aleatorios y justos. As铆 que la pregunta es: 驴de d贸nde se puede obtener esta aleatoriedad?

Para lograr esta aleatoriedad se utiliza un enfoque de computaci贸n multipartidista (MPC) en el que cada elector realiza de forma independiente una acci贸n que se denomina 鈥渓anzamiento de monedas鈥 y despu茅s comparte los resultados con otros electores. La idea es que los resultados son generados aleatoriamente por cada elector, pero al final coinciden en el mismo valor final.

Fase de compromiso

En primer lugar, un elector genera un secreto (o valor aleatorio especial). A continuaci贸n, un elector forma un 鈥渃ompromiso鈥 que es un mensaje que contiene acciones cifradas (v茅ase una explicaci贸n m谩s adelante) y prueba de secreto.

El siguiente paso es cuando un elector firma este compromiso con su clave secreta, especifica el n煤mero de la 茅poca y adjunta su clave p煤blica. En este caso, todo el mundo puede comprobar qui茅n cre贸 este compromiso y a qu茅 茅poca se refiere.

Posteriormente, un elector env铆a su compromiso a otros electores, por lo que, con el tiempo, cada elector recoge los compromisos de todos los dem谩s electores.

Nota: estos compromisos se ponen en el bloque, es decir, se convierten en parte de la cadena de bloques.

Fase de revelaci贸n

La fase de revelaci贸n es cuando un elector env铆a una 鈥渁pertura鈥, o valor especial para abrir un compromiso. Un compromiso es como una caja cerrada (con un secreto), y el acto de abrirla implica que una llave que abre la caja recupera el secreto.

Nota: todas las aberturas se introducen en el bloque, es decir, pasan a formar parte de la cadena de bloques.

Fase de recuperaci贸n

La fase final del proceso se denomina fase de recuperaci贸n.

Eventualmente, un elector tiene tanto compromisos como aperturas. Te贸ricamente algunos electores pueden ser adversarios y pueden publicar su compromiso pero no publicar su apertura.

En este caso, los electores honestos pueden publicar todas las acciones (mencionadas anteriormente) para reconstruir el secreto. La idea es simple: una elecci贸n termina con 茅xito aunque algunos electores sean adversarios.

Posteriormente, un elector verifica que los compromisos y las aperturas coinciden, y si es as铆, extrae los secretos de los compromisos y forma una semilla (cadena de bytes generada al azar) de estos secretos. As铆 que todos los electores obtienen la misma semilla, y se usar谩 para el algoritmo Follow the Satoshi (FTS).

Sigue el Satoshi

En este momento, los electores tienen la semilla (la aleatoriedad que necesitamos). Ahora tienen que seleccionar un l铆der de franja en particular para la siguiente 茅poca. Aqu铆 es donde entra en vigor el algoritmo Follow the Satoshi (FTS):

Para explicar c贸mo se selecciona un l铆der de franja, piense en la m谩s peque帽a pieza at贸mica de valor como una moneda llamada 鈥淟ovelace鈥. Fundamentalmente, el libro mayor produce la distribuci贸n de monedas, y como los l铆deres de franja s贸lo pueden ser seleccionados de la distribuci贸n de la participaci贸n de las partes interesadas. FTS es un algoritmo que selecciona una moneda de forma verificable, y cuando la moneda de propiedad de la parte interesada S es seleccionada, S se convierte en un l铆der de franja. Es evidente que cuantas m谩s monedas tenga S, mayor ser谩 la probabilidad de que se recoja una de sus monedas.

La raz贸n por la que se llama 鈥淔ollow the Satoshi鈥 es que en bitcoin, una pieza at贸mica de la moneda se llama 鈥淪atoshi鈥, en honor a Satoshi Nakamoto, el creador de bitcoin.

Mayor铆a Honesta

El supuesto fundamental de un protocolo se conoce como mayor铆a honesta. Esto significa que los participantes que poseen al menos el 50% + 1 de la participaci贸n total son honestos. En este caso podemos demostrar que los adversarios no pueden romper la persistencia y la vitalidad de la cadena de bloques. Para m谩s informaci贸n, v茅ase el documento (p谩ginas 2 y 3).

1 Like