Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Axiom-protocol — Das Ziel von Axiom ist es, eine vollständig anonyme, dezentrale und zensurresistente Social-Media-Plattform bereitzustellen. Um dies zu ermöglichen, ist die Architektur streng in das Protokoll und die Clients unterteilt. Dieses Repository definiert das Protokoll und den Smart Contract sowie eine standardisierte Datenstruktur auf einem Ethereum Layer 2 Netzwerk. | Kitploit
Tools/GitHubGitHub/kl4v3/axiom-protocol
Authentifizierung & AutorisierungVerschlüsselungs-/EntschlüsselungstoolsIdentitätsmanagementKryptographiePrivatsphäreSocial Engineering
GitHubkl4v3/axiom-protocol

Axiom-protocol

Repository anzeigen
vor 4 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

Das Ziel von Axiom ist es, eine vollständig anonyme, dezentrale und zensurresistente Social-Media-Plattform bereitzustellen. Um dies zu ermöglichen, ist die Architektur streng in das Protokoll und die Clients unterteilt. Dieses Repository definiert das Protokoll und den Smart Contract sowie eine standardisierte Datenstruktur auf einem Ethereum Layer 2 Netzwerk.

Teilen

Axiom: Dezentrales und zensurresistentes Kommunikationsprotokoll

🚀 Live-Deployment Details

  • Netzwerk: Arbitrum One (Mainnet L2)
  • Chain-ID: 42161
  • RPC-Endpunkt: https://arb1.arbitrum.io/rpc (oder ein benutzerdefinierter Alchemy/Infura-Endpunkt)
  • Axiom-Proxy-Vertragsadresse: 0xc11CFf8111e8b1F055eba095Efb679a38Abe6b63

(Hinweis: Axiom verwendet eine UUPS-Upgradeable-Proxy-Architektur. Alle Client-Interaktionen müssen immer an diese Proxy-Adresse gerichtet werden, niemals an den zugrunde liegenden Implementierungsvertrag).

📖 So lesen Sie Daten (Indexer / Clients)

Clients sollten niemals versuchen, Protokollbeiträge direkt aus den Smart-Contract-Statusvariablen zu lesen (da die Einsparung von Gas Priorität hat, werden Inhalte nicht im Status gespeichert). Stattdessen müssen Clients die Blockchain-Events indizieren.

✍️ So veröffentlichen Sie Daten (Client-Transaktionsübermittlung)

Um Daten im Protokoll zu veröffentlichen, müssen Clients eine On-Chain-Transaktion durchführen, die die Funktion publishAxiom auf dem Proxy-Vertrag aufruft.


Das Ziel von Axiom ist es, eine vollständig anonyme, dezentralisierte und zensurresistente Social-Media-Plattform bereitzustellen.

Um dies zu ermöglichen, ist die Architektur strikt unterteilt: die Grundlage (das Protokoll) und die Clients (die Software). Dieses Repository definiert diese Grundlage – einen Smart Contract und eine standardisierte Datenstruktur auf einem Ethereum Layer-2-Netzwerk.

Projektumfang

Das Protokoll legt die Grundlage der Plattform fest:

  • Standard-Namenskonvention: Eine klare Struktur, die definiert, wie Payloads an den Smart Contract gesendet werden und wie Clients sie lesen.
  • Unveränderlichkeit: Die Blockchain dient als ausfallsichere und manipulationssichere Datenbank.
  • Microblogging-Fokus: Das Protokoll ist nicht für große Mengen an On-Chain-Daten ausgelegt, sondern folgt dem traditionellen Microblogging-Konzept (kurze Beiträge). Mediendateien werden nicht nativ auf der Chain gespeichert; stattdessen werden sie bei Bedarf über externe Links eingebettet.
  • Spam-Schutz: Transaktionsgebühren und eine einmalige, niedrige Eintrittsgebühr für den ersten Beitrag einer Wallet verhindern State-Bloat-Angriffe durch Botnetze.
  • Sicherheits-Routing: Das Protokoll erzwingt die OPSEC-Trennung von Nachrichten basierend auf bestimmten Sicherheitsanforderungen.

Protokoll-Sicherheitsstufen

