Selam THT ailesi. Önceki yazımda yazdığım BlockChain Teknolojisinin Temelleri adlı konumun devamı niteliğinde olacak bu yazımı okumanızı tavsiye ederim. Okumadıysanız da burada bahsedeceğim bazı kavramlara yabancı kalabilirsiniz ancak bunun yazının ve konunun bütünlüğünü bozacağını düşünmüyorum. Bu yazımda sizlerle Ethereum ağına giriş yapacağız ve Bitcoinin ne olduğunu hatırlayıp bunlar arasındaki farkları karşılaştıracağız. Keyifli okumalar dilerim.
Biliyoruz ki Bitcoin 2008 yılında Satoshi Nakamoto tarafından geliştirilen ilk merkeziyetsiz dijital para birimiydi. Amacı, banka yada herhangi bir aracı kuruluşa gerek duymadan, eşler arası (peer-to-peer) güvenli, şeffaf ve değiştirilemez para transferi sağlamaktır. Bu doğrultuda Bitcoinin en temel işlevi bir değer saklama ve transfer aracı olmaktır. Ethereum ise 2015 yılında Vitalik Buterin öncülüğünde geliştirilen bir BlockChain platformudur. Yani Ethereum, yalnızca bir kripto para birimi (ether-ETH) değil, Aynı zamanda üzerinde programlanabilir uygulamalar (akıllı kontrat) çalıştırabilen bir sistemdir. Bu tarafıyla Ethereum, Bitcoinin statik ve sınırlı işlevselliğinin ötesine geçer. Aynı zamanda bu iki sistem arasında farklar bunlarla da sınırlı kalmamakla birlikte, Bitcoinin daha güvenli diyebileceğimiz mining algoritması sebebiyle yeni bir blok oluşumu ve yapılan işlem süreleri 10-60 dakika arası sürebilirken Ethereumun Validator algoritması ile beraber 15 saniye 5 dakika arasına indirgenmiştir (Bu arada bu işlem süreleri açık kaynaklarda bu şekilde yazıyor olsa da Ethereumun bir para tranferi ortalama 15 dakikaya kadar yükselirken dışarıdan gelen alımlara karşı bu süre 12-15 saati buluyor. Bunun sebebi Ağdaki işlem sıklığından kaynaklanan oluşan darboğaz. Eğer dışarıdan yükleme yapacaksanız resmi kaynaklardan gördüğünüz sürelere güvenmeyiniz. Aksi takdirde bu sizi "Param daha gelmedi, acaba ağda kayıp mı oldu ? dolandırıldım mı ? çok geç kaldı?" sorularına yöneltebilir ve sizi rehavete sürükleyebilir.) Ayrıca Bitcoinde sadece para transferi süreçleri yönetirken Ethereumda Akıllı kontratlar ve DAppler yazabilir ve kullanabiliriz. Peki biraz daha tekniğe girelim. Akıllı kontrat tam olarak nedir ?
Akıllı kontratlar (Smart Contract), önceden tanımlanmış koşullar gerçekleştiğinde otomatik olarak çalışan kod bloklarıdır. Yani bizim önceden şart koştuğumuz bir dizi işlemler gerçekleştiğinde kontratta yazdığımız alınması gereken aksiyonlar harekete geçirilir ve uygulanır. O zamana kadar kontratta bulunan aksiyonlar pasif bir şekilde bekler. Bildiğimiz eski geleneksel kontratların dijital versiyonu olan bu yapılar, BlockChain üzerinde değiştirilemez şekilde saklanır ve aracıya gerek kalmadan bu işlemleri yürütür. Ethereum ana ağında daha çok Solidity dili akıllı kontrat yazmada öne çıkar. Vyper, Yul/Yul+ gibi diller de Ethereum ağında akıllı kontrat yazmak için kullanılabilir.
Akıllı kontratların önceden yazılan ve kendi kendine işleyen yapılar olduğunu öğrendik. Peki akıllı kontratlar Ethereum ana ağına nasıl entegre edilir? Serinin başından beri Ethereum "ana" ağı diyorum. Başka ağda mı var ? Evet bir de Ethereumun geliştiriciler için bulunan Ethereum testnet (test ağı) bulunur. Şimdi bu kavramlara geçelim.
Öncelikle akıllı kontratların nasıl çalıştığına, daha doğrusu ne ile çalıştıklarına bakalım. Akıllı kontratlar her ne kadar herhangi bir aksiyon almak için belli başlı şartlar istese de bu süreçte ve bu süreçten sonra aksiyon alırken ağda bir enerji kullanması gerekir. Buna "Gas Fee" denir. Gas, Ethereum ağında yapılan her işlemin yürütülmesi için gereken hesaplama maliyetidir. Bir işlem gerçekleştirilirken ağın kaynaklarını kullanır. Bu nedenle "Gas Fee" dediğimiz ücret, o işlemi yürüten kullanıcıdan temin edilir. Bu süreçte belli başlı standartlar bulunur. Mesela bir ether transferi için 21,000 gas standarttır. Gas ücretlerinin de kendi içlerinde birimleri vardır.
- Wei : 1.000.000.000.000.000.000 = 1 : Ether (10^18)
- Gwei : 1.000.000.000 = 1 : Ether (10^9)
- Finney : 1.000 = 1 : Ether (10^3)
Şeklinde temel bir biçimde sıralayabiliriz. Bu birimlerin Kwei(10^15), Mwei(10^12), Microether(Szabo(10^6) gibi birimleri de mevcut ancak bunlar çok sık kullanılan birimler değiller. Bu yüzden ana birimlerimiz içerisine dahil etmiyorum. Gas Fee genelde Gwei ile hesaplanır. Çünkü bu şekli daha pratik ve hassasiyet açısından en uygun birimdir. Eğer birim Wei olsaydı bu en küçük birim olacağından çok fazla sıfırlı bir tablo karşımıza çıkardı. Ether cinsinden yazılsaydı da aynı şekilde çok sıfırlı sayılarla uğraşırdık. Ancak Gwei işlem ücretlerini anlamak için ideal ücret birimidir. Aynı zamanda Metamask, Etherscan, Alchemy ve Remix gibi platformlar ve cüzdanlar bu birimi standartlaştırmıştır. Tüm bunların amacı spam işlemleri engellemek ve ağ kaynaklarının adil kullanılmasını sağlamaktır. Peki bu işlemlerin tümü ne üzerinden geçer? Ethereum ağı dediğimiz şey nedir? İşte karşınızda EVM (Ethereum Virtual Machine).
Ethereum Virtual Machine (EVM), Ethereumun akıllı kontratları çalıştırmak için kullandığı sanal makinedir. Tüm ethereum nodeları (düğümleri), aynı işlemleri aynı şekilde gerçekleştiren bu evrensel sanak makineyi çalıştırır. Böylece Ethereum ağı üzerinde deterministik (öngörülebilir) işlemler gerçekleşir. Bu sanal makinenin içerisinde iki ayrı ağ türü vardır. Ethereum Mainnet ve Testnet. Mainnet, Gerçek ethereum ağıdır. İşlemler gerçek ETH karşılığı yapılır, kalıcıdır ve yapılan işlemler geri alınamaz. Testnet ağı ise geliştiriciler için uygulamalarını gerçek ETH kullanmadan test etmelerini sağlar. Faucetler aracılığıyla ücretsiz test ETH alınabilir. Sepolia, Goerli ve holesky bu test ağları arasında en yaygın olanlarıdır. Ağları ve bunların farkını öğrendik. Peki bunları nerede yönetebiliriz? Metamaska göz atalım.
MetaMask, bir tarayıcı eklentisi şeklinde veya mobil uygulama olarak çalıştırılabilinen ethereum cüzdanıdır. Kullanıcıların Ethereum ağıyla etkileşime geçmesini, DApp'lere bağlanmasını ve token transferlerini yönetmesini sağlar(DAppleri başka bir yazımda uzunca anlatacağım). MetaMask'ı buraya tıklayarak indirebilirsiniz. İndirmenizi şiddetle tavsiye ederim. MetaMask'ı ilk indirdiğimizde bize sadece ana ağları gösterir. Peki test ağlarını nereden nasıl açarız ? nasıl ulaşırız ?
MetaMask'ı açtığımızda sağ üstteki ayarlar sekmesine tıklayıp gelişmiş seçeneklere girelim. Burada Test Ağlarını göster diyerek açabiliriz. Ayrıca test ağına geçmek için
Sol üstteki ağ işaretine tıklayıp en aşağıya indiğimizde test ağlarını görürüz ve istediğimiz test ağına geçeriz.
Bu yazımızda Ethereumu tanımış olduk ve akıllı kontratlar, Metamask üzerinde bilgi sahibi olduk. Ethereum, sadece kripto para ağı değil, yeni nesil merkeziyetsiz ineternet uygulamalarının temelini oluşturan bir altyapıdır. Akıllı kontratlar, biz geliştiricilere merkeziyetsiz çözümler sunma özgürlüğü verirken, EVM ve testnet gibi araçlar bu süreci bizler için kolaylaştırır. MetaMask ise bu dünyaya açılan kapılardan biridir.
Unutmayın, Web3 kullanıcıların bilgileri üzerinden onları istismar edip bilgilerini şirketlere satan merkeziyetli bir yapı değildir. Kullanıcıların kendilerini yönetmelerini ve özgürlüklerini benimseyen demokratik bir yapıdır. Buna sahip çıkalım ve en yakın zamanda kendi teknolojilerimizle özdeştirelim. Bir sonraki yazımızda Akıllı kontratlarımızı biraz daha açacağız ve artık Standartlara adım atacağız. İlk kodlarımızı yazmaya başlayacağız. İyi forumlar dilerim.
Devrimin amacını kavramış olanlar sürekli olarak onu koruma gücüne sahip olacaklardır.
Biliyoruz ki Bitcoin 2008 yılında Satoshi Nakamoto tarafından geliştirilen ilk merkeziyetsiz dijital para birimiydi. Amacı, banka yada herhangi bir aracı kuruluşa gerek duymadan, eşler arası (peer-to-peer) güvenli, şeffaf ve değiştirilemez para transferi sağlamaktır. Bu doğrultuda Bitcoinin en temel işlevi bir değer saklama ve transfer aracı olmaktır. Ethereum ise 2015 yılında Vitalik Buterin öncülüğünde geliştirilen bir BlockChain platformudur. Yani Ethereum, yalnızca bir kripto para birimi (ether-ETH) değil, Aynı zamanda üzerinde programlanabilir uygulamalar (akıllı kontrat) çalıştırabilen bir sistemdir. Bu tarafıyla Ethereum, Bitcoinin statik ve sınırlı işlevselliğinin ötesine geçer. Aynı zamanda bu iki sistem arasında farklar bunlarla da sınırlı kalmamakla birlikte, Bitcoinin daha güvenli diyebileceğimiz mining algoritması sebebiyle yeni bir blok oluşumu ve yapılan işlem süreleri 10-60 dakika arası sürebilirken Ethereumun Validator algoritması ile beraber 15 saniye 5 dakika arasına indirgenmiştir (Bu arada bu işlem süreleri açık kaynaklarda bu şekilde yazıyor olsa da Ethereumun bir para tranferi ortalama 15 dakikaya kadar yükselirken dışarıdan gelen alımlara karşı bu süre 12-15 saati buluyor. Bunun sebebi Ağdaki işlem sıklığından kaynaklanan oluşan darboğaz. Eğer dışarıdan yükleme yapacaksanız resmi kaynaklardan gördüğünüz sürelere güvenmeyiniz. Aksi takdirde bu sizi "Param daha gelmedi, acaba ağda kayıp mı oldu ? dolandırıldım mı ? çok geç kaldı?" sorularına yöneltebilir ve sizi rehavete sürükleyebilir.) Ayrıca Bitcoinde sadece para transferi süreçleri yönetirken Ethereumda Akıllı kontratlar ve DAppler yazabilir ve kullanabiliriz. Peki biraz daha tekniğe girelim. Akıllı kontrat tam olarak nedir ?
Akıllı kontratlar (Smart Contract), önceden tanımlanmış koşullar gerçekleştiğinde otomatik olarak çalışan kod bloklarıdır. Yani bizim önceden şart koştuğumuz bir dizi işlemler gerçekleştiğinde kontratta yazdığımız alınması gereken aksiyonlar harekete geçirilir ve uygulanır. O zamana kadar kontratta bulunan aksiyonlar pasif bir şekilde bekler. Bildiğimiz eski geleneksel kontratların dijital versiyonu olan bu yapılar, BlockChain üzerinde değiştirilemez şekilde saklanır ve aracıya gerek kalmadan bu işlemleri yürütür. Ethereum ana ağında daha çok Solidity dili akıllı kontrat yazmada öne çıkar. Vyper, Yul/Yul+ gibi diller de Ethereum ağında akıllı kontrat yazmak için kullanılabilir.
Akıllı kontratların önceden yazılan ve kendi kendine işleyen yapılar olduğunu öğrendik. Peki akıllı kontratlar Ethereum ana ağına nasıl entegre edilir? Serinin başından beri Ethereum "ana" ağı diyorum. Başka ağda mı var ? Evet bir de Ethereumun geliştiriciler için bulunan Ethereum testnet (test ağı) bulunur. Şimdi bu kavramlara geçelim.
Öncelikle akıllı kontratların nasıl çalıştığına, daha doğrusu ne ile çalıştıklarına bakalım. Akıllı kontratlar her ne kadar herhangi bir aksiyon almak için belli başlı şartlar istese de bu süreçte ve bu süreçten sonra aksiyon alırken ağda bir enerji kullanması gerekir. Buna "Gas Fee" denir. Gas, Ethereum ağında yapılan her işlemin yürütülmesi için gereken hesaplama maliyetidir. Bir işlem gerçekleştirilirken ağın kaynaklarını kullanır. Bu nedenle "Gas Fee" dediğimiz ücret, o işlemi yürüten kullanıcıdan temin edilir. Bu süreçte belli başlı standartlar bulunur. Mesela bir ether transferi için 21,000 gas standarttır. Gas ücretlerinin de kendi içlerinde birimleri vardır.
- Wei : 1.000.000.000.000.000.000 = 1 : Ether (10^18)
- Gwei : 1.000.000.000 = 1 : Ether (10^9)
- Finney : 1.000 = 1 : Ether (10^3)
Şeklinde temel bir biçimde sıralayabiliriz. Bu birimlerin Kwei(10^15), Mwei(10^12), Microether(Szabo(10^6) gibi birimleri de mevcut ancak bunlar çok sık kullanılan birimler değiller. Bu yüzden ana birimlerimiz içerisine dahil etmiyorum. Gas Fee genelde Gwei ile hesaplanır. Çünkü bu şekli daha pratik ve hassasiyet açısından en uygun birimdir. Eğer birim Wei olsaydı bu en küçük birim olacağından çok fazla sıfırlı bir tablo karşımıza çıkardı. Ether cinsinden yazılsaydı da aynı şekilde çok sıfırlı sayılarla uğraşırdık. Ancak Gwei işlem ücretlerini anlamak için ideal ücret birimidir. Aynı zamanda Metamask, Etherscan, Alchemy ve Remix gibi platformlar ve cüzdanlar bu birimi standartlaştırmıştır. Tüm bunların amacı spam işlemleri engellemek ve ağ kaynaklarının adil kullanılmasını sağlamaktır. Peki bu işlemlerin tümü ne üzerinden geçer? Ethereum ağı dediğimiz şey nedir? İşte karşınızda EVM (Ethereum Virtual Machine).
Ethereum Virtual Machine (EVM), Ethereumun akıllı kontratları çalıştırmak için kullandığı sanal makinedir. Tüm ethereum nodeları (düğümleri), aynı işlemleri aynı şekilde gerçekleştiren bu evrensel sanak makineyi çalıştırır. Böylece Ethereum ağı üzerinde deterministik (öngörülebilir) işlemler gerçekleşir. Bu sanal makinenin içerisinde iki ayrı ağ türü vardır. Ethereum Mainnet ve Testnet. Mainnet, Gerçek ethereum ağıdır. İşlemler gerçek ETH karşılığı yapılır, kalıcıdır ve yapılan işlemler geri alınamaz. Testnet ağı ise geliştiriciler için uygulamalarını gerçek ETH kullanmadan test etmelerini sağlar. Faucetler aracılığıyla ücretsiz test ETH alınabilir. Sepolia, Goerli ve holesky bu test ağları arasında en yaygın olanlarıdır. Ağları ve bunların farkını öğrendik. Peki bunları nerede yönetebiliriz? Metamaska göz atalım.
MetaMask, bir tarayıcı eklentisi şeklinde veya mobil uygulama olarak çalıştırılabilinen ethereum cüzdanıdır. Kullanıcıların Ethereum ağıyla etkileşime geçmesini, DApp'lere bağlanmasını ve token transferlerini yönetmesini sağlar(DAppleri başka bir yazımda uzunca anlatacağım). MetaMask'ı buraya tıklayarak indirebilirsiniz. İndirmenizi şiddetle tavsiye ederim. MetaMask'ı ilk indirdiğimizde bize sadece ana ağları gösterir. Peki test ağlarını nereden nasıl açarız ? nasıl ulaşırız ?
MetaMask'ı açtığımızda sağ üstteki ayarlar sekmesine tıklayıp gelişmiş seçeneklere girelim. Burada Test Ağlarını göster diyerek açabiliriz. Ayrıca test ağına geçmek için
Sol üstteki ağ işaretine tıklayıp en aşağıya indiğimizde test ağlarını görürüz ve istediğimiz test ağına geçeriz.
Bu yazımızda Ethereumu tanımış olduk ve akıllı kontratlar, Metamask üzerinde bilgi sahibi olduk. Ethereum, sadece kripto para ağı değil, yeni nesil merkeziyetsiz ineternet uygulamalarının temelini oluşturan bir altyapıdır. Akıllı kontratlar, biz geliştiricilere merkeziyetsiz çözümler sunma özgürlüğü verirken, EVM ve testnet gibi araçlar bu süreci bizler için kolaylaştırır. MetaMask ise bu dünyaya açılan kapılardan biridir.
Unutmayın, Web3 kullanıcıların bilgileri üzerinden onları istismar edip bilgilerini şirketlere satan merkeziyetli bir yapı değildir. Kullanıcıların kendilerini yönetmelerini ve özgürlüklerini benimseyen demokratik bir yapıdır. Buna sahip çıkalım ve en yakın zamanda kendi teknolojilerimizle özdeştirelim. Bir sonraki yazımızda Akıllı kontratlarımızı biraz daha açacağız ve artık Standartlara adım atacağız. İlk kodlarımızı yazmaya başlayacağız. İyi forumlar dilerim.


