Blok zincirinde Sıfır Bilgi İspatı (Zero Knowledge Proof — ZKP) nedir?
İçindekiler
Halka açık blok zincirlerinin şeffaflığı, başarılarındaki büyük payını oluşturur. Ancak aynı anda hem şeffaflığı koruyup hem de gizliliği nasıl sağlayabilirsiniz? Halka açık blok zincirlerinde giderek daha fazla kullanılan sıfır bilgi ispatı (ZKP) yöntemi sayesinde bu mümkün olmaktadır.
Sıfır bilgi ispatı (ZKP), mesajın kendisi hakkında ek bilgi vermeden bir ifadenin doğruluğunu kontrol etmeyi sağlayan bir yöntemdir. ZKP kavramı ilk olarak 1985 yılında Shafi Goldwasser, Silvio Micali ve Charles Rakoff adlı araştırmacılar tarafından ortaya atılmış ve o zamandan beri çeşitli kriptografi ve blok zinciri teknolojisi projelerinde geliştirilmiş ve uygulanmıştır.
Protokol çerçevesinde, kanıtlayıcı herhangi bir ek veri sağlamadan ifadenin geçerliliğini doğrulayıcıya gösterir. ZKP’nin üç ana özelliği tamlık, sağlamlık ve sıfır bilgidir.
- Tamlık, kanıtın test ifadesinin doğru olmasını sağlama yeteneğini ifade eder.
- Sağlamlık, doğrulanabilir bir beyanın doğru olduğunu ve tahrif edilmediğini temin etmek için kanıtlama yeteneğini ifade eder.
- Sıfır bilgi, kanıtın test edilen iddia hakkında herhangi bir ek bilgi ortaya çıkarmaması anlamına gelir.
Etkileşimli ve etkileşimsiz olmak üzere ki ana tür sıfır bilgi ispatı vardır.
Etkileşimli ispatlar, ispatlayıcı ve doğrulayıcı arasında tekrarlayan etkileşimleri içerir. Doğrulayıcı, ispatlayıcının gerçek hakkındaki bilgisini tekrar tekrar göstermesini “gerektirir”. Doğrulayıcı, ispatlayıcının yalan söylemediğinden emin olana kadar süreç tekrarlanır.
Etkileşimsiz ispat, her iki tarafın da iletişim kurmasına gerek olmadığı ve ifadenin gerçekliğinin sonradan kanıtlanabileceği anlamına gelir.
Zk-SNARK ve zk-STARK, ZKP’nin en bilinen örnekleridir.
ZKP’nin başarılı bir şekilde uygulanmasına mükemmel bir örnek, işlemlerin gizliliğini ve anonimliğini sağlamak için zk-SNARK kullanan Zcash kripto para birimidir. ZKP kullanan bir diğer proje de merkezi olmayan türev borsası dYdX’tir. Proje, akıllı sözleşmeleri yürütmek için zk-STARK kullanıyor.
Ethereum kurucu ortağı Vitalik Buterin, ZK Proof’u blok zinciri platformlarını ölçeklendirmek için “en önemli teknoloji” olarak nitelendirdi.
Sıfır bilgi ispatı blok zincirinde nasıl çalışır?
İki tarafın bilgi alışverişi yapmak istediğini düşünün. Taraflardan biri, diğerinin beyanının doğruluğunu yeterince bilgi sahibi olmadan teyit etmelidir. Bu durumda, birinci tarafın ifadesini kanıtlayabilmesi için bazı eylemlerin mekaniğini geliştirmeniz gerekir. Dolayısıyla, ikinci taraf (doğrulayıcı) bunun gerçekliğini teyit edebilecektir.
ZKP’nin nasıl çalıştığını göstermek için bir durum hayal edelim. Siz ve arkadaşınız evin girişinde duruyorsunuz. İçeri girdiğinizde solda bir koridor (A) ve sağda bir koridor (B) görürsünüz. Hangi yolu seçeceğiniz isteğe bağlıdır, ancak bu koridorların bir noktada kilitli bir kapı ile birbirine bağlandığını unutmamanız gerekir. Kapının gizli şifresi sadece sizde var ama bir arkadaşınız bundan şüphe ediyor. Göreviniz, isim vermeden gizli kodun size ait olduğunu kanıtlamaktır. Görevi yerine getirmek için, siz kapıda olduğunuz anda bir arkadaşınız eve girer. Arkadaşınız, geri dönmeniz gereken A koridoru veya B koridorunu söyler. Ya kapıya giden aynı koridor boyunca geri dönersiniz ya da gizli bir kodla kilidi açar ve istenen koridora girersiniz. Deneyi birkaç kez tekrarlayarak, gerçek verileri, yani kapının gizli kodunu sağlamadan ifadenizin doğruluğunu teyit edeceksiniz.
Sıfır bilgi ispatlarının artıları ve eksileri nelerdir?
Sıfır bilgi ispatlarının avantajları şunlardır:
- Gizlilik. ZKP’nin en önemli avantajlarından biri, doğrulanmakta olan verilerin gizliliğini koruma yeteneğidir. İfadenin kendisi hakkında ek bilgi vermeden bilginin bütünlüğünü ve doğruluğunu doğrular.
- Özlük. Yöntem dahilindeki kanıtların oluşturulması hızlıdır, yani doğrulama süreci fazla zaman gerektirmemelidir.
- Etkileşimsizlik. ZKP’ler etkileşimsizdir, yani ispatlayıcının doğrulama işlemi sırasında doğrulayıcı ile iletişim kurmasına gerek yoktur.
- Doğrulama. ZKP’ler doğrulanabilirdir, yani herkes ek bilgiye ihtiyaç duymadan ispatı kontrol edebilir ve geçerliliğini teyit edebilir.
- Akıllı sözleşmelerle uyumluluk. ZKP, özel ve doğrulanabilir akıllı sözleşmeler oluşturmak için kullanılabilir.
Sıfır bilgi ispatlarının dezavantajları şunlardır:
- Karmaşıklık. ZKP’nin oluşturulması ve uygulanması karmaşık olabilir, yüksek düzeyde matematik bilgisi ve hesaplama kaynakları gerektirir.
- Zincir dışı üretim. ZKP’ler zincir dışında oluşturulur, bu da kötü niyetli aktörlerin sahte ispatlar oluşturma riski olduğu anlamına gelir.
- Sınırlı uygulanabilirlik. ZKP tüm veri türleri veya kullanım durumları için uygun değildir. Belirli türdeki sorunlar veya verilerle en iyi şekilde çalışır.
- Sınırlı ölçeklenebilirlik. ZKP hesaplama açısından yoğun olabilir ve büyük veri setleri için iyi ölçeklenemeyebilir.
- Kurulumda bir tröst gerektirir. ZKP, bir sıradan referans dizesinin (Common Reference String — CRS) oluşturulduğu bir kurulum aşaması gerektirir. Bu CRS gizli tutulmalıdır. CRS tehlikeye girerse, tüm sistemin güvenliği tehlikeye girebilir.
Zk-SNARK ve zk-STARK nedir?
Zk-SNARK (Zero-knowledge Succinct Non-interactive Argument of Knowledge), doğrulayıcı ve ispatlayıcı arasında tröst gerektiren, etkileşimli olmayan bir ZKP’dir. Özel işlemler için kanıtlar oluşturmak, protokolün koduna yazılan bir dizi genel parametre veya “kural” içerir.
Zk-SNARK’ın en canlı örneklerinden biri Zcash kripto para birimidir. Proje, işlemlerin gizliliğini ve anonimliğini sağlamak için zk-SNARK protokolünü kullanmaktadır. İkincisi, sıfır bilgi ispatları kullanılarak doğrulanırken ağ üzerinde şifrelenir. Mutabakat kurallarını takiben, doğrulayıcıların bir işlemi doğrulamak için işlemle ilgili tüm bilgileri bilmesine gerek yoktur.