zk-SNARK: Yenilikçi Sıfır Bilgi Kanıtı ve uygulamaları

Orta SeviyeNov 28, 2023
zk-SNARK teknolojisi, gizliliğin korunması ve şifreli doğrulama alanlarında önemli bir atılımı temsil ediyor. Yalnızca güçlü gizlilik garantileri sağlama konusunda umut verici değil, aynı zamanda blockchain ve diğer çeşitli uygulamaların ölçeklenebilirliğini artırma konusunda da pratiktir.
zk-SNARK: Yenilikçi Sıfır Bilgi Kanıtı ve uygulamaları

Arka fon

Sıfır bilgi kanıtı (ZKP), ilk olarak S. Goldwasser, S. Micali ve C. Rackoff tarafından 1980'lerin başında The Knowledge Complexity Of Interactive Proof Systems başlıklı bir makalede önerilen bir şifreleme teknolojisidir. Bu yazıda, matematiksel ifadelerin kanıtları ortaya koymadan doğrulanması sorununu ele alan teorik bir model olarak kavramsallaştırılmıştır. Bu kavram, geleneksel şifreleme tekniklerinin sınırlarını zorlaması ve hassas bilgilerin işlenmesine yeni bir yaklaşım sağlaması nedeniyle akademik camiada büyük ilgi gördü.

Zamanla ZKP soyut bir teorik kavramdan çeşitli uygulamalara entegre edilebilecek somut protokollere dönüştü. 2010 yılında Groth, ZKP'de önemli bir çözüm olan zk-SNARK'ın geliştirilmesinde ufuk açıcı bir çalışma haline gelen Kısa Eşleştirmeye Dayalı Etkileşimli Olmayan Sıfır Bilgi Argümanları başlıklı bir makale yayınladı. ZKP'nin en önemli pratik uygulaması, Z-cash tarafından 2015 yılında kullanılan ve işlemler ve tutarlar için gizlilik koruması sağlayan sıfır bilgi kanıtlama sistemidir. Daha sonra zk-SNARK akıllı sözleşmelerle birleşerek daha geniş bir uygulama yelpazesine yol açtı.

zk-SNARK'ın Teknik Prensipleri

Geleneksel ZKP'nin uyması gereken ilkeler şunlardır:

  • Tamlık: Eğer bir ifade doğruysa, dürüst bir kanıtlayıcı, doğrulayıcıyı onun doğruluğuna ikna edebilir.
  • Sağlamlık: Eğer bir ifade yanlışsa, herhangi bir sahtekar kanıtlayıcının, doğrulayıcıyı, ifadenin doğru olduğuna inandıracak şekilde yanıltma olasılığı yalnızca küçük olacaktır.
  • Sıfır bilgi: Bir ifade doğruysa, doğrulayıcı, ifadenin doğru olduğu gerçeği dışında herhangi bir ek bilgi öğrenmeyecektir. Başka bir deyişle doğrulama süreci, kanıt oluşturmak için kullanılabilecek herhangi bir bilgiyi ortaya çıkarmaz.

ZKP'nin prensibi basit bir örnekle anlaşılabilir: Eğer A'ya B'nin telefon numarasına sahip olduğumu kanıtlamam gerekiyorsa doğrudan A B'nin telefon numarasını söylememe gerek yok. Bunun yerine, doğrudan B'nin telefon numarasını çevirebilirim ve çağrı bağlandığında, bu gerçekten B'nin telefon numarasına sahip olduğumu kanıtlayabilir. Bu işlem B'nin numara bilgisini açıklamaz.

Ve zk-SNARK, bu temelde aşağıdaki özelliklere sahip daha fazla yükseltme yapar:

  • Sıfır Bilgi: Doğrulayıcı kanıttan herhangi bir yararlı bilgi elde edemez.
  • Kısa: Kanıt küçük boyutludur (genellikle yalnızca birkaç düzine bayt) ve doğrulama süresi kısadır (genellikle yalnızca birkaç milisaniye).
  • Etkileşimli olmayan: Kanıtlayıcının kanıtı doğrulayıcıya yalnızca bir kez göndermesi gerekir, başka bir iletişim gerektirmez.
  • Güvenilir Parametreler: Hem kanıtlayıcı hem de doğrulayıcının, güvenilir bir üçüncü taraf tarafından oluşturulan bir Ortak Referans Dizesi (CRS) kullanması gerekir. CRS bazı hassas bilgiler içerebilir ve sızdırılması veya tahrif edilmesi durumunda sistemin güvenliğini tehdit edebilir.

