Mina zk-SNARK'ları Nasıl Kullanır?

From Mina Wiki
Jump to navigation Jump to search

Medium orijinal metni


Mina’yı ‘Cebinize uyan bir cüzdan’ olarak düşünebilirsiniz.

  • Kompakt bir blockchain ile ilk kripto para birimi.
  • Blockchain, 100'lü GB’lardan (mevcut protokollerde görüldüğü gibi) kB’lere kadar sıkıştırıldı.
  • Ölçeklenebilir, güvenli ve merkezi değil.
  • Bir cep telefonunda blok zincirinin doğrulanmasına izin verir.

Mina’nın blok zinciri her zaman sabit bir boyut olarak kalır — ağda kaç işlem yapılırsa yapılsın, sadece birkaç tweet büyüklüğünde.


VIDEO: hack.summit(“blockchain”) 2018 — Izaak Meckler — co-founder and CTO, Mina Protocol


‘Cryptosphere’de sık sık “Güvenmeyin, doğrulayın” sloganını takip etmeye teşvik ediliriz. Ancak aktif bir ağ kullanıcısı olma ihtiyacını anlamamıza rağmen, blok zincirlerindeki kullanıcıların, sürekli artan gereksinimler nedeniyle full node çalıştırma olasılığı daha düşüktür.


https://miro.medium.com/max/2000/1*d_AxaiI3TrtvgAR19C0tiA.jpeg

Bitcoin blok zincirinin ’09 –18'den megabayt cinsinden büyüme oranı


Önsöz

Neden herkes full node çalıştıramaz? İşe başlamadan önce, tipik bir kripto para birimi protokolünün temel kurulumunu anlamalıyız — miner veya staker olarak bilinen bir işlemci (sırasıyla PoW ve PoS) veritabanına bir işlem uygular. Full node daha sonra dürüstçe hareket ettiklerinden emin olmak için bu işlemleri gözlemler. Son kullanıcılar genellikle bağımsız olarak denetlenmemelidir — bunun yerine istekli ağ katılımcılarına güvenilir. Peki neden?

  • Kaynak gereksinimleri ve full node çalıştırmanın karmaşıklığı, son kullanıcıların bunu yapmasını engeller.
  • Full node bir bilgisayarda çalıştırılabilir ama cep telefonunda imkansızdır.
  • Bu doğrulamayı tamamlamak için üçüncü taraflara güvenmek daha kolaydır.


https://miro.medium.com/max/1400/1*efdYJbQwJ0qzuCIL1UvlAg.jpeg


Herhangi bir kripto para biriminin ilk aşamalarında, blok zinciri küçük olduğu için full node çalıştırmak nispeten kolaydır — belki birkaç megabayta kadar. Bununla birlikte, zamanla daha fazla işlem kaydedildikçe, bu yüzlerce gigabayta kadar büyür (yukarıdaki grafikte görüldüğü gibi). Bu amaca uygun bir bilgisayar olmadan full node çalıştırmak çok zor hale gelir, bir akıllı telefonda ise imkansız.


Peki bir blockchain’in geçmişini görmeden, mevcut durumuna nasıl ikna olabiliriz?


Mina’ya Giriş

“Mina, geleneksel olarak gigabaytlara kıyasla yalnızca birkaç kilobayt veri indirerek, birkaç milisaniyede herkesin full node seviyesi güvenliğinde [herhangi bir cihazda] ağ ile senkronize edilmesini mümkün kılan yeni bir kripto para birimi protokolüdür.”


VIDEO: #243 #243 Izaak Meckler & Evan Shapiro: Mina — A Succinct Blockchain — Epicenter


O(1) Labs, ilk kompakt ve sıkıştırılmış blok zincirini (birkaç tweet boyutunda) oluşturarak blok zinciri boyutu konusunu ele almak için Mina Protokolünü geliştiriyor. Bu, son kullanıcıların işlemleri doğrulama yolundaki engellerini azaltır.


Bunu mümkün kılan nedir?

  • Zk-SNARK’ların kullanımı — blokları tek bir kanıt veya sertifikaya etkili bir şekilde sıkıştırmak.
  • Son kullanıcılar, bir bloğun tüm işlem geçmişini kontrol etmek yerine bu kanıtı kontrol eder.
  • Bu SNARK’ların / sertifikaların özyinelemeli bileşimi — sabit boyutlu bir blok zincir sağlar.


zk-SNARKs, sıfır bilgi kanıtlarının bir yinelemesidir — bir hesaplama kanıtı sağlarken, sıfır bilginin bir doğrulayıcıya aktarıldığı bir şifreleme şemasıdır.


Mina Nasıl Çalışır?

Mina içindeki zk-SNARK’lar

Mina Protokolünün özünde, herhangi bir hesaplamayı onaylamak için zk-SNARK kullanımı yatar.


