Node Hakkında Herşey

7UPf...N9VJ
17 Jan 2024
45

Bu yazı sevgili @tobbykitty tarafından kaleme alınmıştır.

Bu yazı blokzincirlerin belki de en önemli bileşeni olan Node’lar hakkındaki birçok şeyi açıklamaktadır. Yazıdaki bütün bilgiler kripto ve blokzincir literatüründe tüm otörlerce onay görmüş olup, yer yer şahsımın da yorumlamalarını içermektedir. Bu yorumlamalar ve sınıflamalar farklı şekilde yapılabilir, ancak hem genel yazıyı anlaşılır kılmak adına hem de evrensel kripto literatürüne paralel yazılmış olup temel bilgiler ile çelişmemektedir.
Tobby Kitty

Yazıya başlamadan, Tobby Kitty olarak Twitter’dan defalarca “Node kurun” ısrarımı burada da yinelemek isterim. Bu yazıyı okuduktan sonra neden bu konuda bu kadar ısrarcı olduğumu anlayacak, node’ların önemine ve faydalarına bizzat şahit olarak öğreneceksiniz.
Node Kurun 🙂

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. Yani 4 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. zk Teknolojisi ve zkSNARK nedir diyenleri daha önce yazdığım yazıya alalım.

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.

Get fast shipping, movies & more with Amazon Prime

Start free trial

Enjoy this blog? Subscribe to kdrlse

1 Comment