Starknet Yerleşik İşlevlerinin Faydaları ve Zorlukları

Orijinal: Yerleşikler ve Dinamik Düzenler

Çeviri ve redaksiyon: "StarkNet Chinese Community"

Starknet yerleşik işlevlerinin avantajları ve zorlukları

Özet

Yerleşik işlevler, prova sürecini optimize eder. Ancak, her kanıt düzenden hesaplanır. Belirli prova çalışmaları için, düzen yetersizse yerleşik işlevlerin avantajları büyük ölçüde azalacaktır. Şu anda, düzenlerin küçük bir statik listesi vardır ve her prova, bu listedeki en uygun düzene göre hesaplanır. Statik listeleri bu şekilde düzenlemenin iki dezavantajı vardır. İlk olarak, sınırlı sayıda düzen vardır. Bu, çoğu prova çalışması için verimsizdir ve kullanıcılara gereksiz maliyetler yükleyen karmaşık ücret mekanizmaları oluşturur. İkincisi, listeyi manuel olarak sürdürmek zordur. Yerleşiklerin sayısı çok yükseldiğinde, manuel bakım zorlaşır ve aslında çok sayıda nüansı destekleyen verimli yerleşiklerin kanıtlanma sürecini engelleyebilir. Bu sorunları ele almak için StarkWare ekibi, düzenlerin her iş kanıtı için özel olarak yapıldığı dinamik bir düzen sistemi geliştiriyor.

Kahire yığını, Kahire kodunu STARK dostu CPU mimarileri için talimatlar halinde derleyerek genel amaçlı bilgi işlemi kanıtlanabilir şekilde kolaylaştırır: Kahire VM'si (bundan sonra CVM olarak anılacaktır). Genel amaçlı CPU'ların avantajlarından birçoğunun doğal bir maliyeti vardır ve CVM bazı yaygın işlemler için optimize edilmemiştir. Keccak, Pedersen, Poseidon karma işlevleri, eliptik eğri işlemleri, aralık kontrolü (yani, belirli bir sayının belirli bir değer aralığında olup olmadığını kontrol etme) ve diğerleri gibi yaygın işlemlerdir.

CVM'lerin göreceli verimsizliğini ele almak için, Kahire yığını, kritik işlemler için yerleşik kavramını sunar: karmaşıklığı kanıtlamak için bu tür işlemleri optimize eden eklentiler. Yerleşik işlevler ASIC'lerle karşılaştırılabilir: ASIC'ler uygulamaya özel tümleşik devrelerdir ve yerleşik işlevler uygulamaya özel cebirsel kısıtlamalardır (AIR). AIR'in ne olduğunu bilmiyorsanız veya hatırlamıyorsanız bu makalenin ilerleyen kısımlarında kısaca ele alınmıştır; daha fazla ayrıntı için bu makaleyi okuyun.

Kısacası, kanıtlama karmaşıklığı, izleme birimleri adı verilen kaynaklarla ilişkilidir (kabaca doğrusaldır) ve yerleşik işlevler, Kahire VM'den çok daha az izleme birimi kullanarak belirli işlemlerin kanıtlarını basitleştirir.

Yerleşik işlevlerin faydaları açıklandığına göre, yerleşik işlevlerin neden birçok genel işlem için geliştirildiği açık hale geliyor. Bunu söylemek yapmaktan daha kolay. Starknet'e yeni yerleşikleri tanıtmanın mevcut süreci aşağıdaki adımlardan oluşur:

  1. AIR Yazmak

  2. Yeni bir düzen oluşturarak (aşağıda açıklanmıştır) kanıtlayıcıyla bütünleştirin

  3. Starknet'e entegre edin, yani kod tabanını ve geliştirici araçlarını yeni yerleşik işlevleri kullanmak için değiştirin

AIR yazmanın zorluklarına ek olarak, kalan iki aşamada iyileştirilecek çok yer var. Bu ileri düzey makale, AIR'nin uygulamaya özgü yerleşik işlevlerini, yukarıdaki sorunları ve gelecek planlarını daha ayrıntılı olarak açıklayacaktır.

Yerleşik İşlevler: Uygulamaya Özel AIR

