Cairo 1.0

Utku Koca
Starknet Türkiye
Published in
4 min readJan 2, 2023

Giriş

Bildiğiniz üzere Cairo, StarkWare tarafından 2 yıl önce piyasaya sürülen, blockchainde kanıtlanabilir programlar yazmak için STARK tabanlı Turing-Complete bir dildir. Cairo 1.0 ise Cairo’nun piyasaya sürülmesinden sonraki ilk büyük güncellemesi ve sürümü olacaktır.

Cairo 1.0 geliştiricilere daha güvenli, basit ve kullanışlı bir programlama dili sunmayı hedefliyor. Cairo 1.0’ın merkezinde, Cairo programları için daha uzun vadeli istikrar vaat eden bir aracı temsil katmanı olan Sierra yer alacak.

Sierra, Cairo’nun permissionless (izinsiz) bir ağda hizmet verebilmesini sağlıyor:

-Ağı koruma: Daha sağlam DoS koruması sağlıyor.

-Kullanıcıyı koruma: Ethereum-dereceli sansür direncine izin veriyor.

Cairo’nun Yolculuğu

2020 yılına kadar, genel hesaplama için STARK’lar tarafından kanıtlanabilir programlar oluşturmak için niş bir bilgiye ihtiyaç vardı. Bu Sadece STARK’ların arkasındaki karmaşık matematiği anlayabilenler için mümkündü. Spesifik olarak, her iş mantığı için yani her hesaplama için belirli hesaplamayı temsil eden bir dizi polinom kısıtlaması olan bir Cebirsel Ara Temsil -Algebraic Intermediate Representation (AIR)- oluşturmak gerekiyordu.

Cairo dili, bu doğrulanabilir hesaplamanın her yerdeki geliştiricilere sunulması gerektiğinin farkına varılması ile doğdu. Cairo sayesinde, geliştiriciler STARK’ların gücünden yararlanabiliyorlar.

Geliştirici topluluğu o zamandan beri heyecanla yeni şeyler inşa etmek için Cairo’yu ele geçirdi. Bugün gelişmekte olan StarkNet ekosistemindeki her şey Cairo’ya dayanmaktadır. StarkNet ve StarkEx arasında, Cairo destekli uygulamalar 220 milyonun üzerinde işlem gerçekleştirdi, 65 milyonun üzerinde NFT bastı ve 700 milyar dolar değerinde alım-satım gerçekleştirdi ve bunların tümü Ethereum’da gerçekleşti.

Cairo, STARK’ları erişilebilir hale getirirken, orijinal olarak bir assembly dili olarak tasarlandı ve bu nedenle düşük seviyeli bir dil olarak yazıldı.

Cairo ile yazılan ilk programlardan bir örnek

StarkWare, geliştiricilerden gelen geri bildirimler ve StarkNet’in yükselişi ile Cairo’yu git gide daha anlaşılır ve geliştirici dostu bir haline getirdi.

ERC-20 Cairo sözleşmesinden değişkenlerin, if ifadelerinin, hataların ve UINT256 kitaplığının desteğini gösteren bir örnek.

Ancak StarkWare ekibi çok geçmeden ileriye doğru daha büyük bir adım atmanın ve Cairo’da aşamalı iyileştirmeler yerine daha cesur bir kökten dönüşüme gitmenin zamanının geldiğine karar verdi.

Cairo 1.0

Cairo 1.0 için sıfırdan, geliştiricilere birçok yeni güvenlik özelliği sağlayacak ve akıllı sözleşmeleri daha basit ve daha anlamlı bir şekilde yazmalarına olanak sunan yepyeni bir derleyici oluşturuldu.

Sierra ile tanışın: Her Cairo programının kanıtlanabilmesini sağlamak

Cairo 1.0'daki ana eklenti Sierra’dır (Güvenli Ara Temsil). Sierra, Cairo 1.0 ve Cairo byte kodu arasında yeni bir ara gösterim katmanı oluşturur. Sierra’nın amacı, her Cairo çalışmasının — yani bir Cairo programı ve girdisinin — kanıtlanabilmesini sağlamaktır.

