Scale-Free Ağlar: CryptoKitties

Onur Arda Bodur
8 min readSep 12, 2021

Özellikle blockchain temelli yaklaşımların popülerleşmesi ile kullanımı artan dApp yani merkezi olmayan uygulamalar hayatlarımızda yer tutmaya başlamıştır. Bu noktada Ethereum ağı bünyesinde bulunan yazılımcılara dApp geliştirme konusunda bir sürü imkan sağlamaktadır. Bu yazımda bahsi geçen yazılımların en popülerlik kazanmış olanlarından biri olan CryptoKitties uygulamasından ve yükselişinden çöküşüne kadar rastladığımız davranışlarından söz ediyor olacağım.

CryptoKitties

Kitties, lots of Kitties

CryptoKitties NFT temelli bir dApp olmakla beraber bir zamanların en popüler uygulamalarından biri olma statüsündedir. Bu uygulama temelinde kullanıcılarına Ethereum karşılığında ortak bir pazar üzerinden sanal paraya denk gelen imitasyon kediler alma ve satma imkanı sunar. Bu kediler çiftleştirilebilir ve sonucunda ortaya atalarının gen temelleri doğrultusunda farklı fiziksel ve bünyesel özellikler taşıyan yeni kedilerin doğması sağlanabilir. Bu sanal ekosistemin temel amacı farklı niteliklere sahip kedilerin nitelikleri ve arz-talep ilişkisi üzerine farklı fiyatlara satılabilmesidir. Oyuncular gerçek para değeri taşıyan (Ethereum) ile al-sat-üret işlemleri yaparak kar yapmayı hedefler.

Bir miktar açıklama sonrası biraz da detaylara girelim. Bu noktada bilinmesi gereken ilk şey kedilerin aslında damızlık birer küçükbaş hayvan gibi kullanılabildiği ve aynı gerçek hayatta olduğu gibi doğum yapma sürecinin bir limiti olduğudur. Kediler belirli nitelikler taşır ve bu nitelikler özel bir gen kopyalama işlemi ile yavrularına aktarılır. Güzel renkli bir kedi çifti ile güzel nitelikli bir kedi yaratmanız mümkündür. İşte kendi kendini dengeleyen bu serbest piyasanın fiyat normlarını bu faktör belirler. Peki ama bu kadar basit mi?

Asla.

CryptoKitties uygulaması üzerinden yaptığınız her işlem aslında Ethereum ile ödeme yapmanızı gerektiren bir grup sürece tabidir. Fark edeceğiniz üzere Ethereum son derece yüksek maliyetli bir kripto paradır. Her ne kadar çok kazanç sağlama imkanı olan bir kedi familyasına ev sahipliği yapsanız da aynı zamanda paranızı asla satılmayacak bir blockchain ürününede yatırıyor olabilirsiniz. Peki ne yapmalı ?

Şu noktada hiçbir şey çünkü bu uygulama son günlerini saymakla beraber eski popülerliğinide kaybetmiş bulunmaktadır. Bu yazımda sizlere bunun nedenlerinden bahsederken aslında yeni yeni popülerleşmeye başlayan bir alan olan Network Science hakkında da bazı temel bilgiler veriyor olacağım.

Talih kaçar felaket kovalar. -Kazım Taşkent

CryptoKitties kullanıcılarını, son birkaç sene içerisinde ciddi oranlarda kaybetmiş ve ekosistemi bünyesinde kalan kullanıcılarını, yüksek meblağlara denk gelen bir sürü kedi ile baş başa bırakmıştır. Daha önceden ifade ettiğim gibi milyonlarca dolar değerinde bulunan sanal kedi tokenleri şuan kendilerini almayı bekleyen insanları bekler vaziyettedir.

Peki CryptoKitties neden bu hallere geldi ?

  • Zengin ve fakir kullanıcılar arasında giderek açılan geniş boşluk.
  • Resepsiyon (Yüksek gas maliyetleri)

İlk parametre aslında bizlere çok fazla şey anlatıyor. Bu parametre hakkında Albert-Barabasi bizlere çok faydalı bir bilgi kazandırmıştır. Albert-Barabasi yazmış oldukları makalelerinde, bireylerin bağlantı kurma ihtimallerinin mevcut bağlantı sayıları arttıkça arttığını gözlemledikleri bazı rastgele ağlar olduğunu savunmuşlardır. Bahsi geçen ağlara Scale-Free Ağlar denir ve içeriğinde bulunan kullanıcıların farklı kullanıcılar ile iletişime geçme durumu kullanıcıların bağlantı sayıları ile ilişkilidir. Bu ifade havada kalmaya müsait ondan ötürü daha detaylı bir anlatım ile sizlere bunu açıklamak isterim.

Scale-Free Ağlar

Scale-Free ağlar derece dediğimiz bir bireyin bağlantı sayısının dağılımının power distribution dediğimiz dağılımı gösterdiği ağlardır. Bu ağlarda görülen genel davranış daha çok bağlantıya sahip node yani ağın bireylerinin ilerleyen süreçte daha çok bağlantı yapma şansına sahip olduğudur. Bu gözlem aslında zengin daha zenginleşir gibi de yorumlanabilir.

