Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Axiom-protocol — El objetivo de Axiom es proporcionar una plataforma de redes sociales completamente anónima, descentralizada y resistente a la censura. Para hacer esto posible, la arquitectura está estrictamente dividida entre el protocolo y los clientes. Este repositorio define el protocolo, el contrato inteligente y una estructura de datos estandarizada en una red Ethereum Layer 2. | Kitploit
Herramientas/GitHubGitHub/kl4v3/axiom-protocol
Autenticación y AutorizaciónHerramientas de Cifrado/DescifradoGestión de IdentidadesCriptografíaPrivacidadIngeniería Social
GitHubkl4v3/axiom-protocol

Axiom-protocol

Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

Acerca de

El objetivo de Axiom es proporcionar una plataforma de redes sociales completamente anónima, descentralizada y resistente a la censura. Para hacer esto posible, la arquitectura está estrictamente dividida entre el protocolo y los clientes. Este repositorio define el protocolo, el contrato inteligente y una estructura de datos estandarizada en una red Ethereum Layer 2.

hace 4 mesesAún no revisado
Compartir

Axiom: Protocolo de Comunicación Descentralizado y Resistente a la Censura

🚀 Detalles del Despliegue en Vivo

  • Red: Arbitrum One (Mainnet L2)
  • ID de Cadena: 42161
  • Endpoint RPC: https://arb1.arbitrum.io/rpc (o cualquier endpoint personalizado de Alchemy/Infura)
  • Dirección del Contrato Proxy de Axiom: 0xc11CFf8111e8b1F055eba095Efb679a38Abe6b63

(Nota: Axiom utiliza una arquitectura de Proxy Actualizable UUPS. Todas las interacciones del cliente deben dirigirse siempre a esta dirección del Proxy, nunca al contrato de implementación subyacente).

📖 Cómo Leer Datos (Indexador / Clientes)

Los clientes nunca deben intentar leer publicaciones del protocolo directamente desde las variables de estado del contrato inteligente (ya que preservar gas es una prioridad, el contenido no se almacena en el estado). En su lugar, los clientes deben indexar los eventos de la blockchain.

✍️ Cómo Publicar Datos (Envío de Transacciones del Cliente)

Para publicar datos en el Protocolo, los clientes deben enviar una transacción en cadena llamando a la función publishAxiom en el contrato Proxy.


El objetivo de Axiom es proporcionar una plataforma de redes sociales completamente anónima, descentralizada y resistente a la censura.

Para hacer esto posible, la arquitectura está estrictamente dividida: la base (el protocolo) y los clientes (el software). Este repositorio define esa base: un contrato inteligente y una estructura de datos estandarizada en una red Ethereum de Capa 2.

Alcance del Proyecto

El protocolo establece la base de la plataforma:

  • Convención de Nomenclatura Estándar: Una estructura clara que define cómo se envían los datos al contrato inteligente y cómo los clientes los leen.
  • Inmutabilidad: La blockchain sirve como una base de datos a prueba de manipulaciones y a prueba de fallos.
  • Enfoque en Microblogging: El protocolo no está diseñado para grandes cantidades de datos en cadena, sino que sigue el concepto tradicional de microblogging (publicaciones cortas). Los archivos multimedia no se almacenan de forma nativa en la cadena; en su lugar, se incrustan a través de enlaces externos cuando sea necesario.
  • Protección contra Spam: Las tarifas de transacción y una tarifa de entrada única y baja para la primera publicación de una billetera evitan ataques de inflado de estado por parte de botnets.
  • Enrutamiento de Seguridad: El protocolo impone la separación OPSEC de mensajes basada en requisitos de seguridad específicos.

Niveles de Seguridad del Protocolo