Axiom wurde entwickelt, um echte Meinungsfreiheit für Nutzer in Ländern zu ermöglichen, in denen Kommunikation eingeschränkt ist. Das Protokoll unterscheidet zwischen drei Sicherheitsstufen. Es wird davon ausgegangen, dass die Nutzer wissen, welche Sicherheitsstufe für ihre spezifische Situation angemessen ist.

  • Stufe 1: Offen Die Kommunikation erfolgt offen im Klartext auf der Blockchain. Alle Clients können den gesamten Datenverkehr lesen und verarbeiten. Das Einbetten von Links (z.B. für Bilder über Drittanbieter) ist auf dieser Stufe erlaubt. Es wird erwartet, dass hier die normale Social-Media-Kommunikation stattfindet – inklusive lustiger Katzenbilder. Dies erzeugt wichtiges Rauschen im Netzwerk. Es ist weniger sicher in Bezug auf reines IP-Tracking, aber die Beiträge bleiben vollständig unzensierbar.
  • Stufe 2: Geschlossen Diese Stufe ist für strenge Sicherheit gedacht. Sie unterstützt ausschließlich Klartextnachrichten. Das Protokoll verbietet hier Medienlinks, um IP-Lecks technisch auszuschließen, wenn Clients externe Inhalte laden. Nutzer müssen selbstständig sicherstellen, dass sie die für Gasgebühren verwendete Kryptowährung anonym erwerben.
  • Stufe 3: Verschlüsselt Entwickelt für maximale Privatsphäre. Die Nachrichten selbst werden vor dem Senden mit AES-256-GCM verschlüsselt. Nur Metadaten, der Initialisierungsvektor (IV) und der Chiffretext werden auf der Blockchain gespeichert. Nur Clients von Nutzern, die den richtigen kryptografischen Schlüssel besitzen, können diese Nachrichten entschlüsseln und lesen.

Netzwerksicherheit & IP-Tracking (Harte Regel)

Für alle Stufen ist Onion-Routing (z.B. Tor) strikt verpflichtend. Die Kommunikation mit kommerziellen RPC-Anbietern (wie Infura oder Alchemy) gibt die IP-Adresse des Senders im Klartext preis. Um potenziell lebensbedrohliche OPSEC-Schwachstellen für Dissidenten zu schließen, sind Clients verpflichtet, Transaktionen ausschließlich über das Tor-Netzwerk an die RPC-Knoten zu leiten.


Kryptografiestandards (Für Stufe 3)

Für Nachrichten auf Stufe 3 müssen alle Clients die folgenden kryptografischen Standards strikt einhalten, um Interoperabilität zu gewährleisten und die Sicherheit nicht zu gefährden.

  1. Verschlüsselungsalgorithmus: AES-256-GCM Alle Payloads der Stufe 3 müssen symmetrisch mit AES im GCM-Modus mit einer 256-Bit-Schlüssellänge verschlüsselt werden. Der Initialisierungsvektor (IV/Nonce) muss für jede einzelne Nachricht zufällig neu generiert werden und wird als Klartext-Metadatum auf die Blockchain geschrieben. Dies verhindert Mustererkennung durch externe Beobachter.
  2. Schlüsselableitung: Argon2id Nutzer geben menschenlesbare Passwörter in ihre Clients ein. Diese dürfen niemals direkt als AES-Schlüssel verwendet werden. Clients sind strikt verpflichtet, den Argon2id-Hash-Algorithmus zu verwenden. (Hinweis: Entwickler müssen innerhalb des Clients feste Parameter für Iterationen und Speichernutzung definieren, damit alle exakt denselben Schlüssel generieren).
  3. Schlüsselaustausch: Out-of-Band Axiom wickelt keinen On-Chain-Schlüsselaustausch ab. Das Protokoll speichert keine öffentlichen Schlüssel. Der Austausch des Passworts (gemeinsames Geheimnis) für einen bestimmten Kanal liegt in der Verantwortung der Nutzer und muss außerhalb des Netzwerks erfolgen (z.B. persönlich).
  4. Datenintegrität AES-GCM generiert einen Authentifizierungs-Tag. Clients müssen diesen Tag validieren. Wenn die Validierung fehlschlägt, muss der Client die Nachricht stillschweigend verwerfen (Drop).

Datenstruktur, Payload-Auslieferung und Indizierung