AIR, Cebirsel Ara Temsil'in kısaltmasıdır. Bu ve diğer StarkWare makalelerinde AIR, sanal makineleri temsil etmek için bir polinom sistemidir. Örneğin, Kahire, adını belirli bir CPU mimarisini temsil eden bir polinom sistemi olan CPU AIR'den alır. Bu polinom sisteminin çözümleri, verimli cebirsel yürütme yörüngeleri (AET'ler) olarak adlandırılan verimli durum geçişlerini temsil eder.

STARK, belirli bir AIR'ye karşılık gelen yürütme yolunun geçerli olduğunu kanıtlayarak sanal makinenin çalışmasının doğru olduğunu kanıtlar. Kabaca söylemek gerekirse, bir yürütme yörüngesi bir sayılar tablosudur ve STARK protokolü, bu sayıların birlikte bir polinom sistemini çözdüğünü kanıtlar.

Aynı işlem, bazıları daha verimli olan birçok şekilde hesaplanabilir. Bu yazıda ispat karmaşıklığı temel olarak iz boyutuna, yani tablodaki iz hücrelerinin sayısına bağlıdır. İzler AIR için oluşturulduğundan, AIR, belirli hesaplamalar için yürütme izlerini önemli ölçüde azaltan uygulamalar için tasarlanmıştır. Yerleşik işlevler, uygulama için optimize edilmiş özel AIR'dir.

Aşağıdaki tablo, belirli yerleşik işlevler (tümü üretimde) için verimlilik iyileştirmelerini göstermektedir.

Starknet yerleşik işlevlerinin avantajları ve zorlukları

Yörünge düzeni: bugün ve gelecek

Daha önce bahsedildiği gibi, AET kabaca kodlanmış sanal makinedeki adımların sırasını (yani programın yürütülmesini) temsil eden bir sayılar tablosudur. Kanıtı hesaplamak için kanıtlayıcı, ilişkili AIR'nin yürütme yolunda STARK protokolünü çalıştırır.

Yukarıda, hesaplamaları kodlamak için gereken iz birimlerinin sayısını azaltarak ispatların karmaşıklığını en aza indirmek için tasarlanmış uygulamaya özel AIR olarak yerleşik işlevleri tanıttık. Bununla birlikte, yerleşik işlevler Starknet'te rastgele entegre edilirse, birçok yörünge birimi boşa gidebilir ve beklenen faydalar azalacaktır. Aşağıda ayrıntılı olarak açıklayalım.

Kısacası iz düzeni, iz hücrelerinin farklı "bileşenlere" atanmasıdır. Bu makalede, bu bileşenler CVM ve yerleşik işlevlerdir. Düzen özellikle, her bir bileşenin aldığı iz hücrelerinin göreli sayısını belirtir. (Düzen yapıları her zaman doğrulamayı basitleştirmek için kullanılır. Daha fazlasını öğrenmek için bu yazının "Basitlik" bölümünü okuyun).

Kilit nokta, prova karmaşıklığının düzen tarafından ayrılan toplam izleme hücresi sayısına bağlı olmasıdır ve izleme hücresi tahsisi, gerçekte ihtiyaç duyulandan daha büyük olabilir. Örneğin, CVM'lerin adım sıralamasını göstermek için, CVM bileşenlerine yalnızca izleme hücreleri atayan bir düzen, izleme hücrelerinin yarısını Poseidon yerleşik işlevlerine atayan bir düzene göre kabaca iki kat daha verimlidir. Sonuç olarak, uygun bir düzen, belirli bir hesaplamayı kanıtlamanın karmaşıklığını büyük ölçüde azaltabilir.

Şu anda, iki ana nedenden dolayı zamanla büyüyen, manuel olarak tutulan bir düzen listesi bulunmaktadır:

  1. Yerleşik işlevler, yalnızca kendilerine atanan iz ünitesinin düzeni için kullanılabilir. Bu nedenle, yerleşiklerin eklenmesi en azından yeni bir düzen gerektirir.

  2. Kahire kodunu yürütmek için uyarlanmış bir düzen, hücre tahsisini optimize eder. Bu nedenle, hücrelerdeki kullanım durumlarının optimizasyonu genellikle yeni düzenler gerektirir.

Kanıtlayıcı ve doğrulayıcı (Solidity ve Kahire doğrulayıcıları) kodu, düzen listesine göre yapılandırılır.

Keccak ve Poseidon yerleşikleri eklendikçe, düzen listelerini birçok yerleşik yapıyı barındıracak kadar küçük tutmak ve çoğu Starknet bloğunun verimli bir şekilde çalışmasını sağlamak giderek daha zor hale geldi. Ayrıca, düzen, yerleşikler arasındaki birçok olası kombinasyonu ve oranı hesaba katmak zorunda olduğundan, ek yerleşikler kullanıma sunuldukça verimliliğin önemli ölçüde düşmesi bekleniyor.

StarkWare ekibi şu anda, Kahire kodunun her yürütülmesi için anında özelleştirmeler olan "dinamik düzenler" lehine önceden hazırlanmış düzen listelerini kaldırarak sistemi iyileştirme üzerinde çalışıyor. Dynamic Layout, eldeki doğrulama işi için her zaman en iyi orantılı tahsisi yapacaktır. Mühendislik açısından, dinamik yazmayı desteklemek, kod tabanında önemli değişiklikler gerektirecektir. Bununla birlikte StarkWare ekibi, dinamik düzen, geliştirilmiş izleme birimi kullanımı ve kanıtlayıcıların daha iyi kullanımından yararlanarak Starknet'in kanıt katmanını basitleştirmeyi umuyor.

Dinamik düzenlerle, birçok yerleşikin manuel olarak bakımını yapma zorluğu ortadan kalkar ve daha fazla yeni yerleşikin Starknet'e entegre edilmesi sürecini basitleştirir.

Dinamik Düzen ve Ücretler

İşlem ücretlerinin bir amacı, kullanıcılardan işlemlerden kaynaklanan marjinal protokol maliyetini tahsil etmektir. İşlem ücretlerinin birimi para birimi olduğundan, ücret mekanizması kaynaklardan (ör. sanal makine adımları, yerleşik işlevler, çağrı verileri, Ethereum gazı) tokenlere (ör. STRK, ETH) dönüştürmeyi içerir.

Şu anda, kanıtlayıcılar kullanım oranlarından ziyade toplam izlere göre ücret aldığından, boşa harcanan kaynaklar kullanıcılar tarafından karşılanmaktadır. Dinamik düzen, izleme birimi kullanımını iyileştirecek ve böylece "gereksiz" işlem ücretlerinin (doğrudan kullanıcı işlemlerinden kaynaklanmayan kaynak tüketimi dahil) alınmasını azaltacaktır.

Starknet yerleşik işlev entegrasyonu

Bu noktada, yerleşik işlevlerin entegrasyonu, pratik kullanımı gerçekleştirmek için Starknet kod tabanını değiştirmek olan son adımın dışındadır. Kod değişikliğinin kapsamı, yerleşim uygulamasıyla ilgilidir ve mümkün olduğunda Starknet işletim sisteminin yerleşik işlevleri çağırmasını sağlamak için kodu değiştirmek gerekir. Örneğin, Starknet işletim sistemi, Kahire kodunun yürütülmesi sırasında Poseidon hash işlevini çağırır ve aynı zamanda Poseidon yerleşik işlevini çağırır.

Düzenlere benzer şekilde, Starknet yerleşikleri artık manuel olarak desteklenebilir. Bununla birlikte, düzen durumundan farklı olarak, bu kılavuz desteği, birçok yerleşik işlev olmasına rağmen entegrasyon için bir engel değildir. Başka bir deyişle, Starknet yerleşik desteği entegrasyon için bir engel değildir, dinamik düzen gerçekten ek yerleşikler oluşturmanın ve entegre etmenin yolunu açacaktır.

Özetle

Bu makalede, yerleşik işlevlerin ne olduğunu, faydalarını, içerdiği zorlukları ve StarkWare'in planlarını açıklıyoruz. Mevcut odak, yalnızca prova sürecinin verimliliğini artırmakla kalmayacak, aynı zamanda yeni yerleşiklerin entegrasyonunu da kolaylaştıracak dinamik düzen üzerindedir.

View Original
The content is for reference only, not a solicitation or offer. No investment, tax, or legal advice provided. See Disclaimer for more risks disclosure.
  • Reward
  • 1
  • Share
Comment
0/400
BuyAndWaitForTheRisvip
· 2024-04-12 16:41
Pusu yüz kat jeton 📈
View OriginalReply0
  • Pin