Axiom está diseñado para permitir la verdadera libertad de expresión para usuarios en países donde la comunicación está restringida. El protocolo distingue entre tres niveles de seguridad. Asume que los usuarios saben qué nivel de seguridad es apropiado para su situación específica.

  • Nivel 1: Abierto La comunicación ocurre abiertamente en texto plano en la blockchain. Todos los clientes pueden leer y procesar todo el tráfico. La incrustación de enlaces (por ejemplo, para imágenes a través de proveedores externos) está permitida en este nivel. La expectativa es que aquí tenga lugar la comunicación estándar de redes sociales, incluyendo imágenes divertidas de gatos. Esto genera ruido importante dentro de la red. Es menos seguro en cuanto al rastreo de IP puro, pero las publicaciones permanecen completamente no censurables.
  • Nivel 2: Cerrado Este nivel está destinado a la seguridad estricta. Solo admite mensajes de texto plano. El protocolo prohíbe enlaces multimedia aquí para descartar técnicamente cualquier fuga de IP cuando los clientes cargan contenido externo. Los usuarios deben asegurarse de forma independiente de adquirir la criptomoneda utilizada para las tarifas de gas de forma anónima.
  • Nivel 3: Encriptado Construido para la máxima privacidad. Los mensajes en sí mismos se encriptan con AES-256-GCM antes de ser enviados. Solo los metadatos, el vector de inicialización (IV) y el texto cifrado se almacenan en la blockchain. Solo los clientes de usuarios que poseen la clave criptográfica correcta pueden descifrar y leer estos mensajes.

Seguridad de la Red y Rastreo de IP (Regla Estricta)

Para todos los niveles, el Enrutamiento Cebolla (por ejemplo, Tor) es estrictamente obligatorio. Comunicarse con proveedores RPC comerciales (como Infura o Alchemy) filtra la dirección IP del remitente en texto plano. Para cerrar vulnerabilidades OPSEC potencialmente mortales para disidentes, se requiere que los clientes enruten las transacciones a los nodos RPC exclusivamente a través de la red Tor.


Estándares Criptográficos (Para el Nivel 3)

Para los mensajes en el Nivel 3, todos los clientes deben adherirse estrictamente a los siguientes estándares criptográficos para garantizar la interoperabilidad y evitar comprometer la seguridad.

  1. Algoritmo de Encriptación: AES-256-GCM Todos los datos del Nivel 3 deben ser encriptados simétricamente usando AES en modo GCM con una longitud de clave de 256 bits. El vector de inicialización (IV/Nonce) debe regenerarse aleatoriamente para cada mensaje individual y se escribe en la blockchain como metadatos en texto plano. Esto evita el reconocimiento de patrones por parte de observadores externos.
  2. Derivación de Clave: Argon2id Los usuarios introducen contraseñas legibles por humanos en sus clientes. Estas nunca deben usarse directamente como claves AES. Los clientes están estrictamente obligados a usar el algoritmo de hash Argon2id. (Nota: Los desarrolladores deben definir parámetros fijos para iteraciones y uso de memoria dentro del cliente para que todos generen exactamente la misma clave).
  3. Intercambio de Claves: Fuera de Banda Axiom no maneja el intercambio de claves en cadena. El protocolo no almacena claves públicas. Intercambiar la contraseña (secreto compartido) para un canal específico es responsabilidad de los usuarios y debe ocurrir fuera de la red (por ejemplo, en persona).
  4. Integridad de los Datos AES-GCM genera una Etiqueta de Autenticación. Los clientes deben validar esta etiqueta. Si la validación falla, el cliente debe descartar el mensaje silenciosamente (descartar).

Estructura de Datos, Entrega de Datos e Indexación

Axiom utiliza una entrega de datos híbrida (División ABI). Para evitar que el contrato inteligente tenga que desempaquetar formatos de datos costosos, los datos se separan antes de la transmisión:

  1. Variables Lógicas: El nivel (uint8 _level) y el vector de inicialización (bytes _iv) se pasan como parámetros directos al contrato inteligente, ya que los necesita para hacer cumplir sus reglas de seguridad.
  2. Datos Opacos: El contenido real del mensaje es construido internamente por el cliente como JSON y comprimido en CBOR (Concise Binary Object Representation). El contrato maneja este paquete CBOR "a ciegas" y lo reenvía directamente al registro de eventos.

Claves de Datos (Estructura CBOR)

