Celestia - Data Availability as a Service

Orientus Prime
11 min readDec 30, 2021

Blockchainler State Machine Replication(SMR) yapan dağıtık ağlardır. SMR’nin 3 temel aşaması vardır.

  1. Data
  2. Consensus
  3. Execution

Data kullanıcıların verdiği çeşitli komutların ağa iletimi ve saklanmasıdır. Consensus bu komutların sıralanmasıdır. Execution sıralanan komutların uygulanmasıdır.

İnternet’in kendi para birimini oluşturma yolunda çözülmesi gereken asıl problem dışardan bir müdahele ile engellenemeyecek bir Consensus sistemi oluşturmaktı. Çözümü de Satoshi tarafından önerilen Dünya’nın her yerinden insanın katkı sunup devam ettirebileceği Nakamoto Consensus olmuştur.

SMR içinde Consensus sadece verileri sıralamak için lazım demiştik. Bitcoin’in yapısına baktığımızda ise Consensus’a bir sorumluluk daha verildiğini görüyoruz. Geçersiz komutların elenmesi. Sadece geçerli komutların sıralanması.

SMR sistemlerinde Consensus sırasında Execution’ın da yapılması veya Execution’ın Consensus sonrasına bırakılması bir tercihtir. Bu tercihte Consensus’a bu yükün verilmesi “Verifier’s Dilemma” kökenli bir çok saldırı çeşidine ve kapasite sorununa sebep olabilmekte. Verifier’s Dilemma kısaca doğrulama işlemlerinin getirdiği yükün doğrulama yapmanın getirdiği kazanca göre yetersiz kalması. Bunun sonucunda bu doğrulamayı yapması gerekenler doğrulama yapmamaya başlayabilir veya bu doğrulama gerekesinimini kullanarak doğrulama yapanları gereksiz yere meşgul ederek kazanç sağlamaya yönelik saldırılar ortaya çıkabiliyor.

Bu eksilere rağmen Satoshi’nin bu seçimi yapmasındaki temel sebep kullanıcıların Bitcoin Full Node çalıştırmadan da güvenli bir şekilde Bitcoin’i kullanabilmesini sağlamaktı. Simple Payment Verification(SPV) dediğimiz bu teknik Bitcoin’in dizaynının en önemli yapıtaşıdır. Bitcoin şuanki anlaşıldığı şekliyle kağnı gibi çalışan en önemli özelliği sabit miktarda bulunması olan ideolojik bir kült değildi.

Satoshi’nin Bitcoin’e dair 2 temel tezi vardır.

  1. Oyun teorisi sebebiyle madencilerin çoğunluğu her zaman ağa fayda sağlayacak şekilde davranacaktır. (Çok iyi kalpli olduklarından değil kendi çıkarları için en iyisi bu olduğu için)
  2. Madencilerin çoğunluğunu ağa fayda sağlayanlar oluşturduğu için kullanıcılar güvenli bir şekilde SPV‘yi kullanabilecektir. Block üretimi ise zamanla bu konuda özelleşmiş büyük madencilerin işi olacaktır.

Satoshi Consensus’a bu şekilde Execution görevini de yükleyerek temelde kullanıcı ile hizmet sağlayıcıları üzerindeki yükte asimetri yaratmak istemiştir. Hizmet sağlayan madencilere ekstra yük yüklerken kullanıcıların üzerinden ise önemli bir yük almıştır. Bu sayede madencilerin donanımlarının da gelişmesiyle Bitcoin kapasite anlamında Visa’ya dahi kafa tutacaktır. Oluşan heyecanın sebebi budur.

Satoshi Bitcoin’in geliştirmesini Gavin Andresen’e bıraktı, Gavin de bir başkasına. Bir süre sonra ise Gavin’in geliştirmeyi devrettiğine pişman edecek bir takım gelişmeler oldu. Bu gelişmelerin temel noktalarından birisi de madencilere yönelik bir şeytanlaştırma kampanyasıydı. Bitcoin’in üzerine kurulduğu madencilerin %51'inin Bitcoin protokolünü doğru şekilde uygulayacağı varsayımı bu şeytanlaştırma ile ortadan kalktı.

Bitcoin’in üzerine kurulduğu ilk temelin çökmesi ile çalışmak için 1.temel’e ihtiyaç duyan 2.temel SPV de hedef alındı. SPV’nin hedef alınmasıyla hizmet sağlayıcıları ve kullanıcılar arasındaki asimetri de ortadan kalkmış oldu. Kullanıcıların tamamının Execution yapması ölçeklenmede kullanıcıları limit haline getirdi. Kullanıcıların limit olması ile hizmet sağlayıcıların kapasitesini arttırarak ölçeklenme de rafa kalkmış oldu.

Duruma tekrar baktığımız zaman aslında Satoshi’nin yaptığı dizayn tamamen çöpe atılmış oldu. O dizayndan geriye kalanlar da asli görevlerini yerine getirmeyen fazlalıklar olarak var olmaya devam ediyor. Aynı SPV’ye olanak sağlamak için Consensus’a eklenen Execution yükü gibi. Eğer Nakamoto Consensus’una işleyişe karışmayan bir saat muamelesi yapacaksak Execution görevini ona vermemelisin. Böylece her Execution mantığı değiştiğinde madencilerin yazılım değiştirmesi ve 2 farklı blok zinciri oluşturmak zorunda kalmazsın. Bu durum 2016 yılında Scaling Bitcoin konferansında Peter Todd tarafından “Client-side Validation” ismiyle dile getirildi. Bunu cebe atın unutmayın. Celestia’yı anlamak için gerekli ilk kavram bu.

Peki Bitcoin’in yazdığım 1.temeli olan %51 varsayımını bırakmamıza rağmen 2.temeli olan SPV’yi kullanabilir miyiz? Bu varsayımı bırakma noktasında şunu söyleyelim tabi. Double Spend saldırısı dolayısıyla aslında bu varsayımı hiçbir zaman bırakamazsın. Hadi Double Spend konusunu görmezden gelelim. %51 varsayımı ile SPV kullanmak yerine Full Node kullanılmasında ısrar edilmesinin sebebi bütün blocklarda sadece geçerli komutların yer aldığından emin olmak. SPV kullananlar sadece en uzun zinciri takip ettiği için en uzun zincirde geçersiz bir komut olsa dahi bunu fark etmeyecektir. Eğer SPV kullananların bundan haberdar olmasını istersek Full Node çalıştıran dürüst kullanıcılardan veya madencilerden biri bu geçersiz komutu SPV kullanan kullanıcılara ileterek en uzun zincirde bir hatalı işlem olduğunu fark etmelerini sağlayabilir. Bu duruma Fraud Proof denir.

Sorunu çözdük gibi gözükebilir ama önümüzde son bir engel daha var. Dürüst Node’ların zincirde hatalı bir işlemin mevcut olduğunu SPV kullanan kullanıcılara iletebilmesi için blockchain’in verilerine erişebiliyor olması. Oysa %51'den fazla güce sahip saldırgan madenciler oluşturdukları blockların sadece SPV kullananların depoladığı header kısmını yayınlayıp blockların geri kalan verisini ise paylaşmıyor olabilir. Bu soruna da “Data Availability Problem” deniyor. A’dan Z’ye Blockchain Teknolojileri yazımda bu sorunun nasıl çözüldüğünü anlatmıştım. Ordan alıntılıyorum.

Data Availability Sampling

Data Availability temelde Data’nın erişilebilir olup olmamasıyla ilgili bir problem. Bir kısım elinde bu Data’yı tutmak zorunda olmak istemiyor, diğer kısım da elinde bu Data’yı tutuyor ve erişilebilir olduğunu iddia ediyor. İlk akla gelen bu iddiayı teste tutmak tabiki. Herkes rastgele Data’nın belirli kısımlarını istesin. Baksınlar data erişilebilir mi değil mi? Bu yöntemdeki ilk göze çarpan sıkıntı Data’nın %99,9'unun erişilebilir olmasına rağmen asıl önemli olan sorunlu %0.1'lik kısmın erişilebilir olmaması ve bu rastgele sample alanların buna denk gelmediği için Data’nın erişilebilir olduğunu düşünmesi.

Erasure Coding

Verinin ufak bir kısmının erişilebilir olmaması problemini çözmek için ilham aldıkları nokta CD’lerdeki Erasure Coding teknolojisi oluyor. Spesifik olarak da genellikle Reed Solomon Erasure Coding. Bunun bulunuşu ise 1960'a dayanıyor.

Erasure Coding’in temelde sağladığı şu aslında. Erişilebilir olmasını istediğin bir Data var diyelim. Bir albüm CD’sinin Data’sı olabilir bu. CD’de bir çizik oldu ve bir kısmı okunamaz hale geldi diyelim. CD çöp mü olacak hemen? Böyle olmamalı.

Erasure Coding ile orjinal veriye bir takım başka veriler de eklenir. Bu eklenmiş verilerle beraber oluşan halini öyle bir şekilde böler ki bu parçalardan hangileri olduğu farketmeksizin belirli bir sayıdaki parça okunabiliyorsa verinin tamamını tekrar oluşturabiliyorsun.

Mesela verileri 99 parçaya böldük diyelim. CD’ye de yazdık. Eğer bu CD’deki 99 parçadan herhangi 34 tanesi okunabilir durumdaysa. Bu 34 tanesinden verinin tamamı tekrar oluşturulabiliyor.

Crypto’daki soruna geri dönelim. Erasure Coding kullanılan bir sistemde eğer verilerin önemli bir kısmı erişilebilir haldeyse. Bu erişilebilir kısımlar kullanılarak saklanan ufak kısım tekrar oluşturulabilir. Eksisi ne denirse bu ufak veriye ulaşabilmek için o veri bloğunun tamamının tekrar oluşturulması gerekiyor.

Bu sistem Ethereum ve Polkadot gibi sistemlerde kullanılarak kendi alt izole bölgelerinin Data bütünlüğü korunmaya ve ölçeklenmeye çalışılıyor. Genel maksat olarak Data Availability servisi sunmaya yönelik olarak ise Polygon Avail ve Celestia gibi projeler de mevcut. Onların da yaptıkları şey temelde bu.

Celestia kurucusu Mustafa Al-Bassam bunları Alberto Sonnino ve Vitalik Buterin’in de katkı sunduğu Fraud and Data Availability Proofs: Maximising Light Client Security and Scaling Blockchains with Dishonest Majorities çalışmasında toparlıyor. İsminden de ne anlattığı anlaşılıyor aslında.

Dishonest Majority -> Madencilerin çoğunluğunun dürüst olduğu varsayımını yani Bitcoin için bahsettiğim 1.temel’i yok kabul ediyoruz

Maximising Light Client Security->Amaç SPV çalıştıran kullanıcıların yani Light Client’lerin güvenliğini maximize etmek

Fraud and Data Availability Proofs-> Bunu Fraud ve Data Availability Proof kullanarak yapıyoruz

Scaling Blockchains->Bu sayede blockchainlerin dürüst çoğunluk varsayımını kabul etmediğimiz şartlarda dahi ölçeklenmesini sağlıyoruz

Bu yazıdan sonra ise yazının başında bahsettiğim Consensus’un Execution’a karışmaması ile bu çalışmada üzerine çalıştığı Data Availability problemini birleştiriyor ve yeni çalışmasını yayınlıyor LazyLedger: A Distributed Data Availability Ledger With Client-Side Smart Contracts

Blockchain’lere Distributed Ledger yani Dağıtık Defter de denilmekte. Mustafa’nın burda LazyLedger yani Tembel Defter ismini seçme sebebi ise bu ağın Execution yapmaması. Execution yapmaya üşeniyor yani :) Sonradan bunun iyi bir fikir olmadığını düşünmüş olacaklar ki isimlerini Celestia olarak değiştirdiler.

Celestia Execution yapmadığı için bu konudaki limitasyonlara sahip değil. Daha doğrusu bu Execution mantığını yazacakların sorunu artık. Bitcoin örneğinde Consensus’a Execution dahil edilmeyebilir diye önerilmişti fakat bu Consensus katmanının sadece Bitcoin için kullanılması düşünülüyordu. Celestia ise Execution’ı ayırmanın yanında bu işi komple başkalarına devrediyor. İsteyen herkes gelsin Celestia’nın üzerine kendi Execution mantığını eklesin biz ise Consensus ve Data Availability üzerine odaklanacağız ve bu özelliklerin ölçeklenmesini sağlayacağız diyorlar.

Execution katmanı dediğimiz de aslında bildiğin blockchain. Peki bu blockchainler neden Celestia’nın Consensus katmanını kullansın? Kendileri kendi ağlarını kullanabilir sonuçta. Bunun için Shared Security ve Inter-Blockchain Communication kavramlarını öğrenmemiz gerekli.

Cosmos’un IBC’si ve diğer muadil Trustless Bridge’ler Bitcoin’de anlattığımız SPV çalıştıran Light Client mantığını kullanır. İki zincir birbirlerine bağlanmak istediklerinde birbirlerine ait Light Client çalıştırırlar. Mesele Bitcoin ve SPV kullanan kullanıcıları olduğunda olay benim için basitti. Milyarlarca dolar yatırım yapmış Bitcoin madencilerinin Bitcoin’e saldırıp kendilerine en azından yüz milyonlarca dolarlık Bitcoin basması sonra bu kadar büyük miktardaki Bitcoin basımını kimsenin farketmemesi ve Bitcoin’lerini bozdurdukları yerin de Full Node çalıştırmadığı için farketmemesi gerekecek de madenciler Bitcoin’e saldırmış olacak. Satoshi abimiz o kadar güzel tasarlamış ki bu olasılık imkansıza yakın.

Mesele Zincirlerarası İletişim olduğunda ise bu kadar rahat ve güvende olmuyoruz. Çünkü birden çok Zincir’i birbirine bağladığın zaman ortaya çıkan tabloda en zayıf zincirin güvenliği kadar güvendesin. Bu en zayıf zincirdeki çoğunluk dürüst şekilde çalışmadığında Light Client’ler vasıtasıyla kurduğun bağlantıdaki dürüst çoğunluk varsayımın çökmüş oluyor.

Bu durumda Bitcoin’de dürüst çoğunluk varsayımı olmadan nasıl Light Client güvenliğini sağladığımızı hatırlayalım. Fraud Proof’lar için gerekli olan Data Availability Problem’ini çözerek tabiki. Polkadot Parachain’lerinin Cosmos IBC’den farklı olarak en zayıf halka kadar değil Polkadot kadar güvenli olmalarının sebebi Polkadot’un Parachain’lere Data Availability sağlamasındandır. Parachain blocklarının Data’sı Polkadot tarafından her zaman erişilebilir durumda tutulduğu için dürüst çoğunluk olmadığı durumlarda dahi Parachain’ler birbirleriyle güvenli bir şekilde etkileşebiliyor.

Dolayısıyla Celestia’nın sunduğu Data Availabilty servisi kullanan zincirlerin birbirleriyle etkileşimlerinde IBC seviyesinde güvenlikten Polkadot gibi Shared Security seviyesine yükseltiyor. Cosmos’un Polkadot gibi Shared Security sağlayabilme hevesinin çözümü Celestia. Neden Cosmos’un diyorum çünkü Celestia’nın ilk yatırımcılarından birisi Interchain Foundation ve Celestia Tendermint altyapısını kullanıyor. Yani Celestia Cosmos ekosisteminin bir parçası olacak. Cosmos’un kendi ekosisteminden değer devşirme sorunu ise devam ediyor. Neyseki geliştirilen projeler vefa gösterip airdroplar vasıtasıyla Cosmos’a bir miktar değer katıyorlar.