Groth'un makalesinde, bir hesaplama problemini İkinci Dereceden Aritmetik Programa (QAP) dönüştüren ve ardından eliptik eğri kriptografisi ve hash fonksiyonlarını kullanarak etkili bir kanıt oluşturan, eşleştirmelere dayanan etkileşimli olmayan bir sıfır bilgi kanıt yöntemi önerdi. zk-SNARK'ın sonraki tasarımları genellikle dört adımdan oluşur:

  • Kurulum: Güvenilir bir üçüncü tarafça gerçekleştirilir ve kanıt oluşturmak için bir kanıtlama anahtarı (pk) ve kanıtları doğrulamak için bir doğrulama anahtarı (vk) içeren bir CRS oluşturur. Bu işlemin yalnızca bir kez yürütülmesi gerekir ve CRS birden çok kez yeniden kullanılabilir.
  • Problem Kodlaması: f(x) = y hesaplama problemi A(x)·B(x) = C(x)·Z(x) QAP formuna dönüştürülür, burada A(x), B(x), C (x) f'nin devre yapısı tarafından belirlenen polinomlardır, Z(x) sabit bir polinomdur, x rastgele seçilmiş bir noktadır ve y, f'nin çıkışıdır. Bu adım, kanıtlayıcı veya doğrulayıcı tarafından gerçekleştirilebileceği gibi önceden üçüncü bir tarafça da yapılabilir.
  • Kanıt Üretme: Kanıtlayıcı tarafından gerçekleştirilen bu işlem, w'nin belirli değerini açıklamadan, f(w) = y'yi karşılayan aw'yi bildiklerini kanıtlamak için pk, x ve w'nin girdisini kullanarak bir π kanıtı üretir. Bu süreç polinom hesaplamalarını, eliptik eğri işlemlerini ve hash fonksiyonu işlemlerini içerir ve sonuçta birkaç eliptik eğri noktasından ve bir hash değerinden oluşan bir π üretir.
  • Kanıt Doğrulaması: Doğrulayıcı tarafından gerçekleştirilen, kanıtlayıcının gerçekten f(w) = y'yi karşılayan aw'yi bilip bilmediğini doğrulamak için vk, x, y ve π'yi kullanır. Bu süreç aynı zamanda polinom hesaplamalarını, eliptik eğri işlemlerini ve hash fonksiyonu işlemlerini de içerir ve sonuçta kanıtın geçerliliğini gösteren bir Boole değeri verir.

Anlamaya yardımcı olması için basit bir örnek ele alalım: Diyelim ki, gömülü hazinenin tam yerini bulmanızda size rehberlik edebilecek bir hazine haritanız var. Haritanın içeriğini veya hazinenin gerçek yerini açıklamadan birine hazinenin yerini bildiğinizi kanıtlamak istiyorsunuz. zk-SNARK teknolojisini kullanırsanız karmaşık bir hazine haritası bulmacası oluşturmanız gerekir. Bulmacanın küçük bir parçasını (bir kanıt) seçersiniz ve bunu kişiye gösterirsiniz, bu da onları bulmacanın tamamını görmeden tüm bulmacanın birbirine nasıl uyduğunu, yani hazinenin yerini bildiğinize ikna eder. Ancak bunu başarmak için güvenilir bir matbaadan yapboz parçanızın orijinal olduğunu kanıtlayan özel işaretler almanız gerekir.

Neden zk-SNARK'a ihtiyacımız var?

Sıfır bilgi kanıtlarına geleneksel yaklaşım, kanıtlayıcının doğrulayıcıya sürekli olarak "evet mi hayır mı?" diye sorduğu etkileşimli kanıt yöntemlerini içerir. Doğru cevaba ulaşana kadar sorular. Bu süreç verimsizdir. Ancak zk-SNARK, güvenilir bir üçüncü taraftan CRS alarak tekrarlanan etkileşim ihtiyacını ortadan kaldırır. Tüm kanıtlayıcılar doğruluğu belirlemek için CRS'yi doğrudan karşılaştırabilir. Bu, sıfır bilgi kanıtlarının verimliliğini büyük ölçüde artırır.

