zk ve zksnark 1...

B68S...mEBg
2 Feb 2024
29

Yeni bir günden herkese merhabalar. Yeni serimize hepiniz hoş geldiniz, iyi okumalar;

zero-knowledge, zkRollup, zkSNARK, zCash, zkSTARK, zkTobby, zk, zk, zk… Gelin bu yazıda temelden alıp bu teknolojiyi öğrenmeye çalışalım.

DLT (Distributed Ledger Technology, Dağıtık Defter Teknolojisi) çeşitli verilerin (transferler, hesap ekstreleri vs.) merkeziyetsiz kişiler tarafından yazılıp, kayıt edilerek herkes tarafından erişilebilir, güncellenebilir, doğrulanabilir olmasına imkan sağlayan teknolojilerdir.
Blokzincir Teknolojisi ise işte bu DLT teknolojilerinden biridir. Her blokzincir bir DLT’dir, ancak her DLT bir blokzincir değildir. Blokzincir teknolojisi DLT adı verilen yukarıda bahsettiğim işlemlerin kaydını güvenli bir şekilde tutmaya yarayan bir sistemden ibarettir.
Bugün kripto Dünyasında blokzincirler hemen hemen bütün alana yayılmış durumda olsalar da, aslında CoinGecko‘da görüdüğünüz her kripto para blokzincir teknolojisini kullanmıyor. Örneğin Hedera yukarıda bahsettiğim DLT teknolojisindeki dataları Blokzincire değil, Hashgraph adında başka bir sisteme kaydetmektedir.
Dolayısı ile nasıl blokzincir tamamlayıcı bir teknoloji ise, yani bu teknolojiyi kullanmak tercihe bağlı ise (yani her kripto para için blokzincirlere ihtiyaç yoktur. Blokzincirler merkezi de olabilirler) zk Teknolojisi de aynı böyle tamamlayıcı bir teknolojidir.
Blokzincirler aslında Bitcoin ile ortaya çıkmadılar. 1982 yılında David Chaum verilerin bilgi paketçikleri (bloklar) şeklinde saklanabileceği fikrini ortaya atmıştı, ancak 2008 yılında Satoshi Nakamoto Bitcoin’i merkeziyetsiz bir DLT olarak hazırladığında blokzincir teknolojisini kullanmıştı. Dolayısı ile pratikte blokzincir teknolojisinin Bitcoin ile ortaya çıktığını varsayarsak, blokzincirler DLT Dünyasında nasıl devrim yaratmış bir teknoloji ise, zk Teknolojileri de benim düşünceme göre günümüzdeki teknolojilerin üzerine eklenip devrim yaratabilecek teknolojilerin başında gelmektedir.

Anlattığına göre bu zk güzel bir teknoloji, peki bu neye benziyor?

