1. Node Nedir? NODE KURUN !

Ha1X...CS5H
17 Feb 2024
76

Yazının içeriği ve incelenecek başlıklar.


1.Node nedir?
2.Node çeşitleri nedir?
3.Node kurmanın önemi nedir ve neden gereklidir?
4.Gelecekte bizi bekleyen güncellemelerde Nodeların yeri nedir?
5.Son sözlerim.

1. Node Nedir?


Banka hesabınızdaki paranın miktarını, telefonunuzdan baktığınız para transferlerinin bilgilerini, kime ne kadar para göndermişsiniz veya kimden ne kadar para almışsınızın bilgisini, yani bu transferlere veya miktarlara ait verileri (Dataları) bankanın veritabanından (Database) alırsınız.
Elinizdeki cihaz, bu verilerin (transferlerin) bilgilerini cihazınıza indirmiyor. Bankadaki verileri size yansıtıyor. Dolayısı ile bankanın bu veri tabanına “güveniyorsunuz.” Bankadaki bu veri tabanında bir değişiklik olması durumunda, örneğin 10.000 TL yerine bir sıfır eksik yazılacak bir hack veya yanlışlık durumunda artık 1.000 TL’niz var demektir. Bankayı arayıp bunun düzeltilmesini istersiniz ve banka güvenilirliğini sarsmamak adına bu düzeltmeyi kendi veri tabanında yapar ve bakiyeniz düzelmiş olur.
Burada siz bankaya güvenirsiniz ve bundan dolayı herkes güvenli bir banka arar. Çünkü kimse parasını çöpe atmak istemez. Bu örnekte, bankanın güvenliği bu “veritabanının” korunması ile ölçülür.


Buradaki veritabanı, bankaya aittir. Belki bu veritabanının banka tarafından, saldırılara veya hatalara karşı çeşitli yedekleri vardır ancak bu veritabının değiştirilmesi/değiştirilmemesi bankaya aittir. Siz bu veritabanında değişiklik yapamazsınız. Çünkü yetki tek bir güvenilir kişide (bankada) toplanmıştır. Bu güven sarsılırsa, örneğin banka bu veritabanını koruyamazsa veya kendisi değiştirirse siz de bu banka ile bir daha iş yapmazsınız, banka müşteri ve para kaybeder. Dolayısı ile bankanın işlerini sürdürüp, kâr edebilmesi için bu veritabanını koruması gerekir.
Yukarıdaki banka örneği ve üstteki görsel “Centralized” yani merkezi bir yapıya aittir. Aslında temelde DLT dediğimiz ve en meşhurlarının blokzincirler olduğu bu teknoloji bankadaki veritabanının birçok kişiye dağıtılması fikrinden başka bir şey değildir.

Peki merkeziyetsiz bir sistem için ne yapacağız? Cevap aslında çok basit, bankaya ait bu veritabanını herkesin indirebileceği, herkesin takip edebileceği ve herkesin bu veritabanı olabileceğini temin edersek, merkeziyetsiz bir sistem yapmış oluruz.

İşte 2008’de hayatımıza giren Bitcoin’in mantığı tamamen herkesin veritabanı olabildiği merkeziyetsiz bir sisteme dayanmaktadır. İşte herkesin veritabanı olabildiği bu sistemde, bu veritabanlarının kaydını tutan kişilere/cihazlara NODE denir. NODE kelimesi zaman zaman düğüm olarak da kullanılmaktadır. DÜĞÜM ile NODE aynı şeydir. Düğüm kelimesi Node’un Türkçeleştirilmiş halidir.


Bu çok önemli bir bilgidir. Bu cümlelerden iki şeyi öğrenmeliyiz:
1.Merkeziyetsiz bir sistemin aslında ne kadar merkeziyetsiz olduğu bu veri tabanlarının ne kadar çok olduğu ile alakalıdır. Ne kadar çok veritabanı var ise, o sistem o kadar merkeziyetsizdir. (Bu veritabanlarından sadece bir adet olması durumunda bu sistemin klasik bir banka veritabanından farkı yok demektir.)
2.Bitcoin veya diğer blokzincir teknolojileri (burayı daha sonra açacağız) bizim veritabanı olmamıza imkan tanıyor. Bankadaki sistemde veritabanı sadece banka iken, Bitcoin gibi sistemlerde kimsenin iznine gerek duymadan, istediğimiz zaman veritabanı olabiliyoruz.

Bu iki maddeyi şimdi kendi kripto terminolojimize entegre edelim. Birinci maddede, node sayısının fazlalığı ve bu nodeların kurulabilirliğinin kolaylığı o blokzincirin merkeziyetsizliği ile doğrudan alakalıdır. EĞER BİR BLOKZİNCİRE RAHATLIKLA NODE KURULAMIYORSA VEYAHUT GEÇEN ZAMAN İÇERİSİNDE NODE KURULDUKTAN SONRA BU NODE’UN AÇIK TUTULMASI ZORLAŞIYORSA O BLOKZİNCİR MERKEZİYETSİZLİKTEN TAVİZ VERİYOR DEMEKTİR. (Burayı daha sonra açacağız.) İkinci maddede ise, kimsenin iznine gerek duyulmaması o blokzincirin ne kadar Permissionless olması ile alakalıdır. Evet belki blokzincire node kurmak son derece kolay olabilir, ancak node kurma gereksinimlerinin sağlanmasına karşın o blokzincire node kurulmak için izin isteniyorsa o blokzincirde de ciddi bir merkeziyetsizlik zaafiyeti vardır. Diğer bir ifade ile, sadece 100 kişinin node kurmasına izin veren blokzincirde node kurmak ne kadar kolay olursa olsun 100 kişiden daha fazla bu sisteme katılmayacağı için bütün bilgileri sadece bu 100 kişi kontrol edecektir.



KRİPTODA BİLMENİZ GEREKEN BELKİ DE EN KRİTİK VE EN ÖNEMLİ CÜMLE GELİYOR, LÜTFEN BURAYA DİKKAT EDELİM:

İdeal bir blokzincirde NODE KURMAK SON DERECE KOLAY VE HIZLI OLMALIDIR, AYNI ZAMANDA İSTEYEN HERKES HİÇBİR İZİN ALMADAN İSTEDİĞİ GİBİ NODE KURABİLMELİDİR.

UNUTMAYIN BİR BLOKZİNCİRDE NODE KURMAK NE KADAR ZAHMETLİ İSE O BLOKZİNCİR O KADAR MERKEZİDİR. 

