Polygon Blockchaini üzerinde Dinamik NFT’ler Nasıl Oluşturulur ? 💫

Av. Elif Hilal Umucu
8 min readNov 19, 2022

--

Selam değerli arkadaşlarım ve okuyucularım.👯‍♀️ Ben Elif Hilal! 🔮 Blockchain teknolojisi, akıllı sözleşmeler, web3 ve hukuk alanlarında türkçe ve ingilizce içerikler üretiyorum. Bu konularda sorunuz ya da paylaşmak istediğiniz düşünceniz olursa mutlaka beklerim ⛱️

Bu yazının içeriği, başlıktan da anlaşılacağı üzere, Dynamic NFT oluşturmak olacak. Dinamik (ya da dynamic) Non-Fungible Tokenlar (dNFT’ler) nedir? Önce buradan başlayalım.

dNFT’ler ; NFT’lerin doğrulanabilir ve benzersiz yapısını dinamik veri girişleri ve zincir dışı hesaplama ile birleştiren NFT alanının bir sonraki aşamasıdır diyebiliriz.

Bundan önce NFT’nin ne olduğuna bakmamız gerekirse şayet daha önce bu konuda yazdığım yazıyı buraya ekleyim. Kısaca NFT’lerden de bahsetmiş olalım.

Non-Fungible Token’lar veya NFT’ler ise, her biri dijital sanat eseri, özel bir oyun içi öğe, nadir ticari kart koleksiyonları veya diğer herhangi bir farklı dijital/fiziksel varlık gibi benzersiz bir şeyi temsil eden bir blok zinciri üzerindeki dijital tokenlardır.

Bir de olmazsa olmaz bir kavramımız var. ORACLE.

Oracle’lar , dinamik unsurları NFT’lere getirme konusunda çok büyük ve temel bir görev üstlenir. Onlara kanıtlanabilir şekilde adil, manipülasyona dayanıklı rastgelelik ve gerçek dünyadan çok çeşitli veriler gibi girdiler sağlar. (Burada da eğer oracle nedir diyecek olursanız, o konuya dair yazımı paylaşayım, aşağıda hemen ❣️)

Blok zinciri (zincir içi) ile dış dünya (zincir dışı) arasındaki bağlantıyı kurmak, ‘oracle’ olarak bilinen ek ve ayrı bir altyapı parçasını gerektirir. Oracle, Blockchain için bir köprü görevi gören üçüncü taraf bir yazılımdır.

Hazırsanız eğer, bu teknik yazıda oraclelar tarafından Polygon Blockchainine sağlanan gerçek zamanlı hava durumu verilerine dayalı olarak dNFT’lerin nasıl oluşturulacağı anlatılacak. Başlıyoruz!!🙈 🙉 🙊

Polygon Nedir? 👾

Polygon (eski adıyla Matic Network), Ethereum uyumlu blok zincirleri oluşturmak için bir ölçeklendirme çerçevesidir. Bu ne demek şimdi? Bunu anlamak için önce ölçeklendirme problemini kavramamız lazım. Ölçeklendirme kavramı günlük hayatta işlem kapasitesinin artırılması ya da azaltılması olarak karşımıza çıkar. Blockchain dünyasında ölçeklendirme ise ağın, transfer işlemlerini ağda yavaşlamaya neden olmadan gerçekleştirebilme yeteneği olarak karşımıza çıkar.

Blokzinciri üzerinde kriptoparalarımızın sahipliğini transfer ederken ortaya çıkan veri akışı, blokzinciri ağının işlem kapasitesine bağlı olarak değişebilir.

