Documentación de la Capa de Contabilidad (Settlement Layer- SL) Cardano. Perspectiva general de Cardano. Diferencias entre el documento del Protocolo de Ouroborous y su aplicación. Traducción al español 🇪🇸

Ver Documento Original aquí.

Diferencias entre el documento del Protocolo de Ouroboros y su aplicación

El objetivo de este documento es esbozar las formas en que la implementación de Cardano SL difiere de las especificaciones presentadas en el documento de protocolo de Ouroboros y aclarar cualquier cuestión pendiente después de leer el documento.

El presente documento se divide en cuatro partes:

  1. Aclaraciones - aclara todos los detalles que no se especifican en el documento, pero que son importantes para las implementaciones prácticas.
  2. Modificaciones - describe los elementos que se especifican en el documento, pero que se implementan de forma diferente en Cardano SL.
  3. Características añadidas - describe brevemente las nuevas características que no se describen en el documento, pero que han sido implementadas en Cardano SL.
  4. Omisiones - lista los temas descritos en el documento pero que aún no han sido implementados en Cardano SL.

Aclaraciones

Esta sección describe los temas que requieren aclaraciones.

Hora, franjas horarias y sincronización

En un modelo básico del protocolo el tiempo se divide en unidades discretas llamadas franjas (slots). Sin embargo, no hay detalles sobre cómo obtener el valor de tiempo actual de forma segura y con la suficiente precisión.

En Cardano SL, el valor de tiempo actual se obtiene a partir del valor de tiempo del sistema informático del usuario.

También tenemos una función para notificar a los usuarios si la hora de su sistema es incorrecta (la comparamos con el valor de tiempo que se obtiene de los servidores NTP). Esta característica está planeada para una versión futura.

Lanzamiento de Monedas y Compartir Secreto Verificable

El documento sugiere el esquema PVSS (Publicly Verifiable Secret Sharing) de Schoenmakers para Cardano SL. Sin embargo, actualmente Cardano SL utiliza “SCRAPE: Esquema PVSS "Scalable Randomness Attested by Public Entities” (Aleatoriedad Escalable Atestiguada por Entidades Públicas).

Uno de los retos al utilizar un esquema VSS (Verifiable Secret Sharing) es asociar la clave pública utilizada para la firma con la clave pública utilizada para el esquema VSS (VssPublicKey). Esto se resuelve introduciendo VssCertificates. Este certificado es una firma dada por una clave de firma para un par formado por VssPublicKey y la época hasta la cual este certificado es válido. Inicialmente, todas las partes interesadas con suficiente interés para participar en la generación de aleatoriedad poseen certificados. Cuando aparece una nueva parte interesada con suficiente interés, o cuando expira un certificado existente, se debe generar un nuevo certificado y enviarlo a la red. Los certificados VssCertificates se almacenan en bloques.

El esquema PVSS utiliza información de verificación de acciones que también incluye un compromiso con el secreto. También se utiliza como un compromiso en el protocolo. El esquema PVSS se ha implementado sobre la curva elíptica secp256r1. Por favor, consulte la implementación de PVSS en Cardano SL para más detalles.

Tiempo de generación de bloques

En el documento, no indican explícitamente cuándo un líder de franja (slot) debe generar un nuevo bloque y enviarlo a la red: se puede hacer al principio de una franja, al final de una franja, en el centro de una franja, etc. En Cardano SL existe una constante especial llamada “diámetro de red” que se aproxima al tiempo máximo necesario para emitir un bloque a todos los nodos de la red. Por ejemplo, si el diámetro de la red es 3, el bloque se genera y se anuncia 3 segundos antes del final de una franja.

Delegación de participación (stake)