Buraya kadar şunu öğrendik; Node’lar bankadaki bütün işlem trafiğini, hesaplardaki miktarları vs. gibi bilgileri tutan veritabanlarının blokzincirlerdeki karşılığıdır.
Peki node’un başka görevleri nelerdir?
Hemen diğer çok önemli cümle gelsin: BİR BLOKZİNCİRİ KULLANABİLMEK, O BLOKZİNCİRDE İŞLEM YAPABİLMEK, NFT MİNTLEMEK, TOKEN GÖNDERMEK VB. İŞLEMLER İÇİN NODE KURMAK GEREKLİ VE ŞARTTIR.
Yukarıdaki görsele tekrar dikkat edelim, Bitcoin node’ları kendi aralarında iletişim kuruyorlar, transferlerini kendi aralarında yapıyorlar ve hepsi bu transfer datalarını, bakiyelerini indirip saklıyor.
Nasıl ya? Ben cüzdan uygulamamdan bunları yapıyorum, yoksa ben node’mu kurdum dediğinizi duyar gibiyim. Hayır, eğer node kurmuyorsanız, sadece cüzdanınız varsa bu cüzdan gidip bir Bitcoin node’una bağlanıyor, BU NODE’A GÜVENİYOR, al bu işlemimi Bitcoin ağına gönder diyor. Görsele dikkat edelim:


Bitcoin veyahut diğer blokzincirleri bilgisayar programı gibi düşünebilirsiniz. Bilgisayarınızda nasıl bir oyun oynamak, bir uygulamada işlem yapmak için mevcut programları bilgisayarınıza indirip kurmak gerekiyorsa Bitcoin veya diğer blokzincirler için de durum aynıdır. Eğer bu programı kurmuyor, sadece cüzdan uygulamasından erişiyorsanız, bu uygulama gidip bir node’a güveniyor ve istediğiniz işlemleri bu node üzerinden yapıyor demektir. (Buranın önemine değineceğim.)

Node nedir başlığını toparlayalım, node yani Türkçeleştirilmiş hali ile düğüm; blokzincirlerdeki transfer bilgilerinin, cüzdanlardaki varlıkların, kısacası blokzincir ağı içerisindeki her türlü hareketin kayıt edildiği (farklı node tiplerinde farklılıklara değineceğiz) merkezi sistemlerdeki tek veritabanı yerine herkesin bilgisayarına kurabileceği ve katılabileceği veri içeren, blokzincirleri kullanmamıza yarayan veyahut cüzdanlarımızı bağlayıp blokzincirde işlem yapmamıza yarayan bileşenlerdir.

2. Node çeşitleri nedir?

Şimdi buraya kadar olan kısım tamamen literatür bilgisiydi. Node’ların ne olduğunu anlattık. Bu kısımda node’ları bizzat ben sınıflandırdım. Hatalı değil, ancak başka biri başka bir şekilde sınıflandırabilir. Ancak benim sınıflama yöntemim de blokzincir ile ilgilenen kişilerin birçoğunun kabul ettiği bir sınıflama biçimi olduğundan ben de sizin bu şekilde öğrenmenizi tavsiye ediyorum.

2.1. Arşiv (Archive) Node’lar.

Arşiv Node, adı üzerinde devasa bir arşivdir. Bir sistemde ARŞİV, her türlü bilginin mevcut olduğu yerdir. Arşiv Node’lar da blokzincir nazarında farklı değildir. Arşiv Node, O BLOKZİNCİRDEKİ HER ŞEYİ İÇİNDE BULUNDURAN NODE’DUR.
Dedik ki, node’lar birer veritabanıdır. Arşiv Node’lar blokzincirin ilk bloğundan (Genesis Blok) en son bloğa kadar (bloklar gelmeye devam etmektedir ve sonsuza kadar gelecektir.) blokzincir üzerindeki her şeyi indiren ve içinde bulunduran node’dur.
Örneğin; 27 Mayıs 2017 tarihinde, saat 18:23’te kimin hangi transferi yaptığını, nereye ne attığını; sevgilinize mintlediğiniz NFT’lerin zamanını ve tam olarak bütün verilerini görmek için ARŞİV NODE kurmak gerekir.


Örneğin Ethereum Blokzinciri 0. bloktan günümüze kadar olan bütün olayların, yapılan bütün transferlerin, NFT’lerin kısacası üzerindeki HER ŞEYİN toplam büyüklüğü 10-11 Terabyte’tır ve bu işlem yapıldıkça giderek artacaktır. Eğer bugün Ethereum Blokzincirinde 5 sene önce tam da bu anda kim ne yapmış görmek istiyorsanız; ARŞİV NODE kurmalısınız.
Bu bilgilere EtherScan’den ulaşıyorsunuz değil mi? Evet, çünkü EtherScan aslında bir Arşiv node’dur. Blokzincir üzerindeki bütün hareketleri takip etmemize yarayan “Explorer” dediğimiz siteler, (EtherScan, PolygonScan, BlockChair vb.) gibi sitelerin hepsi ARŞİV NODE çalıştıran ve bu dataları kendi web-sitelerinde sizinle paylaşan yerlerdir.
EtherScan Arşiv Node’unun offline olduğunu varsayalım; yani EtherScan’deki adamlar bu node’un fişini çeksinler (unutmayın bunlar da birer bilgisayar) artık EtherScan yeni gelen blokları göstermeyecektir.

2.2. Full (Non-Consensus) Node’lar.

Şimdi Full Node konusuna girmeden, hemen yukarıdaki Arşiv Node’la, Full Node arasındaki farka bir parantez açmak gerekir. Bugün Bitcoin Blokzinciri ile ilgilenmiş bir kişiye Arşiv Node ile Full Node arasındaki fark nedir diye soracak olursanız, ikisi de aynı diyecektir. Bitcoin Full Node, tıpkı yukarıda anlattığım Arşiv Node gibidir. Topluluklar arası terminolojik fark vardır. “Full” kelimesi aslında gerekli olan dataların indirilmesi anlamına da gelmektedir. Bu farkın nedenlerini de detaylandıralım:
Full Node’u anlamak için öncelikle iki adet terminolojiyi çok iyi bilmek gerekir.

  • Blockchain History
  • Blockchain State

