Validium
Blokzincirler, trilemma adını verdiğimiz 3 şart etrafında kuruluş tercihlerine göre yakın durdukları iki uç nokta daha güçlü oldukları alanlar iken üçüncü uç nokta ise genelde zayıf oldukları alandır.
Blokzincir Trilemması, Kaynak: Swyftx learn
Ethereum teknolojisi trilemma probleminde güvenlik ve merkeziyetsizliği seçerek ölçeklenebilirlik alanında zayıf kalmıştır. Bu sebeple Ethereum’un ölçeklenebilmesi için çeşitli çözümler geliştirilmektedir. Bu yazıda bir ölçeklenme çözümü olan Validium’lardan bahsedeceğiz.
Ethereum’da güncel yol haritası Rollup adını verdiğimiz ölçeklenme çözümünü merkezde tutmaktadır. Validium’lar ise Rollup’lar ile hem birkaç alanda benzerlik sağlamakta hem de çözüm olarak farklı bir yaklaşım getirmektedir.
Aslında Rollup çözümleri ucuzlayana kadar yerine tercih edilen bir çözüm demek mümkün. Neden?
Validium’lar, Rollup’lar ile aynı şekilde Ethereum ana ağını daha az kullanarak işlem yaparlar ancak Rollup’ların aksine veri işleme ve veri erişilebilirliği (data availability) kısımlarını zincir dışı olarak çözerler. İşlem kanıtlarını da Zero-Knowledge Rollup çözümünün yaptığı şekilde sıfır bilgi kanıtı kullanarak işledikten sonra Ethereum ana ağında onaylar. Ethereum ana ağında onaylamaları sayesinde herhangi bir güvenlik sorununun oluşma ihtimalini Ethereum ana ağının güvenlik altyapısını kullanarak en az düzeye indirirler.
ZK-Rolluplara benzer şekilde bir işleme ve onaylama yöntemi kullandıklarından bahsetmiştik. İşte bu kanıt tipine Validity Proof adını veriyoruz.
Validity Proof (Geçerlilik Kanıtı)
Geçerlilik Kanıtı ya da Sıfır Bilgi Kanıtı işlemleri doğrulayabilmek için bir doğrulayıcı ve kanıtlayıcı arasında yer alan bir kanıt tipidir. Kanıt doğrulaması sırasında kanıtlanan veriye dair herhangi bir bilgi dışarıya aktarılmaz. Polinom denklemleri kullanarak hem şifrelemeyi hem de doğrulamayı sağlarlar. Genelde 3 majör polinom hash şeması kullanırlar:
1- KZG (Kate-Zaverucha-Groth) Polynomial Commitments: Kanıtlayıcı bir polinoma bir katkı sağlar, kanıtı sunar ve sonucu da taahhüt eder. Doğrulayıcı herhangi bir noktada bir değeri kanıtlayıcıya göndererek polinomu test eder.
Bu durumda kanıtlayıcı polinomun denklemini biliyor ve doğrulayıcı da verdiği noktada polinom denkleminden gelecek değeri biliyor. Peki kanıt bilinmeyeni nasıl elde ediliyor?
Kanıt bilinmeyeni de bir polinom denklemi olarak var oluyor. Bu kanıt denklemi ile başlangıçtaki polinom denklemi arasında bir ilişki kurmaya çalışıyoruz. Burada polinom denkleminin köklerini bulur gibi polinom denkleminin sıfır olduğu noktayı belirliyoruz. Bu noktanın baştaki polinom denklemimize bölümü ile yine baştaki polinom denklemimiz ile çarpımı bize polinom denkleminin sıfır olduğu noktayı verecektir.
Buradan sonuç olarak aşağıdaki denklemi elde ederiz:
Burada q(s) değeri elde ettiğimiz kanıttır. Buradan daha fazla detaya girmek isterseniz bir sonraki adım Elliptic Curve Pairing (Eliptik Eğri Eşleştirme) üzerinden devam etmektedir.
2- Bulletproof: Bir bilginin/sırrın belirli bir aralıkta olduğunu kanıtlayabilen sıfır bilgi argümanı. Doğrulayıcıyı, veri (sayı) hakkında herhangi bir bilgi vermeden şifrelenmiş verinin (sayının) belirli bir aralıkta olduğuna ikna edebilmek için kullanılabilir. 2017'de Stanford’da kriptografi alanında geliştirmeler yapan bir grup tarafından ortaya atılmıştır.
Bulletproof, amacına bir ayrık (discrete) logaritma problemi ve Fiat-Shamir bulgusunu/dönüşümünü kullanarak ulaşır.
Ayrık logaritma problemi tek yönlü bir işleme sağlayarak verilen girdi değerini hesaplamayı olanaksız hale getirir. Fiat-Shamir dönüşümü de elde edilen kanıtın ışığında bir dijital imza oluşturur.
KZG şemasının aksine kanıtlayıcı ve doğrulayıcı arasında herhangi bir etkileşime ihtiyaç duyulmaz.
Kurşun gibi kısa ancak kurşun geçirmez seviyede güvenlik sunuyor. -Shashank Agrawal
3- FRI (Fast Reed-Solomon Interactive Oracle Proofs of Proximity): Düşük dereceli bir polinomun derecesine göre bir etki alanı içinde verilen bir fonksiyonun değerini hesaplamamızı sağlar.
Buradaki şemaları kullanarak geçerlilik kanıtları oluşturulur. Genellikle KZG şeması tercih edilir.
Validium kullanıcılarının varlıkları Ethereum ağındaki bir akıllı kontrat tarafından kontrol edilir. Kullanıcılar varlıklarını Merkle kanıtları kullanarak Validium’lardan geri çekebilir. Veri erişilebilirliğini sağlayan yönetimi zincir dışındaki işlem verilerini kullanıcılara vermemeyi tercih ederek kullanıcıların varlıklarını dondurabilir ya da geri çekebilmelerini engelleyebilir.
ZK-Rollup’lar ile Validium’lar arasındaki temel fark buradaki veri erişilebilirliği durumudur. Rollup’lar, ZK-Rollup’lar, verilerini zincir dahilinde tutarken Validium’lar verileri zincir dışında tutar.
Validium’lar Ethereum ile Nasıl Etkileşime Girer?
Validium’lar Ethereum ana ağında yaşayan akıllı kontratlar ile çalışır.
1- Doğrulayıcı Akıllı Kontrat: Geçerlilik kanıtlarını işlemlere dair durum güncellemeleri ile Validium operatörleri aracılığıyla doğrular. Bu doğrulama zincir dışında yapılan işlemleri doğrulanması ve veri erişilebilirliği kanıtlarının zincir dışındaki işlemlerin verileriyle eşleştirilmesini içerir.
2- Ana Akıllı Kontrat: Taahhüt edilmiş durumları (Merkle kanıtlarını) blok üreticiler aracılığı ile işler. Ayrıca geçerlilik kanıtı zincir dahilinde kanıtlandıktan sonra Validium’un durumunu günceller.
Ethereum’a Bağlılık
Validium’lar, Ethereum için bir ölçeklenme çözümü oldukları için diğer ölçeklenme yöntemleri gibi Ethereum ağına birkaç noktada bağlıdır.
Validium üzerinde yapılan işlemler ana zincir tarafından onaylanmadıkça geçerli değildir. Validium’larda zincir dışında yapılan işlemlerin terse döndürülememesi ya da değiştirilememesi zincir dahilinde onayın sonucunda değerlendirilerek uzlaşma Ethereum zincirinin uzlaşma katmanının güvencesi altında tutulur. Ayrıca güvenlik işlemleri kapsamında bu işlemlerin zincir dahilinde onaylanabilmesi için öncelikle Ethereum zincirinin Validium’ların durumundan haberi olması gerekir.
Validium Nasıl Çalışır?
Validium zincirinde PoS (Proof-of-Stake, varlık kilitlemeye dayalı konsensus mekanizması) konsensus mekanizması kullanılarak kullanıcıların yaptığı işlemler zincir dışında tutulur.
Validium zincirinin “operatörü” zincirdeki işlemleri bir yığın haline getirir ve bunları girdi olarak kabul eder. Çıktı olarak da bu işlemlerin doğru bir şekilde gerçekleştiğini doğrulamak için bir geçerlilik kanıtı yaratır.
Validium’un durumu hashlenerek Merkle Tree içerisinde kökleri ile birlikte Ethereum ağındaki ana kontratta tutulur. Merkle Tree, Validium için güncel durumu belirtmek için kullanılır. Durumda bir güncelleme yapmak için operatörler yeni bir kök oluşturup bunu zincir dahilindeki kontrata kaydeder. Geçerlilik kanıtının doğruluğu sağlandıktan sonra da bu kök yeni durum kökü olarak kabul edilir.
Kullanıcılar eğer Ethereum ağından Validium’a varlık aktarmak isterse bunu zincir dahilindeki akıllı kontrata aktarırlar. Kontrat zincir dışındaki verilere bu işlemi belirtir ve Validium ağında kullanıcının adresinde aktardığı varlık miktarı görünür. Eğer Validium zincirindeki varlığı Ethereum zincirine aktarmak istenirse kullanıcı geri çekmek için bir işlem yapar ve bu işlemi operatöre iletir. Operatör burada işlemi işler ve bir yığına ekler. Bu aktarım işleminde geçerlilik kanıtı sağlandığı durumda kullanıcının Validium zincirindeki varlıkları yok edilir ve aktardığı varlık Ethereum ana ağında görüntülenebilir. Ayrıca Validium yapısı operatörün aracılığını ortadan kaldırıp Merkle kanıtı kullanarak kullanıcıların direkt Validium kontratıyla etkileşime geçmesini sağlayabilir.
Operatör bu işlemler ile oluşturduğu yığını bir geçerlilik kanıtı ile doğrulayıcı kontratına iletir ve yeni bir kök oluşumu için ana kontrata bir teklif sunar. Eğer kanıt doğruysa ana kontrat Validium’un durumunu günceller ve oluşturulan yığının içindeki işlemler finalize edilir.
ZK-Rollup’lardan farklı olarak Validum zincirlerinde blok üreticileri yığınların içindeki işlemlerin verilerini yayınlamaz. Sadece blokların başlıklarını yayınlar.
Veri Erişilebilirliği ve Validium’lar
Validium’larda verilerin zincir dışında tutulması kullanıcıların varlıklarını kontrol etmesi konusunda sıkıntılar içerebilir. Birkaç Validium protokolü buradaki durum verilerinin depolamasını merkeziyetsiz hale getirerek bu sorunu çözmeyi hedefler. Blok üreticileri veri erişilebilirliği için belirlenen yöneticilere verileri iletir ve bu yöneticiler verileri zincir dışında depolayıp aynı zamanda kullanıcıların isteği doğrultusunda erişilebilir olarak tutmakla sorumludur.
Veri Erişilebilirliği Komitesi (Data Availability Committee, DAC): Bazı Validium protokolleri zincir dışında tutulan verilerde veri erişilebilirliğine çözüm olarak bir gruba güvenmeye dayalı bir yapıyı tercih eder. Bu grup veri erişilebilirliğine dair verilerin durumlarını ve kanıtların bir kopyasını tutmakla sorumludur.
Birbirine Bağlı Veri Erişilebilirliği (Bonded Data Availability): Diğer bir veri erişilebilirliği çözümü olarak Validium’larda kullanılan bir yapıdır. Veri erişilebilirliği için yardım sağlayan katılımcıların zincir dışı verileri saklayabilmeleri için bir akıllı kontrata token kilitlemesini zorunlu tutar. Bu yöntem güvene dayalı bir komite yaratmaktan daha mantıklı ve merkeziyetsiz durumdadır.
Volition’lar ve Validium’lar
Validium’ların spesifik olarak daha yararlı olduğu alanlarda kullanılması tercih edilmelidir. Bu yüzden de Volition’lar yaratılmıştır.
Volition’lar, ZK-Rollup’lar ile Validium zincirlerinin birleştirildiği bir yapıdır. Kullanıcıların bu iki ölçeklenebilirlik çözümü arasında tercih yapabilmesine olanak tanır. Aynı zamanda hem ZK-Rollup’ların hem de Validium’ların farklı özelliklerini kullanarak daha farklı bir özgürlük sunulabilir. Özellikle merkeziyetsiz al-sat platformlarının Volition yapısını tercih etmesi hem ölçeklenebilirlik hem gizlilik hem güvenlik hem de güvenme faktörünün ortadan kaldırılması için yararlıdır.
Kaynak: StarkEx
Validium’lar ve EVM Uyumu
İTÜ Blockchain’in yaptığı Ethereum’un güncel yol haritasına dair yayında bahsedilen ZK-Rollup’ların akıllı kontratları çalıştıramama durumu Validium’lar için de geçerlidir. Validium’lar bünyesinde akıllı kontrat işlemesi yapabilmek ve bunun implementasyonu zor bir durumdur.
Bazı Validium protokolleri bu sorunu aşmak için halihazırda EVM uyumlu olan akıllı kontrat dilleri (ör. Solidity, Viper) üzerinde özel bytecodelar yaratmayı hedefleyerek efektif bir işleme yapısı sağlamaya çalışıyor. Ancak bu durum geliştiricilerin tamamen yeni bir geliştirme çevresinde çalışmasını gerektireceği için pek karşılık bulamıyor.
Bu konuda zkEVM (Zero-Knowledge EVM) geliştirilmesi üzerine bir uğraş söz konusudur. EVM uyumlu sanal makineler ile sıfır bilgi kanıtlarının üretilmesi ve doğrulanmasının sağlanması amaçlanmaktadır. Zero-Knowledge uyumlu bir EVM’in varlığı sıfır bilgi kanıtını kullanan protokollerde (ZK-Rollup ve Validium) akıllı kontratları çalıştırabilmeyi sağlayabilir.
Validium’lar Ethereum’un Ölçeklenmesine Nasıl Katkı Sağlar?
1- Zincir Dışı Veri Depolama: Rollup’ların yapısı gereği ölçeklenebileceği seviye Ethereum ana ağının veri ağı genişliğine bağlıdır. Validium’lar ise işlemlerin verilerini zincir dışında tutup sadece taahhüt edilen durumları ve geçerlilik kanıtlarını Ethereum ana zincirine aktarır. Bu sayede de Ethereum ana zincirinde minimal düzeyde işlem gerçekleştirerek ölçeklenmeye katkı sağlayabilirler.
2- Recursive Proof (Yinelemeli Kanıt): Bu kanıt çeşidi bir geçerlilik kanıtı olup diğer kanıtların geçerliliğini doğrular. Kanıtların kanıtı diyebiliriz. Blokzincirde işlenebilen işlem sayısını arttırmayı sağlayarak ölçeklenmeye katkı sağlayabilirler.
Geçerlilik kanıtları özel bir donanım gerektirmesi sebebiyle merkeziyetsizliğe dair bir risk yaratabilir.
Validium’lar geliştirme kısmında kendi başlarına bir yapı yarattıklarından dolayı geliştiricilerin sisteme entegrasyonunda sorunlar yaşayabilirler.
Validium yapısını kullanan başlıca projeler StarkWare tarafından geliştirilen StarkEx ve Matter Labs tarafından geliştirilen zkPorter protokolleridir.
StarkEx
StarkEx, geçerlilik kanıtlarına dayanan bir 2. katman (Layer 2) ölçeklenebilirlik çözümüdür. Hem ZK-Rollup olarak hem de Validium olarak farklı veri erişilebilirliği yöntemleri içerir.
Zk-Rollup & StarkEx: StarkEx vadeli işlemleri ve StarkEx spot işlemleri için kullanılmaktadır. Veriler zincir dahilinde tutulmaktadır. Güvene ihtiyaç duymayan bir yapıya sahip olunması bir avantaj olarak kullanılmaktadır. Ancak her bir güncelleme için kanıt oluşturulduğundan dolayı bir işlem ücreti ödenmesi gereklidir.
Validium & StarkEx: StarkEx vadeli işlemleri ve StarkEx spot işlemleri için kullanılmaktadır. Veriler zincir dışında tutulup bir Veri Erişilebilirliği Komitesi tercih edilmiştir. Veriler zincir dışında tutulduğundan dolayı zincir dahilinde işlem ücreti çok düşüktür sadece zincir dahilindeki durumu değiştirmek için işlem ücreti ödenmesi gerekir. Verilerin zincir dışında tutulması da gizlilik açısından katkı sağlar ancak burada da verilerin güvene dayalı olarak tutulduğu unutulmamalıdır.
Volition & StarkEx: StarkEx spot işlemleri için kullanılmaktadır. İki ölçeklenme yönteminin birleşimi olduğundan dolayı duruma göre yöntem tercihi seçilmesine olanak sağlamaktadır.
Validium ismi de StarkWare tarafından önerilmiştir:
- StarkEx gizlilik alanında birkaç geliştirme tipi sunuyor:
OND (Rollup): Şifrelenmiş verilerin zincir dahilinde depolanması.
OFFD (Validium): Veri erişilebilirliği komitesinin kendi sorumluluklarına ters bir durum sergileyememesi sayesinde gizlilik sağlanabilir.
- StarkEx veri erişilebilirliğine çözüm olarak iki farklı geliştirme dizaynı geliştirdi:
Minimum Uygulanabilir Geri Alma (Minimally Viable Rollback, MVR): OFFD çözümleri dahilinde verilerin erişilebilirliği mümkün olmazsa ne olur? Hem operatör hem de veri erişilebilirliği komitesinde bir hata olduğunu düşünelim. Burada bu dizayn erişilemeyen verilerin olduğu durumlar yerine verilerin erişilebilir olduğu bir duruma geri dönerek devamlılığı sağlamayı hedefler.
Güvenilir Zincir Dışı Veri Erişilebilirliği (Trustless Off-Chain Data Availability, TODA): Bu çözümde kullanıcılar bir Power User (PU)olmayı seçebiliyorlar. Power User olmayı seçen kullanıcılar her kanıt için imza yetkisine sahip oluyor ve bu imza sayesinde kendi işlemlerini doğrulayabiliyorlar.
zkPorter
zkPorter, zkRollup ve sharding fikirlerini kullanarak veri erişilebilirliğine dair hibrit bir yaklaşım geliştiren bir 2. katman çözümüdür. zkPorter, birinci katmandan yani Ethereum ana ağından daha güvenli olarak düşünülmektedir. En kötü durumda, ağdaki kilitli varlıkların 2/3'ünün ele geçirilmesi durumunda dahi verilerin işlenmesi durumuna el konulur ve durum dondurularak varlıkların geri çekimi engellenir.
Polygon zkEVM Validium
Polygon iki farklı çözüm önerisi geliştiriyor: Polygon zkEVM (bir Rollup çözümü) ve Polygon zkEVM Validium (eski Polygon PoS). Polygon CDK’nin gücünü kullanarak bu iki yapıyı ayakta tutmayı hedefliyorlar.
Polygon, “Hem Rollup hem de Validium olalım. Bu iki yapı aynı validatörleri ve aynı likidite havuzunu kullanırsa çok iyi olabilir.”
Manta Network
Manta Network, zkEVM olarak Polygon zkEVM ve veri erişilebilirliği için Celestia kullanarak bir Validium olarak işlemeyi amaçlamaktadır.
Celo
Aslında bir mobil blokzinciri (Celo, kripto adresleri yerine kripto varlıkları telefon numaraları aracılığıyla göndermeyi amaçladı) olarak bilinen Celo, yakın zamanda Polygon Labs tarafından açılan bir teklif ile Polygon CDK kullanarak Validium olarak bir Ethereum 2. katman çözümü olmayı değerlendiriyor.
Immutable X
Immutable, NFT’ler özelinde odağı olan bir blokzincirdir. Hem Validium hem de zk-Rollup olmayı hedefleyerek bir Volition yapısı kurmayı hedeflemektedir.
Immutable da Polygon CDK aracılığı ile Immutable zkEVM yapısı üzerinde çalışıyor.