Mina Protocol'ün zkDefi için çığır açan çözümleri! zkAppler, OpenMina, zkBridge ve zkOracles!





Herkese merhaba bu yazımızda ETH Denver’deki Mina Protocol sunumundan notlar paylaşacağım. Bu videomuzda zkDefi’yi Mina Protocol’de nasıl sağlayacağımızı ve Mina’daki birçok farklı hizmete yakından bakacağız. O zaman hadi başlayalım.


Mina sonlandırılmış tüm blokzincir durumunu özyinelemeli sıfır bilgi kanıtları kullanarak kanıtlayan katman bir blokzincirdir. Diğer blokzincirler çok yüksek alanlar kaplarken mina blokzinciri oldukça düşük 22 kblık bir yer kaplar ve sabit bir blokzincire sahiptir. Sıfır bilgi kantılarının da sıfır bilgi kanıtlarını oluşturarak sabit boyut korunuyor. Bu Sıfır bilgi kanıtları blokzincirde gerçekleşen tüm işlemleri içerir ve düşününce ne kadar havalı bir şey olduğunu da anlarsınız.


Mina Protocol


Mina geleneksel blokzincirlere oranla bazı büyük avantajlar sunar. Bu avantajlar:

  • Gizlilik, 
  • Ölçeklenebilirlik, 
  • Merkeziyetsizlik, 
  • Köprüleme
  • Oracle servisleridir.


Önce Gizlilik hakkında konuşalım: Çoğu blokzincir her node üzerinde akıllı kontrat çalıştırır ve doğal olarak etkileşimler herkes tarafından görülür. Örneğin protokolde olan bir güncellemeyi her node yapmak zorundadır, her node birbirini izleyebilir ve izleyebilmesi güvenliği sağlar.


Fakat Mina Protocol’ün akıllı sözleşmeleri bundan daha farklıdır. Mina akıllı sözleşmeleri kullanıcıların tarayıcısında çalışır ve böylelikle doğal olarak yürütme gizli kalır. Bunlar kelimenin tam anlamı ile Typescript ile yazılmışlardır. Kendi kodlarını kendin çalıştırırsın, herhangi bir şey hakkında başkasına bilgi vermezsin sadece işlemlerin gerçekleştiğine dair bir kanıt gönderirsin.


Hadi Mina ağındaki güncellemeye bakalım. Mina ağı sadece kanıtı doğrular, eğer kanıt geçerli ise ilişkilendirilmiş blokzincir durum güncellemesini uygular. Bu gizlilik için oldukça havalı fakat bu durum ölçeklenebilirlik için de oldukça verimlidir.

Hadi Ölçeklenebilirliğe bakalım: Mina’nın bir gaz modeline ihtiyacı yok: zkAppler off-chain yani zincir dışında gerçekleşir ve böylelikle işlem ücreti hesaplamadan bağımsız bir şekilde gerçekleşir. Off-Chain yapı sayesinde tek bir işlemle sınırsız hesaplama yapabilirsiniz. Bu oldukça güzel bir özellik. Peki ya birden fazla işlem gerektiren bir uygulama inşa etmek istiyorsanız? Bu Mina’nın özyinelemeli snarkları ile mümkün! Özyinelemeli snark kanıtları geliştiriclerin uygulama özelinde rolluplar inşa etmesine olanak tanıyor. Kendi hareketlerinizi doğrulayabilir ve benim hareketlerimin kanıtını da kendi kanıtınınız içerisinde doğrularsınız ve geri bana gönderirsiniz. Bunlara rağmen kanıt boyutu aynı kalır ve kanıtların gönderilmesi boyutu artırmaz. Uygulamanın bütünününü daha sonra Mina’daki bir akıllı kontrat ile doğrulayabiliriz. Bu şekilde Web 3’ün güvenliği ile birlikte web2 deki gibi performans gösteren uygulamalar inşa edebiliriz.

Genellikle ölçeklenebilirlik ve güvenlik bir bedel ile gelir, o bedel de genelde merkeziyetsizlikten zaiyattır. Fakat Mina’da durum öyle değil. Mina’da tüm blokzincir durumunun kolayca doğrulanabilir bir sıfır bilgi kanıtı ile doğrulanabileceğini söylemiştim. Neredeyse her tür cihaz Mina’nın ana ağına direkt olarak bağlanabiliyor. Yani bir RPC Endpointe bağlanmadan veya Alchemy gibi bir aracıya bağlanmadan bunu başarabiliyor. Mina ekosistemindeki file system takımı OpenMina projesi üzerinde çalışıyor. Ben daha önce videolaştırmıştım, demosuna direkt olarak erişebilirsiniz. OpenMina ile beraber internet bağlanışı olan her cihazdan tarayıcıya erişerek node kurabiliyorsunuz. OpenMina ile birlikte Mina ağına direkt olarak bağlanarak, blokları doğrulayabiliyor ve işlemler gönderebiliyoruz, bu muazzam bir gelişme.

