Skip to content

TRA-Tech/zero-knowledge-proof

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 

Repository files navigation

ZERO KNOWLEDGE PROOFS

Zero Knowledge, ilk olarak 1980 yılında MIT araştırmacıları Shafi Goldwasser, Silvio Micali ve Charles Rackoff tarafından ortaya çıkmıştır. Araştırmacılar, İnteraktif Kanıtlama Sistemleri üzerinde çalışmalar sürdürürken, birinci taraf Prover ve mesajı doğrulayan taraf Verifier arasındaki ilişkiyi tanımlayacak teorik çalışmalar yürütmüşlerdir. Geçmişi 1980'li yıllara dayanan ve gelecekte hemen hemen her alanda kullanılabilecek bu teknolojiyi detaylarıyla sizler için bu repositories'de topladık.

image

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

Zero Knowledge (sıfır bilgi kanıtı) kavramı, birisinin başka birine bir şeyi kanıtlaması gerektiğinde, kanıtlayan kişinin açıklamalarını, bilgi ve verilerini ifşa etmeden yapabileceği bir yöntemi ifade eder. Bu, güvenli ve gizli bilgi işlemlerinde, özellikle de kriptografi ve veri gizliliği konularında kullanılan bir tekniktir. Blockchain'de, zero knowledge protokolü, işlem gizliliği ve anonimliğini artırmak için kullanılır.

Sıfır bilgi kanıtı, bilgilerin sadece ispatlayan tarafından gizliliği korunduğu özel durumlardan oluşmaktadır. Finansal işlemler, kimlik doğrulama ve veri paylaşımı gibi alanlarda da kullanılır. Örneğin, bir kullanıcının banka hesap bilgilerini doğrulamak istediği bir senaryoda, zero knowledge protokolü, kullanıcının hesap bilgilerini açıklamadan, yalnızca hesabın doğruluğunu doğrulamak için gerekli olan bilgileri sağlamasına izin verebilir.

Zero Knowledge; bir şeyin gerçeğini, o gerçeği nasıl bildiğinizi ya da o gerçeğe dair bildiğiniz şeyleri paylaşmadan doğrulamanıza olanak sağlar. Sıfır bilgi kanıtları, girdi verilerini “doğru” ya da “yanlış” olarak çıktı olarak sunan bir algoritmaya dayanır. Sıfır bilgi kanıtı, her türlü verinin geçerliliğini kanıtlayabilir. Bu duruma kişisel veriler dahildir.

Örneğin, bir kişi bir odaya girmeden önce, kapının açılabilmesi için bir kimlik kartı kullanması gerektiğini varsayalım. Ancak bu kişi, kimlik kartında saklanan bilgileri paylaşmak istemiyor. Bu durumda, bir Zero Knowledge Proof kullanarak, kişi kimliğini doğrulayabilir, ancak kimlik kartındaki bilgileri paylaşmaz.

image

Bunu daha somut bir şekilde düşünebiliriz; C olarak gösterilen bir programın iki girdisi olduğunu varsayalım: C(x, w). Burada x halka açık olan girdi, w ise gizli şahit girdisidir. Programın çıktısı boolean yani ya doğru ya da yanlış. Amaç, belirli bir halka açık girdi x verildiğinde, ispatlayıcı bir gizli girdi w bildiğini ve C(x,w) == true olduğunu kanıtlamaktır.

Zero Knowledge (Sıfır-bilgi kanıtları), özel verilerle ilgili bir dizi açıklamanın kanıtlanmasını sağladığından birçok uygulamada avantaj sağlar:

  • Özel Verilerle İlgili Kanıtlama

    • A kişisinin banka hesabında X'ten fazla para olduğunu kanıtlama
    • Bir bankanın son bir yılda Y varlığıyla işlem yapmadığını kanıtlama
    • Tüm DNA'yı ifşa etmeden eşleşen DNA'yı kanıtlama
    • Kredi skoru Z'den yüksek olan birinin varlığını kanıtlama
  • Anonim Yetkilendirme

    • Kimliğini ifşa etmeden web sitesinin kısıtlı alanına erişme hakkına sahip olan R kişisinin bunu kanıtlaması (örneğin, giriş, şifre)
    • Hangi ülkelerin/eyaletlerin listeye dahil edildiğini ifşa etmeden birinin izin verilen ülkelerden/bölgelerden biri olduğunu kanıtlama
    • Metro/otobüs geçiş kartına ait kimlik numarasını ifşa etmeden aylık geçiş hakkına sahip olduğunu kanıtlama
  • Anonim Ödemeler

    • Kimlikle tamamen bağlantısız ödeme yapabilme
    • Gelirlerini ifşa etmeden vergi ödeme
  • Hesaplama Dış Kaynak Kullanımı

    • Pahalı bir hesaplamayı dış kaynak kullanarak gerçekleştirip sonucun doğru olduğunu yeniden yürütmeye gerek kalmadan doğrulama; güvensiz hesaplama kategorisi açılır
    • Herkesin aynı şeyi hesapladığı blok zinciri modelini, bir tarafın hesapladığı ve herkesin doğruladığı modele değiştirme

