Skip to content

Whitepaper_es

UdjinM6 edited this page May 25, 2016 · 2 revisions

Dash: Una Divisa Cifrada Centrada en la Privacidad

Evan Duffield - [email protected] Daniel Diaz - [email protected]

Resumen. Una divisa cifrada basada en Bitcoin, la obra de Satoshi Nakamoto, la cual consta de diversas mejoras, tales como una red incentivada de dos niveles denominada red de Nodos Maestros. Otra aportación integrada en la misma se trata de PrivateSend, dotándola de una fungibilidad creciente, e InstantSend, la cual facilita la confirmación instantánea de las transacciones sin una autoridad centralizada.

1 Introducción

Bitcoin [1] es una divisa cifrada que se ha convertido en un medio popular de intercambio, siendo la primera divisa digital en captar a un número considerable de usuarios [2]. Desde sus principios en el año 2009, Bitcoin ha experimentado un rápido crecimiento en su adopción por la mayoría y su uso en la venta al por menor [3]. Un problema esencial para la aceptación de Bitcoin surge en situaciones con puntos de venta donde la red requiere un tiempo de espera para confirmar que la transacción realizada es válida. Diversas empresas de pago han creado métodos alternativos para permitir a los vendedores efectuar transacciones de cero confirmaciones, pero estas soluciones utilizan una contraparte de confianza para mediar en la transacción fuera del protocolo.

Bitcoin ofrece transacciones seudoanónimas en un libro de contabilidad público, con una relación uno a uno entre el emisor y el receptor. Esta estructura facilita un registro permanente de todas las transacciones que han tenido lugar en todo momento en la red [5]. Bitcoin is ampliamente conocido en círculos académicos por ofrecer un nivel bajo de privacidad, pero aun existiendo esta limitación muchas personas confían su historial financiero a la cadena de boques.

Dash es la primera divisa criptográfica enfocada en la privacidad basada en la obra de Satoshi Nakamoto. En este paper proponemos una serie de mejoras para Bitcoin cuyo resultado es una divisa cifrada descentralizada, fuertemente anónima, con transacciones instantáneas seguras y una red secundaria entre pares incentivada para ofrecer servicios a la red Dash.

2 Red de Nodos Maestros

Los nodos completos son servidores que funcionan en una red p2p, los cuales permiten su uso a pares para recibir actualizaciones sobre los eventos en dicha red. Estos nodos requieren un volumen de tráfico significativo y otros recursos anexos que conllevan un coste sustancial. Como consecuencia, en la red Bitcoin se ha observado una disminución constante en el número de estos nodos a lo largo del tiempo [7] y el consiguiente aumento en la propagación del bloque hasta alcanzar los 40 segundos [14]. Muchas soluciones se han propuesto para ello, como un plan nuevo de recompensa por Microsoft Research [4] y el programa de incentivo de Bitnodes [6].

Figura 1: Nodos completos de Bitcoin en la primavera de 2014

Figura 1: Nodos completos de Bitcoin en la primavera de 2014

Estos nodos son muy importantes para la salud de la red. Ellos ofrecen a los clientes la capacidad de sincronizar y propagar rápidamente los mensajes a través de la red. Proponemos añadir una red secundaria, la red de Nodos Maestros de Dash. Estos nodos tendrán una alta disponibilidad y proporcionan un nivel de servicio determinado a la red para formar parte del Programa de Recompensa de Masternode.

2.1 Programa de Recompensa de Nodos Maestros - Costes y Pagos

La causa en mayor medida de la disminución en el número de nodos completos de la red Bitcoin es la ausencia de incentivos para operar uno de ellos. El coste de mantenimiento de un nodo completo aumenta con el transcurso del tiempo ya que el uso de la red es mayor, creando más ancho de banda y suponiendo más dinero a su operador. Conforme el coste crece, los operadores consolidan sus servicios de forma que resulten más baratos de operar o emplean un cliente ligero, el cual no ayuda a la red en absoluto.

