Esta serie explicará algunos de los aspectos técnicos de la plataforma Particl de una manera que todos puedan entender. Estos artículos brindarán una buena base de conocimientos sobre las características más técnicas de la plataforma y pueden servir de guía, en un futuro, para los nuevos miembros de la comunidad o los usuarios de la plataforma.

La plataforma Particl utiliza una criptomoneda centrada en la privacidad con diferentes niveles de anonimato, llamada PART. Cuando se utilizan monedas PART para transacciones financieras, los usuarios pueden elegir entre 3 tipos de transacciones (públicas, ciegas, anónimas). Cada uno de estos tipos de transacciones conlleva su propio nivel de privacidad, así como su propio conjunto de propiedades.

En este artículo se describirán cada uno de estos tipos de transacciones detalladamente, explicando por qué y cuándo se deben usar. Después de leer esto, las transacciones en la plataforma Particl ya no deberían ser un secreto para usted.

Tabla de contenidos

Transacciones públicas

  • Protocolo: Bitcoin
  • Nivel de privacidad: Bajo.
  • Costo de transacción: Bajo (0.000346 PART).
  • Segwit: Sí (reduce el peso de las transacciones en un 20%).
  • Configuración confiable: no.
  • Salidas programables:
Transacciones públicas en la blockchain de Particl(Fee: 0.000346 PART)

Cuando no se selecciona ningún protocolo de privacidad para ofuscar sus transacciones en la cadena de bloques, las transacciones se envían como "transacciones públicas". Debido a que la plataforma Particl ha construido su cadena de bloques basada en el código base de Bitcoin, las transacciones públicas se registran en la cadena de bloques de la misma manera que esperaría que se registren las transacciones de Bitcoin.

El nucleo de Particl está siempre actualizado con las versiones del núcleo de Bitcoin, lo que significa que todas las correcciones, parches de seguridad y actualizaciones para el núcleo de Bitcoin también se integran en el núcleo de Particl.

Al contrario de lo que mucha gente afirma, Bitcoin no es anónimo. De hecho, es todo lo contrario. Las transacciones de Bitcoin (y las transacciones de Particl, por proxy) son lo que llamamos transacciones seudónimas y son bastante transparentes. En lugar de que cada transacción esté vinculada a una persona, está vinculada a un seudónimo alfanumérico compuesto por números y caracteres variados y diferentes.

Si bien esto, probablemente, sea suficiente para proteger tus datos personales de otros, el sólido análisis protocolar que realiza la blockchain hace que sea demasiado fácil para cualquier curioso, lo que motiva a terceros a ahondar en la blockchain, rastreando así a los usuarios. Este rastreo se vuelve sumamente fácil, en el momento en que se realiza un pago a cualquier servicio que necesariamente vincula las direcciones con las identidades (exchanges, procesadores de pagos, proveedores, etc.).

Por esta razón, el equipo de Particl ha implementado dos diferentes protocolos de privacidad, que logran ocultar las transacciones en las blockchains. Ambos protocolos no requieren de ninguna configuración confiable y tienen denominadores comunes, pero también tienen diferentes propósitos dentro de la plataforma Particl, así como diferentes niveles de privacidad.

Transacciones a ciegas — Blind (CT)

Transacciones confidenciales

Elementos: una blockchain  de código abierto con capacidad para cadenas laterales.elementsproject.org

  • Protocolo: Transacciones confidenciales (CT)
  • Nivel de privacidad: Medio (los montos de las transacción están ocultos).
  • Costo por transacción: Medio (~ 0.001962 PART).
  • Segwit: Sí (reduce el peso de las transacciones de CT en un 48%).
  • Bulletproofs (prueba antibalas): sí (reduce el tamaño de las pruebas de rango en un 70%).
  • Configuración confiable: No.
  • Salidas programables: Sí.
  • Whitepaper: https://elementsproject.org/features/confidential-transactions/investigation
Una transacción a ciegas en la blockchain de Particl (Fee: 0.001962 PART)

