Sıfır Bilgi Kanıtına (Zero-Knowledge Proof) Giriş

Estimated read time 7 min read

Bu yazımızda sıfır bilgi kanıtlarının (ZKP’ler) temellerini, nasıl çalıştıklarını ve neden onları önemsemeniz gerektiğini inceleyeceğiz.

Sıfır Bilgi (Zero-Knowledge) Kanıtı Nedir?

ZKP’lerden ilk kez Shafi Goldwasser, Silvio Micali ve Charles Rackoff tarafından yazılan bir makalede bahsedildi. “Etkileşimli kanıt sistemlerinin bilgi karmaşıklığı” başlıklı makale 1985’te yayınlandı – Z kuşak okuyucularımız için 1985, insanların çevirmeli telefon kullandığı, TikTok’un ve kripto para birimlerinin olmadığı geçmişte bir noktadır.

Sıfır bilgi kanıtı, bir tarafın (kanıtlayanın) diğer tarafa (doğrulayana) bir şeyin doğru olduğunu, bu belirli ifadenin doğru olduğu gerçeği dışında herhangi bir bilgi vermeden kanıtlayabildiği bir yöntemdir.

Ayşe’nin dünyadaki en iyi çikolatalı kurabiye tarifine sahip olduğunu ve bunu Bora’ya satmak istediğini hayal edin. Bora, tarifin Ayşe’ye gerçekten ait olduğunu doğrulaması gerekiyor, ancak Ayşe ona gizli tarifi ve tüm malzemeleri gösterirse inanacaktır.

ZK kanıtı burada devreye giriyor ve Ayşe’nin gerçekten de tarife sahip olduğunu ancak gerçek tarifi açıklamadan bunu garanti etmenin bir yolu olarak düşünebiliriz.

ZK kanıtları nasıl çalışır?

Çok fazla teknik ayrıntıya girmeden ZKP’lerin çalışma şeklini burada bulabilirsiniz.

Daha önce de belirttiğimiz gibi, bir kanıtlayıcı (bir bilgiye sahip olduğunu kanıtlayan taraf) ve bir doğrulayıcı (bilgiye sahip olduğunu doğrulayan taraf) vardır.

Sürecin ilk adımında, kanıtlayıcı ve doğrulayıcı hangi parametrelerin ve kriptografik algoritmaların kullanılacağı konusunda anlaşırlar.

Kanıtlayıcı daha sonra ifadenin içeriğini açıklamadan doğrulanmış ifadeyi temsil eden bir kriptografik taahhüt oluşturur.

Doğrulayıcı, kanıtlayıcıya rastgele meydan okur ve kanıtlayıcı, meydan okumaya ve taahhüt edilen ifadeye dayalı olarak bir yanıt üretir.

Daha sonra doğrulayıcı, ifadenin gerçekten geçerli olup olmadığını belirlemek için bu mücadeleye verilen yanıtı ve taahhüdü kontrol eder.

İfadenin yüksek düzeyde bir güvenle doğru olduğundan emin olmak için, sorgulamadan sonraki adımlar birden çok kez tekrarlanabilir.

Temel olarak, bir ZK kanıtında bu süreçte 3 ana adım vardır: taahhüt, meydan okuma ve yanıt.

Dünyanın en iyi çikolatalı kurabiyelerini örnek alırsak şu şekilde görünecektir:

Bora ve Ayşe, tarifi bildiğini göstermek için Ayşe’nin kurabiyeleri pişireceği ve Bora’nın da tadına bakacağı konusunda hemfikirdir. Ayşe kurabiyeleri pişirir, Bora  kurabiyeleri yer ve tadı dünyanın en iyi kurabiyeleri fikri oluşur.

Bunun bir tesadüf olmadığından emin olmak için Bora, Ayşe’nin kurabiyeleri birden çok kez pişirmesini ister ve her seferinde dünyanın en iyi kurabiyeleri gibi tadı varsa, Bora büyük bir güvenle Ayşe’nin tarifi bildiği sonucuna varabilir. Bir çok kez kurabiyeleri yemesi sonucu Bora’nın şeker hastası olacağı sonucuna da biz varabiliriz.

Yukarıdaki örnek etkileşimli bir ZK kanıtını göstermektedir; burada kanıtlayıcı, kanıtı tamamlamak için doğrulayıcıyla etkileşime girer ve birden fazla etkileşim turu olabilir.

Bununla birlikte, kanıtlayıcı tarafından doğrulayıcı ile herhangi bir etkileşime gerek kalmadan kanıtın oluşturulabildiği etkileşimli olmayan ZKP’ler de vardır. Aslında çoğu durumda etkileşimli kanıtlar Fiat-Shamir dönüşümü kullanılarak etkileşimsiz hale getirilir, çünkü etkileşim çoğu durumda bir seçenek değildir.

ZK kanıtlarının türleri

Sıfır bilgi kanıtlarının birden fazla türü vardır ancak biz blok zincirdeki en popüler ZKP’lere göz atacağız: ZK-SNARK’lar ve ZK-STARK’lar (her ne kadar kulağa benzer gelse de dikkat etmekte fayda var!).

ZK-SNARK’lar