Los nodos maestros son nodos completos, análogos a sus contrapartidas en la red Bitcoin, con la diferencia de que proporcionan un nivel de servicio a la red y tienen un vínculo establecido con un colateral para poder participar. A este colateral nunca se renuncia y está seguro mientras el Nodo Maestro funciona. Esto permite a los inversores ofrecer un servicio a la red, ganar un interés con su inversión y reducir la volatilidad de la divisa.

Para operar un Nodo Maestro, el nodo debe almacenar 1000 DASH. Cuando están activos, los nodos proporcionan servicios a los clientes de la red y a cambio se les paga en forma de un dividendo. Esto permite a los usuarios pagar por los servicios y obtener un retorno de la inversión. Los Nodos Maestros reciben los pagos de la misma reserva de dinero, aproximadamente un 45% [footnote] de la recompensa total del bloque se dedica a este programa.

Debido al hecho de que el programa de recompensa del Nodo Maestro es un porcentaje fijo y la cifra total de nodos presentes en la red fluctúa, las recompensas esperadas variarán según el recuento actual de todos los Nodos Maestros activos. Los pagos para un día estándar por operar un Nodo Maestro se pueden calcular mediante la fórmula siguiente:

(n/t)* rba

Donde: n es el número de Nodos Maestros controlados por un operador t es el número total de Nodos Maestros r es la recompensa del bloque actual (actualmente en un promedio de 5 DASH) b es la media de bloques en un día. Para la red Dash es generalmente 576. a es el pago promedio del Nodo Maestro (45% de la cuantía promedio del pago por bloque)

El retorno de inversión por operar un Nodo Maestro se calcula con

((n/t)r * ba*365) / 1000

Donde las variables son las mismas de arriba.

El coste asociado por operar un Nodo Maestro implica unos límites duro y suave en los nodos activos en la red. En estos momentos con 5.3 milllones de DASH en circulación, sólo 5300 nodos podrían funcionar en la red. El límite suave lo impone el precio que cuesta adquiri un nodo y la liquidez limitada en las casas de cambio debido al uso de Dash como divisa y no simplemente como una inversión.

2.2 Ordenación Determinística

Un algoritmo determinístico especial se usa para crear una ordenación aleatoria de los Nodos Maestros. Usando el hash de la prueba de trabajo de cada bloque, la seguridad de esta funcionalidad queda garantizada por la red de minado.

Seudocódigo para seleccionar un Nodo Maestro:

Para(nodo_maestro en nodos_mestros){

n = nodo_maestro.CalcularPuntuación();

    si(n > la_mejor_puntuación){

la_mejor_puntuación = n; nodo_ganador = nodo_maestro; } }

CNodoMaestro::CalcularPuntuación(){

n1 = ObtenerHashPruebaDeTrabajo(nAlturaBloque); // obtener el hash de este bloque n2 = Hash(n1); //hash del hash de POT para aumentar la entropía n3 = valorabsoluto(n2 - vin_del_nodo_maestro);

devolver n3; }

El código de ejemplo se puede extender para proporcionar una clasificación de los Nodos Maestros, seleccionando un “segundo”, “tercero”, “cuarto” Nodo Maestro de la lista.

2.3 Quorums sin Necesidad de Confianza

Actualmente la red Dash tiene ~2400 Nodos Maestros activos [8]. Al exigir un colateral de 1000 DASH para convertirse en un Nodo Maestro activo creamos un sistema en el cual nadie puede controlar toda la red. Por ejemplo, si alguien quiere controlar el 50% de la red de Nodos Maestros debe comprar 2.300.000 DASH en el mercado abierto. Esta compra subiría el precio sustancialmente y resultaría imposible adquirir los DASH necesarios.

Con la incorporación de la red de Nodos Maestros y los requisitos de colateral, podemos usar esta red secundaria para realizar tareas delicadas sin necesidad de confianza, donde ninguna entidad es capaz de controlar el resultado. Seleccionando N Nodos Maestros seudoaleatorios del total en el grupo para llevar a cabo la misma tarea, estos nodos pueden actuar como un oráculo, sin que la red entera desarrolle la tarea.