Blockchain History, adı üzerinde o blokzincirin bütün tarihi demektir. Yukarıdaki arşiv node’u hatırlayın. Arşiv node her şeyi ve bütün blockzincir tarihini indiriyordu.
Blockchain State ise aslında yeni bir terminolojidir. “State” demek O ANLIK blokzincirdeki cüzdanların, akıllı kontratların ve güvenlik için bilimum gerekli bilgilerin bulunduğu kısımdır.
Fark burada; FULL NODE’LAR GEREKLİ KISIM OLAN BLOCKCHAIN STATE’İNİ TUTARKEN, BLOKZİNCİR TARİHİNİ TUTMAZLAR. Daha da yalın bir dil ile, üst başlıkta blokzinciri kullanmak için node kurmak gereklidir dediğimiz için, blokzinciri kullanmak için arşiv node’larda olduğu gibi bütün blokzinciri indirmeye gerek yoktur. Yani4 sene önce, saat 12.35’teki transferin bilinmesinin gereği yoktur. “Full Node” blokzincirdeki gereksiz tarih bilgisini kırpıp gerekli olan kısımları tutan node’dur.


Ethereum “Full Node” yaklaşık 725 GB’tır. Yani Ethereum’da full node çalıştırabilmek için 725 GB’lık veri indirmek gerekir. Bu veri miktarı da aynı arşiv node’lar gibi bloklar çıktıkça artacaktır. Full node’ların bu kadar az veri tutmasının sebebi “Prunning” denilen mekanizmadır. Türkçesi “budamak” olarak da bilinen bu sistem ile node kurmak için arşiv node’un tuttuğu gereksiz bilgiler “budanır”.

2.3. Validator/Miner (Consensus) Node’lar.

Bu başlığa geçmeden, şunu mutlaka söylemem gerekir. Bu node’lara “Validator” node demeyi ben uygun bulmuyorum. Aslında Arşiv Node’lar da Full Node’lar da “Validator”dür. Üstteki anlattığım her iki node’da gelen blokların doğruluğunu onaylarlar. (Bunların ne demek olduğunu, Node’ların Önemi ve Gerekliliği başlığında belirteceğim.)
Başlıktan da anlaşılacağı üzere, bugün Bitcoin’deki madenciler veyahut ileride PoS sistem ile çalışacak olan Ethereum validatorleri de NODE’dur. Madenci olabilmek için de, validator olabilmek için de NODE kurmak gerekir. Tekrarlıyorum, bir blokzincir ile etkileşime girmek istiyorsanız, NODE KURMAK ZORUNDASINIZ.
Ben bu node tiplerine “Consensus Node” demeyi çok daha doğru buluyorum. Consensus node’lar adı üzerinde o blokzincirde konsensus’a katılırlar. “Konsensus’a katılmaktan” kasıt, BU NODELAR BLOK ÜRETİRLER. Detaylara geleceğiz. Ancak şimdilik bunu bilmeniz yeterlidir.


Bir blokzincir ister PoW ile ister PoS ile blok üretiyor olsun, blok üretimi için bu consensus node’lara ihtiyaç duyar. Buradaki diğer bir olay ise BLOKZİNCİRLERDE BLOK ÜRETİMİ İÇİN BELLİ BİR İŞ GEREKİR. Bundan dolayı consensus node’lar PoW ise; elektrik ve CPU gücü, PoS ise; belli bir miktarda coin gerektirirler. “Validator” olarak bildiğiniz blok üreten kişiler işte bu “Consensus Node”lardır. Bu node’lar da tıpkı full node’lar gibi blokzincirin state’ini indirmek durumundadır, blok üretimi arşiv node’lar gibi bütün blokzincirin tarihini indirmek zorunda değildir.

2.4. Light (SPV) Node’lar.

Light node’lar çok önemlidir. Hatta o kadar önemlidir ki bir sonraki başlıkta bu node’ların ne kadar kritik bir öneme sahip olduğunu hatta gelecekte bu node’ların blokzincir güvenliğinin merkezine oturacağını anlatacağım. Öncelikle Satoshi Nakamoto’dan light node’ları dinleyelim;


Satoshi diyor ki, blokzincirde yapılan transferleri ve ödemeleri “verify” etmenin tek yolu full node çalıştırmak olmayabilir. (Yukarıdaki bilgileri hatırlayın, dedim ki aslında full node’lar da validasyon yaparlar, bu konuya geleceğiz node’ları sınıflandırdıktan sonra devam edeceğiz.) Bir kişi blokların sadece başlıklarını indirip, bu zinciri takip edebilir. Eğer bir full node yanlışlık görürse bu hatayı zinciri takip eden bu kişiye o bloğu indirtebilir ve doğruluğunu teyit ettirebilir. İşte bu kişi “Light Node’dur”. Satoshi’nin deyimi ile SPV adı verilen node’lardır. Burada önemli bir noktaya değinelim; Light node’lar yukarıdan anlaşılacağı gibi full node’lara güvenir. Full node’ları takip ederler.
Aslında “Light” kelimesi buradan geliyor; Light node’lar arşiv node’lar gibi bütün blokzinciri indirmezler, full node’lar gibi blokzincir’in state’ini de indirmezler. Consensus node’ları gibi blok üretiminde de yer almazlar. Light node’lar sadece blokların çok minik bir kısmını indirip full node’lardan gelen bilgileri takip ederler. Dolayısı ile çok küçük miktarda veri indirerek light node kurabilirsiniz. Günümüzde bazı cüzdan uygulamaları light node’dur.(Light nodeların önemine geleceğiz.) Bu kadar bilmek şimdilik yeterlidir.

2.5. Stateless (Statelessness) Node’lar.

Full node’lar ile arşiv node’ları anlatırken aralarındaki farkın Blockchain History ile Blockhain State farkı olduğu söylemiştim. Arşiv node’lar blokzincir tarihinin hepsini sıfırıncı bloktan günümüze kadar olan bloklardaki HER VERİYİ indirirken, full node’lar sadece “blokları doğrulamanın” gerektiği Blokzincir State’ini indirirler. Bunun sebebi de aslında basittir. Full node’lar daha az veri indirdiğinden arşiv node’lara göre çok daha hızlı kurulmaktadır.
Stateless node’lar aslında hayatımıza yeni girmiş 2017-2018 yıllarında Vitalik Buterin’in blokzincir dünyasına tanıttığı bir konsepttir. Adından da anlaşılacağı üzere STATELESS node’lar blokzincirlerde blok onaylamak için gerekli Blokzincirin State’ini de indirmezler.
Stateless node’lar günümüz blokzincir teknolojisinde yoktur. İleride karşımıza çıkacaklardır. Bu node’lar da tıpkı full node’lar gibi blokların doğruluğunu onaylamaktadır. Bu onaylama sistemi blokzincirin state’ini indirmeden nasıl oluyor sorusu akıllara gelebilir. Stateless node’lar, Blokzincirin State’ini zkSNARK’lar aracılığı ile onaylamaktadır. zkSNARK teknolojisi mevcut Blokzincir State’ini küçük kanıtlar haline getirip bunları birer “Witness Data” haline getirip zk Kanıtlar ile stateless node’lara sunarlar. Neden böyle bir şey yapılıyor, anlatacağız.