Albert-Barabasi makalelerinde Albert-Barabasi modeli denilen bir ağ modeli ortaya koyarlar. Bu ağ modelinde büyüme prensibi ve benzeri davranışlar belirli şekillere sahiptir. Bu noktada Albert-Barabasi modelinin detayında boğmak istemiyorum sizleri, basitçe böyle bir model olduğu ve davranış biçimini bilmeniz kafidir.

İyide ne alaka ?

Parçaları birleştirmeden önce basit açıklamalar yapmak istedim fakat şimdi bu iki parçayı bir araya getiriyor olacağım.

Scale-Free Ağlar ve CryptoKitties

Daha önceden de bahsettiğim üzere CryptoKitties uygulamasının çöküşünün sebeplerinden biride aslında zengin ve fakir arasında giderek artan uçurumdur. Ağın içerisinde zengin kullanıcılar ağı domine etmeye ve satımı daha kolay, talebi daha yüksek tokenleri almaya imkan sağlamış iken daha az kaynağa sahip kullanıcılar ağın içerisinde barınmakta zorlanmıştır. Aynı koşullar altında zengin kullanıcılar al-sat imkanı olarak düşük kaynaklı kullanıcılardan daha avantajlı oldukları için de gene ağı domine etme imkanı bulmuşlar ve düşük kaynaklı kullanıcıların ağı terk etmesine neden olmuşlardır.

Peki zengin daha zenginleşir sizlere bir şey hatırlattı mı ?

Evet aslında bu her ne kadar ana etmen sayılabilecek kadar delil içermesede inkar edilmesi güç bir tanıdır. Gerçekten de ağın içerisinde bazı kullanıcılar diğerlerine kıyasla daha fazla al-sat-üret işlemi yapmışlardır ve aynı kullanıcılar ilerleyen zaman dilimlerinde bu davranışları, daha düşük bağlantılı kullanıcılardan daha fazla yapma imkanı yakalamışlardır. İşte bu noktada aslında CryptoKitties aslında kendisi bir ağ oluşturmaktadır.

Uygulamanın prensipleri dahilinde kullanıcılar birbirleri ile al-sat-üret işlemleri ile bağlantı kurarken aynı zamanda bu işlemler sayesinde Ethereum ağı bünyesinde alt bir ağın oluşmasını sağlamışlardır. Bu yazının ortaya attığı fikir, bahsi geçen alt ağın aslında bir BA modeli yani Barabasi-Albert modeli olduğu yönündedir. Hızlıca ve üstün körü yapılan bir incelemede gerçekten de ağ içerisinde daha çok bağlantısı olan kullanıcıların ilerleyen süreç içerisinde daha çok bağlantı yaptığı görülmüştür.

Daha detaylı bir anlatım için sizlere yaptığımız araştırmanın detaylarından biraz daha bahsetmek isterim.

Veri Seti ve Ağın Yaratılışı

Veri seti için CryptoKitties ağında yapılan her bir işlemin tabular formatta verisine erişmemiz gerekti. Bunun için Google tarafından bizlere sağlanan BigQuery açık kaynaklı veri setlerine geniş kapsamlı bir SQL sorgusu attık. Bu sayede elimizde ağı oluşturmak için gereken transfer dataları geçmiş oldu.

Sorgu için CryptoKitties içerisinde al-sat işlemlerinin doğasını anlamamız gerekti. CryptoKitties ağı içerisinde al-sat işlemi yaptığınızda tokeninizi (kedinizi) bir akıllı kontrat adresine göndermeniz gerekiyor. Bilmeyenler için akıllı kontratlar hakkında bir yazıya burdan ulaşabilirsiniz. Bu adres üzerinden yaptığımız sorgular ile gönderici ve alıcı adresleri bu adrese denk gelen veri durumlarını filtrelemiş olduk.

Dipnot: CryptoKitties çok veri satırı içeren bir transfer verisine sahip ondan ötürü işlemi belirli bir boyutta limitlememiz gerekti.

Sonrasında ise bu veriyi al-sat işlemini aracı adresi ortadan kaldırıp iki kullanıcıyı bağlayacak şekilde yeniden yapılandırdık. Bu noktada 22.günden ileriye gidemezdik çünkü çok yüksek miktarlarda transfer sayısına erişmiş olmakla beraber bu kadar geniş bir veriyi kullanıcak donanımdan uzak durumdaydık.

Bu kadar detay ve ayrıntı yeter derseniz sizlere neler ile karşılaştığımızı sunmak isterim.

22.güne ulaştığımızda

  • 32812 adet node
  • 263680 adet bağlantı

içeren bir ağ verimiz bulunmaktaydı.

Bu noktadan sonra ise yapmamız gereken bu ağın davranışlarının Barabasi-Albert modeli ile uyuşup uyuşmadığını araştırmaktı.

Growth

