Sıfır Bilgi Kanıtları, ifadenin kendisini açıklamadan bir ifadenin geçerliliğini kanıtlamanın bir yoludur. ‘Kanıtlayıcı’ bir iddiayı kanıtlamaya çalışan taraftır, ‘doğrulayıcı’ ise iddiayı doğrulamaktan sorumludur.
Zero Knowledge Proofs ilk olarak 1985 yılında; 2 MIT Görevlisi tarafından, günümüzde yaygın olarak kullanılan ZKP’nin bir tanımını sağlayan “Etkileşimli İspat Sistemlerinin Bilgi Karmaşıklığı” başlıklı bir makalede ortaya çıktı:
Zero knowledge ; bir tarafın (kanıtlayan) başka bir tarafa (doğrulayıcı) bir şeyin doğru olduğunu, bu özel ifadenin doğru olduğu gerçeği dışında herhangi bir bilgi ifşa etmeden kanıtlayabildiği yönteme denir.
ZKP yıllar içinde gelişti ve şimdi gerçek hayatta kullanılıyor.
Neden ZKP’ye İhtiyacımız Var?
ZKP, bireyler için bilgi güvenliğini artırma sözü verdiği için kriptografide bir atılımı temsil eder. Bir iddia düşünün. Örneğin, “Ben X ülkesinin vatandaşıyım”. Karşınızdaki kişiye veya bir hizmet sağlayıcısına nasıl kanıtlayabileceğinizi düşünün. Talebinizi desteklemek için pasaport veya ehliyet gibi bir “kanıt” sağlamanız gerekir.
Ancak bu yaklaşımla ilgili mahremiyet eksikliği gibi bir sorun var. Üçüncü taraf hizmetlerle paylaşılan Kişisel Tanımlanabilir Bilgiler (PII), saldırılara karşı savunmasız olan merkezi veritabanlarında depolanır. Kimlik hırsızlığının kritik bir konu halini almasıyla, hassas bilgilerin paylaşılması için daha fazla gizliliği koruyan araçlara yönelik ihtiyaç var.
ZKP; iddiaların geçerliliğini kanıtlamak için bilgi ifşa etme ihtiyacını ortadan kaldırarak bu sorunu çözmektedir. Geçerliliğinin kısa ve öz bir kanıtını oluşturmak için ifadeyi “tanık” olarak adlandırıır ve girdi olarak kullanır. Bu kanıt; bir ifadeyi oluştururken kullanılan bilgileri açığa çıkarmadan doğru olduğuna dair güçlü garanti sağlar.
Örneğe dönecek olursak vatandaşlık iddianızı kanıtlamak için ihtiyacınız olan tek kanıt ZK kanıtıdır. Doğrulayıcının, temeldeki ifadenin de doğru olduğuna ikna olmak için yalnızca kanıtın belirli özelliklerinin doğru olup olmadığını kontrol etmesi gerekir.
Zero Knowledge Proof – ZKP Nasıl Çalışır?
ZKP, ifadenin içeriğini paylaşmadan veya gerçeği nasıl keşfettiğinizi açıklamadan bir ifadenin doğruluğunu kanıtlamanıza olanak tanır. Bazı verileri girdi olarak alırken çıktı olarak ‘doğru’ veya ‘yanlış’ döndüren algoritmalara dayanır.
ZKP’ler aşağıdaki kriterleri karşılamalıdır:
- Tamlık : Giriş geçerliyse, ZK protokolü her zaman ‘doğru’ geri dönüş yapar. Bu nedenle, temeldeki ifade doğru ise kanıtlayıcı ve doğrulayıcı dürüst davranırsa, kanıt kabul edilebilir.
- Sağlamlık : Giriş geçersizse, ZK protokolünü ‘doğru’ döndürmek için kandırmak teorik olarak imkansızdır. Bu nedenle, yalancı bir kanıtlayıcı, dürüst bir doğrulayıcıyı geçersiz bir ifadenin geçerli olduğuna inandıramaz (küçük bir olasılık payı dışında).
- Sıfır bilgi : Doğrulayıcı, bir ifade hakkında doğruluğu veya yanlışlığı dışında hiçbir şey öğrenmez. Yani ifade hakkında “sıfır bilgisi” vardır. Bu gereklilik, doğrulayıcının kanıttan orijinal girdiyi türetmesini de engeller.
Temel formda, ZKP üç unsurdan oluşur: tanık , meydan okuma ve yanıt.
- Tanık: Kanıtlayıcı bazı gizli bilgilerin bilgisini ZKP ile ispatlamak ister. Gizli bilgi, ispatın “tanığı”dır ve kanıtlayıcının tanığa ilişkin varsayılan bilgisi, yalnızca bilgiyi bilen bir tarafça cevaplanabilecek bir dizi soru oluşturur. Böylece kanıtlayıcı rastgele bir soru seçerek, cevabı hesaplayarak ve doğrulayıcıya göndererek ispat sürecini başlatır.
- Meydan okuma : Doğrulayıcı, kümeden rastgele başka bir soru seçer ve kanıtlayıcıdan bu soruyu yanıtlamasını ister.
- Yanıt : Kanıtlayıcı soruyu kabul eder, yanıtı hesaplar ve doğrulayıcıya geri gönderir. Kanıtlayıcının yanıtı, doğrulayıcının, öncekinin tanığa gerçekten erişimi olup olmadığını kontrol etmesine olanak tanır. Kanıtlayıcının körü körüne tahmin etmemesini ve tesadüfen doğru yanıtları almamasını sağlamak için, doğrulayıcı sorulacak daha fazla soru seçer. Bu etkileşimin birçok kez tekrarlanmasıyla, doğrulayıcı tatmin olana kadar tanığın kanıtlanmış sahte bilgi olasılığı önemli ölçüde azalır.
Şimdiye kadar, ‘Etkileşimli ZKP – Sıfır Bilgi Kanıtı’nın yapısını açıklamaya çalıştık. İlk ZK protokolleri, bir ifadenin geçerliliğinin doğrulanması için kanıtlıyıcılar ve doğrulayıcılar arasında ileri geri iletişimin gerekli olduğu etkileşimli kanıtlamayı kullandı.
Etkileşimli kanıtların nasıl çalıştığını gösteren güzel bir örnek, 1998 yılında Jean-Jacques Quisquater’in “ZK Protokollerini Bir Çocuğa Nasıl Anlatırsın” adlı makalesinde yer alan ünlü Ali Baba mağara hikayesidir . Hikayede, Peggy (kanıtlayıcı) Victor’a (doğrulayıcı) ifadeyi açıklamadan sihirli bir kapı açmak için gizli ifadeyi bildiğini kanıtlamak ister.
Etkileşimli Olmayan ZKP
Devrim niteliğinde olsa da, etkileşimli kanıtlama, iki tarafın sürekli olarak erişilebilir olmasını ve etkileşime girmesini gerektirdiğinden sınırlı bir kullanışlılığa sahiptir. Bir doğrulayıcı, bir kanıtlayıcının dürüstlüğüne ikna olmuş olsa bile, kanıt bağımsız doğrulama için kullanılamayacaktır. Çünkü yeni bir kanıtın hesaplanması, kanıtlayıcı ve doğrulayıcı arasında yeni bir dizi mesaj gerektirir.
Bu sorunu çözmek için Manuel Blum, Paul Feldman ve Silvio Micali, kanıtlayıcı ve doğrulayıcının ortak bir anahtara sahip olduğu ilk etkileşimli olmayan ZKP’yi önerdiler. Bu, kanıtlayıcının, bilgiyi kendisi sağlamadan bazı bilgiler (yani tanık) hakkındaki bilgilerini göstermesine olanak tanır.
Etkileşimli kanıtlardan farklı olarak, etkileşimli olmayan kanıtlar, kanıtlayıcı ve doğrulayıcı arasında yalnızca bir tur iletişim gerektirir. Kanıtlayıcı, sıfır bilgi kanıtını hesaplamak için gizli bilgileri özel bir algoritmaya iletir. Bu kanıt, başka bir algoritma kullanarak kanıtlayıcının gizli bilgileri bilip bilmediğini kontrol eden doğrulayıcıya gönderilir.
Etkileşimsiz kanıtlama, kanıtlayıcı ve doğrulayıcı arasındaki iletişimi azaltarak zk-provalarını daha verimli hale getirir. Ayrıca, bir kanıt oluşturulduktan sonra, paylaşılan anahtara ve doğrulama algoritmasına erişimi olan herkesin doğrulaması için kullanılabilir.
Etkileşimsiz kanıtlar, ZKP için bir atılımı temsil etti ve günümüzde kullanılan kanıtlama sistemlerinin gelişimini teşvik etti.
Bu kanıt türlerini hemen göz atalım.
Zero Knowledge Proofs Türleri
ZK-SNARK ‘lar
ZK-SNARK; Zero-Knowledge Succinct Non-Interactive Argument of Knowledge‘ın kısaltmasıdır . Kısa ve Etkileşimli Olmayan Bilgi Argümanı olarak Türkçe’ye çevrilebilir.
ZK-SNARK protokolü aşağıdaki niteliklere sahiptir.
- Sıfır bilgi: Doğrulayıcı, ifade hakkında başka hiçbir şey bilmeden bir ifadenin bütünlüğünü doğrulayabilir. Doğrulayıcının ifade hakkında sahip olduğu tek bilgi, onun doğru mu yanlış mı olduğudur.
- Kısa ve öz: ZK kanıtı tanıktan daha küçüktür ve hızlı bir şekilde doğrulanabilir.
- Etkileşimsiz: Kanıt ‘etkileşimli değildir’ çünkü kanıtlayıcı ve doğrulayıcı, birden fazla iletişim turu gerektiren etkileşimli kanıtların aksine yalnızca bir kez etkileşime girer.
- Argüman : Kanıt ‘sağlamlık’ gereksinimini karşılıyor, bu nedenle hile yapma olasılığı çok düşük.
- Bilgi: Gizli bilgiye (tanık) erişim olmadan ZK kanıtı oluşturulamaz. Tanığa sahip olmayan bir ispatlayıcının geçerli bir ZK kanıtı hesaplaması imkansız değildir ama zordur.
Daha önce bahsedilen ‘paylaşılan anahtar’; kanıtlayıcı ve doğrulayıcının kanıtları oluşturmak ve doğrulamak için kullanmayı kabul ettiği genel parametreleri ifade eder. Common Reference String (CRS) – Ortak Referans Dizisi olarak bilinen genel parametreleri oluşturmak çok önemlidir ve protokolün güvenliğindeki hassas bir işlemdir. CRS’nin üretilmesinde kullanılan entropi (rastgelelik), dürüst olmayan bir kanıtlayıcının eline geçerse, yanlış ispatlar hesaplayabilirler.
Multi-party computation – (MPC) Çok taraflı hesaplama, genel parametreler oluşturmadaki riskleri azaltmanın bir yoludur. Her bir kişinin CRS’yi oluşturmak için bazı rastgele değerlere katkıda bulunduğu güvenilir bir kurulum törenine birden fazla taraf katılır. Dürüst bir taraf entropinin kendi payını yok etmediği sürece, ZK-SNARK protokolü hesaplama sağlamlığını korur.
Güvenilir kurulumlar, kullanıcıların parametre oluşturmada katılımcılara güvenmesini gerektirir. Ancak, ZK-STARK’ların geliştirilmesi, güvenilmeyen bir kurulumla çalışan protokollerin de kanıtlanmasını sağladı.
ZK-STARK ‘lar
ZK-STARK, Zero-Knowledge Scalable Transparent Argument of Knowledge‘ın kısaltmasıdır. Türkçe’si Sıfır Bilgi Ölçeklenebilir Şeffaf Bilgi Argümanı’dır.
ZK-STARK ‘lar, aşağıdakiler dışında ZK-SNARK’lara benzer.
- Ölçeklenebilir: ZK-STARK, tanığın boyutu daha büyük olduğunda kanıtları oluşturma ve doğrulama konusunda ZK-SNARK’tan daha hızlıdır. STARK kanıtlarıyla, kanıtlama ve doğrulama süreleri, tanık büyüdükçe yalnızca biraz artar. SNARK doğrulayıcı ve doğrulayıcı süreleri, tanık boyutuyla doğrusal olarak artar.
- Şeffaflık: ZK-STARK, güvenilir bir kurulum yerine kanıtlama ve doğrulama için genel parametreler oluşturmak için genel olarak doğrulanabilir rastgeleliğe dayanır. Böylece ZK-SNARK’lara göre daha şeffaftırlar.
ZK-STARK ‘lar, ZK-SNARK ‘lardan daha büyük kanıtlar üretir, yani genellikle daha yüksek doğrulama giderlerine sahiptirler. Ancak, ZK-STARK’ların ZK-SNARK’lardan daha uygun maliyetli olabileceği durumlar (büyük veri kümelerinin kanıtlanması gibi) vardır.
Zero Knowledge Proofs İçin Kullanım Örnekleri
Anonim Ödemeler
Kredi kartı ödemeleri, genellikle ödeme sağlayıcısı, bankalar ve devlet yetkilileri gibi diğer ilgili taraflar dahil olmak üzere birden fazla tarafça görülebilir. Finansal gözetim, yasa dışı faaliyetleri tespit etmede fayda sağlarken, aynı zamanda sıradan vatandaşların mahremiyetini de baltalamaktadır.
Kripto para birimleri, kullanıcıların eşler arası özel işlemler gerçekleştirmesi için bir araç sağlamayı amaçladı. Ancak çoğu kripto para birimi blok zincirler üzerine işlenir takip edilebilir. Kullanıcı kimlikleri genellikle takma addır ancak Twitter veya GitHub profillerinin ETH adresleri ile ilişkilendirilmiş olabileceğinden veya temel ve off-chain veri analizleri kullanılabileceğinden gerçek kimliklerle ilişkilendirilebilir.
Günümüzde oldukça tartışılan tamamen gizlilik için tasarlanmış özel projeler vardır. ZCash ve Monero gibi gizlilik odaklı blok zincirler, gönderen/alıcı adresleri, varlık türü, miktar ve işlem zaman çizelgesi dahil olmak üzere işlem ayrıntılarını gizli tutmaktadır.
Gizlilik odaklı blok zincirler, ZK teknolojisini protokollerine ekleyerek node’ların işlem verilerine erişmeye gerek kalmadan işlemleri doğrulamasını sağlar.
Halka açık blok zincirlerindeki anonimleştirme işlemlerine de ZKP’ler uygulanmaktadır. Kullanıcıların Ethereum üzerinde özel işlemler yapmasına izin veren merkeziyetsiz ve gözetimsiz bir proje olan Tornado Cash bulunmaktadır. Son günlerde ABD’nin yaptırımlarına maruz kala Tornado Cash, işlem ayrıntılarını gizlemek ve finansal gizliliği garanti etmek için ZKP kullanır. Ancak bunlar “gömülü” gizlilik araçları oldukları için yasa dışı faaliyetlerle ilişkilendirilirler.
Kimlik Koruması
Mevcut kimlik yönetim sistemleri kişisel bilgileri riske atmaktadır. ZKP’ler hassas ayrıntıları korurken bireylerin kimliği doğrulamasına yardımcı olabilir.
ZKP’ler özellikle merkeziyetsiz kimlik bağlamında oldukça yararlıdır . Merkeziyetsiz kimlik (‘kendi kendine egemen kimlik’ olarak da tanımlanır çünkü herhangi bir otoriteye, onaya ihtiyacı yoktur), bireye kişisel tanımlayıcılara erişimi kontrol etme yeteneği verir. Vergi numaranızı veya pasaport bilgilerinizi açıklamadan vatandaşlığınızı kanıtlamak, ZK teknolojisinin merkezi olmayan kimliği nasıl sağladığına iyi bir örnektir.
Kimlik Doğrulama
Çevrimiçi hizmetleri kullanmak, kimliğinizi ve bu platformlara erişim hakkınızı kanıtlamayı gerektirir. Bu genellikle adlar, e-posta adresleri, doğum tarihleri vb. gibi kişisel bilgilerin paylaşılmasıyla gerçekleşir. Ayrıca uzun parolaları ezberlemeniz veya erişimi kaybetme riskiniz de bulunmaktadır.
Ancak ZKP’ler, hem platformlar hem de kullanıcılar için kimlik doğrulamayı basitleştirebilir. Örneğin; kullanıcının platform üyeliğini doğrulayan verileri ve ayrıntıları kullanılarak bir zk-proof oluşturulabilir, kullanıcı da erişmesi gerektiğinde kimliğini doğrulamak için bunu basitçe sunabilir. Bu hizmet; kullanıcılar için deneyimi iyileştirir ve kuruluşları çok büyük miktarda kullanıcı bilgisi depolama ihtiyacından kurtarır.
Doğrulanabilir Hesaplama
Doğrulanabilir hesaplama, blok zinciri tasarımlarını geliştirmek için ZK teknolojisinin başka bir uygulamasıdır. Doğrulanabilir bilgi işlem, doğrulanabilir sonuçları korurken hesaplamayı başka bir varlığa dış kaynak kullanılmasına olanak tanır. Varlık, sonucu programın doğru şekilde yürütüldüğünü doğrulayan bir kanıtla birlikte sunar.
Doğrulanabilir hesaplama, güvenliği azaltmadan blok zincirlerdeki işlem hızlarını iyileştirmek için kritik öneme sahiptir. Bunu anlamak, Ethereum’u ölçeklendirmek için önerilen çözümlerdeki farklılıkları bilmeyi gerektirir.
Sharding gibi on chain ölçeklendirme çözümleri, blok zincirinin temel katmanında kapsamlı bir değişiklik gerektirir. Ancak bu yaklaşım oldukça karmaşıktır ve uygulamadaki hatalar Ethereum’un güvenlik modelini zayıflatabilir.
Off chain ölçeklendirme çözümleri, temel Ethereum protokolünün yeniden tasarlanmasını gerektirmez. Bunun yerine, Ethereum’un temel katmanındaki verimi artırmak için dış kaynaklı bir hesaplama modeline güveniyorlar.
Pratikte şu şekilde çalışır:
- Her işlemi işlemek yerine, Ethereum yürütmeyi ayrı bir zincire aktarır.
- İşlemleri işledikten sonra diğer zincir, Ethereum’un durumuna uygulanacak sonuçları döndürür.
Buradaki fayda, Ethereum’un herhangi bir yürütme yapması gerektirmemesi ve yalnızca dış kaynaklı hesaplamadan elde edilen sonuçları kendi durumuna uygulaması gerektiğidir. Bu, ağ tıkanıklığını azaltır ve ayrıca işlem hızlarını iyileştirir. Off chain protokoller işlem hızlarında Ethereum’u hızlandırmak için optimize edilir. Ethereum; off-chain işlemleri yeniden yürütmeden doğrulamak için bir yola ihtiyaç duyar, aksi takdirde off chain yürütmenin değeri kaybolur.
Doğrulanabilir hesaplamanın devreye girdiği yer burasıdır. Bir düğüm, Ethereum dışında bir işlem yürüttüğünde, off chain yürütmenin doğruluğunu kanıtlamak için sıfır bilgi kanıtı sunar. Bu kanıt geçerlilik kanıtı olarak adlandırılır. Geçerlilik kanıtı bir işlemin geçerli olduğunu garanti eder ve Ethereum’un sonucu kimsenin itiraz etmesini beklemeden durumuna uygulamasına izin verir.
Zero Knowledge Rollups ve validiumlar; güvenli ölçeklenebilirlik sağlamak için geçerlilik kanıtlarını kullanan iki off chain ölçeklendirme çözümüdür. Bu protokoller, off chain yani zincir dışında binlerce işlemi gerçekleştirir ve Ethereum üzerinde doğrulama için kanıtlar sunar. Bu sonuçlar, kanıt doğrulandıktan hemen sonra uygulanabilir ve Ethereum’un temel katmandaki hesaplamayı artırmadan daha fazla işlem yapmasına izin verir.
ZKP Kullanmanın Dezavantajları
Donanım Maliyetleri
ZKP oluşturmak özel makinelerde gerçekleştirilen çok karmaşık hesaplamaları içerir. Bu makineler genellikle sıradan kişilerin erişemeyeceği pahadadırlar. Ek olarak, sıfır bilgi teknolojisini kullanmak isteyen uygulamalar, son kullanıcıların maliyetlerini artırabilecek donanım maliyetlerini hesaba katmalıdır.
Kanıt Doğrulama Maliyetleri
Kanıtları doğrulamak ayrıca karmaşık hesaplama gerektirir ve uygulamalarda sıfır bilgi teknolojisini uygulama maliyetlerini artırır. Bu maliyet, özellikle hesaplamanın kanıtlanması bağlamında önemlidir. Örneğin, ZK-Rollups, Ethereum üzerinde tek bir ZK-SNARK kanıtını doğrulamak için ~ 500.000 gaz öderken ZK-STARK’lar daha da yüksek ücretler gerektirir.
Güven Varsayımları
ZK-SNARK’ta Ortak Referans Dizisi (genel parametreler) bir kez oluşturulur ve sıfır bilgi protokolüne katılmak isteyen taraflarca yeniden kullanım için kullanılabilir. Genel parametreler, katılımcıların dürüst olduğunun varsayıldığı güvenilir bir kurulum töreniyle oluşturulur.
Ancak, kullanıcıların katılımcıların dürüstlüğünü değerlendirmesinin gerçekten bir yolu yoktur ve kullanıcıların geliştiricilerin sözlerine kulak vermeleri gerekir. ZK-STARK’lar, dizeyi oluştururken kullanılan rastgelelik genel olarak doğrulanabilir olduğundan güven varsayımlarından muaftır. Bu arada araştırmacılar, ZK-SNARK’ların kanıtlama mekanizmalarının güvenliğini artırmak için güvenilmeyen kurulumlar üzerinde çalışıyorlar.
Kuantum Bilişim Tehditleri
ZK-SNARK, şifreleme için Eliptik Eğri Kriptografisini (ECDSA) kullanır. ECDSA algoritması şimdilik güvenli olsa da, gelecekte kuantum bilgisayarların geliştirilmesi güvenlik modelini bozabilir.
ZK-STARK ise şifreleme için çarpışmaya dayanıklı karmalar kullandığından kuantum hesaplama tehdidine karşı bağışık olarak kabul edilir. Eliptik eğri kriptografisinde kullanılan genel-özel anahtar eşleştirmelerinin aksine, kuantum hesaplama algoritmalarının kırılması için çarpışmaya dayanıklı karma oluşturma daha zordur.
Yorumlar (6)