Tobby Kitty olarak ben blokzincir ekosistemindeki Nodeları 5’e ayırdım. Farklı sistematikler ile farklı yaklaşımlar olabilir. Örneğin FULL NODE’ları kendi içlerinde Arşiv, Prunned olarak ayıran yaklaşımlar da mevcuttur. Tekrar ediyorum “bu benim yaklaşımımdır”. Ancak ben bu şekilde daha kolay anlaşıldığını düşünüyorum.

Görseldeki Yeşil ile boyalı node’lar blokzincirde tam güvenlik sağlarlar, çünkü gelen blokların doğruluğunu onaylamada yetkileri vardır. Consensus node’ların bunlar arasındaki tek farkı, BLOK ÜRETEBİLME YETENEKLERİNİN OLMASIDIR, ki bunlara Validator veya Miner Node denir. (Stateless nodelar şu an olmadığı için kesik çizgili) Light node’lar ise sarı renktedir, çünkü tek başlarına blokların doğruluğunu onaylayamazlar, eğer bloklarda yanlışlık söz konusu ise diğer node’lar light node’ları uyararak bunların blokları indirmesini sağlayabilirler. Bu konuya geleceğiz.

3. Node kurmanın önemi nedir ve neden gereklidir?


Evet birçok node’u gördük ve öğrendik. Şimdi geldik en civcivli bölüme… NODE’UN ÖNEMİ NEDİR? VE NEDEN GEREKLİDİR? HATTA NEDEN KURALIM, NODE KURMANIN BİZE FAYDASI NE?
Gelin size güzel bir hikaye anlatayım…
Bir Pazar sabahı kalkıyorsunuz. Dün akşam çılgınlar gibi eğlenmişsiniz ve eve gelir gelmez uyumuşsunuz. Telefonda coinlerinizin fiyatını dahi kontrol etmemişsiniz. Twitter’a girme fırsatınız da olmamış.
Tobby Kitty takipçisi olarak Ethereum’a güvenmişsiniz ve kefen paranızı dahi ETH’e yatırmışsınız. Ancak siz de dahil hiçbiriniz Ethereum’da node kurmamış. Pazar sabahı yahu şu ETH fiyatına bir bakayım diyorsunuz ve 99.9%’luk bir çöküş ile karşı karşıyasınız. Neler oluyor, Tobby Kitty kesin bir açıklama yapmıştır, muhtemelen bir hata var diyorsunuz…
Tobby Kitty Cumartesi günü saat tam 03.50’te Ethereum üzerindeki bütün node’ların (Arşiv, Validator/Miner ve Non-Consensus node’larının) 95%’inin çeşitli üç kağıtlar ile ortak olarak hareket edip, ağda 500 milyon ETH bastığını, bu basılan ETH’lerin Uniswap’tan tutun da bütün DeFi protokollerinde hızla USDT, USDC, DAI yapıldığını, mevcut paraların nakite döndürüldüğünü veyahut diğer kripto paralara swaplandığını yazmış, 5%’lik masum kısmın, masum zinciri devam ettirse de bunun yeterli olmadığını, koordineli ve Ethereum’u bitirmek için çok ciddi bir operasyonun döndüğünü yazmış.

Ethereum zinciri split yemiş; (95%’lik kısım kafasına göre kurallarını değiştirdiği bir zincir yaratmış) hatta Etherscan (Arşiv Node), Ethermine (Miner/Validator Consensus Node), Vitalik Buterin’in Masternode’u (Full Node) bile bu koordineli atağı yapmış. THE END.
Senin burada yapabileceğin hiçbir şey yok. Çünkü yukarıdaki kişilere güvenmiştin, bu adamlar da bir gece ansızın BLOKZİNCİR ÜZERİNDEKİ BU VERİTABANLARINDA DEĞİŞİKLİK YAPMIŞ, HAVADAN PARA BASMIŞ VE ELİNDEKİ HER ŞEYİ SENDEN ALMIŞLAR. Peki herkesin node kurduğu bir Ethereum hayal edersek bu durumda ne olacaktı?
Diyelim ki, hepimiz node kurmuşuz; Tobby Kitty’de arşiv node’u var, sen ise full node kurmuşsun, hatta BlockLand Discord grubunda dürüst miner’lar kendi mining pool’unu oluşturmuşlar. Ancak sektörün en büyüğü Ethermine (Miner Node) ve Etherscan (Arşiv Node) bu atağın aynısını yapacak olsun. Bu durumda Ethermine’ın ürettiği havadan basılan 500 milyon adet ETH, Etherscan’de görülse dahi, bizim node’larımız bunları kabul etmeyecek, bunları Invalid State (Hatırlayın Blokchain State anlatmıştım) olarak değerlendirecek ve tamamen duymazdan gelecekti.


Etherscan’de 500 milyon adet ETH görünse de, Tobby Kitty hemen kendi arşiv node’unu sizinle paylaşacak, doğru ve dürüst olan zincire hiçbir şey olmadan devam edecekti. Ethermine madencileri boşuna elektrik yakacaktı, (PoS’te Slashing mekanizması devreye girecekti ve saldıran herkes bütün ETH’lerini kaybedeceklerdi) zincirdeki kuralları değiştiremeyeceklerdi, diğer madenciler hemen başka maden havuzlarına (başka Miner Nodelara) gidecekti. Etherscan’i de kullanmayacaktık. Yani herkes node kurarsa, bu kişiler azınlıkta kalacak bu atağı yapamayacaklardı.

Etherscan ve Ethermine… You are fucked by Ethereum Community.