zk-SNARK’lar, bir hesaplamanın tüm hesaplamayı kanıtlamadan doğru bir şekilde gerçekleştirildiğini kanıtlamak için dayanılmaz sertifikalar olarak işlev görür. Belirtildiği gibi, bir bloktaki işlemleri doğrulama ve ondan bir SNARK oluşturma gibi herhangi bir hesaplama yapabiliriz. Bu SNARK, tüm işlemleri göstermek zorunda kalmadan bir bloğun işlem geçmişinin doğruluğunu kanıtlar. Bu, bir bloğun boyutunu etkili bir şekilde tek bir SNARK’a (~ 1kB) düşürür. SNARK, konsensüs için TÜM kuralları doğrular.


Şunları sağlar:

  • İşlemler imzalanır.
  • Geçerlilik kazandırır.
  • Mutabakat kuralları (toplam karma gücü + PoW için zincir gücü ve Değişken Rastgele İşlev / PoS için diğer kurallar).


SNARK dürüst bir şekilde oluşturulmamışsa, geçerli değildir. Ağdaki herkes bunu bir “Raspberry Pi” veya akıllı telefon gibi “lite” bir yapıda görebilir.



İşlemleri bir blokta, düşük bir kaynak gereksinimi ile bile güvenli bir şekilde doğrulamak, eldeki soruna sürdürülebilir ve ölçeklenebilir bir çözüm yaratmanın ilk adımıdır.

https://miro.medium.com/max/1400/1*EWI3UbGtTmNqpPSrMSrIbg.png


Bir Mina işlemci ile son kullanıcı arasında gerçek bir konuşma:

“Merhaba doğrulayıcı / son kullanıcı! Bir bloğun işlem geçmişini kolayca doğrulayabilmen için bir sertifika oluşturdum. Bu işlem çok fazla bilgi işlem gücü gerektirdi, bu yüzden bunu yaptığım için ödüllendirildim. Bu kanıtın doğruluğunu, yalnızca birkaç milisaniye ve birkaç kilobayt boş alan alacak olan SNARK’ı kontrol ederek doğrulayabilirsin. Bu şekilde, blok zincirini doğrulamak için yüzlerce gigabayt indirmen gerekmeyecek! ”- SNARK İşlemci.

“Çok teşekkürler, işlemci. Bu sertifikayı doğrulayacağım! Çok küçük olduğundan blockchain’i doğrulamak için başka birine güvenmem gerekmiyor ve sonunda akıllı telefon gibi bir şey üzerinde doğrulayıcı bir node ve cüzdan çalıştırabiliyorum. Teşekkür ederim! Hayat şimdi çok güzel. ”- Son kullanıcı.

Her bloğun bir SNARK ile değiştirilmesi tam bir çözüm değildir.

Başlangıçta, her blok için bir SNARK oluşturabildiğimiz, her bloğu yaklaşık bir kilobayta küçültebildiğimiz düşünülüyordu. Ama SNARK’lar biriktikçe, mevcut blok zincirlerinden çok daha az olsa da, zaman içinde büyümeye neden olacağı görüldü.


Bunu nasıl düzeltebiliriz?

Bir SNARK’ın herhangi bir hesaplamayı onaylamak için kullanılabileceğini biliyoruz. Bir SNARK oluşturmak kendi başına bir hesaplamadır — peki ya birden fazla SNARK’ın bir SNARK’ını yaratırsak?


https://miro.medium.com/max/1400/1*uq8zPEIf_iGAGf8trqj8yA.png

Her biri bir son kullanıcı tarafından doğrulanan birden fazla sertifika / SNARK.


Mina’daki SNARK’ların Özyinelemeli Bir Kompozisyonu

Daha önce de belirtildiği gibi, bu sertifikaları özyinelemeli bir bileşim içinde bir araya getirebilir ve blok zincirinin ~ 20kB (SNARK + kuyruk ucu Merkle yolu) sabit boyutunda kalmasına izin verebiliriz.

Her yeni blok üretildiğinde, yeni bir SNARK / sertifika oluşturulur. Önceki sertifikalardan oluşan tek bir SNARK oluşturarak, bir anlamda tek bir “mega” SNARK yaratabilirsiniz, bu da blok zincirinin tüm işlem geçmişini kanıtlar ve böylece genesis bloğundan mevcut duruma geçerek tek bir sertifika boyutunda işlemi tamamlar.

https://miro.medium.com/max/1400/1*2QyrSaC88eQm1N1T3_ttrQ.png

Tek bir sertifika / SNARK içine yerleştirilmiş birden çok sertifika / SNARK.


Basitçe söylemek gerekirse, diyelim ki:

  • Blok 0'dan Blok 2'ye gidebileceğinizi belirten bir sertifika.
  • Blok 2'den Blok 4'e gidebileceğinizi belirten ek bir sertifika.


