Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Axiom-protocol — L'obiettivo di Axiom è fornire una piattaforma di social media completamente anonima, decentralizzata e resistente alla censura. Per rendere ciò possibile, l'architettura è rigorosamente suddivisa tra protocollo e client. Questo repository definisce il protocollo, il contratto intelligente e una struttura dati standardizzata su una rete Ethereum Layer 2. | Kitploit
Strumenti/GitHubGitHub/kl4v3/axiom-protocol
Autenticazione e AutorizzazioneStrumenti di Crittografia/DecrittografiaGestione IdentitàCrittografiaPrivacyIngegneria Sociale
GitHubkl4v3/axiom-protocol

Axiom-protocol

Vedi Repository
4 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →

Informazioni

L'obiettivo di Axiom è fornire una piattaforma di social media completamente anonima, decentralizzata e resistente alla censura. Per rendere ciò possibile, l'architettura è rigorosamente suddivisa tra protocollo e client. Questo repository definisce il protocollo, il contratto intelligente e una struttura dati standardizzata su una rete Ethereum Layer 2.

Condividi

Axiom: Protocollo di Comunicazione Decentralizzato e Resistente alla Censura

🚀 Dettagli del Deployment dal Vivo

  • Rete: Arbitrum One (Mainnet L2)
  • Chain ID: 42161
  • Endpoint RPC: https://arb1.arbitrum.io/rpc (o qualsiasi endpoint personalizzato Alchemy/Infura)
  • Indirizzo del Contratto Proxy Axiom: 0xc11CFf8111e8b1F055eba095Efb679a38Abe6b63

