Polska społeczność Octra jest na Telegramie! · Dołącz → t.me/octrapl
// octra.pl › fhe

Co to jest FHE?

Fully Homomorphic Encryption — obliczenia na zaszyfrowanych danych bez ich odszyfrowywania. Wybierz poziom który pasuje do Ciebie.

01
problem

Twoje dane są widoczne dla każdego kto je przetwarza.

Pomyśl o tym tak: kiedy wysyłasz paczkę kurierem, listonosz musi otworzyć paczkę żeby wiedzieć gdzie ją zanieść. Tak działa dzisiaj internet.

Twój bank musi zobaczyć Twoje saldo żeby sprawdzić czy możesz zapłacić. Twój lekarz musi przeczytać Twoje wyniki żeby postawić diagnozę. Google musi przeczytać Twój email żeby go przetłumaczyć.

Każdy serwis, który coś z Twoimi danymi robi — najpierw je widzi. To nie jest błąd w systemie. To fundamentalne ograniczenie matematyczne. Do teraz.

FHE pozwala wykonać obliczenia na zaszyfrowanych danych i dostać zaszyfrowany wynik — bez zobaczenia co jest w środku. Jak otwieranie koperty w ciemności.

// bez FHE vs z FHE
// Dzisiaj (bez FHE)
dane = "moje_wyniki_badań"
zaszyfruj(dane)         → ####
wyślij(####) do serwera
serwer.odszyfruj(####)  → widzi dane!
serwer.przetworz(dane)
zaszyfruj(wynik)        → %%%%
odeślij(%%%%)

// Z FHE (Octra)
dane = "moje_wyniki_badań"
zaszyfruj(dane)          → ####
wyślij(####) do serwera
serwer.przetworz(####)   → serwer NIGDY nie widzi!
wynik_zaszyfrowany = %%%%
odeślij(%%%%)            → tylko Ty odszyfrujesz
02
jak to działa

Trzy analogie które to wyjaśniają.

Nie musisz rozumieć matematyki. Wystarczy jedna z tych analogii.

🧤

Szklana rękawica

wyobraź sobie Masz pudełko z kartami. Przez grubą, nieprzezroczystą rękawicę możesz karty sortować, liczyć i układać — ale nigdy ich nie widzisz.
to właśnie FHE Serwer może operować na Twoich danych nie wiedząc co to za dane. Wynik do Ciebie wraca zaszyfrowany.
🔍

Audytor bez akt

wyobraź sobie Audytor sprawdza czy Twoja firma ma zysk bez zobaczenia żadnej liczby. Dostaje tylko odpowiedź: tak lub nie.
to właśnie FHE Możesz poprosić serwis o odpowiedź na pytanie dotyczące Twoich danych — bez pokazywania danych.
🏦

Zamknięty sejf bankowy

wyobraź sobie Bank liczy odsetki od Twojego depozytu przez ścianę sejfu — bez otwierania go. Tylko wynik trafia do Ciebie.
to właśnie FHE Twoje saldo pozostaje zaszyfrowane nawet podczas obliczeń. Nikt — włącznie z bankiem — go nie widzi.
03
zastosowania

Co to zmienia w prawdziwym życiu?

Cztery sytuacje z Twojego życia. Zobaczysz co jest możliwe gdy dane pozostają prywatne nawet podczas przetwarzania.

🏥

Diagnoza AI bez ujawniania historii choroby

Chcesz zapytać AI o możliwą diagnozę. Dziś AI musi widzieć Twoje wyniki badań. Z FHE — analizuje zaszyfrowane dane i zwraca zaszyfrowaną odpowiedź. Tylko Ty ją odczytujesz.

dziśAI widzi Twoje wyniki
z FHEAI nigdy nie widzi danych
🗳️

Głosowanie bez ujawniania głosu

Głosujesz online. Dziś ktoś musi zliczyć głosy — więc musi je zobaczyć. Z FHE zliczanie odbywa się na zaszyfrowanych kartach. Wynik jest poprawny matematycznie, nikt nie widział głosów.

dziśorganizator widzi głosy
z FHEmatematyczny dowód, zero wglądu
💰

Kredyt bez pokazywania zarobków

Bank sprawdza czy zarabiasz wystarczająco na kredyt. Dziś musi zobaczyć Twoje przelewy. Z FHE dostaje tylko odpowiedź tak/nie — bez dostępu do kwot.

dziśbank widzi wszystkie przelewy
z FHEtylko wynik: "zdolność: TAK"
🤝

Negocjacje bez ujawniania pozycji

Dwie firmy chcą sprawdzić czy ich oferty cenowe się pokrywają, bez ujawniania cen. Z FHE: "masz nakładające się zakresy: TAK/NIE" — żadna strona nie widzi liczby drugiej.

dziśtrzeba ujawnić ceny pośrednikowi
z FHEwynik bez ujawniania danych
04
historia FHE

50 lat od marzenia do produkcji.

Zanim FHE trafiło na blockchain — minęły dekady pracy kryptografów z całego świata.

1978
Pierwsze marzenie
Rivest, Adleman, Dertouzos

>Kryptografowie zadali pytanie: czy można wykonywać obliczenia na zaszyfrowanych danych bez ich odszyfrowania? Nazwali to "privacy homomorphism". Nikt nie wiedział czy to w ogóle możliwe.

teoria — brak implementacji
2009
Przełom — Craig Gentry
Stanford University / IBM Research

>Pierwsza w historii działająca implementacja FHE. Używała idealnych krat geometrycznych (ideal lattices). Była tysiące razy za wolna do użycia produkcyjnego — ale DZIAŁAŁA. Nagroda Turinga była tylko kwestią czasu.

→ praca Gentry 2009 (PDF)
2011 – 2016
Dekada optymalizacji: BGV, CKKS, TFHE
Brakerski / Gentry / Vaikuntanathan · Cheon / Kim · Chillotti / Gama

>Trzy nowe schematy, każdy 100× szybszy od poprzedniego. BGV — dla liczb całkowitych. CKKS — dla ML i genomiki (Google, IBM). TFHE — dla bramek logicznych (zama.ai, Concrete). FHE zaczyna być praktyczne.

impl: Microsoft SEAL · OpenFHE · Concrete
2024
HFHE — FHE trafia na blockchain
Octra Labs

>Octra zastępuje sekwencyjne kraty strukturą hipergrafu — co umożliwia masową równoległość operacji szyfrowanych. Wynik: 17 000 TPS na testnecie. Pierwszy blockchain gdzie każda transakcja może być zaszyfrowana end-to-end, natywnie, bez warstwy.

mainnet alpha ⚠ peer review w toku

Czemu to zajęło 46 lat?
FHE jest matematycznie poprawne od 1978. Problem była wydajność — każda operacja na zaszyfrowanych danych wymaga złożonych obliczeń kryptograficznych. Postęp w algorytmice (BGV, CKKS, TFHE) i sprzęcie (GPU, ASIC) powoli zbliżał nas do punktu użyteczności.

05
octra

Octra to blockchain zbudowany od zera na FHE.

Większość blockchainów jest przezroczystych. Każdy może zobaczyć ile masz tokenów, z kim handlujesz i co robisz. Octra zmienia to na poziomie fundamentalnym.

Token OCT to jak karta SIM — potrzebujesz jej żeby korzystać z sieci. Możesz kupić wOCT (wrapped OCT) na Uniswap — to ta sama wartość, tylko na sieci Ethereum.

Nie musisz niczego instalować żeby zrozumieć Octra. Zacznij od strony o sieci → lub sprawdź octrascan.io żeby zobaczyć transakcje w czasie rzeczywistym.

// tak wygląda prywatna transakcja
// Normalny blockchain (widoczny)
od:  0xAlice
do:  0xBob
ile: 150 ETH
     ↑ KAŻDY to widzi na Etherscan

// Octra (prywatny)
od:  [zaszyfrowane]
do:  [zaszyfrowane]
ile: [zaszyfrowane]
     ↑ sieć wykonuje transakcję
       nie widząc żadnej wartości
01
fundamentalna różnica

FHE vs ZKP vs MPC — to nie jest to samo.

Trzy najpopularniejsze podejścia do prywatności w krypto. Każde rozwiązuje inny problem. Zrozumienie różnicy to podstawa — bez tego marketing FHE, ZKP i MPC zlewa się w jedno.

ZKP (Zero-Knowledge Proof) — udowadnia że coś jest prawdą bez ujawniania dlaczego.
MPC (Multi-Party Computation) — oblicza wynik wspólnie między N stronami bez centralnego serwera.
FHE — oblicza na zaszyfrowanych danych na pojedynczym serwerze — bez zaufanej strony trzeciej.

technologia co robi gdzie dane odszyfrowywane? zaufana strona? koszt przykłady
ZKP Dowodzi prawdziwości bez ujawniania danych nigdy — tylko dowód ✗ nie niski–średni zkSync, StarkNet, Zcash
MPC Oblicza wynik między N stronami u każdej strony (fragmenty) zależy wysoki (sieć) Fireblocks, Shamir Secret
TE / SGX Oblicza w izolowanym enklawie sprzętowym wewnątrz enklawu (sprzęt) ✓ Intel SGX niski Nym, Secret Network
FHE / HFHE Oblicza bezpośrednio na szyfrze nigdy ✗ nie wysoki* Octra, fhEVM (zama)

* HFHE na Octra osiąga 17k TPS dzięki masowej równoległości na hipergrafie. Szczegóły → sekcja 04.

Kiedy FHE, a kiedy ZKP?
ZKP jest tańsze i dojrzalsze — użyj do dowodzenia uprawnień (mam >18 lat, mam wystarczające saldo). FHE jest droższe, ale pozwala na pełne obliczenia — użyj do analizy zaszyfrowanych danych (model ML na zaszyfrowanych wynikach badań). W praktyce często uzupełniają się nawzajem.

02
schematy FHE

BGV · CKKS · TFHE · HFHE — czym się różnią?

Nie ma jednego "FHE" — to rodzina schematów. Każdy optymalizuje inny typ danych i zastosowanie. Wybór schematu ma fundamentalne znaczenie dla wydajności.

BGV
Brakerski, Gentry, Vaikuntanathan · 2011
Optymalny dla liczb całkowitych i arytmetyki modularnej. Standard w przemyśle — fundament Microsoft SEAL i OpenFHE.
daneliczby całkowite (Z_p)
SIMDtak (batching wielu wartości)
głębokośćograniczona (leveled FHE)
użyciebazy danych, ML inference
impl.Microsoft SEAL, OpenFHE
ePrint/IACR ↗
CKKS
Cheon, Kim, Kim, Song · 2017
Przybliżona arytmetyka liczb zmiennoprzecinkowych z akceptowalnym błędem zaokrąglenia. Idealny do ML i analizy statystycznej.
daneliczby rzeczywiste (przybliżone)
błądakceptowalny (jak float)
głębokośćograniczona
użycieneural networks, statystyki, genomika
impl.Google (genomika), IBM, Microsoft
ePrint/IACR ↗
TFHE
Chillotti, Gama, Georgieva, Izabachène · 2016
Bramki logiczne na zaszyfrowanych bitach. Ultra-szybkie bootstrapping (<0.1s/bit). Fundament fhEVM (zama.ai). Sekwencyjny — ograniczona równoległość.
danebity (bramki logiczne)
bootstrap~0.1s per bit
równoległośćograniczona (sekwencyjne bramki)
użyciezama.ai, fhEVM, Concrete ML
problemza wolne dla blockchain at scale
ePrint/IACR ↗
HFHE
Hypergraph FHE · Octra Labs · 2024
Zamiast sekwencyjnych krat algebraicznych — struktura hipergrafu. Masowa równoległość obliczeń FHE. Osiąga 17k TPS na testnecie. Nie jest peer-reviewed.
danect_int, ct_bool
równoległośćmasowa (hipergraf)
ct_mulbrak (ciphertext×ciphertext)
impl.C++ / libpvac (zamknięty)
statusmainnet alpha · weryfikacja w toku
Octra native ⚠ brak peer review

Dlaczego TFHE vs HFHE ma znaczenie?
TFHE wykonuje każdą bramkę logiczną sekwencyjnie — jak kalkulator z jednym przyciskiem na raz. HFHE przetwarza całe zestawy bramek równolegle przez hipergraf — jak wielordzeniowy procesor. Na praktycznym przykładzie: porównanie 1000 zaszyfrowanych ofert aukcji zajmuje w TFHE minuty. W HFHE — sekundy.

porównanie techniczne

HFHE vs CKKS vs TFHE — szczegółowo

Nie każde FHE nadaje się do blockchaina. Poniżej dlaczego Octra wybrała własny schemat zamiast adaptować istniejące.

właściwość CKKS TFHE HFHE (Octra)
typ danych liczby zmiennoprzecinkowe (przybliżone) bity / bramki logiczne liczby całkowite + bity (ct_int, ct_bool)
błąd obliczeń akceptowalny (jak float64) brak (dokładne) brak (dokładne — int)
paralelizm SIMD batching sekwencyjne bramki (bottleneck) masowa równoległość (hipergraf)
latencja bootstrapping ~1–10s ~0.1s / bit n/a (17k TPS testnet)
ct_mul (cipher × cipher) tak (noise grow) tak (NAND) brak — tylko plaintext×cipher
blockchain słabe (błąd przybliżenia) wolne (per-gate) zaprojektowane natywnie
peer review tak (IACR, IBM, Google) tak (IACR, zama.ai) w toku — closed-source
kiedy wybrać ML inference, genomika, statystyki EVM / fhEVM, logika boolean native Octra — aukcje, saldo zaszyfrowane, circles

* dane HFHE nieweryfikowalne zewnętrznie · TPS testnet · CKKS/TFHE: literatura IACR

03
tokenomika

OCT · wOCT · OU — jak to działa?

Trzy tokeny / jednostki które musisz rozumieć żeby korzystać z sieci.

natywny token
OCT
Opłaty za transakcje, deploy kontraktów, HFHE compute, nagrody walidatorów. Max supply: 1 000 000 000.
bazowa jednostka
OU
Octra Units — jak wei w Ethereum. 1 OCT = 1 000 000 OU. Wszystkie opłaty wyrażone w OU — eliminuje błędy zaokrągleń.
wrapped token (ERC-20)
wOCT
OCT na Ethereum. 1:1 z OCT. Handlowany na Uniswap v3. Bridge: bridge.octra.org. Trustless.
// tokenomika · OCT
$ jednostki:
  1 OCT = 1_000_000 OU // jak 1 ETH = 10^18 wei
  1 wOCT = 1 OCT     // wrapped, ERC-20 na Ethereum
 
$ supply:
  max_supply = 1_000_000_000 OCT
 
$ opłaty:
  deploy_contract: 200_000 OU // = 0.2 OCT
  transfer:       recommendedFee() OU
 
$ gdzie:
  OCT: wallet.octra.org // natywny portfel
  wOCT: Uniswap v3    // Ethereum mainnet
04
architektura octra

Cztery warstwy. Zero kompromisów.

Inne projekty nakładają FHE na gotowy blockchain jak plaster. Octra zaprojektowała każdą warstwę stosu pod zaszyfrowane obliczenia.

Circles
Izolowane środowiska aplikacji. Adresowane przez oct://circle_id/path. Zaszyfrowane zasoby (sealed) — serwer nigdy nie widzi zawartości. Jak kontenery Docker, ale na blockchain i zaszyfrowane.
OVM
Octra Virtual Machine. Język AML kompilowany do WASM. Natywne typy zaszyfrowane: ct_int, ct_bool. Kontrakty operują na szyfrach bez dostępu do plaintext.
HFHE Engine
Silnik kryptograficzny. C++ / libpvac (zamknięty kod). Operacje: ct_add, ct_sub, ct_gte, ct_and, ct_or, ct_not. Brak ct_mul w obecnej wersji. Hipergraf zamiast krat algebraicznych.
L1 Consensus
Warstwa konsensusu. Napisana w OCaml. Asynchroniczny, DAG-based. 17 000+ TPS na testnecie. Czas finalizacji <1s. Szczegóły protokołu konsensusu nie są w pełni opublikowane (alpha).

Octra vs fhEVM (zama.ai) — najczęściej zadawane pytanie.
fhEVM to pionierski projekt — ale FHE nakładane na EVM jako precompile. Każda operacja FHE to osobna transakcja Ethereum: ~10–50 TPS. Octra buduje L1 od zera gdzie FHE jest natywne: 17k TPS. Różne podejścia, różne kompromisy — fhEVM ma ekosystem Ethereum, Octra ma szybkość.

05
uczciwa ocena

Ryzyka — powinieneś je znać.

Nie jesteśmy stroną marketingową. Oto co jest niepewne i wymaga weryfikacji przed podjęciem decyzji o integracji lub inwestycji.

🔴
HFHE bez peer review
Schemat Hypergraph FHE opracowany przez Octra Labs nie przeszedł niezależnej weryfikacji kryptograficznej. Założenia o twardości problemu na hipergrafie nie są opublikowane w recenzowanych czasopismach akademickich. To największe ryzyko — twierdzenia o bezpieczeństwie są niezweryfikowane przez zewnętrznych ekspertów.
⚠️
Mainnet alpha — zamknięty kod
Sieć jest aktywna, ale oznaczona jako alpha. Kod źródłowy C++ libpvac jest zamknięty — niemożliwy do niezależnego audytu. Konsensus i szczegóły protokołu nie są w pełni opublikowane. Produkcyjne użycie wiąże się z ryzykiem.
⚠️
Brak ct_mul (mnożenie ciphertext×ciphertext)
Aktualna implementacja HFHE nie obsługuje mnożenia dwóch zaszyfrowanych wartości. Ogranicza to zastosowania — głęboka sieć neuronowa wymagająca mnożeń nie jest możliwa natywnie. Planowane w kolejnych wersjach. Obejście: plaintext × ciphertext jest możliwe.
Co jest potwierdzone i działa
wOCT istnieje i działa na Uniswap v3 (Ethereum mainnet).
octrascan.io działa i pokazuje transakcje w czasie rzeczywistym.
Portfel webowy i prywatne transfery są funkcjonalne.
17k TPS osiągnięto na testnecie (nie mainnet — podkreślamy tę różnicę).
Sealed aukcje i Circles działają na mainnecie alpha.
01
stack technologiczny

Architektura Octra — 4 warstwy.

Każda warstwa stosu jest zaprojektowana pod FHE — nie doklejona na gotowy blockchain.

Circles
Izolowane środowiska aplikacji. Adresowane przez oct://circle_id/path. Zasoby mogą być sealed (zaszyfrowane) lub public. Klient rozszyfrowuje lokalnie — serwer nigdy nie widzi plaintext.
OVM
Octra Virtual Machine. Język AML → WASM. Natywne typy: ct_int, ct_bool. Kontrakty operują na szyfrach bez dostępu do plaintext. Interfejs: JSON-RPC 2.0.
HFHE Engine
Silnik kryptograficzny. C++ / libpvac (zamknięty). Dostępne operacje: ct_add, ct_sub, ct_gte, ct_and, ct_or, ct_not. Brak ct_mul (ciphertext×ciphertext) — planowane.
L1 Consensus
Warstwa konsensusu. Napisana w OCaml. DAG-based, asynchroniczny. 17 000+ TPS na testnecie. Czas finalizacji <1s. Protokół nie jest w pełni opublikowany (alpha).
02
język AML

AppliedML — składnia i zasady krytyczne.

Własny język kontraktów Octra kompilowany do WASM. Składnia inspirowana Rust/OCaml. Natywne typy zaszyfrowane.

⚠ Terminologia: Oficjalna dokumentacja nazywa deployowalne jednostki "programami". Klient UI nadal pokazuje "contract". W kodzie AML — zawsze słowo kluczowe contract.
zasada✓ dobrze✗ źle
Słowo kluczowe contract Foo { } program Foo { }
Bool w state is_open: int // 0 lub 1 is_open: bool
Deploy fee ou=200000 (0.2 OCT) ou=1000
Opłata tx fee = recommendedFee × 1.5 fee = recommendedFee
Mnożenie FHE ct_add / ct_sub / ct_gte ct_mul(a, b) // crash
Read-only fn view fn get_count(): int fn get_count(): int
vault.aml — przykład produkcyjny
contract Vault {
  state {
    balance: ct_int
    owner:   address
    locked:  int      // bool jako 0/1 !
  }

  constructor() {
    self.owner   = origin
    self.balance = encrypt(0)
    self.locked  = 0
  }

  fn deposit() {
    require(caller == self.owner)
    require(self.locked == 0)
    // value = natywny OCT przesłany z transakcją
    self.balance = ct_add(self.balance, encrypt(value))
  }

  fn withdraw(amount: ct_int) {
    require(caller == self.owner)
    require(ct_gte(self.balance, amount))
    self.balance = ct_sub(self.balance, amount)
    send(caller, decrypt(amount))
  }

  fn lock() {
    require(caller == self.owner)
    self.locked = 1
  }

  view fn is_locked(): int { return self.locked }
}
03
hfhe engine

Operacje na zaszyfrowanych danych.

HFHE udostępnia 6 operacji na ciphertext. Znajomość ich ograniczeń to fundament projektowania kontraktów.

ct_add
ct_int + ct_int → ct_int
Dodawanie zaszyfrowanych liczb. Wynik zaszyfrowany. Podstawowa operacja — akumulowanie sald bez ujawniania wartości.
✓ dostępna
ct_sub
ct_int - ct_int → ct_int
Odejmowanie. Zawsze używaj po ct_gte — odejmowanie poniżej zera nie powoduje revert, daje błędny wynik.
✓ dostępna
ct_gte
ct_int ≥ ct_int → ct_bool
Porównanie bez odszyfrowywania. Kluczowa operacja — warunki, aukcje, saldo. Wynik to zaszyfrowany bool.
✓ dostępna
ct_and / ct_or / ct_not
ct_bool op ct_bool → ct_bool
Logika boolowska na zaszyfrowanych bitach. Używane do łączenia warunków i głosowania.
✓ dostępna
encrypt()
int → ct_int
Szyfruje plaintext. Używaj w constructor i do inicjalizacji ct_int pól.
✓ dostępna
ct_mul
ct_int × ct_int → ct_int
Mnożenie ciphertext × ciphertext. Nie zaimplementowane. Możliwe: plaintext × ciphertext przez wielokrotne ct_add.
✗ brak — planowane
Pattern: check → compute → update
Zawsze sprawdzaj warunek przez ct_gte przed ct_sub. Brak wbudowanego overflow protection w ciphertext arithmetic.
04
quickstart

Od zera do działającego kontraktu.

  1. Utwórz portfel

    Wejdź na wallet.octra.org lub klient CLI. Format adresu: oct + base58(sha256(pubkey)). Zapisz seed phrase offline — brak odzyskiwania.

  2. Pobierz testnet OCT

    Discord → #faucet → wyślij adres. Potrzebujesz minimum 0.2 OCT (200 000 OU) na deploy + margines na opłatę (~1.5× recommendedFee).

  3. Napisz i skompiluj AML

    W kliencie webowym: Dev Tools → compile contract. Wklej kod AML, kliknij compile → dostaniesz WASM bytecode. Pamiętaj: contract (nie program), bool jako int 0/1.

  4. Deploy

    Zakładka deploy contract, ustaw ou=200000. Dostaniesz adres kontraktu oct.... Lub przez RPC: POST /rpc, metoda octra_deployContract.

  5. Wywołaj i zweryfikuj

    Zakładka call contract: adres + nazwa funkcji. Metody view fn → tryb view (darmowe). Metody zmieniające stan → send call tx. Sprawdź na octrascan.io.

05
rpc api

JSON-RPC 2.0 — najważniejsze metody.

Jeden endpoint: POST /rpc. Parametry jako tablica pozycyjna — nie obiekt.

format żądania
POST /rpc
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "METHOD_NAME",
  "params": []   // tablica pozycyjna !
}
metodaparamsopis
node_status[]Epoka, TPS, czas bloku
octra_balance[address]Saldo OCT + raw OU + nonce
octra_nonce[address]Potwierdzony nonce
octra_submit[tx_json]Wyślij podpisaną transakcję
octra_transaction[hash]Stan tx: pending/confirmed/rejected
octra_deployContract[code, ou, from, fee, sig]Deploy kontraktu AML
octra_callContract[addr, fn, params, from, fee, sig]Wywołanie funkcji (write)
octra_viewContract[addr, fn, params]Read-only — bez opłaty i podpisu

view vs call: octra_viewContract to darmowe wywołanie read-only — nie wymaga podpisu ani opłaty. Używaj dla wszystkich view fn w kontraktach. octra_callContract zmienia stan — wymaga podpisanej transakcji i opłaty.