(Örneğin Bir Bitcoin bloğunun 2000 transfer işlemi içerdiğini varsayalım. Bitcoin blokları her 10 dakikada bir madenciler tarafından doğrulanır ve onaylanarak Bitcoin blokzincirine yazılır. Her 10 dakikada bir 2000 transfer işleminin doğrulanarak Bitcoin blokzincirine yazıldığı durumda, Bitcoin blokzincirindeki bir bloğun ortalama işlem kapasitesi saniyede 3.3 işlem olmaktadır. Ancak, özellikle Bitcoin fiyatının hareketli olduğu dönemlerde cüzdanlar arası Bitcoin transferleri de artmaktadır. Bu durum, Bitcoin ağına normal zamanlardan çok daha fazla sayıda işlem iletilmesine neden olmaktadır. Blokzincirindeki 1 MB’lık blokların kapasitesi artırılamadığı için kuyrukta bloklara dahil edilmeyi bekleyen işlemlerin sayısı artmaktadır. Kuyrukta bekleyen işlemlerin artması, transfer sürelerinin uzamasına ve işlem ücretlerin artmasına yol açmaktadır.Diyeceksiniz ki şimdi , Ethereum daha hızlı değil mi?Her ne kadar Ethereum, Bitcoin (BTC) gibi diğer proof-of-work blockchainler’den daha hızlı çalışsa da, genel saniye başına işlemleri (TPS) 15 civarındadır ki bu düşük bir sayıdır. Bu, başka sorunlara yol açan temel bir problemdir. Örnek olarak, Ethereum’a inşa edilmiş projelerin önemli oranda kabulüyle bir hype olması halinde, tüm ağ yavaşlayabilmekte ve gaz fiyatları artabilmektedir.)

Tabi birkaç farklı ölçeklendirme çözümü var fakat onlar bu yazının konusu değil! Ama dilerseniz daha sonra ele alırız tabi, neden olmasın 💫

Polygon, yalnızca bir veya iki ölçeklendirme çözümü sağlamak yerine, farklı mutabakat mekanizmalarına sahip yan zincirler ve Plasma, Optimistic Rollups ve ZK-Rollups gibi katman-2 seçenekleri de dahil olmak üzere birden çok farklı ölçeklendirme çözümünü birbirine bağlayan bir ekosistem yaratıyor.

Eğer yukarıdaki rollups ya da zk-rollups kavramlarına da yabancıyım diyorsanız sizlere şu yazımı da okumanızı öneriyorum.

Polygon, Ethereum blokzincir ağına katkılarda bulunmuş bir ekip tarafından kuruldu ve 2017 yılının Ekim ayında piyasaya sürüldü. Jaynti Kanani, Sandeep Nailwal ve Anurag Arjun, Polygon ekibinin kurucu liderleridir.

Polygon’un yapısı, ayrıca yeni projelerin kendi benzersiz ölçeklendirme çözümlerini hızlı ve kolay bir şekilde oluşturmasına olanak tanıyor. Daha büyük ekosisteme ölçeklenebilmek, zincir üzerinde yapılan işlemlerin blok onay süresini kısaltmak, sınırsız sayıda merkeziyetsiz uygulama barındırabilmek gibi yenilikleri Ethereum ağına kazandıran projenin de Polygon olduğunu söylemeden geçmeyelim.

Polygon, Ethereum Virtual Machine (EVM) uyumluluğu ile de bilinir, gelişmiş esnekliği ile kendisini diğer blok zinciri ölçeklendirme(scaling) ve birlikte çalışabilirlik(interoperability) projelerinden ayıran bir projedir.

Polygon & Aavegotchi

Polygon’un kabul gördüğü bir başka alan DeFi ve non-fungible tokenları eşsiz biçimde entegre eden Aavegotchi gibi kripto koleksiyon oyunları olmuştur. Oyun, kullanıcılarına özellikler, teminat, giyilebilir şeyler ve nadirliği gibi çeşitli faktörlere göre değerleme yapılan avatarlarını ve oyun metaverse’ünde faiz veren tokenlarını stake etme olanağı vermektedir.

Oyuncular mini-oyunlara, yönetim etkinliklerine ve topluluk buluşmalarına katılarak metaverse ile etkileşime girerler. Tıpkı diğer kripto metaverselerde olduğu gibi Aavegotchi’de de kullanıcıların koleksiyon ürünlerini alabildikleri, satabildikleri ve takas edebildikleri entegre NFT pazaryeri de vardır.

Aavegotchi ve Polychain Monsters gibi popüler NFT tabanlı oyun projeleri , kullanıcıları için daha dinamik bir deneyim yaratmak için her ikisi de Polygon’un ölçekleme teknolojisini kullanarak başlatıldı. Çoğu popüler NFT şirketi ya da projesi, Chainlink tarafından geliştirilen doğrulanabilir rastgelelik algoritması (VRF) kullanan Blockchainler seçiyorlar. Polygon’da bu algoritmayı kullanan bir proje.