El esquema de delegación, tal como se describe en el documento, no indica explícitamente si los certificados de firma por poderes deben almacenarse dentro de la cadena de bloques (blockchain) (aunque se sugiere almacenar la lista de revocación en la cadena de bloques). Sin almacenar certificados de firma proxy en la cadena de bloques, apenas es posible considerar la participación delegada en la comprobación del umbral de elegibilidad. Por otro lado, si todos los certificados se almacenan en la cadena de bloques, puede conducir a una hinchazón de la cadena de bloques cuando una gran parte de los bloques estarán ocupados por certificados proxy. El envío de un certificado es gratuito, por lo que los adversarios pueden generar tantos certificados como deseen.

Hay dos tipos de delegación en Cardano SL: de peso pesado y ligero. Hay un umbral en juego que hay que tener en cuenta para participar en la delegación de peso pesado. Los certificados de firma de proxy de la delegación de peso pesado se almacenan dentro de la cadena de bloques. Por el contrario, la delegación de peso ligero está disponible para todo el mundo, pero los certificados no se almacenan en la cadena de bloques y no se tienen en cuenta al comprobar el umbral de elegibilidad. Como se sugiere en el documento, se utiliza un sistema de delegación por poderes.

Por favor, lea acerca de la Delegación de participación en Cardano SL para obtener más detalles sobre la implementación.

Modificaciones

Proceso de selección de líderes

En el documento, el Proceso de Selección de Líderes se describe como voltear una (1 - p₁)… (1 - pⱼ₋₁) pⱼ- moneda segada para ver si la pⱼ parte interesada (stake holder) es seleccionada como el líder de la franja dada. Aquí pⱼ es la probabilidad de seleccionar ⱼ parte interesada.

En Cardano SL, se implementa de una manera ligeramente diferente. Se generan números aleatorios R en un rango [0… totalMonedas], donde R es un número de franja en una época. Los grupos de interés ocupan diferentes subsegmentos de esta gama, proporcionales a sus participaciones. De esta manera, cada número aleatorio se mapea en partes interesadas. Además, como sugiere el documento, se utiliza una semilla corta (short seed) (32 bits) para inicializar PRG en lugar de usar n ⌈log λ⌉ bits aleatorios.

Por favor, lea acerca de Selección de Líder en Cardano SL para más detalles sobre la implementación.

Compromisos, aperturas, envío de acciones

El tiempo de envío se asigna al azar dentro de un pequeño intervalo. Se hace para evitar la sobrecarga de la red cuando todos los participantes en el lanzamiento de monedas envían sus datos al mismo tiempo. Este intervalo se elige para que sea lo suficientemente pequeño como para que el protocolo permanezca seguro. Si estos datos se envían demasiado tarde y hay muchos adversarios que lideran las últimas franjas horarias de una determinada fase, puede ocurrir que los datos no se incluyan en el bloque.

Multipartes

En el documento, cada parte interesada se presenta como exactamente un participante del esquema VSS subyacente. Sin embargo, es natural que una parte interesada con más interés sea más importante que una parte interesada con menos interés con respecto al intercambio de secretos. Por ejemplo, si tres partes interesadas honestas controlan el 60% de la participación en total (cada una de ellas controla el 20%) y hay 40 partes interesadas adversarias que tienen cada una el 1% de la participación, entonces el adversario tiene control total sobre el intercambio de secretos.
Para superar este problema, se genera un número de acciones por cada accionista proporcional a su participación en Cardano SL.

Falla en la generación de aleatoriedad

El documento no cubre la situación en la que no pueden recuperarse los compromisos. Sin embargo, una aplicación práctica debería tener en cuenta estas hipótesis. La implementación de Cardano SL utiliza una semilla que consiste en todos los ceros si no hay compromisos que puedan ser recuperados.

Características añadidas

Sistema de actualización

Ver el artículo sobre el sistema de actualización.

Seguridad de P2P

Ver el artículo sobre implementación y endurecimiento de P2P.

Omisiones

Todavía no se han implementado las secciones sobre Endosos de Insumos y Estructura de Incentivos. Estas secciones se implementarán junto con la investigación pendiente sobre las cadenas laterales (sidechains) y se publicarán en la versión de cadenas laterales.

1 Like