Puede verse un ejemplo de implementación de un quorum sin necesidad de confianza (vea InstantSend [9]), el cual utiliza quorums para ratificar transacciones y bloquear las entradas o la implementación de prueba de servicio [10].

Otro ejemplo de uso para quorums sin necesidad de confianza pueden integrar la red de nodos maestros como un oráculo descentralizado para mercados financieros, con los contratos descentralizados seguros como una posibilidad. Un ejemplo de contrato sería el siguiente: si Apple Stock (AAPL) supera los 300$ el 31-12-2016 entonces pagar a la clave pública A, y en caso contrario pagar a la clave pública B.

2.4 Roles y Prueba de Servicio

Los Nodos Maestros pueden proporcionar cualquier número de servicios adicionales a la red. Como prueba de concepto, nuestra primera implementación incluyó PrivateSend e InstantSend. A través de lo que denominamos prueba de servicio, podemos requerir que estos nodes estén en línea, respondiendo e incluso en la altura de bloque correcta.

Actores malignos podrían también operar Nodos Maestros, pero no ofrecer la calidad de servicio requerida por el resto de la red. Para disminuir la posibilidad de personas usando el sistema para su exclusivo beneficio, los nodos deben hacer ping al resto de la red para asegurar que permanecen activos. Este trabajo lo realiza la red de Nodos Maestros seleccionando 2 quorums por bloque. El Quorum A comprueba el servicio del Quorum B en cada bloque. El Quorum A son los nodos más próximos al hash del bloque actual, mientras que el Quorum B son los más alejados de dicho hash.

Nodo Maestro A (1) comprueba Nodo Maestro B (rango 2300) Nodo Maestro A (2) comprueba Nodo Maestro (rango 2299) Nodo Maestro A (3) comprueba Nodo Maestro B (rango 2298)

Todo el trabajo necesario para comprobar si los nodos de la red están activos lo realiza la propia red de Nodos Maestros. Aproximadamente el 1% de la red será comprobada en cada bloque. Esto resulta en que la red se comprueba por completo unas seis veces diarias. Con el propósito de mantener el sistema sin confianza, seleccionamos nodos aleatoriamente con el sistema de Quorum. Después también requerimos un mínimo de seis violaciones para desactivar un nodo.

Para engañar al sistema un atacante necesitará ser seleccionado seis veces seguidas. En caso contrario, las violaciones serán neutralizadas por el sistema conforme otros nodos sean seleccionados por el sistema de Quorum.

Nodos Maestros del Atacante / Total de Nodos Maestros Veces Seguidas Necesarias como Elegido Probabilidad de Éxito (n/t)r DASH Necesarios
1/2300 6 6.75e-21 1000DASH
10/2300 6 6.75e-15 10,000DASH
100/2300 6 6.75e-09 100,000DASH
500/2300 6 0.01055% 500,000DASH
1000/2300 6 0.6755% 1,000,000DASH

Tabla 1. La probabilidad de engañar al sistema que supone un Nodo Maestro único cuando falla la prueba de servicio

Donde: n es el número total de nodos controlados por el atacante t es el número total de Nodos Maestros en la red r es la profundidad de la cadena

La selección de Nodos Maestros es seudoaleatoria basada en el sistema de Quorum.

2.5 Protocolo de Nodos Maestros

Los Nodos Maestros se propagan en la red mediante una serie de extensiones del protocolo incluyendo un mensaje de anuncio y el mensaje de ping del Nodo Maestro. Estos dos mensajes son todo lo necesario para poner activo un nodo en la red. Aparte de estos mensajes se encuentran los destinados a efectuar una petición de prueba de servicio, PrivateSend e InstantSend.

Los Nodos Maestros se forman originalmente enviando 1000 DASH a una dirección específica de un monedero, el cual “activará” el nodo haciéndolo así capaz de ser propagado por la red. Se crea una clave secundaria privada para firmar todos los mensajes posteriores. La clave anterior permite bloquear completamente el monedero cuando funciona en un modo autosuficiente.