Mina Protocol

Ayrıca biz Mina’nın blokzincir durumunu web tarayıcısnda doğrulayabiliyoruz. Hatta başka bir blokzincirdeki akıllı kontratı bile doğrulayabiliriz. Örneğin Ethereum blokzincirinde bir akıllı kontrat yazabiliriz. Bu Mina’nın sıfır bilgi kanıtlarını kullanabilir ve eğer ki kanıt geçerli ise , biz kanıt kullanarak doğrulayabiliriz. Her şey tamam ise tüm blokzincir durumunu bu blokzincire herhangi bir izne veya ek bir şeye gerek kalmadan köprüleyebiliriz. Bunu herkes kullanabilir. Ve tabii ki bu fikrin üzerinde çalışan bir başka organizasyon var: Bildiğiniz gibi Nil Foundation. Şuan kendi websitelerinde zkBridge köprüsünün demoları mevcut dilerseniz kontrol edebilirsiniz. Ethereum’un sanal makinesinde Mina durumunun doğrulamasını yapıyorlar. Bunu da herkes kullanabilir.

Mina Protocol

İlgili veriyi Mina blokzincirinden alabiliriz daha sonra kanıtın Ethereum gaz optimizasyonu için işlenmesi gerekiyor. Daha sonra gördüğünüz gibi bir çıktı oluşuyor, bu birkaç dakika sürebilir. Bu işlemlerden sonra Metamaske bağlanabilir ve işlemi gönderebiliriz. İşlem tamamlandıktan sonra köprüleme yaptığınız blokzincir hangisi ise işleminiz onda rahatlıkla takip edilebiliyor. zkBridge böyle çalışıyor. Mina blokzincirinin kendisi katman 1 projesidir ve böyle davranarak diğer blokzincirler için rollup görevi görmektedir. Oldukça havalı ve heyecan verici bir olay!

Peki Oracle servislerinden ne haber?



SnarkyJS akıllı kontrat metodları imzalanmış veriyi kabul eder ve doğrulayabilir. Bunu oldukça etkili bir biçimde yapıyor ve kanıt sistemi üzerinde birçok güzel işler de yapıldı ve bu oldukça eşsiz çünkü doğrulanabilir veriyi gizli bir şekilde ayarlayabiliyorsunuz. Örneğin bir borç için kalifiye olduğunuzu doğrulamak için bir kantı istiyorsanız ve bunu tüm finansal endüstri tarafından bilinmesini istemiyorsanız, bu isteğinizi Mina üzerinde gerçekleştirebilirsiniz. Bu cidden büyük bir gelişme çünkü birçok veriyi düzenleyebiliyorsunuz ve akıllı kontratlar zincir dışında işleniyor. Biz şuan Ethereum’un dünyasında yaşıyoruz ve Oracle’nin işlem çiftleri için fiyatı belirlemesini umuyoruz. Fakat gelecekte zkOracles bu algıyı değiştirecek. Diğer Oracle modelleri veriyi imzalamak için birilerine ihtiyaç duyar ve birilerine o veriyi imzalaması için güvenirsiniz. Bu genelde bir veri sağlayıcı olur. Bizim verileri imzalamayı insanlar için kolaylaştıracak bir signer’a yani imzalayana ihtiyacımız var daha sonra Mina bunu doğrulayacak ama gelecekte biz, insanların her yerden verileri almalarının mümkün olmasını istiyoruz ve bunu da yine doğrulanabilir bir şekilde yapmasını istiyoruz. İnternetteki bir şeyle etkileşime girdiğinizde bunu büyük ihtimal HTTPS bağlantısı ile yapıyorsunuz.

Mina Protocol