Yazının en başına dönelim… Bankaların tek başına yönettiği veritabanından bahsettik. Blokzincirler de aynen böyledir, eğer node kuran kişi sayısı az ise, bu kişiler blokzincir üzerinde ciddi değişiklikler yapabilirler, blokzincirin bütün olayı bu veritabanlarının herkesin indirebilmesi prensibine dayanmaktadır. Yani bir blokzincir bu veritabanlarını herkesin indirip kurabildiği kadarı ile güvenlidir. Bitcoin veya Ethereum’un gücü buradan gelmektedir. Çünkü bu node’ları herkes kurabilmektedir. (Diğer zincirler ile olan farkına değineceğiz.) DON’T TRUST, VERIFY mottosu ise buradan gelmektedir. Blokzincirdeki verilerin doğruluğunu teyit etmek sadece ve sadece node kurmakla mümkün olmaktadır.


Geldik diğer bir önemli noktaya..
MADENCİLERİN VEYA STAKING YAPANLARIN 51% ATAK YAPMASI DURUMU… Madencilerin çoğunluğu elde etmesi durumunda zincirde değişiklik yapabileceğinin iddiası, hatta daha da yanlış bilinen örneğin PoS sistemlerde validatorlerin çoğunluğunun zinciri yönettiği safsatasına.
Öğrendik, cevaplayalım… MINER VE VALIDATOR’LER DE BİRER NODE DEĞİL MİYDİ? BUNLAR KONSENSUS’A KATILAN VE BLOK ÜRETEN NODE’LARDI DEĞİL Mİ? Bu adamların üç kağıtçı olması durumunda diğer node’ların eli armut toplamıyor. BU BLOKLARI YOKSAYIYOR.
Bitcoin madencileri sistemin 51%’ini ele geçirdi diyelim. (Yani konsensus node’ların 51%’i üç kağıtçı) bu durumda sisteme iki şey yapabilirler:
1.Blok basımını durdururlar.
2.Bastıkları bloklarda double-spending yapabilirler.

Birinci durumda; blok basımı durursa, blokzincir duruyor. Blokzincirdeki kuralları değiştiremiyorlar. İkinci durumda bu madenci node’larının double-spending yapması durumunda DİĞER NON-CONSENSUS FULL NODE’LAR BU BLOKLARI GÖRMEZDEN GELECEKTİR, BÖYLELİKLE MADENCİLER VEYA VALIDATORLER BLOKZİNCİRİ BOZAMAYACAKLARDIR. Aşağıdaki görsel Bitcoin Core’un codebase’inden alınmıştır. “Any transaction validation failure in ConnectBlock is a block consensus failure” satırı diyor ki, bu bloklardaki hata bir KONSENSUS hatasıdır. Yani blokzinciri değiştiremezler.


İşte bu bilgi ÇOK AMA ÇOK ÖNEMLİDİR. Yani Miner olmasanız da, Validator olmasanız da sistemi koruyorsunuz. Validator veya Miner dediğimiz node’lar evet blok ödüllerinden para kazanmaktadır, bunlar için örneğin Ethereum’da 32 ETH gerekmektedir veya Bitcoin’de ASIC cihaz gerektirmektedir. Ancak Non-Consensus olan Full Node’lar SİSTEMİ KORURLAR VE MERKEZİYETSİZLİK İÇİN SON DERECE ÖNEMLİDİR. HATTA ÖNEMLİ DEĞİLDİR, ŞARTTIR. PoS bir sistemde üç kağıt basan consensus yani validator node’lar Non-Consensus full node’lar tarafından fark edilecek ve cezalandırma mekanizmasını çalıştıracaklardır.

TOBBY DUR ORADA! BITCOIN’DE TAPROOT GÜNCELLEMESİ MADENCİLER İLE OLMUŞTU! BİZİ KANDIRAMAZSIN!
Bir blokzincir nasıl forklanır konusuna girmek istemiyorum, ancak Bitcoin özelinde konuşmamız gerekir. Bitcoin blokzinciri iki şekilde forklanabilir. (Ethereum da böyle)
1.User-Activated Soft Fork (UASF)
2.Miner-Activated Soft Fork (MASF)
UASF: Sistemdeki tüm node’ların güncellemesi ile gerçekleşen forklamadır. Daha anlaşılır kılacak olursak, bu veritabanları kendilerini günceller, çeşitli kuralları değiştirir ve zincir belirlenen bir bloktan sonra yeni kuralları takip eder. Arşiv, Consensus ve Non-Consensus node’lar güncelleme yapar.
MASF: Burada CONSENSUS NODE’LARIN sistemi değiştirmesi söz konusudur, ki nitekim doğrudur. Miner’lar sistemi değiştirebilirler ancak bunun için minimum 90%’lık bir kota gereklidir. Bu kota geçildikten belli bir süre sonra (protokole göre değişmekle birlikte) diğer node’lar tarafından itiraz gelmez ise sistem değişir. Buradaki MASF eğer kötü niyetli olursa, sistemdeki diğer node’lar bir UASF ile kötü madencilerin kazdığı zincirden ayrılıp ayrı bir fork yapabilirler.


Yani NODE’LAR NE DİYORSA BLOKZİNCİR DE ONU DİYECEKTİR. BİR BLOKZİNCİRİ POW, POS, POA, CASPER, TENDERMINT vs. KORUMAZ. BİR BLOKZİNCİRİ SEN KORURSUN. O BLOKZİNCİRİ SEVEN ADAM KORUR. AMA KORUMAK İÇİN NODE KURMAN GEREKİR.


Anladık kardeşim, node kurmak çok önemli. ANLADIK YETER. Merkeziyetsizlik falan filan. Yahu iyi tamam da, beni methetme kardeşim bana para ver. Ben node kurunca ne olacak? Bu işten kazancım nedir, node kurmanın sisteme olan faydasını anladım, peki BANA OLAN FAYDASI nedir?

Geldik node’ların bize olan faydasına… Öncelikle consensus node’ların faydasına. Bildiğiniz gibi Staking ödülü denilen ödüller işte bu consensus node’ların blok üretiminden veya transferlerin onayından elde ettiği ödüllerdir.
Bitcoin’de consensus node kurmak istiyorsanız, miner cihazlarınız olması gerekir. Çünkü PoW ile çalışır ve blok üretimi için cihazlar gerekir. Bu cihazları temin ettikten sonra ister kendi node’unuzu kurarsınız, ki buna Solo madencilik denir, hem blokları valide edersiniz hem de yeni blok eklemeye çalışırsınız. Yalnız “solo” dediğimiz bu sistemde blok bulmak şansa bağlı olduğu için genelde madenciler blok bulma şanslarını artırmak adına maden havuzlarına girmektedir. Bu maden havuzlarının mantığı çok basittir. Ortada tek bir node var, herkes cihazını bu node’a bağlıyor. Bu kadar. Bu node blok buldukça kim ne kadar cihaz bağlamışsa bulduğu ödülleri cihaz sahiplerine dağıtıyor.

