Whitepaper: Zero Knowledge Proof, Web Dilleri, Cyber Security, Gizlilik ve Daha Fazlası

1. Giriş

Kısaca anlatmak gerekirse ZKP uygulanarak saklanan verilerde güvenliği sağlamak için karmaşık matematik problemlerinin çözülmesi gerekmekte. Bu problemlerin çözülüp veriye erişilebilmesi için de yüksek donanımlı makineler ve karmaşık algoritmalar gerekmekte. Peki ZKP web dilleriyle uygulanabilir mi? ZKP'nin açmazları nelerdir?

2. ZKP Nedir ve Neden Önemlidir?

Bir arkadaşınızla oyun oynuyorsunuz, oyun basit bir oyun, arkadaşınız aklından bir sayı tutuyor, oyunu kazanmak için arkadaşınızın aklından tuttuğu 10 sayının hepsini bilmeniz gerekiyor. Bu sayı 10 basamaklı da olabilir 1 basamaklı da olabilir veya çok daha büyük bir sayı da olabilir bunun hiçbir sınırı yok fakat tahmin hakkınız sınırlı. Peki bu durumda arkadaşınızın sorduğu sayıyı bilmek mümkün mü?

ZKP uygulanarak saklanan verilerin karmaşıklığı da bu şekilde gösterilebilir. Verileri saklarken, sonsuz ihtimale sahip olacak şifreleme yöntemleriyle saklayıp ve veriye ihtiyaç olduğu zaman o şifrenin çözülüp verinin getirilmesi işlemi.

3. Diğer Güvenlik Yöntemlerinden Farkı Nedir?

Günümüzde çok güçlü şifreleme yöntemleri mevcut. Bu yöntemlerle ZKP arasındaki ana fark, ZKP bütün veriler için sonsuz algoritmaya sahip olabilirken, diğer yöntemler çeşitli sebeplerden ötürü (kolay yönetebilme, scale edebilme vs) katı kurallara ve keskin sınırlara sahip. Yani ZKP hiçlik ve kaosu getirirken, alternatifleri katı kurallarla sınırlandırılmış ve tersine mühendislikle geri döndürebilir ya da tek yönlü algoritmalara sahip.

Bu, klasik yöntemlerin kötü olduğu anlamını taşımıyor, ZKP'nin sınırları olmadığı anlamına geliyor ve bundan dolayı da veri gizliliği ve veri güvenliği konusunda diğer yöntemlerden çok daha ileride olduğunu gösteriyor. Şöyle ki:

İlk örneğimize dönecek olursak: Yalnızca 1 tane sayıyı bilmek için sınırlı hakkınız ama sonsuz ihtimal varken, arkadaşınız 100 tane daha farklı sayıyı bilmenizi isterse ortaya nasıl bir tablo çıkar?

4. ZKP Bunu Nasıl Sağlıyor?

ZKP aslında bir konsept, yani ZKP'nin uygulanması için bir kural, sınır yok. Ana kuralı: Veriyi sahibi bilebilir ve bunu göstermek zorunda değil fakat bu bilgi tamamıyla doğru. İnsani ilişkiler için örneklemek gerekirse "birisi, eğer ben aklımdan 5 basamaklı sayıları çarpabiliyorum" diyorsa bunu yapabildiğini kabul etmek zorundasınız ve ayrıca o kişi çarpma işlemini yapmak zorunda değil. Delilik gibi bir şey

5. Web Dilleri için Mümkün mü?

Temelde basit işler için uygulanabilir/uygulanıyor ("üyelik şifreleriniz, tek yönlü şekilde şifrelenmiş halde saklanıyor") ama yönetilmesi ve optimizasyon problemlerinden ötürü bu pek mümkün değil. Çünkü web ortamında kullanılan klasik database işlemlerinde CRUD işlemlerinin optimize edilmesi bile büyük bir dertken veri güvenliği ikinci plana atılıyor ve bundan dolayı veri sızıntıları, hacklenmeler yaşanıyor.