Las transacciones a ciegas son transacciones de divisas que tienen sus montos de transacción ocultos en la cadena de bloques y solo las dos partes que realizan la transacción(el remitente y el receptor) las conocen. Este tipo de transacción utiliza el protocolo de privacidad de transaccionesconfidenciales(CT) .

Enviando una transacción cegada(CT)en Particl Desktop

Este protocolo de privacidad no requiere ninguna " configuración confiable " o asistencia de ningún intermediario para procesar transacciones ni requiere la interacción directa entre las partes que realizan la transacción.

Las " configuraciones confiables " requieren una configuración única que implica la generación y uso de claves maestras. Los usuarios deben confiar en quien haya generado esas claves para destruirlas justo después de que hayan terminado de configurar el protocolo; de lo contrario, esas claves podrían usarse para crear una cantidad ilimitada de monedas y hacerlo sin que nadie se dé cuenta.


Las transacciones a ciegas utilizan un método de prueba de conocimiento nulo para garantizar criptográficamente que no se pueden gastar más monedas de las que están disponibles. Particularmente se usa lo que llamamos una prueba de rango, la cual garantiza que la cantidad de monedas enviadas en una transacción determinada esté entre dos valores.

Prueba de rango


Una prueba de rango es un protocolo criptográfico que se utiliza para verificar que el monto de un pago sea positivo o cero, sin revelar realmente el monto transferido en la transacción . Sin pruebas de rango, los montos en una transacción podrían establecerse tan grandes que se consideraría un número negativo, lo que permitiría generar monedas de la nada. Un atacante podría agregar una cantidad de salida negativa y otra salida diferente, generando monedas adicionales. La producción negativa haría que los compromisos aún sumen cero.
La desventaja de las pruebas de alcance es que son bastante pesadas en la blockchain. Su tamaño escala linealmente con el número de salidas en una transacción y los bits en el rango de la prueba. De hecho, debido a su naturaleza pesada, las pruebas de rango ocupan la mayor parte del tamaño de una transacción a ciegas.
Esta inconveniente realidad hace que cualquiera que esté pensando en usar el protocolo tendrá que realizar transacciones con montos más grandes que las regulares. Una transacción más grande no sólo significa comisiones más altas, sino que también el tamaño de la blockchain crece exponencialmente junto con el uso. En otras palabras, se vuelve más inconveniente ejecutar la blockchain a medida que se registran más y más transacciones de CT. Este problema de escalabilidad es una de las principales razones por las que el equipo de Particl se abstuvo de trasladar su implementación de RingCT a la red principal de Particl. Debido a que este proyecto tiene en mente una visión a largo plazo, se prefirió esperar hasta que se encontrara una solución adecuada a este problema de escalabilidad. Y luego vino Bulletproofs (pruebas antibalas).

Bulletproofs (Antibalas):

Bulletproofs es una nueva generación de pruebas de rango que escalan logarítmicamente en lugar de linealmente. En su documento técnico , se les conoce como pruebas breves no interactivas de conocimiento nulo . En términos simples, Bulletproofs es una mejora revolucionaria con respecto a las pruebas de rango regular, ya que reducen su tamaño en aproximadamente un 70% . Y, debido a que las pruebas de rango constituyen la mayor parte del tamaño de una transacción CT, a su vez reduce las tarifas de transacción y el espacio que ocupan en la cadena de bloques en la misma proporción.

Dato curioso: El término "Antibalas" fue acuñado por Shashank Agrawal cuando describió el nuevo tipo de antibalas como "corto como una bala, con un supuesto de seguridad antibalas".

Transacciones anónimas – RingTC

  • Protocolo: RingCT
  • Nivel de privacidad: Alto (los montos de las transacciones y los usuarios están ocultos).
  • Costo de transacción: De medio a alto, dependiendo de la cantidad de mixins utilizados en las firmas de anillo o el tamaño de los anillos.
  • Costo de transacción para una configuración bajo: 0.003232 PART.
  • Costo de transacción para una configuración de privacidad alta: 0.009032 PART.
  • Segwit: Sí (reduce el peso de la transacción en un 47%).
  • Bulletproofs (Antibalas): Sí (reduce el tamaño de las pruebas de alcance en un 70%).
  • Configuración confiable: no.
  • Salidas programables: no.
  • Whitepaper: https://eprint.iacr.org/2015/1098.pdf