Axiom verwendet eine hybride Payload-Auslieferung (ABI-Split). Um zu verhindern, dass der Smart Contract teure Datenformate entpacken muss, werden die Daten vor der Übertragung getrennt:

  1. Logikvariablen: Die Stufe (uint8 _level) und der Initialisierungsvektor (bytes _iv) werden als direkte Parameter an den Smart Contract übergeben, da dieser sie benötigt, um seine Sicherheitsregeln durchzusetzen.
  2. Undurchsichtige Daten: Der eigentliche Nachrichteninhalt wird clientseitig als JSON konstruiert und in CBOR (Concise Binary Object Representation) komprimiert. Der Vertrag behandelt dieses CBOR-Paket "blind" und leitet es direkt an das Event-Log weiter.

Payload-Schlüssel (CBOR-Struktur)

Axiom verwendet einzelne Buchstaben als Schlüssel, um Bytes zu sparen. Der Autor (msg.sender) und der Zeitstempel (block.timestamp) werden weggelassen, da der Smart Contract diese Werte manipulationssicher extrahiert.

  • t (Typ): Ganzzahl. Der Aktionstyp.
  • c (Inhalt): String/Bytes. Der Text, Name oder Chiffretext.
  • h (Hashtags/Tags): Array. Optional. Wird zur Kategorisierung verwendet (Unterkanäle).
  • m (Nachrichtenhinweis): Bytes (Länge 2). Nur Stufe 3. Ein 2-Byte-HMAC-Hash, der für Fuzzy-Bucketing verwendet wird.
  • r (Antwort auf): Bytes. Optional. Der Transaktionshash eines referenzierten Beitrags.

Aktionstypen (t-Feld)

  • 0 = Profilaktualisierung (Verknüpft die Wallet-Adresse mit einem lesbaren Namen im Feld c)
  • 1 = Beitrag (Standardnachricht)
  • 2 = Antwort (r erfordert den Hash des ursprünglichen Beitrags)
  • 3 = Like (r erfordert den Hash des Beitrags)
  • 4 = Unlike (Macht Typ 3 rückgängig)
  • 5 = Retweet / Repost (r erfordert den Hash des Beitrags)
  • 6 = Un-Retweet (Macht Typ 5 rückgängig)

Unterkanäle und Dark Routing (h-Feld)

  • Stufe 1 & 2: Tags werden im Klartext übergeben.
  • Stufe 3 (Verschlüsselt): Das Übergeben von Tags im Klartext ist auf Protokollebene strengstens verboten, da dies Metadaten preisgibt. Tags müssen genau wie der Inhalt (c) verschlüsselt werden. Für externe Beobachter sind die Tags daher vollständig unsichtbar (Dark Routing).

Stufe 3: Fuzzy-Bucketing (m-Feld)

Da Tags auf Stufe 3 verschlüsselt sind, müssten Clients theoretisch versuchen, jede einzelne Nachricht zu entschlüsseln (Trial Decryption). Um CPU-Überlastungen zu vermeiden, verwendet Axiom Nachrichtenhinweise:

  • Der Sender berechnet HMAC-SHA256(AES_Key, IV) und platziert die ersten 2 Bytes als Feld m in der CBOR-Payload.
  • Empfänger berechnen diesen Hinweis für ihre lokal gespeicherten Passwörter. Der aufwändige Entschlüsselungsprozess wird nur ausgeführt, wenn eine Übereinstimmung vorliegt. Dadurch werden 99,99 % des irrelevanten Datenverkehrs herausgefiltert, ohne Metadaten preiszugeben.

Identität: Globale Profile vs. Private Aliase

Axiom behandelt Identität mit völliger Transparenz: Die L2-Wallet-Adresse (msg.sender) ist die einzige soziale und finanzielle Identität. Das Protokoll überträgt die Verantwortung für die finanzielle OPSEC vollständig auf den Benutzer (z.B. die Verwendung von Mixern und Brücken, um anonym Gas-Token zu beschaffen).