ZKP'nin bir diğer altın kuralıysa "gizlilik". Yani ZKP'nin diğer güzel yanlarından biri de anonimliği beraberinde getiriyor olması. Çünkü bir veri, "şifrelenmemiş" şekilde saklanıyorsa bu ZKP konseptine aykırıdır. Daha öncesinde de bahsettiğimiz gibi veriyi yalnızca sahibi görebilir/bilebilir ve bunu kanıtlamaya ihtiyaç duymaz.

6. KAOS ve HİÇLİK Algoritmaları

Burdan sonra işler web için zorlaşıyor çünkü database'de tutulan bütün verilerin şifrelenip saklanması ve bu verinin tekrar çözülüp ekrana getirilmesi ciddi optimizasyon ve yönetme sorunları yaratıyor (klasik database anlayışından ötürü).

Web 3.0 anlayışını benimseyerek geliştirdiğimiz "KAOS", "HİÇLİK" algoritmalarımız klasik databaseleri kullanmaz (aslında bilinen anlamda bir database'i yok). Kendi database'ini kendi oluşturur ve verileri saklarken biz de dahil olmak üzere verilerin ham halini kimse göremez.

7. NOCBY Örneği ve VOID

Aslında 2 değil çok daha fazlası mevcut fakat şimdilik Web 3.0 için yalnızca 2 algoritmamızın testlerini bitirebildik. Bu algoritmalar birbirlerinden farklı logic'e sahip olmakla birlikte uygulama alanları birbirinden çok daha farklı. Örneğin yakın zamanda duyurusunu yaptığımız ve kullanıma sunacağımız NOCBY uygulamamızda "Devdeed VOID" kullanıyoruz.

NOCBY, klasik sohbet uygulamalarından farklı olarak, bütün verileri şifreli olarak tutar. E2E sistemlerinden ayrılan noktasıysa %100 anonimlik sunmasıdır ve klasik databaseleri kullanmaz.

8. Çalınsa Bile Okunamayan Veri

Bu ne sağlıyor?

NOCBY'nin bütün verileri çalınsa dahi okunamayacağı anlamına geliyor çünkü bütün veriler birbirinden farklı algoritmalarla şifrelenip saklanıyor. Diyelim ki size ait veriler çalındı. Bu verileri doğrudan ham haliyle göremezler çünkü hepsi şifreli ve yalnızca size özel decoder ile çözülebiliyor.

Örneğin size ait decoder olmadan bir veriyi çözmeye çalıştıklarını varsayalım:

Öncelikle neyi çözmeye çalıştıklarına dair bir fikirleri olmayacak çünkü ne üzerinde çalıştıklarına dair bir fikirleri yok. Mesela çözmeye çalıştıkları şey "Nasılsın?" mesajınız olsun. Bu işlemi yapabilmeleri için minimum 18+ basamaklı ihtimale sahip tahmin işlemleri gerekiyor. (Süper güçlü bilgisayarlarla denense bile dünyanın yaşından çooooooooook daha büyük ihtimale sahip bir durum.)

Diyelim ki bu hacker çok şanslı ve "Nasılsın?" mesajınızı çözdü. Diğer veriler için de aynı işlemleri uygulayarak verilerinizi çözebilir mi? HAYIR.

Yeniden 18+ basamaklı ihtimale sahip algoritmayı aşıp "İyiyim" mesajınızı çözebilmeleri için uğraşması gerekiyor. Peki diyelim ki bu arkadaş çok şanslı, bu verileri çözdü (milyar çarpı milyardan bile düşük ihtimal ama her şeyi hesaplamamız gerekiyor :P) Peki bunları çözse bile kime ait olduğunu bilebilir mi? HAYIR. Neden? Çünkü biz %100 anonimlik üzerine çalışıyoruz, sizin kim olduğunuzu sizden ve iletişime geçtiğiniz kişilerden başkası bilemez. Zaten olması gereken de bu değil mi?

9. Sonuç

Kısacası ZKP konseptini uygulayarak geliştirdiğimiz bu ürünümüzde, yüksek güvenlikli ve full anonim bir şekilde güven içinde mesajlaşabiliyorsunuz.

ZKP depolama konseptlerimiz hakkında daha fazla bilgi sahibi olmak ve öncelikli kullanıcılar arasında yer almak için bizi takip etmeyi unutmayın!