Fakat, geliştiricilerin Polygon üzerinde dApps oluşturmak için kullanabileceği tek girdi doğrulanabilir rastgelelik değildir. Geliştiriciler, güvenli oraclelar tarafından Polygon’a sağlanan hava sıcaklığı verilerini kullanarak, zincir dışı verilere dayalı olarak değişen dinamik NFT’ler oluşturabilirler.

Dinamik NFT’leri Önemli Kılan Şey Nedir?

Non-Fungible Tokenlar Olmayan Jetonlar (NFT’ler) genellikle sanat gibi benzersiz varlıkların sahipliğini temsil etmek için kullanılırlar. Ancak bir spor maçı sırasında bir oyuncunun istatistikleri gibi dinamik varlıkları temsil etmek için de kullanılabilirler. Bu tamamen projeye ya da amaca bağlı olarak değişir.

Kriptografik olarak güvenli, merkeziyetsiz ve dolandırıcılığa dayanıklı ticaret kartları, veriler kullanılarak oluşturulabilir ve veriler değiştiğinde, örneğin yeni bir puan alındığında veya başarılı bir destek kaydedildiğinde gerçek zamanlı olarak güncellenebilir. Bu, NFT koleksiyoncuları için yeni bir yenilik düzeyi yaratır ve NFT tabanlı oyun uygulamalarında yeni programların da kilidini açar.

Oraclelar tarafından desteklenen dinamik NFT’ler, kanıtlanabilir bir rastgelelik kaynağı sağlamak için VRF’i entegre eden oyun dApp Aavegotchi’de önemli bir rol oynar. Nasıl diye sorabilirsiniz. VRF, Aavegotchi dNFT’lerinin benzersiz özelliklerinin adil bir şekilde belirlenmesine yardımcı olur ve ayrıca öngörülemeyen oyun içi senaryoların yanı sıra rastgele DAO jürisi seçimini de sağlar.

Aavegotchi, Polygon’un 2. katman PoS zincirinde piyasaya sürülmüştür ve oyunun sıfıra yakın işlem ücretleri ve hızlı ödeme süreleri sayesinde kullanıcı talebini karşılamak için uygun maliyetli bir şekilde ölçeklenmesini sağlamıştır. Popüler oyun dApp’inin Polygon’da dinamik NFT’lere nasıl öncülük ettiğini öğrenmek için Aavegotchi&Chainlink örnek vaka incelemesinin tamamını okuyun derim👽

Oraclelar (merkeziyetsiz oracle’lar özellikle); manipülasyona dirençli, düşük maliyetli zincir dışı hizmetler sağlayarak Polygon gibi ölçeklendirme çözümlerini desteklemede çok önemli bir rol oynar. Mesela developerlar, örneğin belirli coğrafi konumlardaki mevcut sıcaklık gibi gerçek dünya verilerinin dNFT temsillerini oluşturmak için hava durumu verilerine erişebilir.

Bunun gibi dNFT’ler için bir kullanım durumu, blok zinciri tabanlı sigortayı desteklemektir . Sigorta poliçeleri dNFT’lere dönüştürülebilir, bu da oracle’ın dış dünyadan getirdiği hava durumu verilerine dayalı özelleştirilebilir ürün sigortası poliçelerine olanak tanır. dNFT’ler, geniş coğrafyalarda gerçek zamanlı kapsama ve ödemeler etrafında artan verimliliğe izin verdikleri için, genellikle manuel işlem gecikmelerine ve öznel değerlendirmeye tabi olan geleneksel sigorta biçimlerine güçlü bir alternatiftir diyebiliriz.

Chainlink Virtual Hackathon Spring 2021'de GeoDB Geolocation Oracle ve Government Tech ödüllerini kazanan FarmerNet NFTs projesi, çiftçilerin karbon kredileriyle gelir elde etmeleri için bir blockchain pazarı oluşturmak için oracle kullandı.Bunun gibi projeler, alıcılara dNFT’ler aracılığıyla karbon azaltma ve yenilenebilir enerji kullanımı iddiaları için değişmez kanıtlara erişim sağlayabilir. Bu, yeni nesil dinamik NFT’lerin kullanımına sadece bir örnek🙏

Dinamik Hava Durumu NFT’leri Nasıl Deploy Edilir?

Polygon EVM uyumlu olduğundan, Solidity ortamımızdan Truffle, Hardhat, MetaMask ve daha fazlası gibi araçları kullanabiliriz. Örneğin bu yazıda, Polygon ile çalışmamıza izin veren akıllı bir sözleşme geliştirme çerçevesi olan Truffle’ı kullanacağız.👇