Bu kısaltma, Sıfır Bilgi Kısa ve Etkileşimli olmayan argümanı anlamına gelir. Kanıtlayıcı ve doğrulayıcı arasında herhangi bir etkileşim gerektirmeyen bir ZK kanıtı biçimidir. Kanıt boyutunun küçük olması ve doğrulamanın hızlı olması nedeniyle bunlar “özlüdür”. Çoğu ZK-SNARK, ZKP’lere yönelik parametreler oluşturmak için eliptik eğri kriptografisi ve güvenilir bir kurulum kullanır.

SNARK’lar şu anda kriptoda en yaygın ZK kanıt türlerinden biridir.

ZK STARK’lar

Bunlar Sıfır Bilgi Ölçeklenebilir Bilginin Şeffaf AR gumanlarıdır : SNARK’lara benzer ancak birkaç farklılığı vardır . STARK’lar eliptik eğriler yerine karma işlevlerini kullanır ve SNARK’lardan farklı olarak güvenilir bir kuruluma güvenmezler, bu da onları daha şeffaf hale getirir. Ayrıca kuantum sonrası güvenlidirler, yani kuantum bilişimdeki ilerlemelere rağmen güvende kalırlar.

STARK’lar, SNARK’lardan daha ölçeklenebilirdir (daha büyük hesaplamaları gerçekleştirebilirler) ancak daha fazla gas ücreti gerektirirler.

ZK kanıtlarını neden önemsemeliyiz?

ZKP’leri kullanmanın iki ana nedeni vardır: gizlilik ve ölçeklenebilirlik.

“Ama kripto demek şeffaflık demek” diyebilirsiniz.  Gizlilik ile şeffaflığın eşit olmadığını size hatırlatalım. Gerçek hayattaki pek çok durum anonimliği ve bireylerin verilerinin korunmasını gerektirir; toplumun işleyişi bu şekildedir. Mega şirketlerin kişisel verilerimizden gülünç miktarlarda para kazandığı bir dünyada sıfır bilgi önemlidir.

Bundan bahsetmişken, ZKP’lerin daha spesifik kullanım durumlarına dalalım. Sıfır bilgi kanıtlarının gerçek hayatta o kadar çok kullanım durumu var ki bazen ZKP’de neyi yapamayacağınızı merak ediyoruz.

ZKP’lerin bir başka kullanımı da isimsiz ödemelerdir – kitlesel gözetim altında yaşıyoruz ve bazen Ayşe dünyanın en iyi kurabiye tarifini Bora’ya sattığını gizli tutmak istiyor. Ayrıca, kredi kartı sağlayıcısının işlem bilgilerini veri komisyoncularına satmasına ve onların da bu bilgileri örneğin reklam verenlere satmasına izin vermeden alışveriş yapmak istiyor.

ZKP’ler kimlik koruması için mükemmeldir; pasaportunuzu kontrol görevlisine göstermeden ve içindeki tüm bilgileri onlara açıklamadan, havaalanında pasaport kontrolünden geçebildiğinizi düşünün!

Birçok fikir, kimlik doğrulama için ZKP’lerin kullanılmasını savunuyor; çoğu platform, kullanıcıların erişimine izin vermek için tonlarca kişisel veriye ihtiyaç duyuyor. ZK kanıtları, hem platformlar hem de son kullanıcılar için kimlik doğrulamayı büyük ölçüde basitleştirebilir ve böylece kullanıcı deneyimini iyileştirebilir.

ZKP’ler oylama sistemleri için de kullanılabilir: oylama sistemlerinin bütünlüğünü ve gizliliğini sağlamanın sağlam bir yoludur, bireysel oyları açığa vurmadan güvenli ve şeffaf seçimlere olanak tanır.

Diğer potansiyel uygulamalar arasında üyelik kanıtı, sanat sahipliği ve menşe doğrulaması, etik verilerden para kazanma, tedarik zinciri yönetimi, oyun vb. yer alır.

ZK kanıtları için sırada ne var?

Bu yılın Mart ayında Vitalik Buterin, Ethereum zincirinin onaylanma biçiminde  önemli bir geçişin ZK-EVM’lerin yükselişi ile olacağını söylemişti.

Yukarıda verdiğimiz gerçek hayattaki uygulama örneklerinde gördüğümüz gibi, ZKP’nin blok zincir ve finans alanında benimsenmeye devam ettiğini göreceğimizi ancak aynı zamanda birçok web2 ve web3 endüstrisine de yayılacağını rahatlıkla söyleyebiliriz.

Ayrıca ZKP’ler ve yapay zeka arasında bir miktar örtüşme ve entegrasyon da görebiliriz (hem OpenAI‘yi hem de Worldcoin’i kuran Sam Altman’ın bu konuda öncülük edeceğini tahmin etmek zor olmayacaktır)

ZKP’lerin ve makine öğreniminin nasıl birlikte çalıştığını, verileri açığa vurmadan verilerden öğrenmemize izin verdiğini görmek ilginç olurdu. Sıfır bilgi kanıtlarının geleceği ne olursa olsun, parlak ve ümit vericidir ve biz de onu görmekten heyecan duyuyoruz.