BlockchainMutfak

Ethereum Nedir?

Öncelikle Ethereum aynı Bitcoin gibi bir blockchain (blok zincir) teknolojisi. Birçok yönüyle Bitcoin’e benziyor ancak biraz daha fazlası. Bu yüzden Ethereum ile ilgili konuşmaya başlamadan önce belki de Bitcoin’den bahsettiğim yazıma bakmanız doğru olacaktır.

Bu sistemin de en büyük getirisi ortada merkezi bir aracı yok. Yani devletler bu sistemi engelleyemiyor ve denetleyemiyor. Ancak kimsenin denetlemesine gerek kalmadan bu sistem transparanlığı ve anonimliği sayesinde güvene ihtiyaç duymadan sorunsuz bir şekilde çalışıyor. Bu gibi uygulamalara ‘Trustless’ uygulamalar da deniyor. Yani güvene ihtiyaç duymadan işlemlerini gerçekleştirebiliyorsun.

Ethereum da bu sistemin neredeyse tüm özelliklerini barındırıyor ve üzerine yeni bir çok şey ekliyor. Belki de en önemli farkı sunduğu ‘Akıllı Kontratlar’.

Nedir yahu bu Ethereum?

Ethereum, açık kaynak kodlu ve herkesin kullanımına açık blockchain teknolojisini kullanan ‘merkezi olmayan’ (Decentralized) bir uygulama çalıştırma platformu. İlk defa 2013 yılında Vitalik Buterin adında bir yazılımcı tarafından ortaya atılıyor ve 2015 yılında canlı bir sistem olarak hayata geçiyor. Şu anda hala daha Ethereum komünitesi tarafından geliştirilmeye ve desteklenmeye devam ediyor. Ethereum sisteminin para birimi ‘Ether’ (ETH). Şu anda değeri 326 dolar civarında ancak çok değişken seyrediyor, dolayısıyla yatırım amaçlı bakıldığında epey riskli. Ancak benim ilgilendiğim kısmı bu değil.

Bu sistemin Bitcoin’den en büyük farkı az önce söylediğim gibi ‘Smart Contract’ yani akıllı kontratlar. Bu platform EVM (Ethereum Virtual Machine) denilen bir VM sayesinde Solidity adındaki dili kullanarak yazdığınız uygulamaları dağıtık bir şekilde çalıştırmanıza olanak sağlıyor. Yani karşılıklı bir işlem gerçekleştirmek istediğinizde Bitcoin’de olduğu gibi basit işlemler yapabilmenize ek olarak bir de bu işlemleri belirli kurallarla programlamaniza olanak sağlıyor.

Diyelim ki birisine internet üzerinden ürün satışı yapmak istiyorsunuz. Şu anda ebay gibi siteler alıcı ve satıcı arasında aracı olarak bir güvence sağlıyorlar. Yani ürün gelmeden parayı, para gelmeden de ürünü değiş-tokuş yapmıyorsunuz. Eğer alıcı belli bir süre içerisinde ürünün ulaşmadığını bildirmezse para satıcının hesabına geçiyor. Ancak aradaki aracı da bu işlemden belli bir miktar komisyon alıyor. İşte bu gibi işlemleri Ethereum üzerinde Solidity dilini kullanarak bir akıllı kontrata kodlayıp bu işlemlerin bir aracı ile değil bu ağ üzerinde yapılmasını sağlayabilir ve aradaki aracıyı (middle man) ortadan kaldırıp aldığı komisyondan çok daha ucuza halledebilirdiniz. Tabi bunun gibi bir çok kullanım alanını örneklemek mümkün.

Peki nasıl çalışıyor bu sistem?

Bunu konuşmadan önce basit bir iki temel bilgiyi vermek gerekiyor.

Ethereum ağı içerisinde durum yani İngilizce’si ile ‘state’ hesaplarla (Account) saklanıyor. Her bir hesap 20-byte’lık bir adrese sahip ve işlemler yani transaction’lar bu 20-byte’lık adresler arasında gerçekleşiyor. Bir hesap nesnesinin bir kaç özelliği var;

  • İşlemlerin sadece bir kere gerçekleşmesini sağlamak için tutulan bir sayaç değeri; nonce.
  • Hesaptaki Ether miktarı
  • Eğer mevcutsa, kontrata ait çalıştırılabilir kod parçası.
  • Hesaba ait saklanan veri.

Yukarıdaki alanlardan eğer sadece Ether miktarı mevcutsa bu hesap bir dijital cüzdan gibi davranırken, buna bir kod parçası eklediğinizde bir akıllı kontrata dönüşüyor. Bu kontratlar da ağa ‘deploy’ ediliyorlar. Kontratların kodları daha önce de bahsettiğim gibi, Solidity denilen bir dil ile yazılıyor. Bu yazıda buna odaklanmayacağım ancak bu dil ile ilgili bilgi almak istiyorsanız daha önceden kaydettiğim Solidity 101 video’sunu izleyebilirsiniz. Yakında daha ileri seviye video’lar da Codefiction Youtube kanalından yayınlanacak.