Bir diğer Shared Security örneği de Ethereum ve Rollup’ları. Rollup’ların Ethereum’dan güvenliklerini aldıkları varsayımı, Data Availability konusunda Ethereum’a bağlı olmalarına bağlı. Fakat Ethereum’un yukarıda anlattığım tarzda bir ölçeklenebilir Data Availability çözümü yok. Uzun bir süre de olmamaya devam edecek. Eğer Data kapasitesini arttırmaya çalışırsa Validator’ler konusunda dürüst çoğunluk varsayımına geçmeleri gerekir fakat Bitcoin’de olduğu gibi Ethereum’da da bu durumu problem edenler gidişatı belirlemeye devam ediyor. Bu durumda da ölçekleme konusunda kullanıcıların dar boğaz olduğu paradigmadan çıkamıyorlar. Rollup’ların tek avantajı Execution yükünü almak olarak kalıyor.

Ethereum yeterli kapasite sağlayamadığı için Rollup’lar kendi Data çözümlerini kullanma yoluna giderlerse artık Rollup olmaktan çıkarlar çünkü güvenlik varsayımı tekrar değişmiş olur. Bu sebeple artık Rollup değil Plasma veya Validium gibi isimlerle tanımlanırlar. Rollup’ların akıllı kontrat olarak yazılması, bir hata durumunda Ethereum’dan bağımsız şekilde fork ile durumlarını düzeltememeleri gibi sorunlara da yol açıyor.

Celestia üzerinde çalışacak zincirler ise rahat şekilde hardfork ve softfork yapabilirler. Celestia bu şekilde Data Availability konusunda başka bir ağa bağlı olacak Cosmos zincirleri oluşturulabilmesi için Cosmos’un Tendermint altyapısını modifiye ederek Optimint dedikleri bir altyapı oluşturdu. Bu sayede bu zincirler Celestia’yı Data Availability katmanı olarak kullanabilecek hatta Ethereum ve Cosmos’u da kullanarak o zincirlerde çalışacak bir Rollup olabilirler. Cosmos ne alaka derseniz Ethereum ile aralarında temelde bir fark yok. İkisi de Data Availability konusunda özelleşmiş bir çözüm sunmuyor.

Celestia’nın bu konuda esnek davranma sebebi de zaten Ethereum ve Cosmos gibi ağlar yeterli Data kapasitesi sunamayacakları için o ağlara bağlanan ağlara dahi Data servisi sunarız diye düşünüyorlar. Bunlara mevcut Ethereum Rollup’ları da dahil.

Evmos, Ethereum akıllı kontratlarının Cosmos’un Tendermint altyapısı üzerinde çalışabilmeleri için Ethereum Sanal Makinesi (EVM) çalıştırabilen bir Cosmos ağı oluşturma konusunda çalışıyor. Evmos’un Celestia’ya çeşitli faydaları mevcut. Bunlardan ilki Tendermint yerine Optimint kullanılan bir Evmos altyapısı ile herhangi bir Ethereum tabanlı uygulama hem kendi uygulamaya özel ağına geçerken hem de Celestia’nın güvenlik şemsiyesi altına girebiliyor.

Evmos - Celestia ortaklığının bir diğer örneği de Cevmos. Cevmos ile beraber Celestia ve Evmos özel bir Optimint kullanan ağ oluşturuyor. Bu ağın özelliği EVM desteği sayesinde üzerinde Ethereum stili Rollup’ların çalışabilicek olması. Yani Ethereum Rollup’larını hiçbir değişiklik yapmadan üzerinde çalıştıracaksınız ve bütün sistemin Data’sı Celestia üzerinde olacak. Cevmos Evmos’un ana ağından farklı olarak üzerinde Rollup’ların çalışması için özelleşmiş bir yapıda olacak. Üzerinde Rollup dışında bir şey çalışmayacak. Polkadot’un kendi Relay Chain’i üzerinde uygulamaların bulunmaması gibi düşünebilirsiniz.

Celestia’yı rakipleriyle karşılaştırırsak Ethereum’un Homogenous Sharding planını bırakıp Rollup Centric plana dönerek olmayı hedeflediği şeyi Celestia çok daha önce olacak gibi duruyor. Ethereum’un mevcut durumunu baz aldığımızda Avalanche da zaten Ethereum’dan daha iyi durumda fakat orda biz Rollup’lar ile ve Rollup’lar için geliştireceğimiz Data katmanı ile geleceğe oynuyoruz tarzı argümanlar sunuluyordu. Celestia’ya karşı ise bunlar geçerli argümanlar değil.

Daha güçlü bir rakip olan Polkadot ile kıyasladığımızda ise işler o kadar rahat değil. Celestia’nın Execution kısmını üzerinde çalışacak ağlara bırakması özgürlük açısından güzel bir durum. Belki çok farklı ve güzel yapılar görebiliriz üzerinde fakat her ikisini de kendisi yapan Polkadot’un iki tarafı da çok iyi dizayn edilmiş durumda. Celestia etrafında Polkadot’a benzer bir sistem kurmak için birden fazla ekip gerekmiş ama yine de eksik kalıyor şuan için.

Polkadot’un Data Availability tarafını Celestia üstleniyor, blockchain geliştirme altyapısı Substrate’in karşısına Cosmos’un Tendermint’inden modifiye edilen Optimint denk geliyor. Polkadot Relay Chain’e karşılık gelen tarafı Cevmos alıyor. Polkadot’un Parachain’leri karşısına da Ethereum’dan gelecek Rollup yazılımları denk geliyor. Bu Cevmos varyasyonu tabi. İlerde farklı varyasyonlar da oluşacaktır fakat düzgün bir sistemin oturması epey zaman alacaktır.

Cevmos’u Polkadot ile karşılaştırdığımız zaman. Celestia Data Availability servisini fee market olarak sunuyor. Polkadot’un slot kiralama tabanlı sistemi kadar sorunsuz bir yapı değil. İsteyenler için fee market seçeneği de sunduğu için Polkadot’un bu konuda pek kaybetme şansı yok. Cevmos’da oldukça fazla Optimistic Rollup mantığına bel bağlanıyor ve Optimistic Rollup’ların uzun challenge periyotları(2 hafta bekleme süresi) boşuna bulunmuyor. Bunu bypass ettiğiniz zaman güven varsayımını hiçe saymış oluyorsunuz. Polkadot’da ise Parachain’lerin doğrulanması atanan Validator’ler ile hemen tamamlanıyor. Zk-Rollup’ların yaygınlaşması bu sorunu çözebilir belki fakat ekip genel olarak Optimistic Rollup taraftarı. Bu efor onlardan gelmeyecektir. Celestia altında bulunan ağlar Shared Security altında güvenli bir şekilde çeşitli etkileşimlerde bulunabilirler fakat bunun şuan Polkadot’daki gibi standartları mevcut değil. Üzerindeki uygulamalara özgürlük verip kendisinin nötral bir hizmet sunması ise biraz ruhsuz bir ilişki kurulmasına sebep olabilir. Geliri fee markete dayalı olduğu için kapasitesini zorlayacak seviyelere kadar ciddi bir fee geliri oluşamayacaktır. Fee gelirleri oluşmaya başladığı anda ise ağlar hızlı bir şekilde bir alternatife veya kendi forklarına yönebilir.

Bunlara rağmen aslında Celestia oldukça iyi bir sistem. Üzerinde çalışacak sistemlere geniş özgürlük sunması ve hitap ettiği ekosistemlerin büyüklüğü önemli artılar. Sunduğu serbestlik açısından oldukça modüler bir yapı. Modular Blockchain kavramını ortaya koyan Celestia diyebiliriz. Bu sebeple Celestia’yı ve etrafındaki Evmos, Cosmos, Gravity Bridge gibi Cosmos projelerini takip etmek lazım. Ethereum’daki Fuel ve Arbitrum gibi Optimistic Rollup’ların da Celestia ile bağlantıları mevcut.

Celestia’dan ismi Celestia olmadığı zamanlardan beri bahsediyorum aslında. Son zamanlarda daha fazla ismi duyulmaya başlandığı için ayrıca anlatıp anlatmadığımı soranlar oluyordu. Umarım bu yazı ile bir miktar anlatabilmişimdir.

--

--