Ağ içerisinde elbette bazı varsayımlarda bulunduk. Bu noktada elimizde bir Multi-Digraph yani iki tarafında birbirine yönelebildiği ve birden fazla kez bağlanabildiği bir ağ yapısı vardı. Gephi ile çalışırken ne yazık ki böyle ağları modelleme imkanımız yoktu ondan ötürü bir sefer yapılan ilişki bile bizim için yeterliydi.

Ağın büyümesini altta bulunan görselden inceleyebilirsiniz.

Growth

BA modelinde öncelikle ağın büyüme gösterdiğini kanıtlamamız gerekiyordu. Büyüme bu noktada ağa yeni katılımcıların oluşu olarak yorumlanabilir. Aşağıda bulunan grafikte daha detaylı gözlemleyebilirsiniz.

Sizlerinde görebileceğiniz üzere bu ağ büyüme göstermektedir.

Derece Dağılımı (Degree Disribution)

Devam sürecinde BA modelinde preferential-attachment yani yüksek bağlantılı olan ile bağlantı yapma isteğini gözlemlemeyi bekliyorduk. Bu tanım neticesinde bizlere derece dağılım grafiği olarak bir power law özelliği sunmalıydı. Bilmeyenler için power law doğada NLP ve başka alanlarda denk geldiğimiz özel bir grafik şeklidir.(basitçe)

Albert-Barabasi olduğu bilinen bir ağın derece dağılımı
CryptoKitties ağının derece dağılımı

Bu noktada olan şey aslında yüksek bağlantılı olan kullanıcıların daha çok bağlantı çekişinden ötürü yukarda gözlemlediğimiz grafiğin oluşmasıdır. Aynı zamanda gözlemlenilen bir diğer unsur ise bağlantı sayısı gerçekten yüksek olan kullanıcı sayısının düşük miktarda oluşuydu. Bu da bizleri çok bağlantılı kullancıların ağı domine ettiği kanısına götürdü. Çok bağlantılı kullanıcılar az sayıda olup bütün bağlantıları topladıkları gibi aslında al-sat işlemini en yoğun yapan kişiler olmuşlardı. Yaptığımız varsayımlardan bir diğeri ise al-sat işlemlerinin kar hedefine ulaşmasıydı şayet her transferin getirisini ayrıca hesaplamak çok zor olacağı için kullanıcıların al-sat işlemlerinden karlı ayrıldıkları varsayımı ile ilerledik.

Bu noktalar elbette yoruma baki ve hatalı varsayımlar içeriyor gibi gelebilir fakat elde edilen sonuçlar tezimize olan inancı kuvvetlendiriyor.

H-Index

Bir diğer ilginç bulgumuz ise H-index olarak bilinen değerin hem BA modeli hemde bizim ağımız üzerinde benzer davranış sergilemesiydi.

H-index, BA modelleri üzerinde çalışan başka bir yayında geçiyordu ve bizlerde test etmek istedik.

k derece sayısı iken fonksiyonun loglog form davranışına bakılması öneriliyordu
Albert-Barabasi olduğu bilinen bir ağın H-index dağılımı
CryptoKitties ağının H-index dağılımı

Perkolasyon

BA modeli içerisinde perkolasyon eşiğinin 0'a yakın çıkması beklenilir. Burda asıl ifade edilmek istenilen ağın içerisinden rastgele bir node kopardığınızda ağın diğer üyelerinin birbirleri olan bağlantısı kopmamalıdır. Zaten ağ içerisinde çoğu node çok az bağlantı yaptığı için bu üyeler kopma durumunda ağa zarar vermez fakat aynı zamanda bazı çok büyük bağlantılı bireylerden birinin kopması bile bütün ağın dağılması ile sonuçlanabilir.

Bizler kendi araştırmamız sonucunda düşük miktarda çok yüksek bağlantı sayılı bireyler gözlemlerken bu koşulada uyan bir mevcut ağa sahip olduğumuzu görmüş olduk.

Sonuç

Elimizde bulunan bulgular doğrultusunda CryptoKitties ağının bir Barabasi-Albert modeli olduğunu düşünmekteyiz. Aynı bilgiler doğrultusunda ağın içerisinde bazı kullanıcıların diğer kullanıcılardan daha çok bağlantı topladığı ve bu sebep ile daha çok kar elde edebildiği varsayımını yapıyoruz. Sonucunda ise bu kazanç durumu nedeniyle imkanları yüksek ve düşük kullanıcılar arasında geniş bir uçurum oluştuğunu gözlemliyoruz. Her şey göz önünde bulundurulduğu takdir de farklı yayınlarda da bahsi geçen nedenlerden birinin ağın yapısı niteliğiyle yaşandığı kanısındayız.

Bütün bu faktörler harici bu yazı CryptoKitties ağının asıl çöküş nedeninin oluşan uçurum olduğunu savunmamaktadır. Bu yazı sadece bahsi geçen faktörlerden birinin nedenlerini açıklamaktadır. Çoğu farklı yazıda da gözlemleyebileceğiniz üzere artan gas maliyetleri kullanıcıların sistemden çıkış yapmalarına asıl neden olan faktör olarak görülür.

Umarım keyif almışsınızdır ve fikirlerimizi sizlere sağlıklı bir şekilde aktarabilmişizdir.

Referanslar

--

--