Un modo en frío es posible gracias a la clave privada sencundaria almacenada en dos máquinas separadas. El cliente “caliente” primario firma la entrada de 1000 DASH incluyendo la clave privada de firma secundaria en el mensaje. Poco después el cliente “frío” ve un mensaje que incluye su clave secundaria, y, se activa como un nuevo Nodo Maestro. Esto permite que el cliente “caliente” se desactive (cliente desconectado) y no deja posibilidad alguna a un atacante de que obtenga los 1000 DASH consiguiendo el acceso al Nodo Maestro tras su activación.

En cuanto se inicia, un Nodo Maestro envía un mensaje a la red “Anuncio de Nodo Maestro”, conteniendo lo siguiente:

Mensaje: (Entrada 1K DASH, Dirección IP Accesible, Firma, Tiempo de Firma, Clave Pública de 1K Dash, Clave Pública Secundaria, Clave Pública de Donación, Porcentaje de Donación)

Cada 15 minutos y posteriores, se envía un mensaje de ping para demostrar que el nodo aún está activo.

Mensaje: (1K DASH de Entrada, Firma (usando clave secundaria), Tiempo de Firma, Parada)

Después de que un tiempo de vida ha expirado la propia red eliminará el nodo inactivo de la misma, provocando que el nodo no sea usado por los clientes o reciba pagos. Los nodos también pueden hacer ping a la red constantemente, pero si no tienen sus puertos abiertos, con el tiempo serán marcados como inactivos y no cobrarán.

2.6 Propagación de la Lista de Nodos Maestros

A los clientes nuevos que se incorporan a la red Dash hay que avisarles de los Nodos Maestros actualmente activos en la misma para poder utilizar sus servicios. Tan pronto como se unen a la red en malla, se envía una orden a sus pares solicitando la lista conocida de Nodos Maestros. Los clientes usan un objeto caché para registrar los Nodos Maestros y su estado actual, así cuando los clientes se reinician simplemente cargan este archivo en lugar de preguntar la lista completa de Nodos Maestros.

2.7 Pagos mediante Minería e Imposición

Para garantizar que cada Nodo Maestro cobra su parte equitativa de la recompensa por bloque, la red debe hacer cumplir el pago de los bloques al Nodo Maestro correcto. Si un minero no cumple las normas sus bloques deben ser rechazados por la red, si no se incentivaría el hacer trampas.

Proponemos una estrategia donde los Nodos Maestros forman quorums, seleccionan un Nodo Maestro gaganor y propagan su mensaje. Después de que N mensajes se han propagado para seleccionar el mismo el mismo beneficiario, se formará un consensoe y dicho a bloque en cuestión se le exigirá que pague al Nodo Maestro.

Cuando se mina en la red, el software del grupo (sitios web que combinan los esfuerzos de mineros individuales) usa la API RPC para obtener la información sobre cómo debe generarse un bloque. Para pagar a los Nodos Maestros, este interfaz debe extenderse añadiendo un beneficiario secundario a ObtenerPlantillaBloque (GetBlockTemplate). Posteriormente los grupos propagan sus bloques minados con éxito, incluyendo un pago que se reparte entre ellos y un Nodo Maestro.

3 PrivateSend

Creemos que es importante tener una implementación sin necesidad de confianza estándar para mejorar la privacidad de sus usuarios en el cliente de referencia, la cual ofrezca un alto grado de privacidad. Otros clientes como electrum, Android y iPhone también dispondrán de la misma capa de anonimato implementada directamente y utilizarán las extensiones del protocolo. Esto aporta a los usuarios una misma experiencia al hacer sus fondos anónimos empleando un sistema muy comprensible.

PrivateSend es una versión mejorada y extendida de CoinJoin. Además del concepto principal de CoinJoin, empleamos toda una serie de mejoras tales como la descentralización, anonimato fuerte mediante el uso de una aproximación de encadenamiento, denominaciones y mezclado pasivo con anticipación.

