BiTCOiN
BTC

Ethereum Nedir

Bitcoin nedir?

Nakamoto’nun yayınladığı makalenin ilk paragrafından alıntı yaparak çözmeye çalıştığı sorunu özetlemek en doğrusu olacaktır;

Internet üzerindeki ticari işlemlerin neredeyse tamamı güvenilir bir otorite olarak hizmet veren üçüncü şahıs finans kurumlarına güvenerek çalışmaktadır. Her ne kadar bu sistem bir çok işlem için güzel çalışıyor olsa da hala daha güvene dayalı bir sistemin zafiyetlerini de barındırmaktadır.

Peki nedir bu güvene dayalı sistemlerin zafiyetleri? Örneğin 2008 mali krizini ele alalım. Alalım da bir finans uzmanı olmadığım için alıntı yaparak anlatmaya çalışacağım.

… ABD bankalarının kar iştahı o kadar artmıştı ki krediler, kredi derecelendirme sürecinde riskleri ölçmeden umarsızca verildi. Verilen kredilerin büyük bir kısmı konut kredisi olarak verildiği için kredi kullananlar kredileri ödemese bile sürekli artış gösteren konut fiyatları vardı. Ve en kötü ihtimal bankalar bu evleri satıp belki kar bile ederek konuyu kapatırlardı. Bununla birlikte artan bu kredi patlamasının sonucu olarak bankalar kaynak bulmakta güçlük çekiyordu. Bunun da bir çözümü vardı elbette. Bankanın ipotek ettiği bu evleri, varlık teminatlı menkul kıymetleştirerek piyasada dolandıracak, kendilerine vadesi çok da uzun olmasa bile kaynak yaratmış olacaklardı. Fakat düşünmedikleri birşey vardı: Konut fiyatları ya düşerse? Nitekim kredi alanlar kredilerin büyük bir kısmı ödenemeyince bankalar konutlara el koymuş, ama 3 birim kredi verdikleri evin değeri 1 birime düşmüştü. Bankacılık sektörü bunlardan etkilenmiş, sigortacılık sektörü de bu çıkarılan varlık teminatlı menkul kıymetleri sigortaladıkları için çok ciddi zararlar vermişti…

Daha fazlası için : http://www.bireyselyatirimci.com/2008-krizi-ve-gercek-nedenleri/

Şu anda internet üzerinden bir alışveriş yapmak istediğinizde, kiranızı ödemek istediğinizde ya da çoğu zaman market alışverişinizi yaparken bankaları yani yukarıda bahsedilen üçüncü şahıs finansal kurumları kullanıyorsunuz. Bu firmalar devletler tarafından regülasyonlarla denetlendiği için güvenilir olarak kabul ediyoruz. Hatta devletler kendileri denetlemelerden sorumlu oldukları için bir çok işlemin bu kurumlar üzerinden yapılmasını tercih ediyorlar, çünkü böylece bireylerin ya da kurumların gelir ve giderlerinin denetlenmesi ve vergilendirilmesi de kolaylaşmış oluyor. Ancak bu noktada bu güvenilir firmaların yozlaşması, devletlerin yozlaşması, yolsuzlukların yaşanması ya da 2008 yılındaki krizde olduğu gibi bir çok farklı kurumu da beraberinde batırması gibi riskler ortaya çıkmış oluyor.

İşte Bitcoin de tam olarak bu sorunu çözmek için ortaya çıkıyor.

Peki nasıl çalışıyor?

Bunun gerçekleşmesi için işlemi yapan kişi gerekli bilgileri doldurduktan sonra bir işlem girişi yaratıp bunu Bitcoin ağına gönderir. Bitcoin ağı dediğimiz şey aslında bu sisteme bağlı olan istemci bilgisayarlardan oluşmaktadır. Ağa dahil olan her bilgisayar kendisine yakın olan başka istemcilerle iletişime geçerek Peer-to-peer bir şekilde karşılıklı veri alışverişine başlarlar ve otomatik olarak ağ içerisinde 2009 yılından bu yana yapılmış olan bütün işlemleri kendi disklerine indirmeye başlarlar, yani ağ ile senkronize olmaya başlarlar. Evet, tarih boyunca yapılmış tüm işlemlerin listesi şeffaf bir şekilde herkesin erişimine açık durmaktadır. Hatta bazı web sitelerinden şu anda yapılan işlemleri canlı olarak görmeniz bile mümkün (cointicker). Şeffaflık konusuna birazdan geri döneceğim için şu anda bunun ne kadar önemli bir şey olduğundan bahsetmiyorum. Birazcık sabredin lütfen!

Biz örneğimize dönelim, kira ödeme işlemini ağdaki diğer bilgisayarlarla paylaşıyorduk değil mi? Evet! Onlar da aynı şekilde başka bilgisayarlarla birebir olarak bağlı oldukları için onlar da elden ele yöntemi ile bu işlemi onlarla paylaşıyorlar. Burada dikkat edilmesi gereken konu şu; oluşturduğunuz işlem henüz onaylanmadı. Yani hesabınızdan henüz para transferi gerçekleşmedi. Onay bekliyor diyebiliriz.

Aynı anda sistemde madenci denilen başka insanlar da zor bir matematiksel problemi çözmeye çalışıyorlar. Bu problemin çözümü çok fazla işlemci gücü gerektirdiği için kolaylıkla herkes tarafından çözülemiyor. Hatta bu problemin çözümü de gün geçtikçe zorlaşıyor. Bu problem çözüldüğünde, problemi çözen kişi bir blockchain oluşturup henüz onaylanmamış işlemleri bu blockchain içine ekliyorlar ve bu noktada işleminiz onaylanıyor ve karşılıklı para transferleri gerçekleşiyor. Bu problemi çözen ve blockchain oluşturan kişi de yaptığı işlem karşısında 1 bitcoin ile ödüllendiriliyor.

Blockchain yani blok zinciri, aynı bir Linked List gibi kendisinden öncekini biliyor, yani kendisinden önceki blok ile zincirleniyor. Böylelikle son zinciri bilirseniz tarihin en başına kadar gidebiliyorsunuzAncak iyi haber; bu işlemlerin göndereni ve kabul edeni kısımlarında isim değil anonim adresler yazıyor. Yani işlemleri görüyorsunuz ancak bu işlemleri kim neden yapmış takip etmeniz mümkün değil. Bu noktada tartışmak istediğim çok fazla konu var örneğin bu sistemin zafiyetleri yok mu? E madem zor bir problem bu, o zaman bir de ben onun çözülmesini mi bekleyeceğim? Ben ‘proof of work’ diye bir şey duydum o neydi? gibi. Ancak yazının amacından sapmaması için burada duruyorum, aksilik çıkmazsa ileride yazacağım yazılarda ya da video kayıtlarında bunlara değineceğim.

Ethereum diyorduk sen bize ne anlatıyorsun!

İşte bu sistemin 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’.

Yeter artık! Nedir yahu bu Ethereum?

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?

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.

İletişim: admin@komsukazani.com