Comparativa Técnica de Características de Nxt y Ardor

Funcionalidad

Nxt

Ardor

Blockchains

Única cadena

Una cadena padre con múltiples cadenas hijas.

Tokens de Transaccion

El mismo token (NXT) se usa tanto para establecer el consenso y proveer de seguridad a la blockchain, como para ser una unidad básica de valor en todas las transacciones

Sólo el token de la cadena padre (ADRD) se usa en consenso proof-of-stake, y por lo tanto provee de seguridad a todas las cadenas hijas. Los tokens de las cadenas hijas se sirven únicamente como unidades de valor transaccional

Comisiones de Transacción

Las comisiones de transacción se pagan sólo en NXT, requiriendo a los usuarios a tener siempre NXT en sus cuentas.

En cada cadena las comisiones se pagan en su token nativo (moneda) de su respectiva cadena. Los usuarios finales no necesitan poseer tokens ARDR. Un negocio también puede subvencionar las comisiones de transacción para una cadena hija en concreto o para un tipo específico de transacción mediante la ejecución de un agrupador (bundler) personalizado, mediante el cual los usuarios finales no necesitan de pagar comisiones de ningún tipo.

Funcionalidad

Exchange de Activos, Sistema Monetario, Alias, Mensajería, Tienda Digital, Sistema de Votado, Mezclado (Shuffling), Datos en el Cloud, Transacciones condicionales,  Control de Cuenta, Propiedades de Cuenta

Todas esta funcionalidades también están presentes en Ardor y están disponibles en cada cadena hija.

Una cadena hija puede también restringir o desactivar de manera opcional alguna de estas funcionalidades.

La cadena padre soporta un subconjunto limitado de funcionalidades, ya que se pretende que únicamente se use para el establecimiento del protocolo de consenso y no para las transacciones diarias.

Cuentas

Cada contraseña se mapea a una única cuenta. Las contraseñas no se pueden cambiar, y no hay un fichero del wallet que almacenar.

El mismo mapeo de contraseñas con número de cuentas se usa como en Nxt. Las cuentas son globales a todas las cadenas hijas, y una cuenta puede tener balances en las cadenas hijas existentes, así como en Ardor.

Posesiones

Hay una única modena (NXT), y activos emitidos por usuarios sin límite y monedas del sistema monetario.

Cada cadena tiene su propia moneda. Los activos y las monedas del sistema monetario pueden ser emitidas en cualquier cadena hija, y están disponibles para ser intercambiadas globalmente.

Los activos o las monedas del sistema monetario se pueden restringir opcionalmente a algunas cadenas hijas.

Intercambio

Los activos y monedas del SM se pueden intercambiar sólo por NXT.

Los activos y las monedas del SM se pueden intercambiar en cualquier cadena hija, con su precio denominado en el correspondiente token de la cadena hija.

Exchange de Monedas

No Disponible

La nueva funcionalidad del Exchange de Monedas permite el intercambio de monedas de las cadenas hijas entre ellas, y también con la moneda de la cadena padre (ARDR).

Dividendos

Los dividendos de activos se pueden pagar en Nxt, en otro asset o en una moneda del SM.

Los pagos de dividendos de activos se pueden pagar en cualquiera de los tokens de las cadenas hijas, mediante la emisión simple de la transacción del pago en la cadena correspondiente.

Adicionalmente, el pago de dividendos en otro asset o en una moneda del SM está siendo implementado.

Financiación pública

La funcionalidad de financiación pública está disponible en el Sistema Monetario, pero los fondos han de ser recogidos sólo en Nxt.

La funcionalidad de financiacion pública está disponible en todas las cadenas hijas, y en cada cadena hija los fondos se recogen es su correspondiente moneda. Las transacciones de reserva y reclamo han de ejecutarse únicamente en la cadena hija en la que la moneda fue emitida.

Mezclado (Shuffling)

Mezclado (Shuffling) de NXT, Activos y monedas del SM está disponible para su uso.

En cada cadena hija, el mezclado de la correspondiente moneda, o de cualquier activo o moneda del SM está soportado. El Mezclado como Servicio o "Shuffling-as-a-Service" se provee mediante un automatizado add-on de mezclador en espera.

Alias

Los nombres de Alias son globalmente únicos.

Los nombres de los alias son únicos dentro de cada cadena hija en particular.

Monedas SM

Los identificadores de moneda y nombres son únicos globalmente.

Los identificadores de moneda y nombres son únicos dentro de cada hija en particular.

Podado (Pruning)

El podado está disponible para los mensajes en texto plano y cifrados, para los datos etiquetados (datos en el cloud). El podado de datos se realiza automáticamente bajo demanda de los nodos de archivado.

El podado y recuperación de datos podados está disponible al igual que en Nxt.

Como añadido, las propias transacciones de las cadenas hijas pueden ser designadas para ser podadas y no se necesitarán almacenar permanentemente o re-descargadas por todos los nodos. El actual podado de transacciones será implementado próximamente.

Identificadores de Transacción

Los identificadores de transacción son de 64 bit longs, y son únicos de manera global.

Los identificadores de transacción de 64 bit ya no garantizan ser globalmente únicos para las cadenas hijas. En vez de ello se usan Hashes de transacción de 256 bit (digest sha256) como identificadores de transacción.

Generación de bloque

El proceso de "forjado" se usa para crear nuevos bloques, con la probabilidad de creación de bloque dependiente del balance de la cuenta de NXT (stake).

El mismo algoritmo de forjado se usa como en Nxt, dependiente sólo de los balances de las cuentas en ARDR