Zero Knowledge için üç temel özellik mevcuttur:

  • Bütünlük: Girdi doğru ise, zero knowledge her zaman “doğru” değerini gösterir.
  • Sağlamlık: Girdi eğer yanlış ise, zero knowledge kandırmak mümkün değildir
  • Gizlilik: Girdiler, ispatlayan taraf harici kimseyle paylaşılmaz

Zero Knowledge (sıfır bilgi kanıtı), kanıtlayan taraf ve kanıtı doğrulayan taraf arasında etkileşim yaratır. Haricinde etkileşim olmayan sıfır bilgi kanıtları da bulunmaktadır, bunun en yaygın örneği Fiat-Shamir yöntemine dayanır ve bu yöntem etkileşimli bir şemadan oluşmaktadır.

Sıfır bilgi kanıt protokolü, kanıtlayan ve kanıtı doğrulayan taraf arasındaki etkileşimi transkript şeklinde sunar.

İspat geçerlilikleri hesaplama varsayımlarına yani kriptografik hash fonksiyonlarına dayanmaktadır. Hash fonksiyonu, verinin bütünlüğünü sağlamak için kullanılan yöntemlerden biridir.

Hash Fonsiyonu örneği:

image

Zero Knowledge Soyut Örnek

Örnek 1:

X kişisinin renk körü olduğunu ve iki adet kırmızı ve yeşil renklerde topunuz olduğunu düşünün. X kişisine göre toplar tamamen aynı renk görünüyor ancak topların ayırt edilebileceğinden şüpheleniyor. Bu kişiye topların farklı renklerde olduğunu kanıtlamak istiyorsunuz ancak topların hangisinin kırmızı hangisinin yeşil renk olduğunu açıklamak istemiyorsunuz.

İspat sistemi şu şekilde işliyor; X kişisi topları alıyor ve arkasına saklıyor. Sonrasında toplardan birini alıyor ve size gösteriyor. Daha sonrasında tekrardan arkasına saklıyor ve tekrardan bir topu gösteriyor. İki toptan birini seçme işlemi eşit olasılıkta gerçekleşiyor. Size sadece topu değiştirip değiştirmediğini sorar, tüm bu olay döngüsünü gerektiği sıklıkta tekrarlanabilir. Topların renklerine bakarak X kişisinin topları değiştirip değiştirmediğini kesinlikle söyleyebilirsiniz. Ancak toplar aynı renkteyse ve ayırt edilemiyorsa, %50 yüksek olasılıkla tahmin etmeniz pek mümkün değil.

image

  • Her ihtimali belirlemede rastgele başarı olasılığınız %50 ve tüm ihtimali belirleme olasılığınız sıfıra yakın. (Sağlamlık)
  • X kişisi ve siz, ispat işlemini birçok kez tekrarlarsanız, X kişisi topların gerçekten de farklı olduğuna ikna olacaktır. (Bütünlük)

Bu ispat sıfır bilgidir, çünkü X kişisi hangi topun yeşil hangi topun kırmızı olduğunu asla öğrenemez ve topların nasıl ayırt edilebileceğine dair de hiçbir bilgi edinmemektedir.

Örnek 2:

Bob, Alice'e bir sayı seçtiğini söyler ve bu sayının asal olduğunu kanıtlamak istediğini söyler. Ancak, Bob bu sayıyı açıklamak istemez. Alice, Bob'un iddiasını doğrulamak isteyebilir, ancak Bob'a güvenmez. Bu noktada, ZKP devreye girer.

Bob, Alice'e asal sayının iki çarpanını seçtiğini söyler ve bu çarpanların toplamını verir. Daha sonra, Alice, Bob'un çarpanları seçtiği doğruluğunu kanıtlamasını isteyebilir. Bob, Alice'e çarpanların sayısını ve toplamını söyler, ancak çarpanların kendilerini ifşa etmez.

