Zero-Knowledge Proofs (Sıfır Bilgi İspatı), kanıtlayıcı ve doğrulayıcı olmak üzere iki taraf arasında gerçekleşen işlemlerle ilgili bir doğrulama yöntemini ifade eder.
Zero-Knowledge proof kavramı ilk olarak 1985 yılında Shafi Goldwasser ve Silvio Micali tarafından yayınlanan “The Knowledge Complexity of Interactive Proof Systems (Etkileşimli İspat Sistemlerinin Bilgi Karmaşıklığı)” adlı makalede kullanılmıştır. ZKP yönteminde kanıtlayan (prover) ve doğrulayan (verifier) olmak üzere iki taraf vardır. Ayrıca işlemin iki tarafı arasında verinin içeriği ve veri hakkında herhangi bir bilgi açıklanmaz. Başka bir ifadeyle kanıtlayan ve doğrulayan olmak üzere iki taraf arasında iletilen veri hakkında sadece verinin doğru olduğu bilgisi vardır ve bu bilgi dışında herhangi bir bilgi verilmez. Sıfır bilgi ispatı yönteminin mantığı, bilginin ifşa edilmeden ya da açıklanmadan kanıtlanmasına dayanmaktadır. Böylelikle güvenlik seviyesi en üst seviyeye çıkarılır.
ZKP yönteminde kanıtlayan, bilginin doğruluğunu kanıtlamalıdır. Buna karşılık olarak doğrulayan ise doğru bilgi aldığı konusunda ikna olmalıdır. Bu nedenle doğrulayan, kanıtlayan tarafı tüm bilgileri doğru bildiğinde gerçekleştirebileceği birçok test ile değerlendirir. Doğrulayan bu test etme sürecini defalarca kez tekrarlar ve kanıtlayanın bilgiyi gerçekten bilip bilmediği konusunda kanıtlayanı test eder.
Zero-Knowledge Proof üç temel önkoşulu barındırır:
- Tamlık
- Sağlamlık
- Sıfır bilgi
Tamlık
Eğer ifade edilen veri girdisi doğruysa, doğrulayıcı, kanıtlayanın gerekli girdiye sahip olduğunu onaylar. Tamlık, kanıtlayanın ilgili bilgilerin doğruluğunu yüksek bir olasılıkla gösterebilme yeteneğini ifade eder.
Sağlamlık
İfade edilen veri girdisi değişiklik veya manipülasyonlara karşı korunur. Doğrulayan, kanıtlayanın ilgili girdilere sahip olmadığı durumlarda bile kanıtlayıcının bu bilgilere sahip olduğuna ikna edilemez. Kanıtın güvenilir olması için doğrulayan, kanıtlayanın gerçekten bilgiye sahip olup olmadığını sağlam bir şekilde belirleyebilmelidir.
Sıfır Bilgi
Doğrulayıcı herhangi bir bilgiye sahip değildir ve sadece ifadenin doğru ya da yanlış olduğunu bilir. İfadenin gerçekten sıfır bilgi olabilmesi için kanıtın, bilgi kanıtlayan ile doğrulayan arasında paylaşılmadan tamlığa ve sağlamlığa erişmesi gerekir.
Zero-Knowledge proof, genellikle gizlilik ve güvenlik gerektiren uygulamalarda kullanılır. Örnek vermek gerekirse, bir kişinin bir bilgisayar sistemine, şifresi olduğunu doğrulamak için şifrenin ne olduğunu açıklamadan sıfır bilgi kanıtları kullanılabilir.
Zero-Knowledge proof’un kullanımı, kripto varlıklarda ve blockchain teknolojisinde görülebilir. Gizlilik odaklı kripto varlık birimleri olan Zcash gibi projeler, ZKP’leri kullanarak kullanıcılarına gelişmiş gizlilik seviyeleri sunar. Aynı şekilde, Ethereum’da 2017'deki Byzantium güncellemesinden bu yana ZKP kullanarak çalışır.
Etkileşimli ZKP, kanıtlayanın belirli bilgilere sahip olduğuna doğrulayanı ikna etmek için bir dizi görev veya eylemin tamamlanmasını içerir. Bu görevler genellikle matematiksel olasılık kavramlarını kapsar. Etkileşimsiz ZKP ise kanıtlayan ve doğrulayan arasında herhangi bir etkileşim beklemez.
Blockchain’de Zero-Knowledge Proof Nasıl Kullanılır?
Blockchain içerisinde gerçekleştirilen işlemlerde, işlem detayları ağda bulunan diğer katılımcılar arasında görülebilir. Buna karşılık ZKP, varlıkların blockchain içerisinde gizlilikle aktarılmasını sağlar. ZKP ile gerçekleştirilen işlemlerde, işlemin iki tarafı dışında geri kalan ağ katılımcıları sadece işlemin geçerliliği hakkında bilgi sahibi olabilir.
Privacy coin’ler, gizlilik odaklı olarak oluşturulur ve zero-knowledge proof yöntemini kullanan ilk kripto varlık uygulamaları olarak kabul edilir. Gizlilik odaklı olan blockchain ağları, zero-knowledge proof yöntemini kullanarak, node’ların verilere erişim sağlamasına ihtiyaç duymadan işlemleri doğrulamasını sağlar. Başka bir ifadeyle iki tarafın adresleri, varlığın türü, miktarı ve gerçekleştirilen işlem zamanı gibi işleme ait ayrıntılı bilgiler gizli kalır. Zero-Knowledge proof, Ethereum Layer-2 ölçeklendirme çözümleri için de kullanılır. Başka bir ifadeyle ZKP, bir işlemde bulunan veri miktarının azaltılması amacıyla kullanılır. Böylelikle ölçeklenebilirlik artırılabilir.
Zero-Knowledge Proof Avantajları Nelerdir?
ZKP’lerin bazı avantajları bulunur:
- Basitlik
- Mahremiyet
- Güvenlik
- Ölçeklenebilirlik
Basitlik
ZKP, basit kabul edilir çünkü herhangi bir karmaşık şifreleme yöntemleri gerektirmez.
Mahremiyet
ZKP, halka açık blockchain’lerde kişisel bilgilerin açığa çıkmasının önüne geçmek için kullanıcıların gizliliğini veya mahremiyetini sağlar.
Güvenlik
ZKP, etkisiz kimlik doğrulama yöntemleri üzerinde değişiklik sağlayarak bilgi güvenliğinin güçlenmesini sağlar.
Ölçeklenebilirlik
ZKP, blockchain veriminin ve ölçeklenebilirliğinin arttırılmasını sağlar.
Zero-Knowledge Proof Dezavantajları Nelerdir?
ZKP’lerin birkaç dezavantajı vardır:
- Sınırlılık
- Büyük miktarda işlem gücü ihtiyacı
- Kısıtlılık
- Güvenlik açığı
Sınırlılık
ZKP’lerin protokolleri genellikle matematiksel denklemler ve sayısal cevapları kapsar.
Büyük Miktarda İşlem Gücü İhtiyacı
Her ZKP işlemi için belirli bir süre gerektiren yaklaşık 2000 hesaplama bulunur.
Kısıtlılık
İşlemi oluşturan, işlem bilgilerini unutursa, işlemle ilgili verilerin hepsi kaybolur.
Güvenlik Açığı
ZKP’lerin ileri teknolojilere karşı potansiyel güvenlik açığı vardır.