Blokzincirleri anlatırken yukarıda bir benzetme yaptım, dedim ki blokzincirler verileri bilgi paketçikleri halinde (bloklar) tutan veri saklamaya yarayan DLT teknolojileridir. Adından da anlaşılacağı üzere BLOK – ZİNCİR blokların veri taşıdığı ve her bloğun bir önceki bloğu onaylayarak uzayıp ilerlediği “zincir” şeklindeki yapılardan ibarettir.
Kısacası isimler aslında bir şeyi anlama konusunda bize çok yol gösterir.
“zk” zero-knowledge’ın kısaltmasıdır. Aslında zero-knowledge da zero-knowledge proof’un kısaltmasıdır. 🙂 Açıkçası bu tip kısaltmalar hem karizmatik oluyor, hem de birazdan zkSNARK’ları anlattığımda aslında “zk – zero knowledge – zero knowledge proof” kısaltmalarının da aynı zkSNARK’ların çalışma prensibi gibi olduğunu fark edeceksiniz.
Yani tanımlamamız gereken şey “sıfır bilgi ispatı”. Sıfır bilgi ispatını adından yola çıkarak tanımlayalım:
Bu yazıyı yazmadan önce Twitter’da sizlere bir fotoğraf paylaşmıştım. Fotoğraf içerisinde farklı renklerde ve boylarda olan kedilerin içerisindeki tek tavşanı bulmanızı istedim. 
Aslında resimde tek beyaz bir tavşan var. Resimde fareleri tavşan sananlar oldu. Kesin bulduğuna emin olanlar oldu. Ancak yanlıştı. Elbette doğru cevaplayanlar da oldu.
Soruyu sordum ve bana tavşanın yerini ispatlamaya çalıştınız. Doğru bilenler oklar ile aşağıdaki tavşanı bana gösterdiler. Ben de evet bu kişi doğru buldu çünkü bana tavşanın yerini gösterdi dedim. Kısacası bu bilmecede
SİZ: İSPATLAMAYA ÇALIŞAN KİŞİ (Prover)
BEN: ONAYLAYAN KİŞİ (Verifier) idim.
Bu ispat ve onay oyununda ben sadece bana net bir şekilde tavşanın yerini kanıt olarak gösteren kişilere inandım. Peki bu ispat oyununda bana tavşanın yerini “sıfır bilgi” ile ispatlayabilir miydiniz?
Evet ispatlayabilirdiniz, eğer tavşanı resim üzerinde oklar ile göstermek yerine tavşanın konumunu resim üzerinde gizleyip bana direkt tavşanın fotoğrafını karanlıklar içerisinde gösterseydiniz, tavşanı gördüğünüzü bana kanıtlamış olacaktınız, ben bu tavşanın yerinin sizin tarafınızdan bilindiğine emin olacaktım ve başka birisi bu tavşanın nerede olduğunu bilmeyecekti.
Sıfır Bilgi (resime göre konum diyelim) ispatı ile tavşanın yerini bildiğinizi ispatlayan fotoğraf.
Örneğin yukarıdaki gibi bir fotoğrafı bana atsaydınız, ben evet bu kişi tavşanın yerini biliyor diyecektim ve dışarıdan tavşanı göremeyen ve arayan birisi BU ADAM TAVŞANI GÖRMÜŞ AMA BEN YERİNİ BULAMIYORUM diyecekti.
Kısacası tavşanın yerini biliyorsunuz ve bana sıfır bilgi ispatı ile bunu gösteriyorsunuz. Ben sunduğunuz kanıtı onaylıyorum ancak attığınız fotoğrafa bakarak tavşanın tam konumunu bilmek imkansız. (Devasa bir resim düşünün.)
İşte “Sıfır Bilgi İspatı” denilen şey budur. Tavşanın yerini İSPATLAMAYA ÇALIŞAN (PROVER) ile ONAYLAYAN (VERIFIER) arasında şüpheye yer kalmadan ve dışarıya diğer bilgileri (tavşanın konumunu) açık vermeden sunulan kanıttır.

zk kısmını anladım peki bu zkSNARK ne?

SNARK aslında bir çok kelimenin kısaltılmış halidir. zk’nin zero-knowledge-proof’un kısaltılması olduğu gibi.
zk: Zero-knowledge
S: Succinct
N: Non-interactive
AR: ARgument
K: of Knowledge
Yukarıda söylediğim gibi yine kelimelerin anlamlarından tanımlama yapalım..
Zero-knowledge: Yukarıda öğrendiğimiz gibi “sıfır bilgi”.
Succinct: İngilizce kısa ve öz demek. Yani sunduğumuz sıfır bilgi boyut olarak çok küçük. Yani kocaman resimde oklarla tavşanı göstermek yerine minicik tavşanı gösteriyoruz.
Non-interactive: Hatırlarsanız yukarıdaki Prover ile Verifier arasında sürekli soru sorma muhabbeti yoktu, Prover olan siz bana o küçük tavşanı gösterdiğiniz andan itibaren size daha fazla soru sormama gerek kalmadan yerini bana ispatlamış oldunuz. Yani interaktif bir iletişim yok. Bana kanıtı sunuyorsunuz, ben de onaylayıp geçiyorum.
Argument: Bana sunmış olduğunuz delil, argümanın kendisi. Yani tavşanın yukarıdaki sıfır bilgi ispat fotoğrafı ve bu ispatın kriptografik ve matematiksel olarak yazılması (Kriptodaki SNARK’lar birer matematiksel işlemlerin sonucudur).
of Knowledge: Prover yani siz, tavşanın yerini biliyorsunuz, bana ispatlıyorsunuz. Yani bu “bilgiye” sahipsiniz.
Yani zkSNARK’ları özetleyecek olursak: (Yazının en baba yeri geliyor)

  • Küçük ve özler (Blokzincirdeki büyük kanıtların boyutlarını düşürüyorlar).
  • Sürekli iletişim kurmaya gerek kalmıyor (Ağdaki trafiği azaltıyorlar).
  • Dışarıya bilgi göstermiyorlar (Gizlilik sağlıyorlar veya bunun için kullanılabiliyorlar).
  • Bilgilerin ispatlarını taşıyorlar (Yapılan transferi herkese kanıtlamış oluyor).


Tobbykitty abimize teşekkürler yarın kaldığımız yerden devam.

Sağlıklı, mutlu ve huzurlu kalın...

Get fast shipping, movies & more with Amazon Prime

Start free trial

Enjoy this blog? Subscribe to mga

0 Comments