Ayrıca zk-SNARK aşağıdaki avantajları da sunar:

  • Gizlilik koruması: zk-SNARK, kanıtlayıcının herhangi bir özel bilgiyi açıklamadan doğrulayıcıya bilgi sahibi olduğunu veya belirli koşulları yerine getirdiğini göstermesine olanak tanır. Bu özellikle kimlik doğrulama, anonim oylama ve özel işlemler gibi hassas veya özel verileri içeren senaryolarda kullanışlıdır.
  • Ölçeklenebilirlik: zk-SNARK, karmaşık hesaplama sorunlarını küçük ve hızlı kanıtlara sıkıştırarak doğrulayıcıların hesaplama yükünü ve depolama gereksinimlerini azaltır. Bu, bulut bilişim, blockchain ölçeklenebilirliği ve doğrulanabilir hesaplama gibi büyük miktarda verinin verimli bir şekilde doğrulanmasını ve depolanmasını gerektiren senaryolarda faydalıdır.
  • Güvenlik: zk-SNARK, yüksek güvenlik sağlayan ayrık logaritma problemi ve çift doğrusal haritalama problemi gibi matematiksel açıdan zor problemlere dayanmaktadır. Kuantum olmayan hesaplama varsayımı altında, güvenilir üçüncü taraf CRS'yi sızdırmadığı veya kurcalamadığı sürece, bir kanıtlayıcının sahte bir kanıt sunması veya bir doğrulayıcının bir doğrulama sonucunu taklit etmesi imkansızdır.

zk-SNARK'ın Gerçek Dünya Uygulamaları

zk-SNARK'ın ilk uygulaması, kullanıcıların zk-SNARK kullanarak gönderen, alıcı ve tutar gibi bilgileri gizleyerek tamamen anonim işlemler yapmasına olanak tanıyan Zcash'tir. Mevcut Web3 alanında zk-SNARK teknolojisi, blockchain ölçeklenebilirliği ve döviz rezervi yönetiminde önemli bir rol oynamaktadır.

Blockchain Ölçeklenebilirliği

Blockchain'in konsensüs mekanizması ve güvenlik gereklilikleri nedeniyle verimi ve verimliliği büyük ölçüde sınırlıdır. Bu sorunu çözmek için yaygın bir çözüm, çok sayıda işlemi veya hesaplamayı ana zincirden (Katman1) Katman2'ye taşımak için blok zincirinin üzerinde ek bir katman oluşturan ve böylece sistemin performansını ve kullanılabilirliğini artıran Layer2 teknolojisini kullanmaktır. .

zk-SNARK, Katman2'deki işlemleri veya hesaplamaları küçük ve hızlı bir kanıta sıkıştırabildiğinden ve daha sonra ana zincirde doğrulama için gönderildiğinden, Katman2'nin doğruluğunu ve tutarlılığını sağladığından bu çözümde önemli bir rol oynar. Şu anda zk-SNARK'ı temel alan iki ana Layer2 çözümü bulunmaktadır: ZK-rollup ve Validium.

  • ZK-rollup: Bu çözüm, tüm durum verilerini ana zincirde saklar ancak durum geçişlerinin geçerliliğini doğrulamak için kanıtları kullanır. Bu, Layer2 verilerinin kullanılabilirliğini ve güvenliğini sağlar ancak ana zincir üzerindeki depolama yükünü artırır. Örneğin zkSync, durum verilerini Ethereum ana zincirinde saklar ve sıfır bilgi kanıtları aracılığıyla durum geçişlerinin geçerliliğini sağlar. Benzer projeler arasında Polygon zkEVM ve Scroll yer alıyor.
  • Validium: Bu çözüm, tüm durum verilerini Layer2'de veya diğer güvenilir üçüncü taraflarda saklar ve kanıtları yalnızca durum geçişlerinin geçerliliğini doğrulamak için kullanır ve kanıtları ana zincire gönderir. Bu, ana zincirdeki depolama yükünü azaltır ancak Katman2 verilerinin kullanılabilirliğini ve güvenliğini azaltabilir. DeversiFi, veri gizliliğini sağlarken Layer2 işlem hızını ve verimliliğini korumak için Validium teknolojisini kullanır. Loopring, ana zincir üzerindeki depolama baskısını hafifletmek için bir Validium modu sağlar.

Borsalarda Fon Rezervi