Una transacción a ciegas en la blockchain de Particl (Fee: 0.005708 PART por 8 miembros de anillo y 2 entradas)

Las transacciones anónimas (Anon transactions), cómo es llamado en Particl Desktop, llevan la privacidad al siguiente nivel, no sólo ocultando los montos de las transacciones, sino también la identidad de las partes que realizan la transacción (el remitente y el receptor). Este tipo de transacciones utilizan el protocolo de privacidad RingCT, un protocolo que se hizo popular por Monero, pero adaptado por el equipo de Particl para trabajar con el código base de Bitcoin. Esto permite que la plataforma se beneficie del protocolo de privacidad líder en la industria, que es RingCT, pero sacando ventaja de la seguridad, estabilidad y comunidad de desarrolladores que ofrece Bitcoin. En otras palabras, RingCT con el código base de Bitcoin es como tener un  pastel y poder comértelo. Lo bueno sin lo malo.

Como buenos ejemplos de esto son: RingCT pudiendo ser usado con la ayuda de scripts especiales, en atomic swaps (intercambios atómicos), aplicaciones descentralizadas (como el mercado abierto de Partcl), Lightning Network, etc. También permite que RingCT esté vinculado directamente a transacciones CT, para que pueda alcanzar la capacidad de programación, como veremos más adelante en este artículo.

De igual manera que las transacciones a ciegas que utilizan el protocolo CT, las transacciones anónimas son completamente desconfiadas y no dependen de ningún tipo de configuración confiable. Es importante tener en cuenta que las transacciones RingCT son un poco más grandes que las transacciones confidenciales, aunque no por un gran margen. Esto gracias a las firmas de anillo (MLSAG) que se añaden a la receta.

Dato curioso: RingCT se implementó inicialmente sobre el código base de Cryptonote(Monero). El equipo de Particl es el primero en desarrollar una implementación personalizada, la cual  podría funcionar en cualquier otro código base, en este caso el código base de Bitcoin.

Firmas de anillo (MLSAG)

Las Multilayered Linkable Spontaneous Ad-Hoc Group Signatures (MLSAG), o firmas de anillo, son la parte anillada de RingCT. Es un tipo de firma digital que es realizada por muchas salidas a la vez dentro de un grupo determinado de salidas RingCT (representadas por balances anónimos en la Particl Desktop), haciendo que sea imposible para cualquiera espectador darse cuenta cuál de las salidas, dentro de esa firma de anillo, es la que está enviando la transacción.

Wikipedia define las firmas de anillo de la siguiente manera:  “Una firma de anillo es un tipo de firma digital que puede ser creada por cualquier miembro de un grupo de usuarios, en el que cada usuario tiene su clave. Por lo tanto, un mensaje firmado con una firma de anillo está respaldado por alguno de los miembros de ese grupo creado para tal fin”.

Una de las propiedades de seguridad que las firmas de anillo deben cumplir es que no debe ser posible averiguar qué clave concreta de los usuarios del grupo fue utilizada para calcular la firma.

En el caso de RingCT, la firma digital utilizada para ejecutar una transacción podría haberse originado en cualquier miembro del grupo de anillo. Los usuarios colocan parte de sus fondos en un balance anónimo. Los fondos que están dentro de un balance anónimo, se utilizan para ejecutar transacciones RingCT. Antes de que se ejecute una transacción, el protocolo firma anónimamente usando otras salidas RingCT como señuelo, produciendo una firma que cuando es verificada, parece que pudo haber sido iniciada por cualquiera de los propietarios de las salidas RingCT, utilizadas por el grupo de anillo. No hay forma de saber quién realizó la transacción porque podría ser cualquiera de los miembros del grupo de anillo, ya que todos comparten la misma salida señuelo.

