En Hafif Blockchain Ağı: Mina Protocol

0 Shares
0
0
0

Türkiye blockchain toplululuğunun en meraklı ve bilgili isimlerinden 0xCharanko’nun yazdığı “En Hafif Blockchain Ağı: Mina Protocol” başlıklı makalesini, kendisinin izniyle b62 okurlarına sunuyoruz.

Teoriye göre Blockchain dediğimiz “dağıtık kayıt defteri” mantığını kullanan teknolojide, merkeziyetsiz bir yapı oluşturmak için, bu “değiştirilemez” yapının son durumunu kontrol ederek “Trustless” bir yapı oluşturabiliriz. Bunu yapmak için istediğiniz blockchain ağına node kurarak sizlerde ağın doğrulayıcıları olabilirsiniz. Ağın merkeziyetsiz olması ne kadar “Verifier Nodes” kurduğumuza bağlı olarak, aklınıza ne kadar doğrulayıcı kurarsak ağımızı o kadar merkeziyetsiz yaparız kavramı gelebilir. Fakat “Blockchain Trilemması”nda bu sayıların ideal ölçüde olması gereklidir. Yani bir blockchain ağı ideal oranda merkeziyetsiz, ölçeklenebilir ve güvenli olmalı. Teoride ortaya konan bu sistemi gerçekleştirmek, pratikte biraz zorlaşıyor. Bitcoin ve Ethereum gibi blok zincirlere, yeni bir katılımcı katıldığında, bu katılımcının yüzlerce gigabayt veriye tekabül eden, ağın doğruluğunu kontrol etmek için başlangıç bloğundan (Genesis block) bu yana her işlemi kontrol etmeleri gerekir. Çoğu insan, bu ağır zincirleri kendi başlarına doğrulamak için gereken bilgi işlem gücünü karşılayamaz ve giderek daha güçlü aracılara güvenmek zorunda kalır. Bu, çoğu insanın artık peer-to-peer bağlantı kuramayacağı anlamına gelir. Bu da merkeziyetsizliğin zarar görmesine, güç dinamiklerinin değişmesine ve ağın sansüre karşı daha savunmasız hale gelmesine neden olur. Peki Mina buna nasıl bir çözüm getiriyor?

Ölçeklenme Çözümü İçin Kanıt: Zero Knowledge Proof

“Elimizdeki bir bilginin tamamını göstermeden, bu bilginin yalnızca kullanılmak istenen kısmını, bu kısmı görmek veya doğrulamak isteyenlere elimizde bu bilginin ilgili kısmının var olduğunu kanıtlamaya yarayan bir teknolojidir” olarak tanımlayabiliriz. Bu cümleyi tekrar tekrar okuduğunuza yemin edebilirim ama kanıtlayamam, ama tırnak içindeki yazdığım cümlenin 2., 4., ve 9. kelimelerini al, bana bunları kelimelerde kullanılan harflere göre en uzun kelimeden en kısa kelimeye doğru sırala demiş olsaydım kanıt olur muydu?

Eğer cümleyi okuduğunuzu, sizden istediğim şekilde kanıtlamak isteseydiniz şöyle bir sıralama sunacaktınız ; “kullanılmak”>”tamamını”>”bir”. Bunu yaparak, bana tırnak içindeki cümleyi okuduğunuzu kanıtlamış oldunuz hem de bütün cümleyi göstermeden. Burada anlattığım olayı blockchain ağlarına uygulayan teknolojiye ZKP (Zero Knowledge Proof) yani “Sıfır Bilgi Kanıtı” deriz. Mina Protocol’ün buna getirdiği çözümü kendi deyişleri ile kısaca şu şekilde özetleyebiliriz. Arkadaşınıza bir fil göstermek istiyorsanız, ona devasa bir hayvan yerine filin küçük bir fotoğrafını gönderin. Zero Knowledge Proof teknolojileri kendi içerisinde kullandığı yöntemler itibariyle yapıları gereği çeşitlilik gösterir. Mina Protocol’ün kullandığı teknoloji ise Zk-SNARK teknolojisidir. Mina Protocol’ü anlayabilmemiz için öncelikle bu kavramı bilmemiz gerekir. Mina Protocol bu teknolojiyi nasıl kullanıyor?

Blockchain Ağının Kendisini Snarklamak: Snarkception

Zk-SNARK’ın açılımı “Zero-knowledge Succinct Non-interactive ARgument of Knowledge”’tir. Buradaki Zero-knowledge “Sıfır Bilgi” demek. SNARK’ı ise; “Kısa ve öz,(Succinct) etkileşimsiz(Non-interactive) bilgi kanıtları (Argument of knowledge)” olarak çevirebiliriz. Yukarıda vermiş olduğum örnek cümledeki gibi, demek ki bize bu bilgilerden kısa ve öz bilgi kanıtları oluşturan birileri var. Bu kanıtların doğruluğunu kontrol eden birileri olmalı ki, bu bilgi kanıtlarını boşuna yapan birileri olmamalı. Aynı zamanda bu kanıtlar öyle kanıtlar ki, doğruluğunu kontrol edenlerin sürekli soru sormasına gerek de yok, yani etkileşimsiz. (non-interactive) Mina Protocol bu sistemi kendi ağına uygulayan bir blockchain ağı demiştik. Ama nasıl?