Kripto para piyasasının değişkenliği ve belirsizliği nedeniyle birçok borsanın potansiyel riskleri veya talepleri karşılamak için belirli miktarda rezerv fonu tutması gerekiyor. Bununla birlikte, bu rezerv fonları çoğu zaman şeffaflıktan ve güvenilirlikten yoksundur ve bu durum, kullanıcıların, borsanın varlıklarını korumaya yetecek kadar rezerv fonuna sahip olup olmadığı konusunda kararsız kalmasına neden olur.

zk-SNARK, belirli varlık ayrıntılarını veya konumlarını açıklamadan, borsaların kullanıcılara veya düzenleyici kurumlara yeterli miktar ve değerde rezerv fonuna sahip olduklarını kanıtlamalarına izin vererek bu konuda bir çözüm sağlayabilir.

Tipik bir örnek, zk-SNARK ve Merkle ağaçlarının bir kombinasyonunu kullanan Gate.io'dur. Kullanıcı verilerini şifreler ve %100 ödeme kabiliyeti yeteneklerini göstermek için kısıtlı devreler kullanarak 100 farklı tokenin rezerv fonunun kanıtlarını üretirler.

Kaynak: https://www.gate.io/proof-of-reserves

İlave Okuma: zk-SNARK, Gate.io Proof of Reserves'i nasıl geliştiriyor?

Web3 uygulamalarına ek olarak zk-SNARK, aşağıdakiler gibi blockchain dışı alanlarda da kullanılabilir:

  • Kimlik Doğrulaması: zk-SNARK, kullanıcıların yaş, uyruk, eğitim vb. herhangi bir kişisel bilgiyi açıklamadan belirli kimlik niteliklerine veya niteliklere sahip olduklarını üçüncü taraflara kanıtlamalarına olanak tanır. Bu, çevrimiçi alışveriş, çevrimiçi eğitim, dijital imzalar vb. gibi kimlik doğrulama veya yetkilendirme gerektiren senaryolarda kullanışlıdır.
  • Elektronik Oylama: zk-SNARK, kullanıcıların belirli oylama faaliyetlerine katılımlarını ve belirli protokollere veya kurallara uyumlarını, herhangi bir oylama içeriği veya meta veriyi açıklamadan üçüncü taraflara kanıtlamalarına olanak tanır. Bu, demokratik seçimler, topluluk yönetimi, kamusal karar alma vb. gibi oy verme gizliliğinin ve güvenliğinin korunmasını gerektiren senaryolarda faydalıdır.

Teknik Sınırlamalar ve Zorluklar

Önceki bölümde, zk-SNARK'ın CRS oluşturmak için güvenilir bir üçüncü taraf bularak kanıt verimliliğini artırdığından bahseden zk-SNARK'ın teknik ilkelerini tanıtmıştık. Ancak bu aynı zamanda zk-SNARK'ın bazı doğal sınırlamalarına ve zorluklarına da yol açmaktadır.

  • Güvenilir Parametreler: zk-SNARK, güvenilir bir üçüncü tarafça oluşturulan ve hassas bilgiler içerebilecek bir CRS gerektirir. Sızdırılması veya kurcalanması durumunda sistemin güvenliğini tehlikeye atabilir. Bu sorunu çözmek için bazı projeler, birden fazla katılımcının üretim sürecine ortaklaşa katkıda bulunduğu ve gizli bilgilerini yok ettiği CRS'yi oluşturmak için Çok Taraflı Hesaplama (MPC) yaklaşımını benimsemiştir. Ancak bu yaklaşım hâlâ katılımcı bütünlüğü, iletişim maliyetleri ve koordinasyon zorlukları gibi zorluklarla karşı karşıyadır.
  • Evrensellik: Şu anda zk-SNARK yalnızca QAP veya R1CS gibi belirli hesaplama problemlerine uygulanabilir ve rastgele hesaplama problemlerine uygulanamaz. Bu sınırlamayı gidermek için bazı projeler, zk-SNARK'ın uygulanabilirliğini genişletmek amacıyla Genel Devrelerin (GC) veya Genel Özyinelemeli Kanıtın (GRS) kullanımını araştırdı. Ancak bu yaklaşım, artan kanıt boyutu, azalan verimlilik ve artan karmaşıklık gibi ödünleşimleri beraberinde getirir.
  • Doğrulanabilirlik: zk-SNARK, kanıtlayıcının herhangi bir özel bilgiyi sızdırmamasını sağlarken, kanıtlayıcının doğrulayıcıyı aldatmayacağını veya aldatmayacağını garanti etmez. Bu sorunu çözmek için bazı projeler, kanıtlayıcının bütünlüğünü geliştirmek amacıyla Doğrulanabilir Rastgele İşlevler (VRF) veya Doğrulanabilir Gecikme İşlevleri (VDF) sunmuştur. Ancak bu yaklaşım aynı zamanda sistemin karmaşıklığını ve yükünü de artırmaktadır.