PoS sistemlerde de fark yoktur. Ethereum PoS’de PoW cihazı yerine belli bir miktarda ETH gerekir. Bu ETH sayısı 32’dir. 32 ETH’iniz varsa evinizde node kurup bu 32 ETH’i node’unuza koyacaksınız ve node’unuz artık blok üretmeye başlayacak. (Casper FFG + LMD GHOST’ta sadece üretim yok, blokların onaylanması gibi bir durum da söz konusu) böylelikle ETH kazanacaksınız.
Şöyle bir soru gelebilir, ben Solana’da node kurmadım ama SOL’um var ve Staking yapıyorum bu nasıl oluyor, bu mantık ise yukarıdaki maden havuzu gibidir. SOL’larınızı node çalıştıran bir adama veriyorsunuz, bu adam ise blok buldukça size pay veriyor. Olay bu. Node çalıştırmıyorsunuz, yine node çalıştıran bir adama güveniyorsunuz. Bu sisteme delegasyon sistemi denir, bundan dolayı Ethereum PoS’de delegasayon sistemi yoktur. Ethereum herkesin node kurmasını teşvik etmektedir. Eğer 32 ETH’den az ETH’iniz varsa bunları 3. parti DeFi uygulamaları sizden alıp başkaları ile birleştirip 32 ETH’e tamamlayıp node kurmaktadır. Ama NODE KURMAK İSTİYORUM diyorsanız, 32 ETH’e ihtiyacınız var.

Kardeşim benim param yok, validator node kuramıyorum, Non-Consensus node kursam sisteme merkeziyetsizlik dışında, kendime ne faydam olacak?
Cevap: ÇOK FAZLA FAYDASI VAR. TEK TEK YAZALIM PEŞİNE DE HEPSİNİ AÇALIM

  • Varlıkların çok daha güvende olacaktır.
  • Müthiş gizlilik sağlamaktadır.
  • Sensörlemelere karşı kalkan görevi görür.
  • Eğlenceli ve vefa borcun var.

Varlıklarının Çok Daha Güvende Olması Durumu.

Nasıl ya, ben Ledger kullanıyorum varlıklarım güvende değil mi? Hayır öyle değil. Kullandığınız her cüzdan FULL NODE kurdurmuyorsa, cüzdan uygulamasının kendine ait bir Non-Consensus full node’a bağlıdır. Dolayısı ile siz bu node’a güvenirsiniz.

Metamask: Infuraya bağlı. Electrum Wallet: ElectrumX Server’ına bağlı. Sen Tobby’e 1 ETH yolla diyip imza attığın zaman, Metamask bunu Infuraya iletiyor. Ya Metamask şerefsiz ise? Tobby’e değil de, tuvalet terliğini ıslatan şerefsiz adamın cüzdanına 1 ETH’yi yollarsa? Her imzaladığın şeyi okuyor musun? Sanmıyorum. Ama full node kurup işlemlerini buradan halledersen, süper güvendesin.

Müthiş Gizlilik Sağlaması.



Metamask’ından bir transfer yaparken sen Infura’nın node’una bağlanıyorsun ve Infura senin IP numarandan tut, her şeyini biliyor. Nerede kaldı gizlilik? IP numaranı bildiği gibi hangi cüzdanlara erişimin var bunları da biliyor. Ekstra VPN kullanman gerekecek, bu VPN servislerine güveniyor musun? Node’un yoksa node kuran adama her türlü siber bilgini veriyorsun. Node kurarsan buna gerek kalmayacak.

Sensörlemelere Karşı Kalkan Görevi.



Yukarıda Ethereum ağı üzerindeki en meşhur Node sahibi kurumlar/kişiler var. Örneğin Infura, Alchemy, FlashBots gibi. Peki, Metamask cüzdanının direkt Infuraya bağlı geldiğini söylemiştim. Infura fişi çekerse ne olacak? Cevap: Hiçbir şey yapamayacaksın.
Ciddi bir ayı sezonu döneminde ETH’lerin cüzdanında duruyor ve satmak istiyorsun, Infura çöktü, ne yapacaksın? Infura’nın fişi tekrar takmasını beklemekten başka çaren yok. Ya da başka bir node’a bağlanacaksın. Çöküşlerin olduğu zamanları herkes bilir, büyük yerler çökmeye başlayınca diğerleri de bunu takip ediyor. Ama eğer node’un olursa, Metamask cüzdanını kendi node’una bağlarsın ve işlemlerini yaparsın. Ayrıca, bu tip çöküşlerde insanların node’u olmadığı için ağ trafiği ciddi anlamda düşüyor ve Gas ucuz oluyor. Ucuza işlem yapıyorsun. Al sana direkt parasal getiri.
Diğer bir şey daha Latency durumu. Senin Türkiye’deki bilgisayarın, örneğin Amerika’daki servis sağlayıcısına oradan Infura node’una bağlanıyor. Burada bir zaman kaybı var. Kendi evinde kendi node’un olsa işlemlerin çok daha hızlı gerçekleşecektir.

Eğlenceli! Peki Vefa Borcun?

Node kurmak son derece eğlenceli ve neredeyse masrafsız. (Masrafsız kısmına geleceğiz) O blokzincirde yapılan her türlü transfer senin node’un tarafından onaylanıyor ve node’un bu transferleri kaydediyor. O blokzincir üzerindeki her türlü aktiviteyi görüyorsun. Kurması son derece kolay ve zahmetsiz. Neden kurmuyorsun? Aşağıdaki NiceNode tek tık ile teknolojiden uzak olan insanlara bile node kurdurabiliyor. Eğer Hacker gibi hissetmek istiyorsan CLI ile de kurabilirsin

Peki vefa borcun ne olacak? Satoshi Nakamoto Bitcoin’i yapıp bize emanet etti. Hepimize. Node kuruldukça ve nodelar dürüst oldukça sonsuza kadar gidecek bu sisteme hiç borçlu olduğunu hissetmiyor musun? veyahut devletlerin müdahalelerinden korkup, merkeziyetsizlik isteyip neden elini taşın altına koymuyorsun? Herkesin node kurabildiği bir sistemi kim nasıl kapatabilir? Mümkün değil. Ancak 2-3 kişi node kursa o sistem rahatlıkla kapanır.

