Internet lagi bergerak ke arah yang agak serem: makin banyak website pengin tahu “lu siapa” sebelum ngasih akses.

Alasannya bisa masuk akal: cegah bot, cek umur, batasi abuse, atau patuh regulasi. Tapi kalau jawaban default-nya selalu “upload KTP”, “scan wajah”, atau “login pakai identitas asli”, web pelan-pelan berubah dari ruang terbuka jadi deretan checkpoint.

Artikel ini ngebahas Mozilla PACT, proposal anonymous credentials untuk web. Intinya: user bisa membuktikan atribut tertentu, misalnya “gua cukup umur” atau “gua punya hak akses”, tanpa harus membocorkan identitas mentah ke setiap website. Buat developer dan product builder, ini penting karena privacy yang bagus bukan berarti anti-verifikasi; privacy yang bagus berarti verifikasi dilakukan dengan data seminimal mungkin.

Apa itu Mozilla PACT?

PACT adalah proposal dari Mozilla untuk anonymous credentials di web. Anonymous credential itu sederhananya mekanisme buat membuktikan sesuatu tentang user tanpa selalu mengungkap seluruh identitas user.

Analogi gampangnya begini: lu mau masuk event yang butuh tiket. Petugas cuma perlu tahu tiket lu valid. Dia nggak harus tahu seluruh isi dompet lu, riwayat transaksi lu, alamat rumah lu, dan semua tempat yang pernah lu datangi.

Di web modern, banyak proses verifikasi masih terlalu kasar. Website minta data identitas lengkap padahal yang dibutuhkan cuma satu atribut kecil. Misalnya:

  • lu cukup umur untuk mengakses konten tertentu,
  • lu bukan bot massal,
  • lu sudah punya subscription aktif,
  • lu bagian dari organisasi tertentu,
  • atau lu belum melewati limit penggunaan layanan.

PACT mencoba membuka ruang desain yang lebih sehat: website dapat sinyal yang dibutuhkan, user nggak perlu menyebar identitas mentah ke mana-mana.

Kenapa ini relevan sekarang?

Isu age verification, bot traffic, spam, scraping, dan trust online lagi naik bareng. Banyak platform merasa butuh cara baru untuk membedakan user manusia, bot, anak di bawah umur, subscriber valid, atau akun abuse.

Masalahnya, solusi yang terlalu gampang sering berujung ke pengumpulan data sensitif. “Upload wajah lu dulu.” “Kasih ID pemerintah.” “Verifikasi lewat vendor identitas.” Dari sisi product, ini terlihat praktis. Dari sisi user, ini bisa jadi risiko jangka panjang.

Data identitas itu bukan sekadar field di database. Kalau bocor, salah pakai, atau disimpan terlalu lama, dampaknya bisa jauh lebih berat daripada email bocor. Wajah, dokumen identitas, dan pola akses bisa dipakai untuk tracking, profiling, atau penipuan.

Privacy yang bagus bukan berarti anti-verifikasi

Gua sering lihat diskusi privacy jadi biner: antara “bebas total tanpa verifikasi” atau “semua orang wajib buka identitas”. Menurut gua, dua-duanya terlalu malas buat level desain produk modern.

Verifikasi memang kadang perlu. Website yang diserang bot butuh defense. Produk subscription butuh memastikan akses cuma dipakai user yang berhak. Platform yang kena regulasi umur perlu mekanisme compliance.

Tapi pertanyaannya bukan cuma: “perlu verifikasi atau nggak?”

Pertanyaan yang lebih penting:

  • atribut apa yang benar-benar perlu dibuktikan?
  • siapa issuer yang dipercaya?
  • data apa yang disimpan website?
  • berapa lama data itu disimpan?
  • apakah verifikasi bisa dipakai lintas website untuk tracking?
  • apakah user punya cara revoke atau ganti credential?

Di sinilah anonymous credentials menarik. Ia menggeser desain dari “beri gua identitas lengkap lu” menjadi “buktikan atribut yang relevan saja”.

Contoh sederhana: verifikasi umur tanpa face scan di setiap website

Misalnya sebuah website cuma perlu tahu bahwa user sudah di atas batas umur tertentu. Dalam model yang kasar, website minta foto wajah atau dokumen ID langsung ke user. Website atau vendor pihak ketiga lalu menyimpan proses verifikasi itu.

Dalam model anonymous credential, idealnya user bisa mendapat credential dari issuer yang dipercaya. Setelah itu, saat mengakses website, user cukup membuktikan atribut “di atas umur tertentu” tanpa website menerima tanggal lahir lengkap, nomor ID, atau wajah mentah.

Ini bukan berarti semua problem langsung selesai. Issuer tetap perlu dipercaya. Revocation tetap sulit. Abuse handling tetap rumit. UX juga harus jelas supaya user paham apa yang sedang dibuktikan.

Tapi arah desainnya lebih masuk akal: minimalkan data yang keluar, bukan normalisasi pengumpulan identitas besar-besaran.

Pelajaran buat developer dan product builder

Buat gua, Mozilla PACT bukan cuma topik browser atau standar web. Ini pelajaran product engineering: jangan minta data sensitif hanya karena lebih gampang.

Kalau lu lagi bikin fitur verifikasi, anti-abuse, onboarding, atau akses premium, coba pakai checklist ini sebelum memilih solusi:

1. Tulis atribut yang benar-benar dibutuhkan

Jangan mulai dari “kita butuh KTP user”. Mulai dari pertanyaan: “apa yang perlu sistem ketahui?” Bisa jadi jawabannya cuma “user cukup umur”, “user punya entitlement aktif”, atau “user belum melewati quota”.

Semakin spesifik atributnya, semakin kecil data yang perlu dikumpulkan.

2. Pisahkan identitas dari hak akses

Banyak sistem mencampur dua hal: siapa user-nya dan apa yang boleh user lakukan. Padahal untuk banyak use case, produk nggak perlu tahu identitas asli; produk cuma perlu tahu hak akses atau status tertentu.

Contoh: untuk membaca artikel premium, sistem butuh tahu subscription valid. Ia belum tentu butuh tahu nama legal user.

3. Kurangi data retention dari awal

Kalau data tidak perlu disimpan, jangan disimpan. Kalau hanya perlu disimpan sementara, kasih TTL. Kalau perlu audit, simpan event seminimal mungkin.

Data sensitif yang “mungkin berguna nanti” sering berubah jadi liability. Apalagi kalau produk makin besar dan akses internal makin banyak.

Kalau user nggak bisa paham apa yang dibuktikan dan ke siapa, UX verifikasi itu gagal. Jangan sembunyi di balik bahasa legal.

Kalimat seperti “kami memproses data untuk meningkatkan pengalaman” terlalu kabur. Lebih baik jujur: “Website ini butuh bukti bahwa lu di atas 18 tahun. Website tidak menerima tanggal lahir lengkap.”

5. Jangan jadikan privacy sebagai fitur belakangan

Privacy susah ditambal belakangan karena menyentuh arsitektur data, vendor, log, analytics, support, dan compliance. Kalau dari awal sistem sudah menyimpan identitas mentah di banyak tempat, migrasinya mahal.

Kenapa ini penting buat personal website, komunitas, dan produk kecil?

Lu mungkin mikir: “Ini kan urusan browser besar dan regulator. Gua cuma bikin website kecil.”

Menurut gua justru produk kecil perlu mikir dari awal, karena salah arsitektur data bisa jadi beban saat produk tumbuh. Banyak builder indie terlalu cepat menambahkan login, analytics, tracking, dan verification vendor tanpa bertanya apakah semua itu perlu.

Untuk personal website, komunitas kecil, atau SaaS kecil, prinsipnya bisa sederhana:

  • jangan kumpulkan data yang nggak dipakai,
  • jangan simpan identitas mentah kalau cukup pakai status/entitlement,
  • jangan kirim data user ke vendor hanya karena integrasinya gampang,
  • dan jangan buat user membayar akses dengan privacy lebih besar dari yang diperlukan.

Mozilla PACT memberi bahasa teknis untuk prinsip itu: selective disclosure, anonymous credentials, dan data minimization.

Counterpoint: anonymous credentials bukan silver bullet

Biar nggak kebablasan hype, anonymous credentials juga punya tantangan besar.

  • Issuer trust: siapa yang berhak mengeluarkan credential?
  • Revocation: gimana cara membatalkan credential yang sudah tidak valid tanpa membuka tracking baru?
  • Abuse handling: gimana mencegah satu credential dipakai untuk spam massal?
  • UX: user awam harus paham apa yang dibuktikan.
  • Adoption: browser, platform, regulator, dan developer harus sepakat cukup banyak agar ekosistemnya jalan.

Jadi jangan baca PACT sebagai “solusi final untuk age verification”. Lebih aman dibaca sebagai arah desain: kalau web butuh trust signal, jangan otomatis mengorbankan identitas user.

Takeaway praktis

  • Verifikasi online makin penting, tapi pengumpulan identitas mentah bukan satu-satunya jalan.
  • Anonymous credentials memungkinkan user membuktikan atribut tertentu tanpa membocorkan seluruh identitas.
  • Developer harus mulai desain dari atribut yang dibutuhkan, bukan dari dokumen identitas yang paling gampang diminta.
  • Data minimization bukan jargon compliance. Itu cara mengurangi risiko produk.
  • Privacy yang sehat bukan anti-security. Privacy yang sehat bikin security tetap jalan tanpa surveillance berlebihan.

FAQ singkat

Apa itu anonymous credentials?

Anonymous credentials adalah mekanisme untuk membuktikan atribut tertentu tanpa selalu mengungkap identitas lengkap user. Contohnya membuktikan “cukup umur” tanpa memberi tanggal lahir lengkap ke setiap website.

Apakah Mozilla PACT sudah jadi standar final?

Belum. PACT adalah proposal/desain yang sedang dibahas sebagai bagian dari arah web yang lebih private di era bot, age verification, dan trust signal.

Apakah ini berarti website nggak boleh verifikasi user?

Bukan. Intinya bukan menolak verifikasi, tapi membuat verifikasi lebih proporsional: bukti yang diminta sesuai kebutuhan, data yang disimpan seminimal mungkin.

Kenapa developer perlu peduli?

Karena keputusan verifikasi adalah keputusan arsitektur data. Salah desain bisa bikin produk menyimpan data sensitif yang mahal diamankan dan berisiko kalau bocor.

Penutup

Gua suka angle PACT karena dia nggak berhenti di “internet makin serem”. Dia ngasih arah teknis yang lebih dewasa: web tetap bisa melawan bot, abuse, dan akses ilegal tanpa mengubah semua user jadi objek surveillance.

Buat builder, pelajarannya simpel: sebelum minta data sensitif, tanya dulu apakah produk lu benar-benar butuh data itu. Kadang yang lu butuh cuma bukti kecil. Jangan minta seluruh identitas user cuma karena formulirnya gampang dibuat.

Kalau artikel ini kepakai, simpan buat bahan diskusi pas tim lu mulai ngomongin verifikasi user, age check, atau anti-abuse. Follow rafli.dev kalau lu mau insight tech yang jujur, relatable, dan anti-bullshit.

Referensi / Bacaan Lanjut