Ethereum ağı içerisindeki kontratlar sistem içerisinde sürekli yaşayan nesneler. Yani siz bir kontrat oluşturup bunu bir program gibi istediğiniz zaman üzerine tanımladığınız fonksiyonlarını çalıştırabilirsiniz. Mesela Solidity 101 video’sunda anlattığım gibi başkalarıyla paylaşabileceğiniz ortak bir banka hesabı yaratıp istediğiniz zaman buraya güvenilir bir şekilde Ether aktarabilir ya da çekebilirsiniz. Yapacağınız her işlem bir başkası tarafından çalıştırılacağı için, çalıştırılacak kodun adım sayısına bağlı olarak, belli bir miktar ücret de ödemeniz gerekecektir. Yani eğer çalıştırılacak fonksiyon çok fazla adımdan oluşuyorsa ödemeniz gereken ücret de buna bağlı olarak artacaktır. Demem o ki, eğer optimize bir algoritma çalıştırıyorsanız daha az maliyetiniz olacaktır. (Asymptotic Computational Complexity)

Bir adrese para göndermek ya da bir adresteki kontratın bir fonksiyonunu çağırarak bir işlem gerçekleştirmek gibi operasyonlara ‘transaction’ deniliyor. Anlam kaybolmasından korktuğum için ne yazık ki bundan sonra hep İngilizce terimleri kullanmaya başlayacağım. Transaction’lar Ethereum ağında bir adresten tetiklenen imzalanmış veri paketleri, yani mesajlar. Bu mesajlar içerilerinde şunları barındırıyorlar;

  • Mesajın alıcısı,
  • Göndereni tanımlayan bir dijital imza,
  • Alıcıya iletilecek Ether miktarı,
  • Hesaplarda olduğu gibi, opsiyonel bir veri saklama alanı,
  • EVM tarafından hesaplanan olası maksimum işlem adımına bağlı olarak hesaplanan STARTGAS değeri. Bu değer ilgili mesajın çalışması sonucunda ortaya çıkabilecek maksimum maliyete karşılık geliyor. Ancak bu tabi ki sizin işleminizin bu kadara mal olacağı anlamına gelmiyor.
  • Gönderen tarafından ödenecek olan Ether miktarını belirleyen GASPRICE

Buradaki alanlardan ilk 4 tanesi Bitcoin ile aynı özellikleri taşıyor. Ancak fark yaratan kısmı geriye kalan son iki alan. Bu alanlar Ethereum ağına DOS saldırısı yapılmasını engellemek için eklenmiş alanlar. Yani kötü niyetli birisinin sonsuz döngüye giren bir kontrat yükleyip bir madenciyi ağdan düşürmesini engellemek için kullanılıyor. Eğer böyle bir şey denenirse ödemesi gereken miktar çok fazla olacağı için kötü niyetli kişileri caydırıyor.

GAS denilen birim ise her işlem adımına göre hesaplanıyor. Yani eğer bir kontratın bir sonraki halinde çok fazla veri oluşturulursa bu durumda ödenmesi gereken GAS miktarı da ona oranla artıyor. Bu GAS değeri de işlemi çalıştıran madenciye o anda işlemci gücünü kullandığı için ödül olarak gönderiliyor. Örneğin bir akıllı kontratın bir hesap yapıp ya da kural çalıştırıp Ether ya da bir token transferi yapması yeni bir kontrat durumu yani ‘state’ oluşturacağı için bunun için belli bir miktar GAS ödemesi gerekirken mevcut bir kontratın o andaki durumunun okunması yeni bir ‘state’ oluşturmayacağı için ücretsiz gerçekleşebiliyor.

Umarım Ethereum ağı hakkında aşağı yukarı bir bilginiz oluşmaya başlamıştır. Merkezi olmayan uygulamalar ve aracıların olmadığı bir transparan bir finansal sistem çok değişik fırsatları da ortaya çıkartıyor. Bu fırsatlardan bir tanesi de ICO (Initial Coin Offering) denilen bambaşka bir crowfunding modeli. Şu anda bu yazıda bu konuya çok fazla giremesem de bir sonraki yazımda bunun avantajlarını ve nasıl çalıştığını bir kaç örnek ile açıklamayı planlıyorum.

Bu sırada eğer aklınıza takılan bir konu varsa lütfen benimle iletişime geçmekten çekinmeyin! (twitter: @MertSusur) Türkiye’de henüz sadece ‘kısa yoldan köşeyi nasıl dönerimcilikten’ öteye gitmeyeceğini düşünen büyük bir topluluk varken ‘yeni internet’ diyebileceğim kadar önemli olduğunu düşündüğüm bu teknolojinin ülkemizde gelişmesi için hep beraber bir şeyler yapabiliriz.

Bitcoin ile ilgili yazım için lütfen tıklayın.

Etiketler

Benzer Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu
Kapalı
Kapalı