Ortam Değişkenlerini Ayarlamak İlk Görev

Öncelikle ortam değişkenlerini ayarlayacağız. Bu yüzden bir PRIVATE_KEY ve bir MATIC_RPC_URL ortam değişkeni gerekecek.

PRIVATE_KEY’niz, cüzdanınızın en temel ifadesidir ve Infura gibi node sağlayıcı hizmetlerinden bir MATIC_RPC_URL bulabilirsiniz. Ayrıca cüzdanınızda Mumbai Faucet’ten alabileceğiniz bazı testnet MATIC (mumbai) jetonlarına ihtiyacınız olacak.

(yeri gelmişken, node kavramının Blockchaine bağlı bütün cihazlara verilen ad olduğunu da unutmayalım)

Evet sırada ne var?

Bunları bir bash_profile dosyasına yerleştirin veya terminalinize aktarın, aşağıya ekliyorum hemen :

export MNEMONIC='cat dog frog....'
export RINKEBY_RPC_URL='www.infura.io/asdfadsfafdadf'

(kopyalayıp yapıştırabilirsiniz)

Ardından, dinamik NFT’yi Polygon zincirinde deploy edecek/dağıtacak aşağıdaki komutları yürüterek depoya başlayabilirsiniz:

yarn global add truffle

git clone https://github.com/kwsantiago/weather-nft

cd weather-nft

yarn

truffle migrate --network mumbai

Zincire yerleştirdiğimiz dNFT, Boston, Massachusetts’teki mevcut sıcaklığı getiren WeatherFeed.sol dosyasından getWeather() işlevinde çağrılan hava durumu verilerine dayalı olarak güncellenecektir. HEPSİ BU!! Hepinize tebrikler, ilk dNFT’nizi deploy ettiniz ve hava değiştikçe onu çalışırken görebilirsiniz!✌🤭

Peki dNFT’mizi Etherscan Üzerinde Nasıl Görüntüleriz?

Ücretsiz olarak bir Etherscan API anahtarı alabilir ve zincir üzerindeki dNFT’lerinizle etkileşime girebilirsiniz. Ardından, ETHERSCAN_API_KEY’i ortam değişkeni olarak ayarlayabilirsiniz.

Bunu aşağıdakileri yaparak doğrulayabiliriz, kopyalamanız yeterli :

yarn add truffle-plugin-verify

truffle run verify WeatherNFT --network mumbai --license MIT

truffle run verify WeatherFeed --network mumbai --license MIT

Bu, akıllı sözleşmenizi doğrulayacak ve yayınlayacaktır ve Etherscan’ın size verdiği “ReadContract” bölümüne gidebilirsiniz. Bir de ek olarak, oneclickdapp’i kullanabilir ve sadece sözleşme adresini ve ABI’yi ekleyebilirsiniz. ABI’yi build/contracts klasöründe bulabilirsiniz. ABI’nin tüm dosya olmadığını, sadece ABI yazan bölüm olduğunu unutmayın derim, ufak bir hatırlatma olarak dursun burada :)

Start Building Dynamic NFTs Today Bugünden İtibaren Dynamic NFT Oluşturmaya Başlayabilirsiniz

Polygon gibi hızlı ve uygun maliyetli platformları; akıllı sözleşmelerin gücünü genişleten merkeziyetsiz oracle ağları (DON’lar) ile birleştirdiğinizde dNFT’ler oluşturmak gerçekten kolaydır.

Polygon dApp’leri ayrıca, kanıtlanabilir şekilde adil blockchain oyunları oluşturmak için Polygon’da rastgele sayılar kullanmak veya bir sonraki devrim niteliğindeki DeFi protokolünü güçlendirmek için Polygon’da merkeziyetsiz veri akışlarını da kullanıyor. Güvenli, zengin özelliklere sahip dApp’ler oluşturmaya gelince, oracle’lar inanılmaz kilit bir rol oynar🙂

💻💻 Bu arada Blockchain ekosisteminde düzenlediğim etkinliklerden haberdar olmak için Meetup sayfama kaydolabilir, Telegram grubuma girebilir, Twitter’dan takip edebilirsiniz!⛱👻 Umarım yazılar, içerikler ve paylaşımlarım sizlere fayda sağlıyordur. Bana ulaşmaktan çekinmeyin 🔮

--

--