Axiom utiliza letras individuales como claves para ahorrar bytes. El autor (msg.sender) y la marca de tiempo (block.timestamp) se omiten, ya que el contrato inteligente extrae estos valores de forma segura contra manipulaciones.

  • t (Tipo): Entero. El tipo de acción.
  • c (Contenido): Cadena/Bytes. El texto, nombre o texto cifrado.
  • h (Hashtags/Etiquetas): Arreglo. Opcional. Se usa para categorización (subcanales).
  • m (Indicación de Mensaje): Bytes (longitud de 2). Solo Nivel 3. Un hash HMAC de 2 bytes utilizado para agrupación difusa.
  • r (Respuesta a): Bytes. Opcional. El hash de transacción de una publicación referenciada.

Tipos de Acción (Campo t)

  • 0 = Actualización de Perfil (Vincula la dirección de la billetera a un nombre legible en el campo c)
  • 1 = Publicación (Mensaje estándar)
  • 2 = Respuesta (r requiere el hash de la publicación original)
  • 3 = Me Gusta (r requiere el hash de la publicación)
  • 4 = No Me Gusta (Revoca el Tipo 3)
  • 5 = Retweet / Repost (r requiere el hash de la publicación)
  • 6 = Deshacer Retweet (Revoca el Tipo 5)

Subcanales y Enrutamiento Oscuro (Campo h)

  • Nivel 1 y 2: Las etiquetas se pasan en texto plano.
  • Nivel 3 (Encriptado): Pasar etiquetas en texto plano está estrictamente prohibido a nivel de protocolo, ya que esto filtra metadatos. Las etiquetas deben encriptarse exactamente como el contenido (c). Para los observadores externos, las etiquetas son, por lo tanto, completamente invisibles (Enrutamiento Oscuro).

Nivel 3: Agrupación Difusa (Campo m)

Debido a que las etiquetas están encriptadas en el Nivel 3, los clientes teóricamente tienen que intentar descifrar cada mensaje individual (Descifrado de Prueba). Para evitar sobrecargas de CPU, Axiom utiliza Indicaciones de Mensaje:

  • El remitente calcula HMAC-SHA256(AES_Key, IV) y coloca los primeros 2 bytes como campo m en los datos CBOR.
  • Los receptores calculan esta indicación para sus contraseñas almacenadas localmente. El costoso proceso de descifrado solo se ejecuta si hay una coincidencia. Esto filtra el 99.99% del tráfico irrelevante sin filtrar metadatos.

Identidad: Perfiles Globales vs. Alias Privados

Axiom maneja la identidad con total transparencia: La dirección de la billetera L2 (msg.sender) es la única identidad social y financiera. El protocolo transfiere la responsabilidad de la OPSEC financiera completamente al usuario (por ejemplo, el uso de mezcladores y puentes para adquirir tokens de gas de forma anónima).

La acción de actualización de perfil (t: 0) se comporta de manera diferente según el nivel de seguridad elegido:

  1. Identidad Global (Nivel 1 y 2) Si una billetera envía una actualización de perfil sin encriptar, sirve como una declaración global. La billetera se conoce en toda la red bajo este nombre. Todos ven este nombre (por ejemplo, construyendo una reputación pública como @Disidente99).
  2. Alias y Apodos Privados (Nivel 3) Si una billetera envía una actualización de perfil dentro de un dato encriptado de Nivel 3, crea un alias privado y aislado. Este alias solo es visible dentro del subcanal descifrado para los usuarios que conocen la contraseña. Esto permite distribuciones de roles seudónimas en grupos cerrados sin alterar la identidad global. Prioridad de Representación: Para el Nivel 3, el frontend siempre debe comprobar si existe un alias local antes de recurrir al nombre global.

Arquitectura del Contrato Inteligente y Cumplimiento de OPSEC

Axiom se basa en validación en cadena con complejidad O(1). Para mantener los costos de gas al mínimo absoluto, el contrato inteligente solo realiza comprobaciones criptográficas básicas. Todas las validaciones de contenido intensivas en recursos se descargan a los clientes (Capa 2).

1. Validación en Cadena (El Contrato Inteligente)