Alice, Bob'un iddiasını doğrulamak istediğinde, ZKP kullanarak, Bob'un çarpanların gerçekten var olduğunu kanıtlamasını isteyebilir. Bob, ZKP kullanarak, çarpanların gerçekten var olduğunu ve toplamının asal sayıya eşit olduğunu doğrulayabilir, ancak asal sayının kendisini ifşa etmez.

Bu senaryoda, ZKP, Bob'un iddiasının doğru olduğunu kanıtlamasına ve aynı zamanda asal sayıyı ifşa etmeden gizli tutmasına olanak tanır. Alice de Bob'un iddiasının doğruluğunu doğrulayabilir ve asal sayının kendisine açıklanmasını gerektirmeden bu kanıtı alabilir. Bu örnek, ZKP teknolojisinin nasıl kullanılabileceğini göstermektedir ve gizlilik ve güvenlik gerektiren uygulamalarda yaygın olarak kullanılmaktadır.

Zero Knowledge Proof Nasıl Çalışır?

Zero Knowledge Proof, kanıtın doğru olduğunu gösterirken, kanıtın içeriğini ortaya çıkarmadan gerçekleştirilen bir işlemdir. Bu işlem, üç aşamalı bir protokol aracılığıyla gerçekleştirilir.

  • Adım 1: Commitment (Taahhüt) Bu aşamada, kanıtın doğru olduğunu göstermek için kullanılacak bilgiyi seçersiniz. Bu bilgi, mesela bir şifre, bir sayı ya da bir matematiksel ifade olabilir. Ancak bu bilgiyi doğrudan açıklamazsınız. Bunun yerine, bir taahhütte bulunursunuz, yani bu bilginin bir özetini oluşturursunuz. Bu özet, belirli bir matematiksel işlem kullanılarak elde edilir ve diğer tarafların bu özeti doğrulaması mümkündür.

  • Adım 2: Challenge (Zorluk) Bu aşamada, diğer taraflar tarafından gönderilen bir zorluk ile karşılaşırsınız. Bu zorluk, özetin doğruluğunu test etmek için kullanılır. Zorluk, özeti oluşturmak için kullanılan matematiksel işlem ile ilgilidir.

  • Adım 3: Response (Yanıt) Bu aşamada, zorluğu çözmek için gerekli olan bilgiyi kullanarak bir yanıt verirsiniz. Bu yanıt, özetin doğru olduğunu kanıtlar. Ancak bu yanıt, özeti oluşturan bilgiyi ortaya çıkarmaz.

Bu üç aşama, kanıtın doğru olduğunu gösterirken, kanıtın içeriğini ortaya çıkarmadan gerçekleştirilir. Bu nedenle, Zero Knowledge Proof, güvenli ve gizli bir kanıt sunar.

Zero Knowledge (Sıfır Bilgi Kanıtı) Türleri Nelerdir?

  • Interactive Zero-Knowledge Proofs (Etkileşimli Sıfır Bilgi Kanıtları)
  • Non-Interactive Zero-Knowledge Proofs (Etkileşimsiz Sıfır Bilgi Kanıtları)
  • Zero-Knowledge Succinct Non-Interactive Argument of Knowledge (Öz Kısa Etkileşimsiz Sıfır Bilgi Kanıtları)
  • Zero-Knowledge Scalable Transparent Argument of Knowledge (Öz Kısa Etkileşimsiz Şeffaf Bilgi Kanıtları)

Interactive Zero-Knowledge Proofs (Etkileşimli Sıfır Bilgi Kanıtları)

Etkileşimli sıfır bilgi kanıtlarında, kanıtlayan ve doğrulan taraflar birkaç kez etkileşime girerler. Doğrulayıcı, ispat edene kadar sorular sorarak kanıtlayana meydan okur. Bu teknoloji, bir kullanıcının bir iddiada bulunmasını ve bu iddiayı kanıtlamasını sağlar, ancak kanıtlayan kişi iddiasının ne olduğunu açıklamaz.

Örneğin, bir kullanıcının bir şifre ya da kimlik bilgisi hakkında bilgi sahibi olduğunu kanıtlaması gerektiğinde kullanılabilir.

Bu teknoloji, özellikle blok zinciri teknolojileri gibi güvenliğin önemli olduğu alanlarda kullanılır. Etkileşimli sıfır bilgi kanıtları, kullanıcının gizliliğini korurken, güvenilirlik ve doğruluk sağlamak için kullanılabilir.