El reto más importante cuando se mejora la privacidad y fungibilidad de una divisa cifrada consiste en hacerlo de una forma que no oculte la cadena de bloques entera. En divisas cifradas basadas en Bitcoin, uno puede decir cuáles salidas no se han gastado y cuáles sí, abreviadas habitualmente con UTXO, acrónimo de salida de transacción sin gastar. Esto resulta en un libro de contabilidad público que permite a cualquier usuario actuar como un avalista de la integridad de las transacciones. El protocolo Bitcoin está diseñado para funcionar sin la participación de contrapartes de confianza, en su ausencia, es crítico que las capacidades de auditoría permanezcan inmediatamente accesibles a los usuarios a través de la cadena de bloques pública. Nuestra meta es mejorar la privacidad y fungibilidad sin perder estos elementos clave, los cuales consideramos que conforman una buena divisa.

Disponiendo de un servicio de mezcla descentralizado dentro de la divisa obtenemos la capacidad de conservar la divisa en sí perfectamente fungible. La fungibilidad es un atributo del dinero, la cual dicta que todas las unidades de una divisa deberían permanecer iguales. Cuando recibes dinero con una divisa, no debería venir acompañado del historial de los usuarios anteriores de la misma o estos deberían tener una forma sencilla de disociarse de dicho historial, manteniendo de este modo todas las monedas su igualdad. Al mismo tiempo, cualquier usuario debería poder actuar como un auditor para garantizar la integridad financiera del libro de contabilidad sin comprometer la privacidad de otros.

Para mejorar la fungibilidad y mantener la integridad de la cadena de bloques pública, proponemos usar una estrategia de mezclado sin necesidad de confianza, descentralizada con anticipación. Para que sea efectiva en conservar la fungibilidad de la divisa, este servicio está directamente integrado en la misma, resultando sencillo de usar y seguro para el usuario corriente.

3.1 Rastreando CoinJoin Por Cuantías

Una estrategia habitual en las implementaciones de Bitcoin existentes de CoinJoin consiste en simplemente combinar las transacciones juntas. Esto expone a los usuarios a varios métodos de seguir sus monedas mediante estas combinaciones de transacciones. Figura 2: Un ejemplo de transacción de CoinJoin con 2 usuarios [11][12]

Figura 2: Un ejemplo de transacción de CoinJoin con 2 usuarios [11][12]

En esta transacción, se enviaron 0.05BTC a través del mezclador. Para identificar la fuente del dinero, simplemente hemos de sumar los valores de la derecha hasta que coincidan con uno de los valores de la izquierda.

Si descomponemos la transacción:

  • 0.05 + 0.0499 + 0.0001(comisión) = 0.10BTC.
  • 0.0499 + 0.05940182 + 0.0001(comisión) = 0.10940182BTC.

Este procedimiento se vuelve más difícil exponencialmente conforme se añaden más usuarios al mezclador. Sin embargo, estas sesiones pueden deanonimizarse retroactivamente en cualquier punto en el futuro.

3.2 Concatenación a Través del Cambio y Concatenación Hacia Delante del Cambio

En otras implementaciones propuestas de CoinJoin, resulta posible que un usuario haga anónimo su dinero, después envíe con el tiempo el cambio de dicha transacción a una casa de cambio u otra entidad que conozca la identidad del usuario. Esto destruye el anonimato y permite a la entidad ir hacia atrás en las transacciones del usuario. Llamamos a este tipo de ataque “Concatenación hacia delante” (Forward Linking)

Figura 3: Concatenación hacia delante del Cambio

Figura 3: Concatenación hacia delante del Cambio

En este ejemplo, Alice hace anónimos 1.2BTC, lo cual va a 2 salidas, 1BTC y 0.2BTC. Luego gasta 0.7BTC de la salida de 1BTC, recibiendo un cambio de 0.3BTC. Esos 0.3BTC van posteriormente a una fuente identificable, confirmando que Alice también gastó los 0.7BTC en la transacción previa.

Para identificar al emisor de la transacción supuestamente anónima, comenzamos en la transacción de la casa del “cambio” y vamos hacia atrás en la cadena de bloques hasta que lleguemos a “Alice envía 0.7BTC de forma anónima”. Al tratarse de la casa de cambio, ésta sabe que fue el usuario en su registro quien compró recientemente algo de forma anónima, destruyendo así el anonimato por completo. Llamamos a este tipo de ataque “Concatenación a través del Cambio” (Through Change Linking).