Mina Protocol’ün blockchain ağı tasarımında, başlangıç bloğundan (Genesis block) itibaren, ağında oluşturulan bütün blokları SNARKlayıp bütün bir blockchain ağının verisini indirmektense, ağdaki son SNARK’lı bloğun verilerini indirerek, ağın anlık durumunun (STATE) verisini indirmiş oluruz. (Nee!?) Bu indirdiğimiz veri durumu, ağdaki bir sonraki blok oluşturulduğunda, arka plan olarak blok zincirinin önceki durumunun anlık görüntüsü ile kendisinin bir anlık görüntüsünü içerir. Bu yeni durum, bir sonraki blok için arka plan olarak kullanılacak ve bu böyle devam edecek. Şaşırtıcı bir şekilde elimizdeki veri, başlangıç bloğundan (Genesis block) itibaren bütün bilgilerin kanıtını içerebilse de, her zaman aynı boyutta kalır.(22Kb.) Çünkü Mina Protocol’deki blok boyutları her zaman 22Kb’tır ve ağ olarak seri blok üretimi yapmaktadır. Bunu yapmasının yolu Mina’nın Protokol Mimarisi’nden geçer. Zk-SNARK teknolojisini kullanan teknolojilerde bir kanıt oluşturan kanıtlayıcı (Prover) ile bu kanıtları doğrulayan doğrulayıcı (Verifier) olduğunu anlamışsınızdır. Mesela Ethereum’daki blok zincirin içinde değil de üzerinde çalışan Layer 2 (ikinci katman) uygulamalarından olan ZkSync projesini duyanlar, bu teknolojiyi kullandıklarını bilir. ZkSync’in node operatörleri (Prover), işlem yaptıklarının kanıtlarını Ethereum ana ağındaki node operatörlerine göndererek, Ethereum node operatörleri (Verifier) tarafından doğrulanmasını ve bu kanıtların Ethereum bloklarında saklanmasını sağlarlar. Mina’nın consensus mekanizması Proof of Stake sistemi uygulayan bir yapıdadır. Bu yapıda iki önemli aktör vardır; “Block Producer” (Verifier) “Snark Producer”(Prover). Mina’daki bir blok üreticisinin(Block Producer) rolü, consensus ve güvenlik sağlamaktır. Block Producer, bunu ağda yayınlanan son işlemleri ve zincirin mevcut durumunun geçerli olduğunu kanıtlayan,(blok zinciri kanıtını içeren) yeni bloklar oluşturarak ve bu blokları da SNARK’layarak yapar. Bloklara koyacakları işlemleri, Snark Producer (Prover) tarafından yapılan işlem kanıtlarından satın alarak koyarlar. Snark Producer, işlemlerin SNARK kanıtlarını oluşturarak ağdaki verilerin sıkıştırılmasına yardımcı olur. Blok ödüllerinin bir kısmı karşılığında bu SNARK kanıtlarını satarlar. Block Producers satın aldıkları bu SNARK kanıtlarını bloklara işleyerek karşılığında MINA TOKEN ile ödüllendirilir. Mina Protokol bu ikisi arasındaki alışveriş dengesini sağlamak için markete benzeyen “SnarkPlace” yapmıştır. Bütün SNARK kanıtları, bu markette toplanarak blok üreticileri tarafından satın alınır. Fakat burada dikkat etmemiz gereken konu SNARK kanıtlarının oluşturulmasının yüksek donanım gücüne ve işlemlere gerek duymasıdır. Bu durumda aklınıza şu soru gelebilir; Her işlem için SNARKları seri olarak hesaplamak zorunda kalsaydık, verim çok düşük olurdu ve blok süreleri fırlardı. Bunu nasıl verimli hale getiriyoruz? Bunun cevabı yine SNARKların şu iki özelliğinden geçmektedir;

1.Kanıtlar birleştirilebilir; yani bir birleştirme kanıtı oluşturmak için iki kanıt birleştirilebilir.
2.Birleştirmeler ilişkiseldir; yani birleştirme kanıtları, birleştirme sırasından bağımsız olarak aynıdır.

Bu iki özelliğin esasen yapmamıza izin verdiği şey, paralellikten yararlanmaktır. Kanıtlar birleştirilebiliyorsa ve nasıl birleştirildiği önemli değilse, SNARK kanıtları paralel olarak oluşturulabilir. Hangi ispat önce biterse, daha sonra devam eden ispatlarla birleştirilebilir. Bu, alt sıranın bireysel işlem kanıtlarından ve her bir üst sıranın ilgili birleştirme kanıtlarından oluştuğu bir ikili ağaç (Merkle Tree) olarak düşünülebilir. Bunları, tüm işlemlerin uygulanarak gerçekleştirilen bir durum güncellemesini temsil eden köke kadar (Merkle Root) birleştirebiliriz. Snark Producer, SNARK kanıtlarını birleştirerek, tek bir SNARK’ta(Ölçeklenme-Scalability) birleştirdiği bütün işlemleri Block Producer dediğimiz nodelara satabilir. Blok üreticileri yaklaşık 22Kb boyutunda olan her bir bloğu, birleştirilmiş SNARKlar ile doldurdukça yeni bir blok üretime geçecektir. Bu durum sizinde tahmin edeceğiniz gibi Mina Blockchain’i oldukça hızlı ve ölçeklenebilir hale getirmektedir.

