5 Yaşındaki Çocuğa Anlatır Gibi: Sıfır Bilgi İspatı

Evrim Dönmezgel tarafından tarihinde yayınlandı

Sıfır Bilgi Protokolü

Sıfır Bilgi Protokolü (Zero Knowledge Protocol, ZKP) şifrelerin paylaşılmadığı, dolayısıyla çalınamayacağı anlamına gelen kimlik doğrulama yöntemidir. Yani şöyle düşünün: hem kimlik doğrulaması yapıyorsunuz hem de herhangi bir şifre paylaşmıyorsunuz! Müthiş değil mi? Bence müthiş, çünkü ZKP iletişiminizi o kadar güvenli ve korumalı yapıyor ki, kimse başkalarıyla ne hakkında iletişim kurduğunuzu veya hangi dosyaları paylaştığınızı öğrenemiyor. Öyle bir ihtimal dahi kalmıyor.

ZKP, bazı sırları (veya bir çok sırrı) gerçekte ortaya çıkarmadan iletişimin “son” noktasındaki birilerine ispatlamanıza izin verir. “Sıfır bilgi” ifadesi buradan geliyor. Yani hiç bir bilgi ifşa etmeden, karşıdakine kimlik doğrulaması yapabiliyorsunuz. Ortada bir sır olduğunu düşünelim. Siz “kanıtlayıcı” olarak sırla ilgili olarak -sıfır- yani hiçbir bilgi ifşa etmeden, karşıdakini yani “doğrulayıcı”yı, sözü edilen sırla ilgili bilgi sahibi olduğunuza ikna edebiliyorsunuz. Peki sırrı söylemeden onu bildiğinizi kanıtlamaya neden ihtiyaç duyasınız ki? Karşıdakine güvenmediğinizde, ama sırrı bildiğinize onları ikna etmek istediğinizde. Peki süreç nasıl işliyor, beraber bakalım. Elimden geldiğince sade ve anlaşılır örneklerle anlatmaya çalışacağım.

Şekerlemeler

Örneğimizda Ahmet ve Ayşe’nin bayramda topladıkları şekerlemeler üzerinden gidelim.

Ahmet ve Ayşe kendi ellerindeki şeker sayısını belli etmeden -çünkü şekerlerini paylaşmak istemiyorlar-, birbirlerinin aynı miktarda şeker toplayıp toplamadıklarını öğrenmek istiyorlar.

Çantalarında tam olarak 10, 20, 30 veya 40 şekerin olabileceğini varsayalım.

Ellerindeki şeker sayısını paylaşmadan, sahip oldukları şekerlerin sayısını karşılaştırabilmeleri için Ahmet 4 tane kilitlenebilir sandık alıyor ve her birinin üzerine 10, 20, 30 ve 40 etiketlerini yapıştırıyor.

Ahmet sahip olduğu şeker sayısını gösteren sandık hariç diğer tüm sandıkları kilitliyor ve anahtarlarını atıyor. Örneğin 20 şekeri varsa, 20 etiketi olan sandık hariç diğer tüm sandıkların anahtarlarını atıyor ve gidiyor. Bu örnekte Ahmet’in gerçekte 20 şekeri olduğunu varsayacağız.

Sonra Ayşe sandıkların başına geliyor ve şunu yapıyor; 4 tane kağıt alıyor. Birinin üzerine “+” işareti koyuyor, diğer 3 tanesine “-” işareti. Yani aşağıdaki gibi.

Ayşe üzerinde artı işareti olanı kağıdı katlayıp elindeki şeker sayısını gösteren sandıklardan birinin içine anahtar deliğinden atıyor ve diğer 3 tane eksi işaretli kağıdı da diğer sandıklara atıyor. Örneğin elinde 30 tane şeker varsa, üzerinde artı işareti olan kağıdı üzerinde 30 yazan sandığa koyuyor ve gidiyor. Bu örnekte Ayşe’nin gerçekte 30 şekeri olduğunu varsayacağız.

Sonra Ahmet geri geliyor. Elindeki tek anahtarla sandığı açıp, sandığın içindeki kağıtta artı mı eksi mi yazdığını görmek istiyor.

Sıfır Bilgi

Eğer sandıktan çıkan kağıtta artı işareti varsa Ayşe ile aynı sayıda şekere sahiptir demektir. Eğer sandıktan çıkan kağıtta eksi işareti varsa farklı sayıda şekere sahip oldukları anlamına gelir.

Ahmet’in 20, Ayşe’nin 30 şeker sahibi olduğunu biliyoruz. Ahmet sandığı açıp kağıda baktığında eksi işaretini görünce, Ayşe ile farklı sayılarda şekerlere sahip olduklarını anlıyor. Ama Ayşe’nin kendisinden daha mı fazla yoksa daha mı az şeker sahibi olduğunu bilmesinin bir mümkünatı yok.

Sonra Ayşe de geliyor ve Ahmet’in üzerinde eksi yazan kağıdı tuttuğunu görüyor. Ayşe de Ahmet’in farklı sayıda şekere sahip olduğunu anlıyor. Ama her ikisi de hangisinin daha az ya da daha fazla şekere sahip olduklarını bilmiy0rlar. Sadece farklı miktarlarda şekerlere sahip olduklarını biliyorlar. Ve bu bilgiye karşıdakine ellerindeki şeker sayısını paylaşmadan vardılar!

Sonuç

Yukarıdaki örnek Zero Knowledge ya da Türkçe ifadeyle Sıfır Bilgi ispatına çok güzel bir örnektir. Ahmet ve Ayşe birbirlerine ellerindeki şeker sayısını söylemeden, eşit miktarda mı yoksa farklı miktarda mı şekere sahip olduklarını öğrenmiş oldular.

Son olarak; sıfır bilgi ispatının Ethereum Metropolis ile geleceğini de söyleyelim.

Ayrıca bakınız: Yao’nun Milyoner Problemi

Facebook Yorumları

Evrim Dönmezgel

"Satoshi" adlı ilk Türkçe Bitcoin kitabının yazarı Evrim Dönmezgel, Bitcoinlerim.com sitesinin yazarıdır. Kripto para ve blockchain teknolojileri sevdalısıdır.

Bir Cevap Yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.