Tamam, Tobby yeter. İkna oldum… Söz node kurcam…

Umarım öyle olur…


4. Gelecekte bizi bekleyen güncellemelerde node’ların yeri nedir?

Bu zamana kadar node’ları öğrendik, çeşitlerini öğrendik, sisteme ve bize olan katkılarını öğrendik. Hemen hemen her şeyi hallettik. Tekrar teknolojiye dönmemiz gerekiyor ki size biraz daha blokzincir bilgisi vereyim.

BLOKZİNCİRLER HEM MERKEZİYETSİZ HEM GÜVENLİ HEM ÖLÇEKLENEBİLİR OLAMAZLAR.
BLOKZİNCİRLER HEM MERKEZİYETSİZ HEM GÜVENLİ HEM ÖLÇEKLENEBİLİR OLAMAZLAR.
BLOKZİNCİRLER HEM MERKEZİYETSİZ HEM GÜVENLİ HEM ÖLÇEKLENEBİLİR OLAMAZLAR.
BLOKZİNCİRLER HEM MERKEZİYETSİZ HEM GÜVENLİ HEM ÖLÇEKLENEBİLİR OLAMAZLAR.

Şu meşhur trilemma. Hepiniz biliyorsunuz.

Peki neden böyle bir şey diyoruz, gelin üstteki node bilgilerimizle bunu anlatalım hem de ileride neler yapabiliriz bunları tartışalım.
Ne dedik, yazının en başına dön. Blokzincirler dağıtık veritabanlarıdır. Bir blokzincirin hızlı olabilmesi, daha doğrusu çok fazla işlemi kaldırabilmesi için DAHA FAZLA İŞLEM KAYDININ NODE’LARA DAHA ÇOK DAĞILMASI GEREKİR. Bak bu cümle kritik. Yani bir blokzincir daha çok işlem yaparsa BU NODE’LAR DOLUYOR.
NODE’LAR DOLUYOR!
Ethereum arşiv node’u 10 TB’ı geçti. Giderek artacak. Full node’lar da aynı şekilde büyüyor. Prune’luyoruz, ancak yetmiyor. Giderek artıyorlar. 3 yıl önce sıfırdan Bitcoin node’u kuran adam ile bugün Bitcoin node’u kuran adam aynı sürede node kurmuyor. Giderek node kurmak daha da zorlaşıyor. Blokzincirler giderek merkezileşiyor. Bizim bu işi ÇÖZMEMİZ ŞART.


Ethereum’u forklayıp blokları motor gibi hızlı basmakla, büyük blok basmak ile övünen projeler var, siz de bu shitcoin’leri alıp diyorsunuz ki bak Ethereum’un yapamadığını yaptı, transferlerim son derece hızlı ve ucuz. Geleceğin teknolojisi bu.

Bu shitcoinler bu hızla blok basmaya devam ettikçe NODE KURAMAYACAĞIZ VE NODE KURAN BİRKAÇ KİŞİ KALACAK. ETHEREUM NEDEN BÜYÜK BLOK BASIP İŞLEM ÜCRETLERİNİ AŞAĞIYA ÇEKMİYOR? İŞTE BU BÜYÜYEN NODE’LAR YÜZÜNDEN. UCUZ İŞLEM YAPARSAK NODE KURULMUYOR, SİSTEM MERKZİLEŞİYOR ÇÜNKÜ NODE KURMA İŞİNİ SADECE BİRKAÇ KİŞİ YAPABİLİYOR.

Hemen örnek verelim
Bitcoin full node kurmak için gerekli donanım:
-500 GB’lık SSD veya HDD (1 TB alsan uzun yıllar yeter, unutmayın büyüyorlar.)
-50 Kbps internet hızı. (10 dakikada 1 MB blok indirecek bu kadar)
-2 GB RAM (Bu blokları bilgisayara yazmak için.)
Özetle; Raspberry Pi bilgisayar ve minik bir internet bağlantısı yetiyor.
Şimdi Solana’ya bakalım:
-256 GB RAM
-Minimum 2.8 GHz, 16 veya 32 Çekirdek CPU
-1 Gbps internet hızı
-2 TB SSD (HDD olmuyor bloklar çok hızlı)


Kısacası müthiş konsensus mekanizmaları bulmak ile, devasa bloklar basmak ile iyi bir teknoloji olmuyor. Shitcoin oluyorsun. Şimdi bizim bu işi çözmemiz lazım. ÇÖZMEMİZ ŞART. GELELİM FASULYENİN FAYDALARINA.

Yukarıda node’lar için çizdiğim ağaca tekrar bakalım:


Şimdi blokzincir büyüdükçe, Prune’lasak da Full Node’lar, Arşiv Node’lar, Consensus Node’lar büyüyor… Peki bizim bu blokzinciri ONAYLAMAMIZ İÇİN başka yollar bulmamız lazım: Statelessness ile gelecek Stateless Node’larla, Light Node’lar.
Light node’lar çok önemli, önce bunlarla başlayalım. Dedik ki light node’lar blokların çok küçük bir kısmını indiriyorlar ve onaylama işlemine katılmıyorlar, tek numaraları full node’lar bir çarpıklık görürse bunu light node’lara söylüyor ve light node’lar da çarpıklık olan bloğu indirip kontrol ediyor. Peki, BU LIGHT NODE’LARA KONTROL YETENEĞİ KATAMAZ MIYIZ?

DATA AVAILABILITY SAMPLING SOHBETE KATILDI.
Eğer biz bu light node’lara bir şekilde bloklara onay verme yeteneği katarsak, insanlar full node indirmek zorunda kalmayacak, cep telefonundan bile “Light Node” kurup blokzincir üzerinde blok onaylamış olacaklar.
DAS’i anlatmak için oturup en az bu yazı kadar bir yazı daha yazmam gerekiyor, ama sistemi en kısa şekilde özetleyelim.
Full node’ların tuttuğu bu DATA’LARI (Hatırlayın bunlar DATABASE idi) MİNİK PARÇALARA AYIRALIM (SAMPLING) bu parçaları light node’lar doğrulasın, eğer bir yanlışlık varsa light node’lar bu yanlışlığı cezalandırsınlar. Evet kabaca bu. Ancak o kadar önemli bir durum ki, böylelikle blokzinciri doğrulamak için full node’lara ihtiyaç kalmayacak, light node’lar blokzinciri doğrulayabilecek. Herkes rahatlıkla cep telefonuna hatta evdeki tost makinene dahi bu “Client”leri kurabileceği için blokzincir EFSANE MERKEZİYETSİZLEŞECEK.