Figura 4: Concatenación a través del Cambio

Figura 4: Concatenación a través del Cambio

En el segundo ejemplo, Alice compra 1.2 BTC de coinbase, luego hace anónima esa cantidad en una salida de 1BTC. Luego ella gasta el 1BTC, recibe el cambio en la cuantía de 0.3BTC y posteriormente combina ésta con su cambio anterior de 0.2BTC.

Si combinamos el cambio de la transacción anónima (0.3BTC) y el cambio que recibió de la transacción de CoinJoin, se puede vincular el historial entero antes y después, destruyendo completamente el anonimato.

3.3 Privacidad Mejorada y Resistencia a Denegación del Servicio (DOS)

PrivateSend usa el hecho de que una transacción se puede formar mediante múltiples partes e ir a múltiples partes para combinar fondos juntos en un modo donde ellos no puedan desacoplarse de aquí en adelante. Dado que todas las transacciones de PrivateSend están diseñadas para que los usuarios se paguen a sí mismos, el sistema es altamente seguro contra el robo y las monedas de los usuarios siempre permanecen a salvo. Actualmente para poder mezclar con PrivateSend se requieren al menos 3 participantes.

Figura 5: Tres usuarios envían fondos denominados a una transacción común. Los usuarios se reembolsan a sí mismos en forma de nuevas salidas, las cuales se ordenan aleatoriamente.

Figura 5: Tres usuarios envían fondos denominados a una transacción común. Los usuarios se reembolsan a sí mismos en forma de nuevas salidas, las cuales se ordenan aleatoriamente.

Para mejorar la privacidad del sistema como un todo proponemos usar denominaciones comunes de 0.1DASH, 1DASH, 10DASH y 100DASH. En casa sesión de mezclado, todos los usuarios deberían enviar las mismas denominaciones como entradas y salidas. Además de las denominaciones, las comisiones se deberían eliminar de las transacciones y cobrarlas al por mayor en transacciones esporádicas que no se puedan enlazar y separadas.

Para abordar los posibles ataques DOS, proponemos que todos los usuarios envíen una transacción como colateral al grupo cuando se unan a él. Esta transacción se la harán a ellos mismos y pagará una alta comisión a los mineros. En el caso de cuando un usuario envía una petición al grupo de mezclado, el grupo debe ofrecer colateral al comienzo del intercambio. Si en cualquier momento un usuario no puede cooperar, por ejemplo negándose a firmar, la transacción de colateral se propagará automáticamente. Esto consigue que resulte caro ejecutar un ataque sostenido en la red de privacidad.

3.4 Anonimato Pasivo de Fondos y Encadenamiento

PrivateSend está limitado a 1000 DASH por sesión y requiere múltiples sesiones para anonimizar exhaustivamente cantidades significativas de dinero. Para hacer sencilla la experiencia de usuario y dificultar lo máximo posible los ataques basados en precisión del tiempo (timing attack), PrivateSend opera en modo pasivo. En intervalos prefijados, el cliente de un usuario solicitará unirse a otros clientes a través de un Nodo Maestro. Tras la entrada en el Nodo Maestro, un objeto de cola se propaga por la red detallando las denominaciones que el usuario desea hacer anónimas, sin información alguna susceptible de identificar al usuario.

Cada sesión de PrivateSend puede imaginarse como un evento independiente que aumenta el anonimato de los fondos del usuario. No obstante, cada sesión está limitada a tres clientes, así que un observador tiene una probabilidad de un tercio para seguir una transacción. Con el propósito de incrementar la calidad del anonimato ofrecido, se utiliza una aproximación con encadenamiento. Los fondos se envían a múltiples Nodos Maestros, uno tras otro

Profundidad de la Cadena Usuarios Posibles (n)r
2 9
4 81
8 6561
Tabla 2. Cuántos usuarios podrían estar involucrados en N sesiones de mezclado.

3.5 Consideraciones sobre Seguridad

