ZK Dil Anketi: Noir, o1js, Circom, Leo, Kahire, Lurk

Giriş

Sıfır bilgide (ZK) Etki Alanına Özgü Dil (DSL) kanıtları.[4] alanında hayati bir rol oynar. Özünde, ZK kanıtları, herhangi bir ek bilgi ifşa etmeden gizli verilerde belirli özelliklerin varlığını kanıtlama zorluğunu çözer. Bununla birlikte, üst düzey fikirleri somut kanıtlara dönüştürmek karmaşık olabilir. DSL'lerin devreye girdiği yer burasıdır ve soyut kavramları sistemi kanıtlamak için gereken devrelerin temsili ile birleştirir.

Prova sistemi[5] bir tarafın herhangi bir hassas bilgiyi ifşa etmeden bir beyanın veya iddianın geçerliliğini başka bir tarafa kanıtlamasına izin veren bir yöntem veya anlaşmadır. Kanıtlayıcının, altta yatan herhangi bir sırrı veya veriyi ifşa etmeden, bir hesaplamanın doğruluğu veya belirli bir bilgiye sahip olma gibi belirli bir ifadenin doğruluğu konusunda doğrulayıcıyı ikna etmesini sağlayan bir dizi kural ve prosedürü içerir.

Bununla birlikte, kanıt sistemleri üst düzey kavramlarla doğrudan ilgilenemez. Bunun yerine, istenen özellikleri temsil eden devrelere dönüştürülmeleri gerekir. Üst düzey konseptlerden devrelere geçiş, zorlukları da beraberinde getiriyor. Devrelerin dili burada devreye giriyor. Devre dilleri, üst düzey fikirleri ifade etmek için yapılandırılmış ve resmi bir yol sağlayarak bu sorunu çözer.

Son on yılda, devre dillerinin sayısında ve çeşitliliğinde önemli bir artış olmuştur. Noir, Cairo gibi birçok devre dilinin gelişimi[6] ve Aslan, alanın ne kadar aktif olduğunu gösterir. Dillerin bu şekilde çoğalması, özelliklerini, benzerliklerini ve farklılıklarını karşılaştırmamıza ve karşılaştırmamıza olanak tanır. Bu dillerin kapsamlı bir incelemesi, genel devre dili manzarasının daha derin bir şekilde anlaşılmasını sağlar.

TLDR;

Noir – Aztec tarafından geliştirilen, kriptografinin karmaşıklığını soyutlar ve herhangi bir geçmişe sahip geliştiricilerin ZK devreleri yazmasını mümkün kılar.

– o1js – O(1) Labs tarafından geliştirilen bir tür kitaplığı. Geliştiricilerin akıllı sözleşmeler yazmasına izin verir. Mevcut Java ve Type kitaplıkları ve araçlarıyla iyi bir şekilde bütünleşir.

**– **Circom**[7] ** – ZKP devre geliştirme için tasarlanmıştır. Hassasiyet ve netlik sağlayan özellikleri, esas olarak bu özel alana odaklanmıştır.

– Leo – Geliştiriciler için kullanıcı dostu bir ortam sağlar. Resmi olarak doğrulanmış bir derleyici mimarisi, erken hata algılama ve önlemeye odaklanarak kullanılır.

**–**Kahire**[8] ** – Verimlilik ve ölçeklenebilirliğe vurgu. Birlikte çalışabilirlik, blok zinciri platformları, akıllı sözleşmeler ve zincir dışı sistemlerle entegre edilebilen standart arayüzler aracılığıyla desteklenir.

Lurk – Ortak bir devre uygulamak için Lisp'ten yararlanarak geleneksel SNARK'ların sınırlamalarını çözer.

Sözlük

Teknik kavramlara değineceğimiz için, sonraki metinlerde karşılaşabileceğiniz bazı karmaşık terimlerin bir sözlüğünü burada bulabilirsiniz:

Özet Devre Ara Gösterimi (Acer) :* Noir tarafından kullanılan ve birinci dereceden bir kısıtlama sistemine (R1CS) derlenebilen ZK devresinin ara gösterimi.

• Özel kapılar: ZK devrelerinde verimli ve güvenli kriptografik işlemler için tasarlanmış özel mantık kapıları.

• SHA-256: Bir girdi alan ve sabit boyutlu bir çıktı üreten bir kriptografik hash fonksiyonu.

Pedersen-Merkle Kontrolü: Pedersen Promise ve Merkle Tree'nin kriptografik doğrulama teknikleri kullanılarak verilerin bütünlüğü ve tutarlılığı doğrulanabilir.

