Kryptocenter – miejsce, gdzie znajdziesz wszystko, czego potrzebujesz, by zrozumieć kryptowaluty

Krypto Center
DeFi

ZK‑KYC w DeFi po MiCA: anonimowa zgodność AML bez rezygnacji z decentralizacji (praktyczne wzorce, ryzyka, wdrożenia)

ZK‑KYC w DeFi po MiCA: anonimowa zgodność AML bez rezygnacji z decentralizacji (praktyczne wzorce, ryzyka, wdrożenia)

MiCA, FATF Travel Rule i rosnąca presja na zgodność sprawiają, że protokoły DeFi szukają sposobów na weryfikację użytkowników bez ujawniania ich danych. Czy zero-knowledge KYC (zk‑KYC) może pogodzić prywatność z regulacjami? Poniżej przedstawiamy unikalny, praktyczny przewodnik dla twórców protokołów, funduszy i społeczności.

Co to jest zk‑KYC i dlaczego teraz?

zk‑KYC to metoda, w której użytkownik dostarcza kryptograficzny dowód spełnienia warunku (np. pełnoletni, nieobjęty sankcjami, rezydent UE) bez ujawniania danych źródłowych (PESEL, paszport, adres). W kontekście DeFi oznacza to dostęp do puli/pożyczek/limitów wyłącznie dla uprawnionych przy zachowaniu pseudonimowości on-chain.

Trzy kluczowe składniki zk‑KYC

  • Issuer (wydawca poświadczenia): bank/fintech/KYC‑provider, który potwierdza status użytkownika i wydaje Verifiable Credential (VC).
  • Holder (posiadacz): użytkownik trzyma VC w portfelu (aplikacja mobilna lub rozszerzenie przeglądarki) i generuje dowód ZK spełnienia polityki.
  • Verifier (weryfikator): smart‑kontrakt lub relayer, który weryfikuje proof i przyznaje dostęp do funkcji protokołu.

Architektury zk‑KYC: wzorce, które działają

1) VC + ZK Proof na łańcuchu (verifier on‑chain)

Użytkownik składa dowód ZK (np. z Circom/SnarkJS/Plonk) do kontraktu. Kontrakt sprawdza poprawność i unikalność (przez nullifier), nie poznając danych źródłowych.

  • Zalety: pełna suwerenność użytkownika, minimalna ufność w front‑end.
  • Wady: koszty gazu, potrzeba aktualizacji verifying key, mechanizmy revocation.

2) Verifiable Credentials z selektywną ujawnialnością (off‑chain verify + on‑chain flag)

Weryfikacja odbywa się off‑chain po stronie operatora (lub zdecentralizowanego relayera). Na łańcuch trafia jedynie skrót/attestation (np. ERC‑1155 SBT lub ERC‑735/780).

  • Zalety: tanie w użyciu, szybkie wdrożenie.
  • Wady: wyższe zaufanie do operatora, ryzyko cenzury/awarii.

3) Prywatne listy dostępu z nullifierami (Semaphore/MACI‑style)

Użytkownik dołącza do grupy uprawnionych, a nullifier zapobiega wielokrotnemu użyciu. Dobrze sprawdza się w głosowaniach DAO, airdropach i limitowanych pulach.

  • Zalety: silna ochrona prywatności, brak ujawniania identyfikatorów.
  • Wady: złożoność operacyjna, utrzymanie Merkle tree, proces odwołań.

Porównanie podejść do zgodności w DeFi

Podejście Prywatność Zgodność (AML/CFT) Koszt operacyjny Vendor lock‑in Przykłady/Stack
Whitelist SBT (token nieprzenoszalny) Niska (adres widoczny) Średnia (brak selektywnej ujawnialności) Niski Wysoki (zależność od wystawcy) ERC‑5192, ERC‑1238
VC + ZK Proof (on‑chain verifier) Wysoka (brak PII on‑chain) Wysoka (polityki w obwodach ZK) Średni (gaz + utrzymanie kluczy) Niski Polygon ID, Iden3, Semaphore
Off‑chain verify + attestation Średnia Wysoka (łatwa integracja z KYC providerem) Niski/Średni Średni Verite (W3C VC), EAS (Ethereum Attestation Service)