Die Profilaktualisierungsaktion (t: 0) verhält sich je nach gewählter Sicherheitsstufe unterschiedlich:

  1. Globale Identität (Stufe 1 & 2) Sendet eine Wallet eine unverschlüsselte Profilaktualisierung, dient dies als globale Deklaration. Die Wallet wird netzweit unter diesem Namen bekannt. Jeder sieht diesen Namen (z.B. Aufbau einer öffentlichen Reputation als @Dissident99).
  2. Private Aliase & Spitznamen (Stufe 3) Sendet eine Wallet eine Profilaktualisierung innerhalb einer verschlüsselten Stufe-3-Payload, erzeugt sie einen isolierten, privaten Alias. Dieser Alias ist nur innerhalb des entschlüsselten Unterkanals für Benutzer sichtbar, die das Passwort kennen. Dies ermöglicht pseudonyme Rollenverteilungen in geschlossenen Gruppen, ohne die globale Identität zu verändern. Rendering-Priorität: Für Stufe 3 muss das Frontend immer prüfen, ob ein lokaler Alias existiert, bevor auf den globalen Namen zurückgegriffen wird.

Smart-Contract-Architektur & OPSEC-Erzwingungen

Axiom verlässt sich auf On-Chain-Validierung mit O(1)-Komplexität. Um die Gaskosten auf einem absoluten Minimum zu halten, führt der Smart Contract nur grundlegende kryptografische Prüfungen durch. Alle ressourcenintensiven Inhaltsvalidierungen werden auf die Clients (Layer-2) ausgelagert.

1. On-Chain-Validierung (Der Smart Contract)

Der Vertrag fungiert als unbestechlicher Türsteher. Wenn eine Payload nicht den strengen Regeln entspricht, wird die Transaktion zurückgesetzt.

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=New, 1=PathA(Level1), 2=PathB(Level2/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, "Invalid level");

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

        if (currentPath == 0) {
            require(msg.value >= entryFee, "Anti-Sybil: Insufficient entry fee");
            walletPath[msg.sender] = requiredPath;
        } else {
            require(msg.value == 0, "Fee already paid");
            require(currentPath == requiredPath, "OPSEC Violation: Wallet is tainted");
        }

        if (_level == 3) {
            require(_iv.length == 12, "Level 3 strictly requires a 12-byte IV");
        } else {
            require(_iv.length == 0, "Level 1 and 2 require strictly empty IV");
        }

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

    function withdraw() external onlyOwner {
        payable(owner()).transfer(address(this).balance);
    }
}
  • Bidirektionale Wallet-Kontamination (Erzwungene Isolation): Wenn eine Wallet zum ersten Mal auf Stufe 1 postet, wird sie dauerhaft für Stufe 2/3 blockiert. Wenn sie zuerst auf Stufe 2 oder 3 postet, wird Stufe 1 blockiert.
  • Erforderliche Parameter: Für Stufe 3 erzwingt der Vertrag strikt einen 12-Byte-IV.

2. Off-Chain-Validierung (Durch die Clients)

Wenn ein Beitrag gegen die Protokollregeln verstößt, muss der Client ihn stillschweigend verwerfen (Local Drop).

  • Der Stufe-2-Link-Blocker: Clients scannen den Klartext (c) von Stufe-2-Nachrichten. Wenn URLs, IP-Adressen oder typische Medien-Tags erkannt werden, wird der Beitrag vollständig blockiert.
  • Selbstreinigung: Wenn ein Angreifer das Netzwerk mit Links auf Stufe 2 spamt, bezahlt er die Gasgebühren, aber kein gültiger Axiom-Client wird diese Nachrichten jemals rendern.

Infrastruktur & Empfohlene Client-Architektur

Axiom ist auf einem Ethereum Layer-2 (L2)-Netzwerk (z.B. Arbitrum Nova) bereitgestellt.

Um eine Überlastung mobiler Geräte zu vermeiden (Akku-Laufzeit, Speicherbeschränkungen, WebAssembly-Limits für Argon2id), erzwingt Axiom eine hochperformante Client-Architektur:

  • Axiom Core (Selbst gehosteter Knoten): Ein Server/Docker-Container (z.B. auf einem NAS), der die Blockchain über RPC liest, Ereignisse indiziert und die ressourcenintensive Kryptografie nativ ausführt.
  • Axiom UI (Thin Client): Eine Mobile-App oder Web-UI, die ausschließlich über eine API mit dem eigenen Axiom Core kommuniziert.

Datenabruf und EIP-4444

Clients laden nicht den gesamten Blockchain-Status herunter. Sie filtern nach dem AxiomPost-Event des Smart Contracts, das alle notwendigen Daten im Klartext enthält (Sender, Stufe, IV, CBOR, Zeitstempel).

