Recursive STARKs nedir?

Anıl
Starknet Türkiye
Published in
5 min readOct 2, 2022

Cairo’nun genel hesaplaması tarafından desteklenen Recursive Proof’lar (Özyinelemeli Kanıtlar) artık kullanılıyor. Bu, STARK’lar ile birlikte L2 çözümlerini ölçeklendirmenin gücünde büyük bir artış sağlama potansiyeline sahiptir. Tek bir kanıt ile Ethereum’a yazılabilecek işlem sayısında hızlı bir şekilde yüksek miktarda artış sağlayacaktır.

Şimdiye kadar STARK ölçeklendirmesi, Ethereum’a gönderilen tek bir kanıta onlarca hatta yüz binlerce işlemin “yuvarlanması” yoluyla çalışıyordu. Özyineleme ile, bu tür birçok kanıt tek bir kanıtta “toplanabilir”.

Recursive Proving (Özyinelemeli Kanıtlama) nedir?

STARK kanıtları ile bir durumu kanıtlamak için gereken süre, durumu yürütmek için gereken süre ile kabaca doğrusaldır. Buna ek olarak, bir durumun kanıtlanması X zaman alıyorsa, kanıtın doğrulanması kabaca log(X) kadar zaman alır ve buna genellikle “logaritmik sıkıştırma” denir. Başka bir ifadeyle, STARK’lar ile durumu doğrulamak için hesaplamaktan çok daha az zaman harcanır.

Cairo, STARK kanıtları tarafından kanıtlanabilen ve ilgili STARK doğrulayıcıları tarafından doğrulanabilen genel hesaplama durumlarının ifade edilmesine izin verir.

Birden fazla STARK kanıtını doğrulayan bir Cairo programı yazılabileceği gibi, birden fazla “yukarı akış” kanıtın geçerliliğini doğrulayan tek bir kanıt üretilebilir. Bu Recursive kanıt anlamına gelmektedir.

Logaritmik sıkıştırma ve kabaca doğrusal kanıtlama süresi nedeniyle, bir STARK kanıtının doğrulanması nispeten kısa sürer. Yakın gelecekte sadece birkaç dakika olması beklenmektedir.

Recursion’ı uygularken SHARP, durumları geldiklerinde kanıtlayabilir. Kanıtlar, doğrulayıcı sözleşmesine sunulana kadar çeşitli modellerde Recursive Proof’lar halinde tekrar tekrar birleştirilebilir.

Recursive Proving örneği

Bu örnekte, SHARP’a dört durum gönderilir (muhtemelen dört farklı kaynaktan). Bu durumların her biri paralel olarak kanıtlanır. Ardından, her bir kanıt çifti bir Recursive Verifier (STARK kanıtını doğrulayan bir Cairo programı) tarafından doğrulanır ve bunun için bir kanıt oluşturulur. Bu durum, iki kanıtın da doğru olduğunun doğrulandığını belirtir. Daha sonra, iki kanıt yine bir Recursive Verifier ile birleştirilir. Bunun sonucunda dört orijinal durumun tamamını doğrulayan tek bir kanıt elde edilir. Bu kanıt, daha sonra bir Solidity Verifier akıllı sözleşmesi tarafından doğrulanmak üzere zincir üzerinde gönderilebilir.

Recursive Proving’in Anlık Faydaları

Azaltılmış On-Chain Maliyet

İlk olarak, birden fazla kanıt tek bir kanıta “sıkıştırılıyor’’, bu da işlem başına daha düşük on-chain doğrulama maliyeti anlamına geliyor.

Recursion ile şimdiye kadar kanıtların boyutunu sınırlayan hesaplama kaynakları engeli (örneğin bellek) ortadan kaldırılmıştır. Çünkü sınırlı boyuttaki her durum ayrı ayrı kanıtlanabilir. Dolayısıyla, Recursion’ın etkili tren (art arda gelen kanıtlar) boyutu neredeyse sınırsızdır ve işlem başına maliyet büyüklük sırasına göre azaltılabilir.

Pratikte bu azalma kabul edilebilir gecikme süresine (ve işlemlerin ulaşma hızına) bağlıdır. Buna ek olarak, her kanıta tipik olarak zincir üzerindeki bazı çıktılar da eşlik ettiğinden, tek bir kanıtla birlikte zincir üzerine yazılabilecek veri miktarının sınırları vardır. Bununla birlikte, maliyeti büyüklük sırasına göre azaltmak ve hatta daha iyisi başarılabilir.

Azaltılmış Gecikme

Recursive Proving modeli, büyük durum trenlerinin kanıtlanmasındaki gecikme süresini azaltır. Bu iki faktörün sonucudur:

  1. Gelen durumlar paralel olarak kanıtlanabilir.
  2. Kanıtlamaya başlamak için Trendeki son durumun gelmesini beklemeye gerek yoktur. Bunun yerine, kanıtlar yeni durumlar geldikçe onlarla birleştirilebilir. Bu, bir Trene katılan son durumun gecikme süresinin, kabaca bu son durumun kanıtlamak için gereken süre artı bir Recursive Verifier durumunu kanıtlamak için gereken süre (Tren’e zaten “binmiş” olan tüm durumları kanıtlayan) olduğu anlamına gelir.

L3'ün Kolaylaştırılması