Non-Interactive Zero-Knowledge Proofs (Etkileşimsiz Sıfır Bilgi Kanıtları)

Bir kullanıcının bir iddiada bulunmasını ve iddiasını kanıtlamasını sağlayan, ancak kullanıcının doğrudan bir kanıt sunmasına gerek kalmadan yapabilen bir kriptografik protokol türüdür. Bu protokoller, özellikle veri gizliliği ve kimlik doğrulama gibi alanlarda kullanılabilir. Etkileşimsiz sıfır bilgi kanıtlarında, kanıtlayan ve doğrulayan taraflar etkileşime geçmezler. Doğrulayıcı tarafından belirli bir zamanda yalnızca bir kez doğrulanabilir. Etkileşimsiz sıfır bilgi kanıtları, etkileşimli sıfır bilgi kanıtlarına göre daha fazla hesaplama gücü gerektirmektedir.

Etkileşimsiz sıfır bilgi kanıtları, blok zinciri teknolojileri gibi alanlarda kullanılan dijital para birimleri ve kimlik doğrulama gibi alanlarda kullanışlıdır. Örneğin, bir kullanıcının bir işlemin geçerli olduğunu kanıtlaması gerektiğinde veya bir kullanıcının kimliğinin doğruluğunu kanıtlaması gerektiğinde kullanılabilir. Bu teknoloji, kullanıcıların gizliliğini korurken, doğruluk ve güvenilirlik sağlamak için kullanılabilir.

Şu anda blockchain protokolleri tarafından kullanılan iki tür Zero Knowledge teknolojisi vardır: ZK-SNARKs ve ZK-STARKs.

Zero-Knowledge Succinct Non-Interactive Argument of Knowledge (Öz Kısa Etkileşimsiz Sıfır Bilgi Kanıtları)

zk-SNARK, Zerocash'ın ortak mucidi, Zcash'ın ortak kurucusu ve StarkWare Industries'in ortak kurucusu olan Profesör Alessandro Chiesa ve ekibi tarafından Ocak 2012'de ortaya çıkarıldı.

zk-SNARK, veri gizliliğini koruyarak doğrulama işlemlerinin hızlı ve verimli bir şekilde yapılmasına olanak tanır. Bu teknoloji, kullanıcının bir iddiayı doğrulamasına olanak tanıyan öz kısa etkileşimsiz sıfır bilgi kanıtlarının bir türüdür. Bir kullanıcının bir iddiayı doğrulaması için sadece bir kanıt sunması yeterlidir ve bu kanıt, oldukça küçük boyutlu ve hızlı bir şekilde doğrulanabilir. Özellikle blok zinciri teknolojileri ve kriptoparalar gibi alanlarda kullanılır.

SNARK = Succinct Non-interactive ARguments of Knowledge

Succinct: Bu, daha küçük boyutlu bir ispatın sağladığı hızlı ve kolay doğrulamayı ifade eder. "Hızlı ve kolay" burada minimal hesaplama gereksinimlerine dönüşür, bu da SNARK'ın azaltılmış gaz tüketimi ve blok zincirinde daha hızlı işlemler için avantajlı olmasını sağlar.

Non-interactive: Etkileşimsiz zkp, bir kanıtlayıcının herhangi bir etkileşim olmadan belirli bir bilgiye sahip olduğunu kriptografi yoluyla kanıtlamasına olanak tanıyarak, etkileşimli zkp'nin sınırlamalarını aşar. Bugün zero-knowledge proof teknolojisi olarak adlandırdığımız çoğu şey, etkileşimsiz zkp'dır. (Etkileşimli zkp'nin sınırlaması: İspatlar olasılığa dayanır ve birden fazla etkileşim gerektirir, bu da hız ve hesaplama açısından kısmen verimsizdir.)

Argument of Knowledge: Protokol bu doğrultuda yukarıda belirtilen "sağlamlık" kriterlerini karşılamalıdır, böylece hile yapılması imkansızdır ve gerçekle ilgisi olmayan herhangi biri için ZK-SNARK oluşturmak çok zordur.

(Not: İki teknoloji arasındaki açık kontrast için, karşılaştırmalar erken SNARK'lar üzerinden yapılmıştır.)

Örneğin, kripto para birimleri gibi işlemlerin doğrulanması ve anonimliği sağlamak için kullanılabilir. Ancak, zk-SNARK'ın doğru bir şekilde kullanılması için, gizlilik, güvenlik ve doğruluk konularında dikkatli bir şekilde tasarlanması ve uygulanması gerekmektedir.

image

Bir zk-SNARK, üç algoritmadan oluşur: G, P ve V.

  • Anahtar üreteci G, gizli bir parametre lambda ve bir program C alır ve iki açık anahtar olan bir kanıt anahtarı pk ve doğrulama anahtarı vk üretir. Bu anahtarlar, yalnızca bir kez C programı için oluşturulması gereken genel parametrelerdir.

  • Kanıtlayıcı P, kanıt anahtarı pk, bir kamu girdisi x ve özel bir şahit w olarak girilen girdileri alır. Bu algoritma, kanıtlayıcının bir şahit w bildiğini ve şahidin programı sağladığını gösteren bir kanıt prf = P(pk, x, w) oluşturur.

  • Doğrulayıcı V, doğrulama anahtarı vk, bir kamu girdisi x ve bir kanıt prf alır ve kanıtın doğru olup olmadığını hesaplar. Bu işlev, kanıtlayıcının C(x,w) == true koşulunu sağlayan bir şahit w bildiğini doğrular.

Burada anahtar üretiminde kullanılan gizli lambda parametresine dikkat edilmelidir. Bu parametre, zk-SNARK'ların gerçek dünya uygulamalarında kullanımını zorlaştırır. Nedeni ise lambda'yı bilen herhangi bir kişi, herhangi bir program C ve açık girdi x için, gizli w bilgisi olmadan doğru olduğu kanıtı fake_prf gibi sahte bir kanıt oluşturabilir.

Zero-Knowledge Scalable Transparent Argument of Knowledge (Öz Kısa Etkileşimsiz Şeffaf Bilgi Kanıtları)

zk-STARK, 2018 yılında Eli Ben-Sasson ve ekibi tarafından ortaya çıkarılmıştır. zk-STARK, öz kısa etkileşimsiz sıfır bilgi kanıtlarının bir türüdür ve blok zincirlerinde kullanılabilen bir doğrulama protokolüdür. Diğer sıfır bilgi kanıtı türlerinden farklı olarak, zk-STARK'ın temel özelliği ölçeklenebilirliktir. Bu teknoloji, özellikle büyük veri işleme işlemlerinde kullanılabilir. zk-STARK, veri gizliliğini koruyarak doğrulama işlemlerinin hızlı ve verimli bir şekilde yapılmasına olanak tanır. Kanıtın boyutu, verilerin boyutundan bağımsızdır ve sonuç olarak kanıt, oldukça küçük boyutlu ve hızlı bir şekilde doğrulanabilir.

zk-STARK'ın blok zincirleri gibi alanlarda kullanılabilmesi, özellikle anonimlik ve güvenlik gibi konularda avantaj sağlar. Ancak, zk-STARK'ın uygulanması oldukça karmaşık olabilir ve doğruluğunun, gizliliğinin ve güvenliğinin sağlanması için dikkatli bir şekilde tasarlanması ve uygulanması gerekmektedir.

STARK = Scalable Transparent ARguments of Knowledge

Scalable: zk-STARK, blok zincirinin ölçeklenebilirliğini iyileştirmeye odaklanan bir teknolojidir. Karmaşık ispatları çözerken bile, SNARK'a kıyasla büyük ölçüde daha yüksek bir hesaplama gücü gerektirmez ve bu nedenle daha iyi ölçeklenebilirlik beklenir. Aşağıdaki grafik, STARK beyaz kağıdından alınan verilere dayanarak, hesaplama karmaşıklığı arttıkça SNARK ve STARK için gereken süredeki değişikliği görselleştirir. İspatın artan karmaşıklığına rağmen STARK, nispeten mütevazı dalgalanmalar gösterir.

Transparent: STARK güvenilir bir kurulum gerektirmez. Bu, ispat için kullanılan parametrelerin şeffaf bir şekilde açıklandığı anlamına gelir.

zk-SNARK ve zk-STARK Arasındaki Fark Nedir?

  • Scalability: zk-SNARK, hesaplama gücü açısından daha yüksek bir ölçeklenebilirlik sınırına sahiptir. Karmaşık ispatları çözerken bile, SNARK'a kıyasla daha az hesaplama gücü gerektirir. Bu nedenle, zk-STARK'a kıyasla daha hızlı ve daha ölçeklenebilir bir teknolojidir.

  • Transparency: zk-SNARK, ispat için güvenilir bir kurulum gerektirir. Bu kurulum işlemi, herhangi bir hileli davranışta bulunulmaması için çok önemlidir. Ancak zk-STARK, güvenilir bir kurulum gerektirmez ve bu nedenle daha şeffaf bir teknolojidir.

  • Security Assumptions: zk-SNARK, çift örneklemeli hesaplamalara dayanırken, zk-STARK, post-kuantum güvenlik önlemleri sağlamak için polinomların kullanımına dayanır. Bu nedenle, zk-STARK, gelecekteki kuantum saldırılarına karşı daha dayanıklı olabilir.

  • Proof Size: Sıfır bilgi kanıtı, bir tarafın (kanıtlayan) belirli bir ifadenin doğru olduğunu diğer tarafına (doğrulayıcıya) açıklamadan kanıtlama yöntemidir. Kanıt boyutu, bu kanıt için gereken veri miktarına atıfta bulunur. Kanıt boyutu, sıfır bilgi kanıtında belirleyici bir faktördür, çünkü kanıt boyutu ne kadar büyükse, kanıtı oluşturmak ve göndermek için gereken hesaplama ve etkileşim o kadar fazla olur. Güvenilir kurulumu tamamlanmış bir SNARK'ın ispat boyutu, STARK'lara göre önemli ölçüde daha küçüktür. Sonuç olarak, SNARK'ın gaz tüketimi ve gereken zamanı STARK'tan önemli ölçüde daha düşüktür. Bu, birçok projenin neden SNARK uygulamayı tercih ettiği nedenlerden biridir.

Sonuç olarak, zk-SNARK ve zk-STARK, farklı avantajlar ve dezavantajlar sunan iki farklı teknolojidir. Her ikisi de blok zinciri ve diğer alanlarda gizlilik ve güvenlik açısından önemli bir rol oynamaktadır.

image

zk-STARK hash fonksiyonu kullandığı ve güvenilmez bir kanıt modeli tercih ettiği için; zk-SNARK teknolojisine göre doğrulama işlemi uzun sürebilir. Prover (kanıtlayan taraf) zaman olarak zk-SNARK'a göre daha düşüktür.

image

Sıfır Bilgi Kanıtlarının Kullanım ve Uygulama Alanları

  • BLOCKCHAIN: Bitcoin ve Ethereum gibi halka açık blokzincirlerinin şeffaflığı, işlemleri kamuya açık ve doğrulanmasını mümkün kılar. Ancak bu durum daha az mahremiyet anlamına gelir ve kullanıcıların anonimleştirilmesine yol açabilir. Zero Knowledge bu bağlamda kamuya açık blok zincirlerine daha fazla gizlilik kazandırabilir. Örneğin, Zcash kripto para birimi, Zero-Knowledge Succinct Non-Interactive Argument of Knowledge (zk-SNARK) adlı bir zero-knowledge yöntemine dayanmaktadır. Ayrıca Ethereum blok zincirinde kullanılan ve ölçeklenebilirlik ve gizlilik sağlayan Zero-Knowledge Scalable Transparent Argument of Knowledge (zk-STARK) yöntemidir. 2018'de, Bulletproofs tanıtıldı. Bulletproofs, güvenilir kurulum gerektirmeyen etkileşimsiz sıfır bilgi kanıtından bir iyileştirme yapar.

  • FİNANS: ING, müşterilerinin gizli numaralarını belirli bir aralıklarda doğruluğunu kanıtlayabilecekleri ZKPs yöntemi kullanıyor. Örnek vermek gerekirse, konut kredisi almak için başvuru yapan kişi net maaş bilgisini paylaşmadan kredi almaya uygun olduğunu kanıtlayabilir.

  • KİMLİK DOĞRULAMA: Sıfır bilgi kanıtı, şifre gibi gizli ve kişisel verileri değiştirmeden kullanıcıların kimlik bilgilerini doğrulamalarını sağlayabilir. Örneğin, bir kullanıcının bir web sitesine giriş yapabilmesi için kullanıcı adı ve şifre gibi bilgileri paylaşması gerekir. Ancak, siz bu bilgileri paylaşmak istemiyorsunuz. Bunun yerine, Zero Knowledge Proof kullanarak, kullanıcı kimliğini doğrulayabilir, ancak kimliğindeki bilgileri paylaşmadan giriş yapabilir.

  • MAKİNE ÖĞRENİMİ: ZKP'ler, bir makine öğrenimi algoritmasının sahibinin model hakkında herhangi bir bilgi açıklamadan diğerlerine model sonuçları hakkında ikna etmesine olanak tanıyabilir.

  • ETİK DAVRANIŞ: Zero Knowledge (Sıfır Bilgi) protokollerinde dikkat çeken ve üzerinde durulması gereken durumlardan biri de; gizliliği korurken dürüst davranışı da korumaktadır. Bu sebeple, bir beyanı olan kullanıcı protokole göre doğru davrandığını kanıtlamak için sıfır bilgi kanıtını kullanmak zorundadır. Geçerli bir kanıt sağlamak için dürüst olmak zorunda olduğunu biliniyor. Sıfır bilgi kanıtı sayesinde kullanıcı gizliliğini korumak istediği bilgileri koruyabilir ve açıklamaz.

  • NÜKLEER SİLAHSIZLANMA: Princeton Plazma Fizik Laboratuvarı ve Princeton Üniversitesi, 2016 yılında gelecekteki nükleer silahsızlanma görüşmeleri için uygulanabilirliği olabilecek bir yöntem oluşturdu. Nükleer Silahsızlanma çerçevesinde yer alabilecek her husus-muayene ekipleri, iç yapısı ve denetimi, gizlenmesi gereken nükleer silah olup olmadığını iç çalışmalar kayıt dışı kalarak ve paylaşım gereği olmadan, ortaya çıkarmadan tamamlayabilir.

  • VERİ GİZLİLİĞİ: Zero Knowledge Proof, veri gizliliği için de kullanılabilir. Örneğin, bir kuruluşun bir kullanıcının kişisel bilgilerini doğrulaması gerekiyorsa, bu bilgilerin tamamını paylaşmak yerine, sadece doğrulamanın gerekli olduğu bilgileri paylaşabilir.

  • PAROLA DOĞRULAMA: Zero Knowledge Proofs, bir kullanıcının bir parola sahibi olduğunu kanıtlamasına yardımcı olabilir. Örneğin, bir kullanıcının bir web sitesine giriş yapmak için bir parolaya ihtiyacı varsa, ZKP, kullanıcının parolayı bildiğini doğrulayabilir ancak parolayı kendisi ifşa etmez.

  • OYLAMA SİSTEMİ: Zero Knowledge Proofs, oylama sistemlerinde kullanılabilir. Örneğin, bir oylama sistemine katılan bir kişi, oyunu verdiğini kanıtlamak istediğinde, ZKP kullanarak oyunun gerçekten verildiğini ancak oy verilen adayın kim olduğunu ifşa etmeden kanıtlayabilir.

Sıfır Bilgi Kanıtlarının Zorlukları Nelerdir?

  • Sıfır Bilgi Kanıtlarının Garantisi Olmaması

Top seçimi sürecinin her tekrarlama aşamasında kanıtlayıcının yalan söyleme olasılığı azalır, ancak hiçbir zaman sıfıra ulaşamaz. Bu nedenle, sıfır bilgi kanıtları matematiksel olarak gerçek bir kanıt değildir.

  • Yoğun Hesaplama Süreci

Kullanılan algoritmalar, doğrulayıcı ve kanıtlayıcı arasında birçok etkileşim gerektirdiği için (etkileşimli ZKP'lerde), veya yüksek hesaplama kapasiteleri gerektirdiği için (etkileşimsiz ZKP'lerde) hesaplama yoğunluğuna sahiptir. Bu durum, ZKP'lerin yavaş veya mobil cihazlar için uygun olmamasına neden olur.

  • Sınırlı Kullanım

Sıfır bilgi kanıtları, sayısal verilere dayandığı için kısıtlıdır. Bu, diğer tür bilgilerle yapılmayacak olan sayısal değerlere bir geçişin gerekliliği anlamına gelir. Bu finansal ve benzeri sayısal işlemler için bir endişe olmayabilirken, sıfır bilgi kanıtları büyük karmaşık veri kümeleriyle kullanıldığında daha az pratiktir.

  • Minimal Altyapı

Başka bir zorluk, protokol ile ilgisi olmayan bir konudur. Sıfır bilgi kanıtlarının uygulanması o kadar yeni ki, belirlenmiş standartlar, diller ve sistemlerin eksikliği bulunmaktadır. Bu altyapı eksikliği, kurumların önce bir etkileşim sistemi kurmadan sıfır bilgi kanıtlarını kullanarak etkileşimde bulunmasını zorlaştırır. ZKProof, sıfır bilgi kanıtlarının benimsenmesini hızlandıracak uluslararası standartları oluşturmaya çalışan bir organizasyondur.

Ethereum'da zk-SNARK'ların Kullanımı

Ethereum, açık kaynaklı bir blok zinciridir. Ethereum ayrıca, diğer kripto para birimlerinde olduğu gibi, merkezi olmayan bir yapıya sahiptir. Ancak, uygulamaların tümü blok zincirinde çalıştırılır ve bu nedenle blok zincirindeki hesaplama gücü ve depolama alanı sınırlıdır. Bu sınırlamalar, bazı uygulamaların yeterince hızlı veya verimli bir şekilde çalışmasını engelleyebilir. Bu sorunu çözmek için, zk-SNARK'lar gibi çözümler Ethereum'un geliştiricileri tarafından entegre edilmeye başlandı.

Zero Knowledge Proof teknolojileri arasında en popüler olanı, zk-SNARK'lar (Zero Knowledge Succinct Non-Interactive Argument of Knowledge) olarak bilinir. Bu teknoloji, bir kanıtın doğru olduğunu gösterirken, kanıtın içeriğini açığa çıkarmadan gerçekleştirilen bir işlem sağlar. Bu nedenle, özellikle gizlilik odaklı uygulamalarda kullanışlıdır.

zk-SNARK'lar, Sıfır Bilgi Kanıtı olarak adlandırılan bir protokolü kullanır. Bu protokol, bir kanıtlayıcının bir belgeyi sunduğu bir doğrulama sistemi oluşturur. Bu doğrulama sistemi, belgeyi doğrulamak için gerekli olan tüm bilgileri içerir, ancak belgenin kendisi hakkında hiçbir bilgi sağlamaz. Bu, belgeyi doğrulamanın, belgenin içeriğinin tam olarak görülmeden yapılmasına olanak tanır.

image

Ethereum'da zk-SNARK'ların kullanımı, doğrulama algoritmasının blok zincirine entegre edilmesiyle gerçekleştirilir. Bu, zincir dışında çalıştırılan bir üreteç kullanılarak kanıt anahtarının ve doğrulama anahtarının oluşturulmasını gerektirir. Daha sonra, bir kanıtlayıcı kanıt anahtarını kullanarak bir kanıt oluşturabilir ve bu kanıt blok zincirine eklenmeden önce doğrulama anahtarı ve kamu girdisi ile birlikte doğrulama algoritmasından geçirilebilir. Doğrulama algoritmasının sonucu, blok zincirindeki akıllı sözleşmenin diğer aktiviteleri tetiklemesine izin verir.

Aynı zamanda zk-SNARK'ların kullanımı, özellikle Ethereum'un ölçeklenebilirlik sorunlarını çözmek için geliştirilen çözümlerde önemlidir. Örneğin, zk-SNARK'lar, Ethereum'un ana zincirinde gerçekleştirilen işlemlerin sayısını azaltmak için kullanılabilir. Bu sayede, işlem ücretlerinin düşürülmesi ve blok zincirinin daha hızlı çalışması sağlanabilir. Ayrıca, Ethereum'da zk-SNARK'lar, akıllı sözleşmelerin güvenliğini artırmak için de kullanılabilir. Örneğin, akıllı sözleşmelerde yapılan işlemlerin doğruluğunu ve güvenliğini kanıtlamak için kullanılabilirler. Bu sayede, akıllı sözleşmelerdeki hataların ve güvenlik açıklarının tespit edilmesi daha kolay hale gelir.

zk-SNARK'lar Ethereum'da birçok farklı kullanım alanı sunar. Örneğin, özel bir veritabanında depolanan özel bilgilerin kullanımını kontrol etmek için kullanılabilirler. Ayrıca, blok zinciri içinde gerçekleştirilen anlaşmaların doğrulanması için kullanılabilirler.

Sonuç olarak, zk-SNARK'lar gibi teknolojiler, blok zincirinin kullanımının daha da genişlemesine olanak tanır ve Ethereum'da daha güvenli ve ölçeklenebilir uygulamaların geliştirilmesine yardımcı olur. Ethereum geliştiricileri, zk-SNARK'ları kullanarak yeni uygulamaların ve çözümlerin geliştirilmesine çalışmaktadır.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published