Skip to content

KN-Neuron/Hacknarok-Software

Repository files navigation

TrustLayer

Cyfrowa warstwa autentyczności dla wiadomości, ogłoszeń i mediów społecznościowych. C2PA + behawioralna atestacja procesu + percepcyjne hashowanie + Integrity Clash detection. Prawda przeżywa screenshot, copy-paste i strip-metadata.

Projekt hackathonowy. Temat: Dekada innowacji — zbuduj fundamenty nowej ery w otaczającej nas rzeczywistości.


Problem

Od sierpnia 2026 EU AI Act Art. 50 wymaga oznaczania treści generatywnych. Ale prawo to tylko ramka — nie daje narzędzi:

  • Babcia + BLIK: oszust przejmuje numer mamy na WhatsAppie. "Synu, miałam wypadek, wyślij 5000 zł". Nie ma sposobu, by odbiorca zweryfikował, że to faktycznie urządzenie mamy.
  • Deepfake porn: ofiara nie ma sposobu, by udowodnić "to nie ja". Słowo przeciw słowu.
  • Scam OLX: ogłoszenia z AI-generated zdjęciami "mieszkania" zalewają serwisy. Brak warstwy detekcji niespójności.

C2PA jako standard rozwiązuje część problemów, ale: (1) metadane są wycinane przez platformy, (2) tekst sie nie da klasycznie podpisać, (3) sam podpis nie wykrywa AI.

Rozwiązanie — TrustLayer

Trzy warstwy weryfikacji w jednym manifeście:

  1. Hard binding (klasyczny C2PA) — kryptograficzny podpis treści przez WebAuthn (Touch ID / Windows Hello / Android fingerprint). Klucz prywatny nigdy nie opuszcza secure enclave urządzenia.
  2. Soft binding — SimHash dla tekstu, pHash dla obrazów. Manifest da się odzyskać z chmury nawet po screenshocie / przepisaniu / kompresji.
  3. Behavioral attestation (ZK-PoP lite) — dynamika pisania (interwały klawiszy) jako dowód, że tekst napisał człowiek, nie LLM.

Plus: Integrity Clash detection — wykrycie sprzeczności typu "manifest mówi człowiek, ale klasyfikator AI wykrywa generację".

Stack

  • Backend: FastAPI + PostgreSQL (Manifest Store + key registry)
  • Frontend: Next.js 15 (App Router) + Tailwind + Motion
  • Crypto: WebAuthn (natywne) + WebCrypto dla hashowania
  • Soft binding: Datasketch (SimHash), ImageHash (pHash)
  • C2PA: własna implementacja oparta o spec 2.3 (manifest = JSON + JUMBF-like envelope, podpis ECDSA P-256)

Demo scenarios

  1. Babcia + BLIK (komunikator) — wiadomość scam vs wiadomość z prawdziwego urządzenia
  2. Personal Alibi (galeria) — porównanie deepfake'a z bazą podpisanych zdjęć ofiary
  3. OLX scam (ogłoszenia) — wykrycie AI-generated zdjęć w ogłoszeniu

Uruchomienie

Opcja A — Docker (rekomendowana)

cp .env.example .env   # opcjonalnie, domyślne wartości działają
./scripts/dev up       # backend + frontend, hot reload

Wszystkie komendy:

./scripts/dev up          # odpalenie stacku dev (hot reload obu serwisów)
./scripts/dev down        # zatrzymanie
./scripts/dev logs        # logi obu serwisów
./scripts/dev logs backend # tylko backend
./scripts/dev restart backend  # restart pojedynczego serwisu
./scripts/dev shell backend    # bash wewnątrz kontenera
./scripts/dev reset-db    # re-seed demo data bez restartu
./scripts/dev status      # zdrowie usług
./scripts/dev rebuild     # force rebuild obrazów (po zmianie deps)
./scripts/dev prod        # tryb produkcyjny
./scripts/dev snapshot    # zip projektu bez śmieci

./scripts/watch           # watcher + auto-testy po każdej zmianie
./scripts/check           # pełen smoke test całego systemu

Lub make up / make check / make watch itd.

Opcja B — lokalnie bez Dockera

# Terminal 1
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000

# Terminal 2
cd frontend
npm install
npm run dev

Workflow developerski

Zmiana w kodzie backendu (backend/app/*.py): uvicorn w kontenerze wykryje i zrestartuje automatycznie. Healthcheck wraca w <2s.

Zmiana w kodzie frontu (frontend/app/*.tsx): Next.js Fast Refresh — zmiany widoczne w przeglądarce bez utraty state.

Zmiana w requirements.txt / package.json: ./scripts/dev rebuild && ./scripts/dev up.

Zmiana w Dockerfile / docker-compose.yml: ./scripts/dev rebuild.

Po zmianie chcesz sprawdzić że nic się nie zepsuło: ./scripts/check — 15 asercji E2E przez całą ścieżkę od API do scenariuszy.

About

The name should probably be changed

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors