Sıfır bilgi ispatı ya da yalnız "18 yaşından büyüğüm" demek
Sıfır bilgi ispatı bir ifadenin doğru olduğunu arkasındaki bilgiyi göstermeden kanıtlar. Neyi kanıtlar, neyi saklar, Tamga Wallet nasıl kullanır?
Yazan: Tamga Wallet ekibi6 dk okuma
Sıfır bilgi ispatı, bir ifadenin doğru olduğunu karşı tarafa, o ifadeyi doğru yapan bilgiyi göstermeden kanıtlayan bir matematik yöntemidir. Yaş kontrolünde site tek bir şey öğrenir: "bu kişi, şu kurumun verdiği belgeye göre 18 yaşından büyük". Doğum tarihin, adın, kimlik numaran ve belgenin kendisi telefonundan çıkmaz. Tamga Wallet bu ispatı telefonda, zaten elinde olan kimlik belgesinin üzerinde üretir; belgeyi veren kurumun hiçbir şeyi değiştirmesi gerekmez.
Bu yazı fikri anlatıyor. Uygulamada adım adım nasıl yapıldığı: Yaşını doğum tarihini göstermeden kanıtlamak.
Sıfır bilgi ispatı gündelik dille nedir?
Kalabalık resimlerin içinde bir kişiyi aradığın bulmaca kitaplarını düşün: dolu bir çift sayfa, aralarında bir yerde küçük bir kişi saklı. Arkadaşına onu bulduğunu kanıtlamak istiyorsun ama nerede olduğunu gösterip bulmacayı bozmak istemiyorsun.
Kitaptan çok daha büyük bir karton alıp ortasına küçük bir delik açarsın. Kartonu sayfanın üstüne, delikten yalnız o kişi görünecek şekilde koyarsın. Arkadaşın kişiyi görür, yani bulduğunu bilir. Sayfanın geri kalanını görmez, yani sayfanın neresinde olduğunu hâlâ bilmez.
Sıfır bilgi ispatı da böyle çalışır, karton yerine matematikle:
- İfade kanıtlamak istediğin şeydir: "kimlik belgemdeki doğum tarihi 18 yıldan eski", daha doğrusu "belgemde
age_over_18 = trueyazıyor". - Sır ifadeyi doğru yapan şeydir: belge, alanları ve kurumun belgedeki imzası.
- İspat karşı tarafın denetleyebildiği bir veri parçasıdır. İfade yanlış olsaydı denetimden geçen bir ispat üretmek pratikte imkânsız olurdu. İfade doğruysa denetim geçer ve ispat bunun ötesinde hiçbir şey söylemez.
Adı da buradan gelir: doğrulayıcı, ifadenin doğru olduğu dışında sıfır bilgi edinir.
Ne kanıtlanır, ne gizli kalır?
Sıfır bilgi ispatıyla yapılan yaş kontrolünde doğrulayıcının eline geçen ispat şunu gösterir:
- istenen türde bir belge var ve belgede
age_over_18 = trueyazıyor; - belge belirli bir kurumun anahtarıyla imzalanmış ve imza geçerli;
- belge, onu gösteren telefonun güvenli donanımındaki bir anahtara bağlı ve o anahtar tam bu oturumu imzalamış.
Doğrulayıcının eline doğum tarihi, ad, kimlik numarası, başka herhangi bir alan, belgenin kendisi ya da kurumun imza değeri geçmez.

Tablonun son satırı işin ince yanı. Cüzdan olağan imzalı bir belge gönderdiğinde, tek bir alan açılmış olsa bile kurumun imzası da gider. İmza benzersiz bir değerdir: iki site aynı imzayı alırsa aynı belgeden geldiğini anlar. Tamga Wallet bunu her doğrulayıcıya belgenin ayrı bir kopyasını, her birini kendi anahtarı ve imzasıyla vererek hafifletir (iki yer seni neden eşleştiremez). Ama kopyalar azalır ve yenilenmesi gerekir; iki kez girdiğin site de aynı kopyayı alır. Sıfır bilgi ispatında imza hiç yoktur. Bu yüzden aynı kişinin iki ispatı birbirine bağlanamaz ve tükenecek kopya da olmaz.
Neden yalnız "18 yaş üstü" alanını göndermiyoruz?
Tamga kimlik belgesinde zaten ayrı bir age_over_18 alanı var; site yalnız o alanı isteyebilir. Bu, kimlik kartının fotoğrafına göre büyük bir adım ve ispat yapılamadığında cüzdanın yaptığı da bu.
Fark, alanın yanında giden şeyde. Alan yönteminde site belgenin küçük, imzalı bir kopyasını alır: "evet" yanıtı, kimlik servisinin imzası ve onu denetlemek için gereken bilgiler. İspat yönteminde site yalnız denetimden geçen bir ispat alır. Onay ekranı bunu açıkça söyler: "Yalnız evet/hayır ispatı gönderilir; belge gösterilmez."
Tamga Wallet ispatı nasıl üretir?
İspat sisteminin adı Longfellow ZK. Google onu Temmuz 2025'te yaş doğrulaması için açık kaynak olarak yayımladı; temeli 2024 tarihli "Anonymous credentials from ECDSA" adlı araştırma makalesidir (Kaynaklar'da). Ağın karar kaydına göre proje Eylül 2026'da bağımsız bir vakfa geçti, üç bağımsız güvenlik incelemesinden geçti; AB'nin yaş doğrulama çalışması ve sıfır bilgili sunum için teknik şartnamesi de onun üzerine kurulu. "Güvenilir kurulum" töreni gerektirmez.
Longfellow, olağan bir ECDSA (ES256) anahtarıyla imzalanmış ISO mdoc biçimindeki belgeler üzerinde çalışır (mdoc nedir). Tamga kimlik belgesini SD-JWT VC sürümünün yanında mdoc olarak da verir; bu yüzden kurumun belgesinde ya da anahtarında hiçbir şey değişmez. Bu, ağda bilerek konmuş bir kuraldır: belge veren kurumlar bugün nasıl imzalıyorsa öyle imzalar, sıfır bilgi yalnız cüzdanda ve doğrulayıcıda yaşar.
Uygulamada:
- Bir site yaş doğrulaması ister. İstekte
age_over_18için sıfır bilgi ispatı ister (biçimin adımso_mdoc_zk). - Cüzdan, ispat yazılımının bu telefonda olduğunu ve gereken devrenin (neyin kanıtlandığını tarif eden program) Tamga Network'ün imzalı güven listesinde özetiyle yayımlanan devrelerden biri olduğunu denetler. Devre dosyaları ağdan indirilir ve kullanılmadan önce o özetle karşılaştırılır; bilinmeyen bir devre asla kullanılmaz.
- Onay ekranını görür, telefonunun kilidiyle onaylarsın. Telefon önce bu oturum için güvenli donanımdaki anahtarla olağan cihaz imzasını üretir, sonra belgeyi ve bu imzayı bir ispata çevirir.
- Doğrulayıcıya yalnız ispat gider. Ağın barındırılan doğrulayıcısı Tamga Verify'da bunun için canlı bir politika var (
age-over-18-zk); ispatı aynı kabul edilmiş devre listesine göre denetler.

Bir ispat yaklaşık 350 KB'tır. QR koda sığmaz; bu yüzden sıfır bilgili sunum çevrimiçi bir akıştır: bir site ya da istek bağlantısı, kapıdaki bir Bluetooth okuyucusu değil.
iPhone'da ya da ispat yapılamadığında ne olur?
İspat için telefonda yerel bir kütüphane gerekir. Bugünkü derlemelerde bu kütüphane Android için var; iPhone sürümü hâlâ hazırlanıyor. Telefon ispat üretemediğinde cüzdan daha fazlasını göstermeye dönmez. Ne olacağı isteğe bağlıdır:
- Site iki seçenek de sunuyorsa (ispat ya da tek "18 yaş üstü" alanı), cüzdan alanı seçer. Onay ekranı söyler: "Bu telefon evet/hayır ispatını henüz yapamıyor; yalnız seçili alanlar olağan yolla gönderilir." Site yine yalnız "evet" ya da "hayır" ile kimlik servisinin imzasını alır.
- Site yalnız ispat kabul ediyorsa, cüzdan durur ve bu doğrulayıcının yalnız evet/hayır ispatı kabul ettiğini, bu telefonun bu ispatı henüz üretemediğini söyler. Hiçbir şey gitmez.
- İspat üretimi yarıda kalırsa cüzdan "Evet/hayır ispatı oluşturulamadı. Hiçbir bilgi paylaşılmadı." der. Başarısız bir ispatın yerine belgeyi asla göndermez.
Her durumda doğum tarihin telefonunda kalır.
Sıfır bilgi ispatı neyi yapmaz?
Sınırları açıkça söylemek gerek:
- Belgeyi veren görünür. Doğrulayıcı belgeyi hangi kurumun verdiğini öğrenir. "Onaylı kurumlardan biri benim için kefil" demek, kurumu adıyla göstermeden, bugün Longfellow ile mümkün değil.
- İptal durumu ispatın içinde denetlenmez. Belgenin kurumun durum listesindeki yerini açmak ispatları yeniden bağlanabilir yapardı. Ağ, böyle bir ispatın yalnız kimlik belgesinin en çok 24 saat geçerli, belge iptal edilince yenilenmeyen kısa ömürlü kopyalarıyla yapılmasına karar verdi (AB mimarisinin kısa ömürlü belge yolu); bu henüz devrede değil. O zamana kadar iptal durumu denetlenemeyen bir ispatı kabul edip etmeyeceğine her doğrulayıcının politikası açıkça karar verir. Gizli bir iptal ispatı, AB şartnamesi bu konuyu netleştirince planlanıyor. İptalin olağan işleyişi: Bir belge iptal edilince telefonunda ne olur?
- Şimdilik tek ifade. Bugün ilk ve tek ifade "18 yaş üstü". Karar kaydı sırada "21 yaş üstü", uyruk ve eğitim belgelerinde kayıtlılık ya da mezuniyeti sayıyor. Aralıklar ("18 ile 25 arası") ispat sisteminde henüz yok.
- Belge hakkında kanıtlar, telefonu tutan kişi hakkında değil. İspatın içindeki cihaz imzası belgenin o telefonun donanım anahtarına bağlı olduğunu gösterir; her paylaşım da telefonunun kilidini ister. Ama telefonu kimin tuttuğunu kanıtlamaz.
Sık sorulan sorular
Sıfır bilgi ispatı şifrelemeyle aynı şey mi?
Hayır. Şifreleme veriyi gizler, doğru anahtarla sonra okunur ve okuyan her şeyi görür. Sıfır bilgi ispatı hiç "açılmaz": doğrulayıcı onu denetler ve yalnız ifadenin doğru olup olmadığını öğrenir.
Site ispattan doğum tarihimi çıkarabilir mi?
Hayır. İspat, kanıtladığı ifadenin ötesinde bilgi taşımayacak şekilde kurulur. Doğrulayıcı, adı belli bir kurumun verdiği geçerli bir belgede age_over_18 alanının doğru olduğunu öğrenir; başka bir şey değil.
Belgeyi veren kurumun sıfır bilgi ispatını desteklemesi gerekir mi?
Hayır. Kurum kimlik belgesini eskisi gibi imzalar. İspat cüzdanda üretilir, doğrulayıcıda denetlenir; kabul edilen devreler Tamga Network'ün imzalı güven listesinde yayımlanır.
iPhone'um neden "18 yaş üstü" alanını gönderiyor?
iPhone için ispat kütüphanesi henüz bitmedi. O zamana kadar site izin veriyorsa cüzdan tek alan yöntemini kullanır; bu yöntem de yalnız "evet" ya da "hayır" gönderir.
Sıfır bilgi ispatı kapıda Bluetooth ile gösterilebilir mi?
Bugün hayır. Bir ispat yaklaşık 350 KB, QR koda sığmaz; masada ya da kapıda cüzdan Yüz yüze göster rehberindeki yolları kullanır.
Kaynaklar
- ADR-0032: Sıfır bilgi ispatları (ZK), Tamga Network belgeleri
- Gizlilik kavramları, Tamga Network belgeleri
- Opening up "Zero-Knowledge Proof" technology to promote privacy in age assurance, Google, 3 Temmuz 2025
- M. Frigo, a. shelat: Anonymous credentials from ECDSA, Cryptology ePrint Archive 2024/2010
- Longfellow ZK kaynak kodu
- Yaşını kanıtla, Tamga Wallet rehberi
İlgili
- Yazı · GizlilikYaşını doğum tarihini göstermeden kanıtlamakSite yalnız "18 yaş üstü müsün?" diye sorarsa Tamga Wallet yalnız bu yanıtı kanıtlar. Doğum tarihin, adın ve belgenin kendisi gösterilmez.
- Yazı · StandartlarISO 18013-5 ve mdoc: belgeyi yüz yüze göstermekISO/IEC 18013-5, telefondaki belgeyi karşındaki okuyucuya Bluetooth ile, internetsiz göstermenin biçimini ve protokolünü (mdoc) tanımlar.
- Yazı · GizlilikAynı belgeyi iki yere göstermek: neden birbirine bağlanamaz?Tamga Wallet her doğrulayıcıya belgenin ayrı kopyasını, her siteye ayrı takma ad verir; iki yer kayıtlarını karşılaştırıp seni eşleştiremez.
- Yazı · KavramlarBir belge iptal edilince telefonunda ne olur?Kurumlar belgelerinin durumunu imzalı bir durum listesinde yayımlar. Cüzdanın listeyi kendisi denetler; kurum belgeni nerede gösterdiğini hiç öğrenmez.
- RehberYaşını kanıtlaBir site yalnız “18 yaş üstü” bilgisini isterse yalnız bu yanıt gider: sıfır bilgi ispatıyla adın, doğum tarihin ve belgenin kendisi gösterilmez.
Adım adım anlatım Rehber’de
Kurulumdan kayıp telefona kadar her şey, uygulamanın kendi ekranlarıyla.
Tamga Wallet'ı indir
App Store ve Google Play'de. Diplomanı, öğrenci belgeni, biletini telefonunda taşı.