Daha sonra bu SNARK’ları Blok 0'dan Blok 4'e gidebileceğinizi belirten tek bir SNARK’ta birleştirebilirsiniz.

Yeni SNARK / sertifika ~ 1kB olarak kaldı. Daha büyük bir ölçekte, en son SNARK’ta “sıkışmış” sertifika sayısına rağmen, blok zincirinin tüm işlem geçmişi için boyut olarak sabit kalan bir sertifika oluşturabilirsiniz.


Mina’daki bir doğrulama düğümü aşağıdakilerden oluşur:

Şu anki durumun (20kB) blok zincirinin ve merkle kök yolunun tüm geçmişinin geçerliliğini kanıtlayan özyinelemeli olarak oluşturulmuş bir zk-SNARK (1kB); bir kullanıcının bakiyesinin geçerliliğini kanıtlar. Bunların tümünün senkronize edilmesi yalnızca milisaniye sürer.


https://miro.medium.com/max/1400/1*Ww-59APReKmIqaGSKoIIlg.jpeg

Son kullanıcı, geçmiş durumun tüm sertifikalarını içeren karışık bir yolun yanı sıra geçerli durumdaki bir SNARK’ı doğrular. Tüm bunlar bir araya gelerek bir kullanıcının bakiyesini doğrulamasına olanak tanır.


Uygulamalar, Merkeziyetsizlik ve Ölçeklenebilirlik

Uygulamalar

Mina protokolünün yapısı, blockchain’in son kullanıcılar tarafından tarayıcı ve uygulamalara yüzlerce gigabayt indirmeden ve güvenliği elden bırakmadan kolayca erişilebilir olmasını sağlar.

Geliştirici tarafından doğrulama yapılmayan hiper-lite cüzdan gibi bir uygulama düşünün. Doğrulama işlemi, son kullanıcılar tarafından güçlü bir donanım gerekmeksizin tamamlanabilir.

Herhangi bir cihaz, akıllı telefonlar, tarayıcısı olan ya da olmayan telefonlar (evet, eski yıkılmaz Nokia’nız) dahil ancak bunlarla sınırlı olmamak üzere bir doğrulama nodu çalıştırabilir.


Merkeziyetsizlik

Daha önce de belirtildiği gibi, günümüzün mevcut kripto para birimi protokollerindeki son kullanıcılar, madencilik durumunda çevrimiçi cüzdanlar veya hafif müşteriler gibi hizmetlere güvendi. İşlemleri doğrulama görevi genellikle bu hizmet sağlayıcıların elinde yoğunlaştığından, bu durum %51 saldırısı gibi bir sonuca yol açabilir.

Ağ katılımcılarına doğrulama nodlarını barındırmanın kolay bir yolunu sağlayarak, işlemler daha geniş bir ağ katılımcısı olan son kullanıcılar tarafından onaylanacağı için ademi merkeziyetçilik artırılır.


Ölçeklenebilirlik

Ölçeklenebilirliği arttırmak açısından, mevcut protokollerde binlerce txns / sn’lik verimi artırmak, doğrulama için gereken miktarda veri üretecektir. Bu durumda, doğrulanabileceğinden daha hızlı büyüyen bir blockchain ortaya çıkar.

Bununla birlikte, Mina blok zincirini sabit bir boyutta tuttuğundan, doğrulama verileri birçok büyüklük sırasına göre sıkıştırılır ve yüksek verim elde edilir.


Paket servisi

Sabit boyutlu blok zincirine sahip olan Mina, düşük kapasiteli son kullanıcıların işlemleri kendi başlarına doğrulamalarını sağlar.

  • Geleneksel blok zincirlerinde olduğu gibi, full node çalıştırmak için gereklilikleri yerine getirmek isteyenlere güvenmeye gerek yok.
  • Tüm blok zinciri ve kuyruk ucu karışıklık yolu için sertifika görevi gören tek bir SNARK’ı indirerek neredeyse tüm cihazlarda full node düzeyinde güvenlik elde edin.
  • SNARK’ların özyinelemeli bir bileşimini kullanılır ve blok zinciri boyutu ~ 20kB olarak kalabilir.
  • Nodları doğrulayan geniş bir ağa sahip olmak, daha fazla son kullanıcı ağ doğrulaması yaptığı için merkeziyetsizliği artırır.


Bonus:

Mina’yı bir PokéBall’a sıkıştırılmış bir blok zinciri olarak düşünebilirsiniz. Bir Snorlax’ı bir Pokéball’a sıkıştırmak yerine, Mina blok zincirini bir SNARK’a sıkıştırır.


https://miro.medium.com/max/1400/1*1EpCd88GKeW009kRU39wpg.jpeg

From ZCon0 Presentation — Izaak Meckler*