(Nota: Axiom utilizza un'architettura di Proxy UUPS Upgradeable. Tutte le interazioni dei client devono sempre essere dirette verso questo indirizzo Proxy, mai verso il contratto di implementazione sottostante).

📖 Come Leggere i Dati (Indicizzatori / Client)

I client non devono mai tentare di leggere i post del protocollo direttamente dalle variabili di stato del contratto intelligente (poiché preservare il gas è una priorità, il contenuto non è memorizzato nello stato). Invece, i client devono indicizzare gli eventi della blockchain.

✍️ Come Pubblicare Dati (Invio di Transazioni del Client)

Per pubblicare dati nel Protocollo, i client devono inviare una transazione on-chain chiamando la funzione publishAxiom sul contratto Proxy.


L'obiettivo di Axiom è fornire una piattaforma di social media completamente anonima, decentralizzata e resistente alla censura.

Per renderlo possibile, l'architettura è rigorosamente divisa: le fondamenta (il protocollo) e i client (il software). Questo repository definisce quelle fondamenta—un contratto intelligente e una struttura dati standardizzata su una rete Ethereum Layer 2.

Ambito del Progetto

Il protocollo stabilisce le fondamenta della piattaforma:

  • Convenzione di Denominazione Standard: Una struttura chiara che definisce come i payload vengono inviati al contratto intelligente e come i client li leggono.
  • Immutabilità: La blockchain funge da database a prova di manomissione e fail-safe.
  • Focus sul Microblogging: Il protocollo non è progettato per grandi quantità di dati on-chain, ma segue piuttosto il concetto tradizionale di microblogging (post brevi). I file multimediali non sono memorizzati nativamente sulla catena; vengono invece incorporati tramite link esterni quando necessario.
  • Protezione dallo Spam: Le commissioni di transazione e una commissione di ingresso bassa e una tantum per il primo post di un wallet prevengono attacchi di rigonfiamento dello stato da parte di botnet.
  • Routing di Sicurezza: Il protocollo impone la separazione OPSEC dei messaggi in base a specifici requisiti di sicurezza.

Livelli di Sicurezza del Protocollo

Axiom è progettato per consentire la vera libertà di parola per gli utenti in paesi dove la comunicazione è limitata. Il protocollo distingue tra tre livelli di sicurezza. Presuppone che gli utenti sappiano quale livello di sicurezza è appropriato per la loro situazione specifica.

  • Livello 1: Aperto La comunicazione avviene apertamente in testo semplice sulla blockchain. Tutti i client possono leggere ed elaborare tutto il traffico. L'incorporamento di link (ad esempio per immagini tramite provider terzi) è consentito a questo livello. Ci si aspetta che qui avvenga la comunicazione standard dei social media—incluse foto divertenti di gatti. Questo genera rumore importante all'interno della rete. È meno sicuro per quanto riguarda il puro tracciamento IP, ma i post rimangono completamente non censurabili.
  • Livello 2: Chiuso Questo livello è destinato a una sicurezza rigorosa. Supporta esclusivamente messaggi di testo semplice. Il protocollo vieta i link multimediali qui per escludere tecnicamente qualsiasi fuga di IP quando i client caricano contenuti esterni. Gli utenti devono garantirsi autonomamente di acquisire la criptovaluta utilizzata per le commissioni di gas in modo anonimo.
  • Livello 3: Crittografato Costruito per la massima privacy. I messaggi stessi sono crittografati con AES-256-GCM prima di essere inviati. Solo i metadati, il vettore di inizializzazione (IV) e il testo cifrato sono memorizzati sulla blockchain. Solo i client degli utenti che possiedono la chiave crittografica corretta possono decrittografare e leggere questi messaggi.

Sicurezza della Rete e Tracciamento IP (Regola Ferrea)

Per tutti i livelli, il routing Onion (ad esempio Tor) è rigorosamente obbligatorio. Comunicare con provider RPC commerciali (come Infura o Alchemy) fa trapelare l'indirizzo IP del mittente in testo semplice. Per chiudere potenziali vulnerabilità OPSEC letali per i dissidenti, i client sono tenuti a instradare le transazioni verso i nodi RPC esclusivamente attraverso la rete Tor.


Standard Crittografici (Per il Livello 3)

Per i messaggi di Livello 3, tutti i client devono attenersi rigorosamente ai seguenti standard crittografici per garantire l'interoperabilità ed evitare di compromettere la sicurezza.

  1. Algoritmo di Crittografia: AES-256-GCM Tutti i payload di Livello 3 devono essere crittografati simmetricamente utilizzando AES in modalità GCM con una lunghezza della chiave di 256 bit. Il vettore di inizializzazione (IV/Nonce) deve essere rigenerato casualmente per ogni singolo messaggio e viene scritto sulla blockchain come metadati in testo semplice. Questo impedisce il riconoscimento di pattern da parte di osservatori esterni.
  2. Derivazione della Chiave: Argon2id Gli utenti inseriscono password leggibili dall'uomo nei loro client. Queste non devono mai essere usate direttamente come chiavi AES. I client sono tenuti rigorosamente a utilizzare l'algoritmo di hashing Argon2id. (Nota: Gli sviluppatori devono definire parametri fissi per iterazioni e utilizzo della memoria all'interno del client in modo che tutti generino esattamente la stessa chiave).
  3. Scambio di Chiave: Fuori Banda Axiom non gestisce lo scambio di chiavi on-chain. Il protocollo non memorizza chiavi pubbliche. Lo scambio della password (segreto condiviso) per un canale specifico è responsabilità degli utenti e deve avvenire al di fuori della rete (ad esempio di persona).
  4. Integrità dei Dati AES-GCM genera un Tag di Autenticazione. I client devono convalidare questo tag. Se la convalida fallisce, il client deve scartare silenziosamente il messaggio (drop).

Struttura dei Dati, Consegna del Payload e Indicizzazione

Axiom utilizza una consegna ibrida del payload (ABI Split). Per evitare che il contratto intelligente debba decomprimere formati di dati costosi, i dati vengono separati prima della trasmissione:

  1. Variabili Logiche: Il livello (uint8 _level) e il vettore di inizializzazione (bytes _iv) vengono passati come parametri diretti al contratto intelligente, poiché esso ne ha bisogno per applicare le sue regole di sicurezza.
  2. Dati Opachi: Il contenuto effettivo del messaggio viene costruito internamente dal client come JSON e compresso in CBOR (Concise Binary Object Representation). Il contratto gestisce questo pacchetto CBOR "alla cieca" e lo inoltra direttamente al registro degli eventi.

Chiavi del Payload (Struttura CBOR)

Axiom utilizza lettere singole come chiavi per risparmiare byte. L'autore (msg.sender) e il timestamp (block.timestamp) sono omessi, poiché il contratto intelligente estrae questi valori in modo a prova di manomissione.

  • t (Tipo): Intero. Il tipo di azione.
  • c (Contenuto): Stringa/Bytes. Il testo, il nome o il testo cifrato.
  • h (Hashtag/Tag): Array. Opzionale. Usato per categorizzazione (sottocanali).
  • m (Indizio del Messaggio): Bytes (lunghezza 2). Solo Livello 3. Un hash HMAC di 2 byte utilizzato per il bucketing fuzzy.
  • r (Rispondi-A): Bytes. Opzionale. L'hash della transazione di un post a cui si fa riferimento.

Tipi di Azione (Campo t)

  • 0 = Aggiornamento Profilo (Collega l'indirizzo del wallet a un nome leggibile nel campo c)
  • 1 = Post (Messaggio standard)
  • 2 = Risposta (r richiede l'hash del post originale)
  • 3 = Mi Piace (r richiede l'hash del post)
  • 4 = Non Mi Piace più (Inverte il Tipo 3)
  • 5 = Retweet / Ripubblica (r richiede l'hash del post)
  • 6 = Annulla Retweet (Inverte il Tipo 5)

Sottocanali e Routing Oscuro (Campo h)

  • Livello 1 & 2: I tag vengono passati in testo semplice.
  • Livello 3 (Crittografato): Passare i tag in testo semplice è severamente vietato a livello di protocollo, poiché ciò fa trapelare metadati. I tag devono essere crittografati esattamente come il contenuto (c). Per gli osservatori esterni, i tag sono quindi completamente invisibili (Routing Oscuro).

Livello 3: Bucketing Fuzzy (Campo m)

Poiché i tag sono crittografati al Livello 3, i client teoricamente devono tentare di decrittografare ogni singolo messaggio (Decrittografia di Prova). Per prevenire sovraccarichi della CPU, Axiom utilizza Indizi del Messaggio:

  • Il mittente calcola HMAC-SHA256(AES_Key, IV) e inserisce i primi 2 byte come campo m nel payload CBOR.
  • I riceventi calcolano questo indizio per le loro password memorizzate localmente. Il costoso processo di decrittografia viene eseguito solo se c'è una corrispondenza. Questo filtra il 99,99% del traffico irrilevante senza far trapelare metadati.

Identità: Profili Globali vs. Alias Privati

Axiom gestisce l'identità con totale trasparenza: L'indirizzo del wallet L2 (msg.sender) è l'unica identità sociale e finanziaria. Il protocollo trasferisce la responsabilità per l'OPSEC finanziaria interamente all'utente (ad esempio, l'uso di mixer e ponti per procurarsi anonimamente token per il gas).

L'azione di aggiornamento del profilo (t: 0) si comporta diversamente a seconda del livello di sicurezza scelto:

  1. Identità Globale (Livello 1 & 2) Se un wallet invia un aggiornamento del profilo non crittografato, funge da dichiarazione globale. Il wallet diventa noto in tutta la rete con questo nome. Tutti vedono questo nome (ad esempio, costruendo una reputazione pubblica come @Dissident99).
  2. Alias Privati e Soprannomi (Livello 3) Se un wallet invia un aggiornamento del profilo all'interno di un payload crittografato di Livello 3, crea un alias privato e isolato. Questo alias è visibile solo all'interno del sottocanale decrittografato per gli utenti che conoscono la password. Ciò consente distribuzioni di ruolo pseudonime in gruppi chiusi senza alterare l'identità globale. Priorità di Rendering: Per il Livello 3, il frontend deve sempre verificare se esiste un alias locale prima di ricorrere al nome globale.

Architettura del Contratto Intelligente e Applicazioni OPSEC

Axiom si basa sulla convalida on-chain con complessità O(1). Per mantenere i costi del gas al minimo assoluto, il contratto intelligente esegue solo controlli crittografici di base. Tutte le convalide dei contenuti intensive in termini di risorse sono scaricate sui client (Layer 2).

1. Convalida On-Chain (Il Contratto Intelligente)

Il contratto agisce come un buttafuori incorruttibile. Se un payload non rispetta le regole severe, la transazione viene annullata.

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=Nuovo, 1=PercorsoA(Livello1), 2=PercorsoB(Livello2/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, "Livello non valido");

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

        if (currentPath == 0) {
            require(msg.value >= entryFee, "Anti-Sybil: Commissione di ingresso insufficiente");
            walletPath[msg.sender] = requiredPath;
        } else {
            require(msg.value == 0, "Commissione già pagata");
            require(currentPath == requiredPath, "Violazione OPSEC: Il wallet è contaminato");
        }

        if (_level == 3) {
            require(_iv.length == 12, "Livello 3 richiede rigorosamente un IV di 12 byte");
        } else {
            require(_iv.length == 0, "Livello 1 e 2 richiedono rigorosamente un IV vuoto");
        }

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

    function withdraw() external onlyOwner {
        payable(owner()).transfer(address(this).balance);
    }
}
  • Contaminazione del Wallet Bidirezionale (Isolamento Forzato): Se un wallet pubblica per la prima volta al Livello 1, viene permanentemente bloccato dal Livello 2/3. Se pubblica prima al Livello 2 o 3, il Livello 1 viene bloccato.
  • Parametri Obbligatori: Per il Livello 3, il contratto impone rigorosamente un IV di 12 byte.

2. Convalida Off-Chain (Dai Client)

Se un post viola le regole del protocollo, il client deve scartarlo silenziosamente (Drop Locale).

  • Il Blocco dei Link di Livello 2: I client scansionano il testo semplice (c) dei messaggi di Livello 2. Se vengono rilevati URL, indirizzi IP o tag multimediali tipici, il post viene completamente bloccato.
  • Auto-Pulizia: Se un attaccante invia spam alla rete con link al Livello 2, pagherà le commissioni di gas, ma nessun client Axiom valido renderà mai quei messaggi.

Infrastruttura e Architettura Client Consigliata

Axiom è distribuito su una rete Ethereum Layer 2 (L2) (ad esempio Arbitrum Nova).

Per evitare di sovraccaricare i dispositivi mobili (durata della batteria, limitazioni di archiviazione, limiti WebAssembly per Argon2id), Axiom impone un'architettura client ad alte prestazioni:

  • Axiom Core (Nodo Self-Hosted): Un server/contenitore Docker (ad esempio in esecuzione su un NAS) che legge la blockchain tramite RPC, indicizza gli eventi ed esegue nativamente la crittografia intensive in termini di risorse.
  • Axiom UI (Client Leggero): Un'app mobile o interfaccia web che comunica esclusivamente con il proprio Axiom Core tramite un'API.

Recupero dei Dati e EIP-4444

I client non scaricano l'intero stato della blockchain. Filtrano per l'evento AxiomPost del contratto intelligente, che contiene tutti i dati necessari in testo semplice (Mittente, Livello, IV, CBOR, Timestamp).

Poiché i nodi Ethereum alla fine scarteranno i dati storici (eventi più vecchi di 365 giorni) secondo EIP-4444, il protocollo raccomanda che gli Axiom Core locali fungano da archivi decentralizzati, memorizzando i database permanentemente.


Esempio di Flusso di Lavoro: Un Post di Livello 3

Per illustrare come funziona l'architettura in pratica, ecco un'esecuzione completa del ciclo di vita.

Scenario: Alice vuole pubblicare il messaggio "Riunione alle 20:00" nel sottocanale "AxiomDev". Il gruppo ha precedentemente concordato offline la password "Secret123".

Passo 1: Preparazione Locale e Crittografia (Axiom Core)

L'Axiom Core di Alice gestisce il lavoro computazionale pesante:

  1. Derivazione della Chiave: Converte la password in una chiave AES a 256 bit utilizzando Argon2id.
  2. Generazione dell'IV: Viene generato un vettore di inizializzazione casuale di 12 byte (ad esempio 0x12ab34cd56ef789012ab34cd).
  3. Crittografia: Il contenuto e il tag ("AxiomDev") vengono crittografati utilizzando AES-GCM.
  4. Generazione dell'Indizio: Viene calcolato l'hash HMAC di 2 byte per il bucketing fuzzy (m: "0xa1b2").

Passo 2: Costruzione del Payload (Serializzazione CBOR)

Poiché il livello e l'IV vengono passati direttamente al contratto, sono esclusi dall'oggetto CBOR.

Rappresentazione JSON Interna:

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

Questo JSON viene compresso in un array di byte CBOR grezzo (0xa3617401...) per risparmiare gas.

Passo 3: La Chiamata al Contratto Intelligente (Interazione con la Blockchain)

Alice attiva la funzione del contratto. Importante: La chiamata è rigorosamente instradata attraverso Tor!

(Esempi per L3 e L1:)

root@kitploit:~
// Esempio 1: Client che chiama il Contratto Intelligente per un post crittografato di Livello 3
await axiomContract.publishAxiom(
    3,                                      // _level: 3
    "0x12ab34cd56ef789012ab34cd",           // _iv: stringa esadecimale di 12 byte richiesta
    "0xa3617401616358208a4f..."             // _cbor: stringa esadecimale CBOR compressa
);

// Esempio 2: Client che chiama il Contratto Intelligente per un post pubblico di Livello 1
await axiomContract.publishAxiom(
    1,                                      // _level: 1
    "0x",                                   // _iv: array di byte rigorosamente vuoto
    "0xa361740161634c48656c6c6f204178..."   // _cbor: stringa esadecimale CBOR compressa
);

Il contratto intelligente emette quindi l'evento:

Event: AxiomPost(Sender: 0xAlice..., Level: 3, IV: 0x12ab..., CBOR: 0xa361..., Timestamp: 1710425890)

Passo 4: Indicizzazione e Decrittografia di Prova (Ricevente)

L'Axiom Core di Bob sta ascoltando la blockchain e riceve l'evento.

  1. Archiviazione Locale e Riconoscimento: L'evento viene scritto nel database locale. Il Core rileva Livello 3 e decomprime il CBOR per accedere al contenuto, ai tag e all'indizio m.
  2. Decrittografia di Prova: Il Core controlla l'indizio di 2 byte m rispetto alle password memorizzate di Bob.
  3. Corrispondenza e Inoltro: L'indizio corrisponde a "Secret123". Il tag GCM conferma che il payload non è stato manomesso. I dati vengono decrittografati in RAM e inviati allo smartphone di Bob tramite l'API locale. Il messaggio "Riunione alle 20:00" appare nel feed "#AxiomDev".
  4. Arretrato Sconosciuto: Per gli utenti senza la password corretta, il controllo dell'indizio fallisce. Questo rumore di dati illeggibile viene automaticamente eliminato dopo la scadenza di un buffer rolling (ad esempio 30 giorni).
Scarica lo strumento