Agrupado (Bundling)

No disponible

Un nuevo proceso llamado agrupado "bundling", se usa para juntar transacciones de cadenas hijas ("bloque de cadena hija"), el cual es incluido en la cadena principal.

Cualquier cuenta puede tener el papel de ser un agrupador. El proceso de agrupación sólo ejecuta el intercambio de comisiones pagadas por los usuarios en tokens de las cadenas hijas en comisiones de ARDR aceptadas por los forjadores de bloques.

Transacciones Condicionales (Phasing)

La ejecución de las transacciones puede ser condicional, sujeta a la aprobación usando varios modelos de aprobación.

Los mismos modelos de votación como con Nxt, pero las transacciones condicionales sólo son posibles en las cadenas hijas. La aprobación de una transacción condicional se puede hacer un una cadena hija distinta a la que se ejecutó, y mediante el modelo de aprobación por votado también se soporte la unión a un hash de transacción de una cadena hija distinta.

Transacciones Condicionales Compuestas (Composite Phasing)

No está disponible, las transacciones condicionales sólo se pueden usar mediante un único modelo de votación a la vez.

La nueva funcionalidad de Transacciones Condicionales Inteligentes permite que las condiciones para la ejecución de una transacción se combinen mediante operadores booleanos AND, OR y NOT, formando un modelo de votación compuesto. De esta manera declarativa se pueden construir contratos inteligentes usando los modelos de disponibles de votación ya existentes.

Modelo de votación Por-propiedad

No disponible

Un nuevo modelo de votación "por-propiedad" se ha añadido, haciendo la ejecución de una transacción condicional a que la cuenta emisora tengo una propiedad específica configurada. Esto se puede combinar con la nueva funcionalidad del control de activo, para permitir que sólo cuentas autorizadas o verificadas mediante KYC (Conoce a tu Cliente) puedan hacer transacciones con un activo.

Control de Cuenta

Las cuentas se pueden restringir para que al realizar una transacción tengan que tener una aprobación obligatoria.

Igual que en Nxt, pero las cuentas que están bajo el control de cuenta no pueden ejecutar transacciones en la cadena padre, ya que estás no pueden ser condicionales.

Control de Activo

No disponible

El emisor del activo puede imponer una condición restrictiva a todas las transacciones que afecten el activo. Esto permite al accionista forzar acuerdos que requieran la aprobación del mismo, o una aprobación de un cuadro de mando, en todas las transacciones con las acciones de la compañía.

Control de Cadena Hija

No disponible

El Control de Cadena Hija se puede usar para hacer una cadena hija permisionada, con distintos niveles de autorización de usuarios, permitiendo a los administradores de la cadena otorgar or revocar los privilegios sobre las transacciones de los usuarios de dicha cadena hija permisionada.

Compartición de Secreto de Shamir

No disponible

La plataforma Ardor da soporte al uso del esquema de Compartición de Secretos de Shamir para partir una contraseña de una cuenta en varias piezas, de manera que pueda ser recompuesta sólo por parte de esas piezas.

Contractos Ligeros

No disponible

Los Contratos Ligeros representan un marco de desarrollo para una capa de automatización de las APIs existentes de Ardor. Los Contratos Ligeros no se ejecutan en todos los nodos, sólo en aquellos que eligen la ejecución de los mismos. Al no tener estado, estos contratos no almacenan datos en la blockchain y no manipulan objetos de la blockchain directamente. Únicamente ejecutan transacciones estándar en la blockchain como resultado de su ejecución.

Cupones de Transacción (Vouchers)

No disponible

Los usuarios pueden solicitar un pago mediante la preparación de una plantilla firmada digitalmente (Voucher), y enviarla al pagador por fuera de la blockchain. El pagador entonces simplemente carga la plantilla, verifica las cantidades y otros detalles, firma, y envía la transacción.

Interconexión de Pares (Peer Networking)

Basado en HTTP, también con soporte de WebSocket, transmitiendo datos en formato JSON entre pares.

Reescrito completamente y optimizado, mediane el uso de sockets nativos de Java y mensajes binarios entre pares. Los bloques y la propagación de transacciones ha sido mejorada significativamente, mediante el intercambio y cacheo de información sobre los bloques y transacciones disponibles entre pares, y únicamente propagando las partes que no se encuentran.

API

APIs sobre HTTP, devuelven respuestas en formato JSON.

Prácticamente sin cambios excepto por:

1. Un parámetro llamado cadena "chain" se ha añado a cada API que es específico de cadena hija.

2. Los identificadores de transacción de 64 bit se han reemplazados con hashes de 256 bit.

3. Todos los precios y costes que fueron definidos previamente relativos a la cantidad más pequeña e indivisible de posesión ("QNT") ahora se define relativa a la unidad de posesión ("share").

Escalabilidad

Las transacciones se almacenan en la blockchain de manera permantente, y necesitan de ser descargadas de nuevo y reprocesada por todos los nodos, de manera que después de meses y años de operaciones se convierte en un cuello de botella significante.

Todas las transacciones de las cadenas hijas son susceptibles de ser podadas o eliminadas completamente, sin afectar a la seguridad de la blockchain, y por tanto permitiendo que el tamaño de la blockchain se mantenga significativamente más pequeño. Al unirse un nuevo nodo a la red, sólo necesita descargarse las transacciones de la cadena padre, seguido de las últimas instantáneas tomadas del estado del sistema actual.*

La funcionalidad marcada con un asterisco está planificada para ser implementada próximamente en una futura versión de Ardor. Todo el resto de la funcionalidad ya está disponible en producción.