SNARK Yapılmış Bloklardan SNARK Yapılmış Uygulamalara: SNAPP

Mina Blockchain üzerinde, On-Chain veya Off-Chain olarak çalıştırabileceğiniz SNAPP olarak adlandırılan akıllı sözleşmeler yazabilirsiniz.

SNAPPler “Smart Contract” ve kullanıcıların etkileşime girebilmesi için kullanıcı arayüzü olarak (UI) iki bölümden oluşur. Adından da anlaşılacağı gibi SNARKlanmış APPler olarak geçer ve Mina Protocol’ün geliştirdiği TypeScript’in modifiye edilmiş hali olan SnarkyJS dili ile yazılır. SNAPPler genel olarak kullanıcı işlemlerini On-chain olarak SNARKlayarak direkt ağ üzerine veya Off-Chain olarak zincir dışı bir yerde depolayıp, birleştirilmiş SNARK işlemleri halinde ağ üzerine deploy ederek (yani ağa alarak) kullanıcılara açarlar. 2022 Q2’de etkin bir şekilde kullanıma geçecek. Mina Protocol’deki “Auro” cüzdan uygulaması şimdilik SNAPP destekleyen tek cüzdandır, diğer cüzdanlar ile uyumlu olma çalışmaları sürmektedir ve yine bunu 2022 yılı içerisinde göreceğiz.

SNARK İle Web Hizmetleri: Mina İnterneti

Mina Protocol, Online verileri On-Chain üzerinde uygulamak için çalışmalar yapmaktadır. Yani kullanıcıların kişisel verilerini paylaşmadan, SNAPPler sayesinde Mina Protocol’ün sunmuş olduğu ZkOracle hizmetinden yararlanarak geliştiriciler, merkeziyetsiz uygulamalar oluşturmak için herhangi bir web sitesinden özel, doğrulanmış, gerçek dünya verilerinden yararlanabilir. Geliştiriciler ve kullanıcılar, Web üzerinde herkese açık olan herhangi bir bilgiyi buraya girebilirler (bu web sitesinin iznine ihtiyaç duymadan). Sadece ilgili kanıtları paylaşarak hassas verilere erişebilir, kullanabilir ve koruyabilirler. “Trustless” olmayan Oracle veya özel web entegrasyonlarına gerek olmadan Bir SNAPP, web sitesine bağlanır ve bu web sitesindeki veriler hakkında bir kanıt üretir(ZkOracle). Kanıt, verilerin kendisini değil, yalnızca istenilen bölümünü çıkarır. SNAPP, kanıtı ağ ile paylaşır ve ardından doğrulanmış kanıtı şifreli bir işlem aracılığıyla karşıya gönderir.

Yine geliştiricilerin uygulamalarına, Mina Protocol üzerinde kullanıcıların bir hesap oluşturmadan veya herhangi bir bilgi girişi yapmadan herhangi bir internet sitesine özel olarak erişebileceği, sadece kripto değil, internet üzerinde de çalışabilecek özellikler eklemeyi yapabilirler.

Kanıt Oluşturuculara Güvenmeden Turşularınızı Alın : Pickle SNARK

Mina Protocolözelinde yapılan SNARK Kanıtları ile ilgili başka bir çalışma Coda Test Ağında yayınlanan “Trust Setup” gerektirmeyen SNARK kanıtı oluşturma çalışmasıdır. SNARKlar doğaları gereği başlangıçta Trust Setup gerektirir. Bu durum bizleri daha önce SNARK kanıtı yapan “Güvenilir” aktörlere yönlenmemize neden olur. Ama blockchain mantığında güvene ihtiyaç duymayan işlemler tercih edilmelidir.“Pickles Snark” Trust Setup gerektirmeyen yeni bir SNARK kanıtı çalışmasıdır ve Mina Protocol üzerinde test edilmektedir.

Pickles Snark, Trustless yapıda, full programlanabilme özelliğine sahip, kanıt boyutu 8kb olan, oluşturulma hızı yüksek, isteğe bağlı tekrarlanabilen ve “Open Source” bir yapıdadır.

Yazı kaynağı: https://medium.com/@CHARANKO/en-hafif-blockchain-a%C4%9F%C4%B1-mina-protocol-3de8a6710b5f

Bu makaleyi b62'de yayınlamamıza izin verdiği için 0xCharanko'ya teşekkür ederiz.

Blockchain ve kriptografi konusunda daha detaylı bilgi edinmek için 0xCharanko'yu Twitter ve Medium üzerinden takip edebilirsiniz;

Twitter: 0xCharanko
Medium: https://medium.com/@CHARANKO

0 Shares
Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir