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
- Zdefiniuj politykę: (age ≥ 18) ∧ (region ∈ EU) ∧ (not_sanctioned = true).
- Wygeneruj schema VC (W3C), parametry BBS+ i revocation list.
- Zbuduj obwód ZK (Circom) z wejściami prywatnymi (VC) i publicznymi (root, policyId, deadline).
- Wdróż kontrakt verifier (PLONK) i kontrakt polityki: isEligible(bytes proof, bytes32 nullifier).
- Dodaj context binding: hash(adres_kontraktu, chainId, userAddr, deadline) w public inputs.
- Po weryfikacji emituj EAS attestation z TTL (np. 30 dni) dla szybkich ścieżek.
- 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.