StarkNet’e kanıt gönderme olasılığının da önü açılmaktadır. Bu, StarkNet’in (L2) üzerine L3 dağıtımlarının kurulmasına olanak tanır.

Recursive modeli, L2'deki tek bir kanıtla doğrulanmak üzere L3'teki kanıtların toplanması için de geçerlidir. Dolayısıyla, hiper ölçeklendirme burada da elde edilir.

Daha İnce Faydalar

Uygulamalı Recursion

Recursion, maliyet ve performanslarını daha da ölçeklendirmek isteyen platformlar ve uygulamalar için daha da fazla fırsat sunuyor.

Her STARK ispatı, “genel girdi” (veya Cairo terimleriyle “program çıktısı”) olarak bilinen bazı girdilere uygulanan bir durumun geçerliliğini kanıtlar. Kavramsal olarak, STARK Recursion iki girdili iki kanıtı iki girdili tek bir kanıta sıkıştırır. Başka bir deyişle, kanıtların sayısı azaltılırken, girdilerin sayısı sabit tutulur. Bu girdiler daha sonra tipik olarak bir uygulama tarafından L1 üzerindeki bazı durumları güncellemek için kullanılabilir (Örneğin, bir durum kökünü güncellemek veya zincir üzerinde bir çekim işlemi gerçekleştirmek için).

Recursive durumun uygulama farkındalığına sahip olmasına izin verilirse, yani uygulamanın kendi semantiğini tanırsa, hem iki kanıtı tek bir kanıta sıkıştırabilir hem de iki girdiyi tek bir girdide birleştirebilir. Sonuçta ortaya çıkan durum, uygulama semantiğine dayalı olarak girdi kombinasyonunun geçerliliğini kanıtlar, dolayısıyla Uygulamalı Recursion adını alır.

Uygulamalı Recursion örneği

Burada, Durum 1, A’dan B’ye bir durum güncellemesini kanıtlar ve Durum 2, B’den C’ye bir başka güncellemeyi kanıtlar. Durum 1 ve Durum 2'nin kanıtları, A’dan C’ye doğrudan güncellemeyi kanıtlayan üçüncü bir durumda birleştirilebilir. Benzer mantığı Özyinelemeli olarak uygulayarak, durum güncellemelerinin maliyeti kesinlik gecikme süresi gereksinimine kadar çok önemli ölçüde azaltılabilir.

Uygulamalı Recursion’ın bir diğer önemli örneği de birden fazla kanıttan gelen Rollup verilerini sıkıştırmaktır. Örneğin, StarkNet gibi bir Validity Rollup için, L2'deki her depolama güncellemesi, veri kullanılabilirliğini sağlamak için L1'de iletim verisi olarak da dahil edilir. Ancak, veri kullanılabilirliği için yalnızca doğrulanan kanıt tarafından onaylanan işlemlerin nihai değeri gerekli olduğundan, aynı depolama öğesi için birden fazla güncelleme göndermeye gerek yoktur. Bu optimizasyon zaten tek bir StarkNet bloğu içinde gerçekleştirilmektedir. Bununla birlikte, blok başına bir kanıt üreterek, Uygulamalı Recursion bu Rollup verilerini birden fazla L2 bloğu boyunca sıkıştırabilir. Bu, L1 güncellemelerinin ölçeklenebilirliğinden ödün vermeden L2'de daha kısa blok aralıkları sağlayarak önemli maliyet düşüşüne neden olabilir.

Azaltılmış Hesaplama Ayak İzi

Recursion öncesinde, birden fazla durumu tek bir kanıtta bir araya getirme yeteneği, mevcut hesaplama örneklerinde kanıtlanabilecek durumun maksimum boyutu (ve bu tür kanıtları oluşturmak için gereken süre) ile sınırlıydı.

Recursion ile artık bu tür aşırı büyük durumların kanıtlanmasına gerek kalmamaktadır. Sonuç olarak, daha küçük, daha ucuz ve daha kullanılabilir hesaplama örnekleri kullanılabilir (ancak büyük monolitik kanıtlayıcılara göre daha fazlasına ihtiyaç duyulabilir). Bu, kanıtlayıcı örneklerinin daha önce mümkün olandan daha fazla fiziksel ve sanal ortamda konuşlandırılmasına olanak tanır.

Özetle

  • Recursive Proof’lar artık Ethereum Mainnet üzerinde StarkNet dahil olmak üzere birden fazla sisteme hizmet vermektedir.
  • Recursion’ın faydaları, yeni iyileştirmelere izin vermeye devam ettikçe kademeli olarak gerçekleşecek ve yakında hiper ölçek sunacak. Gaz ücretlerini düşürecek ve paralelleştirme potansiyelini ortaya çıkararak gecikme süresini iyileştirecektir.
  • L3 ve Uygulamalı Recursion gibi yeni fırsatlarla birlikte önemli maliyet ve gecikme avantajlarını da beraberinde getirecektir. Recursive Verifier’ın daha fazla optimize edilme çalışmaları devam etmektedir ve zaman içinde daha da iyi performans ve maliyet avantajları sağlanması beklenmektedir.

Okuduğun için teşekkürler. StarkNet Türkiye’yi takipte kalmayı unutma!

StarkNet Türkiye Twitter

StarkNet Türkiye YouTube

StarkNet Resmi Discord

--

--

Anıl
Starknet Türkiye

Atatürk’ün ışığı altında! Content Creator @StarkNetTurkiye @layer2planet