Esto anonimiza, de manera efectiva, todos los valores que contiene una transacción. El monto transferido, así como el remitente y el destinatario de la transacción. También arma a las partes en la transacción con una negación plausible muy fuerte (1, 2).

Cómo hacer una transacción anónima  (RingCT) en Partcl Desktop

Una transaccion de RingCT contiene 24 miembros de anillo


En Particl Desktop, es posible elegir la cantidad de miembros que deseas tener dentro del grupo de anillo que vas a utilizar para anonimizar tud transacciones. En el cliente, esto significa un NÚMERO DE SIGNOS DE ANILLO.

Esto simplemente significa que por cada entrada utilizada para generar su transacción, otras series de salidas serán utilizadas para crear una firma digital que pudo haber sido asignada a cualquiera de los 24 participantes. En captura de pantalla anterior se selecciona el valor 24. Esto significa que se usarán 23 salidas falsas y 1 real (el remitente de la transacción) para ofuscar la transacción (en el caso de que tenga sólo 1 entrada). Si la transacción utiliza 3 entradas, se generarán 3 firmas, una para cada entrada, con 3 grupos de anillo diferentes de 24 participantes cada uno, para ejecutar las transacciones. Esto puede parecer complicado, pero no te preocupes, Particl Desktop hace todo por ti y hace que las transacciones de RingCT sean tan fáciles de enviar como cualquier otro tipo de transacción.

Para realizar una transacción RingCT, simplemente ve a la pestaña Enviar / Convertir, elije el tipo de transacción anónima, haz clic en Opciones avanzadas y pose el mouse en NIVEL DE PRIVACIDAD (NÚMERO DE SIGNOS DEL ANILLO), que aparece en la esquina inferior izquierda de la página. El valor que elijas será igual al número de miembros del anillo que formarán parte de tu grupo de anillo. De hecho, puedes posarte sobre esta opción, sin clickear, y usar el nivel predeterminado de privacidad (8 miembros del anillo). Esto representa un buen equilibrio entre privacidad y costo.

Mientras más entradas utilices para realizar una transacción RingCT, y más miembros del anillo (RING SIGS) se seleccionen antes de realizar una transacción, más costosa se vuelve, pero también será más privada. Si a ti no te importa el costo de una transacción, y lo que deseas es una máxima privacidad, crea transacciones con la mayor cantidad de miembros de anillo y entradas como sea posible.

Manteniendo un buen nivel de privacidad


Como regla general y en teoría, RingCT se vuelve más privado a medida que más personas convierten sus saldos públicos en anónimos, creando así más salidas anónimas para ser utilizadas por grupos de anillo en transacciones RingCT. Esto se debe a que RingCT se basa en los resultados de otras personas para negar, de manera plausible, qué salida realmente firmó una transacción, y también, mientras más salidas RingCT haya para firmar transacciones, más fuerte será la privacidad y negación plausible de RingCT.

Pero, aunque las salidas son seleccionadas al azar desde cualquier salida anónima en la cadena, la mayoría de las veces se seleccionan de las transacciones RingCT más recientes. La razón por la que el protocolo se comporta de esta manera es en respuesta a este artículo de investigación, el cual demuestra que se puede suponer que las entradas reales son las más recientes si todos los "mixins" están mucho más profundos en la cadena, y no han tenido transacciones en un tiempo.

Por esta razón, se recomienda que todos los usuarios tengan un saldo o balance anónimo. De este modo la red pueda utilizar automáticamente (sin costo para los usuarios, por supuesto). Adicionalmente, también se recomienda que los usuarios realicen la mayor cantidad posible de transacciones anónimas para contribuir a mejorar la privacidad de toda la red. Ten en cuenta que nada de esto es necesario para ejecutar una transacción RingCT, pero mientras más gente lo haga, más fuerte y resistente se vuelve para todos. Esta es una de las principales razones por las que el Open Marketplace de Particl va a utilizar, predeterminadamente, RingCT en todas sus transacciones. La mejor manera de incrementar el grupo de RingCT, es a través de la actividad transaccional y el uso actual de la tecnología. Predeterminar el uso de RingCT en la plataforma principal es lo más adecuado, en vista que contribuirá en gran medida a que el protocolo RingCT de Particl sea mucho más sólido.