Da Ethereum-Knoten gemäß EIP-4444 historische Daten (Ereignisse älter als 365 Tage) irgendwann verwerfen werden, empfiehlt das Protokoll, dass lokale Axiom Cores als dezentrale Archive dienen und die Datenbanken dauerhaft speichern.


Beispielablauf: Ein Stufe-3-Beitrag

Um zu veranschaulichen, wie die Architektur in der Praxis funktioniert, hier ein vollständiger Lebenszyklus-Durchlauf.

Szenario: Alice möchte die Nachricht "Meeting at 8 PM" im Unterkanal "AxiomDev" posten. Die Gruppe hat zuvor offline das Passwort "Secret123" vereinbart.

Schritt 1: Lokale Vorbereitung und Verschlüsselung (Axiom Core)

Alices Axiom Core übernimmt die rechenintensive Arbeit:

  1. Schlüsselableitung: Es wandelt das Passwort mit Argon2id in einen 256-Bit-AES-Schlüssel um.
  2. IV-Generierung: Ein zufälliger 12-Byte-Initialisierungsvektor wird generiert (z.B. 0x12ab34cd56ef789012ab34cd).
  3. Verschlüsselung: Der Inhalt und der Tag ("AxiomDev") werden mit AES-GCM verschlüsselt.
  4. Hinweis-Generierung: Der 2-Byte-HMAC-Hash für das Fuzzy-Bucketing wird berechnet (m: "0xa1b2").

Schritt 2: Payload-Konstruktion (CBOR-Serialisierung)

Da die Stufe und der IV direkt an den Vertrag übergeben werden, werden sie aus dem CBOR-Objekt ausgeschlossen.

Interne JSON-Darstellung:

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

Dieses JSON wird zur Gaseinsparung in ein rohes CBOR-Byte-Array (0xa3617401...) komprimiert.

Schritt 3: Der Smart-Contract-Aufruf (Blockchain-Interaktion)

Alice löst die Vertragsfunktion aus. Wichtig: Der Aufruf erfolgt strikt über Tor!

(Beispiele für Stufe 3 und Stufe 1:)

root@kitploit:~
// Beispiel 1: Client ruft den Smart Contract für einen verschlüsselten Stufe-3-Beitrag auf
await axiomContract.publishAxiom(
    3,                                      // _level: 3
    "0x12ab34cd56ef789012ab34cd",           // _iv: 12-Byte-Hex-String erforderlich
    "0xa3617401616358208a4f..."             // _cbor: gepackter CBOR-Hex-String
);

// Beispiel 2: Client ruft den Smart Contract für einen öffentlichen Stufe-1-Beitrag auf
await axiomContract.publishAxiom(
    1,                                      // _level: 1
    "0x",                                   // _iv: strikt leeres Byte-Array
    "0xa361740161634c48656c6c6f204178..."   // _cbor: gepackter CBOR-Hex-String
);

Der Smart Contract gibt dann das Ereignis aus:

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

Schritt 4: Indizierung und Probeentschlüsselung (Empfänger)

Bobs Axiom Core hört die Blockchain ab und empfängt das Ereignis.

  1. Lokale Speicherung & Erkennung: Das Ereignis wird in die lokale Datenbank geschrieben. Der Core erkennt Level 3 und entpackt die CBOR, um auf den Inhalt, die Tags und den Hinweis m zuzugreifen.
  2. Probeentschlüsselung: Der Core prüft den 2-Byte-Hinweis m gegen Bobs gespeicherte Passwörter.
  3. Übereinstimmung & Weiterleitung: Der Hinweis stimmt mit "Secret123" überein. Der GCM-Tag bestätigt, dass die Payload nicht manipuliert wurde. Die Daten werden im RAM entschlüsselt und über die lokale API an Bobs Smartphone gesendet. Die Nachricht "Meeting at 8 PM" erscheint im Feed "#AxiomDev".
  4. Unbekannter Rückstand: Für Benutzer ohne das richtige Passwort schlägt die Hinweisprüfung fehl. Dieses unlesbare Datenrauschen wird automatisch gelöscht, nachdem ein rollierender Puffer abläuft (z.B. 30 Tage).
Tool herunterladen