El contrato actúa como un portero incorruptible. Si un dato no sigue las reglas estrictas, la transacción se revierte.

root@kitploit:~
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";

contract Axiom is Initializable, UUPSUpgradeable, OwnableUpgradeable {
    uint256 public entryFee;
    mapping(address => uint8) public walletPath; // 0=Nuevo, 1=PathA(Nivel1), 2=PathB(Nivel2/3)

    event AxiomPost(address indexed sender, uint8 level, bytes iv, bytes cbor, uint256 timestamp);

    /// @custom:oz-upgrades-unsafe-allow constructor
    constructor() {
        _disableInitializers();
    }

    function initialize() initializer public {
        __Ownable_init(msg.sender);
        entryFee = 0.0001 ether;
    }

    function _authorizeUpgrade(address newImplementation) internal override onlyOwner {}

    function publishAxiom(
        uint8 _level,
        bytes calldata _iv,
        bytes calldata _cbor
    ) external payable {
        require(_level >= 1 && _level <= 3, "Nivel inválido");

        uint8 requiredPath = (_level == 1) ? 1 : 2;
        uint8 currentPath = walletPath[msg.sender];

        if (currentPath == 0) {
            require(msg.value >= entryFee, "Anti-Sybil: Tarifa de entrada insuficiente");
            walletPath[msg.sender] = requiredPath;
        } else {
            require(msg.value == 0, "Tarifa ya pagada");
            require(currentPath == requiredPath, "Violación de OPSEC: La billetera está contaminada");
        }

        if (_level == 3) {
            require(_iv.length == 12, "El Nivel 3 requiere estrictamente un IV de 12 bytes");
        } else {
            require(_iv.length == 0, "Los Niveles 1 y 2 requieren un IV estrictamente vacío");
        }

        emit AxiomPost(msg.sender, _level, _iv, _cbor, block.timestamp);
    }

    function withdraw() external onlyOwner {
        payable(owner()).transfer(address(this).balance);
    }
}
  • Contaminación Bidireccional de Billetera (Aislamiento Forzado): Si una billetera publica en el Nivel 1 por primera vez, queda bloqueada permanentemente para el Nivel 2/3. Si publica primero en el Nivel 2 o 3, el Nivel 1 queda bloqueado.
  • Parámetros Obligatorios: Para el Nivel 3, el contrato exige estrictamente un IV de 12 bytes.

2. Validación Fuera de Cadena (Por los Clientes)

Si una publicación viola las reglas del protocolo, el cliente debe descartarla silenciosamente (Descarte Local).

  • El Bloqueador de Enlaces del Nivel 2: Los clientes escanean el texto plano (c) de los mensajes del Nivel 2. Si se detectan URL, direcciones IP o etiquetas multimedia típicas, la publicación se bloquea por completo.
  • Autolimpieza: Si un atacante inunda la red con enlaces en el Nivel 2, pagará las tarifas de gas, pero ningún cliente válido de Axiom representará nunca esos mensajes.

Infraestructura y Arquitectura de Cliente Recomendada

Axiom está desplegado en una red de Capa 2 (L2) de Ethereum (por ejemplo, Arbitrum Nova).

Para evitar sobrecargar los dispositivos móviles (duración de la batería, limitaciones de almacenamiento, límites de WebAssembly para Argon2id), Axiom impone una arquitectura de cliente de alto rendimiento:

  • Axiom Core (Nodo Autoalojado): Un servidor/contenedor Docker (por ejemplo, ejecutándose en un NAS) que lee la blockchain a través de RPC, indexa eventos y ejecuta de forma nativa la criptografía intensiva en recursos.
  • Axiom UI (Cliente Ligero): Una aplicación móvil o interfaz web que se comunica únicamente con el propio Axiom Core del usuario a través de una API.

Recuperación de Datos y EIP-4444

Los clientes no descargan todo el estado de la blockchain. Filtran el evento AxiomPost del contrato inteligente, que contiene todos los datos necesarios en texto plano (Remitente, Nivel, IV, CBOR, Marca de tiempo).

