Ethereum’un tam olarak ne olduğunu öğrenmek için jargonların, “buzzword”lerin arasında kaybolmak çok da zamanınızı almaz. Sansürlenemezdir. Merkeziyetsizdir. Bir blokzinciridir. Kontrol edilemezdir. Güvenlidir. Eğer bunları arka arkaya sıralarsak, Ethereum “merkeziyetsizlik için genelleştirilmiş protokol, güvenli işlem(transaction) durum tabanlı sanal makineler” diyebiliriz.
Eğer benim gibi birisiyseniz, kafanızda eskisinden daha fazla soru işaretleri oluştu. “Merkeziyetsiz sanal makine” de ne demek? Blokzincir de ne? Nasıl bir şeye benziyor ve neden güvenli?
Bunları bir kenara bırakalım. Neden umursamalıyım?
Ethereum’un nasıl çalıştığını anlamak için ne kadar ingilizce Ethereum kaynakları varsa okumaya, araştırmaya başladım. Hadi “Neden?” sorusu ile başlayalım. Ethereum neden önemli?
Büyük Resim
Herkes tarafından bilinen bazı dijital paralar var, Ethereum,Bitcoin gibi. Azımsanacak gibi değiller çünkü son bir kaç senede inanılmaz fiyat artışları yaşadılar. 2010’da bir Bitcoin gönüllüsü 2 pizza almak için tam olarak 10.000 Bitcoin ödedi. Yedi yıl sonra, bu pizzaların değeri 40 milyon doların üzerinde.
Ethereum para birimi, Ether deniliyor (kısaltılmışı ETH veya Ξ) çarpıcı bir şekilde yükselmişti. 2015’lerin başlarında değeri bir doların altındayken bunu yazarken $300 doları aşmıştı. Bir yandan da, fiyatının devamlı artmasını bekleyen, her yerde bu yeni teknolojiyi öven bir sürü spekülatörünüz var. Fiyatı arttığı sürece nasıl çalıştığını anlamalarına gerek yok.
Diğer yandan ise, Ethereum’un paranın icadından sonraki en büyük inovasyon olduğuna inanan insanlar da var.
Ve evet, bunu bütün bahsettiğim “buzzword”lerle yapması gerek. Ethereum’u daha önceki hiçbir şeye benzemez yapan şey Dünya’nın her yerinden erişilebilir programlanabilir para(blokzincir ), programlanabilir bilgisayar(Ethereum)dır.
Bu global bilgisayar, birbirine bağlı binlerce bağımsız bilgisayardan oluşur. Bu bilgisayarlar beraber çalışır sanki Ethereum bir tek ve büyük bir bilgisayarmış gibi. Her bir bilgisayar bütün bilgilerin bir kopyasına sahiptir, böylece eğer bir bilgisayar bozulur, sistem dışı kalırsa bu büyük bir problem oluşturmaz.
Yani Ethereum sadece değer saklamanın dijital bir yolu değildir — Dijital değerin, Ethereum Sanal Makinesi adı verilen küresel bilgisayarda bir şeyler yapmasını sağlayabilirsiniz.
Ether koininin doğasında olan değer vardır: Ethereum Sanal Makine’sini çalıştıran enerji ve zaman maliyetlerini karşılamak için global bilgisayarda zaman harcamak için Ether kullanıyorsunuz.
Ethereum Sanal Makinesi ile transparan ve güvenli bir yolla gezegendeki herhangi birisi ile aranızda herhangi bir değer üzerine anlaşmalar yaratabilirsiniz.
Aklınıza gelen her türlü finansal service üzerine bir app(uygulama) yazabilirsiniz. Bankacılık, kiralama, satın alma, satış, kitlesel fonlama, ticaret, takas, kumar, telif ücretleri yapabilirsiniz, adını siz koyun. Bu sadece insanlar arasında da limitlenmiş değildir. Bilgisayarlar, Ethereum Sanal Makinesi ile de etkileşim içinde olabilirler. Ethereum Sanal Makinesi mikroişlemleri uygulanabilir kılıyor, böylece telefonunuz sizin için ödeme servisi başlatabiliyor. Almanya’da elektrikli aracınız şarj olurken Ethereum sayesinde şarj istasyonuna çoktan gereken meblağ ödeniyor.
Bu ticari işlemler ve anlaşmalar hiçbir karşı taraf, organizasyon veya hükümet tarafından reddedilemez. Anlaşma bir kere yapıldığında, bir hevesle değiştirilemez.
Ethereum herkese değer takas etme gücü verebilir, Internetin herkese iletişim gücü verdiği gibi.
“Verebilir” kelimesini not edin. Buna karşın Ethereum şu anki durumunda bile çok daha fazlasını yapabiliyor, geliştirmeler devam ediyor. Ve aslında, gerçek bankaların ve finansal servislerin yerini alacak kadar büyük ya da hızlı değil. Örneğin, Ethereum ağı 500,000’den fazla işlem gerçekleştiriyor, bu sırada Visa sadece kendisi bu sayıyı yirmi saniyede bir gerçekleştiriyor. Teknik engellerin çoğu aşılsa bile, bu demek değil ki ‘Ethereum'da [favoriniz]
‘ her zaman bir business case olacak.
Tüm bunlara rağmen, bence yakından göz atmaya değen potansiyel olarak devrimsel bir teknolojidir. Ethereum’un tüm bunları yapabilmesine olanak sağlayan şey ne?
Bilgi & Protokoller
Değişim değeri Ethereum’un yaptğı en tartışmalı şey olduğundan, buradan başlayacağız. Birisine para transferi yaptığınızda neler oluyor? Hesabımızdan o miktar kadarı düşülüyor, diğer hesapa ise o miktar kadar meblağ ekleniyor.
Sıradan bankalar gerçekleşen bu işlemlerin hepsini kayıt altına alıyor, ne kadar paraya sahip olduğunuzu saptıyor. Bakiyeniz basitçe girdi-çıktı işlemlerinin sonucunda bulunuyor.
Bu çeşit kayıtların hepsi kronolojik şekilde sıralandığında buna ledger(defter)adı veriliyor. Blokzincir, basit bir defterdir. Her bir blok içerisinde düzinelerce bu çeşit transactionlar(işlemler) ve bilgiler barındırır. Gerçekten! Buradan bakabilirsiniz!
İşlem bilgisinin kendise bloğun başlığı denir ve blok numarası ile bloğu yaratan bilgileri barındırır. Ayrıca, teknik bilgiler de yer almaktadır. Mesela zorluk seviyesi, hashler ve gaz limiti gibi.
Her blok kendinden önceki bloğu ve blok içinde ne olduğunu belirtmelidir. Bu blokzincirin bir zinciridir. İlk bloktan(“genesis” adı verilmiştir.) son bloğa kadar bir zincir vardır.
Ağdaki her bilgisayar blokzincirin bir kopyasını lokalinde bulundurur. Yeni bir blok zincire eklendiğinde ağdaki bilgisayarda peer-to-peer dosya paylaşımı ile yeni versiyonlara güncelleme yaparlar.
Yukarıdakiler hem Bitcoin hem de Ethereum (ve bir sürü başka blok zincir için) için geçerlidir, ancak bu aynı zamanda benzerliklerin sona ermesidir. Ethereum sadece işlemleri değil aynı zamanda durumları da saklar. Durum, basitçe bir nesnenin sahip olduğu ve değiştirilebildiği bir şeydir. Örneğin, renk
trafik ışığının durumuyeşil
, fakat aynı zamanda kırmızı
. renk = yeşil
ve renk = kırmızı
bir nesnenin iki farklı durumu olabiliyor.
Ethereum, parasal değer ve veri dosyalarından evcil hayvanınızın adına ve en sevdiğiniz filme kadar her türlü şeyi tanımlayan her türlü durumu saklamanıza izin verir. Eğer bir Ethereum cüzdanınız varsa, bakiyeniz durum olarak saklanır(tam olarak böyle; bakiye = ...
). Bu bilgi blokzincirde değil, ayrı bir durum veritabanında saklanır. Tahmin edeceğiniz üzere, kendi bakiyenizi azaltmak ve bir başkasının bakiyesini aynı miktarda artırmak için bir işlem kullanırsınız.
Fakat nasıl evcil hayvanınızın adı için bir durum yaratabilirsiniz? ve nasıl değiştirebilirsiniz? İşte bir çözüm yolu: Ethereum işlemleri sadece hesap bakiyenizi değiştirmez. Ethereum’da bir işlem herhangi bir durumu değiştirebilir. Başka bir deyişle, Ethereum ile defterdeki herhangi bir satıra herhangi bir “Değeri” yazabilirsiniz. Eğer siz bir nedenle evcilhayvanımınismi = Mr. Fluffalopolous
gibi bir değeri depoladığınızda ve sonrasında bir işlem yapıp evcilhayvanımınismi = Üçüncü Mr. Fluffalopolous
değerine değiştirebilirsiniz.
Çünkü defter bütün değişiklikleri takip eder. Herhangi bir durumdan herhangi başka bir durumu türetebilirsiniz. Tıpkı birisinin bakiyesini, tüm parasal işlemlere bakarak türetebildiğiniz gibi. Başka birisinin durumu değiştiremeyeceğinizi not edin çünkü bu bir Wikipedia değildir. İşlemlerle ilgili ne yapıp, yapamayacağınızı belirten kurallar vardır. Bu, insanların Ethereum protokolü hakkında konuştukları zaman kastettikleri şeydir. Bir protokol, neye izin verilip verilmediğiyle ilgili bir dizi kuraldır.
Bazı şeyler protokol tarafından yasaklıdır. Örneğin, sahip olduğunuzdan fazla para gönderemezsiniz. Havadan para yaratamaz ve onu ortadan kaldıramazsınız. Ethereum defteri kendisini dengeler çünkü protokol dengesiz işlemler yapılmasına izin vermez.
Protokol her zaman bu kadar kısıtlayıcı değil. Protokol, evcil hayvanınızın ismini kim değiştirebilir, kim değiştiremez kararını size bırakır. Bu Ethereum ile programlarken sahip olduğunuz özgürlüklerden bir tanesi.
Eğer birisi Ethereum nedir diye sorarsa, artık ona güzel bir cevap verebilirsiniz. Ethereum herhangi bir şey için değer ana çerçeve bilgisayarıdır ve bu bilgisayarda zaman geçirmek için Ether ödüyorsunuz. Bu bilgisayar üç ana öge üzerinde çalışır:
- Değiştirilebilen durumlar
- İşlemler (transactions)
- Ethereum Protokolü
Global bir bilgisayara sahip olmak güzel fakat güvenli olduğunu nasıl bileceğim? Ethereum’u güvenli yapan şey nedir?
Ethereum Blender’ı
Ethereum sıklıkla kripto para olarak adlandırılır. Bu sadece onun “havalı” bir isme sahip olduğundan değil, gerçekten öyle olmasındandır. “Kripto” tabiri kriptografi biliminden gelmesine atıftır. Kriptografi, içeriğini okuyan veya kurcalayan herhangi biri olmadan iletişimi sağlamak için güvenli protokoller tanımlamayı amaçlar. Ethereum’un çok kullandığı kriptografik araçlardan birine secure hashing algorithm veya SHA denir. Bu algoritma her türlü veriyi girdi(input) olarak alır ve özel bir yolla verileri değiştirir. Örneğin, Eğer ben veenspace
‘i SHA-1 algoritması ile hashlersem, hashlenen verinin çıktısı(output) e4a192365543903d6015465069f262b7d707e5b6
olacaktır.
Kriptografik haslemeyi bir blender olarak düşünebilirsiniz. Bir çeşit veriyi koy, biraz zaman ile birleştir ve karıştır. Sonuç bir çeşit harflerle ve sayılarla hashlenmiş olacaktır. Tıpkı her blender gibi, blenderdan geçen bir şey geri döndürülemez. Parçaları tekrar birleştirilemez bu nedenle bu işlem tek yönlüdür. Bu herhangi bir blendera da benzemez. Blender her zaman aynı şekilde çalışır yani özel bir girdi verildiğinde blender her zaman aynı çıktıyı verecektir. Girdi olarak SHA-1 algoritmasıylaveenspace
girilirse ki bunu buradan yapabilirsiniz, hash sonucu olarak her zaman e4a192365543903d6015465069f262b7d707e5b6
bunu elde edeceksiniz.
En önemlisi, en ufak bir girdi değişikliğinde bile çıktı tamamen değişecektir. Mesela, Adventures of Sherlock’un tamamını alalım. Eğer tüm kitabı hashlerseniz, sonuç: 85ce3d0483d114fe67ee304c0d7522a31fa4e8a6
olacaktır.
Eğlencesine kitaptaki sadece bir kelimeyi değiştirdim. Hash bana08f0ee20fcffe7028787ee5232b9ae80de016857
olarak geri döndü.
İkinci hash sonucunun birinci hashten ne kadar da farklı olduğunu lütfen not edin!
Bunun şimdiye kadar ki en sakat katakulli olduğunu düşünebilirsiniz (ve yanılmayacaksınız) ama bu Ethereum’un güvenliğinin anahtarı. Blokzincir’deki her bloğu içinde durumlar ve önceki işlemlerin hashlerini içerir. Bu yüzden bazı süpervillerler / Bitcoin maximalistler blok zincirinde ‘tarihi yeniden yazmak’ isterse, sadece bir digiti değiştirdiğinde bu hemen farkedilir çünkü hashler tamamen farklı olur.
Blenderdan geçen bir şeyin geri dönüşü olmayacağını söylemiştim, bu tamamen doğru değil. Sonucunda oluşan hash aynı olana kadar orijinal girdinin ne olduğunu tahmin edebilir veya deneyebilirsiniz. Eğer girdi herhangi bir şey olursa, bu işlem 2 511 tane tahmin kadar sürecektir. Bu da 1’in arkasına 154 tane 0 atmak demektir, merak edersiniz belki diye.
Bu “tahmin oyunu”na mining deniyor. Bu tahmin oyununun sonsuza kadar sürmemesinin nedeni girdinin tamamen rastgele olmamasıdır. Size Adventures Of Sherlock’un bir kopyasını verdim ve sadece bir kelimenin değiştirildiğini söyledim, bu oyun bir anda çok daha kolaylaşacaktır. Tek yapmanız gereken tek bir kelimeyi değiştirip, denemek. Zaten elinizde girdinin %99’u var, böylece tahmin oyunu çok daha kolay olur.
İşte bu yüzden her blok önceki işlemin durumlarını ve transactionlarının(işlemler) hashini tutuyor. Madencilerin yaptıkları tahmin oyunu şöyledir;[şimdiye kadarki hashlenmiş her şey] + [sayılar]
. Madenciler bu nedenle, en son bloğu indiriyorlarsa ancak makul bir süre içinde doğru bir tahmin yapabilirler.
Sonuç olarak, tüm madenciler daima en son blok üzerinde çalışır ve eski bloklarda tek bir değişiklik yapamazlar. Eğer en son bloğu mine etmezsen, tüm girdiyi tahmin etmek yüzyıllar sürecektir. Ama eğer en son blokları mine ederek ilerleseniz ise bir ay içerisinde tamamlayabilirsiniz. Elinizde 25,000 bilgisayar olduğunu varsayalım, hepsi aynı anda tahmin ediyor. Böylece her 15 saniye içerisinde bir kazananınız olacaktır.
Blok zamanı da olarak adlandırılan bu 15 saniye kasıtlıdır. Ağa daha fazla bilgisayar katıldıkça, kazananların 15 saniye ayrı kalması için bazı kısımların daha uzun sürmesi sağlandı. Bu herkese en son bloğu indirme ve onaylama şansı veriyor.
Ağdaki tüm bilgisayarlar rastgele olarak tahmin ettiğinden, kazanan da rastgeledir. Kazanan bilgisayar, blokzincirine yeni bir blok ekler. Ayrıca bu sıkı çalışmalarının mükâfat olarak 5 ETH ile de ödüllendirilirler.
Bu tahmin oyununu bilmek blokzincirine yeni bir blok eklemek için yeterli değil. Ağdaki her bir bilgisayarın işinizi doğru yaptığınızı double-check yapması gerekiyor. Yalnızca ağın çoğunluğu, tahmininizin doğru olduğunu ve durumları doğru bir şekilde değiştirdiğinizi kabul ettiği takdirde, bloğunuz geçerli olur ve bu nedenle ‘doğru’ kabul edilir.
Tahmininizi onaylatmak ise kolay: yapmanız gereken tek şey, tahmin edilen sayıyı ve son bloğun hash değerini Ethereum hash algoritmasına girmek ve böylece herkesin üzerinde çalıştığı bir şeye dönüşmeli.
Elinizde sadece e4a192365543903d6015465069f262b7d707e5b6
hashi olduğunda bunun veenspace
olduğunu tahmin etmek oldukça zor fakat diğer türlü 0.1 saniyeden bile az.
Bu bütün sistem hesaplamalarına Proof of Work yani İşin Kanıtı deniyor. Ethereum’un güvenilirliği a) herkesi en son blokta tutmasından b) madencilerin keyfi bir iş yapmasından ve c) sadece büyük bir mutabakat sonucunda işlemlerin onaylanmasından geliyor.
Dolayısıyla, normal para (açıkça hiç küçük bir İtalyan otomobil sürmemiş olan insanlar tarafından “fiat” olarak adlandırılır) güvenlidir çünkü hükümetler tarafından desteklenir. Kriptoparalar ise kendi protokolleri kadar güvenlidir.
Siz, Bay Supervillain, protokolü görmezden gelmek ve ince havadan Ether’i yaratmak istiyorsanız, bunu yapmanın tek yolu, şebekenin çoğunluğunu kendi elinizde tutmaktır. ‘% 51 Saldırısı’ olarak adlandırılan böyle bir saldırı teknik olarak mümkün, ancak gerçekte makul olmayan bir şekilde pahalı ve farkedilmesi çok kolay. (Yani hiç de karlı değil.)
Kaynak: http://veenspace.com/ethereum.html
Çeviri: Zahid Dişci