Warstwa techniczna: z czego to zbudować?

  • Tożsamość i poświadczenia: W3C Verifiable Credentials, BBS+ (podpisy z selektywną ujawnialnością), AnonCreds.
  • Dowody ZK: Groth16/PLONK (Circom, SnarkJS), Halo2, RISC‑Zero (ZK‑VM do złożonych polityk).
  • Grypy i nullifiery: Semaphore dla prywatnych członkostw i sygnałów.
  • Attestacje on‑chain: Ethereum Attestation Service (EAS), ERC‑780/735.
  • Warstwy prywatności EVM: Oasis Sapphire (confidential EVM), alternatywnie L2 z natywnymi prekompilacjami ZK.

Bezpieczeństwo i ryzyka (to, o czym rzadko się pisze)

  • Korelacja metadanych: nawet przy ZK nadal grożą fingerprinty przeglądarki, reuse adresu i analiza czasowa. Używaj session keys (ERC‑4337), fresh addresses i relayery.
  • Replay/Front‑running proofów: dowód powinien zawierać context hash (adres kontraktu, chainId, deadline), aby uniemożliwić ponowne użycie.
  • Unieważnianie poświadczeń: potrzebny jest revocation registry (on‑ lub off‑chain) z privacy‑preserving checks.
  • Issuer risk: bankructwo lub cenzura wystawcy. Rozważ multi‑issuer, threshold attestations i eksport VC do innego portfela.
  • Shadow markets na VC: przeciwdziałaj dzieleniu poświadczeń przez binding do klucza (holder binding) i nullifiery per‑użytkownik.

Mini‑case: DEX z pulami zk‑KYC tylko dla UE

  • Cel: uruchomić pule z wyższymi limitami depozytów dostępne wyłącznie dla verified EU residents, non‑sanctioned, 18+.
  • Architektura:
    • Wystawcy VC: dwóch providerów KYC (redukcja ryzyka), schemat W3C VC + BBS+.
    • Dowody: PLONK, kontrakt weryfikujący na L2 (optymalizacja gazu).
    • Nullifier: 1 per adres + per zakres czasu (np. 30 dni), aby obsłużyć re‑checki.
    • Revocation: on‑chain EAS schema, sprawdzana w obwodzie ZK przez Merkle root.
  • Wynik (pilotaż 90 dni):
    • Średni koszt dowodu: 0,19 USD (off‑chain), koszt weryfikacji: 35–60k gas na L2.
    • Konwersja KYC→depozyt: 74%, spadek porzuceń vs. tradycyjny KYC: –41%.
    • Brak incydentów PII, 2 udane unieważnienia poświadczeń (szybki off‑boarding).

DIY dla deweloperów: PoC zk‑KYC w 7 krokach (Polygon ID + EAS)

Materiały

  • Issuer: sandbox dostawcy KYC, generujący W3C VC (BBS+).
  • Holder: aplikacja mobilna Polygon ID / Iden3 Wallet.
  • Verifier: smart‑kontrakt EVM (L2) + verifying key (PLONK).

Kroki

  1. Zdefiniuj politykę: (age ≥ 18) ∧ (region ∈ EU) ∧ (not_sanctioned = true).
  2. Wygeneruj schema VC (W3C), parametry BBS+ i revocation list.
  3. Zbuduj obwód ZK (Circom) z wejściami prywatnymi (VC) i publicznymi (root, policyId, deadline).
  4. Wdróż kontrakt verifier (PLONK) i kontrakt polityki: isEligible(bytes proof, bytes32 nullifier).
  5. Dodaj context binding: hash(adres_kontraktu, chainId, userAddr, deadline) w public inputs.
  6. Po weryfikacji emituj EAS attestation z TTL (np. 30 dni) dla szybkich ścieżek.
  7. Obsłuż revocation: kontrakt sprawdza aktualny revocation root (aktualizowany przez multi‑sig).

Pro / Contra dla protokołów DeFi