Debido a que los nodos de Ethereum eventualmente descartarán datos históricos (eventos anteriores a 365 días) según EIP-4444, el protocolo recomienda que los Axiom Cores locales sirvan como archivos descentralizados, almacenando las bases de datos de forma permanente.


Ejemplo de Flujo de Trabajo: Una Publicación de Nivel 3

Para ilustrar cómo funciona la arquitectura en la práctica, aquí hay un recorrido completo del ciclo de vida.

Escenario: Alice quiere publicar el mensaje "Reunión a las 8 PM" en el subcanal "AxiomDev". El grupo acordó previamente fuera de línea la contraseña "Secret123".

Paso 1: Preparación Local y Encriptación (Axiom Core)

El Axiom Core de Alice maneja el trabajo computacional pesado:

  1. Derivación de Clave: Convierte la contraseña en una clave AES de 256 bits usando Argon2id.
  2. Generación de IV: Se genera un vector de inicialización aleatorio de 12 bytes (por ejemplo, 0x12ab34cd56ef789012ab34cd).
  3. Encriptación: El contenido y la etiqueta ("AxiomDev") se encriptan usando AES-GCM.
  4. Generación de Indicación: Se calcula el hash HMAC de 2 bytes para la agrupación difusa (m: "0xa1b2").

Paso 2: Construcción de Datos (Serialización CBOR)

Dado que el nivel y el IV se pasan directamente al contrato, se excluyen del objeto CBOR.

Representación JSON Interna:

root@kitploit:~
{
  "t": 1,
  "c": "0x8a4f...",
  "h": ["0x9b5e..."],
  "m": "0xa1b2"
}

Este JSON se comprime en un arreglo de bytes CBOR sin procesar (0xa3617401...) para ahorrar gas.

Paso 3: La Llamada al Contrato Inteligente (Interacción con la Blockchain)

Alice activa la función del contrato. Importante: ¡La llamada se enruta estrictamente a través de Tor!

(Ejemplos para L3 y L1:)

root@kitploit:~
// Ejemplo 1: Cliente llamando al Contrato Inteligente para una publicación encriptada de Nivel 3
await axiomContract.publishAxiom(
    3,                                      // _level: 3
    "0x12ab34cd56ef789012ab34cd",           // _iv: cadena hexadecimal de 12 bytes requerida
    "0xa3617401616358208a4f..."             // _cbor: cadena hexadecimal CBOR empaquetada
);

// Ejemplo 2: Cliente llamando al Contrato Inteligente para una publicación pública de Nivel 1
await axiomContract.publishAxiom(
    1,                                      // _level: 1
    "0x",                                   // _iv: arreglo de bytes estrictamente vacío
    "0xa361740161634c48656c6c6f204178..."   // _cbor: cadena hexadecimal CBOR empaquetada
);

El contrato inteligente entonces emite el evento:

Evento: AxiomPost(Remitente: 0xAlice..., Nivel: 3, IV: 0x12ab..., CBOR: 0xa361..., Marca de tiempo: 1710425890)

Paso 4: Indexación y Descifrado de Prueba (Receptor)

El Axiom Core de Bob está escuchando la blockchain y recibe el evento.

  1. Almacenamiento Local y Reconocimiento: El evento se escribe en la base de datos local. El Core detecta Nivel 3 y desempaqueta el CBOR para acceder al contenido, las etiquetas y la indicación m.
  2. Descifrado de Prueba: El Core verifica la indicación de 2 bytes m contra las contraseñas almacenadas de Bob.
  3. Coincidencia y Reenvío: La indicación coincide con "Secret123". La etiqueta GCM confirma que los datos no han sido manipulados. Los datos se descifran en RAM y se envían al teléfono inteligente de Bob a través de la API local. El mensaje "Reunión a las 8 PM" aparece en el feed "#AxiomDev".
  4. Cola de Desconocidos: Para los usuarios sin la contraseña correcta, la verificación de la indicación falla. Este ruido de datos ilegibles se elimina automáticamente después de que expire un búfer deslizante (por ejemplo, 30 días).
Descargar herramienta