Conforme las transacciones se combinan, los Nodos Maestros podrían “husmear” en los fondos de los usuarios cuando pasan a través de ellos. Esto no se considera una limitación importante tanto por el requisito de mantener 1000 DASH en el Nodo Maestro, como el hecho de que los usuarios utilizan Nodos Maestros aleatorios que seleccionan para hospedar sus mezclas. La probabilidad de seguir una transacción The probability of following a transaction durante un evento de encadenado se puede calcular de la forma siguiente:

Nodos Maestros Controlados por el Atacante / Total de Nodos Maestros Profundidad de la Cadena Probabillidad de Éxito (n/t)r DASH Necesarios
10/1010 2 9.80e-05 10,000DASH
10/1010 4 9.60e-09 10,000DASH
10/1010 8 9.51e-11 10,000DASH
100/1100 2 8.26e-03 100,000DASH
100/1100 4 6.83e-05 100,000DASH
100/1100 8 4.66e-09 100,000DASH
1000/2000 2 25% 1,000,000DASH
1000/2000 4 6.25% 1,000,000DASH
1000/2000 8 0.39% 1,000,000DASH
2000/3000 2 44.4% 2,000,000DASH
2000/3000 4 19.75% 2,000,000DASH
2000/3000 8 3.90% 2,000,000DASH

Tabla 3. La probabilidad de seguir una transacción de PrivateSend en la red dados N nodos controlados por el atacante.

Donde: n es el número total de nodos controlados por el atacante t es el número total de Nodos Maestros en la red r es la profundidad de la cadena

La selección de Nodos Maestros es aleatoria.

Dado el limitado suministro de DASH (5.3 millones en el momento en que se escribe lo presente, Abril de 2015) y la baja liquidez disponible en el mercado, se vuelve una imposibilidad el conseguir un número suficiente de Nodos Maestros para lograr tal ataque.

La ampliación del sistema mediante el ofuscamiento de los Nodos Maestros sobre las transacciones que se llevan a cabo en los nodos también mejorará en gran medida la seguridad del sistema.

3.6 Ofuscamiento de Nodos Maestro con el Sistema de Retransmisión

En la sección 3.4 describimos la probabilidad de seguir una transacción única en múltiples sesiones del mezclador PrivateSend. Esto puede abordarse con mayor profundidad mediante el ofuscamiento de Nodos Maestros, de forma que no puedan ver cuáles entradas/salidas corresponden a cada usuario. Para alcanzar esta meta proponemos un sistema de retransmisión simple que los usuarios pueden usar para proteger su identidad.

En lugar de que el usuario envíe las entradas y salidas directamente al grupo, éste elegirá un Nodo Maestro aleatorio de la red y solicitará retransmitir las entradas/salidas/firmas al Nodo Maestro objetivo. Esto implica que el Nodo Maestro recibirá N conjuntos de entradas/salidas y N conjuntos de firmas. Cada conjunto pertenece a uno de los usuarios, pero el Nodo Maestro no puede saber a cuál pertenece cada uno.

4 Transacciones Instantáneas mediante InstantSend

A través de quorums con Nodos Maestros, los usuarios son capaces de enviar y recibir transacciones instantáneas irreversibles. Una vez se forma un quorum, las entradas de la transacción se bloquean a una transacción específica única, un bloqueo de transacción requiere unos 4 segundos para que sea establecido en la red. Si se alcanza consenso del bloqueo en la red de Nodos Maestros, a partir de ese momento todas las transacciones o bloques conflictivos serían rechazados, salvo si coincidiesen con el ID exacto de la transacción asignada al bloqueo que toma lugar.

Esto permitirá a los vendedores utilizar los dispositivos móviles en sus ubicaciones tradicionales con sistemas de punto de venta (POS) para el comercio en la vida cotidiana, y a los usuarios pagar rápidamente transacciones no comerciales en persona como sucede con el efectivo traditional. Todo ello se realiza sin una autoridad central. Una visión de conjunto de esta característica se expone en el white paper sobre InstantSend [10].

5 Mejoras Adicionales

5.1 Algoritmo de hashing x11

