Dünyanın bilgisayarı Mina zkCPU Nedir?





Herkese merhaba! Bu yazımızda Mina Protocol’ün duyurduğu yeni bir kavram olan Mina zkCPU’ya değineceğim ve bunun Mina için ne anlama geldiğine, potansiyeli hakkında konuşuyor olacağız. zkCPU teknik bir terim bunu anlamak için birkaç farklı terimlere de hakim olmamız gerekiyor bu gözünüzü korkutabilir fakat bu yazımızda olabildiğince anlaşılabilir ve basit şekilde aritmetik devrelerden başlayarak, zkVM, zkEVM ve Mina zkCPU hakkında konuşacağız! 




Ethereum'u gökyüzünde süzülen devasa bir bilgisayar olarak düşünebilirsiniz. Herkesin kendi uygulamalarını yükleyip birbirinin uygulamalarını kullanabileceği bir bilgisayar, dünya bilgisayarı gibi. Dfinity de Ethereum'a benzer protokollerine "İnternet bilgisayarı" diyorlar Yani ICP’den bahsediyoruz. Gerçekten de çok havalı bir isim.

Ancak bu internet bilgisayarları şu an oldukça yavaş çalışıyor ve herkesin hata yapmamak için her şeyi yeniden hesaplaması gerekiyor. Ama endişelenmeyin, bu yakında sona erecek gibi görünüyor! Son zamanlarda sıfır bilgi ispatları (ZKP'ler) konusunda yapılan ilerlemeler sayesinde, bu internet bilgisayarlarına hesaplama bütünlüğü eklenecek. Yani sadece bilgisayar hesaplama yapacak ve diğerleri kriptografi sayesinde sonuca güvenebilecek.

Birçok "kanıtlanabilir" internet bilgisayarını yeniden uygulama girişimi, sıfır bilgi ispatlarıyla güçlendirilmiş önceki dönem blok zincirlerinin sanal makinelerine (VM'leri) eşdeğer olan "zkVM'leri" kullanıyor. Yani zkVM'leri, geliştiricilerin kullandığı bir tür sanal makine gibi düşünebilirsiniz. Fakat daha gelişmiş bir yapıları var ve kriptografik kanıtlar da sunuyorlar.

Bu yazıda, zkVM'lerin ne olduğunu ve neden önemli olduklarını anlatacağız. Ayrıca, zkVM'lere alternatif olarak yeni bir kavram olan "zkCPU"yu da tanıtıyor olacağım. Başlamadan önce zkVM ile zkEVM’i kavramlarını karıştırmamanız adına şöyle özetleyebilirim: zkVM (zero-knowledge Virtual Machine) ve zkEVM (zero-knowledge Ethereum Virtual Machine) olarak geçiyor. ikisi de sıfır bilgi kanıtları kullanarak işlemleri gerçekleştirmek için tasarlanmış sanal makinelerdir. Ancak, farklı blokzincir ağları için tasarlanmışlardır ve farklı amaçlar için kullanılıyorlar.

Buna açıklık getirdiysek şimdi de circuit yani devreler hakkında konuşalım. Aritmetik devreler zero-knowledge proof (ZKP) sistemlerinin temelini oluşturur. Bir aritmetik devre, gerçek bir devreyi matematiksel olarak temsil eden bir ara gösterimdir. Bu sayede devreyi bir kanıt sistemini kullanarak doğrulayabiliriz.




Örneğin, Bir sayısal problem yazdınız ve bunu bir program olarak çalıştırmak istiyorsunuz. Aritmetik devreler sayesinde, programınızı bir devreye dönüştürebilirsiniz. Bu devre, kapılar ve tellerden oluşur. Ama normal devrelerdeki kapılar AND, OR, NAND, XOR gibi kapılar iken aritmetik devrelerde kapılar çarpma ve toplama işlemi yaparlar.

Devrenizi hazırladıktan sonra programınızı bu devrede çalıştırabilirsiniz. Ancak sadece çalıştırmak yetmez, aynı zamanda devredeki her adımda bellek durumunuzu kaydetmeniz de gerekir. Bu sayede sonuçları kanıtlama aşamasında bunları kullanabiliriz.

Son olarak, kanıtlama aşamasına gelindiğinde, bir ZKP sistemi kullanarak devrenin çalıştırılmasını doğrularsınız ve böylelikle, programının sonucunu da kanıtlayabilirsiniz.


Mina zkCPU’suna geçmeden, zkVM nedir onu da anlatayım.


Bir bilgisayarın içinde programlar çalıştırmak için sanal bir bilgisayar kurabilirsiniz. Bu sanal bilgisayarlara "virtual machine" (sanal makine) diyoruz. Normal bilgisayarlar gibi, sanal makineler de bir şeyleri hesaplayabilirler ve sonucunu size gösterebilirler.

Ama bir zkVM bundan biraz daha özel. Çünkü normal sanal makinelerin yaptığı işleri yaparken, bir de hesaplamaların doğru ve güvenli olduğunu gösteren bir matematiksel kanıt da üretirler. Bunu da başka insanlar kontrol edebilir ve o hesaplamaların gerçekten doğru yapılıp yapılmadığına emin olabilirler.

Örneğin, bir bilgisayar oyununda bir mağaraya girip hazine aramak istiyorsunuz. Oyunun içinde bir sanal makine çalışır ve sizin karakterinzii hareket ettirir. Ama eğer bu sanal makine bir zkVM ise, sizin hazineyi bulduğunuzu kanıtlayacak bir belge de üretir. Bu belge diğer oyuncular tarafından da kontrol edilebilir ve sizin gerçekten hazineyi bulduğunuzu doğrulayabilir.

Başka bir örnek vermek gerekirse, diyelim ki bir banka hesabında para transferi yapmak istiyorsunuz. Bu transfer işlemi bir sanal makinede yapılır. Ama eğer bu sanal makine bir zkVM ise, hesaptan para çekildiğini ve başka bir hesaba yatırıldığını kanıtlayacak bir belge de üretir. Bu belge diğer insanlar tarafından da kontrol edilebilir ve transferin doğru yapıldığını doğrulayabilir.

Günümüzde birçok zkVM görüyoruz. Bazıları, ZKP'ler için optimize edilmiş tamamen yeni VM'ler tanıtıyor. Örneğin, Starkware'den Cairo ve Polygon'dan Miden gibi. Öte yandan, Ethereum'un VM'sini (EVM) desteklemeyi amaçlayan zkVM'ler de var. Vitalik, hepsini karşılaştıran bir makale de yazmıştı. Daha fazla detay için o makaleyi de okuyabilirsiniz.

Yani, zkVM'ler normal sanal makinelerden biraz daha özel ve güvenlidir. Bu nedenle, özellikle finansal işlemlerde veya diğer güvenlik gerektiren uygulamalarda kullanılabilirler.

Peki ya doğrudan devreler yazabilseydik?

VM'leri desteklemek oldukça çekici bir öneri çünkü geliştiriciler, aritmetik devreleri düşünmeden daha yüksek seviye soyutlamalarla programlar yazabilirler (ve doğrudan sıfır bilgi kanıt sistemleri yazarken oluşabilecek hatalardan kaçınabilirler).

Ancak bu seviyede işler yapmak, zkVM'nin ne yaptığıyla sınırlı olmanız anlamına gelir. Yalnızca kullandıkları talimat kümesini-setini kullanabilirsiniz, hızlandırılmış işlemlere yalnızca onların size hızlandırdığı şekilde erişebilirsiniz ve benzeri birçok şey daha sayabiliriz. Zk teknolojisinin henüz yeni yeni geliştiği ve düşük seviye optimizasyonların son derece önemli olduğu bir dönemde devrelere direkt erişememek bir sorundur.

Bazı sistemler, kullanıcıların kendi devrelerini yazmasına izin veriyor. Bu sayede kullanıcılar çok daha fazla özgürlüğe sahip oluyor. Geliştiriciler yazdıkları her satır kodun etkisini inceleyebilir ve devre seviyesinde ihtiyaç duydukları optimizasyonları yapabilirler. Hatta istedikleri takdirde kendi sanal makinelerini bile yazabilirler. Bu şekilde yaparak, geliştiricilerin sadece bir zkVM'in yapabileceği şeylerle sınırlı kalmalarına gerek kalmaz.

Zcash'in Halo2 kütüphanesi bunu başarmış örneklerden biridir. Bu sayede farklı projeler kendi zkCPUs'larını yaratabiliyorlar. Bazı zkEVM'ler bile Halo2'yi kullanıyor.

Geldik herkesin beklediği o ana! Dünyanın CPU'su olarak tanıtılan zkCPU nedir? Ya da Dfinity'nin dediği gibi, İnternet zkCPU'su nedir? Internet’in zkCPU’su Mina'dır.



Mina bir CPU gibi, kapıların birleştirilmesiyle devre oluşturacak şekilde tasarlanmıştır. Ayrıca, değerlerin kaydedilebileceği ve okunabileceği birkaç kayıt (register) bulunur. Bu kayıtlar şu anda 3 adet, yeni kimchi güncellemesi ile 15 adet olacak. Bazı bölümler özel kapılar veya arama tabloları aracılığıyla hızlandırılmış, bu da gerçek bir CPU'nun ALU (Aritmetik Mantık Birimi) bileşenine benzer bir işlev görür. CPU'nun ALU'su (Aritmetik Mantık Birimi), CPU'nun matematiksel ve mantıksal işlemleri gerçekleştiren ana bileşenidir. CPU, diğer bileşenlerle birlikte çalışarak, programların yürütülmesini sağlamak için ALU'dan yararlanır.

Mina şu anda iki devre olan bir zkCPU'dur:


1. işlem devresi

2. blokzinciri devresi

İşlem devresi, işlem blokları oluşturmak için kullanılırken, blokzinciri devresi bu işlem bloklarını blok zinciri haline getirir.


İlginç bir şekilde, her iki devre de özyinelemeli yani tekrarlı devrelerdir, bu da Mina'nın oluşturulan tüm kanıtları tek bir kanıt halinde sıkıştırmasına izin verir. Bu, son kullanıcılar olarak bizim gibi insanların, tüm blokzincirini 22kB'lık tek bir kanıtla doğrulayabileceği anlamına gelir.



Yakında, herkesin kendi devrelerini yazmasına ve Mina zkCPU'ya modül olarak eklemesine izin verecek olan zkAppler lanse edilecek.


Kullanıcı devreleri, Mina ile aynı zkCPU'ya erişebileceğinden, farklı şekillerde genişletilebilir olacak. Örneğin, Bir zkApp farklı bir kanıt sistemi kullanabilir, farklı optimizasyonlara izin veren bir şey (örneğin Halo2 kütüphanesi) uygulayabilir veya tamamen farklı bir şey yapabilir.


Gelecekte insanların ne geliştireceğini ve tüm bu zkApplerin diğer zkApplerle ücretsiz olarak etkileşebilmesinden nasıl yararlanacaklarını görmek için heyecanlıyım. Ayrıca, zkAppler şu anda test ağında herkese açık, yani mainnette zkAppleri denemek için sabırsızlanıyorsanız deneyebilirsiniz.


Şimdi zkCPU’nun önemini pekiştirmek için birkaç örnek vereyim.


Mina, blokzincir teknolojisi için daha hızlı ve verimli bir çözüm sunarak finansal hizmetler sektöründe devrim yaratabilir.

zkAppler, finansal sistemlerin güvenliğini artırırken, aynı zamanda diğer sektörlerde de kullanılabilir, örneğin: sağlık sektöründe kişisel verilerin güvenliği için kullanılabilir.

Mina'nın ölçeklenebilirliği ve çok yönlülüğü, blokzincir tabanlı uygulamaların geliştirilmesi için daha iyi bir zemin sunabilir ve gelecekte çok sayıda uygulamaların ortaya çıkmasına yardımcı olabilir. Örneğin, bir kişinin şifreli mesajlaşma uygulaması geliştirmesi için Mina'nın zkCPU'sunu kullanarak özel bir devre oluşturabileceği düşünülebilir. Bu, mesajların şifrelenmesinde daha hızlı ve daha güvenli bir yöntem sağlayabilir.

Ayrıca, Mina'nın zkCPU'su, merkeziyetsiz finansal uygulamaların geliştirilmesine de olanak tanıyabilir. Bu, birçok insanın finansal sisteme daha eşit şekilde erişmesine ve kontrol sahibi olmasına olanak sağlayabilir.


Tüm bu örnekler, Mina'nın zkCPU'sunun gelecekte blokzincir teknolojisi ve diğer sektörlerdeki inovasyonlar için çok büyük bir potansiyele sahip olduğunu gösteriyor.


Özetle, zkCPU, zero-knowledge Circuit Processing Unit kelimelerinin kısaltmasıdır ve bir tür sıfır bilgi kanıtı teknolojisi olarak kabul edilir. Bu teknoloji, bir bilgisayarın çalışma prensibine benzer şekilde, verileri işlemek ve işlemleri gerçekleştirmek için özel olarak tasarlanmış bir devre kullanır. Bu devre, sadece sonucu gösterirken işlem adımlarını gizli tutabilen bir sıfır bilgi kanıtı oluşturabilir. Böylece, bir işlem gerçekleştirilirken taraflar arasındaki veri paylaşımı en aza indirgenir ve güvenlik artırılır. Mina, bu teknolojiyi kullanarak hem işlem hem de blokzinciri devrelerini işleyen ve zinciri tek bir kanıtla sıkıştıran bir zkCPU'dur diyebiliriz.



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