Özetle, zk-SNARK'ın doğasında olan sınırlamaları ele alan çeşitli yaklaşımlar vardır.

Gelecekteki Uygulama Senaryoları

Yenilikçi bir şifreleme teknolojisi olarak zk-SNARK, özellikle gizlilik alanında geniş gelecek uygulama senaryolarına sahiptir:

  • Gizlilik Akıllı Sözleşmeleri: zk-SNARK, kullanıcıların herhangi bir sözleşme mantığını veya durumunu açıklamadan belirli akıllı sözleşmeleri yürüttüklerini ve doğru çıktıyı aldıklarını üçüncü bir tarafa kanıtlamalarına olanak tanır. Bu özellikle tedarik zinciri yönetimi, sigorta talepleri, telif hakkı koruması vb. gibi ticari sırları veya hassas kuralları içeren senaryolarda faydalıdır.1
  • Gizliliği Koruyan Hesaplama: zk-SNARK, kullanıcıların herhangi bir giriş veya çıkış verisini açıklamadan belirli hesaplama görevlerini gerçekleştirdiklerini ve doğru sonuçları elde ettiklerini üçüncü bir tarafa kanıtlamalarına olanak tanır. Bu, tıbbi teşhis, veri analizi, makine öğrenimi vb. gibi hassas veya özel verileri içeren senaryolara uygulanabilir.
  • Gizliliği Koruyan İletişim: zk-SNARK, kullanıcıların herhangi bir iletişim içeriğini veya meta veriyi açıklamadan, belirli iletişim faaliyetlerinde bulunduklarını ve belirli protokollere veya kurallara uyduklarını üçüncü bir tarafa kanıtlamalarına olanak tanır. Bu, anlık mesajlaşma, sosyal ağlar, e-posta vb. gibi iletişim gizliliğinin veya güvenliğinin korunması gereken senaryolarda faydalıdır.

Çözüm

zk-SNARK teknolojisi, gizliliğin korunması ve şifreli doğrulama alanlarında önemli bir atılımı temsil ediyor. Yalnızca güçlü gizlilik garantileri sağlama konusunda umut verici değil, aynı zamanda blockchain ve diğer çeşitli uygulamaların ölçeklenebilirliğini artırma konusunda da pratiktir. Teknik zorlukların ve sınırlamaların varlığına rağmen, zk-SNARK'ın sürekli araştırma ve yenilik yoluyla gelişmeye devam etmesini, mevcut sistemleri optimize etmesini ve gizliliğin korunması ve şifreleme teknolojisinin ilerlemesini desteklemek için yeni uygulama modellerine ilham vermesini bekliyoruz. Teknolojinin olgunluğu ve toplumda veri gizliliğine verilen önemin artmasıyla birlikte zk-SNARK, dijital çağda vazgeçilmez bir araç olma potansiyeline sahip olup, kullanıcılara bilgileri üzerinde daha fazla kontrol sağlama ve güvenli ve şeffaf dijital etkileşimleri teşvik etme potansiyeline sahiptir.

Yazar: Wayne
Çevirmen: Sonia
İnceleyen(ler): KOWEI、Piccolo、Elisa、Ashley He、Joyce
* Bilgiler, Gate.io tarafından sunulan veya onaylanan finansal tavsiye veya başka herhangi bir tavsiye niteliğinde değildir ve bu tip bir durumu teşkil etmemektedir.
* Bu makale Gate.io kaynak gösterilmeden çoğaltılamaz, aktarılamaz veya kopyalanamaz. Aykırı davranışlar, Telif Hakkı Yasasının ihlalidir ve yasal işleme tabi olabilir.
Şimdi Başlayın
Kaydolun ve
100 USD
değerinde Kupon kazanın!
Üyelik oluştur