Zero-knowledge proof ya da Türkçesiyle sıfır bilgi ispatı, uzun yıllardır uygulanan ancak blockchain teknolojisinin gelişmesiyle iyice popülerlik kazanan bir kriptografi protokolüdür. İlk kez 1985 yılında Shafi Goldwasser ve Silvio Micali tarafından yayımlanan “The Knowledge Complexity of Interactive Proof Systems (Etkileşimli İspat Sistemlerinin Bilgi Karmaşıklığı)” başlıklı makalede ortaya atılan sıfır bilgi ispatı kavramı, bir verinin açıklanmadan iki taraf arasında doğrulanabilmesini sağlar. Veriyi veren, işlemin diğer tarafına yalnızca verinin doğru olduğu bilgisini verir ve diğer taraf, verinin içeriğini bilmeden buna ikna olur.
Peki sıfır bilgi ispatı, verinin ifşa edilmesini gerektirmeden doğrulamayı nasıl başarır? Bu makalede, “Sıfır bilgi ispatı nedir?” sorusuna cevap verecek ve sıfır bilgi ispatı modelinin nasıl çalıştığına değineceğiz.
Sıfır Bilgi İspatı Nedir?
Sıfır bilgi ispatı, hiçbir verinin (doğal olarak parolanın) açığa çıkarılması gerekmeden tamamlanabilen bir doğrulama sürecidir. Bu süreçte “kanıtlayan (prover)” ve “doğrulayan (verifier)” olmak üzere iki taraf bulunur. İşlemin tamamlanması için bu iki taraf arasında, ilgili verinin içeriğine dair herhangi bir bilginin açıklanması gerekmez. Paylaşılan tek bilgi, verinin doğru olduğu bilgisidir. “Sıfır bilgi” ismi de buradan gelir.
Peki doğrulayan, yani işlemin alıcı tarafı, verinin doğru olduğu bilgisine onun içeriğini görmeden nasıl inanacak? Sıfır bilgi ispatı modelinin “ispat” bölümü işte burada devreye girer. Sıfır bilgi ispatı modelinde kanıtlayan, doğrulayana, veriye sahip olduğuna dair bir ispat sunmalıdır. Bu ispat sunulursa, verinin içeriği açıklanmadan iki tarafın da ilgili veriye sahip olduğu anlaşılır ve işlem doğrulanabilir. Bir başka deyişle, sıfır bilgi ispatı modelinde doğrulama, verilerin içeriği kontrol edilerek değil, iki tarafın da ilgili veriye sahip olup olmadığı kontrol edilerek sağlanır.
Bu sistem, ilk başta kulağa karmaşık gelebilir. Ancak sıfır bilgi ispatı modeli, çok yaygın ve açıklayıcı bir analojiyle kolayca anlaşılır. Şimdi gelin, “Ali Baba Mağarası” analojisiyle sıfır bilgi ispatı modelinin nasıl çalıştığını anlayalım.
Ali Baba Mağarası
Esra ve Mustafa, halka şeklinde bir mağara bulmuştur. Bu mağaraya girdikten sonra tek bir yol vardır. Ancak bu yol, tam mağaranın ortasında, sihirli bir kapıyla ikiye kapatılmıştır. Yani mağaraya girip geri dönmeden, yolu tamamlayarak çıkabilmek için bu sihirli kapıyı aşmak gerekmektedir.
Esra, sihirli kapıyı açan gizli kelimeyi bildiğini iddia eder ama bu kelimeyi Mustafa’yla paylaşmak istemez. Mustafa ise Esra’nın bu gizli kelimeyi gerçekten bilip bilmediğini öğrenmek ister. Bu yüzden Esra ve Mustafa, sihirli kapıyla ikiye bölünmüş yolun sol tarafına A yolu, sağ tarafına B yolu derler.
Ardından Esra, Mustafa onun hangi yolu seçtiğini görmeden rastgele bir yol seçer. Esra’nın peşinden Mustafa mağaraya girer ve Esra’nın geri dönmek için hangi yolu kullanmasını istediğini bağırarak ona iletir. Esra gerçekten gizli kelimeyi biliyorsa, Mustafa’nın istediği yolu kullanarak geri dönmekte sorun yaşamaz. Ancak bilmiyorsa, sihirli kapıyı açamayacak ve kendi girdiği yoldan geri dönmek zorunda kalacaktır.
Fakat burada bir sorun söz konusudur: Mustafa, Esra’yı sadece bir kez çağırırsa, yüzde 50 ihtimalle Esra’nın zaten girdiği yoldan dönmesini talep edebilir. Örneğin, Esra, A yolundan mağaraya girmiş olsun. Mustafa, Esra’nın A yolundan dönmesini isterse, Esra’nın sihirli kapıyı aşması gerekmez. Bu yüzden bu etkinlik birden fazla kez tekrarlanır. Her tekrardan sonra Mustafa, Esra’nın gizli kelimeyi bildiğinden biraz daha emin olur.
Bu yöntemin zayıf noktası, Esra’nın gizli kelimeyi bildiğinden asla yüzde 100 emin olamayacak olmamızdır. Çünkü Esra’nın tüm tekrarlarda şanslı olma ihtimali (yok sayılacak kadar düşük de olsa) vardır. Buna karşın, Esra bir kez bile yanlış yolu kullanırsa, Mustafa onun gizli kelimeyi bimediğinden emin olur. Yani, Esra’nın gizli kelimeyi bilmediğini yüzde 100 kesinlikle doğrulama olasılığımız vardır. Ancak bildiğini doğrulama olasılığımız en fazla yüzde 99,99’dur.
Bu yöntemin güçlü noktası ise Esra’nın, gizli kelimeyi bildiğini ispat ederken onu Mustafa’ya söylemek zorunda olmamasıdır.
Sıfır bilgi ispatı, işte bu örnekteki yöntemin bilgisayar bilimine adapte edilmiş halidir.
Sıfır Bilgi İspatı Türleri
Sıfır bilgi ispatı protokolleri, “etkileşimli sıfır bilgi ispatı” ve “etkileşimsiz sıfır bilgi ispatı” olmak üzere iki ana gruba ayrılır.
Eskiden, sıfır bilgi ispatı modeli, bir işlemin iki tarafının doğrudan etkileşime girmesini gerektirirdi. Bu tür sıfır bilgi ispatı protokollerinde, kanıtlayıcının doğrulayıcıyı ikna etmesi ve bu işlemi her doğrulayıcı için tekrarlaması gerekiyordu. Bu da bir dizi eylemin tamamlanmasıyla gerçekleşiyordu. Ali Baba Mağarası analojisi, aslında bu etkileşimli bilgi ispatı protokollerini açıklar.
Daha sonra etkileşimsiz sıfır bilgi ispatı protokolleri ortaya çıktı. Bu tür sıfır bilgi ispatı protokollerinde, doğrulayıcı ve kanıtlayıcı arasında herhangi bir doğrudan etkileşim söz konusu değildir. Etkileşimsiz sıfır bilgi ispatlarının çoğu, bir ifadenin doğruluğuna ilişkin kısa ve kolayca doğrulanabilir ispatların oluşturulmasına olanak tanıyan eliptik eğri kriptografisi veya eşleştirme tabanlı kriptografi gibi matematiksel yapılara dayanmaktadır. Kanıtlayan ve doğrulayan arasında birden fazla etkileşim turu gerektiren etkileşimli sıfır bilgi ispatlarının aksine, etkileşimsiz sıfır bilgi ispatları çok sayıda veriyi aynı anda doğrulayabilir. Bu yüzden daha verimli kabul edilir.
Kripto Paralarda Sıfır Bilgi İspatı
Sıfır bilgi ispatı (zero-knowledge proof), blockchain ve kripto para dünyasında da gizliliği artırmak için uzun süredir kullanılıyor. Birçok blockchain uygulaması, temelde etkileşimsiz sıfır bilgi ispatına dayanan zk-SNARK ve zk-STARK adı verilen sıfır bilgi ispatı protokollerinden yararlanarak daha güvenli mutabakat yapıları inşa ediyor.
Şimdi, sıfır bilgi ispatı modelinin kripto para dünyasında nasıl kullanıldığına örneklerle bakacağız.
İşlem gizliliği
Sıfır bilgi ispatı sayesinde, blockchain tabanlı bir sistemde veriler içerikleri herkes tarafından görüntülenmeden doğrulanabilir. Örneğin ZCash (ZEC), ne kadar para gönderildiği veya nihai alıcının kimliği gibi hassas verileri ifşa etmeden işlemleri onaylamak için sıfır bilgi ispatı protokollerini kullanır.
Bu bilhassa önemlidir çünkü kripto paralar, aslında kullanıcıların özel, eşler arası işlemler gerçekleştirebilmesi için tasarlanmıştır. Ancak çoğu kripto para işlemi halka açık blockchain ağlarında açıkça görülebilir. Her ne kadar bu ağlarda bireyler takma isimlerle var olsa da işlemlere dair bilgiler herkes için erişilebilirdir. Ayrıca, zincir içi ve zincir dışı analizlerle izi sürülebilir. Öte yandan, sıfır bilgi ispatı sayesinde kripto paralar hedefledikleri tam gizliliği sağlayabilir.
Performans optimizasyonu ve ölçeklenebilirlik
Ethereum (ETH), merkeziyetsiz uygulamalar ve akıllı kontratlar yaratmayı olanaklı kıldı. Ancak bu tür uygulamalar, kullanıcı sayıları arttıkça ölçekelenebilme ihtiyacı duyuyor. Sıfır bilgi ispatı, bir işlemde tutulan veri miktarını azaltarak ölçeklenebilirliği artırır. Bugün birçok Ethereum Katman-2 çözümü, sıfır bilgi ispatı protokollerini kullanmaktadır.
Doğrulanabilir hesaplama
Doğrulanabilir hesaplama, sıfır bilgi ispatı teknolojisinin blockchain tasarımlarını geliştirmek için kullanıldığı bir başka alndır. Doğrulanabilir hesaplama, hesaplamayı başka bir varlığa yaptırırken sonuçları yine de doğrulayabilmemizi sağlar. Hesaplamayı yapan varlık, sonucu programın doğru şekilde yürütüldüğünü doğrulayan bir kanıtla birlikte sunar.
Doğrulanabilir hesaplama sayesinde blockchain işlemlerinin hızı, güvenlikten taviz vermeden artırılabilir.
Merkeziyetsiz kimlik
Mevcut kimlik yönetim sistemleri kişisel bilgileri risk altında bırakmaktadır. Sıfır bilgi kanıtı protokolleri, bireylerin kimliklerini hassas bilgileri koruyarak doğrulamalarını sağlayabilir.
Sıfır bilgi kanıtı, özellikle merkeziyetsiz kimlik bağlamında kullanışlıdır. “Kendi kendine egemen kimlik” olarak da tanımlanan merkeziyetsiz kimlik, bireye kişisel tanımlayıcılara erişimi kontrol etme olanağı verir. Vergi kimliğinizi veya pasaport bilgilerinizi ifşa etmeden vatandaşlığınızı kanıtlamak, sıfır bilgi teknolojisinin merkeziyetsiz kimliği nasıl mümkün kıldığına iyi bir örnektir.