Gelişmiş kriptografi ve "non-interactive proof" (interaktif olmayan kanıt) teknikleri kullanarak, sadece iki taraf arasında gerçekleşen bir el sıkışmanın (handshake) kanıtını, herkese açık ve ikna edici hale getirmek mümkün olduğudur. Bu, kullanıcıların bir web sitesinden (örneğin, New York Times) belirli bir bilgiyi (örneğin, bir futbol maçının sonucu) alarak, bu bilgiyi blokzincir üzerine taşıyabileceği ve böylece, bu bilginin o anda o web sayfasında yer aldığına dair bir kanıt elde edebileceği anlamına gelmektedir. Bu tür bir süreç, kriptografik tekniklerle güvence altına alınarak, bilginin doğruluğunu ve güvenilirliğini sağlamak için kullanılabilir. Kullanıcıların, örneğin bir haber kaynağından alınan bilgiyi, bu tür bir kanıtla birleştirerek, o bilginin o sitede gerçekten var olduğunu doğrulayabileceği bir sistem düşünülebilir.

Özetle, zkOracles teknolojisi sayesinde, iki taraf arasındaki güvenilir bilgi alışverişini, daha geniş bir kitle için doğrulanabilir ve güvenilir hale getirmek amaçlanmaktadır. Bu sayede, kullanıcılar online dünyada yer alan bilgilerin gerçekliğini ve güvenilirliğini daha iyi değerlendirebilir hale gelebilirler.

Evet Mina bu şekildeydi şimdi de SnarkyJS hakkında konuşalım. SnarkyJs bir yazılım dili olan Typescript’in sıfır bilgi kanıtlarını tanımlayan kütüphanesidir ve o ayrıca Mina Protocol için küçük bir akıllı kontrat dilidir. Böyle görünüyor. Hepsi Typescript üzerinde yazılmış olduğundan başka hiçbir şeye ihtiyaç duymuyor. SnarkyJS yükleyeceğiniz sadece bir paket, daha sonra uygulama yazmaya devam edebilirsiniz. Her şey Typescriptte yazılır yani geliştiricilerin aşina olduğu bir dil, alışması aylar süren diğer dillere adapte olmaları gerekmez. Öğrenmesi oldukça kolay bir dil. Detaylı teknik bilgileri açıklamadaki linkten bulabilirsiniz.




Şimdi kulanım alanlarına geçelim.



1- Proof of Alpha


Mina Protocol

PoA trade geçmişinizi, işlem geçmişinizi hesaplayan, performansınızı hesaplayan yani kümülatif kazancınızı ve bunu sizin spesifik-özel verilerinizi ifşa etmeden gösteren bir servistir. Peki bu nasıl oluyor? Kullanıcı borsadan emir geçmişi API’sini talep ettikten sonra onu SnarkyJS akıllı kontratına ekleyerek ardından SnarkyJSi başlatarak yapabilirsiniz. SnarkyJS imzanın geçerli olup olmadığını kontrol eder yani direkt olarak Binance’den gelip gelmediğini kontrol eder. Daha sonra kümülatif kazanç hesaplanır ve blokzincire gönderilir. Ve bunların hepsi kendi cihazınızda gerçekleşir. Tarayıcınızda hesaplama yaparak doğruluğunu kanıtlayabilirsiniz. Bunu ne Mina ne de başka bir servis yapıyor, kendiniz yapıyorsunuz. Ve Mina ağı asla hesap geçmişini görüntüleyemiyor.



Peki başka neler mümkün?



Birçok şey mümkün ama sayacaksak: Özel oylamalar ve ultra performansa sahip oylamalar gerçekleştirebilirz. Kör müzayedeler gerçekleştirebiliriz yani teklif verenlerin özel bilgilerinin ifşa edilmediği müzayedeler. Merkeziyetsiz Borsalar snarkyjs ile mümkün, ama gerçekten merkeziyetsiz. Bunların ve daha düşünemediğimiz birçok şey mümkün, Mina Protocol’ün duyurduğu zkIgnite hibe programıyla mina ekosistemi oluşmaya başlıyor. Yerinizi alın ve umutsuzluğa kapılmayın derim. Çünkü ekosistem ciddi anlamda oluşmaya başlıyor yani fikir aşamasından çıkıyoruz artık. Çok uzak olmayan bir gelecekte Mina ağındaki sıfır bilgi kanıtlarıyla desteklenen uygulamaları kullanıyor olacağız. Burada Mina yazımızı sonlandırıyoruz, sorularınız varsa yorum olarak yazabilirsiniz ayrıca Mina’ya özel Discord sunucumuza da gelebilirsiniz. 


Yazımızı beğendiyseniz MinaTimes'i twitter üzerinden takip etmeyi ve video haline erişebileceğiniz youtube kanalıma abone olmayı unutmayın!

Yorumlar