Bugün sizlere
@FlareNetworks ekosisteminde FAssets ve Flare Data sisteminin nasıl çalıştığını anlatacağım.
FAssets, farklı blokzincirlerdeki varlıkları Flare ağına taşıyan, sarılmış tokenlar (wrapped tokens) yaratmamıza olanak veren harika bir köprü teknolojisi.
Mesela Bitcoin (BTC), Dogecoin (DOGE), Ripple (XRP) ya da Litecoin (LTC) gibi orijinal varlıklar, FAssets olarak Flare üzerinde temsil ediliyor. Örneğin Bitcoin’in FAssets hali FBTC olarak geçiyor.
Nasıl mı oluyor?
Bir kullanıcı, yani mint etmek isteyen kişi, önce bir ajan seçiyor ve teminatı rezerve etmek için bir ücret ödüyor. Ardından orijinal varlığı (mesela BTC) ajan adresine gönderiyor. Flare Data Connector (FDC) işlemi doğruluyor ve bunun karşılığı olarak Flare üzerinde ERC-20 formatında eşdeğer FAssets tokenları (mesela FBTC) basılıyor.
Mint edilen bu FAssets’lar Flare’ın DeFi uygulamalarında kullanılabilir ya da başka zincirlere köprülenebilir. Ayrıca kullanıcılar istedikleri zaman FAssets’larını orijinal varlıklarına geri çevirebilirler.
Burada kilit rol oynayan aktörler var:
Ajanlar: Sistemin altyapısını yönetirler, orijinal varlıkları tutarlar, teminat sağlarlar ve kullanıcıların geri dönüş işlemlerini gerçekleştirirler. Ajanların işlemleri, yönetim adresleri (soğuk cüzdan) ve çalışma adresleri (sıcak cüzdan) ile güvence altına alınmıştır. Teminat faktörü dediğimiz sistem, ajanın yeterince teminat tuttuğunu garanti eder.
Kullanıcılar: Herkes mint ve redeem işlemi yapabilir. Yani sınırlama yok.
Teminat Sağlayıcılar: FLR tokenlarını ajanların teminat havuzlarına kilitler ve mint etme ücretlerinden pay alırlar.
Likidatörler: Sistemin sağlığını korur; teminat azaldığında FAssets yakarak karşılıklarını alırlar ve bunun karşılığında ödüller kazanırlar.
Meydan Okuyanlar (Challengers): Ajanların yasadışı işlemlerini takip eder, ispatlayıp sistem yöneticilerine bildirir. Doğrulanırsa ajan tam likidasyona girer, yani yeni mint işlemi yapamaz.
Bir diğer önemli bileşen ise Core Vault (Temel Kasa). Bu kasa, ajansız, kolektif bir varlık havuzu gibi düşünebilirsiniz. Ajanlar orijinal varlıkları bu kasaya aktararak üzerlerindeki teminat yükünü azaltırlar. Böylece daha fazla FAssets basabilir veya teminatlarını çekebilirler. Core Vault, çoklu imza (multisig) ile yönetilir ve güvenlik riski durumunda yönetişim tarafından durdurulabilir.
Özellikle akıllı kontrat desteklemeyen ağlarda (mesela XRP Ledger) Core Vault, Flare yönetişimi tarafından yetkilendirilmiş birden fazla imzacı tarafından yönetilen çoklu imza hesaplarından oluşur. Yani, kasadaki varlıklar tek bir ajanın değil, sistemin ortak mülkiyetindedir.
Özetle, FAssets sistemi sayesinde farklı blockchainlerdeki varlıklar Flare ekosistemine güvenli, şeffaf ve teminatlı şekilde bağlanabiliyor. Bu da kullanıcıların bu varlıkları DeFi dünyasında aktif olarak kullanmalarına olanak sağlıyor.
Şimdi de Flare Data Connector’dan, yani FDC’den kısaca bahsetmek istiyorum. FDC, Flare ağındaki akıllı kontratların dış dünyadan gelen verileri güvenle kullanmasını sağlayan özel bir oracle sistemi.
Nasıl mı çalışıyor? Veri sağlayıcıların imzalarının P’sinden fazlası bir veriyi onayladığında, bu veri güvenilir sayılıyor. Doğrulanmış veriler ise blok zincirine çok büyük yer kaplamasın diye Merkle ağacı adı verilen bir yapıda tutuluyor; sadece o ağacın kök bilgisi zincire yazılıyor.
Veri isteyenler ise ihtiyaç duydukları onayları ve kanıtları blokzincir dışındaki katmanlardan kolayca alabiliyorlar. Akıllı kontratlar da bu kanıtları kontrol ederek sadece gerçek ve onaylanmış veriye göre işlem yapıyor.
En güzel yanı da sistemin esnek olması; yeni veri türleri ve kaynaklar gerektiğinde topluluk onayıyla kolayca eklenebiliyor.
Kısacası FDC, Flare’ın dış dünyayla güvenli ve verimli iletişim kurmasını sağlayan güçlü bir köprü görevi görüyor.
Bir de Data Availability Layer, yani kısaca DA Layer var. Bu katman, blokzincir dışında tutulan onaylı verileri sorgulamamız için API uç noktaları sağlıyor. Güzel olan tarafı şu: Bu verilere erişmek tamamen güvene dayalı değil, çünkü herkes kendi Merkle kökünü hesaplayıp zincirdekiyle karşılaştırabiliyor.
Üstelik DA Layer çalıştırmak da tamamen serbest; isteyen herkes, Flare ekosistemindeki bir kaynaktan veriyi alıp kendi DA Layer hizmetini sunabilir.
Kısacası DA Layer, zincir dışındaki veriye hızlı, güvenli ve özgürce erişmemizi sağlıyor.
FDC’nin desteklediği farklı attestation türleri var ve bunlar, farklı doğrulama ihtiyaçlarına hizmet ediyor. Şu anda yedi farklı tip bulunuyor:
AddressValidity: Belirtilen zincirlerdeki adreslerin formatını ve checksum’unu doğruluyor.
EVMTransaction: Ethereum, Flare veya Songbird gibi EVM uyumlu zincirlerdeki işlemleri doğrulayıp detaylarını getiriyor.
JsonApi: Web2’den veri çekip JQ ile dönüştürüyor, sonra akıllı kontratların anlayacağı şekilde kodluyor. (Şimdilik sadece Coston & Coston2’de)
Payment: BTC, DOGE, XRP gibi EVM olmayan zincirlerdeki ödeme işlemlerini doğruluyor.
ConfirmedBlockHeightExists: Bir bloğun gerçekten var olup olmadığını ve onaylanma durumunu doğruluyor.
BalanceDecreasingTransaction: Bir işlemin bir adresin bakiyesini azaltıp azaltmadığını kontrol ediyor.
ReferencedPaymentNonexistence: Belirli bir zaman aralığında, belirtilen ödemenin olmadığını kanıtlıyor.
İlk üç tip genellikle en yaygın kullanılanlar, son üç tip ise daha çok FAssets sistemi içinde işe yarıyor.
Peki bu süreç nasıl işliyor?
Aslında bütün attestation türleri aynı genel adımları takip ediyor:
Talep Gönderme: Kullanıcı, FdcHub akıllı kontratına doğrulama talebini gönderiyor.
Toplu İşleme: Veri sağlayıcılar talepleri zaman damgasına göre grupluyor.
Veri Toplama: Sağlayıcılar gerekli verileri çekip formatlıyor ve yanıtları Merkle ağacına dönüştürüyor.
Konsensüs ve Saklama: Sağlayıcıların imza ağırlığının P’sinden fazlası toplanınca Merkle kökü Relay kontratına gönderiliyor.
Kanıt Alma: Kullanıcı, DA Layer üzerinden doğrulama yanıtı ve kanıtlarını alıyor.
Doğrulama ve Aksiyon: Akıllı kontratlar bu kanıtları kontrol edip veri geçerliyse gerekli işlemi yapıyor.
Kısacası, FDC’nin attestation sistemi; farklı zincirlerden, web’den ve hatta zincir dışı kaynaklardan veriyi güvenilir, şeffaf ve herkesin doğrulayabileceği bir şekilde Flare ekosistemine taşıyor.
FDC’nin nasıl çalıştığını biraz daha detaylı anlatmak gerekirse, süreç hem kullanıcılar, hem akıllı kontratlar hem de veri sağlayıcılar açısından belli adımlardan geçiyor.
Kullanıcı tarafında önce hangi veri tipine ihtiyaç duyduğunuzu belirliyorsunuz, yani hangi attestation kullanılacak ve veri nereden gelecek. Ardından talebi, beklenen yanıtın hash’i ile birlikte formatlayıp FdcHub üzerinden gönderiyorsunuz ve gerekli ücreti ödüyorsunuz. Bu talep kayda geçiyor, blok zaman damgası alınarak hangi oylama turunda olduğunu hesaplıyorsunuz. Tur tamamlandığında bir olay (event) ile sonuçlar duyuruluyor. Sonrasında DA Layer’dan verileri ve kanıtları alıp akıllı kontratınıza gönderiyorsunuz.
Akıllı kontratlar tarafında ise öncelikle veri odaklı tetikleyiciler tanımlanıyor. Kullanıcıdan gelen yanıt ve kanıtlar kabul ediliyor, FdcVerification kontratı ile kanıtlar Merkle köküyle karşılaştırılıp doğrulanıyor. Eğer her şey geçerliyse bu veriler hesaplama veya karar süreçlerinde kullanılabiliyor.
Veri sağlayıcılar tarafında ise işler biraz yoğun. Önce gelen talepler zaman damgalarına göre gruplandırılıyor. Sonra gerekli veriler doğrulayıcı sunuculardan çekiliyor, geçerliliği kontrol ediliyor ve MIC ile LUT testlerinden geçiyor. Geçerli talepler için BitVector’ler oluşturuluyor ve “choose phase” denilen 90-135 saniyelik kritik sürede seçiliyor. Tüm sağlayıcıların BitVector’leri bir araya getirilerek bir konsensüs oluşturuluyor. Ardından onaylanan yanıtlar bir Merkle ağacına dönüştürülüyor, sağlayıcıların P ağırlıkta imzası alınıyor ve Merkle kökü Relay kontratına gönderiliyor. Son olarak, bu veriler ve kanıtlar DA Layer üzerinden kullanıcılara servis ediliyor.
Özetle, Flare Data Connector Flare ekosisteminin bel kemiği diyebiliriz. Akıllı kontratların zincir dışından güvenli ve onaylanmış veri almasını sağlıyor. Merkle kanıtları sayesinde bu süreç tamamen güvene dayalı olmadan, doğrulanabilir şekilde ilerliyor. Böylece geliştiriciler, farklı blokzincirler arasında çalışan, daha güvenilir ve merkeziyetsiz uygulamalar geliştirebiliyor.
@FlareDevHub