x11 es un algoritmo de hashing ampliamente utilizado, el cual toma una aproximación diferente, conocida como encadenado de algoritmos. x11 consiste en todos los 11 contendientes de SHA3 [13], calculando cada hash particular y luego enviándolo al algoritmo siguiente de la cadena. Mediante el uso de múltiples algoritmos, la probabilidad de que se fabrique un ASIC para la divisa es mínima hasta un punto lejano de su ciclo de vida.

En el ciclo de vida de Bitcoin, la minería comenzó con aficionados que empleaban Unidades de Procesemiento Central (CPUs) para minar la divisa. Poco después se desarrolló software para Unidades de Procesamiento Gráfico (GPUs), el cual sustituyó rápidamente a las CPUs. Años después del ciclo de GPUs aparecen los ASICs o Circuitos Integrados de Aplicación Específica, los cuales reemplazaron por su parte a las GPUs.

Debido a la complejidad y el tamaño del dado de silicio necesarios para crear un ASIC para minar x11, suponemos que costará considerablemente más tiempo que con Bitcoin, permitiendo a los aficionados participar en la minería durante un período más largo de tiempo. Creemos que esto es muy importante para una buena distribución y crecimiento de la divisa cifrada.

Otro beneficio de la aproximación con encadenado de hashing es que las CPUs de alta gama dan un retorno medio similar al de las GPUs. Así mismo se ha comprobado que las GPUs se calientan un 30-50% menos, con una potencia eléctrica inferior a la del algoritmo Scrypt usado por la mayoría de las divisas cifradas actuales.

5.2 Suministro de Minería

En Dash se ha tomado una aproximación diferente para restringir la inflación de la minería, aplicando una reducción del 7% en el suministro por año. Esto se en contraposición al halving implementado en otras divisas. Así mismo, el suministro en cada bloque está unido a la cantidad de mineros en la red; las recompensas en minería son inversamente proporcionales al número de mineros.

La producción de Dash está programada para que prosiga en este siglo y el próximo, decelerándose hasta cerca de finales del año 2150, cuando ésta cesará.

Figura 6: Plan de Recompensa con Minería

Figura 6: Plan de Recompensa con Minería

6 Conclusión

Este paper presenta varios conceptos para perfeccionar el diseño de Bitcoin que dan como resultado una privacidad y fungibilidad mejoradas para el usuario medio, menor volatilidad en el precio y una propagación de mensajes más rápida por la red. Todo esto se consigue mediante un modelo de dos niveles incentivado, en lugar del modelo de un solo nivel presente en otras divisas cifradas como Bitcoin. Utilizando este diseño de red alternativo es posible añadir muchos tipos de servicios tales como la mezcla de monedas descentralizada, transacciones instantáneas y oráculos descentralizados a través de quorums con nodos maestros.

Referencias

  1. A peer-to-peer electronic cash system (2008)
  2. http://eprints.qut.edu.au/69169/1/Boyen_accepted_draft.pdf
  3. https://www.cryptocoinsnews.com/3-solutions-instant-bitcoin-confirmations/
  4. http://research.microsoft.com/pubs/156072/bitcoin.pdf
  5. http://www0.cs.ucl.ac.uk/staff/s.meiklejohn/files/imc13.pdf
  6. https://getaddr.bitnodes.io/nodes/incentive/
  7. https://medium.com/zapchain-magazine/why-don-t-people-run-bitcoin-nodes-anymore-d4da0b45aae5
  8. https://dashninja.pl/
  9. https://www.dash.org/wp-content/uploads/2014/09/InstantTX.pdf
  10. https://github.com/dashpay/dash/blob/master/src/Masternode-pos.cpp
  11. https://blockchain.info/tx/4eb3b2f9fe597d0aef6e43b58bbaa7b8fb727e645fa89f922952f3e57ee6d603
  12. https://blockchain.info/tx/1694122b34c8543d01ad422ce600d59f8d8fde495ac9ddd894edc7139aed7617
  13. http://en.wikipedia.org/wiki/NIST_hash_function_competition#Finalists
  14. http://www.tik.ee.ethz.ch/file/49318d3f56c1d525aabf7fda78b23fc0/P2P2013_041.pdf