• Turing tamlığı: Bir Turing makinesini taklit edebilen ve hesaplanabilir herhangi bir problemi yeterli zaman ve kaynakla çözebilen bir bilgi işlem sisteminin bir özelliği.

Devam Geçiş Stili (CPS:* tek tip ve verimli yürütme için değerlendirme sürecini yönetilebilir adımlara bölen bir programlama tekniğidir.

Alan elemanları, kriptografi şemalarında ve hesaplamalarında yaygın olarak kullanılan, sonlu bir matematiksel alandaki :* elemanlardır.

Siyah

Siyah[9] kapsamlı kriptografi bilgisine veya kriptograf olmaya ihtiyaç duymadan ZK devrelerinin ve ZK programlarının oluşturulmasını basitleştirmek için Aztek tarafından tasarlanmış bir Etki Alanına Özgü Dildir (DSL). Ana hedefi, herhangi bir geçmişe sahip geliştiricilerin ZK (sıfır bilgi) devreleri yazmasını sağlamaktır. Noir güvenliğe, basitliğe ve performansa öncelik verir. Şifreleme güvenliğini soyutlayan ve yüksek performansı korurken şifreleme ilkellerinin kullanımını basitleştiren üst düzey, Rust benzeri bir sözdizimi sağlar.

ZK Proof ile Ölçeklendirme Olanakları

Noir'in bir avantajı, ZK kanıtları tarafından sağlanan gizliliği koruyan özelliklerden yararlanabilecek uygulama yelpazesini genişletme potansiyeline sahip olmasıdır. Bu kanıtlar gizliliği artırır ve verimli doğrulama sağlar. Noir, Soyut Devre Ara Gösterimi (Acer) adı verilen bir ara gösterimde derlenir ve bu da R1CS (birinci derece kısıtlama) adı verilen bir kısıtlama sisteminde daha fazla derlenebilir. Arka uç kanıt sisteminin dilden bu şekilde ayrılması, Noir'in Aztec Brettenberg, Turbo Plonk ve Groth16 ve Halo 2 gibi potansiyel olarak gelecekteki entegrasyonlar dahil olmak üzere çeşitli kanıt sistemlerini desteklemesine olanak tanır.

Optimizasyon ve Standart Kütüphane

Geliştiriciler, şifreleme işlemlerini verimli ve güvenli bir şekilde gerçekleştirmek için özel olarak tasarlanmış bir tür mantık kapısı olan özel kapılardan yararlanarak hızı, güvenliği ve çeşitli uygulama özelliklerini iyileştirmek için kanıtlama sistemi düzeyinde devreyi optimize edebilir. Dil, verilerin bütünlüğünü ve tutarlılığını doğrulamak için Pedersen taahhütlerini ve Merkle ağaçlarını kullanan SHA-256 ve Pedersen-Merkle denetimleri gibi optimize edilmiş işlevlere sahip standart bir kitaplık sağlar.

!

Noir dilinin sözdizimini gösteren grafikler### Kod Organizasyonu ve Sunum Becerileri

Noir, modüller ve harici kasalar aracılığıyla kod organizasyonunu destekleyerek Noir programları için kitaplıklar oluşturmayı kolaylaştırır. Diziler, demetler ve yapılar gibi bileşik veri türleri sağlayarak geliştiricilerin verileri gruplandırmasına ve ortak işlevleri uygulamasına olanak tanır. Dil ayrıca for döngüleri, if deyimleri ve mantıksal ve bitsel operatörler gibi kontrol akışı yapılarını da destekler. Jenerikler ve birinci dereceden işlevler, Noir'in ifade yeteneklerini daha da geliştirmek için aktif olarak geliştirilmektedir.

Noir'in hala gelişmekte olduğunu belirtmek önemlidir. Bazı sınırlamaları ve olası hataları olabilir. Geliştirme ekibi sürekli olarak dili yineliyor ve sürekli iyileştirmeye kararlı.

o1js

o1js[10] (0)1Labs tarafından Snark programlama dilini kullanarak akıllı sözleşmeler yazmak için tasarlanmış bir Type kütüphanesidir. Geliştiriciler için daha erişilebilir ve kullanışlı hale getirmek için Node .js ve tarayıcılar gibi mevcut açık teknolojilerden yararlanır. o1js, Type'ı temel alarak geliştiricilerin Java ve Type kitaplıkları ve araçları hakkındaki mevcut bilgilerinden yararlanmalarına olanak tanır.

Entegrasyonlar

o1js, Java ve Type kitaplıkları ve araçlarıyla sorunsuz bir şekilde entegre olarak geliştiricilere güçlü özellikler ve kapsamlı topluluk desteği sağlar. Bu entegrasyon, üretkenliği artırır ve yeni geliştirme ortamlarını benimsemek için öğrenme eğrisini azaltır.

VS Kod Desteği

Popüler bir kod düzenleyicisi olan Visual Studio Code (VS Code) için destek sağlar. Geliştiriciler, genel geliştirme deneyimini geliştirmek için kod tamamlama, söz dizimi vurgulama ve hata ayıklama gibi özelliklerden yararlanabilir.

Standart Kitaplık

O1JS, etki alanı öğeleri, un-64, un-32, genel anahtarlar, özel anahtarlar ve imzalar gibi temel türleri içeren kapsamlı bir standart kitaplık sağlar. Bu türler, şifreleme şemalarının, isteğe bağlı verilerin, Boolean'ların ve eliptik eğrilerin işlenmesini basitleştiren yerleşik yöntemlerle birlikte gelir.

Çember

Circuit Compiler'ın kısaltması olan Circom, Jordi Balyna ve iden3 ekibi tarafından oluşturulan, sıfır bilgi kanıtı (ZKP) devre geliştirme için tasarlanmış güçlü bir alana özgü dildir (DSL).

Dışavurumcu Devre Tanımı

Etkileyici sözdizimi ile Circom, geliştiricilerin ZKP uygulamaları için devreleri kesin ve net bir şekilde tanımlamasına olanak tanır. Ancak, Circom'un sözdizimini ve anlambilimini, Circom'a yeni başlayanlar ve DSL veya ZKP kavramlarına aşina olmayanlar için anlamak zor olabilir. Acemi devre geliştiricileri veya genel amaçlı programlama dillerinde geçmişi olan geliştiriciler için ekstra çaba ve zaman gerektirebilir.

Kapsam Sınırları

Circom, ZKP devre geliştirmede üstün olsa da, özelliklerinin esas olarak bu alana odaklandığını belirtmek önemlidir. Sonuç olarak, çok çeşitli bilgi işlem görevlerini yerine getirmek için daha genel amaçlı bir dil arayan geliştiriciler, Circom'u biraz sınırlı bulabilir. Daha geniş geliştirme ihtiyaçlarını karşılamak için Circom'u diğer programlama dilleri veya çerçeveleriyle birlikte kullanmak gerekebilir.

Circom'un nasıl çalıştığına dair bir açıklama. ### Araçlar ve Ekosistem Sınırlamaları

Circom, çeşitli geliştirme araçları tarafından desteklenir ve büyüyen bir ekosisteme sahiptir, ancak araçlarının ve kaynaklarının kullanılabilirliği, daha yerleşik programlama dilleri ve çerçevelerine kıyasla nispeten sınırlı olabilir. Geliştiriciler, belirli kullanım durumları veya gelişmiş özellikler için kapsamlı belgeler, kitaplıklar ve topluluk desteği bulmakta zorluk çekebilir. Bu sınırlama, Circom'un geliştirme hızı ve topluluk tarafından benimsenmesi üzerinde bir etkiye sahip olabilir.

Uyumlulukla İlgili Hususlar

Circom'un uyumluluğu esas olarak snarkjs ve libsnark gibi popüler sıfır bilgi kanıtı sistemlerine odaklanmıştır. Bu, bu sistemlerle sorunsuz bir şekilde entegre olmasına izin verirken, aynı zamanda belirli özelliklerine ve sınırlamalarına bağımlılıklar da getirir. Diğer ZKP sistemlerini tercih eden veya bunlara ihtiyaç duyan geliştiriciler, uyumluluk sorunları yaşayabilir veya Circom tarafından oluşturulan devreleri tercih ettikleri sistemlere uyarlamak ve entegre etmek için ek çaba gerektirebilir.

Aslan

Leo[11] sıfır bilgi kanıtı uygulamalarının geliştirilmesi için özel olarak tasarlanmış bir programlama dilidir. Geliştiriciler, özellikle blok zinciri ekosisteminde önceden deneyime sahip olanlar için kullanıcı dostu bir ortam sağlamayı amaçlamaktadır. LEO, Rust'a benzer ve uygulama geliştirmede aşinalık ve kolaylık yaratmak için tasarlanmış bazı Java benzeri öğelere sahiptir.

Leo'nun dikkate değer bir özelliği, programları R1CS adı verilen düşük seviyeli bir kanıt formatına dönüştüren derleyicisidir. Leo derleyicisini diğerlerinden ayıran şey, geçirdiği titiz resmi doğrulama sürecidir. Programlama, denetim ve derleme dahil olmak üzere çeşitli aşamalarda hatalar oluşabileceğinden bu doğrulama gereklidir. Leo, derleyicinin programcının amacını takip etmesini matematiksel olarak sağlayarak, özellikle L2 bağlamlarında, ZK toplamalarında veya LEO platformundaki tescilli programlarda hataların gözden kaçması veya istismar edilmesi riskini en aza indirmeyi amaçlar.

Aslan dilinin dilbilgisi, en iyi çabalara rağmen hataların kaçınılmaz olduğunu kabul eder ve Aslan ekibi, özellikle önemli değer aktarımlarıyla uğraşan sistemlerde erken hata önleme ve tespitinin önemini vurgular. Bunu ele almak için, Leo'nun resmi olarak doğrulanmış derleyici mimarisi ek güven enjekte eder ve beklenen program davranışından istenmeyen sapma olasılığını azaltır.

Leo, dil ve derleyiciye ek olarak çeşitli geliştirici deneyimi araçları ve özellikleri sunar. Bu bileşenler, geliştirme sürecini geliştirmek, görevleri basitleştirmek ve verimliliği artırmak için tasarlanmıştır. Yedi yıllık deneyime dayanan ve Ethereum ekosisteminin evrimini gözlemleyen Leo ekibi, kaşifler gibi araçların, Truffle ve Ganache gibi dağıtım çerçevelerinin ve uygulama geliştirme ve test etmeyi basitleştiren diğer kaynakların evrimine benzer kullanıcı dostu bir ortam sağlamayı amaçlıyor.

Kahire

Kahire[12] ZKP devreleri oluşturma işlemini basitleştiren bir sözdizimi sağlar. Geleneksel programlama dillerinden ilham alan Cairo, geliştiricilerin ZK sistemlerini tasarlarken mevcut programlama becerilerinden yararlanmalarına olanak tanır. Kahire, bildirimsel yaklaşımı sayesinde mantıksal ifadeleri ve hesaplamaları normalleştirmeyi mümkün kılarak, gerçek dünya senaryolarını sıfır bilgi ispatları bağlamında temsil etmeyi kolaylaştırır.

Verimlilik ve Ölçeklenebilirlik

Performans, ZK sisteminde önemli bir faktördür. Kahire, verimlilik ve ölçeklenebilirliğe odaklanarak bu sorunu çözüyor. Dil, ZKP devreleriyle ilişkili hesaplama yükünü en aza indirmek için kısıtlama azaltma ve döngü ortadan kaldırma gibi optimizasyon tekniklerini kullanır. Cairo, devre tasarımını optimize ederek, yüksek verim ve düşük gecikme süresi gerektiren uygulamalar için daha hızlı kanıt oluşturma ve doğrulama sağlar.

Birlikte Çalışabilirlik ve Entegrasyon

Cairo, geliştiricilerin ZKP'nin yeteneklerini diğer teknolojilerle birleştirmesine olanak tanıyan mevcut yazılım altyapısıyla entegre olacak şekilde tasarlanmıştır. Dil, standart arayüzler aracılığıyla birlikte çalışabilirliği destekleyerek blok zinciri platformları, akıllı sözleşmeler ve zincir dışı sistemlerle entegrasyona izin verir. Bu esneklik, merkezi olmayan uygulamalarda, finansal sistemlerde ve veri doğrulama protokollerinde gelişmiş gizlilik özelliklerinin uygulanması olasılığına kapı açar.

Bir örnekte Cairo SNARK CPU mimarisi ### Topluluk ve Ekosistem

Kahire projesi, gelişimine katkıda bulunan geliştiriciler, araştırmacılar ve meraklılardan oluşan bir topluluğu teşvik ediyor. Belgelerin, öğreticilerin ve örnek kodun kullanılabilirliği, geliştiricilerin kavramları kavramasına ve ZK sistemleri oluşturmaya başlamasına olanak tanıyarak işe alım sürecine yardımcı olur. Buna ek olarak, Kahire, StarkWare'in dili ve yeteneklerini geliştirmek için destek, araçlar ve araştırma geliştirmeleri sağlayan daha geniş ekosisteminden yararlanmaktadır.

Gizleniyor

Pusuda[13] Genel amaçlı devreleri uygulamak için işlevsel bir programlama dili olan Lisp'ten yararlanarak geleneksel SNARK'ların ve devrelerin sınırlamalarını çözmeyi amaçlar. Lurk, Lisp'i kullanarak, bir snark devresindeki herhangi bir veri ifadesini değerlendirebilen "" adlı genel bir işlev sunar.

Kod veridir, veri koddur

Lurk'un temel ilkelerinden biri, bir programı adreslenebilir içeriğe sahip veriler olarak temsil etmektir. Bu yaklaşım, Lurk programlarının verimli bir şekilde değerlendirilmesine ve doğrulanmasına olanak tanır. İçerik adreslenebilirliği, ayrıştırma sürecini basitleştirir ve elde edilen veriler, ayrı bir derleme adımına ihtiyaç duymadan doğrudan SNARK kanıtlayıcılarında kullanılabilir.

SNARK'larda Lisp'i Uygulamak

Genel amaçlı bir devre oluşturmak için Lurk, Lisp'in bellek ayırıcı "eksilerinden" yararlandı. Ayırıcı iki ifadeyi birleştirir ve karma oluşturma yoluyla elde edilen ifadeye bir başvuru oluşturur. Lurk, iki ifadenin aynı referansa hash edildiğini kanıtlayarak, bir snark devresinde hesaplamalar gerçekleştirebilir.

Pas Stilinin Devamı

Lurk, değerlendirme sürecini yönetilebilir adımlara bölen Süreklilik Geçiş Stilini (CPS) kullanır. Her değerlendirme adımı, tek tip ve verimli bir uygulama sağlayan işlenebilir bir hesaplama haline gelir. SNARK devrelerine açık devamlılıkların dahil edilmesi, değerlendirme sürecinden adım adım geçmeye yardımcı olur.

Turing'e bütünlük ve özyinelemeli yetenekler kazandırır

Lurk, Lisp'i kullanarak Turing tamlığına ulaşır ve SNARK devrelerinde sonsuz özyinelemeyi destekler. Bu önemli yetenek, karmaşık hesaplamaların kanıtlanmasına ve keyfi hesaplamalar yapabilen genel amaçlı devrelerin uygulanmasına izin verir.

Efektler ve Uygulamalar

Lurk'un yeteneklerinin geniş kapsamlı etkileri vardır. Lurk, sonsuz özyinelemeyi, döngüleri ve koşullu olarak kontrol edilen akışları destekleyerek SNARK devrelerinde karmaşık hesaplamalar sağlar. Bu, doğrulama hesaplamaları, özel veri işleme ve Turing-complete programlarının yürütülmesi için çeşitli uygulamalar açar.

Sonuç

Alana özgü dillerin (DSL'ler) seçimi çeşitlidir ve sıfır bilgi kanıtlarının (ZK'ler) kullanım durumları blok zinciri ekosistemlerinde genişlemeye devam ettikçe büyümeye devam etmesi beklenmektedir. Şu anda, ZK uygulamaları oluşturmak için baskın bir dil oluşturma yarışı hala erken aşamalarında, bu da bu alanda daha fazla gelişme bekleyebileceğimizi gösteriyor.

Bununla birlikte, çoğu DSL'nin ortak bir sınırlaması, büyük topluluklardan ve sağlam kitaplıklardan kaynaklanan ağ etkilerinin olmamasıdır. Canlı bir topluluğa ve kapsamlı kitaplıklara sahip olmak, geliştirici deneyimini büyük ölçüde iyileştirebilir. Bu eksiklik zaman içinde giderilebilse de, DSL geliştirmeye dahil olan ekiplerin o1js tarafından benimsenen yaklaşımdan ödünç alarak diğer kitaplıklarla uyumluluğa öncelik vermesi önemlidir.

DSL'ler, mevcut kitaplıklarla uyumluluk sağlayarak daha geniş geliştirici topluluğunun kolektif bilgi ve kaynaklarından yararlanabilir ve ZK uygulamalarının uygulanmasında daha kolay entegrasyon, daha hızlı geliştirme ve daha fazla esneklik sağlar. Bu işbirlikçi yaklaşım, geliştiricilerin yararına DSL'ler etrafında daha güçlü bir ekosistemin geliştirilmesini teşvik edecek ve nihayetinde ZK teknolojisinin benimsenmesini ve etkinliğini artıracaktır.

View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Reward
  • Comment
  • Share
Comment
0/400
No comments
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)