Programlanabilir Kriptografi

Kerem Gegek
YTU Blockchain
Published in
7 min readAug 23, 2024

Kriptografide büyük bir değişime tanıklık ediyoruz.

Blockchain sektörüne aşina olan çoğu kişi, muhtemelen ZK proofları duymuştur. Bu yazıyı yazma amacım, programlanabilir kriptografı alanını ZK prooflar ve daha fazlasını açıklayarak ele almak.

YTU Blokchain araştırma & içerik ekibi olarak uzun bir aradan sonra yeni dönemle tekrar bilgisayarın başındayız. Eğer FHE’ler, MPC’ler ve iO gibi değişik ve korkutucu bir şekilde zor duran kısaltmalar hakkında bir şeyler öğrenmek istiyorsanız kahvenizi alın ve bu konuya beraber bir göz atalım.

Not: Bu yazıda genel bir bakış atacağımız Programlanabilir Kriptografi konusunda aşırı matematiğe ve teknik detaylara girmeyeceğim. İleride çok duyacağımızı düşündüğüm bu konuya genel bir aşinalık oluşturmak istiyorum.

1. Giriş

Bugün bahsedeceğimiz kavramlardan günümüzde en popüleri ZK prooflar olsa da en az ZK kadar önemli, daha mahrem, daha güçlü ve daha karmaşık protokoller de aslında programlanabilir kriptonun bir parçası.

Yazının başında kriptografide büyük bir değişime tanıklık ettiğimizden bahsetmiştim, bunu biraz daha açmak istiyorum.

Kriptografi alanı aslında binlerce yıllık bir tarihe sahip olsa da özel amaçlı kriptografi yaklaşık 50 yıllık bir tarihe sahip ve günümüzde sıkça karşımıza çıkmakta.

Özel amaçlı dediğimiz kriptografi bizlere sadece bir operasyon yapmamıza olanak sağlayan ve bu operasyonu kriptografik garantilerle güvence altına alan protokollerdir. Metamaskta kullandığımız public key private key mantığı ve dijital imza gibi operasyonlarda aslında özel amaçlı kriptografiyi kullanmaktayız.

Özel amaçlı kriptografinin daha karmaşık protokolleri de yok değil, group signatures ve range proofs gibi örnekler de mevcut. Ama bu protokollerdeki sorun, kullanılan kriptografik yöntemlerin sadece bu yöntemlere özgün olması, bazen kriptografi uzmanları yeni yöntemler oluşturmak için yeni matematik dahi icat etmeleri gerekti.

Geçtiğimiz 50 yılda evrensel iletişimin vazgeçilmezlerinden olan özel amaçlı kriptografi, whatsapp’taki uçtan uca şifreleme mantığında, her gün kullandığımız web sitelerinde https protokolü sayesinde günlük hayatımızda karşımıza çıkmakta.

Yukarıdaki şemada özel amaçlı kriptografiden genel amaçlı kriptografiye bir geçiş görmekteyiz. Genel amaçlı kriptografi aslında çok yeni bir teknoloji. Genel amaçlı kriptografinin başarmaya çalıştığı şey esasında ZK prooflar gibi karmaşık ve ilkel sayılabilecek kavramların daha esnek ve uyumlu bir hale getirilerek, bir geliştiricinin bu teknolojiyle istediği fonksiyonu kullanabilmesini mümkün kılmak.

Geleneksel kriptografi sabit özelliklere sahipken -ki bu sabit özellikler nedeniyle her yeni bir sistem için yetenekli bir kripgtafi uzmanına ihtiyaç duyuluyor- programlanabilir kriptografi sayesinde geliştiriciler bu karmaşık protokolleri kriptografi uzmanı olmadan da kullanabilecek.

1985 yılında ortaya çıkan ve 2012'ye kadar teoride kalan ZK prooflar, zk-SNARK’ların keşfi sayesinde zCash, zkRollup’lar, zkEVM’ler gibi ismi z ile başlayan bir çok sisteme olanak sağladı.

Birazdan bahsedeciğim MPC, FHE, iO gibi kavramların günlük hayata kullanılabilir hale gelmesi muhtemelen biraz zaman alacak.

Programlanabilir kripto nedir, ne değildir biraz göz attığımıza göre, daha spesifik bir şekilde protokollere göz atalım.

2. Programlanabilir Kriptografi Ürünleri

Kriptografi Teknoloji Ağacı (kaynak)

Yukarıda gördüğümüz şemadaki kalın halde yazılan sistemler programlanabilir kriptografinin ürünleri. Şemada yukarı gittikçe daha karmaşık sistemlere doğru çıkmaktayız. Bu ürünleri kısa bir şekilde soldan sağa olacak şekilde inceleyelim.

zkSNARKs