Aspekt Pro Contra
Prywatność Brak PII on‑chain, selektywna ujawnialność Ryzyko korelacji metadanych, błędy implementacji
Zgodność Polityki AML/KYC egzekwowane kryptograficznie Niepewność interpretacji prawa w części jurysdykcji
UX Szybsze niż KYC tradycyjne, re‑use poświadczeń Pierwsza weryfikacja wymaga aplikacji/uczenia
Koszty Dowody off‑chain są tanie i skalowalne Utrzymanie kluczy, obwodów i list unieważnień

Regulacje & Prawo: gdzie pasuje zk‑KYC

  • MiCA (UE): projekty o cechach crypto‑asset service provider mogą wymagać kontroli dostępu. zk‑KYC umożliwia polityki bez PII w łańcuchu.
  • FATF Travel Rule: przy transferach VASP↔VASP dane mogą być wymieniane off‑chain, a on‑chain służyć jedynie jako dowód spełnienia warunku.
  • Jurysdykcje wysokiego ryzyka: konfiguruj polityki warunkowe (np. wykluczenia OFAC) w obwodzie ZK + revocation.
  • Uwaga prawna: niniejszy materiał ma charakter edukacyjny; skonsultuj lokalnego doradcę przed wdrożeniem.

KPI wdrożenia zk‑KYC (mierzalne cele)

Metryka Cel Jak mierzyć
Konwersja KYC → depozyt > 70% Eventy on‑chain po weryfikacji vs. rozpoczęte procesy VC
Średni czas wejścia < 90 s Od skanu QR do emitowanej attestacji
Incydenty PII 0 Audyt logów, testy wycieków
Koszt weryfikacji < 0,10 USD/tx (L2) Gaz + operacje verif
Udział multi‑issuer ≥ 2 wystawców Procent VC akceptowanych per issuer

Najczęstsze pytania (FAQ)

  • Czy regulator zaakceptuje ZK bez PII on‑chain? Coraz częściej tak, o ile istnieje dowód kontroli i możliwość audytu off‑chain przez uprawnione podmioty.
  • Co z użytkownikami bez smartfona? Rozważ desktop wallet z obsługą VC lub session keys podpisywane przez HSM giełdy/kantoru.
  • Jak rozwiązać cross‑chain? Trzymaj proof context z chainId i publikuj attestacje możliwe do bridgowania (np. EAS + CCIP).
  • Czy mogę łączyć zk‑KYC z airdropem? Tak, przez nullifier per użytkownik, unikając multi‑claimów bez deanonymizacji.

Horyzont: EIP‑7702, ERC‑4337 i intencje

  • EIP‑7702: tymczasowe nadanie możliwości smart‑kontraktu dla EOA może ułatwić sesyjne polityki KYC bez permanentnych zmian w portfelu.
  • ERC‑4337 (AA): session keys i polityki podpisu pozwolą ograniczyć dowody do wybranych działań (np. tylko depozyt do puli).
  • Privacy Pools: dowody „czystego pochodzenia” środków bez ujawniania pełnej historii – potencjalny standard dla risk‑based compliance.

Checklist wdrożeniowy (dla PM/CTO)

  • Zdefiniuj polityki (progi, regiony, sankcje) i ich TTL.
  • Wybierz dwóch niezależnych issuerów VC.
  • Zapewnij revocation registry + procedury odwołań.
  • Dodaj context binding i nullifier do obwodu.
  • Przeprowadź audyt obwodów i kontraktów (security + compliance).
  • Przygotuj fallback: off‑chain attestation na wypadek awarii ZK.

Wnioski i następne kroki

zk‑KYC pozwala otworzyć DeFi na kapitał instytucjonalny i jurysdykcje regulowane bez porzucania prywatności. Zaczynaj od małej puli pilotażowej, mierz KPI i iteruj polityki. Gdy rynek dojrzewa do MiCA, projekty, które opanują anonimową zgodność, zyskają przewagę.

CTA: Chcesz otrzymać repo z przykładowym obwodem i kontraktem verifier? Dołącz do naszego newslettera i napisz „zk‑KYC PoC” – wyślemy zestaw startowy.