Direcciones ocultas


Particl permite que cualquiera use direcciones ocultas en lugar de las públicas usuales. Las direcciones ocultas son direcciones únicas que aumentan la privacidad, porque sólo el propietario de la misma puede saber si una salida le pertenece o no. Lo que se entiende por "dirección única" es que una dirección oculta puede recibir muchos pagos, pero, a su vez, genera una nueva "dirección única" para esa salida / transacción.

Sin conocer la clave privada de una dirección, nadie podrá asociar y adivinar qué salidas coinciden con cualquier dirección oculta. Esto ayuda a proteger la identidad del receptor de una transacción. Por sí solas, las direcciones ocultas probablemente no sean suficientes para proteger la información de las transacciones de cualquier observador bien financiado y motivado (es decir, un actor estatal), pero cuando se combinan con protocolos de privacidad más fuertes como CT o RingCT, brinda otra capa de privacidad para el usuario.
En Particl Desktop las direcciones ocultas se llaman direcciones privadas y se usan por defecto en las transacciones anonimas. En la actualidad, las transacciones a ciegas (CT) y anónimas (RingCT) sólo se pueden realizar en direcciones ocultas.

CT + RingCT juntos = Posibilidades infinitas.


Ambos protocolos de privacidad tienen sus pros y sus contras, pero una de las diferencias más notables entre estos dos protocolos de Particl, es el hecho de que CT tiene salidas programables, mientras que RingCT no. Esto se traduce a que, RingCT, tal como está, no puede usarse dentro de los contratos inteligentes. Sin embargo, eso no significa que no se pueda utilizar en aplicaciones descentralizadas.

¿Cómo puede ser posible, si RingCT no puede ser usado en contratos inteligentes? Esta es una de las principales razones por las que Particl mantiene en su red ambos protocolos, CT y RingCT, en lugar de uno sólo.

De hecho, debido a que las transacciones CT tienen salidas programables, pueden usarse en contratos inteligentes y luego vincularse fácilmente a transacciones RingCT. El beneficio de la implementación de Particl es que las salidas se pueden gastar de RingCT a CT, para lo que requiera un script, y luego enviarse de vuelta a RingCT.

El mejor ejemplo para ilustrar este concepto es el Open Marketplace de Particl. Es, por defecto, un mercado privado que utiliza RingCT para hacer las transacciones del mercado lo más anónimas posibles. Lo que pocas personas saben es que el Marketplace usa una combinación de RingCT (la transacción) y CT (el contrato inteligente) para su sistema de depósito en garantía, no sólo RingCT.
Esto se debe a que el sistema de depósito en garantía del Marketplace se basa en la funcionalidad de contrato inteligente, lo que requiere que las transacciones tengan salidas programables (de ahí la razón por la que utiliza CT). Sin embargo, para interactuar con el contrato inteligente, los usuarios deben enviarle una transacción RingCT, que el mercado convierte automáticamente en una transacción CT durante la duración del depósito en garantía. Una vez que las partes que realizan la transacción la liberan, esta se realiza finalmente como una transacción RingCT.

Una salida RingCT se convierte en una salida CT, que a su vez forma las entradas del contrato de depósito en garantía. Cuando el depósito en garantía esté listo para ser liberado o reembolsado, se entregará directamente a una salida RingCT. - Kewde, Particl Developer y el autor de OMP Library.

Este es sólo un ejemplo de cómo RingCT puede dar todo su potencial y aprovechar los ecosistemas de Particl y Bitcoin, utilizando su contraparte CT. Esta técnica se puede aplicar para integrar RingCT a otros protocolos o servicios, como los intercambios atómicos, Lightning Network, otras aplicaciones descentralizadas, etc.

Si te gustó este artículo, no dudes en compartirlo, y atento, ya que en el futuro se publicarán más artículos Explicando a Particl en particl.news.