Programlanabilir kriptografinin gözde çocuğu zkSNARKs’ı muhtemelen duymuşsunuzdur. Yine de basit bir şekilde programlanabilir kriptografi çerçevesinde inceleyelim.

zkSNARK’lar bizlere herhangi bir kodun doğru execute edildiğini girilen input’lar saklı tutularak kanıtlar.

  • özel amaçlı zk prooflar ile şu iddiada bulanabiliriz: f(gizli input) = “0x36avb3”, bu iddiada bulunurken gizli inputu saklı tutarak bu fonksiyonun sonucunun gerçekten bu cevaba eşit olduğunu kanıtlarız.
  • genel amaçlı zk prooflar ile, sadece f fonksiyonu ile değil istediğimiz herhangi bir fonksiyonu kullanarak sonucun gerçekten doğru olduğunu kanıtlarız.

Multi-party computiton (MPC):

MPC bizlere birden fazla partinin ortak anlaşılan bir fonksiyonda partilerin inputlarını ortaya çıkarmadan sonucu hesaplamaya olanak tanır. MPC’lerde aynı hesaplama tüm partilerin inputlarına uygulanır, hiçbir partinin inputu ortaya çıkmaz, sadece sonuç ortaya çıkar.

ZK prooflardan farklı olarak MPC paylaşımlıdır. MPC sayesinde birden fazla parti aynı hesaplamayı ortak bir şekilde uygulayabilir.

Milyoner Problemi

MPC’leri daha iyi anlamak için bu anekdottan yararlanabiliriz. Bu problemde iki milyoner hangisinin daha çok parası olduğunu öğrenmek istemekte ancak kendi servetlerini paylaşmak istememekte. İşte burada MPC’ler yardımımıza gelebilir. Umarım böyle bir problemi yaşarsınız.

Fully Homomorphic Encryption (FHE)

FHE’ler sayesinde encrypt edilmiş yani şifrelenmiş bir veri üzerinde hesaplama yapabiliriz. Bu hesaplama veri sanki şifrelenmemiş gibi yapılır ve sonucu sadece private key sahibi decrypt edebilir. Bu sayede paylaşmak istemediğimiz bir veriyi, istediğimiz fonksiyonu kullanarak, verimiz saklı tutulacak şekilde hesaplatabiliriz.

kaynak

Witness Encryption

Witness Encryption şifrelemek istediğimiz veriyi, günümüzde olduğu gibi anahtar veya şifre kullanmak yerine, programlarla şifrelememize imkan tanır.

Örneğin gizli bir mesajı sudoku oyunuyla şifreleyebiliriz. Bu şifreyi çözmenin tek yolu ise istenilen bilgiyi girmek olur, bu veri ise sudokunun çözümüdür.

kaynak

Indistinguishability Obfuscation (iO)

En tepedeki bu arkadaşımızı ele alalım. Eğer FHE bir hesaplamadaki kullanılan bileşenleri saklıyorsa, iO bütün hesaplamayı saklıyor gibi düşünebiliriz.

Bu kavram kriptografi dünyasında teorik olarak en güçlü kriptografik sistem olarak düşünülmekte. “one cryptographic primitive to rule them all.”

Bu karmaşık kavramı kısaca anlatmaya çalışacağım ancak bu konu hakkında merak edenler ayrıca araştırmasını öneririm zira gerçekten çok yeni ve karmaşık bir konsept.

obscurekelimesi belirsiz anlamına gelmekte. Bu konseptin de amacı aslında iki fonksiyonu eşit şekilde belirsiz yapmak. Eğer iki farklı fonksiyonu birbirinden fark olmayacak bir forma sokabilirsek, bu fonksiyonun nasıl çalıştığını saklayabiliriz. Eğer iki fonksiyon arasında farkı göremez isek hangi fonksiyonun uygulandığını anlayamayız ve hiçbir bilgi ortaya çıkmaz.

Programlanabilir kriptografinin ürünlerinin ardından bunlarla neler yapabileceğimize bir göz atalım.

3. Programlanabilir Kriptografi ile Neler Yapabiliriz?

Kriptografi kelimesini duyduğumuzda, genelde aklımıza mahremiyet, güvenlik gibi kavramlar gelir. Özel amaçlı kriptografi genelde tarih boyunca gizli bilgileri “kötü amaçlı” insanlardan korumak amaçlı kullanılmıştır.

Ancak programlanabilir kriptografi sayesinde gelen esneklik ile yeni amaçlar için kriptografiyi kullanabiliriz.

Örnek: Programlanabilir Protokoller

Problem: İnternet üzerindeki bir kişi, başka bir kişinin YTU Blockchain’i takip edip etmediğini öğrenmek istiyor.

Günümüzdeki Sistem:

Programlanabilir kriptografi kullanılırsa sistem:

Not: Örnek bu videodan alınmıştır.

Örnekten gördüğümüz gibi, programlanabilir kriptografi sayesinde aracıyı ortadan kaldırarak güvenli ve mahrem bir şekilde iletişim kurmayı başarabildik. Ancak bu basit örnek bu teknoloji ile yapılabilecek sistemlerden sadece bir tanesi.

4. Teknolojileri Beraber Kullanmak

50 yıl önceye geri döndüğünüzü ve o zamanki teknolojilere izole bir perspektiften baktığınızı düşünün.

  • Fiber Optik Kablolar: Bu kabloların amacı daha fazla bant genişliğine sahip telefon hatları ve televizyon hatları oluşturmaktı.
  • Liquid Crystal Displays (LCDs): Kendi başlarına LCD’ler daha ince görüntü vermeye yarıyorlardı.

Teknolojileri sadece kendileri olarak ele aldığınızda onların kullanım alanları kısıtlanır. Ancak daha geniş bir perspektifte bakarsak bu teknolojiler farklı alanlarda kullanılarak bizlere yeni sistemler sunabilirler. Fiber optik kablolar sayesinde günümüzdeki internetin %90'ından fazlası hızlı bir şekilde çalışır, kabloların amacı bu değildi. LCD’ler ise her gün kullandığımız bilgisayar, televizyon gibi karmaşık sistemlerde karşımıza çıkar.

Bu geniş perspektifi, programlanabilir kriptografiye de uygularsak, teknolojileri beraber kullanarak kapsamlı sistemler kurmak işten değildir. zkSNARK’larla ne yapabiliriz? FHE’ler ne yapabiliriz? Diye sormak yerine bu teknolojileri de birlikte düşünmeliyiz.

Günümüzde baktığımızda da aslında şu anda dar görüşlü amaçlarla bu teknolojiler kullanılmakta.

  • zkSNARK’lar blockchainleri daha hızlı yapmak için kullanılmakta.
  • FHE’ler Ai şirketlerinde, yapay zekayı eğitirken şifrelenmiş veri ile öğreterek kullanılmakta.

Bu alanlar da kesinlikle önemli olsa da biraz dar bir bakış açısıdır. Yukarıda verdiğim basit iletişim kurma örneğinde bile birden fazla teknoloji kullanılarak beraber çalışılabilir. SNARK’larla blockchain’ler hızlandırılırken FHE, MPC gibi teknolojilerle bu ağların mahremiyeti ve güvenliği sağlanabilir.

5. Sonuç

Modern kriptografinin icadından yaklaşık 50 yıl geçti. O zamandan beri dünyamız hiçbir verinin şifrelenmediği bir dünyadan neredeyse tüm internetin şifrelenmiş olduğu bir dünyaya dönüştü. Çoğu büyük website HTTPS kullanmakta, whatsapp gibi uygulamalarda mesajlar uçtan uca şifrelenmekte, 2 trilyon dolardan fazla bir meblağ kripto paralarda tutulmakta. İlk nesil kriptografik teknikler sayesinde güvenli iletişim araçlarına sahip olduk.

Önümüzdeki 50 yılda, programlanabilir kriptografi bizi şifrelenmiş verilerden şifrelenmiş hesaplamaya taşıyabilir. Sadece iletişim araçlarının şifrelenmesinin ötesinde günlük hayatta kullandığımız çoğu şeyi şifrelenmiş bir şekilde kullanabileceğimiz bir dünyaya olanak sağlanabilir.

Önümüzdeki yıllarda sıkça duyacağımızı düşündüğüm bu konu hakkında yazıyı umarım beğenmişsinizdir. Hoşça kalın!

Yazar Notu ve Kaynaklar: Bu konu hakkında kaynak İngilizce bile gerçekten az, bu yazının büyük çoğunluğunda koyacağım kaynaklardan özellikle ilk yazıdan çok yardım aldım. Kendi yorumumu da katsam da bu yazının amacı kişisel yorumdan çok Türkçe bilgilendirici yazı olması, zira bu sektörde Türkçe kaynak aramak samanlıkta iğne aramak gibi bir şey.

Kaynaklar:

https://0xparc.org/blog/programmable-cryptography-1#user-content-fn-2

https://mirror.xyz/privacy-scaling-explorations.eth/xXcRj5QfvA_qhkiZCVg46Gn9uX8P_Ld-DXlqY51roPY

https://www.youtube.com/watch?v=lEPqwF9gPiM&list=PL-ZQkds07L_oJA72_JCXK7_OnSNTevOks&index=1

https://www.youtube.com/watch?v=qAfprVCBhdQ

https://www.youtube.com/watch?v=2yxpQyMYg8A

--

--