İŞTE BUDUR.

DAS son derece karışık bir konudur, blokzincir ekosistemine girmesi belki de yıllar alacak. Ancak ÖLÇEKLENMEDEKİ SON NOKTADIR. Ethereum DAS’i DankSharding ile ve bu minik Dataları KZG Commitment’lar ile (zkSNARK) çözmeye çalışmaktadır. Bunun dışında Celestia’da DAS ile uğraşan projeler arasındadır, bu DAS ise Fraud Proof’lar ile olmaktadır. Bu kadar yeterli, konu dağılmasın.
Diğer mevzu ise Statelessness Node’lar. Statelessness node’lar yaklaşık 1-3 MB indirip bütün Ethereum blokzincirini validate etmeye çalışan henüz kağıt üzerinde olan node tipleridir. Statelessness efsane bir güncellemedir. Ethereum’un ölçeklenmesinde DAS ile birlikte en önemli dönüm noktalarından birini oluşturmaktadır. Bu node’lar State’i tutmuyorlar yukarıda anlattığım gibi. Bu node’ların tek handikapı hiçbir şey tutmadıkları için çok fazla “Witness Data” indirmek için full node’lardan daha fazla internet bağlantısına gereksinim duymasından kaynaklanıyor.

Peki Statelessness ve Light Client’i anladım. Yahu ben arşiv node kurmak istiyorum veya full node çok büyürse gelecek yıllarda artık bu node’ları kuramayacak mıyız?
Arşiv node, bütün BLOKZİNCİR TARİHİNİ, her şeyi indirmek zorunda. İndireceksiniz, kaçarı yok. Ancak, indirilecek dataları küçültebiliriz. Yani bir nevi mevcut dataları daha küçük yer kaplayan sistemler ile değiştirebiliriz. İşte bu güncellemeye de Verkle Tree şeması diyoruz. Çok uzatmayalım. Blokzincirdeki transferler Merkle adı verilen bir veri ağacında saklanmaktadır. Bu ağaç yapılarını Verkle Tree adı verilen bir ağaç yapısı ile değiştirdiğimizde yerden ciddi anlamda tasarruf yapmış oluyoruz. Şimdi özellikle Ethereum için mevcut güncellemelerinin tümünü baz alarak bir hesaplama yaparsak gelecekteki node’ların indireceği data miktarını ve internet bağlantısı gerekliliğini sıralayalım:
-Light Node’lar (Light Clientler): 5 KB data inecek. Blok başına 1 KB internet gerekiyor, Güvenlik; Full node’a yakın ancak Sample güvenliği için light node’ların en az yarısı doğru olmalı.
-Stateless Node’lar: 1 MB’a yakın data inecek. Blok başına 500 KB internet gerekiyor. Güvenlik; Full node kadar.
-Full Node’lar (Conensus/Non-Consensus): 50 GB’a yakın data inecek. Blok başına 100 KB internet gerekiyor. Güvenlik; Tam.
-Arşiv Node’lar: 3 TB’a yakın data inecek. Blok başına 100 KB internet gerekiyor. Güvenlik; Tam.

Peki başka neler yapılabilir?
Mina Protocol sohbete katıldı. Mina Protocol diyor ki, anladık ne güncelleme gelirse gelsin, bu blokzincirlerin büyümesi devam ediyor. Blokzincirin STATE’ini (Hatırlayın State’i yukarıda yazmıştım) zkSNARK’larsak boyutunu çok küçültmüş oluruz ve full node kurmak için çok az bir yer gereksinimi doğar. Böylelikle herkes rahatlıkla full node kurabilir. İşte Mina Blokzincirinin State’inin zkSNARK’lanması yaklaşık 22 kB’tır. Bu State’in indirilmesi full node kurmak için yeterlidir.
Bakın FULL NODE dedim. Tobby ben Mina Protocol üzerinde arşiv bir node kurmak istiyorum diyorsan; İNDİR KÖLE. 22 kB değil. 22 kB sadece FULL NODE için geçerli.

5. Son sözlerim

Benim hayalimdeki blokzincirler Ethereum’da kurulduğu gibi 15000 küsür node’dan ibaret blokzincirler değildir. Eğer gerçek bir blokzincir merkeziyetsizliğinden bahsediyorsak bu komedi bir sayıdır.

Benim hayalim, herkesin telefonundan node kurabildiği, herkesin kendi cüzdanının kendi node’u ile çalıştırıldığı, kripto paralar ile kahve alırken bunu telefonuna kurulu Light Client’i onaylayabildiği bir ütopyadır. Ne kadar node; o kadar merkeziyetsizlik, o kadar gerçek blokzincir ve “Satoshi Nakamoto” ruhudur. Bunlar birer hayal olsa da gelecekte yaşanacağına inanıyorum. Bu hayalde, HİÇ KİMSE, HİÇBİR DEVLET, HİÇBİR KURUM VEYA KURULUŞ bu teknolojiyi yasaklayamayacak, sensörleyemeyecek ve bu teknolojiye boyun eğip adapte olacaktır.
Ancak DAS’i, Statelessness’ı beklememeliyiz. Bu teknolojilerin ne zaman pratiğe döküleceği hala daha soru işaretidir. O yüzden NODE KURMALIYIZ VE FULL NODE KURMALIYIZ. En azından Bitcoin veya Ethereum gibi son derece merkeziyetsiz zincirlerde, maliyetsiz full node’ları kurmak bizim için, kripto severler için ilk hedef olmalıdır.
Yazıyı burada noktalarken, bir sonraki blog yazımda FULL NODE kurmayı, FULL NODE kurulumu için detayları, FULL NODE performanslarını karşılaştıracağım ek bir yazı yazacağım. Böylelikle insanların ilgisini çekip, herkese merkeziyetsizliği kelimede değil, realitede göstermiş oluruz.

Saygılarımla Tobby Kitty







Get fast shipping, movies & more with Amazon Prime

Start free trial

Enjoy this blog? Subscribe to Mashiyevn

8 Comments