EIP-4444 Sonrası Geçmiş Ethereum Verilerine Erişim

Onur Sarayli
7 min readDec 6, 2021

--

Yıllarca süren Ar-Ge’den sonra, Ethereum 2.0 artık burnumuzun ucunda diyebiliriz. Eth 2.0'a dahil edilmesi düşünülen EIP’lerden biri, EIP-4444 — Yürütme İstemcilerindeki Bağlı Geçmiş Verilerdir. EIP-4444, Ethereum istemcilerine geçmiş budaması ekleyeceği için Ethereum topluluğunda şu sıralar popüler bir konu halinde. Düğümlerin daha az geçmiş depolamasını gerektirmesi, zincir durumunu eşitlemeyi ve doğrulamayı kolaylaştırarak doğrulayıcılara fayda sağlar — güvenlikten ödün vermeden de daha yüksek gaz sınırlarının kilidini açar. Daha yüksek gaz limitleri, toplamalar için kapasite ekleyerek Ethereum’un verimini arttırır ve işlem maliyetlerini düşürür. Ayrıca, Ethereum oluşumu büyüse bile, insanların zinciri tüketici sınıfı donanım üzerinde doğrulamaya devam edebilmesini sağlayacağından ötürü, daha fazla merkezsizleşmeyi destekleyecektir.

Ancak bu teklif, Ethereum istemcileri için bazı işlevleri kaldıracaktır. Düğümler, budandıktan sonra geçmiş veri isteklerine hizmet edemeyecektir. Yine de, birçok veri uygulaması, kullanıcı hesap bakiyeleri, işlemler, oylar ve uzak geçmişteki benzerleri gibi geçmiş kullanıcı davranışlarını göstermek için Ethereum’dan geçmiş verilere erişim ihtiyacı duyacaktır.

Bu gönderi, Graph’ın EIP-4444'ün dapp’ler için bıraktığı boşluğu, genesis’ten geçmiş verileri indeksleyerek ve bu veriler için sorgular sunarak nasıl doldurduğunu gösterecektir. The Graph’in verilerin doğrulanabilirliğine yönelik yaklaşımını ve protokol boyunca güveni ortadan kaldırmak için yol haritasını vurgulayarak, Ethereum ve The Graph’in güven modelleri arasında paralellikler çizeceğiz. Yol haritası, The Graph’in uzun süredir ademi merkeziyetçiliğe ve Ethereum topluluğuyla değerlerin hizalanmasına olan bağlılığının bir yansımasıdır. Ama önce, “Graph nedir ve Ethereum ayrı bir sorgu protokolünden nasıl yararlanır?” bu konuları inceleyelim.

Geçmiş Veriler İçin Graph Kullanımı

Graph , blockchain verileri için teşvik edilmiş bir indeksleme ve sorgulama protokolüdür. Geliştiriciler, Ethereum’dan zengin, türetilmiş verileri ayıklayan, işleyen ve depolayan subgraph’leri (açık API’ler) oluşturur. Dapp geliştiricileri, geçici GraphQL sorgularını kullanarak ön uç uygulamalarında akıllı sözleşme verilerini sunmak için subgraph’leri kullanırlar. Dizin oluşturucular, bu verileri son kullanıcılara sunmak için subgraph’leri senkronize eder ve sorguları işler.

Bir yazılım mimarının bakış açısından, veri yazma (Ethereum) ve veri okuma (Graph) endişelerini ayırmanın büyük yararı vardır. Blockchain’in görevi, ideal olarak anlamlı bir akıllı sözleşme dili ile bloklardaki işlemler üzerinde fikir birliği sağlamaktır. Hız, güvenlik ve merkeziyetsizlik arasında gezinmek için bir uzlaşma alanı vardır. Sorgu sorumluluğunu yığında daha yüksek bir protokole ayırmak, Ethereum’un işlem hacmini ölçeklendirmeye ve gaz ücretlerini düşürmeye odaklanmasını sağlar. Üstte bir katman olarak The Graph; olası sorumlulukları ortadan kaldırır. Ayrıca veri kaynakları arasında toplama yeteneği, tüketici tercihlerine dayalı akıllı Dizin Oluşturucu seçimi, sorgu fiyatlarını ifade etmek için bir dil, hızlı ve verimli mikro ödemeler için yüksek verimli ve düşük gecikmeli durum kanalları uygulaması gibi benzersiz yetenekler sunar.

Birçok dapp, sorgularının açık ve izinsiz bir dizin oluşturucu pazarı tarafından sunulmasını sağlayarak JSON-RPC API’lerini kullanmaktan Graph’ın merkezi olmayan ağını kullanmaya geçiyor. Dapp’ler artan güvenilirlik ve performanstan, merkezi olmayan bir ağ katılımcıları topluluğundan, maliyet tasarruflarından ve daha fazlasından yararlanır.

Graph’te Doğrulanabilirlik

Doğrulanabilirliğin iki yönü olduğunu söyleyebiliriz. İlk olarak, verileri hesaplamak için doğrulanabilir süreçler vardır. İkincisi, bu veriler hakkında doğrulanabilir iddialarda bulunmak için yöntemler vardır. “Bir madalyonun iki yüzü” benzetmesini kullanırsak; doğrulanabilir süreçler madalyonun başı, doğrulanabilir iddialar kuyrukları ve iki tarafı bir arada tutan metal ise verilere bağlılık olacaktır.

Ethereum’da işlemi doğrulama yöntemi, iş kanıtı zincirini doğrulamaktır. Veri taahhütleri blok başlıkları ve Merkle kökleridir ve doğrulanabilir iddialar Merkle kanıtları biçimindedir. Graph’teki benzer kavramlar ise sırasıyla Doğrulanabilir Dizin Oluşturma , Dizin Oluşturma Kanıtları (PoI) ve Doğrulanabilir Sorgulardır.

Doğrulanabilirlik Aşamaları

Graph, düzenli olarak eklenen yeni özelliklerle sürekli gelişen bir sistemdir. Her subgraph özelliği, her biri aşamalı olarak en aza indirilmiş güven varsayımları ile doğrulanabilirlik aşamaları boyunca ilerler. Bu aşamalar;
1. Deneysel (Experimental)
2. Tahkim (Arbitration)
3. Sahtekarlık Kanıtları (Fraud Proofs)
4. Geçerlilik Kanıtları’dır. (Validity Proofs)

The Graph içindeki doğrulanabilirliğin bu ayrıntılı evrimi, her subgraph’in veya sorgunun daha yüksek güvenlik için en son özelliklerden bağımsız olarak değiş tokuş etmesini sağlar. Subgraph’ler bağımsız olduğundan, bir Dapp geliştiricisi, subgraph’lerin tüm ekosistemi için güvenlikten ödün vermeden iş ihtiyaçlarına hızlı bir şekilde tepki verebilir. “Hızlı hareket edip bir şeyleri bozmaya” mı yoksa “yavaş ve kasıtlı olarak mühendislik yapmaya” karar vermek yerine, geliştiricilerin geliştirme devam ederken doğrulanabilirlik derecesini seçebilecekleri her iki durumdan da en iyisini elde ederiz. Ancak bir özellik doğrulanabilirliğin son aşamalarına ulaştığında sonsuza kadar orada kalır.

Deneysel

Deneysel özellikler,örneğin uygulama deterministik değilse veya API kararsızsa, protokolün tüm güvenlik garantilerini uygulayabileceği şekilde henüz uygulanmamıştır. Bunun yerine, kullanıcı Dizin Oluşturucunun (veya kullanıcı sonuçları çapraz kontrol ederse Dizin Oluşturucuların) itibarına güvenmelidir. Tüketiciler, üretimdeki deneysel özelliklere güvenmeyerek veya protokolle uzun vadeli teşvik uyumlu ve uzun bir süre boyunca iyi davranış sergileyen Dizin Oluşturucuları seçerek riski azaltabilir.

Tahkim

The Graph Network’teki uyuşmazlıkların çözümü için mevcut süreç, beklenen eğik çizgi ve uyuşmazlık yönetimi konusunda Dizin Oluşturuculara rehberlik eden bir Tahkim Sözleşmesini takip eder. Şu anda Tahkim’de olan özellikler için, gerekli güven düzeyi The Graph’ın protokol yönetişimine geçer: The Graph Council (10 multisig’den 6'sı) ve onların seçilmiş Hakemleri.

Bu aşamada, Dizinleyiciler, dizinlemeleriyle ilgili taleplerini imzalar. Hatalı olduğu düşünülen iddialara (örn. sorgu yanlış veri döndürür) itiraz edilebilir ve kusurlu Dizin Oluşturucu eğik çizgiyle kesilebilir. İşte bir yaşanan örnek; mainnet üzerinde bir anlaşmazlık ve hakemlik.

Bu erken aşamada bile, Dizin Oluşturucular, diğer Dizin Oluşturucuların çalışmalarını doğrulamak için kendi Ethereum arşiv düğümlerinden veri alarak güvenlik eklemeye katılırlar.

Sahtekarlık Kanıtları

Sahtekarlık kanıtları, güven varsayımını N modelinin 1'i olarak en aza indirir. Hakemli oyunlar, hakemlerin rolünün yerini alır ve herhangi bir dürüst katılımcının kötü niyetli bir Dizin Oluşturucuyu kesmesine ve kötü davranış gösterebilirlerse bir ödül toplamasına izin verir.

Geçerlilik Kanıtları

Geçerlilik kanıtları, belirli bir iddiayı kısaca doğrulayan sıfır bilgi kanıtlarıdır. Bu aşama, doğrulanabilirlikte nihai standarttır.

Bir subgraph özelliği, geçerlilik kanıtlarını tam olarak kullandığında, tüketicinin yalnızca bir blok karmaya güvenmesi gerekir. Dizin Oluşturucu, dapp geliştiricisine ve tüketiciye sonuca tam bir güven vermek için gerekli tüm diğer bilgileri sağlayabilir.

Doğrulanabilir Dizin Oluşturma Yol Haritası

Doğrulanabilir İndeksleme, bir blockchain veri akışını verimli GraphQL sorguları için uyarlanmış bir veritabanına dönüştürme sürecini doğrular. Yukarıdaki seçenekler göz önüne alındığında, şimdi doğrulanabilir İndeksleme açısından neredeyiz dersiniz?

Subgraph özelliklerinin büyük çoğunluğu, kısa vadede Sahtekarlık Kanıtlarına geçme planıyla bugün Tahkim aşamasındadır. Bazı subgraph özellikleri, bunları deterministik olarak uygulamak için gereken aşırı çaba nedeniyle deneysel aşamadadır, ancak bu özelliklerin hiçbiri EIP-4444 için gerekli değildir. Tahkim aşamasında, Dizin Oluşturucular, dizin oluşturma ödüllerini toplamak için düzenli olarak PoI’ler gönderir. Veriler halka açık ve zincir üzerinde olduğundan, aynı subgraph’i endeksleyen Dizin Oluşturucular, rakip bir Dizin Oluşturucunun onlarla aynı sonucu ürettiğini ucuza doğrulayabilir. Bulunan herhangi bir çakışma, bir anlaşmazlıkta zincire getirilecek ve kusurlu Dizin Oluşturucu kesilecektir.

Günümüzün ZK-SNARKS’larının çoğu subgraph’in Dizine Ekleme için ağın performans hedeflerini karşılamadığı göz önüne alındığında, Dizinlemenin Geçerlilik Kanıtlarının kısa vadede mevcut olmaması muhtemeldir. Bunun yerine, doğrulanabilir Dizin Oluşturma için bir sonraki adım, Güveni N’in 1'ine indirgeyen Dizin Oluşturmanın sahtekarlık kanıtları olacaktır.

Doğrulanabilir Sorgular Yol Haritası

Doğrulanabilir sorgular, sorgularının sonucunun indeksleme ile üretilen veritabanı için doğru olduğuna dair tüketiciye güven verir. Bu adım, tüketicilere sahte bilgiler sunulmasını önlemek için en önemli adımdır. Dapp’ler her gün The Graph’e milyarlarca sorgu yapar, bu nedenle doğrulanabilirlik araçlarının katı performans gereksinimleri vardır.

Bugün tüm sorgu özellikleri Tahkim aşamasındadır. Tahkim aşamasında, Dizin Oluşturucular, subgraph kimliğini, sorgunun gövdesini ve yanıtı içeren EIP-712 yapılandırılmış karmalarının onaylarını imzalar. Her sorgunun tek, deterministik bir yanıtı olduğundan, herhangi bir çelişkili onay, bir anlaşmazlık için zincire getirilebilir. Tüketiciler, olası bir şekilde Dizin Oluşturucuları kendi aralarında kontrol edebilir ve birçok Dizin Oluşturucu genelinde yanıtları çapraz kontrol etmek için Fishermen’a sorgular gönderebilir.

Son iki yılda, The Graph ekosistemindeki temel araştırmacılar, esnek bir GraphQL API üzerinden kanıtları etkinleştirmek için en verimli ZK-SNARK kanıtlayıcıyı geliştirmeye odaklandı. Bu kanıtlayıcıyı kullanarak, bir Dizin Oluşturucu, tam web3 vizyonunu güçlendirerek harika bir tarama deneyimi için gereken hızda karmaşık sorgulara güvenilir yanıtlar sunabilecektir. Sonuç olarak, yol haritası, sorgular için Sahtekarlık Kanıtlarını geçmek ve doğrudan Geçerlilik Kanıtlarına gitmektir. Temel geliştirme güncellemelerini ve protokolün Ar-Ge’sindeki ilerlemeyi The Graph Forum’da takip edebilirsiniz.

Ethereum ve EIP-4444'ü Destekliyoruz

Ethereum topluluğunun geçmiş blockchain verilerine her zaman güvenilir, doğrulanabilir erişime sahip olması önemlidir. Bu, Graph topluluğunun destekleyebileceği bir şeydir.

Yol haritamızda, bu hedefe daha iyi hizmet etmemizi sağlayacak birkaç düzenleme yer almaktadır. İlk olarak, topluluğun bir Ethereum Ağı Subgraph’i göndermesi gerekir. Şu anda subgraph’ler uygulamaya özeldir ancak tüm bloklar, işlemler, hesaplar ve günlükler gibi ham blockchain verilerini ortaya çıkaran ağ subgraph’lerini de sunmayı planlıyoruz. Bu Ethereum Ağ Subgraph’i, esasen daha gelişmiş filtreleme, sıralama ve sayfalandırma ile JSON-RPC API’sinin bir üst kümesi olacaktır.

Ardından ise, bu ham blockchain verilerinde daha yüksek düzeyde Doğrulanabilir Dizin Oluşturma ve Doğrulanabilir Sorguları desteklememiz gerekiyor. Ham veriler üzerinde geçerlilik kanıtlarını kullanmak, bize merkle kanıtlarıyla aynı güvenlik garantilerini verir. Ayrıca, Endeksleme için sahtekarlık kanıtları, hafif istemcilerin Ethereum’da canlılık varsayımı için güvenmeleri gereken aynı N-N modeline olan güveni azaltacaktır. Bu iyileştirmelerle Graph Network, geçmiş Ethereum verilerine doğrulanabilir erişimin her zaman açık bir pazar aracılığıyla erişilebilir olmasını sağlayabilecektir.

ETH 2.0'da gelen ve Ethereum yol haritasını destekleyen heyecan verici gelişmeleri sabırsızlıkla bekliyoruz. Dapp geliştiricileri, Ethereum Network Subgraph ile bugün güvendikleri aynı güven modeli kapsamında web3 JSON-RPC API’leri tarafından sağlanan doğrulanabilir verilerin tamamına erişebilecekler.

Graph Hakkında

Graph, merkezi olmayan web’in (Web3) indeksleme ve sorgulama katmanıdır. Geliştiriciler, uygulamaların GraphQL kullanarak sorgulayabileceği subgraph adı verilen açık API’ler oluşturur ve yayınlar. Graph şu anda Ethereum, Arbitrium, Avalanche, Celo, Fantom, Moonbeam, IPFS ve PoA dahil olmak üzere 22 farklı ağdan gelen verileri endekslemeyi destekliyor ve yakında daha fazla ağ desteği gelecektir. Bugüne kadar, barındırılan hizmette 31.000'den fazla subgraph konuşlandırıldı ve şimdi subgraph’ler doğrudan ağ üzerinde konuşlandırılabilir durumda! 24.000'den fazla geliştirici, Uniswap, Synthetix, Foundation, Zora, KnownOrigin, Gnosis, Balancer, Livepeer, DAOstack, Audius, Decentraland ve diğerleri gibi uygulamalar için subgraph’ler oluşturdu.

Bir uygulama veya Web3 uygulaması oluşturan bir geliştiriciyseniz, blockchain’lerden veri indekslemek ve sorgulamak için subgraph’leri kullanabilirsiniz. Graph, uygulamaların bir kullanıcı arayüzünde verileri etkili ve verimli bir şekilde sunmasına olanak sağlarken, diğer geliştiricilerin de subgraph’imizi kullanmasına izin verir! Yeni başlatılan Subgraph Studio’yu kullanarak bir subgraph’i ağa dağıtabilir veya Graph Explorer’nde bulunan mevcut subgraph’leri sorgulayabilirsiniz. Graph ana ağında, Dizinleyici, Kuratör ve/veya Delegator olmanızı memnuniyetle karşılar. Teknik tartışmalar için The Graph Discord’da kendinizi tanıtarak The Graph topluluğuna katılabilirsiniz. The Graph topluluğuna dahil olarak Telegram’da sohbet edin ya da Twitter’da The Graph’i takip etmeyi unutmayın! Graph geliştiricileri ve topluluk üyeleri her zaman sizinle sohbet etmeye isteklidir ve Graph ekosistemi birbirini destekleyen, büyüyen bir geliştiriciler topluluğa sahiptir.

Graph Foundation, The Graph Network’ü denetler. Graph Vakfı, Teknik Konsey tarafından denetlenir. Edge & Node, StreamingFast ve Figment, The Graph ekosistemindeki birçok kuruluştan sadece üçüdür.

--

--

Onur Sarayli
Onur Sarayli

Written by Onur Sarayli

Community Manager | Entrepreneur | Crypto Investor | Interactive Marketing | Blockchain Enthusiast | Metaverse | Web3

No responses yet