Sierra, Cairo geliştiricilerine geleceğe yönelik daha iyi bir kod vaat ediyor. StarkNet kontratlarının , altında yatan sistemde iyileştirmeler yapılması durumunda (örneğin, CPU AIR mimarisi değişiklikleri, Sierra’dan Cairo byte koduna nihai çevirinin iyileştirmeleri) durumunda yeniden derlemeye ihtiyaç duymaması gerçeğiyle daha fazla kararlılık sağlıyor.

Her Cairo programını kanıtlamak tam olarak nedir? Eski Cairo’da bir Cairo programı üç durumla sonuçlanabilir — doğru, yanlış veya başarısız. Başarısız çalıştırmalar kanıtlanamaz. Sierra, bir Cairo çalışmasının asla başarısız olmayacağını ve yalnızca doğru veya yanlış ile sonuçlanabileceğini garanti eder. Bu da her Cairo programının veya kodunun kanıtlanabilmesini sağlar.

Sierra’nın bu sunacağı bu özellik, izinsiz bir ağ olarak çalışacak StarkNet için önemli sonuçlara sahiptir. Sierra, geri alınan işlemlerin bile StarkNet bloklarına dahil edilebilmesini sağlar. Bu özellik, karmaşık kripto-ekonomik mekanizmalar eklemeye gerek kalmadan StarkNet protokolünün yalın ve basit kalmasını sağlayacaktır. İki tane örnek vermek gerekirse.

1-) Sequencer, geri alınan işlemler için ücret toplayabilecek ve StarkNet’in Sequencer DoS’u köklü bir şekilde engellemesine izin verecektir.

2-) Zorunlu L1 işlemlerinin uygulanması mümkün olacak ve StarkNet’in Ethereum’un sansür direncinin tamamını devralmasına olanak tanıyacak.

Dil özellikleri

Sierra, Cairo 1.0, programlama dilinin kendisinde birçok iyileştirme sunacak. Aşağıda listelenen her şey ilk sürümün parçası olmayacak, ancak yol haritasının bir parçası olma konumundadır.

Geliştirilmiş Syntax (Sözdizimi)

  • Artık local ve tempvar yok. Bundan sonra tüm değişkenleri yönetmemize izin vermemiz yeterli.
  • Geliştirilmiş if ifadeleri sözdizimi.

Type (Tip) güvenlik garantileri

Derleyici, kodun güvenliğini artırmak için strong typing kullanacaktır.

Örneğin: İşaretçiler her zaman başlatılmış belleğe işaret eder.

Sözlükler, squash_dict’i çağırma sorumluluğunu programcıya bırakmak yerine, her zaman ezilecektir.

Kullanımı daha kolay dil yapıları

Örneğin:

-For Loops

-Boolean ifadeleri

-Integers (Düzenli tam sayı bölmeli xD)

Eksizsiz bir tip sistemi

Soyut veri türleri (Rust enum benzeri)

Daha fazla optimize kod

Yerel değişkenlerin tahsisini açıkça belirtmeye gerek yoktur — otomatik olarak algılanır ve otomatik olarak yapılır.

Daha iyi derleyici entegrasyonu

Daha iyi IDE desteği, paket yönetimi ve topluluk katkılarının daha iyi kolaylaştırılması.

Özet

Starkware, Cairo’nun ilk kez üretimde kullanılmasından iki yıl sonra, gelişmiş ifade, güvenlik ve sözdizimi sağlayacak olan Cairo 1.0'ı geliştiriyor. Cairo 1.0, geliştiricilerin StarkNet üzerinde akıllı kontratları daha kolay yazmalarına olanak tanıyarak ileriye doğru büyük bir adım atacak.

Ayırca Starkware ekibi yakın zamanda gelecek başka bir gönderide, Cairo 1.0’ın StarkNet’in yenilenmesini nasıl etkileyeceği ve geliştiricilerin bu yeniliklere nasıl hazırlanmaları gerektiği hakkında daha fazla ayrıntı paylaşacaklarını söylediler.

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

--

--